Architecture des systèmes à processeurs IUT GEII (ISI II2) 2

Documents pareils
Architecture des ordinateurs

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Structure d un programme

Assembleur i8086. Philippe Preux IUT Informatique du Littoral. Année universitaire 95 96

Rappels d architecture

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

GPA770 Microélectronique appliquée Exercices série A

Programmation assembleur : aperçu

Compilation (INF 564)

Architecture des ordinateurs : Programmation des processeurs avec l'environnement «y86» (INF155)

Licence Sciences et Technologies Examen janvier 2010

Conception de circuits numériques et architecture des ordinateurs

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits


INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

ASR1 TD7 : Un microprocesseur RISC 16 bits

Cours Informatique 1. Monsieur SADOUNI Salheddine

UE Programmation Impérative Licence 2ème Année

La mémoire. Un ordinateur. L'octet. Le bit

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

ALGORITHMIQUE ET PROGRAMMATION En C

Logiciel de base. Première année ENSIMAG

Microprocesseur + Logiciel

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

Bases de programmation. Cours 5. Structurer les données

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

Architecture matérielle des systèmes informatiques

Conversion d un entier. Méthode par soustraction

Représentation d un entier en base b

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

CM2 L architecture MIPS32

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Programmation C. Apprendre à développer des programmes simples dans le langage C

IV- Comment fonctionne un ordinateur?

Codage d information. Codage d information : -Définition-

Chapitre 10 Arithmétique réelle

PIC : COURS ASSEMBLEUR

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Glossaire des nombres

Plan du cours. Historique du langage Nouveautés de Java 7

Chapitre VI- La validation de la composition.

Cours d initiation à la programmation en C++ Johann Cuenin

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Claude Delannoy. 3 e édition C++

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Langage C. Patrick Corde. 22 juin Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin / 289

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

Cours d Algorithmique et de Langage C v 3.0

Architecture Matérielle et Logicielle (LIF6) Cahier d'exercices, automne 2014

Architecture des ordinateurs Introduction à l informatique

Programmation en Java IUT GEII (MC-II1) 1

Cours 1 : Qu est-ce que la programmation?

Informatique Générale

Initiation à la sécurité

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

ACTIVITÉ DE PROGRAMMATION

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

UE C avancé cours 1: introduction et révisions

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Génie Logiciel avec Ada. 4 février 2013

Algorithmique et programmation : les bases (VBA) Corrigé

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

SUPPORT DE COURS. Langage C

Exécution des instructions machine

Le codage informatique

Le langage C. Séance n 4

Logiciel de Base. I. Représentation des nombres

Programmation en langage C

Notions fondamentales du langage C# Version 1.0

Cours Informatique Master STEP

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Algorithme. Table des matières

Chapitre 1 : La gestion dynamique de la mémoire

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Une version javascript sera disponible directement dans le cours prochainement.

Les opérations binaires

Le langage C. Introduction, guide de reference

Les failles Format String

Résumé Génération de code Le code intermédiaire

NanoSense. Protocole Modbus de la sonde Particules P4000. (Version 01F)

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Algorithmique, Structures de données et langage C

Traduction binaire dynamique de l extension SIMD Néon de l ARMv7 dans Qemu

Cours de Programmation Impérative: Zones de mémoires et pointeurs

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Sélection du contrôleur

Cours d Informatique

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

STAGE IREM 0- Premiers pas en Python

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Architecture de l ordinateur

SGM. Master S.T.S. mention informatique, première année. Isabelle Puaut. Septembre Université de Rennes I - IRISA

Gestion mémoire et Représentation intermédiaire

Transcription:

Architecture des systèmes à processeurs IUT GEII (ISI II2) 2 Christophe BLANC www.christophe blanc.info IUT de Montluçon Département Génie Electrique et Informatique Industrielle Architecture des systèmes à processeurs MODÈLE DE PROGRAMMATION D UN PROCESSEUR I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 2 1

Codage d une instruction M32C87 Renesas MOV.size:G Source, Destination 1 C 9 8 B 1 0 0 1 0 0 1 1 0 0 0 1 0 1 1 MOV.W:G R2, R0 ; Transférer contenu de R2 dans R0 Exécution d un programme élémentaire (notation symbolique) Adresse Programme Source Assembleur Étiquette Opération Opérande Commentaire $FE0304 $FE0306 $FE0307 $FE030A AdDeb ADD.W R1, R0 ; R0 < R0 + R1 MOV.W R0, R1 ; R1 < R0 MOV.W R0, 2[SP] ; 2(SP) < D0 JMP AdDeb ; < AdDeb Zone mémoire réservée aux instructions Mnémoniques à la place de données binaires i I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 4 2

