Archi V Tarek
Archi V Tarek
Archi V Tarek
1
Ordinateur et logiciel
Les technologies numériques sont maintenant
omniprésentes
Elles sont le moteur et l'objet de ce qu'on appelle la
« révolution numérique »
Elles sont basées sur l'interaction entre :
Des programmes, aussi appelés logiciels,
décrivant des processus de traitement de
l'information : biens immatériels
Des ordinateurs, capables d'exécuter ces
programmes : biens matériels
2
Représentation de l'information
L'information est représentée au sein des
composants de l'ordinateur sous forme de
différents états de la matière :
« Trou » ou « pas trou » sur la surface d'un
cédérom ou DVD
Orientation nord ou sud d'un matériau
magnétique
Lumière ou absence de lumière émise par un
laser
Courant électrique ou non
3
8
Évolutions architecturales (2)
1971 : Processeur Intel 4004
2300 transistors dans un unique circuit intégré
Fréquence de 740 kHz, 0,092 MIPS
…40 ans d'une histoire très riche...
2011 : Processeur Intel Core i7 2600K
Plus de 1,4 milliards de transistors
Fréquence de 3,4 GHz
4 cœurs, 8 threads
128300 MIPS 9
Évolutions architecturales (3)
Entre le 4004 et le Core i7 2600K :
La fréquence a été multipliée par 4600
La puissance en MIPS a été multipliée par 1,4 million
12
Barrière de la complexité (1)
À surface constante, le nombre de transistors
double tous les 2 ans
« Loi de Moore », du nom de Gordon Moore, co-
fondateur d'Intel, énoncée en 1965
Diminution continuelle de la taille de gravage des
transistors et circuits sur les puces de silicium
On grave actuellement avec un pas de 14 nm
Limites atomiques bientôt atteintes...
Donc plus possible d'intégrer plus
Mais on veut toujours plus de puissance de calcul ! 13
Barrière de la complexité (2)
Que faire de tous ces transistors ?
On ne voit plus trop comment utiliser ces transistors
pour améliorer individuellement les processeurs
Des processeurs trop complexes consomment trop
d'énergie sans aller beaucoup plus vite
Seule solution actuellement : faire plus de
processeurs sur la même puce !
Processeurs bi-cœurs, quadri-coeurs, octo-cœurs,
… déjà jusqu'à 128 cœurs !
Mais comment les programmer efficacement ?! 14
Barrière de la complexité (3)
L'architecture des ordinateurs a été l'un des
secteurs de l'informatique qui a fait le plus de
progrès
Les ordinateurs d'aujourd'hui sont très
complexes
Plus d'un milliard de transistors dans un
processeur
Nécessité d'étudier leur fonctionnement à
différents niveaux d'abstraction
Du composant au module, du module au système 15
Structure d'un ordinateur (1)
Un ordinateur est une machine programmable
de traitement de l'information
Pour accomplir sa fonction, il doit pouvoir :
Acquérir de l'information de l'extérieur
Stocker en son sein ces informations
Combiner entre elles les informations à sa
disposition
Restituer ces informations à l'extérieur
16
Structure d'un ordinateur (2)
L'ordinateur doit donc posséder :
Une ou plusieurs unités de stockage, pour
mémoriser le programme en cours d'exécution
ainsi que les données qu'il manipule
Une unité de traitement permettant l'exécution
des instructions du programme et des calculs sur
les données qu'elles spécifient
Différents dispositifs « périphériques » servant à
interagir avec l'extérieur : clavier, écran, souris,
carte graphique, carte réseau, etc.
17
Structure d'un ordinateur (3)
Les constituants de l'ordinateur sont reliés
par un ou plusieurs bus, ensembles de fils
parallèles servant à la transmission des
adresses, des données, et des signaux de
contrôle Mémoire
graphique
Unité de Contrôleur
traitement Mémoire de bus Contrôleur
(processeur) centrale AGP graphique
Bus AGP
Contrôleur Contrôleur
Bus local
de disque de bus
dur IDE/ATA PCI Bus PCI
Carte Ca rte
d'extensi d'e
d'extension 18
on xt
Structure d’un ordinateur (4)
19
Unité de traitement (1)
L'unité de traitement (ou CPU, pour « Central
Processing Unit »), aussi appelée
« processeur », est le cœur de l'ordinateur
Elle exécute les programmes chargés en
mémoire centrale en extrayant l'une après
l'autre leurs instructions, en les analysant, et
en les exécutant
20
Unité de traitement (2)
L'unité de traitement est composé de plusieurs
sous-ensembles distincts
L'unité de contrôle, qui est responsable de la
recherche des instructions à partir de la mémoire
centrale et du décodage de leur type
L'unité arithmétique et logique (UAL), qui effectue
les opérations spécifiées par les instructions
Un ensemble de registres, zones mémoires rapides
servant au stockage temporaire des données en cours de
traitement par l'unité centrale
21
UAL
• Fonction logique nécessaire du microprocesseur
23
UAL
• Opération arithmétiques complexes faite de
deux manière différentes :
• Méthode câblée
• Méthode microprogrammée
24
UAL: méthode câblée
• Opération arithmétiques complexes faite de
deux manière différentes :
• Méthode câblée :
• Ajout d’un circuit numérique spécialisé à l’UAL
• Complexité de l’UAL
25
UAL: méthode microprogrammé
• Transformation d’une opération arithmétique
complexe en opérations moins complexes
26
UAL
27
UCC: Unité de commande
• Responsable de la lecture en mémoire
28
UCC: Unité de commande
29
UCC: Unité de commande
• Décodeur : détermination de l’opération et des
opérandes
•Séquenceur :
• gestion des signaux de commandes au différents
composants selon un chronogramme
• Câblé ou microprogrammé
30
UCC: Séquenceur câblé
• Circuit séquentiel complexe
31
UCC: Séquenceur microprogrammé
• Remplacement du circuit logique par un mémoire
ROM
•Le compteur :
• A un contenu initialisé en fonction de l’opération
• A un contenu incrémenté à chaque cycle d’horloge
• Servant à adresser la mémoire morte 32
UCC: Séquenceur microprogrammé
33
UCC: Séquenceur microprogrammé
• Plus lent que le séquenceur câblé
35
Récapitulation
• UCC : recherche d’information par
• Envoi d’adresse à la mémoire centrale
• Envoi de commande à la mémoire centrale
Il s’agit de l’opération Fetch
:
•Instruction enregistrée et transférée sous forme binaire à l’adresse choisie
•Décodage et détermination de l’opération demandée
Il s’agit de l’opération Decode
37
Bus de données
• Acheminement des données échangées par les divers boitiers du
système
•Bus bidirectionnel
38
Bus d’adresses
•Transfert des adresses vers les dispositifs
branchés sur le bus de données
39
Bus de commande
• Transport des signaux de synchronisation entre le microprocesseur et
les dispositifs branchés
40
Notion de bus local
•Bus E/S tels que ISA, EISA, MCA reliés au bus
principal
•CPU modeste & Péripériques +/ - lents Ok
•CPU + rapides pilotant des bus de hautes
fréquences
•De + en + de périphériques rapides
•Remède : interfaçage direct sur le bus processeur
(FSB: front Side Bus) très rapide
•Architecture dite de bus local
41
Réalisation
42
Bus ISA
•Industry Standard Architecture
A éviter
44
Bus MCA
•Micro Channel Architecture
45
Bus MCA
•Autorise le mastering (DMA) très efficace
• Bus propriétaire
46
VESA/VLB
•VESA Local Bus
47
VESA/VLB
•Composé de ISA 16 bits + connecteur
supplémentaire 16 bits
32 bits
48
PCI
•Peripheral Component Interconect
49
PCI
•3 à 5 slots blancs (normalisés sur carte mère)
•Possibilité de chainage
50
PCI
•3 à 5 slots blancs (normalisés sur carte mère)
•Possibilité de chainage
51
Evolution de PCI
52
Evolution de PCI
53
AGP
•Accelerated Graphics Port
54
AGP
•1x envoie 8 octets/2 cycles, 2x: 8 octets/cycle
533 Mo/s
56
PCI Express
•Sorti en juillet 2002, PCI express est un bus série
57
PCI Express
•Autorisation du branchement à chaud
58
PCI Express
59
Bus PCMCIA
•Personnal Computer Memory Card International
Association
• 3 formats
60
Bus PCMCIA
61
Bus SCSI
•Small Computer System Interface
62
Bus SCSI
•Réservé aujourd’hui aux serveurs
•Simultanéité :
63
Fonctionnement SCSI
•Adressage :
• N° de carte SCSI
• ID: N° de contrôleur périphéiruqes
• LUN : Logical Unit Number (0..7)
65
Bus ATA / IDE
•Standard ATA (Advanced Technology
Attachement)
66
Modes de
fonctionnement
•Mode PIO (Programmed Input/Output):
• Échanges gérés entièrement par le processeur
69
USB 2.0
•Introduit en 2001
70
Le bus Firewire
•Créé en 95 par Apple (norme IEEE 1394)
•Appelé i.Link par Sony
•Appelé Lynx par Texas Instruments
•Jusqu’à 64 périphériques en série, Hot PnP
•Câble longueur max :4.5 m
•Bande passante 100 à 400 Mbps (> 30*USB 1.1)
•Energie : 24V/15W
•Dialogue entre appareils (pas de maître)
71
Le bus Firewire 2
•Créé en 2001 par Apple (Firewire Gigawire), régi par
norme 1394b
•Débit de 800 Mbps et bientôt 1.6 et 3.2 Gbps
•Développement en 2 phases
• Firewire-Audio : bande passante et qualité élevées
• Serial Bus Protocol 2 (SBP2): stockages de masse de
commandes ou de données asynchrones
• Utilisé par Epson et Umax pour les scanners et
imprimantes
72
Fonctionnement du Firewire
73
USB ou Firewire
74
CPL
•Courant porteur en ligne
•De + en + utilisé
•Utilisation du câblag électrique (signal HF)
•Vitesse 0.4 Mbps (1998) 8 Mbps (2005)
•Norme HomePlug 1.01 HomePlug AV (45 Mbps)
•Méthode d’accés = topologie de bus
•Mode de fréquance : 4-21 Mhz (84 porteuses)
•Longuer 300m
•Cryptages D.E.S (Data Encryption Standard) 56 bits
75
Applications
•Faire les applications suivantes :
• Addition binaire
• Soustraction binaire
• Multiplication binaire
• Division binaire
76
Chemin de données (1)
Le chemin de données représente la structure
interne de l'unité de traitement
Comprend les registres, l'UAL, et un ensemble de
bus internes dédiés
L'UAL peut posséder ses propres registres destinés
à mémoriser les données d'entrées afin de
stabiliser leurs signaux pendant que l'UAL calcule
Le chemin des données conditionne fortement
la puissance des machines
Pipe-line, superscalarité, …
77
Chemin de données (2)
Chemin de données d'une machine de type
« Von Neumann »
A+B
A
B
Registres généraux
A B
Registres
d'entrée de l'UAL
UAL
A+B
Registre de sortie
de l'UAL
78
Exécution d'une instruction (1)
L'exécution d'une instruction par l'unité
centrale s'effectue selon les étapes suivantes :
1 Charger la prochaine instruction à exécuter depuis
la mémoire vers le registre d'instruction
2 Décoder (analyser) l'instruction venant d'être lue
3 Faire pointer le compteur ordinal vers l'instruction
suivante (y compris dans le cas de branchements)
4 Localiser en mémoire les données nécessaires
5 Charger si nécessaire les données dans l'UAL
6 Exécuter l'instruction, puis recommencer 79
Architecture des ordinateurs
Les ordinateurs modernes sont conçus
comme un ensemble de couches
Chaque couche représente une abstraction
différente, capable d'effectuer des opérations
et de manipuler des objets spécifiques
L'ensemble des types de données, des
opérations, et des fonctionnalités de chaque
couche est appelée son architecture
L'étude de la conception de ces parties est
appelée « architecture des ordinateurs » 80
Machines multi-couches actuelles
5 Langages d'application
Traduction (compilateur)
4 Langage d'assemblage
Traduction (assembleur)
3 Système d'exploitation
Interprétation partielle (SE)
2 Jeu d'instructions
Interprétation ou exécution
1 Microarchitecture
Matériel
0 Logique numérique
81
Couche logique numérique
Les objets considérés à ce niveau sont les
portes logiques, chacune construite à partir de
quelques transistors
Chaque porte prend en entrée des signaux
numériques (0 ou 1) et calcule en sortie une
fonction logique simple (ET, OU, NON)
De petits assemblages de portes peuvent
servir à réaliser des fonctions logiques telles
que mémoire, additionneur, ainsi que la logique
de contrôle de l'ordinateur 82
Couche microarchitecture
On dispose à ce niveau de plusieurs registres
mémoire et d'un circuit appelé UAL (Unité
Arithmétique et Logique, ALU) capable de
réaliser des opérations arithmétiques
élémentaires
Les registres sont reliés à l'UAL par un chemin
de données permettant d'effectuer des
opérations arithmétiques entre registres
Le contrôle du chemin de données est soit
microprogrammé, soit matériel 83
Couche jeu d'instruction
La couche de l'architecture du jeu
d'instructions (Instruction Set Architecture,
ISA) est définie par le jeu des instructions
disponibles sur la machine
Ces instructions peuvent être exécutées par
microprogramme ou bien directement
84
Couche système d'exploitation
Cette couche permet de bénéficier des
services offerts par le système d'exploitation
Organisation mémoire, exécution concurrente
La plupart des instructions disponibles à ce
niveau sont directement traitées par les
couches inférieures
Les instructions spécifiques au système font
l'objet d'une interprétation partielle (appels
système)
85
Couche langage d'assemblage
Offre une forme symbolique aux langages
des couches inférieures
Permet à des humains d'interagir avec les
couches inférieures
86
Mémoire centrale : Objectifs
• Comprendre le fonctionnement de la mémoire
centrale d’un ordinateur
87
Mémoire centrale : types
-dynamique (DRAM) VS statique (SRAM);
-vive (RAM) VS morte (ROM);
- fonctionnement des trois types de mémoire
cache (antémémoire) :
- correspondance directe
- correspondance associative
- correspondance associative par ensemble de
blocs;
-évaluation quantitative de l’organisation des
mémoires.
88
Hiérarchie des mémoires
• Temps d’accès
• Capacité
• Coût par bit
89
Hiérarchie des mémoires
Vitesse Capacité
registres
1 ns 100 o
du CPU
10 ns mémoire cache 1 Mo
90
Types d’accès
• Temps d’accès
• Capacité
• Coût par bit
91
Types d’accès
°Accès séquentiel (e.g. bande magnétique) : le
plus lent de tous
93
94
Mémoire à semiconducteurs
° mémoire à accès direct (RAM)
95
Mémoire à semiconducteurs
Mémoire à m bits par adresse
96
Mémoire à semiconducteurs
Mémoire statique MOS
Mémoire statique nécessitant 6
transistors par bit.
Très couteuse en pratique mais
rapide
Puces de capacité modeste
97
Mémoire à semiconducteurs
Mémoire dynamique MOS
• Mémoire centrale basée sur la
mémoire dynamique ou DRAM
98
Mémoire à semiconducteurs
Mémoire mortes
• ROM (Read-Only Memory)
• PROM ( Programmable Read-Only Memory)
• EPROM (Electically Programmable Read-Only Memory)
• EAROM (Electrically Alterable Read-Only Memory)
• EEPROM (Electrically Erasable Programmable Read-Only
Memory)
100
Mémoire à semiconducteurs
•Mémoire dynamique de 128 Mo organisée
en 256M x 4
•Nombre total de bits = 256 Mbit x 4
= 1024 Mbit
•Nombre total d’octets = 1024 Mbit / 8
= 128 Mo
•Nombre total d’adresses = 228= 256 M
102
Mémoire à semiconducteurs
Mémoire dynamique chronogramme
103
Mémoire à semiconducteurs
Mémoire dynamique chronogramme
• SIMM (Single Inline Memory Module)
104
Mémoire à semiconducteurs
Mémoire dynamique chronogramme
• SIMM (Single Inline Memory Module)
105
Mémoire à semiconducteurs
Mémoire dynamique chronogramme
• DIMM (Dual Inline Memory Module): Process lisant 64
bits à la fois sur le bus de données
DIMM de 16 Mo
107
Structure physique de la mémoire
centrale : Mode page rapide
•Dans ce mode, on réduit le temps d’accès en maintenant
RAS bas, en altérant seulement les adresses de colonne et
en activant CAS chaque fois.
•Les temps d’accès sont 6-3-3-3, c’est à dire 6 cycles pour
la lecture de la première donnée, puis 3 cycles par donnée
successive dans la même rangée.
•Ceci est une amélioration importante par rapport au mode
normal qui nous donnerait 6-6-6-6.
108
Structure physique de la mémoire
centrale : Mode page rapide
109
Structure physique de la mémoire
centrale : Mode EDO
•Amélioration majeure apportée aux DRAM asynchrones :
mémoire EDO (Extended Data Out).
•Pas de désactivation des tampons de sortie sur la montée
de CAS.
•Élimination du temps de précharge au moment de
verrouillage des données en sortie.
•Réduction du temps minimum où CAS est bas, et la
montée peut donc se produire plus tôt.
•Nouvelle adresse de colonne appliquée avant la fin du
cycle précédent
.
110
Structure physique de la mémoire
centrale : Mémoire EDO
111
Structure physique de la mémoire
centrale : Mode EDO
•Procuration d’une amélioration de 40% du temps d'accès
•Bon fonctionnement jusqu'à une fréquence de bus de 83
MHz.
•Puces DRAM suffisamment rapides (>55 ns)
•Utilisation des mémoires EDO jusqu'à une fréquence de
bus de 100 MHz.
•Les temps d'accès typiques 5-2-2-2 avec une fréquence de
bus de 66 MHz.
•EDO considérée comme dépassée.
•La tendance actuelle : DRAM synchrones.
112
Structure physique de la mémoire
centrale : Mode BEDO
•Burst EDO ou BEDO
114
Mémoire SDRAM
115
Mémoire SDRAM
116
Mémoire cache
•La mémoire centrale lente par rapport à la vitesse d’horloge
des processeurs actuels utilisation d’une mémoire cache
ou antémémoire de capacité plus faible faite de mémoire
statique entre le processeur et la mémoire centrale.
117
Mémoire cache
118
Mémoire cache
•La mémoire cache est basée sur le principe de localité:
1. Localité temporelle: si un objet a été référencé, il sera
référencé de nouveau bientôt (exemple : boucle).
2. Localité spatiale: si un objet a été référencé, des objets
proches seront également référencés (exemple : tableau).
121
Mémoire cache : cache associatif
122
Mémoire cache: cache associatif
1. Quand une donnée est placée dans le cache, le numéro de
bloc de l’adresse fournie par le processeur est placé dans le
champ étiquette de la rangée où la donnée est placée.
126
Mémoire cache: cache à accès direct
127
Mémoire cache: cache associatif par
ensemble de blocs
•Le cache associatif par ensemble de blocs est un compromis
entre le cache purement associatif et le cache à accès direct.
On a 2 ou 4 blocs de données. D’un ensemble à l’autre, le
cache est associatif. Cependant, les blocs (rangées) sont
gérés comme dans le cache à correspondance direct.
128
Mémoire cache: cache associatif par
ensemble de blocs
129
Mémoire cache: politique d’écriture
dans un cache
Écriture simultanée (write-through) : Lors d’une écriture,
l’information est écrite simultanément dans le cache et en
mémoire centrale. Toute écriture prend le même temps qu’un
échec de cache, donc perte d’efficacité.
Récriture (write-back) : Lors d’une écriture, l’information n’est
écrite que dans le cache. Ce n’est que lors d’un remplacement
de la rangée du cache où elle se trouve que l’information est
transcrite en mémoire centrale. L’écriture est aussi rapide que la
lecture tant qu’un bloc est dans le cache. Cependant les données
en mémoire centrale sont inconsistantes avec celles du cache
tant que les données modifiées n’y ont pas été recopiées.
130
Mémoire cache: performance
131
Mémoire cache: performance
Succès du cache : 3 ns
Échec du cache
• Accès cache conduisant à l’échec : 3 ns
• Lecture d’un bloc en mémoire centrale. Par exemple, 32 octets
en 4 accès de 64 bits ( 8 octets) à 33 ns / accès = 132 ns.
• Temps total : 132 + 3 = 135 ns.
Soit P la probabilité d’un succès. Le temps d’accès moyen sera
T = P x 3.3 + (1 - P) x 135
Le temps d’un accès mémoire normal étant 33 ns, on veut que P
soit tel que T < 33 ns . On calcule que le taux de succès P doit être
supérieur à 77% pour le cache soit utile.
132
Mémoires auxiliaires
Digtal Redundant
Audio Array of
Tape Independant
Disc
Digtal
Linear
Tape
133
Mémoires auxiliaires
134
Les disques durs
135
Les disques durs
136
Les disques durs
137
Les disques durs : temps d’accès
• la dimension du disque.
138
Les disques durs : déplacement des
têtes
Cylindre sur une mauvaise piste déplacement des
têtes
139
Les disques durs : déplacement des
têtes
Attente que le début du secteur visé arrive sous la tête
de lecture :
140
Les disques durs : déplacement des
têtes
•Transfert des données: temps nécessaire pour faire défiler
le secteur entier
sous la tête de lecture.
141
Les disques durs : Calcul de capacité
de débit
•Capacité DD = nombre total de secteurs * nombre d’octets
par secteur
143
Les disques durs caractéristiques
144
Les disques durs : Optimisation
d’accès (NCQ)
•Native Command Queuing
•Amélioration des performances par réorganisation de
l’ordre des requêtes envoyées
145
Les disques durs SATA
146