Cours 5 3. Construction d’un ordinateur Le matériel 2017-04-02 3. Construction d’un ordinateur Les circuits logiques L ’unité de contrôle (UC) L’unité arithmétique et logique (UAL) Le matériel Chapitres 4 et 5 CSA Chapitres 3 et 4 CSAPP Synthèse du professeur sif-1053
Les circuits logiques La notion de circuits logiques a été introduite en vue de simplifier l’étude des circuits électroniques numériques. Grâce à la notion de circuits logiques il est possible de travailler sur des systèmes extrêmement complexes sans pratiquement faire appel à aucune notion d’électronique. Les systèmes électroniques numériques les plus complexes, tels les ordinateurs, sont construits à partir de circuits logiques (on utilise également portes logiques) fondamentaux. Il existe trois portes logiques élémentaires, le circuit NON (circuit inverseur), le circuit OU et le circuit ET. sif-1053
Les circuits logiques sif-1053
Le circuit NON Le circuit inverseur, ou circuit NON, effectue l’opération de complémentation d’une variable booléenne. Il comporte bien sûr une entrée et une sortie. Si dans l’entrée nous introduisons la variable A, à la sortie nous obtenons la variable complémentée A’. sif-1053
Le circuit OU sif-1053
Le circuit ET sif-1053
Identités de l’algèbre de Boole sif-1053
Le circuit NET Le circuit NET (contraction de NON-ET) résulte de la mise en série d’un circuit ET et d’un circuit NON. sif-1053
Le circuit NET Le circuit NET sif-1053
Le circuit NI (OU complémenté) Le circuit NI résulte de la mise en série d’un circuit OU et d’un circuit NON. sif-1053
Il est important de constater que le circuit NET peut, par de judicieuses combinaisons, servir à réaliser les trois portes logiques de base. Loi d’idempotence (AA = A) Loi de De Morgan (AB)’ = A’ + B’ sif-1053
Le circuit OU EXCLUSIF (XOU) La porte OU EXCLUSIF est souvent appelée la porte “un mais pas tous”. On constate à partir du tableau booléen qu’il est semblable à celui de la fonction OU, à cela près que, quand les deux entrées sont à 1, la porte XOU donne un 0. En fait, la porte XOU n’est validée (donne une sortie 1) que si ses entrées comportent un nombre impair de 1. La porte XOU peut donc être considérée comme un circuit de contrôle des bits impairs. A A xor B sif-1053
sif-1053
Circuits plus élaborés La combinaison de portes logiques permet le développement de circuits plus spécialisés Par exemple, avec un circuit simple nous pourrions contrôler le flot de données sif-1053
Circuits plus élaborés Pour sélectionner une entrée de donnée parmi plusieurs et l’aiguiller vers une sortie il existe des circuits de multiplexage O = (A ET Z) OU (B ET Y) OU (C ET X) OU (D ET W) sif-1053
Circuits plus élaborés En ajoutant un décodeur, nous pouvons sélectionner une des quatre entrées en ayant que deux signaux de sélection O = (A ET (X’ ET Y’) ) OU (B ET (X ET Y’)) OU (C ET (X’ ET Y)) OU (D ET (X ET Y)) sif-1053
Circuits plus élaborés Multiplexeur 4/1 avec la sélection de l’entrée par un décodeur sif-1053
Circuits plus élaborés Diagramme temporel d’un multiplexeur 4/1 avec la sélection de l’entrée par un décodeur sif-1053
Multiplexeur 4/1 O = (D0 ET (C1’ ET C2’) ) OU (D1 ET (C1 ET C2’)) OU (D2 ET (C1’ ET C2)) OU (D3 ET (C1 ET C2)) Permet de sélectionner une entrée parmi quatre sif-1053
Circuits plus élaborés Les circuits de décodage (décodeur) servent à la sélection de dispositifs: Sélections de registres Sélections d’emplacements de mémoire Sélections d’opérations dans l’ALU sif-1053
Décodeur et ALU 1 1 sif-1053
Décodeur 3/8 sif-1053
Circuits plus élaborés Les circuits de décodage (décodeur) servent à la sélection de dispositifs Par exemple: sélection de segments d’afficheur sif-1053
Circuits plus élaborés Regardons plus spécifiquement l’alimentation du segment a Logique directe a = W’X’Y’Z’ + W’X’YZ’ + W’X’YZ + W’XY’Z + W’XYZ + WX’Y’Z’ + WX’Y’Z Logique inverse a’ = W’X’Y’Z + W’XY’Z’ + W’XYZ’ sif-1053
Circuits plus élaborés Alimentation du segment a sif-1053
Circuits plus élaborés Le contrôleur d’une machine à laver peut être considérer comme une représentation simplifiée de l’unité de contrôle d’un CPU 1 cycle = 30 minutes sif-1053
Circuits plus élaborés Chaque opération (instruction) est associée à un code de trois bits qui eux sont associés à des signaux de contrôle sif-1053
Circuits plus élaborés Nous pouvons alléger la logique de contrôle en emmagasinant les signaux de contrôle dans une mémoire sif-1053
Circuits plus élaborés La méthode de décodage par utilisation d’une mémoire peut aussi être améliorée en ajoutant la possibilité de branchement conditionnel et le bouclage Et ce en élargissant le mot de contrôle: Par l’ajout d’un champ adresse qui permet d’effectuer un branchement à un autre emplacement dans la mémoire du bloc de contrôle Par l’ajout d’un champ permettant d’identifier les branchements conditionnels sif-1053
Circuits plus élaborés sif-1053
CISC versus RISC La microprogrammation permet de concevoir des architectures très élaborées. Toutefois, les constructeurs des supers ordinateurs utilisent une stratégie très différente, car les très grandes vitesses d ’exécution sont difficilement réalisables avec la microprogrammation. Les supers machines privilégient les architectures qui offrent un jeux d ’instructions réduit. Donc, plus simple à réaliser et plus rapide à l ’exécution. sif-1053
Ces architectures sont connues sous l ’acronyme RISC (Reduced Instruction Set Computer). Ce terme a été choisi en opposition aux architectures « complexes » qui étaient la norme jusqu’à la fin des années 80 (Digital, Intel, IBM, entre autres). Ces architectures sont du type CISC (Complex Instruction Set Computer). La différence principale entre les architectures RISC et CISC réside dans la manière que l’unité de contrôle décode les instructions sif-1053
Architecture RISC La méthode de décodage utilisée dans la première implémentation du système de contrôle de la machine à laver est dite cablée (Hard-wired) puisque le décodage est strictement effectué à l’aide de circuits logiques Les architectures RISC utilisent le même principe: L’instruction en cours d’exécution est extraite de la RAM et emmagasinée dans le IR Le code d’instruction (ex: ADD, SUB, MOV) est utilisé pour produire les signaux de contrôle Les registres d’état de l’ALU et un compteur de cycles machine servent aussi à la logique de contrôle pour produire les signaux de contrôle sif-1053
Architecture RISC sif-1053
Architecture CISC sif-1053
Architecture CISC MAR: Memory adr. reg. MDR: Memory data reg. MBR: Memory byte reg. PC: Program counter SP: stack pointer LV: base pointer sif-1053
Architecture CISC F0, F1: Opérations de l ’ALU ENA, ENB: Validation des entrées (ENABLE) INVA: Inversion de A INC: Tenir compte du carry in (+ 1) sif-1053
Exemples d ’opérations Incrément de 1 du SP SP <- SP + 1 Bbus <- SP ENB <- 1 ENA <- 0 INC <- 1 Cbus <- Bbus + 1 SP <- Cbus sif-1053
Architecture CISC MPC: program counter MIR: instruction register sif-1053
Architecture CISC NEXT_ADR.: adr. de la prochaine instruction JAM: détermine comment la prochaine instr. est sélectionnée ALU: fonction du ALU ou shifter C: reg. destination Mem: fonction mémoire B: reg. source sif-1053
Architecture CISC Une pile est indispensable pour le bon fonctionnement de nos programmes Une pile est un ensemble d’espaces mémoire qui permet de stocker les variables locales d’une procédure LV pointe au début du bloc mémoire où sont stockées les variables locales d’une procédure SP pointe sur la variable locale sur le dessus de la pile Chaque variable est accédée en donnant le décalage par rapport à LV sif-1053
Architecture CISC (pile) PROC() { int a1, a2, a3 ; } sif-1053
Architecture CISC (pile) { a1 = a2 + a3 ; } ILOAD a2 ILOAD a3 ADD ISTORE a1 sif-1053
Architecture CISC == sif-1053
Introduction au ISA de MIC-1 (Architecture CISC) Jeu d’instructions sif-1053
Exemple d’implantation sif-1053
Exemple d’implantation Exécution du IADD (0x60) instruction iadd1 MAR <- SP <- SP - 1; rd SP pointe sur l’emplacement juste en dessous du haut (dessus) de la pile Lecture de cet emplacement dans MDR instruction iadd2 H <- TOS H contient le contenu de l’emplacement du dessus de la pile (au iadd1) instruction iadd3 MDR <- TOS <- MDR + H ; wr; goto Main1 Addition Écriture dans TOS et sur le dessus de la pile (adr. dans MAR) sif-1053
instruction iadd1 iadd2 SP - 1 sif-1053
instruction iadd2 iadd3 TOS sif-1053
instruction iadd3 main1 MDR + H sif-1053