Architectures des ordinateurs

publicité
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
Bus adresses
Mémoire
Bus données
RAM ROM
Microprocesseur
Lignes de contrôle
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
/reset
sck
U6
Reset BUTTON
SW1
R2 10k
D1
C4 10nF
1N914
+5V
Y1
4Meg
C1
22pF
C2
22pF
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
MISO
AT90S8535
pb0-T0
pb1-T1
pb2-Ain0
pb3-Ain1
pb4-ss/
pb5-mos i
pb6-miso
pb7-sck
res et/
vcc
gnd
xtal2
xtal1
pd0-rxd
pd1-txd
pd2-int0
pd3-int1
pd4-oc1b
pd5-oc1a
pd6-icp
adc0-pa0
adc1-pa1
adc2-pa2
adc3-pa3
adc4-pa4
adc5-pa5
adc6-pa6
adc7-pa7
aref
agnd
avcc
tosc2-pc7
tosc1-pc6
pc5
pc4
pc3
pc2
pc1
pc0
oc2-pd7
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
AT90S8535
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
RISC
Avantages Temps d’exécution court,
hardware plus simple, coût puce
électronique réduit
CISC
Instructions puissantes, programme plus
simple à écrire, moins de lignes de
programme, compilateur simple à
concevoir
Inconvénients Programme plus complexe à
Temps exécution long, hardware plus
écrire, plus de lignes, compilateur
compliqué et plus coûteux
difficile à concevoir
Architecture Harvard => pipelining
12 Architecture de la CPU (Atmel ATmega)
(HARVARD-RISC et pipeline 2 étages)
13 Architecture famille Atmel Atmega (HARVARD-­‐RISC) 14 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 à 2n-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 Les cycles de lecture/écriture
19 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
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
F
A
A•B
logique
A
A+B
A-1
A+B
arithmétique
A-B
A+1
A
B
M
2
S F
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)
micr
opro
gra
mme
* * * * * * * *
Adresse microcode
microcode
* * * * * * * *
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 pointeur de pile
25 pointeur de pile
26 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
I
Bit 6
T
Bit 5
H
Bit 4
S
Bit 3
V
Bit 2
N
Bit 1
Z
Bit 0
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 Interruptions vectorisées (ATmega16)
29 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 
Téléchargement