520 likes | 1.17k Views
Architecture des ordinateurs cours 2 Structure d’un ordinateur : registres, UAL, bus. Agata Savary , IUT de Blois, D épartement GTR, 1 e année , 200 4 -200 5. Processeur. Unité de contrôle. Chemin de données. UAL. Registres. Processor (CPU). Structure d’un ordinateur simple.
E N D
Architecture des ordinateurscours 2Structure d’un ordinateur :registres, UAL, bus Agata Savary, IUT de Blois, Département GTR, 1e année, 2004-2005
Processeur Unité de contrôle Chemin de données UAL Registres Processor (CPU) Structure d’un ordinateur simple Controlunit Datapath Output devices Main memory Input devices Entrées Sorties ALU Mémoire principale Bus Registers UAL = Unité Arithmétique et Logique (Arithmetic and Logic Unit = ALU) IUT Blois GTR1, 2004/05
Le processeur – couche matérielle(Sur l’exemple d’un simulateur de processeur JASPer) JASPer - Just Another Simulated Processor http://brittunculi.com/jasp/
Unité de contrôle (unité de commande) =“le cerveau” du processeur: charge l’instruction courante située en mémoire décode l’instruction (i.e. détermine le flux de données dans le chemin de données) Chemin données= “les muscles” du processeur : Une ou plusieurs UAL effectuent les opérations indiquées par l’instruction (addition, décalage, etc.) Les registres stockent les résultats temporaires : compteur de programme (program counter = PC) pointe la prochaine instruction registre d’instruction (instruction register = IR) contient l’instruction en cours d’exécution nombreux registres généraux – stockent les résultats intermédiaires Les bus (internes) interconnectent les registres et l’UAL Central processing unit (CPU) Processeur (Unité centrale, UC) IUT Blois GTR1, 2004/05
Compteur de programme Bus Registres généraux Registre d’instruction UAL Unité de contrôle Processeur – example : JASPer IUT Blois GTR1, 2004/05
Registres Logique séquentielleSynchronisationRegistres JASPer IUT Blois GTR1, 2004/05
Rappel sur les circuits logiques • On distingue 2 types de circuits (blocs) logiques : • Circuits combinatoires = circuits sans mémoire : • les sorties ne dépendent que des entrées courantes • exemples : multiplexeur, démultiplexeur, codeur, décodeur, décaleur, additionneur, … (UAL) • Circuits séquentiels = circuits avec mémoire : • la mémoire (l’élément d’état) stocke l’état interne du circuit • les sorties de tels circuits peuvent dépendre à la fois des entrées courantes et de l’état interne du circuit • exemples d’éléments d’état : bascule RS, bascule D, flip-flop D • exemples de circuits séquentiels : registre, compteur IUT Blois GTR1, 2004/05
Fonctionnement idéal : 1 0 temps période de l’horloge (temps du cycle) front montant front descendant Fonctionnement réel : 1 0 Durée du front non nulle, mais très courte Rappel sur les horloges IUT Blois GTR1, 2004/05
D D1 Q1 D2 Q2 Q CK1 CK2 CKFF Rappel sur le flip-flop Flèche inversée : “contrôlé par le front descendant” IUT Blois GTR1, 2004/05
D Q CK Communication asynchrone Imaginons un circuit cominatoire dont le résultat est enregistré dans un élément d’état “transparent” (e.g. une bascule D avec CK=1) Conclusion : Les évènements doivent être synchronisés, i.e. arriver à des moments contrôlables. S 1 • A partir de quel moment peut-on considérer que la sortie S est valable et peut être enregistrée ? • Il faut attendre au moins le temps égal au temps de traversée du circuit. • A partir de quel moment les entrées (A, B,C) du circuit peuvent-elles changer ? • Il faut attendre le temps de traversée du circuit combinatoire + le temps de traversée de la bascule IUT Blois GTR1, 2004/05
Communication synchrone • Un flip-flop n’est pas transparent : sa sortie ne change que sur le front d’impulsion d’horloge (soit toujours sur le front montant, soit toujours sur le front descendant). • Ainsi il constitue la base d’une communication synchrone : les évenements de changement d’état ne peuvent avoir lieu qu’aux moments : • précis (les fronts d’horloge), • réguliers (basés sur le temps du cycle) • de très courte durée (durée du front d’horloge) • Une horloge commune à un groupe d’éléments d’état garantie que ces élémentssont mis à jour au même moment(c’est le cas idéal; en réalité les entrées CK de différents éléments peuvent subir un désalignement ; dans ce cas le temps de cycle doit être prolongé de la durée du désalignement) IUT Blois GTR1, 2004/05
Q1 Q1 Q1 Q1 Q1 Q1 D1 D1 D1 D1 D1 D1 D1 D1 D1 D1 D1 D1 Interaction des circuits combinatoires et des éléments d’état Circuit combinatoire 1 Circuit combinatoire 2 Q1 Q1 Q1 D1 D1 D1 D1 D1 D1 Q1i D2 Q2i D2 Q3i D1i D1 D1 D2i D1 D3i • Au premier front descendant d’horloge les valeurs présentées sur D1i s’enregistrent dans Q1i. • Pendant le cycle suivant les nouvelles valeurs de Q1i traversent le premier circuit combinatoire (CC1) et les sorties de CC1 sont présentées aux entrées D2i avant le front descendant suivant • Au front descendant suivant les valeurs de D2i s’enregistrent dans Q2i • Pendant le cycle suivant les valeurs de Q2i traversent CC2 et sont présentées sur D3i, etc. Les circuits combinatoires effectuent des calculs. Les éléments d’état sauvegardent les résultats intermédiaires. IUT Blois GTR1, 2004/05
Construction d’un registre Tention haute Amlificateur de puissance • Registre 8 bits = ensemble de 8 flip-flops • L’horloge est commune pour tous les flip-flops • L’entrée commune CLR force l’initialisation du registre à 0000 0000. Prise de terre (tention basse) Broches IUT Blois GTR1, 2004/05
Registres JASPer • PC = compteur de programme ; contient l’adresse de l’instruction suivante • SP (stack pointer) = pointeur de la pile de programme (elle sert à sauvegarder des paramètres et des variables lors des appels de procédures et des interruptions/exceptions) • IR = registre de l’instruction ; contient l’instruction en cours d’exécution • A, B = registres généraux IUT Blois GTR1, 2004/05
Registres de l’UAL (JASPer) • ALUX, ALUY = arguments de l’opération UAL • R = résultat de l’opération UAL • PSR (program status register) = registre de statut du programme ; contient des “drapeaux” (flags) d’un bit chacun qui donnent des informations sur la dernière opération exécutée par l’UAL : • C (carry) - la dernière opération a provoqué une retenue • Z(zero) - la dernière opération a donné résultat 0 • N(negativ) - la dernière opération a donné un résultat négatif • V (overflow) - la dernière opération a donné un débordement IUT Blois GTR1, 2004/05
Registres de mémoire (JASPer) • MAR (memory address register) = registre d’adresse mémoire • MDR (memory data register) = registre de donnée mémoire • Lors d’une lecture mémoire MAR contient l’adresse de la case mémoire à lire, MDR reçoit la donnée de l’adresse indiquée. • Lors d’une écriture mémoire MAR contient l’adresse de la case mémoire dans laquelle l’on veut écrire, MDR contient la donnée que l’on veut écrire. IUT Blois GTR1, 2004/05
Circuits à registre (JASPer) • CU = circuit de l’unité de contrôle; contient un registre pour le “op-code”, le code de l’opération à effectuer • INC = circuit contenant la constante 1 pour l’incrémentation du PC au début de chaque nouvelle instruction IUT Blois GTR1, 2004/05
UAL Unité Arithmétique et Logique(UAL) IUT Blois GTR1, 2004/05
Rôle d’une UAL Nous voudrions pouvoir effectuer les opérations arithmétiques (en complément à 2) et logiques suivantes pour deux nombres A et B : Ces opérations sont effectuées par l’unité arithmétique et logique (UAL). IUT Blois GTR1, 2004/05
Opérations arithmétiques et logiques - exemples IUT Blois GTR1, 2004/05
bi ai ai bi + RetSorti RetEntri Sommei RetSorti RetEntri Sommei Circuit qui réalise A ADD B (1/2) IUT Blois GTR1, 2004/05
A B 16 16 RS + RE b15 a15 b1 a1 b0 a0 RS15 RE15...RS1 RE1=RS0 RE0 16 S s15 s1 s0 Circuits arithmétiques et logiques IUT Blois GTR1, 2004/05
B A A B Contrôle 16 16 16 16 4 UAL 4 Contrôle UAL ± SHL/ SHR ET/ OU/ NON 16+4 Résultat 16+4 16+4 16+4 0 1 2 MUX 16+4 Résultat Construction d’une UAL 16 bits • 4 bits supplémentaires pour chaque sortie correspondent à des drapeaux cf. TD) IUT Blois GTR1, 2004/05
Bus IUT Blois GTR1, 2004/05
Bus • Les bus du processeur = ensembles de conducteurs qui connectent les composants du processeur • Une voie d’un bus peut transporter un bit d’information à la fois • Il y a 3 types de bus (dans JASPer) : • Bus de données (pour transport des données) • Bus d’adresse (en bleu ; pour transport d’adresses mémoire) • Bus de contrôle (en rouge ; pour transport des signaux de contrôle entre l’unité de contrôle et le chemin de données) IUT Blois GTR1, 2004/05
Contrôle d’accès à un bus de données commun (1/3) • Prenons l’exemple des registres A et B du processeur JASPer. • Chacun peut (cf transp. 58) • recevoir le contenu d’un autre registre • envoyer son contenu vers un autre registre • Chacun est constitué de 16 flip-flops • Ils sont connectés à un bus d’entrée et un bus de sortie communs. Mais un bus ne peut transporter qu’une donnée à la fois. • Comment éviter les conflits d’accès aux bus ? IUT Blois GTR1, 2004/05
D1 D1 QAi DAi D1 Voie i d’un bus de données Voie i d’un bus de données 0 M U X Décodeur 0 1 D1 D1 QBi DBi D1 1 AouB VersAouB EcrireAB Contrôle d’accès à un bus de données (2/3)Choix entre deux registres 1 bit pour une lecture/écriture IUT Blois GTR1, 2004/05
D1 Bus de données D1 D1 QAi D1 DAi 0 Décodeur 0 Bus de données 0 M U X 1 D1 D1 1 1 D1 D1 QBi DBi D1 AouB VersAouB EcrireAB Contrôle d’accès à un bus de données (3/3)Choix entre deux registres n bits pour une lecture/écriture • Les bits correspondants des deux registres sont connectés comme sur le transparent précédent • Le signaux de contrôle sont communs pour toutes les n paires de bits (ai,bi) IUT Blois GTR1, 2004/05
Pour la semaine de la rentrée • Mini-contrôle en TD : lire les 2 premiers cours (terminologie ang. inclue) IUT Blois GTR1, 2004/05
Devoir 1 (histoire de l’informatique)REPONSES IUT Blois GTR1, 2004/05