Architectures des ordinateurs
Sommaire 1) organisation minimale d un ordinateur 2) le processeur 3) la mémoire 4) le programme 5) les interfaces
organisation minimale d un ordinateur Initialisation Génération horloge Microprocesseur Bus adresses Bus données Lignes de contrôle Mémoire RAM ROM Décodage d adresses Interfaces périphériques ENVIRONNEMENT 3
le système minimal - le circuit d horloge et circuit d initialisation (reset) - la mémoire principale - le processeur ou CPU - le décodeur d adresses - le bus d adresse et bus de données - le bus de contrôle - les périphériques
circuit d horloge et circuit de reset Exemple de circuits de reset et de génération d horloge sck /reset MISO C1 Reset BUTTON SW1 22pF C4 10nF Y1 4Meg R2 10k D1 1N914 C2 22pF +5V 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 U6 AT90S8535 pb0-t0 adc0-pa0 pb1-t1 adc1-pa1 pb2-ain0 adc2-pa2 pb3-ain1 adc3-pa3 pb4-ss/ adc4-pa4 pb5-mos i adc5-pa5 pb6-miso adc6-pa6 pb7-sck adc7-pa7 res et/ aref vcc agnd gnd avcc xtal2 tosc2-pc7 xtal1 tosc1-pc6 pd0-rxd pc5 pd1-txd pc4 pd2-int0 pc3 pd3-int1 pc2 pd4-oc1b pc1 pd5-oc1a pc0 pd6-icp oc2-pd7 AT90S8535 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 Reset: activé tant que l alimentation n est pas stabilisée : réseaux RC ou circuits spécialisés Horloge (Quartz ou quartz + PLL): fixe le rythme d exécution des instructions 5
la mémoire programme : (instructions sur 16 bits pour famille ATmega) => contient le programme exécutable (flash eeprom) 6
la mémoire données : données sur 8 bits pour ATmega (SRAM) accessible en lecture/écriture sauvegarde de variables, adresses de retour de sousprogrammes, d interruptions, de contexte (registre d état, ) contrôlée en lecture/écriture par le bus de contrôle 7
La CPU: son rôle Implémente le cycle Fetch-Decode-Execute: 1) Fetch: a) assigne une valeur d adresse au bus d adresses b) lit l instruction associée à l adresse pointée 2) Decode a) décode l instruction b) lit les opérandes si nécessaire 3) Execute a) exécute l instruction b) sauvegarde les opérandes si nécessaire
9
Architecture Harvard (2 bus séparés) / Von Neumann (1 bus)
- architecture Von Neumann => instructions CISC - architecture Harvard => instructions RISC La majorité des processeurs actuels sont à architecture de Harvard et disposent d un pipeline Avantages RISC CISC Temps d exécution court, hardware plus simple, coût puce électronique réduit Inconvénients Programme plus complexe à écrire, plus de lignes, compilateur difficile à concevoir Instructions puissantes, programme plus simple à écrire, moins de lignes de programme, compilateur simple à concevoir Temps exécution long, hardware plus compliqué et plus coûteux
12 Architecture Harvard => pipelining
Architecture de la CPU (Atmel ATmega) (HARVARD-RISC et pipeline 2 étages) 13
14 Architecture famille Atmel Atmega (HARVARD- RISC)
Organisation de la CPU: - bus d adresse, bus de données et bus de contrôle - les registres de travail - l unité arithmétique et logique (ALU) - l unité de traitement - le pointeur de pile - le registre d état - les interruptions et leur traitement
Bus d adresses pointe la prochaine instruction à exécuter (à 0 au reset). s incrémente de 1 si aucun saut de programme demandé unidirectionnel avec souvent possibilité de mise à l état «haute impédance» piloté par un compteur synchrone à chargement parallèle capacité d adressage direct: de 0 à 2 n -1 (n: taille du bus) 16
Décodage d adresses assigne à un périphérique, une zone dans l espace adressable par le processeur génère un «chip select» (ex.: CS_DDRA=1 quand @=0x3A) 17
Bus de données définit la taille du processeur: 8, 16, 32, 64 bits sens des data contrôlé par Read/Write Von Neumann: bus de données bidirectionnel Harvard: bus de données bidirectionnel pour la mémoire données, unidirectionnel pour la mémoire programme 18
19 Les cycles de lecture/écriture
les registres de travail: bascules D (32 en général) 20
l unité arithmétique et logique Unité arithmétique et logique (ALU) M S1 S0 F 0 0 0 A 0 0 1 A B 0 1 0 A 0 1 1 A+B 1 0 0 A-1 1 0 1 A+B 1 1 0 A-B 1 1 1 A+1 logique arithmétique 2 A M S F B
l unité arithmétique et logique (ALU) effectue les opérations: - addition - soustraction - complémentation - comparaison - multiplication - 22
l unité de traitement assure le décodage et l exécution des instructions ROM Initialisation horloge Code de l instruction à exécuter Compt eur prépos itionna ble (charg ement parallè le) Adresse microcode * * * * * * * * microcode micr opro gra mme * * * * * * * * Signaux de contrôle internes/externes 23
Le pointeur de pile (stack pointer) Pile: zone réservée de la mémoire RAM (en général, la partie haute) Pointeur de pile: registre matériel servant à l adressage de la zone RAM Son rôle est d adresser la pile pour : - la sauvegarde de l adresse de retour du programme lors d un appel à un sous-programme ou lors d une interruption. - la restitution de l adresse de retour du programme lors du retour d un sous-programme ou du retour d une interruption. - la sauvegarde d un contexte (registre d état, registres de travail, ) Cas du ATmega16: - Registre de 16 bits dont seulement les 11 bits de poids faibles sont utilisés (puisque la zone RAM va de $60 à $45F). Il pointe la prochaine adresse libre dans la pile Le pointeur de pile doit toujours être initialisé avec l adresse haute de la RAM dès le début du programme. Dans le cas du Atmega16 cette adresse est $45F. 24
25 pointeur de pile
26 pointeur de pile
Le registre d état (SREG pour ATmega) Registre de 8 bits (bascules D écrites ou lues séparément). contient des «drapeaux» qui se positionnent ou non en fonction du résultat de l instruction qui vient d être exécutée (actifs à 1) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 I T H S V N Z C I : si à 1 => autorise les interruptions T : Bit de stockage pour la copie d'un bit H : Drapeau de signalisation de semi-retenue S : S = N V ( Drapeau de signalisation de signe arithmétique ) V : Drapeau de signalisation de double complément de dépassement N : à 1 si l instruction exécutée génère un résultat négatif Z : à 1 si l instruction exécutée génère un résultat nul C : à 1 si l instruction exécutée a provoqué une retenue Remarque : Lorsqu une instruction est susceptible de modifier l état d un bit du registre SREG, celui-ci est remis à 0 avant l exécution de l instruction. 27
Interruptions et interruptions vectorisées Interruption: Plusieurs demandeurs peuvent activer la même ligne d interruption: le processeur rentre alors dans une boucle d identification du demandeur. - avantage: simplicité du matériel - inconvénient: délai pour servir l interruption (identification par logiciel) Interruption vectorisée: Chaque demandeur dispose d une adresse qui lui est propre: le service est immédiat sauf si une autre interruption est en cours de traitement. 0 à 21 sur Atmega 0 est le plus prioritaire, 21 est le moins prioritaire 28
29 Interruptions vectorisées (ATmega16)
Obtention du programme exécutable description algorithmique => langage de haut niveau => compilation => assembleur => assemblage => exécutable 1) Description algorithmique: (ex. a=a+1 puis b=a) définition du type des variables: Var a, b: caractère non signé a <- a+1 b <- a 2) Traduction en langage C unsigned char a, b; //def des types a++; b=a; Compilation: a et b affectés en priorité à des registres de travail sinon en SRAM
a et b affectés aux registres de travail R4 et R5 a++ traduit en assembleur par «INC R4» b=a par «MOV R5,R4»
32
33