Exécution du programme Instruction : ADD.W R1, R0 RI Rechercher Instruction FE0304 R0 R1 0013 0022 $FE0304 $FE0306 $FE0307 $FE030A Mémoire réservée aux instructions ADD.W R1, R0 MOV.W MOV.W JMP.B R0, R1 R0, 2[SP] AdDeb RI Exécuter Instruction FE0306 FE0304 ADD.W R1, R0 +2 D0 D1 ADD 0013 0035 0022 $000700 $000702 Mémoire réservée aux données I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 5 Exécution du programme Instruction : MOV.W R0, R1 RI Rechercher Instruction FE0306 R0 R1 0035 0022 $FE0304 $FE0306 $FE0307 $FE030A Mémoire réservée aux instructions ADD.W MOV.W MOV.W JMP.B R1, R0 R0, R1 R0, 2[SP] AdDeb Exécuter Instruction RI FE0306 FE0307 MOV.W R0, R1 +1 D0 D1 0035 0035 0022 $000700 $000702 Mémoire réservée aux données I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 6 3

Exécution du programme Instruction : MOV.W R0, -2[SP] FE0307 $FE0304 Mémoire réservée aux instructions ADD.W R1, R0 Rechercher Instruction RI R0 R1 0035 0035 $FE0306 $FE0307 $FE030A MOV.W MOV.W JMP.B R0, R1 R0, 2[SP] AdDeb RI Exécuter Instruction FE030A FE0307 MOV.W R0, 2[SP] +3 R0 R1 35 35 $000700 SP > $000702 35 00 Mémoire réservée aux données I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 7 Exécution du programme Instruction : JMP.B AdDeb RI Rechercher Instruction FE030A R0 R1 $FE0304 Mémoire réservée aux instructions ADD.W R1, R0 $FE0306 MOV.W R0, R1 0035 $FE0307 MOV.W R0, 2[SP] 0035 $FE030A JMP.B AdDeb Exécuter Instruction RI FE0304 FE030C FE030A JMP.B AdDeb +2 R0 R1 0035 0035 $000700 $000702 3 5 00 Mémoire réservée aux données I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 8 4

Types de Données Le µ P traite des données binaires non typées C est le programmeur qui définit le type des données manipulées par : le choix des instructions, la logique de l algorithme. Les instructions traitent les données suivantes : Entiers signés sur 8, 16, ou 32 bits Entiers non signés sur 8, 16, ou 32 bits String Nombres exprimés en virgule flottante (réels) I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 9 Data Arrangement in Register Data Arrangement 5

Data Arrangement in Memory Data Arrangement Data Arrangement in Memory Data Arrangement 6

Étapes de développement d un projet industriel Cahier des charges à respecter impérativement Document contractuel entre le concepteur et son client Dossier logiciel Analyse fonctionnelle Découpage en modules Communication entre les modules Codage des programmes prenant en compte : Les contraintes techniques Les spécifications du client Les compétences et les habitudes du personnel Les disponibilités en outils de développement I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 13 État de l art Avec pour objectif : minimiser les coûts Séries faibles Minimiser les coûts de développement Codage en langage évolué C, C++, Java, Visual Basic, Environ 95 % du code Parties critiques Codage en assembleur Temps de réponse minimum i Taille du code minimum Accès aux entrées sorties Grandes séries Minimiser le coût des composants de fabrication Taille mémoire Inférieure aux seuils justifiés par des aspects économiques Codage langage C en général Employé au maximum Choix de structures efficaces Codage en assembleur Taille en dessous des seuils Temps de réponse critiques I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 14 7

Programmation modulaire Communication entre modules codés en langage évolué Module Communication Module L.E. Par la Pile LIFO L.E. Communication entre modules codés en langage assembleur Module L.Asm. Communication Registre du µ P Module L.Asm. Communication entre modules codés en : Langage assembleur Langage évolué Module L.E. I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 15 Communication Par la Pile LIFO Module L.Asm. Mécanismes d appel et de retour de sous programme Pour tous les langages de programmation Assembleurs, évolués (C, Basic,.), objets (C++, Java,.) Un programme : suite d appels de sous programmes Description macroscopique Description détaillée Problèmes à résoudre Se brancher à l adresse de Instr. Avant Appel Instr. d Appel Instr. Après Appel Début Sous Prg. Fin Sous Prg. début du sous programme Ménager l avenir en mémorisant l adresse de retour Permettre l imbrication de sous programmes I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 16 8

