La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions.

Présentations similaires


Présentation au sujet: "Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions."— Transcription de la présentation:

1 Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions Séquenceur CKCK n BASCULES Opcode Opérandes Fanions RAM Contrôle SLC Opérandes Instruction Adresse CKCK

2 Séquenceur CKCK n BASCULES Opcode Opérandes n BASCULES Opcode Opérandes Fanions RAM Contrôle SLC Opérandes Instruction Adresse CKCK Résumé CKCK Offset SLC Opcode Condition Fanions +1 Adresse + PC

3 PC + PC+ offset PC + PC+ offset Résumé Mémoire Séquenceur CKCK IR Opcode Opérandes IR Opcode Opérandes Fanions RAM Contrôle SLC Opérandes MD R MA R CKCK PC PC + adresse initiale MAR PC + MDR M[MAR] IR + MDR MAR PC + MDR M[MAR] IR + MDR décodification de IR PC + PC+1 saut? contrôle? adresse? exécution chargement OUI NONOUI NONOUINON CK

4 Complication #1 Comment peut fonctionner un processeur 8 ou 16 bits quand les instructions doivent coder tellement d'informations? ou Comment réaliser des instructions qui nécessitent plus d'opérandes que ne peut coder un seul mot mémoire? ou Comment exécuter des instructions qui nécessitent plusieurs coups d'horloge? Une solution possible: la microprogrammation.

5 Décodage - Processeurs câblés Mémoire Séquenceur CKCK IR Opcode Opérandes IR Opcode Opérandes Fanions RAM Contrôle SLC Opérandes MD R MA R CKCK PC OPCODE O S W = E E E ADRESSE N L ALC SHC RRA RRB N WRA ØØØ ØØØ ØØØ ØØØ 0 ØØØ ØØ ØØØ ØØ 000 ØØØ ØØ ØØ ØØ ØØ ØØØ RAM 2 N xC

6 Décodage - Microprogrammation Mémoire Séquenceur CKCK IR Opcode Opérandes IR Opcode Opérandes Fanions Microprogrammes Contrôle Opérandes MD R MA R CKCK PC OPCODE Microinstruction 1 Microinstruction 2... Microinstruction N Microinstruction 1 Microinstruction 2... Microinstruction N Microinstruction Microinstruction

7 Décodage - Microprogrammation Mémoire Séquenceur CKCK IR Opcode Opérandes IR Opcode Opérandes Fanions Microprogrammes Contrôle Opérandes MD R MA R CKCK PC OPCODE S0S1S2Sn S0S1S2SnS3

8 Exemple - Motorola Mémoire Séquenceur CKCK IR Opcode Opérandes IR Opcode Opérandes Fanions Microprogrammes Contrôle Opérandes MD R MA R CKCK PC Architecture 16 bits (extensions 32 bits) 12 modes d'adressage 16 fanions 8 registres de 16 (32) bits de large Exemple 1: addition (en BCD) des contenus de deux adresses stockées dans deux registres, avec pré-décrément des adresses abcd -(A1),-(A2) Exemple 2: soustraction d'un nombre immédiat (16 bits) au contenu d'une position mémoire (adresse 16 bits) subi.0 #0f0fH,2d52H

9 abcd -(A1),-(A2) Exemple 1 - Codage de l'instruction Mémoire Séquenceur CKCK IR Opcode Opérandes IR Opcode Opérandes Fanions Microprogrammes Contrôle Opérandes MD R MA R CKCK PC 1 mot de 16 bits est suffisant pour coder cette instruction: #1: Destination Source Il faut remarquer que le contenu de la destination est écrasé par le résultat. On peut supposer que le processeur contient une seule ALU.

10 Exemple 1 - Décodage de l'instruction Mémoire Séquenceur CKCK IR IR Fanions Microprogrammes Contrôle Opérandes MD R MA R CKCK PC A1 A1-1 M[A1] M[A2]+M[A1] PC + PC+1 IR + M[PC + ] A2 A2-1 abcd -(A1),-(A2) S0 S1 S2

11 subi.0 #0f0fH,2d52H Exemple 2 - Codage de l'instruction Mémoire Séquenceur CKCK IR Opcode Opérandes IR Opcode Opérandes Fanions Microprogrammes Contrôle Opérandes MD R MA R CKCK PC 3 mots de 16 bits sont nécessaires pour coder cette instruction: #1: Taille des données Mode d'adressage #2: Immédiat #3: Adresse

12 Exemple 2 - Décodage de l'instruction Mémoire Séquenceur CKCK IR IR Fanions Microprogrammes Contrôle Opérandes MD R MA R CKCK PC A1 IR PC + PC+1 IR + M[PC + ] M[IR] M[IR]-A1 PC + PC+1 IR + M[PC + ] PC + PC+1 IR + M[PC + ] subi.0 #0f0fH,2d52H S0 S1 S2

13 Complication #2 Existe-t-il des architectures alternatives pour l'unité de traitement permettant de réduire la complexité des instructions? La réponse est (évidemment) oui. Malheureusement, une telle réduction implique une perte de performance: si les instructions sont plus simples, il faut plus d'instructions pour une tâche donnée. On échange une complexité matérielle contre une complexité logicielle.

