Vous êtes sur la page 1sur 126

Cours : Architecture des Ordinateurs

Mohamed Wassim JMAL


Quelles sont les différences entre ...

2
Quelles sont les différences entre ...

3
Quelles sont les différences entre ...

4
Quelles sont les différences entre ...

5
Quelles sont les différences entre ...

6
Quelles sont les différences entre ...

7
8
Historique
Du tube à vide au µp
Historique : La génération des calculateurs
mécaniques (1642-1945)

1672 : Leibniz
 Addition, Soustraction, multiplication, division.

Ancêtre de la
calculatrice
Historique : 1ère Génération : les
tubes à vide (1942-1955)
1907 : Lee de FOREST l'audion (ou triode
ou lampe)

1943 : John Mauchley, Prester Eckert,


Von Neuman: l ’ENIAC
Historique : 1ère Génération (les
tubes à vide (1942-1955))

•Composition : 20000 tubes


•poids : 30 tonnes
•surface : 72 m²
•refroidissement : 1t glace/j
•puissance : 140 KW
•prix : 1/2 million de $

•Performances (horloge 100 KHZ) : 330


multiplication/sec
•1 millionnième de la puissance d ’un
pentium) Utilisations :
•Programmation faite par • Calcul de table balistiques
6000 commutateurs manuels • Développement de la bombe H
Historique : 1ère Génération : les
tubes à vide (1942-1955)
1952 : John Von neuman

• Premier ordinateur à programme


enregistré

• Base de l ’architecture des


ordinateurs actuels

Mémoire

Entrée
Unité arithmétique
Unité de
et logique
commande
Sortie
Historique : 2 ième Génération : les
transistors (1955-1965)
Le transistor :

• Inventé en 1948 au Bell Labs par John Barden,


Walter Brattain, Willian Shocley
• Prix Nobel 1956

Avantages transistors / tubes (ou lampes) :


Plus petit
consommation moindre
plus rapide
Historique : 2 ième Génération : les
transistors (1955-1965)

1956 : 1er ordinateur à transistors : le TRADIC (BELL Labs)

Caractéristiques :
800 transistors
Puissance : 100 W
Volume 3m3
Historique : 2 ième Génération : les
transistors (1955-1965)

1958 : lancement du 1er ordinateur commercial entièrement transistorisé : le CDC


1604 par Sygmoun Cray.

• 1er d ’une série de super-calculateurs


dédiés aux calculs scientifiques.
• Caractéristiques :
processeur 48 bit
Temps de cycle : 5 ms
Historique : 2 ième Génération : les
transistors (1955-1965)

Rang Compagnies Production Part de marché


1 IBM 4806 65.8 %
Vente 2 Rand 635 8.7 %
d ’ordinateur en 3 Burrough 161 2.2 %
1962 : 4 CDC 147 2.0 %
5 NCR 126 1.7 %
6 RCA 120 1.6 %
7 GE 83 1.1 %
8 Honeywell 41 0.6 %
Autres 1186 16.3 %
Total 7305 100 %
Historique : 3 ième Génération : les
circuits intégrés (1965-1980)

Circuit intégré :

• Inventé en 1959 par Jack Kilby (Texas


Instruments).
• Principe : fabriquer dans un même bloc
de semi-conducteur (une puce ) plusieurs
composants (résistances, condensateurs,
transistors).
Historique : 3 ième Génération : les
circuits intégrés (1965-1980)
1965 : Le premier ordinateur à base de Circuits intégrés : l ’IBM 360

Destiné aussi bien aux calculs


scientifiques qu’à la gestion

Innovation : famille de 6 modèles de


machines de taille et de puissances
différentes, mais compatible entre elles
(dotées du même langage machine)

• Grand succès commercial


Historique : 3 ième Génération : les
circuits intégrés (1965-1980)

1971 : Le premier processeur : L ’INTEL 4004

Caractéristiques :
Pocesseur 4 bit
Fréquence : 108 KHz
2300 transistors, 1.5 cm²
Quelques grammes

Remplace
72 m²
30 tonnes
Historique : 4 ième Génération :
Ordinateurs personnels et VLSI (1980-?)

VLSI : Very Large Scale Integration : des dizaines et des millions de transistors sur un même CI
Croissance permanent du taux d’intégration

Nouvelles applications :
Pentium
• Traitement de texte
• Calcul financiers (tableurs)
• Jeux
Historique : 4 ième Génération :
Ordinateurs personnels et VLSI (1980-?)