Description Pile LIFO (Last In, First Out) Zone mémoire dont le contenu est géré par : Un pointeur de pile (stack pointer) registre d adresse spécifique Deux primitives : Empiler (Objet) Dépiler (Objet) Hypothèses théoriques Instruction codée sur une seule ligne mémoire Largeur de la mémoire (nombre de bits en sortie) identique à la taille du compteur ordinal () Notation symbolique I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 17 Mécanisme d appel/retour d un sous programme Algorithme AdAppel Étiquette AdDebSousPrg AdFinSousPrg Instruction AppelSousPrg FinSousPrg I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 18 9

Instruction d appel de sous programme Avant exécution AdAppel +1 Après exécution AdDebSousPrg AdAppel + 1 SP Mémoire vive n 1 n n+1 Fonction réalisée Début SP AdAppel + 1 < + 1 SP < SP 1 (SP) < < AdDebSousPrg Fin Mémoire vive n 1 n n+1 Pile LIFO Prè décrémentation I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 19 Instruction de retour de sous programme Avant exécution AdFinSousPrg +1 Après exécution AdFinSousPrg+1 AdAppel + 1 SP n 1 n 1 AdAppel + 1 n AdAppel + 1 n n+1 SP n+1 Mémoire vive Mémoire vive Fonction réalisée Début Zone mémoire à ne plus exploiter < + 1 < (SP) Post incrémentation SP < SP + 1 Fin I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 20 10

Commentaires supplémentaires Développement complet d une application Définir une zone de mémoire vive réservée à la pile Initialiser le pointeur de pile en conséquence Mémoire Réservée à la Pile Développement d une application à partir d un noyau déjà existant Zone mémoire vive réservée pour la pile déjà définie En conséquence, ne pas initialiser le pointeur de pile SP SP < SpInit AdDebPile Imbrication de sous programmes La structure de la pile LIFO permet cette imbrication AppelSP1 DébutSP1 AppelSP11 DébutSP11 FinSP11 Les principes doivent être adaptés aux caractéristiques de chaque microprocesseur AppelSP1 AppelSP11 FinSP1 I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 21 Application Processeur M32C87 Bus de donnée : 16 bits Bus d d adresse : 24 bits Convention Renesas Poids faibles en premier Adresse paire Poids forts en second Adresse impaire Mémoire Mots de 8bits Poids faibles Poids forts Adresses croissantes Programme Source Assembleur Étiquette Opération Opérande DEBUT JSR AdDebSsPrg AdDebSsPrg I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 22 NOP RTS 11

Codage des instructions (programme objet) JSR AdDebSsPrg Jump to Subroutine Code instruction 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Hexadécimal Code Opération 1 1 0 0 1 1 1 1 C F Code Opérande 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 2 0 0 NOP No Operation 7 6 5 4 3 2 1 0 Hexadécimall Code instruction 1 1 0 1 1 1 1 0 D E RTS Return from Subroutine Code instruction 7 6 5 4 3 2 1 0 Hexadécimal 0 1 1 1 0 1 0 1 D F I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 23 Etat de la pile pendant l exécution du programme Mémoire organisée en mots de 16 bits JSR AdDebSsPrg NOP RTS Pile LIFO Adresses CF DS FE0304 00 FE0306 FE0308 FE030A DE FE0410 DF FE0412 FE0414 zz zz yy yy 000710 000712 000714 Avant exécution de JSR Avant exécution de RTS SP zz zz 000710 yy yy 000712 000714 Après exécution 00 FE 03 04 00 FE 04 10 SP 07 03 FE 00 Après exécution 00 FE 04 12 00 FE 03 07 A7 07 03 00710 FE 00 00712 00714 SP 07 03 FE 00 I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 24 12

Empilement et dépilement d objets Objectifs Décomposer une application en modules Sous programme en langage assembleur équivalent à une procédure en langage évolué Passage des paramètres par registres internes Variables locales au module Utilisation des registres internes (plus rapides) Ne doivent pas interférer avec le programme appelant Solution Sauvegarder le contenu des registres utilisés (variables locales) au début du sous programme Restituer le contenu des registres avant l instruction de retour de sous programme Paramètres en entrée (In) Paramètres Sauvegarder le contenu des registres qui servent de variables locales Sous Programme ( registres internes utilisés comme variables locales) Paramètres en sortie (Out) transformés (In/Out) I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 25 Restituer le contenu des registres Empilement d objets Hypothèse : taille objet = taille mémoire Avant exécution Après exécution Objet Contenu Objet Objet Contenu Objet n 1 n 1 SP n n+1 SP Contenu Objet n n+1 Mémoire vive Fonction réalisée Début SP < SP 1 Mémoire vive Pile LIFO (SP) < Contenu Objet Fin I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 26 Prè décrémentation 13