14 Architecture "standard" - Structure RA WA RB WEN I0I0 I1I1 Z SHIFTER R0R1R2R3R4R5R6R7 SH2 SH1 SH0 AL2 AL1 AL0 OEN SEL Z0 1 0 INPORTOUTPORT 3 3 3

15 Architectures "standards" - Exemple Langage de haut niveau: P := (Q*R + S*T)*(U + V) Compilation pour une architecture "standard": MULT Q,R : R Q*R MULT S,T: T S*T ADD T,R: R Q*R + S*T ADD U,V: V U + V MULT R,V: V (Q*R + S*T)*(U + V)MOVE V,P : P (Q*R + S*T)*(U + V)

16 I - Architectures load/store Une première possibilité a déjà été mentionnée. Il s'agit de limiter toute référence à la mémoire principale aux seules instructions de transfert de données (move, load, store). Par exemple, l'instruction: abcd -(As),-(Ad) peut être transformée en: dec As dec Ad move (As),Ax move (Ad),Ay abcd Ax,Ay move Ay,(Ad) Ce type d'architecture est appelé load/store (chargement- rangement).

17 Architectures load/store - Structure RA WA RB WEN I0I0 I1I1 Z SHIFTER R0R1R2R3R4R5R6R7 SH2 SH1 SH0 AL2 AL1 AL0 OEN SEL Z0 1 0 INPORT OUTPORT 3 3 3

18 Architectures load/store - Exemple Langage de haut niveau: P := (Q*R + S*T)*(U + V) Compilation pour une architecture load/store: LOAD R1, Q LOAD R2, R MULT R1,R2: R2 Q*R LOAD R1, S LOAD R3, T MULT R1,R3: R3 S*T ADD R2,R3: R3 Q*R + S*T LOAD R1, U LOAD R2, V ADD R1,R2: R2 U+V MULT R2,R3: R3 (Q*R + S*T)*(U+V) STORE R3,P: P (Q*R + S*T)*(U+V)

19 II - Processeurs à accumulateur Dans ce type d'architecture les résultats de toutes les opérations sont stockés dans un registre particulier (l'accumulateur) et toutes les variable sont stockées dans la mémoire principale. Par exemple, l'opération x y + z est réalisée par: load y: ACC y add z: ACC ACC + z store x: x ACC Chaque instruction doit donc contenir deux champs: l'opcode et l'adresse de l'opérande (l'accumulateur est toujours un opérande par défaut). Exemples: DEC PDP-8, Intel 8080, Motorola 6800.

20 Processeurs à accumulateur - Structure I0I0 I1I1 Z SHIFTER Accumulateur SH2 SH1 SH0 AL2 AL1 AL0 OEN SEL Z0 0 1 INPORTOUTPORT

21 Processeurs à accumulateur - Exemple Langage de haut niveau: P := (Q*R + S*T)*(U + V) Compilation pour une architecture à accumulateur: LOAD Q: ACC Q MULT R: ACC Q*R STORE P: P Q*R LOAD S: ACC S MULT T: ACC S*T ADD P: ACC Q*R + S*T STORE P: P Q*R + S*T LOAD U: ACC U ADD V: ACC U+V MULT P: ACC (Q*R + S*T)*(U+V) STORE P: P (Q*R + S*T)*(U+V)

22 III - Processeurs à pile (stack) Dans ce type d'architecture les opérandes se trouvent toujours au sommet d'une pile (stack), typiquement dans la mémoire, et le résultat est ensuite toujours stocké au sommet de la pile. En conséquence, une instruction typique ne contient pas d'adresse d'opérande. Un registre dédié, le stack pointer (SP), pointe toujours le sommet de la pile. Par exemple, l'opération x y + z est réalisée par: push y: SP + SP+1; M[SP + ] y push z: SP + SP+1; M[SP + ] z add: SP + SP-1; M[SP + ] M[SP + ] + M[SP] pop x: SP + SP-1; x M[SP] Exemples: Burroughs B5000, HP 300.

23 Processeurs à pile - Structure I0I0 I1I1 Z SH2 SH1 SH0 AL2 AL1 AL0 POP SEL Z0 0 1 INPORTOUTPORT 0 1 AdresseM[SP] PUSH M[SP + ] SHIFTER Stack Pointer SP + SP

24 Processeurs à pile - Exemple Langage de haut niveau: P := (Q*R + S*T)*(U + V) Compilation pour une architecture à pile: PUSH Q: SP + SP+1; M[SP + ] Q PUSH R: SP + SP+1; M[SP + ] R MULT: SP + SP-1; M[SP + ] Q*R PUSH S: SP + SP+1; M[SP + ] S PUSH T: SP + SP+1; M[SP + ] T MULT: SP + SP-1; M[SP + ] S*T ADD: SP + SP-1; M[SP + ] Q*R + S*T PUSH U: SP + SP+1; M[SP + ] U PUSH V: SP + SP+1; M[SP + ] V ADD : SP + SP-1; M[SP + ] U+V MULT : SP + SP-1; M[SP + ] (Q*R + S*T)*(U+V) POP P: SP + SP-1; P (Q*R + S*T)*(U+V)


Télécharger ppt "Résumé BUS SYSTÈME Registres Unité de Traitement Unité Flottante Unité de Contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE IO Cache Données Cache Instructions."

Présentations similaires


Annonces Google