1981 : Le 1er grand succès commercial : le VIC 20

Caractéristiques :
5 ko de RAM
affichage : 22 lignes de 23 Caractères
Prix : 2000 F
Vente : jusqu’à 9000 /jour. 1 millions
de modèles vendu en 1983
Les microprocesseurs hier, aujourd’hui et
…demain ?
• Au niveau technologique (commutateur):
Tubes à vide (1904) → transistor (années 20-30) semi-conducteur/65nm →
nanotechnologies (1 à 0.1nm)
• Au niveau de la mémoire:
1 Ko (en 1970) → quelques GO (230)
Une faune variée: mémoire externe, mémoire centrale, mémoire cache (de
plusieurs niveaux différents)
• Au niveau de l’architecture:
Du modèle Von Neumann → architectures plus parallèles (pipeline?, super
scalaire?, multi cœur?)

23
Les systèmes à microprocesseurs

Rappel et encore plus

24
Un peu d ’histoire

Qui a inventé le microprocesseur ?


quand ? En 1971

• Composant micro programmé


• 4 bits
• 2300 transistors
• Horloge 100 Khz
• Développé par INTEL pour BUSICOM
Pourquoi un microprocesseur ?
• Intel a initialement produit des mémoires.

• Busicom, fabricant japonais de machines à calculer, lui demande en 1969 de


mettre au point douze circuits intégrés pour assurer les fonctions de ses
machines.

• Un ingénieur d’Intel, Ted Hoff, propose de concevoir un circuit intégré


programmable unique pour réaliser l’ensemble de ces fonctions.

• Busicom approuve cette solution. Le travail fut réalisé en neuf mois sous la
direction de Federico Faggin. Le 4004 est né en 1971. C’est le premier
microprocesseur.

• Il a autant de puissance de calcul que l’ENIAC. Il utilise un « chemin de


données à 4 bits » , ce qui le rend utilisable pour des automatismes ou des
calculettes mais non pour construire un ordinateur.

• Intel rachète pour 60 000 $ les droits de Busicom sur le 4004 (peu après,
Busicom fit faillite). Il faut trouver d’autres clients. Intel se lance dans une
communication active pour convaincre la profession d’écrire des logiciels pour
le 4004 et de l’utiliser pour des automatismes comme le contrôle des feux de
circulation.
Organisation
Architecture de
von Neumann Bus

Entrées

Sorties

Stockage • Gestion du système • Communication


• du programme • Exécution du programme • Adaptation électrique
• des données
Microprocesseur  périphériques

27
Rôle du microprocesseur
µP
Le microprocesseur exécute un programme
Il existe plusieurs langages de programmation :
Assembleur ( langage machine)
Langage évolué ( C , Basic , Java … )

Un programme est une suite d’instructions qui réalise une tache

Une instruction est une opération simple

Opération de lecture ou écriture en mémoire


Opération logique ( ET, OU, décalage …)
Opération arithmétique ( Addition, soustraction … )

28
Caractéristiques du µP
Le format des données La taille de l ’espace adressable
= Nombre de bit du bus de donnée = Nombre de bit du bus d ’adresse
•8bits •16 bits = 65.536 adresses
•16bits •32 bits = 4.294.967.296 adresses
•32bits

La puissance de traitement
S’exprime en MIPS
(Millions d’Instructions Par Seconde)

Le jeu d ’instructions

La puissance consommée •Etendu (CISC)


• Réduit (RISC)
•Pd (w) fonction de la vitesse
•Pd (w) fonction de la tension 29
Les mémoires 1/2

Une mémoire est un composant qui permet de stocker l ’information.

Une mémoire est caractérisée par :


1 Kilo = 210 = 1.024
•Sa capacité exprimée en 1Méga = 220 = 1.048.576
Bit, Kbit , Mbit, Gbit 1Giga = 230 = 1.073.741.824
ou
octets, Ko, Mo, Go 1 bit = information de base =  ou 
1 octet ( byte ) = 8 bits
        = 165 10
•Son temps d ’accès
Exprimé en ns, il renseigne sur la vitesse de la mémoire

•Le format de son bus de donnée


1bit, 4bits, 8bits... 30
Les mémoires 2/2

Il existe 2 types de mémoires

La mémoire vive : RAM


(Random Acces Memory)

La mémoire morte : ROM


