Structure du cours Cours du 29 septembre 2006 Architecture des ordinateurs ♦Performances Cours (12x2h00) : ♦ Frédéric Mallet - [email protected] TP (12x2h00 - 2 groupes) : ♦ Jean-Pierre Lips - [email protected] ♦ Christophe Delage – [email protected] http://deptinfo.unice.fr/~fmallet/archi 2006/2007 Licence Informatique L3 1-1 Facteurs d'Évolution des performances ♦ Technologie : évolution et comparaison ♦Codage de l’information ♦Fonctions logiques et éléments mémoires ♦Systèmes à microprocesseurs ♦La famille Intel - 80x86 ♦Le PowerPC d’IBM ♦Éléments avancés (parallélisme, mémoire, ...) ♦Conception d'architectures numériques - VHDL 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-2 Illustration de la loi de Moore http://www.intel.com/research/silicon/mooreslaw.htm : Tubes à vide (46-57), transistors (58-64), SSI-MSI (6571), LSI (72-77), VLSI(78-?) ♦ Densité : nombre de transistors sur une zone de silicium ( < 0.1µm) Loi de Moore : + 50% par an depuis 1980 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-3 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-4 Surface et wafer ♦ Technologie ♦ Densité ... mais aussi ♦ Vitesse : rapidité des portes logiques et mémoires augmente en moyenne de 13% par an ♦ Surface : taille physique du + grand circuit intégré 30 cm de diamètre 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-5 Comparaison de performances ♦ Performance Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-6 MIPS / FLOPS = terme très vague ♦2 le plus souvent associé à la rapidité plusieurs métriques pour décrire les systèmes et sous-systèmes ♦ compromis 2006/2007 1 circuit intégré unités fréquemment utilisées : Mips : Million d ’Instructions Par Seconde Flops : FLoating-point Operations Per Second avec la facilité de programmation ♦ Problème Suivant le système, on a un nombre différent d ’instructions pour la même tâche Compare 2 implémentations sur le même système Architectures orthogonales (RISC) • Faciles à programmer, mais moins optimisées Architectures optimisées (DSP) • Très optimisées, moins faciles à programmer 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-7 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-8 CPI/IPC Banc d'essai (benchmark) ♦ CPI = nbre de cycles pour chaque instruction ♦ IPC = nbre d'instructions par cycle CPI = 1/IPC ♦ Ces métriques ne donnent pas de temps d'exécution mais sont très utiles en simulation ♦ On multiplie par la période d'horloge pour obtenir un temps 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-9 164.gzip 175.vpr 176.gcc 181.mcf 186.crafty 197.parser 252.eon 253.perlbmk 254.gap 255.vortex 256.bzip2 2006/2007 de programmes représentatifs d'une famille d'applications donnée ♦ SPEC : Standard Performance Evaluation Corporation - http://www.spec.org SPEC CPU2000 = CINT2000 + CFP2000 serveur web, graphique, unités de stockage Temps d'exécution total ≠ MIPS ou IPC Tous les constructeurs utilisent les mêmes tests 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-10 Moyennes arithmétiques et géométriques CINT2000 ♦ Calculs ♦ Série Compression FPGA Placement et routage Compilateur C Optimisation combinatoire Echecs Traitement de texte Visualisation C++ PERL Interpréteur, théorie des groupes Base de données, OO Compression ♦ Moyenne Somme des entiers divisée par n e.g. (4+2+4+82) / 4 = 23, (8+8+8+8)/4 = 8 ♦ Moyenne géométrique de n entiers Racine nième du produit des entiers 4 e.g. 4 4×2×4×82 =7,16 8×8×8×8 =8 Moins sensible aux valeurs accidentelles intensifs sur les entiers Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet arithmétique de n entiers 1-11 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-12 Numérique ou analogique ? ♦ Analogique : Échelle continue de valeurs => sensible au bruit ♦ Numérique Le monde du numérique : Échelle discrète de valeurs : binaire, ternaire, ... ? BInary digiT = BIT (0 ou 1) : valeurs logiques signal logique et mot 11 00 +Vcc +Vcc V Vsup Ssup 1 VSsup > VEsup VSinf < VEinf V Vinf Sinf 00 Esup 0 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-13 Mots de bits 2006/2007 signal logique représente 21 valeurs : bit ♦ N signaux représentent 2n valeurs : mot ♦ 8 signaux représentent 28=256 valeurs : octet Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet binaire naturel : entiers non signés bits ordonnés de 0 à n-1 (de droite à gauche) n−1 i Le ième chiffre pèse 2i : ∑bi*2 (e.g. 0b100111) i=0 En décimal, le ième chiffre pèse 10i : n−1 * i Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-14 N = an bn + an-1 bn-1 + ..... + a1 b1+ a0 b0 Poids fort ♦ Codage 2006/2007 VEinf V inf Généralisation en base b ♦1 • 1995 = 1.103+9.102+9.101+5.100 0 récepteur émetteur 2006/2007 +Vcc V Vsup Poids de ♦ Exemple i 1-15 Rang de base ai ai Poids faible ai = 0 ou 1 => bit : Base 2 1010 = 1.23 + 0.22 + 1.21 + 0.20 1010 = 10102 ∑b 10 i=0 ai bi Indique la base 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-16 Numération Octale et Hexadécimale Partie fractionnaire (virgule fixe) ♦ Octale : 8=23 symboles 0, 1, 2, 3 ... 7 ♦ Hexadécimale : 16 symboles 0,1,2,3 ...9,A,B,C,D,E,F ♦ (0,572)10 Passage de la base 10 à la base 8 ou 16 • divisions successives par 8 ou 16 ♦ (0,011)2 Passage de la base 2 à la base 8 ou 16 • décomposition en groupe de 3 ou 4 bits • remplacement de chaque groupe par sa valeur dans la nouvelle base = 5*10-1 + 7*10-2 + 2*10-3 = 0*2-1 + 1*2-2 + 1*2-3 ♦ (0,b-1b-2...b-n)B = b-1*B-1 + b-2*B-2 + ... + b-n*B-n où 0 ≤ b-i < B, ∀i Exemples : 1011101,011012 Base 8 1 011 101,011 010 Base 16 101 1101,0110 1000 2006/2007 = 135,328 = 5D,6816 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-17 ♦ Partie entière : divisions successives par 2 20 2 Bit poids faible 0 10 2 0 5 2 1 2 2 0 1 1 Bit poids fort Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-18 Signe/valeur absolue Passage de la base 10 à la base 2 ♦ 2006/2007 Le signe a 2 valeurs possibles (+ ou - ) : 1 bit Le bit de poids fort code le signe les autres bits représentent la valeur absolue e.g. 2010 = 101002 2 0 • 0b00001100 représente la valeur +12 • 0b10001100 représente la valeur -12 Avec n bits on représente les valeurs ♦ Partie fractionnaire : multiplications successives par 2 0,375 * 2 0,75 * 2 0,5 *2 = = = 0, 75 1, 5 1 ♦ 0,37510 = 0.0112 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 2 problèmes Comment coder 0 ? Circuits spéciaux pour les opérations arithmétiques (cf. TP) 20,37510 = 10100.0112 2006/2007 • de – (2n-1-1) à +(2n-1-1) 1-19 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-20 Décimal codé binaire (DCB) ♦ Chaque chiffre décimal est codé en binaire sur 4 bits ♦ Utile lorsqu'il y a des sorties sur des afficheurs ♦ Exemple : 199510 = 0001 1001 1001 0101dcb Blocs, fonctions et portes logiques Le signe est stocké dans le quartet le + significatif Selon les constructeurs : + = 0000 et - = 1111 + = 1011 et - = 1101 (Correspond aux caractères + et - en ascii) 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-21 Blocs et fonctions logiques 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-22 Modèle logique du transistor Transistor N Transistor P ♦ Un bloc logique manipule des entrées binaires pour produire des sorties ♦ Chaque sortie réalise une fonction logique : ♦ Transistor Les fonctions combinatoires (e.g. addition) • ne dépendent que des entrées E: S = f(E) Les fonctions séquentielles ou à mémoire • dépendent des entrées et du passé (état Q) : S=f(E,Q) • l'état évolue au cours du temps : Q+ = g(E,Q) • e.g. compteur 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-23 D S D S Quand G=0, le transistor est bloquant Quand G=1, le transistor est passant (Source->Drain) ♦ Transistor D S D S N (Très bonne conduction si S = 0 ) P (Très bonne conduction si S = 1 ) Quand G=0, le transistor est passant (Source->Drain) Quand G=1, le transistor est bloquant 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-24 Fonction NON, inverseur ♦ Fonction Portes universelles : NAND ♦ Toute logique NON : a 0 1 fonction logique peut être réalisée avec un seul type de “porte universelle”: a ♦ Table de vérité : ♦ Porte logique (réalisation) : inverseur 1 0 La porte NAND qui réalise la fonction NAND 1 transistor N et 1 transistor P Tous les signaux sont de bonne qualité 0 1 1 a 0 0 1 1 b 0 1 0 1 a•b 1 1 1 0 0 a•a=a 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-25 Porte NAND à 3 entrées a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 2006/2007 Ou la porte NOR qui réalise la fonction NOR a•b•c 1 1 1 1 1 1 1 0 a 0 0 1 1 b 0 1 0 1 a+b 1 0 0 0 a+a=a nombre de transistors en série dans les réseaux N et P est limité (3-5) Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-26 Portes universelles : NOR ♦ Le 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-27 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-28 Fonction ET Fonction OU Produit logique (AND) : a • b ♦ Somme a b a•b a b a+b 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 a•1=a, a•0=0, a•b=a+b a•b=a•b – Exercice : réaliser une porte AND avec que des NOR, compter les transistors 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-29 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet Multiplexeur 2006/2007 b a⊕ ⊕b 0 0 0 0 1 1 1 0 1 1 1 0 1-30 Multiplexage exclusif (XOR) : a a+1=1, a+0=a, a+b=a•b – Exercice : réaliser une porte OR avec que des NAND, compter les transistors Fonction OU exclusif ♦ Ou logique (OR) : a + b a⊕b=a •b+a•b Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet ♦ ♦ 1-31 S O 0 a 1 b La fonction multiplexage permet de sélectionner une entrée parmi 2 Un multiplexeur à 2n entrées nécessitent n bits de sélection 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-32 Décodeur n vers 2n 3 Décodeur 3 vers 8 E E2 E1 E0 S7 S6 S5 S4 S3 S2 S1 S0 0 0 0 0 0 0 0 0 1 0 8 S 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 ♦ La fonction décodage 3 bits permet de sélectionner une sortie parmi 23=8 ♦ Un démultiplexeur à 2n sorties nécessitent n bits d’entrée ♦ Le numéro de la sortie sélectionnée est codé en binaire naturel sur l’entrée 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-33 Demi additionneur Compteur (m,k) am-1 ♦ ♦ Entrée : mot de m bits La fonction compteur(m,k) compte le nombre de 1 présents sur ses m entrées donne le résultat sur k bits en numération simple de position (binaire naturel) ♦ ♦ Un compteur (2,2) est appelé demi additionneur Un compteur (3,2) est un additionneur complet 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet b 0 1 0 1 Nb 0 1 1 2 r 0 0 0 1 s 0 1 1 0 a 0 0 1 1 0 0 1 1 ♦ Équation arithmétique : 2r+s = a+b ♦ Équations logiques réalisation : r = a•b 1-34 c 0 0 0 0 1 1 1 1 Nb 0 1 1 2 1 2 2 3 r 0 0 0 1 0 1 1 1 s 0 1 1 0 1 0 0 1 arithmétique : 2r+s = a+b+c ♦ Équations logiques retenue s=a⊕b⊕c Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet b 0 1 0 1 0 1 0 1 ♦ Équation ♦ Plusieurs somme 2006/2007 Sortie : mot de k bits Additionneur complet a 0 0 1 1 s=a⊕b a0 ... (m,k) sk-1 ... s0 1-35 2006/2007 r = a•b+a•c+b•c réalisations possibles (cf. TP) Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-36 Additionneur 4 bits Le complément à 2 ♦ 2 cas Nombres positifs : binaire naturel, le bit de poids fort est 0 Nombres négatifs : inverser chaque bit de la valeur absolue, ajouter 1, le bit de poids fort est FORCEMENT 1 Exemple : Inverser les bits • +12 est représenté par 00001100 • -12 est représenté par 11110100 ♦4 additionneurs complets en parallèle ♦ Si Cout = 1, dépassement (overflow) ♦ Attention: faux parallélisme ♦ Le temps de calcul est proportionnel au nombre de bits : temps de propagation de la retenue Il existe des versions avec anticipation de retenue 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-37 Additionneur/Soustracteur : 1 circuit A−B= A+(−B)= A+B+1 ♦ En complément à 2 : = 11110100 En circuit : Pas de circuit spécial pour l'addition signée Pour la soustraction, on ajoute l'opposé ♦ Dissymétrique : Représente les valeurs de -2n-1 à 2n-1-1 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-38 UAL 1-bit Opérations arithmétiques simples (+, -) Opérations logiques (And, Or, Xor, Lsh, Ash) ♦ Quand add/sub vaut 0, additionneur 4 bits : 0⊕bi=bi ♦ Quand add/sub vaut 1, soustracteur 4 bits : 1⊕bi=¬bi La retenue entrante du bit de poids faible est 1 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 11110011 1 ♦Unité Arithmétique et Logique −B=B+1 (complément à 2) 2006/2007 + 1-39 Les opérateurs sont mis en parallèle A chaque fois qu'une entrée change les deux opérations sont effectuées 2006/2007 Une seule sortie doit être valide code opération (1 bit = 2 opérations) Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-40 UAL n-bit ♦ n ALU 1-bit en parallèle ♦ Les retenues des additionneurs sont X n n Y S n c0 c1 2006/2007 cascadées ♦ Un code opération (c0, c1) pour choisir la valeur de sortie ♦ Une UAL produit aussi des indicateurs (flags): Z : le résultat est nul C : la retenue N : le résultat est négatif V : dépassement de capacité (overflow) Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-41 Nombres approchés ♦ Nombres Partie fractionnaire Représentation à virgule flottante 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet ♦ On à virgule fixe à virgule flottante : ANSI/IEEE 754 Représentés par mantisse x 2exposant 2 précisions • Précision simple sur 32 bits • Précision double sur 64 bits déplace la virgule après le premier chiffre significatif ♦ On compense avec un exposant ♦ Exemple : 1011101,011012 x 20 101110,1011012 x 21 10111,01011012 x 22 1011,101011012 x 23 101,1101011012 x 24 10,11101011012 x 25 1,011101011012 x 26 mantisse 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-42 La virgule flottante Des bits sont réservés pour la partie imaginaire ♦ Nombres Nombres approchés 1-43 2006/2007 exposant Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-44 Simple précision : float Exemples Signe Exposant Mantisse Nombre représenté S E=]0,255[ M (-1)Sx2E-127x(1,M)2 S 0 >0 (-1)Sx2-126x(0,M)2 0 0 0 +0 1 0 0 -0 - 255 >0 NaN 0 255 0 +∝ 1 255 0 -∝ 0 10000000 00000000000000000000000 • = (-1)0 x 2128-127x(1,0)2 = 2 0 10000001 10100000000000000000000 • = (-1)0 x 2129-127x(1,101)2 = 4 x 1.625 = 6.5 • car (1,101)2 = 1x20+1x2-1+0x2-2+1x2-3 = 1,625 0 00000000 00000000000000000000001 • = (-1)0 x 2-126x2-23 = 2-149 (1,M)2 nombre binaire = mantisse préfixée de '1,' -0 : nombre négatif dont la valeur absolue est < à 2-149 NaN : Not a Number (e.g. Racine d'un nombre négatif) Infini signifie que la valeur absolue est > à 2127x(2-2-23) 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet • Plus petit nombre que l'on peut représenter en simple précision 1-45 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-46 Compléments sur IEEE 754 Double précision : double Signe Exposant Mantisse Nombre représenté S E=]0,2047[ M (-1)Sx2E-1023x(1,M)2 S 0 >0 (-1)Sx2-1022x(0,M)2 0 0 0 +0 1 0 0 -0 - 2047 >0 NaN 0 2047 0 +∝ 1 2047 0 -∝ ♦ ♦ La représentation en complément à 2 sur 32 bits permet de représenter un intervalle de 232 valeurs La représentation en virgule flottante permet de représenter un intervalle de 2256 valeurs Moins de précisions sur les valeurs très grandes et très petites Bonne précision sur les valeurs entre -1 et 1 -∞ ≈ -2128 ≈ -2-149 0 ≈ 2-149 ≈ 2128 +∞ 2047 = 211-1 : 11 bits d'exposant, 52 bits de mantisse 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-47 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-48 Précision Arrondis ♦ Manipulations ♦ (0,1)10 = (1,1001100…)2*2-4 ♦ (0,1+0,1)10 étendues : simple précision étendue (43 bits) double précision étendue (80 bits) ♦4 =(1,1001100…1101)2*2-3 En précision infinie =(1,1001100…1100)2*2-3 En précision sur 43 bits modes : ♦ (0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1)10 Round-to-nearest : par défaut =(1,1001100…1101)2*2-1 En précision sur 43 bits =(1,1001100…1110)2*2-1=0.8 En précision infinie • Si au milieu de 2 valeurs, 0 en poids faible Round-to-zero : conversion en entiers Round-to-+∞ et Round-to--∞ 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-49 Représentation des caractères ♦ Caractères à coder, alphabet + , ! * " % ♦ Code ASCII (7 bits + 1 bit de parité) ♦ "iso-latin-1", 1-50 connu sous le nom iso-8859-1 le huitième bit qui servait pour le contrôle de parité, va être utilisé pour coder plus de caractères. permet 128 combinaisons différentes 27 utilisation de cette table ... Les codes ASCII de 0 à 7F (127 en décimal) demeurent inchangés, Code EBCDIC (8 bits) Extended Binary Coded Decimal Interchange Code les codes supérieurs (ceux qui ont le bit 7 à 1) représentent quelques symboles supplémentaires, ainsi que les lettres accentuées qui satisfont aux exigences des langues de l'Europe de l'Ouest Utilisé principalement par IBM ♦ Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet Évolution du code ASCII American Standard Code for Information Interchange ♦ 2006/2007 Code ANSI American National Standard Institute Utilisés par certains logiciels (Windows) Code ASCII + extensions multilingue 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-51 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-52 Code iso-latin-1 (iso-8859-1) Bibliographie ♦« Architecture de l’ordinateur » N. P. Carter, Schaum’s, EdiScience, 2002 ♦« Architecture des ordinateurs - Une approche quantitative » J.L. Hennessy, D.A. Patterson, Vuibert, 2003 ♦« Architecture de l’ordinateur » A. Tanenbaum, Dunod, 2001 2006/2007 ‘G’ est codé 47h soit 0100 01112 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-53 La logique séquentielle et les éléments mémoire 2006/2007 notion de temps et de mémorisation ♦ Ces notions sont nécessaires au fonctionnement de plusieurs composants ♦ Notion de temps = Horloge ♦ Logique séquentielle synchrone Synchronisation sur front d'impulsion d'horloge (de montée ou de descente) En général, une seule horloge par processeur ♦ Les systèmes sans horloge sont dits asynchrones Une action d'un processeur est un enchaînement d'étapes Les horloges sont des signaux périodiques qui déterminent l'instant auquel les différentes parties se synchronisent Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-54 Horloge (1/2) ♦ Les fonctions combinatoires n'intègrent pas la 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-55 Cycle, période Th Front de montée fréquence= 1 T 2006/2007 Front de descente h Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-56 Horloge 2/2 Exemple sur l’UAL 1-bit ♦ Les signaux d'entrée des composants mémoire doivent être valides lors du front d'horloge Stable si les entrées ne changent pas ♦ ♦Tous les chemins n’ont pas la même longueur Plus de portes à traverser (Cout, O) Le temps dépend du routage ♦Solution facile à mettre en œuvre La période de H doit être suffisamment grande par rapport au temps de stabilisation du plus lent des blocs combinatoires : Th > Tmin bloc combinatoire Élément mémoire 1 Élément mémoire 2 H H Synchroniser les entrées/sorties (éléments mémoire) 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-57 2006/2007 ♦ L'information à mémoriser est modélisée par un Etat Q ♦ Pour une mémoire élémentaire (1 bit) : Q+ = f(E,Q) ♦ Ces mémoires peuvent être réalisées avec de la logique combinatoire asynchrone Rétroaction, utilise le délai des portes E Q Q+ 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 2006/2007 1 c=0, la barrière est fermée Q+ = Q S(et) R(eset) Q+ 0 0 Q 0 1 0 1 0 1 1 1 Non utilisé ♦Complètement combinatoire c Q E δt c=1, la barrière est ouverte Q+ = E 1 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-58 Latch SR asynchrone Les éléments mémoire c Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-59 Q+ La rétroaction et le délai réalisent la mémorisation Set : fixe la sortie à 1, Reset : fixe la sortie à 0 La combinaison S=1 R=1 est interdite et pose des problèmes d'oscillation (cf. TP2) 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-60 Latch D synchrone H D Q+ 0 0 Q 0 1 Q 1 0 0 1 1 1 Exemple de bon fonctionnement ♦Chronogramme : Ici, l'horloge est périodique mais pas symétrique Latch synchrone, car il y a une horloge Donnée D ♦Le latch D est actif sur niveau haut de l'horloge Horloge H H=0, le latch est fermé, Q+ = Q H=1, le latch est ouvert 'transparent', Q+ = D ♦D doit être valide avant le front descendant de H ♦R et S ne peuvent plus être à 1 simultanément 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-61 ♦Un latch D peut séparer deux composants ♦Mais ne convient pas pour plus de deux Quand H=1, les deux latchs D1 et D2 s'ouvrent Les données traversent les 2 étages en 1 cycle • Ssi T1+T2 < TH/2 D1 T2 bloc combinatoire 2 Etat initial Q=0 δt = temps de δt mémorisation Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 2006/2007 D2 ♦Un bistable est une bascule synchronisée sur front d'horloge, le latch D est synchronisé sur niveau ♦Réalisation avec une commande Maître-Esclave 1 horloge H1 commande l'écriture : Maître 1 horloge H2 commande la lecture : Esclave D T3 bloc combinatoire 3 Horloge H TH Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet Q D Maître H 2006/2007 1-62 Bistable et Maître-Esclave Limitations du latch D T1 bloc combinatoire 1 Sortie Q H1 1-63 2006/2007 Q Esclave H H1•H2=0 H2 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-64 Les registres Bistable D - Flip-Flop ♦En pratique, 1 seule horloge H génère H1 et H2 ♦Les sorties sont activées sur front de descente de H ♦L'entrée I doit être valide avant et après le front actif ♦Un registre 1-bit est un bistable D avec 1 entrée W L'entrée synchrone W(rite) contrôle l'écriture W=1 : contrôle par l'horloge; W=0 : désactivé ♦Un registre n-bit est constitué de n registres 1-bit Temps d'établissement (setup), temps de maintien (hold) b0 D 4 Q 4 b1 b2 H b3 H Bistable D 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-65 ♦Les registres peuvent être regroupés en bancs R0 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet Coût important et temps de traversée = O(n) Que se passe-t-il quand on ne veut pas lire ? Remarque : Il est interdit de connecter ensemble deux sorties logiques sauf ... 4 4 Donnée 1 à lire R0 4 w N° reg écriture 3 N° reg 1 lecture 3 N° reg 2 lecture 3 4 R7 1-66 4 w W 2006/2007 ♦ Pour la lecture : simple multiplexeur On lit ou écrit en donnant le numéro du registre (adresse) E.g. 2 lectures et 1 écriture dans le même cycle d’horloge E.g. Pour un banc de 8 registres, il faut 3 bits de sélection 4 Registre 4-bit Commande de lecture - multiplexeur Les bancs de registres Donnée à écrire 4 W 4 4 4 Donnée 2 à lire 4 w w R7 4 N° du registre de lecture Banc de 8 registres de 4 bits 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-67 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-68 Logique à 3 états et bus Coût du multiplexeur ♦Ici, seulement 4 entrées 4 portes à 3 entrées 1 porte à 4 entrées Coût = Nombre de portes ♦ Une sortie 3 états peut prendre un des 3 états : État logique 0, état logique 1 État déconnecté (pas logique dit “haute impédance”) Un tel signal est réalisé avec une commande Enable ♦ 1 bus coûte bien moins cher qu’un multiplexeur • en O(n) ♦Banc de registres : 8 registres Ligne de bit commune (bus 1 bit) O=I ssi E(nable)=1 8 portes à 4 entrées 1 porte à 8 entrées ???? 1 contrôleur autorise 1 seule ligne à la fois : e.g. Décodeur d'adresse symbolise une sortie à 3 états Porte de transfert à 3 états 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-69 ♦Plus le bus est long, plus le temps de propagation est grand Bus 3 états 4 bits D0 b2 D1 D2 b3 3 N° du registre à lire Mémoire rapide (statique) : SRAM (1ns) D3 E0 Décodeur 3 vers 8 1-70 ♦ Réseaux de mémoires élémentaires de taille supérieure aux bancs de registres ♦ Coût (financier + surface) proportionnel à la rapidité b0 b1 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet Les mémoires RAM Banc de registres et bus 3 états R0 2006/2007 • Petites (cache) Mémoire lente (dynamique) : DRAM (60-70ns) R7 b0 • Plus grandes (mémoire principale) b1 Disque dur : mémoire virtuelle (10ms) b2 • Beaucoup plus lent (/103), beaucoup plus grand b3 E7 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-71 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-72 Structure des puces mémoire Structure des puces mémoire Lignes de bit Moitié supérieure des bits d'adresse Moitié inférieure des bits d'adresse D é c o d e u r Cellule binaire Cellule binaire Cellule binaire Cellule binaire Cellule binaire Cellule binaire Cellule binaire Cellule binaire Lignes de mot Cellule binaire Cellule binaire Cellule binaire Cellule binaire Cellule binaire Cellule binaire Cellule binaire Cellule binaire ♦Chaque cellule binaire mémorise 1 bit ♦Les bits de poids élevé sont chargés dans un décodeur pour activer une ligne de mot ♦Les bits de poids faible sélectionnent la ligne de bit (multiplexeur ou contrôleur 3 états) ♦Pour avoir une mémoire sur plusieurs bits Plusieurs plans de cellules binaires (8 plans pour 1 octet) Logique plus compliquée de sélection des lignes de bit ♦Les matrices ne sont pas carrées : Mémoire 8 bits : 8 cellules binaires par rangée (mot) Multiplexeur ou bus 3 états Sortie 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-73 Rapidité des mémoires 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-74 SRAM ( Static RAM) ♦ La rapidité des mémoires est déterminée par : La longueur des lignes de mot et des lignes de bit Cellule de SRAM 6 transistors • Mémoires modernes : plus de petites matrices La manière dont les cellules binaires sont construites • SRAM : 6 transistors, plus rapide mais plus grande • DRAM : 1 transistor, moins rapide et moins grande ♦Quand la ligne de mot est inactive La donnée est mémorisée indéfiniment (statique) ♦ Temps d'accès (latence) Durée entre l'activation et l'obtention d'une donnée valide (peut être de plusieurs cycles) ♦Quand la ligne de mot est active Lecture : la valeur et son inverse vers les lignes de bit • Puis sélectionnées en sortie Écriture : les 2 lignes de bit sont alimentées avec la valeur à mémoriser et son inverse 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-75 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-76 DRAM (Dynamic RAM) Rafraîchissement de DRAM Cellule binaire DRAM 1 transistor 1 condensateur (1 connexion) ♦ Lorsque la ligne de mot est active, le condensateur est connecté à la ligne de bit ♦ Sinon, il se décharge petit à petit (dynamique) ♦ Les DRAM ont une capacité plus grosse que les SRAM et sont plus lentes ♦ Les DRAM doivent être rafraîchies régulièrement 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-77 DRAM et DRAM paginées ♦ Les rangées sont rafraîchies en lisant la valeur et en la ré-écrivant immédiatement ♦ Si les rangées sont rafraîchies suffisamment souvent, leur contenu est préservé indéfiniment ♦ Les DRAM indique un temps de rafraîchissement Plusieurs politiques de rafraîchissement existent Par exemple, on peut rafraîchir chaque rangée les unes après les autres 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-78 DRAM Extended Data Out ♦ DRAM ♦ Apparues en 1995 en remplacement de FPM La transmission de l'adresse se fait en 2 phases • RAS : l'adresse de la rangée (bits de poids forts) • CAS : l'adresse de la colonne (bits de poids faibles) ♦ DRAM paginées (Fast Page Mode) Lors de RAS tous les bits de la rangée sont mémorisés dans un latch Plusieurs CAS successifs permettent de lire tous les bits de la rangée et de réduire le temps d'accès 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-79 Lorsqu’une donnée est lue, l’adresse de la rangée suivante est générée automatiquement Bonne accélération, lorsqu’on lit des données consécutives Cette technologie asynchrone est limitée par la fréquence d’horloge Mémoires synchrones « avec le processeur » 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-80 Conditionnement Mémoires synchrones ♦SIMM (Single Inline Memory Module) ♦SDRAM (Synchronous DRAM) - 1997 La mémoire se branche sur la fréquence d’horloge du processeur, le processeur n’a plus besoin d’attendre ♦DDR-SDRAM (Double Data Rate SDRAM) Apparue en 1999 Plusieurs canaux de lecture en même temps (2 ou 4) En pratique on couple 2 barrettes mémoires 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-81 Circuits imprimés rectangulaires 30 ou 72 broches ♦DIMM (Dual Inline Memory Module) 168 broches Plus besoin de coupler 2 barrettes (2 bancs sur la même barrette) Détrompeur pour l’installation 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-82 Machines à états finis ♦ Les systèmes de contrôle cadencent les différents composants assemblés (e.g. multiplieur) ♦ On les décrits avec des machines à états finis ♦ Mealy et Moore ont le même pouvoir d'expression Contrôle Entrée Fonction de sortie sortie = h(q,e) Machines à états finis m Blocs combinatoires Fonction état suivant q+ = f(q,e) Mealy q+ = f(q) Moore n q n État courant Sortie q+ état suivant Réseaux de bistables D Horloge 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-83 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-84 Multiplication binaire non signée 0 0 0 0 1 1 0 0 0 x + + 0 0 + 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 1 0 1 1 1 1 1 0 0 0 0 0 opérande1 1 1 1 0 1 0 1 0 1 Contrôle du multiplieur opérande2 Registre 1 Registre 2 Décalage Win + contrôle Accumulateur RAZ Waccu b0 c Compteur incrémenter Signaux de contrôle chemin de données Résultats intermédiaires ♦ Une multiplication n bits est équivalente à n additions ♦ On accumule les résultats intermédiaires dans un registre 2n-bit 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-85 Machine à états pour le multiplieur [c=0 & b0=0] / decalage, incrementer / Win, RAZ / decalage q1=1,q0=0 q1=0,q0=1 q1=1,q0=1 2006/2007 c b0 q1 q0 q1+ q0+ 0 0 1 1 - 0 1 0 1 - 0 0 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 0 1 1 1 1 Win Raz Waccu Déc Incr 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 0 1 0 0 0 1 0 ♦Sorties : Win (valider les opérandes), Waccu (accumuler) Décalage, incrémenter ♦4 états (2 bits q1 q0) : Initial : mise à zéro accu et compteur, lire opérandes Calcul : en cours de calcul Addition : b0 vaut 1, on accumule Final : le calcul est terminé 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-86 Équations logiques in = RAZ = q 0 • q1 accu = c • b0 • q1 • q 0 Décalage = c • b0 • q1 • q0 + q1 • q0 Incrémente r = c • q1 • q0 q0+ = Waccu [c=0 & b0=1] / Waccu, incrementer [c=1] Final b0 (bit de poids faible du registre 2) et c (compteur=n) W W Addition Calcul Initial q1=0,q0=0 ♦Entrées : q1+ = q0 • q1 + (c + b0 ) • q1 • q0 0 1 1 0 0 0 0 ♦ Ces fonctions logiques peuvent être réalisées simplement avec des réseaux logiques programmables (RLP) 1-87 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-88 Application au multiplieur Réseau Logique Programmable b0 • c • q1 • q0 q 0 • q1 ♦ 3 cas de “programmation” n entrées p c m sorties q0 Matrice OU figée q0 • q1 b0•c•q0•q1 W W b0 • q0 • q1 in = RAZ = q0 • q1 accu = c • b 0 • q1 • q 0 Décalage = c • b0 • q1 • q0 + q1 • q0 Incrémente r = c • q1 • q0 Matrice ET q0+ = Waccu q1+ = q0 • q1 + (c + b0 ) • q1 • q0 q1 • PAL = Programmable Array Logic produits Matrice portes OU b0 Les 2 matrices sont figées • ROM = Mémoire morte Matrice portes ET q 0 • q1 c • q1 • q0 Win = RAZ Les 2 matrices sont programmables Matrice OU • PLA = Programmable Logic Array Décalage Incrémenter q1+ Waccu = q0+ ♦ marquer les intersections pour programmer le PLA 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-89 2006/2007 Architecture des Ordinateurs - Licence Informatique L3 Frédéric Mallet 1-90