174
INF 2500 : Architecture des ordinateurs

INF 2500 : Architecture des ordinateurs. Chapitre 1 : Introduction

Embed Size (px)

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