(Read Only Memory)
31
Mémoire Vive : RAM
Dans la mémoire vive on peut lire et écrire.

La RAM est une mémoire volatile :


•Les données sont perdues à la mise hors tension.
•A la mise sous tension son contenu est aléatoire.
La RAM est utilisée pour le
stockage de données temporaires.
(valeurs d’acquisition, résultats de calculs, etc.)

Il existe deux technologies de RAM :


•RAM statiques (cellule mémoire = bascule)

•rapide, capacité faible.


•RAM dynamiques (cellule mémoire = Condensateur)

•lentes (rafraîchissement) , grande capacité.


32
Bus de données
bidirectionnel

Bus de commande R/W

unidirectionnel CS
OE

R/W: lecture /écriture


(Read / Write)
Bus d’adresses
CS: Sélection du circuit unidirectionnel
(Chip Select)

OE: Validation des sorties


(Output Enable)

33
Mémoire morte : ROM

Dans la mémoire morte on ne peut que lire .

La ROM est une mémoire non volatile :


•Les données sont conservées indéfiniment,
même hors tension .

La ROM est utilisée pour le


stockage permanent du programme.

BIOS en ROM d ’une carte mère


(Basic Input Output System)
34
Types de mémoire

‘Mémoires mortes’ ou
ROM (Read Only Memory) Ne s’efface pas en absence
d’alimentation électrique
ROM : le contenu est défini lors de la fabrication.
Les PROM (Programmable ROM) sont programmables une
seule fois par l’utilisateur (fusibles).
Les EPROM (Erasable Programmable ROM) sont
effaçables en plaçant la mémoire dans une machine
spéciale et programmables.
Les EEPROM (Electrically Erasable Programmable ROM)
sont effaçables électriquement et programmables

35
Bus de données
unidirectionnel

Bus de commande
unidirectionnel CS
OE

CS: Sélection du circuit


(Chip Select)
Bus d’adresses
OE: Validation des sorties unidirectionnel
(Output Enable)

36
Mémoire cache

requête requête Mémoire


Processeur Cache centrale
mot bloc

Rapide, chère,
faible capacité (SRAM) (DRAM)

Principe : si le mot est dans le cache on y accède rapidement; sinon, on


accède a la mémoire centrale et on range dans le cache un bloc de K mots
autour du mot désiré, car il y a une bonne probabilité que ce mot ou un mot
proche soit utile rapidement après (localité spatiale et localité temporelle).

Un algorithme de remplacement décide quel bloc présent dans le cache est


