INF 2500 : Architecture des ordinateurs. Chapitre 1 : Introduction
Preview:
Citation preview
- Page 1
- INF 2500 : Architecture des ordinateurs
- Page 2
- Chapitre 1 : Introduction
- Page 3
- 1.1 Quelques faits Dbut 1970 : les ordinateurs taient
totalement dpendants de la technologie des circuits intgrs (C.I).
Milieu des annes 70 : Les performances augmentent de 25% 30% par
anne. Fin des annes 70 : Larrive des microprocesseurs augmente les
taux de performances de 35 % par anne. Laugmentation du nombre
dordinateurs provoque la disparition du langage machine (Assembly
language) au profit dun langage orient-objet (Object oriented
programming) ainsi que la cration de systmes dexploitation
standards (ex: UNIX).
- Page 4
- 1.2 Lordinateur moderne Carte Mre (Motherboard) Constitue le
tronc commun de larchitecture. Tous les priphriques lui sont
directement relis. Malgr certaines normes ou certaines technologies
spcifique, la plus part des architectures possdent les mmes
composantes fondamentales (processeurs, mmoires, contrleurs).
- Page 5
- 1.2 Lordinateur moderne (suite) Microprocesseur (CPU) Unit
centrale de traitement (UCT). Excute lensemble des instructions
partir dun langage de bas niveau (DLX,Z88,8085). Est troitement
reli larchitecture. Possde une hirarchie de mmoire pour conserver
les instructions (cache, cache L1, cache L2).
- Page 6
- 1.2 Lordinateur moderne (suite) Mmoire vive (RAM Memory) Permet
de conserver linformation court terme (machine sous tension). Leur
capacit et rapidit sont en constante volution.
- Page 7
- 1.2 Lordinateur moderne (suite) Les priphriques Permettent
linteraction entre la machine et lusager (entre, sortie et stockage
des donnes). Sont relis la carte mre via divers connecteurs
spcialiss (port srie, port AGP, port parallle, bus ISA, bus PCI).
Exemple : disque dur, souris, clavier, carte graphique, carte de
son, moniteur.
- Page 8
- 1.3 Le rle dun concepteur dordinateur Dterminer quels attributs
sont importants pour une nouvelle machine et concevoir ensuite une
machine pour obtenir la performance maximale tout en respectant les
contraintes de cot Cela comporte plusieurs aspects: Design dun
rpertoire dinstruction rapide et optimal Etude de lorganisation
fonctionnelle: ce dont on a besoin pour que le tout soit en mesure
dinteragir (un processeur sans bus de communication est inutile).
Design logique Ralisation
- Page 9
- 1.3 Le rle dun concepteur dordinateur (suite) Loptimisation dun
design prsent requiert une technologie en constante volution aussi
bien pour les systmes dexploitation que pour les compilateurs que
la logique. Le jeu dinstruction utilis dans les architectures
modernes constitue la frontire entre le logiciel (software) et le
matriel (hardware). En entend par Architecture, le regroupement des
trois apects de la conception des ordinateurs : Larchitecture du
jeu dinstruction Lorganisation La ralisation matrielle
- Page 10
- 1.3 Le rle dun concepteur dordinateur (suite) Lorganisation
inclut les aspects de haut niveau de la conception comme le systme
de mmorisation, la structure de bus et lunit centrale de traitement
(UCT) qui gre larithmtique, la logique, les branchements et les
transferts de donnes. Loptimisation du design choisi peut se faire
laide dapplications et de programmes qui sont spcifiques au domaine
optimiser (dbit mmoire, jeux dinstructions) Loptimisation dune
architecture ne passe pas ncessairement par de hautes performances
matrielle (haut dbit, haute vitesse). Il faut galement considrer le
temps de mise en march et le cot final (un processeur ultra
performant qui cot trs cher nest pas optimal)
- Page 11
- 1.4 Lvolution des technologies et de lutilisation des
ordinateurs Evolution de lutilisation des ordinateurs.
Laugmentation des logiciels force laugmentation de la quantit de
mmoire raison de 1,5 2 par anne. Ceci implique une croissance du
nombre de bits dadresse au rythme de 0.5 1 par anne. Cette
augmentation entrane galement la disparition du langage assembleur
pour des langages de haut niveau. Les compilateurs ont donc eux
aussi volus en incluant de nouvelles fonctions et en augmentant
lefficacit dexcution des programmes. Dsormais, les programmeurs de
compilateurs et les concepteurs dordinateurs doivent travailler
ensemble.
- Page 12
- 1.4 Lvolution des technologies et de lutilisation des
ordinateurs (suite) Evolution des technologies dimplmentation. La
technologie des circuits intgrs logiques. La densit des transistors
(nombre de transistors par unit de surface) croit denviron 50% par
an. La taille des puces quant elles croient denviron 10% 25% par
anne. En somme, la combinaison des deux nous donne une croissance
en nombre de transistors entre 60% et 80% par an. La vitesse des
composants croit aussi vite. Les temps de cycle quand eux nvoluent
pas vraiment tant donn la faible volution de la technologie de
mtalisation utilise dans les interconnexions. Les DRAM en
semi-conducteurs. La densit croit denviron 60% par anne et
quadruple en trois ans. Le temps de cycle diminue lentement, soit
un tiers en 10 ans.
- Page 13
- 1.4 Lvolution des technologies et de lutilisation des
ordinateurs (suite) Evolution des technologies dimplmentation
(suite). La technologie des disques magntiques La densit augmente
de 50% par anne Le temps daccs croit dun tiers en 10 ans
- Page 14
- 1.5 Le cot et lvolution du cot Le cot dun composant dordinateur
dcrot avec le temps. Lvolution du rendement (nombre de produits
fabriqus ayant passs les tests par rapport au nombre initial)
contribue la baisse des cots. Un rendement double entranera
invitablement un cot diminu de moiti (cest la maturit du
produit).
- Page 15
- 1.5 Le cot et lvolution du cot (suite) Le cot des circuits
intgrs (suite).
- Page 16
- 1.5 Le cot et lvolution du cot (suite) Le cot des circuits
intgrs (suite). La distribution du cot dans un systme
(approximatif). DRAM 36 % Microprocesseur 49% Carte vido 14%
Moniteur 22% Disque dur 7%
- Page 17
- 1.5 Le cot et lvolution du cot (suite) Cot et prix. Le prix que
lusager paye, est diffrent du cot du systme. Une modification de
1000$ au niveau dun cot, se rpercute en une diffrence de 4000$
5000$ au niveau du prix. On distingue: Les cots directs qui sont
directement lis avec la fabrication du produit (ajoutent environ
20% 40% au cot des composants). La marge brute qui est un surcot
indirect du produit et qui englobe la recherche et dveloppement, la
publicit, le rseau commercial, la maintenance des quipements de
fabrication, les locations de locaux, les cots de financement, les
profits avant impts et les taxes (ce cot ajoute environ 20% 55% au
cot des composants).
- Page 18
- 1.5 Le cot et lvolution du cot (suite) La stratgie est donc la
baisse de la marge brute, ce qui augmente le volume et conduit donc
une baisse des prix. Le prix catalogue est diffrent du prix de
vente moyen car les compagnies abaissent ce dernier lors dun volume
de vente suffisant. Ainsi le prix de vente moyen = 50% 75% du prix
de catalogue.
- Page 19
- 1.6 Mesurer et publier les performances Il existe plusieurs
mesures de performance, elles sont souvent prises tmoin dans des
spcifications techniques mais ne peuvent tre interprtes sparment
car elles ne refltent quun seul aspect la fois. Supposons deux
systmes A et B distincts en performance. A et n fois rapide que B
si : On test de plus en plus les performances laide de programmes
test.
- Page 20
- 1.6 Mesurer et publier les performances Temps dexcution total
(Total execution time) Mthode simple et rapide pour comparer les
performances relatives. Temps dexcution pondr.(Weighted execution
time) Si la rpartition des programmes est ingale dans la charge de
travail, on introduit alors une pondration chacun (la somme de
celles-ci doit tre gale 1).
- Page 21
- 1.6 Mesurer et publier les performances (suite) Temps dexcution
pondr (suite). Temps dexcution normalis (Normalized execution time)
Il existe une autre mthode pour une charge de travail compose dune
rpartition ingale de programmes. On normalise les temps dexcution
par rapport une machine de rfrence et considrer les moyennes des
temps dexcution normaliss.
- Page 22
- 1.6 Mesurer et publier les performances (suite) Temps dexcution
normalis (suite).
- Page 23
- 1.7 Les principes quantitatifs de la conception des ordinateurs
Principe fondamental : favoriser le cas frquent au dtriment du cas
rare. Ex: Une addition de deux nombres dans lUC a plus de chance de
ne pas provoquer un dpassement en mmoire. Il est donc prfrable de
favoriser le cas o il ny a pas de dpassement. Soit int X,Y,Z,
sachant quun entier est reprsent sur 16 bits (variable selon
larchitecture). Le plus grand nombre pouvant tre reprsent sur 32
bits : 2^(16)-1=65535. Ainsi si le rsultat X+Y contient une valeur
suprieur 65535, il a dpassement de mmoire. Ce cas est cependant peu
probable si la conception t faite correctement. Loi dAmdahl. Permet
dvaluer le gain de performance obtenu par lamlioration dun
composant dun ordinateur.
- Page 24
- 1.7 Les principes quantitatifs de la conception des ordinateurs
(suite) Loi dAmdahl. Permet dvaluer le gain de performance obtenu
par lamlioration dun composant dun ordinateur.
- Page 25
- 1.7 Les principes quantitatifs de la conception des ordinateurs
(suite) Lquation de performance UC. Les performances de lunit
centrale dpendent du temps de cycle, du nombre de cycles par
instructions (CPI) et du nombre dinstructions.
- Page 26
- 1.7 Les principes quantitatifs de la conception des ordinateurs
(suite) Lquation de performance UC (suite).
- Page 27
- 1.7 Les principes quantitatifs de la conception des ordinateurs
(suite) Mesurer les composantes de la performance de lUC.
Construire et utiliser des outils pour mesurer les aspects dun
design est constitue une grande partie du travail dun designer. Il
est difficile dvaluer le temps de cycle dun design qui nest pas
complt. En revanche le nombre dinstructions est plus facile
dterminer laide du compilateur. Le CPI quant lui est galement
difficile estimer car il dpend de lorganisation dtaille du
Processeur et du flux dinstruction. Pour dterminer ce nombre, il
convient de sparer les composantes mmoires et processeur. Pour
chaque instruction i, on a : La vrai mesure de performance pour un
ordinateur reste le temps.
- Page 28
- 1.7 Les principes quantitatifs de la conception des ordinateurs
(suite) Localit de rfrences. Une des plus importantes proprits des
programmes. Les programmes ont tendance rutiliser les donnes et les
instructions quils ont utilises rcemment. On peut donc prdire avec
une prcision raisonnable quelles instructions et quelles donnes un
programme utilisera dans le futur proche en se basant sur ses accs
dans son pass proche. Deux types de localit pour les donnes
existent: Localit temporelle (lments accds dans un pass proche le
seront de nouveau dans un futur proche). Localit spatiale (lments
dont les adresses sont proches les unes des autres auront tendance
tre rfrencs dans un temps rappoch).
- Page 29
- 1.8 Concept de la hirarchie mmoire Axione simple : le plus
petit est le plus rapide La propagation dun signal est une cause de
nombreux dlais Dans plusieurs systmes, on observe que les plus
petites mmoires sont aussi les plus rapides Cette lois nest pas
valable lorsque lon considre la consommation de puissance (ECC vs
CMOS ou SRAM vs DRAM) Dans les systmes courant, plus la mmoire est
grandes et lente, plus elle se trouve loigne du Processeur:
- Page 30
- 1.8 Concept de la hirarchie mmoire (suite) La cache est une
petite mmoire rapide, proche de lUC qui contient les donnes et les
instructions les plus rcemment accdes. Si lUC trouve linformation
en cache : succs cache (cache hit) Si lUC ne trouve pas
linformation en cache : dfaut de cache (cache miss) Le temps requis
pour les dfauts de cache dpend de la latence mmoire et du dbit
mmoire (mo/s) Certaines informations (donnes, code ) rsident sur le
disque dur. Pour y accder lespace dadresse est coup en blocs de
taille fixe. En mmoire vive, lespace dadresse est coup en blocs de
taille variable que lon appel page
- Page 31
- 1.8 Concept de la hirarchie mmoire (suite) Lorsque le CPU
rfrence une information dans une page (en mmoire vive) qui nest pas
prsente, on a un dfaut de page (page fault). La page contenant
linformation sur le disque est envoye en mmoire vive. Les dfauts de
page tant trs coteux en temps, ces derniers sont gnralement pris en
charge par le ct logiciel (Systme dexploitation) pour viter de
monopoliser et mme bloquer le processeur. A un instant donn, une
donne rside en mmoire vive (RAM) ou sur le disque.
- Page 32
- 1.8 Concept de la hirarchie mmoire (suite) Lorsque le CPU
rfrence une information dans une page (en mmoire vive) qui nest pas
prsente, on a un dfaut de page (page fault). La page contenant
linformation sur le disque est envoye en mmoire vive.
- Page 33
- 1.8 Concept de la hirarchie mmoire (suite) Performance des
caches
- Page 34
- Chapitre 2 : Jeu dinstructions, principes et exemples
- Page 35
- 2.1 La classification des jeux dinstructions Dfinition dun jeu
dinstruction: Portion visible de la machine pour les programmeurs
ou les crateurs de compilateurs La principale diffrence entre les
diffrents jeux dinstruction rside dans le type interne de stockage
dans le CPU Sous forme dune pile (stack) Sous forme dun
accumulateur (accumulator) Sous forme de registres (registers)
Registre Mmoire (registers memory) Chargement Rangement ou registre
registre (resister register)
- Page 36
- 2.1 La classification des jeux dinstructions (suite) Aprs les
annes 80, lensemble des systmes ont t conus suivant larchitecture
chargement rangement car: Un registre est plus rapide quune mmoire.
Il est plus facile et plus efficace de manipuler des registres pour
un compilateur. Contrairement au systme de pile, une expression
avec lemplois de registres peut svaluer dans nimporte quel ordre
(a*b)-(c*d)- (e*f). Ce systme rduit le trafic mmoire vu que les
registres peuvent contenir des variables.
- Page 37
- 2.1 La classification des jeux dinstructions (suite) Le nombre
de registres utiliser dpend de leur usage par le compilateur:
Evaluer des expression Passer des paramtres Conserver des
variables
- Page 38
- 2.2 Ladressage mmoire La reprsentation de linformation en
informatique se fait sur une base binaire (0 ou 1). Lunit de
stockage est le bit. Ce stockage de linformation ncessite plusieurs
bits que lon classe suivant lchelle suivante (celle-ci peut varier
selon larchitecture). 1 octet (byte) = 8 bits 1 demi mot (half
word) = 16 bits 1 mot (word) = 32 bits 1 double mot (double word) =
64 bits Il existe deux conventions pour lordre des octets: Little
Endian : le bit le moins significatif se trouve droite et le plus
significatif gauche dans un nombre binaire. Big Endian : le bit le
moins significatif se trouve gauche et le plus significatif droite
dans un nombre binaire.
- Page 39
- 2.2 Ladressage mmoire (suite) Modes dadressage (addressing
modes) Registre (Registers) Immdiat ou littral (Immediate) (pour
les constantes) Dplacement (Displacement)(pour les variables)
Indirect par registre (Register referred) Index (Indexed) Direct ou
absolu (Direct or absolute) Indirect via mmoire (Memory indirect)
Auto-Incrment (Autoincrement) Auto-dcrment (Autodecrement) Index
tendu (Scaled) Malgr leur grand nombre les plus utiliss sont les
modes dplacement, immdiat et indirect par registre (75% 99% des
modes utiliss dans les programmes).
- Page 40
- 2.2 Ladressage mmoire (suite) Pour ce qui est du nombre de bits
pour le champ de dplacement, il convient davoir 12 16 bits et de 8
16 bits pour la taille du champ immdiat.
- Page 41
- 2.3 Les oprations dans le jeu dinstructions Il existe diffrents
types doprateurs: Arithmtique et logique (ALU)
(addition,soustraction) Transfert de donnes (Load and Store)
(chargements et rangements) Contrle (Branches and
Jumps)(branchement, saut, appel de procdure) Systme (appel au
systme dexploitation) Flottant (Oprations flottantes : addition,
multiplication) Dcimal (Addition dcimal, multiplication dcimale,
conversion dcimal vers caractre) Chanes (Transfert de chanes,
comparaisonde chanes, recherche de chanes) Graphique (Oprations sur
pixels, oprations de compression/dcompression)
- Page 42
- 2.3 Les oprations dans le jeu dinstructions (suite) Les
instructions de contrle Le branchement conditionnel (conditionnal
branch) (trs utiliss) Les sauts (jumps) (souvent utiliss) Les
appels de procdure (procedure calls) (moins utiliss) Les retours de
procdures (procedure returns) (moins utiliss) Les instructions les
plus utilises: 1) Chargement (22% des instructions totales excutes)
2) Branchements conditionnels (20% des instructions totales
excutes) 3) Comparaisons (16% des instructions totales excutes) 4)
Rangement (12% des instructions totales excutes) 5) Additions (8%
des instructions totales excutes)
- Page 43
- 2.3 Les oprations dans le jeu dinstructions (suite) Les sauts
indirects sont utiles lorsque ladresse de destination est inconnue
la compilation. Certaines structures de plus haut niveaux
rencontrent justement ce besoin: Les opration de case et switch
dans les langages de haut niveau. Les fonctions virtuelles, les
mthodes. Les pointeurs de fonction. Les librairies dynamiques
(DLLs) Les branchements et les sauts conditionnels, sont souvent
optimiss au niveau des architectures en raison de la grande
frquence des tests simples (x=0?, x