Dépilement d objet Même hypothèse Avant exécution Après exécution Objet????? Objet Contenu Objet n 1 SP Contenu Objet n n+1 SP Mémoire vive Fonction réalisée Début Objet < (SP) SP < SP + 1 Fin I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 27 n 1 Contenu Objet n n+1 Mémoire vive Zone mémoire à ne plus exploiter Post incrémentation Application : réaliser un sous programme utilitaire Objectif Mise en œuvre facile Méthode Décrire l action réalisée Définir clairement l interface de communication Sauvegarder et restituer le contexte dans le sous programme utilitaire Si impératifs de rapidité Ne pas sauvegarder systématiquement les registres utilisés Noter les registres détruits Algorithme général Début Fin Sauvegarder le contexte Algorithme spécifique Restituer le contexte Registres utilisés dans l algorithme spécifique I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 28 14

Mode d adressage : adress register relative (registre d adresse) Registre d adresse MOV.L R3R1, [A0] Notation : ( Ai ) Case mémoire pointée par Ai MOV.W #1FABh, [A1] R3R1 11 22 88 99 A0 F E 04 0 0 Adresses toujours comptées en octets (8 bits) 99 88 $FE0400 22 11 $FE0402 16 Bits A1 FE 05 0 0 MOV.B #50h, [A0] AB 1F $FE0500 0 0 FE 00 400 A6 16 Bits 16 Bits $FE0502 Adresse $2001 50 $FE0400 $FE0402 I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 29 Mode d adressage : adress register relative (Stack Pointer) Registre SP MOVE.size R1, n [SP] Notation : n [SP] Fonction réalisée : [SP n] < Opérande R1 9 8 7 6 SP 000 4070 0140 n Fonction de la size de l opérande B n = 1 (Byte 1 octet) W n = 2 (Word 2 octets) L n = 4 (Long Word 4 octets) 76 98 16 Bits $00712 $00714 $00716 I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 30 15

Mode d adressage : adress register relative (Stack Pointer) Registre pointeur de pile MOVE.W 2[SP], R3 Notation : n[ SP ] SP 0 0 07 14 Fonction réalisée : Opérande < [SP+n] n Fonction de la taille de l opérande B n = 1 (Byte 1 octet) W n = 2 (Word 2 octets) L n = 4 (Long Word 4 octets) R3 76 98 AB CD 16 Bits AB 2 3 CD 4 5 $00712 $00714 $00716 I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 31 Registe d état (FLG Flag Register) Indicateurs modifiés après : Une instruction arithmétique Une instruction MOV Conséquence : Sauvegarder FLG en premier sur la pile : PUSHC FLG I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 32 16

Cahier des charges Sous programme Aucun contenu de registre modifié Remarque Application Sous Programme utilitaire L algorithme spécifique à la fonction réalisée utilise le registre R1 Restituer le contexte MOV.W -2[SP],R1 PO FLG Sauvegarder le contexte PUSHC FLG SR SS UU SP MOVE.W R1,-2(SP) R1 CCR 98 76 Etat de la pile Avant Après Exécution Instruction SP UU SS 76 98 SP UU SS SP UU SS! I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 33 Source L.E Compiler Source L.E Compiler Interfaces d entrées sorties Impératifs de rapidité Source L. Asm Assembler Source L. Asm Assembler Optimiser le code si nécessaire Source L. Asm Assembler Source L. Asm Assembler Objet relogeable Objet relogeable Chaîne de développement de logiciel Objet relogeable Objet relogeable Adresse Codes Instructions xxxx 0101110010101110 1100011000010100? 0001110001101011 Etiquette Opération Opérande Conv MOV.B #45h,R0l ADD.B #$10,R1l RTS void main (void) { int Cpt = 0 ; cin>> NbGroupes;. } Mémoire du système à microprocesseur Editer les liens Objet Exécutable Charger le code et mettre au point Adresse Codes Instructions A8B6 0101110010101110 1100011000010100 Fixée 0001110001101011 L. E. Langage évolué (C, C++, ) L. Asm Langage assembleur 17

Fonction assurée par chaque programme de la chaîne de développement Un compilateur transforme un programme source écrit en langage évolué (ASCII) en source assembleur (ASCII) du microprocesseur cible Optimisation possible du langage assembleur généré par le compilateur Un assembleur transforme le source assembleur en objet relogeable Langage binaire dont les adresses peuvent être recalculées L éditeur de liens lie tous les modules relogeables (modules créés par le programmeur, bibliothèques) pour créer l objet exécutable Langage binaire chargeable dans la mémoire du microprocesseur cible Création de la table des symboles Programme relogeable Code objet Déplacer le programme dans la mémoire Editeur de liens Code objet modifié Programme translatable Code objet Déplacer le programme dans la mémoire Code objet identique I.U.T. Montluçon Département Génie Electrique et Informatique Industrielle 35 18