Académique Documents
Professionnel Documents
Culture Documents
Composants numériques
EEA
I. O'Connor
définition classique :
– l'art, ou la science, de construire des édifices
– la disposition, le style, des édifices
définition informatique
– organisation des éléments composant un système
informatique (Fred Brooks, 1962)
• “Computer architecture is the computer as seen by the user”
(Amdhal, 1964)
• "By computer architecture we mean the structure of the
modules as they are organized in a computer system” (Stone,
1987)
• “The architecture of a computer is the interface between the
machine and the software” (Padges, IBM)
structure
– disposition statique des composants (prévisions)
organisation
– interaction dynamique des composants et leur gestion
(conception)
implémentation
– conception de blocs fonctionnels spécifiques
(construction)
évaluation des performances
– étude du comportement du système (test)
disciplines :
– structure matérielle/logicielle
– algorithmes et leur implantation
– aspects langage
the big picture (Hennessy & Patterson) :
– Both hardware and software consist of hierarchical layers, with
each lower layer hiding details from the level above. This principle
of abstraction is the way both hardware designers and software
designers cope with the complexity of computer systems. One key
interface between the levels of abstraction is the instruction set
architecture: the interface between the hardware and low-level
software. This abstract interface enables many implementations of
varying cost and performance to run identical software.
Application (Netscape)
Operating
Compiler System
Assembler (Windows...)
Software
Instruction Set
Hardware Processor Memory I/O system Architecture
Assembly Language
Program lw $to, 0($2)
lw $t1, 4($2)
Assembler sw $t1, 0($2)
sw $t0, 4($2)
Machine Language
Program 0000 1001 1100 0110 1010 1111 0101 1000
1010 1111 0101 1000 0000 1001 1100 0110
Machine Interpretation 1100 0110 1010 1111 0101 1000 0000 1001
0101 1000 0000 1001 1100 0110 1010 1111
Control Signal
Specification
°
°
ELFE / Composants numériques : I.
O'Connor
8 EEA
Plan
Composition d'un microprocesseur
– unité de calcul
– unité de contrôle
Mesure des performances d'un microprocesseur
Stratégies d'amélioration des performances
– pipeline
– cache
– mémoire virtuelle
Communication externe
– bus
– périphériques
ELFE / Composants numériques : I.
O'Connor
9 EEA
Cinq composants d'une machine à calcul
ordinateur clavier,
processeur périphériques souris
processeur périphériques
(actif)
(actif) disque
mémoire
mémoire (pour
(passive)
(passive) entrée
entrée
contrôle
contrôle programmes,
(Asterix)
(Asterix) (pour données,
(pour
programmes,
programmes, lorsqu'ils ne
données, sortie
sortie sont pas
données,
datapath lorsqu'ils
lorsqu'ilssont
sont utilisés)
datapath utilisés)
(Obélix)
(Obélix) utilisés)
écran,
imprimante
processeur (CPU)
– la partie active de la machine
– qui effectue tout le travail (manipulation des données, prise de
décisions)
– composé d'un chemin de données et d'une partie contrôle
chemin de données (ALU/datapath)
– partie du processeur qui contient tout le matériel (circuits)
nécessaire à au bon fonctionnement de toute opération effectuée
par la machine ("force physique")
contrôle (CTU)
– partie du processeur (également matérielle) qui dirige le chemin
de données, lui faisant faire les opérations nécessaires ("force
intellectuelle")
data
A B
R0
R1
Décodeur CODOP ALU R2
R3
S
Séquenceur
A0
A1
@
registre d'état
stack pointer (SP)
MUX
program counter (PC)
data
MUX
A B
R0
CTU R1
CODOP ALU
R2
R3
S
@
ELFE / Composants numériques : I.
O'Connor
15 EEA
Architecture interne de l'ALU
clk
A B clk
CODOP MUX
clk
S P clk
A 0 S Y A
Y 0 A Y
B 1 1 B B
S
S
ELFE / Composants numériques : I.
O'Connor
17 EEA
La fonction du registre
définition générale d'un registre
– un endroit où l'on peut stocker 1 ou plusieurs bits pour
récupération ultérieure
– en matériel, constitués de portes et fils
les registres sont utilisés ici pour :
– utilisation générale (variables internes, résultats intermédiaires)
– tampons entre étages du chemin de données
– registres spécifiques (PC ...)
clk clk
D Q D Q
clk
reg
q[n-1:0]
d[n-1:0]
d[n-1]
d[n-2]
d[n-3]
d[0]
D Q D Q D Q D Q
q[n-1]
q[n-2]
q[n-3]
q[0]
clk
q[n-1:0]
clk
reg
q[n-1:0]
d[n-1:0]
d[n-1]
d[n-2]
d[n-3]
d[0]
ld
D Q D Q D Q D Q
q[n-1]
q[n-2]
q[n-3]
q[0]
clk
q[n-1:0]
opérations arithmétiques
– addition, addition, addition ...
– soustraction = A + !B + 1
– multiplication = additions + décalages à gauche
– division = soustractions + décalages à droite
– ou unité de calcul spécifique
opérations logiques
– et, ou, inversion
– ou exclusif, égalité
– décalage à droite, à gauche
2 opérandes 1 opérande
ET : Y[(N −1):0 ] = A [(N −1):0 ]• B[(N −1):0 ] INV : Y[(N −1):0 ] = A [(N −1):0 ]
N N
*: ( )
Y[(N −1):0 ] = ∑ A [(N −1):0 ]• Bi × 2i = ∑ A [(N −1):0 ]• (Bi << i )
i =0 i =0
deux cycles
un cycle
registre
registre
data
A B
R0
R1
Décodeur CODOP ALU R2
R3
S
Séquenceur
A0
A1
@
registre d'état
stack pointer (SP)
MUX
program counter (PC)
data
add R0, R2
A B
R0 mov R0, (M)
R1
Décodeur
CODOP
ALU R2
R3
@k
S
jsr
Séquenceur
A0
A1 Décodage
printf
@
registre d'état
stack pointer (SP) d ’@
MUX
program counter (PC)
k
r w j
bus d'adresse i
...
data
add R0, R2
A B
R0 mov R0, (M)
R1
Décodeur
CODOP
ALU R2
R3
@k
S
jsr
Séquenceur
A0
A1 Décodage
printf
@
registre d'état
stack pointer (SP) ’@
MUX
program counter (PC)
SP @ret
r w k
j
i
...
ELFE / Composants numériques : I.
O'Connor
32 EEA
Système informatique
data
add R0, R2
A B
R0 mov R0, (M)
R1
Décodeur
CODOP
ALU R2
R3
I.T. @k
S
jsr
Séquenceur
A0
A1 Décodage
printf
@
registre d'état
stack pointer (SP) d ’@
MUX
program counter (PC)
@ret
r w k
Int. (NMI, IRQ, …) j
i
...
ELFE / Composants numériques : I.
O'Connor
35 EEA
Gestion par interruptions
interruption externe
– clavier, souris, disque dur ...
associé à chaque interruption est un programme
de traitement de l'interruption
différence fondamentale avec les sous-
programmes : leur exécution n'est pas prévue
dans la séquence du programme principal,
l'arrivée d'une interruption est imprévisible
nécessite un tableau de vecteurs d'interruption
pour déterminer quelle ensemble d'instructions
exécuter
ELFE / Composants numériques : I.
O'Connor
36 EEA
Utilisation des interruptions
déroulement d'une interruption
– l'interruption fait basculer le déroulement de l'exécution
vers le programme de service d'interruption générale,
par le biais du vecteur d'interruption, qui contient les
adresses de tous les programmes d'interruption
– la procédure d'interruption doit conserver l'adresse de
l'instruction interrompue
– les interruptions entrantes sont désactivées lors du
traitement d'une autre interruption pour empêcher les
interruptions perdues
un système d'exploitation
– fonctionne à base d'interruptions
– sauvegarde registres internes et le compteur ordinal
ELFE / Composants numériques : I.
O'Connor
37 EEA
Interrupt Time Line For a Single Process Doing Output