remplacé par le nouveau bloc : le plus ancien (‘first in first out' ou FIFO), le
plus anciennement utilisé (‘last recently used' ou LRU), le moins
fréquemment utilisé (‘least frequently used ou LFU), un pris au hasard, etc.

37
Hiérarchie des mémoires

Registre

Cache

Mémoire centrale

Disque ou SSD
Capacité
Rapidité & Coût

Registre Cache Mémoire centrale Disque


Capacités typiques <Ko Mo Go >To
Temps d'accès (ns) 1-5 3-10 10-400 5 000 000
Coût relatif 50 10 1 0,001

38
Interfaces série et parallèle

39
Les interfaces d ’entrée / sortie
Elles permettent d’assurer la communication entre le
microprocesseur et les périphériques.
(capteur, clavier, afficheur,imprimante, modem, etc.)

Il existe 2 types :

8 bits
disponibles
simultanément

• Parallèles
• Séries
Bus données 8 bits
Une seule
information à
la fois

40
Les bus 1/2

Bus des Données (bidirectionnel)

Entrées

Sorties

Bus de commande

Bus d ’adresses (unidirectionnel µP -> autres boîtiers)

41
Les bus 2/2

Le bus de données est bidirectionnel. Microprocesseur  périphériques

Il assure le transfert des informations entre le


microprocesseur et son environnement, et inversement.
Son nombre de lignes est égal au format des mots de
données du microprocesseur.

Le bus d’adresses est unidirectionnel. Microprocesseur → périphériques

Il permet la sélection des informations à traiter dans un


espace mémoire (ou espace adressable) qui peut avoir 2n emplacements,
avec n = nombre de conducteurs du bus d'adresses.

Le bus de commande (ou bus de contrôle)


Est constitué par quelques conducteurs qui assurent la
synchronisation des flux d'informations sur les bus de données et
d’ adresses.
42
Le circuit d’horloge
• Fournit des signaux périodiques de 1 a X000 MHz destinés à
séquencer le travail du processeur
• définit les cycles de base
• Ex : écrire la donnée 26H à l’adresse 3540H
– le processeur compose la valeur 3540H sur le bus d ’adresse
– met la ligne R/W à 0
– émet la valeur 26H sur le bus de donnée

43
Unité de commande (UC)
Décode les instructions et les transforme en une
instruction
série de micro-commandes qui activent les autres
composants de l’ordinateur.

Horloge Code Adresses


opération opérandes Recherche
en mémoire
Registre instruction (RI)
top

Séquenceur

Adresse de la prochaine
instruction à exécuter
Compteur ordinal (CO)

Séquence de signaux de
commande

44
Unité arithmétique et logique (UAL)

Résultat (mémoire centrale)

Circuits de Code
calcul de opération
Registre l’UAL
d’état (RE)
{drapeaux
ou ‘flags’}

Opérande1 Opérande2
(mémoire centrale) (mémoire centrale)

Nécessite instructions de calcul à 3 adresses mémoire


( => mots très longs) :
code_opération +adresse_opérande1+adresse_opérande2+adresse_résultat

45
Architecture avec registre accumulateur :
Opérande 1 1 3
(mémoire
Résultat
centrale) Accumulateur (mémoire
(ACC) centrale)

Circuits de Code
calcul de
Registre opération
l’UAL
d’état (RE) 2

Opérande2 (mémoire centrale)

Nécessite trois instructions à une seule adresse mémoire :


1 charger opérande1 dans ACC
2 calcul avec ACC et opérande2, résultat dans ACC
3 transfert de ACC dans mot d’adresse résultat. 46
L’organisation avec accumulateur a été utilisée par les

premiers microprocesseurs 8 bits (Intel 8080 et Motorola 6800).

Dans les microprocesseurs 16 bits (Intel 8086, Motorola 68000)

l'accumulateur a été remplacé par un petit nombre de registres

généraux. Pour repérer un registre parmi 4 (R1, R2, R3, R4) 2 bits

suffisent dans les instructions :

1. transfert de l'opérande 1 dans un des 4 registres généraux (Ri),

2. opération avec Ri et l'opérande 2, résultat dans Ri,

3. transfert de Ri en mémoire.
47
Les microprocesseurs les plus récents (Pentium,
PowerPC, ALPHA, SPARC, MIPS) utilisent uniquement
des registres et plus aucune adresse dans les
instructions de calcul :
1. transfert de l'opérande 1 dans un registre Ri,
2. transfert de l'opérande 2 dans un registre Rj,
3. opération avec Ri et Rj, résultat dans Rk,
4. rangement de Rk en mémoire.
Il peut alors y avoir un grand nombre de registres
adressés par quelques bits chacun.
48
Le cycle ‘chercher-décoder-exécuter’

Principe d‘exécution d'un programme : répétition du même


cycle d'opérations, appelé cycle ‘chercher-décoder-exécuter' :

répéter
chercher l'instruction dont l'adresse est dans CO et la
mettre dans RI;
incrémenter de 1 CO;
décoder le contenu de RI ;
s'il y en a, chercher le (les) opérande(s) dont on a
l'(les) adresse(s);
exécuter l'opération correspondant au code opération;
si c'est un branchement CO est remodifié
fin
49
ACC Cycle d’exécution d’une instruction
C1
Séquenceur
UAL
B1

C1 Code adresse RI
C1

A4 B2 C1
RM
UC
B3 CO

A3 A2
A1 +1
opérande
RA
instruction
Mémoire centrale
A1 : CO dans RA (adresse prochaine instruction dans RA)
A2 : incrémentation de 1 de CO (prochaine instruction à l’adresse suivante)
A3 : lecture de l’instruction et rangement dans RM CHERCHER
A4 : transfert de l’instruction de RM à RI pour décodage
B1 : analyse du code instruction; envoi des signaux de commande DECODER
B2 : adresse de l’opérande dans RA
B3 : lecture de l’opérande en mémoire et rangement dans RM EXECUTER
O C1 : calcul sur opérandes dans RM et ACC (a été précédé par un transfert du 1er opérande de la mémoire
vers ACC et est suivie d’un transfert du résultat de ACC vers la mémoire).
U 50
C1 : branchement adresse est rangée dans CO (devient la prochaine instruction à exécuter).
Programme complet sur machine élémentaire
Définition du langage :
Codes Instructions
10 chargement dans ACC du mot indiqué
(ex : 1025 chargement dans ACC du mot 25)
20 rangement de ACC dans le mot mémoire indiqué
30 addition de ACC et du mot mémoire indiqué
50 saut inconditionnel a l'adresse indiquée (ex : 5012)
99 arrêt du programme
Le programme exemple :
adresses
0: 1010 charger dans ACC mot 10 (valeur 23)
1: 3011 additionner ACC et mot 11 (valeur 37)
2: 2012 ranger ACC dans mot 12
3: 5005 sauter à l’adresse 5 (sert uniquement à montrer un saut)
4:
5: 99 arrêter
6:

10: 23 donnée 1 Exécution pas à pas
11: 14 donnée 2
12: 37 doit apparaître ici
51
Etat initial de la machine : programme chargé à l’adresse 0 et CO = 0

52
(prépare la lecture de la 1ère instruction)

53
54
55
(prépare le décodage de la 1ère instruction)

56
(10 = charger ACC avec opérande)

57
(prépare l’accès à l’opérande)

58
59
60
Etat à la fin de la première instruction (mot 10 chargé dans ACC)

61
62
63
64
65
(additionner ACC et opérande, résultat dans ACC)

66
67
68
69
70
Etat après exécution de l’instruction 2 (somme des mots 10 et 11 dans ACC)

71
72
73
74
75
(ranger ACC dans opérande)

76
77
78
79
Etat après exécution de instruction 3 (somme dans mot 12)

80
81
82
83
84
(saut inconditionnel à opérande)

85
86
Etat après instruction 3 (prêt à exécuter instruction 5)

87
88
89
90
91
(arrêter le programme)

92
Etat final du programme
93
CISC et RISC

Processeurs CISC (‘Complex Instruction Set


Computer'), comme les processeurs Intel : lenteur
de la mémoire => intérêt d’avoir des opérations
complexes => moins nombreuses et moins
d’accès aux données.

Mais 80% des programmes générés par les compilateurs


font appel a seulement 20% des instructions machine.
D'ou l'idée de l'architecture RISC de réduire le jeu
d'instructions a ces 20% d'instructions les plus utilisées, en
cherchant a les optimiser au maximum avec des
séquenceurs câblés.
94
CISC et RISC

CISC RISC
jeu d'instructions large jeu d'instructions réduit
instructions complexes instructions simples
instructions de tailles instructions de mêmes tailles
différentes instructions de mêmes durées
instructions de durées séquenceur câblé
différentes
séquenceur micro-programmé
Richesse du langage Efficacité du langage
machine machine

95
Les unités d’échange (UE)

Les périphériques sont très lents par rapport au processeur et


à la mémoire (ns/ms ou s).
Il faut des UE (ou contrôleurs d'entrées/sorties) entre
processeur et périphériques pour gérer leur coordination, le
transcodage, la détection des erreurs etc.

Il y a 3 techniques pour gérer les entrées/sorties :


❑ scrutation : le processeur interroge l‘UE pour savoir si
des E/S sont possibles.
Tant que ces E/S ne sont pas possibles, le processeur attend
puis redemande (boucle de scrutation). Le processeur est
souvent en attente et il est complètement occupé par la
réalisation de l‘E/S. Ce type d‘E/S est très lent.
96
Les unités d’échange (UE)

❑ interruption : une interruption est un signal émis par un


dispositif externe au processeur.
Celui-ci possède une ou plusieurs entrées réservées pour les
interruptions.
Avant chaque instruction, le processeur examine s'il y a eu
une interruption.
Si oui, il interrompt le programme en cours et sauvegarde son
état (registres, compteur ordinal...).
Puis, il exécute le programme associé à l'interruption avant de
revenir au programme interrompu.

97
Les unités d’échange (UE)

❑ interruption : (suite)
Dans une E/S avec interruption, le processeur exécute sa
requête à l’UE et reprend l'exécution d'un programme (le
même ou un autre).
Il n'attend donc plus pendant l’E/S.
A la fin de l’E/S, l’UE envoie une interruption au processeur
qui exécute le traitement associé à l’interruption (par exemple
le transfert en mémoire des données lues).
Puis il reprend le programme initial.

98
❑ échange direct avec la mémoire : ce mode permet le
transfert de blocs de données entre la mémoire et un
périphérique sans passer par le processeur.
Pour cela, un circuit appelé contrôleur de DMA (Direct
Memory Access) se charge entièrement du transfert des
données. Le microprocesseur initialise l’échange en donnant
au contrôleur de DMA :
• le périphérique concerné,
• le sens du transfert (E ou S),
• l'adresse du premier et du dernier mot concernés par le
transfert.
99
Le contrôleur de DMA est doté de
• un registre d'adresse
• un registre de donnée
• un compteur
• un dispositif de commande
(c'est un vrai processeur spécialisé).
Pour chaque mot échangé, le DMA demande au
microprocesseur le contrôle du bus, effectue la lecture ou
l‘écriture mémoire à l'adresse contenue dans son registre et
libère le bus.
Il incrémente ensuite cette adresse et décrémente son
compteur.
Lorsque le compteur atteint zéro, le dispositif informe le
processeur de la fin du transfert par une interruption.
100
Le principal avantage est que pendant toute la durée du

transfert des données, le processeur est libre d'effectuer un

autre traitement.

La seule contrainte est une limitation de ses propres accès

mémoire pendant toute la durée de l'opération, puisqu'il doit

parfois retarder certains de ses accès pour permettre au

DMA d'effectuer les siens (arbitrage pour l'accès au bus).

101
Architecture de processeur avancée : pipeline

Le traitement d'une instruction comprend plusieurs phases.

Au lieu de les exécuter séquentiellement on peut chercher à

les effectuer en parallèle pour plusieurs instructions

successives.

Supposons que les phases correspondent aux 3 étapes

chercher (CH), décoder (DE), exécuter (EX). Dans une

machine pipelinée on aura donc :

102
Architecture de processeur avancée : pipeline

Instructions/étages 1 2 3 4 5 6 7 8 9
instri CH DE EX
insti+1 CH DE EX
instri+2 CH DE EX
au lieu de :
Instructions/étages 1 2 3 4 5 6 7 8 9
instri CH DE EX
insti+1 CH DE EX
instri+2 CH DE EX

103
Architecture de processeur avancée : pipeline

Le gain de rapidité est dû à l'augmentation du flux des


instructions traitées et non pas à la rapidité de traitement de
chaque instruction.
Chaque étage du pipeline a comme durée celle de la phase la
plus longue (car les 3 s'exécutent en parallèle).
De plus, en cas de branchement conditionnel, on peut
commencer le traitement des instructions qui suivent de
manière inutile.
Dans certains processeurs on tente de prédire si le
branchement va avoir lieu ou non en fonction d'une table des
exécutions passées des branchements (‘anticipation de
branchement').
104
Architecture de processeur avancée : superscalaire

Les processeurs superscalaires possèdent plusieurs pipelines


qui fonctionnent en parallèle.
Un superscalaire de degré n possède n pipelines parallèles.
On a donc du parallélisme entre instructions en plus du
recouvrement des phases à l'intérieur des instructions.
Ce parallélisme est complexe a gérer a cause des
synchronisations nécessaires.
En outre, il n'est pas toujours possible d'utiliser a plein tous
les pipelines.

105
Architecture de processeur avancée : superscalaire

Exemple d'exécution sur un superscalaire de degré 4 :


Instructions/étages 1 2 3 4 5
instri CH DE EX
insti+1 CH DE EX
instri+2 CH DE EX
instri+3 CH DE EX
instri+4 CH DE EX
instri+5 CH DE EX
instri+6 CH DE EX
instri+7 CH DE EX
instri+8 CH DE EX
instri+9 CH DE EX
instri+10 CH DE EX
instri+11 CH DE EX
Ex : Pentium 4 processeur CISC avec instructions
décomposées en micro-opérations de taille fixe. Plusieurs
pipelines de 20 étages (20 étapes/micro-op).
106
Mesures de performances : théorie

La vitesse de l'horloge cadence les instructions.

A partir de là, on peut calculer le temps CPU pour un


programme P comme le produit du nombre de cycles
nécessaires pour P par le temps de cycle d'horloge (TCH).

Pour déterminer le nombre de cycles nécessaires pour P, on


peut multiplier le nombre d'instructions exécutées par le
processeur (NI) par le nombre moyen de cycles par instruction
pour ce processeur (CPI) :

tempsCPU = NI x CPI x TCH

107
Mesures de performances : théorie

Pour réduire temps CPU on peut


• soit augmenter la fréquence de l'horloge (mais il existe une
limite matérielle à l'amélioration de la technologie),
• soit réduire le CPI (choix du jeu d'instruction ou accès
mémoire plus rapides),
• soit réduire le nombre d'instructions NI (compilateur
optimisant).
On peut calculer les MIPS (Millions d'Instructions Par
Seconde) par :
MIPS=FH/CPI
où FH est la fréquence d'horloge en MHz (million de cycles/s).

108
Mesures de performances : théorie

Sur le même modèle existent également les MégaFlops


(millions d'instructions flottantes – sur réels- par seconde).

Les MIPS et les MégaFlops ne permettent pas réellement de


comparer les machines car ils dépendent de la ‘quantité de
travail' effectuée par les instructions qui peut varier beaucoup
entre les architectures CISC ou RISC.

De plus, les performances d'une machine dépendent non


seulement du processeur mais de tous les composants qui y
sont reliés - bus, UE, mémoire centrale et unités de stockage
externe - ainsi que du système d'exploitation.
109
Mesures de performances : pratique

Mesurer le temps d'exécution de programmes réels. Mais ce


temps peut se définir de plusieurs manières :

• temps total pour terminer la tâche (en incluant les accès


disques et mémoire, les opérations d‘E/S,

• le temps CPU (processeur) utilisé pour la tâche,

• le temps CPU utilisé par le système d'exploitation pour


cette la tâche, etc.

110
Mesures de performances : pratique
En pratique, l'approche la plus réaliste pour mesurer les
performances consiste à réaliser des tests (‘benchmarks').
Ils comparent les machines par types d'applications (calculs
numériques, jeux, bureautique, etc.) en utilisant des
programmes et des données communes.
Les résultats de certains tests sont publiés et permettent des
comparaisons à peu près fiables entre machines.
C'est le cas par exemple des test du SPEC (Standard
Performance Evaluation Corporation - http://www.spec.org)
utilisés par beaucoup de constructeurs.
111
Les disques durs
Du tube à vide au µp
Historique

• 1956, invention par Reynold Johnson du RAMAC 350, 1 tonne, 1200 tpm, 5 MO

• 1979, premier disque Seagate, 5 MO, 1500 $ (300 $/MO)

• 1979, la société Shugart invente le Small Computer System Interface (SCSI)

• 1980 Toshiba (Dr. Masuoka) invente la mémoire Flash

• 1986, Western Digital invente l’Integrated Drive Electronics (IDE ou ATA ou P-ATA)

• 1995, M-Systems commercialise le premier disque SSD

• 2003, définition de la norme Serial Advanced Technology Attachment (S-ATA)

• 2009, OCZ fait la démonstration du premier disque SSD d’un TO

• 2010, un disque de 1 TO ( ou 1 000 000 MO) coûte environ 80 dollars


Disque classique HDD

Stockage sur :

• des plateaux

• en verre le plus souvent

• recouverts
d'un revêtement magnétique

• en rotation rapide

• lus par des têtes mobiles


Disque classique HDD

• un plateau est composé de nombreuses pistes

• la même piste sur l'ensemble des plateaux, c'est un


cylindre
Disque classique HDD

Chaque secteur (ou bloc) est identifiable par


• le plateau,
• la surface (recto ou verso),
• le numero de piste
• un numero de secteur.
Cependant le controleur électronique du disque permet d’accéder aux blocs par
un numéro absolu (allant de 0 au nombre de blocs total - 1).

Question : Indiquer le nombre de plateaux, pistes et secteurs du disque étudié


Disque Solid State (SSD)

Les disques SSD:


• utilisent de la mémoire Flash comme
support de stockage

• il s’agit du même principe de stockage que


pour les clés USB

• contrairement aux disques HDD, ils n’ont


pas de parties mobiles
o ni plateau en rotation
o ni tête de lecture
Disque Solid State (SSD)

Les disques SSD sont:


• Plus réactifs (temps d'accès réduits)
• Plus robustes (pas de parties mobiles)
• Plus chers

Ils utilisent le même mode d’adressage par numéro de


bloc/secteur que les disques HDD. Ceci permet de les
inter-changer aisément avec des disques HDD.

Des ordinateurs utilisant un disque HDD et un disque SSD


sont dit hybrides.

Question: Pour quels types de fichiers utiliser un SSD?


Interfaces
IDE ou ATA ou P-ATA: le format le plus courant
pour les ordinateurs personnels jusqu’au milieu
des années 2000.
Il utilise une nappe sur laquelle deux périphériques
peuvent être connectés.
Dans ce cas, un des deux doit être configuré
comme Maître et l’autre comme Esclave. Cette
distinction se fait physiquement à l’aide de
“jumpers” (cavaliers).

S-ATA: interface de type point à point (chaque


disque est relié au système par son propre cable).
Il s’agit du standard actuel pour les disques durs
internes. Il se base sur ATA mais n'envoie plus les
signaux en parallèle sur de multiples fils mais en
série sur peu de fils.
Formatage

Les fabricants de disques durs effectuent un


formatage dit "de bas niveau".

Par exemple, pour un HDD, il s'agit de :


• délimiter les différentes pistes
• délimiter les secteurs valides

Le fabricant nous donne accès à une


abstraction:
Une séquence de secteurs
Partitions

Le système d’exploitation crée un formatage logique ou formatage de


haut niveau en organisant
• la séquence de secteurs
• en partitions
• afin de stocker les fichiers.

Une partition est un segment du disque, on peut ainsi avoir plusieurs


volumes logiques (C: et D: ... sous Windows) sur un seul disque
physique.

La connaissance des secteurs défectueux permet de les éviter.

La définition des différentes partitions (secteur de début, secteur de fin


etc.) est stockée dans la “table des partitions” qui se trouve sur une
partie réservée du disque contenue dans le Master Boot Record
(MBR).
Système de fichiers

Chaque partition est organisée selon un système de fichiers qui permet de:
• faire le lien entre les fichiers/répertoires et les secteurs physiques où le
contenu est stocké
• stocker de l’information en plus de son contenu (dates, propriétaire etc.)

Il existent alors de nombreux filesystem.


• File Allocation Table (FAT) 32: format dont la limitation principale est la limite
de la taille d’un fichier à 4 gibioctets. Encore utilisé sur la plupart des clés
USB.
• New Technology File System (NTFS): permet de dépasser des limitations
de FAT et en particulier d’associer à chaque fichier un propriétaire et un
ensemble de permissions.
• etc.

Question: Où sont stockées les informations de dates de modification ou création


des fichiers?
Caractéristiques critères de choix
• Interface: Vérifier que votre ordinateur possède un port disponible pour l’interface du
disque.

• Taille

• Débit: Il s’agit de la quantité d’information que le disque peut échanger avec le


système par seconde. Le débit est particulièrement important pour le transfert de
grands fichiers:
• débit en écriture (système vers disque)
• débit en lecture (disque vers système)

• Temps d’accès moyen: Il s’agit du délai moyen entre la requête d’information par le
système et sa livraison par le disque dur. Les temps d’accès des disques HDD sont
de l’ordre de 10 millisecondes (contre quelques nanosecondes pour de la mémoire
vive)

• Prix: les disques SSD présentent des performances intéressantes mais sont encore
plus chers (10x plus) que les disques HDD de même taille.

• Mémoire cache ou mémoire tampon: taille et stratégie utilisée.

Exercice: trouvez les caractéristiques du disque étudié.


Outils

Outil spécifique à votre disque dur fourni par le fabricant. Le


seul outil recommandé pour tenter un formatage bas niveau.

GParted ou PartitionMagic : outil de gestion des partitions


permettant de gérer la plupart des systèmes de fichiers.

Chkdsk: outil de Windows effectuant la vérification


• de l'intégrité du système de fichiers
• des secteurs défectueux (mais comment?)

Fdisk: un outil simple (fourni avec le système d'exploitation)


permettant de gérer les différentes partitions.
Problèmes potentiels

• Disque défectueux
• Secteurs défectueux
• Table de partition erronée
• Virus attaquant la table de partition empêchant de démarrer Win
• Mauvaise configuration physique (P-ATA)
• “Au secours, j’ai perdu mon fichier”
o Fichier effacé directement ou de la corbeille
o Partition formatée
Références
• F. Maraninchi, R. Leveugle., Systèmes et Logiciels Embarqués (SLE),
Ensimag, Grenoble, 2011
• S.Umamaheswaran, Software and Hardware Co-design For Defense
Embedded Systems, Central Research LaboratoryBharat Electronics
Limited., 2013
• EPAI Fribourg – Hervé, cours : Les systèmes à microprocesseur, 2010
• Jacques Lonchamp, Architecture et programmation des ordinateurs,
IUT Nancy Charlemagne, 2012

126

Vous aimerez peut-être aussi