Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parÉloi Combes Modifié depuis plus de 9 années
1
Architecture et technologie des ordinateurs II
Instructions Types d’instructions Séquencement Contrôle MÉMOIRE PRINCIPALE IO IO IO BUS SYSTÈME CPU Cache Instructions Unité de Contrôle Unité de Traitement Cache Données Décodeur ALU Unité Flottante PC Registres G. Tempesti 1
2
Un processeur « générique »
Architecture et technologie des ordinateurs II Un processeur « générique » AL[2:0] | Fonction | not I0 | I0 and I1 | I0 xor I1 | I0 or I1 | I0 - 1 | I0 + I1 | I0 - I1 | I0 + 1 OUTPORT INPORT DATAPATH OEN SEL 1 0 I0 I1 AL2 AL1 AL0 Z Z≠0 SH2 SH1 SH0 ALU SHIFTER SH[2:0] | Fonction | Décalage < | Rotation < | Décalage > | Rotation > | NOP | NOP | NOP | NOP 3 RA 3 R0 R1 R2 R3 R4 R5 R6 R7 RB WEN 3 WA REGISTRES G. Tempesti 2
3
Architecture et technologie des ordinateurs II
Le banc de registres RA0 I0 I1 I2 1 2 3 4 5 6 7 DÉCODEUR RA1 RA2 RB0 I0 I1 I2 1 2 3 4 5 6 7 DÉCODEUR RB1 RB2 LD R0 LD R1 LD R2 LD R3 LD R4 LD R5 LD R6 LD R7 WA0 1 2 3 4 5 6 7 I0 I1 I2 EN DÉCODEUR WA1 WA2 WAN G. Tempesti 3
4
Architecture et technologie des ordinateurs II
Exemple de programme Problème: compter le nombre de 1 dans un mot d’entrée. Une solution possible (langage RTL): data inport ocount 0 mask 1 while data ≠ 0 temp data AND mask ocount ocount + temp data data >> 1 end while outport ocount G. Tempesti 4
5
Architecture et technologie des ordinateurs II
Exemple de programme data inport data = R1 R1 inport ocount 0 ocount = R2 R2 0 mask 1 mask = R3 R3 1 while data ≠ 0 while R1 ≠ 0 temp data AND mask temp = R4 R4 R1 AND R3 ocount ocount + temp R2 R2 + R4 data data >> 1 R1 R1 >> 1 end while end while outport ocount outport R2 Ce programme nécessite donc 4 éléments de stockage (registres) pour les 4 variables, ainsi que la constante 0. G. Tempesti 5
6
Contrôle de l’unité de traitement
Architecture et technologie des ordinateurs II Contrôle de l’unité de traitement OUTPORT INPORT UNITÉ DE CONTRÔLE OEN OEN SEL SEL 1 0 3 AL[2:0] I0 I1 3 AL2 AL1 AL0 SH[2:0] 3 RA[2:0] Z 3 Z≠0 RB[2:0] SH2 SH1 SH0 SHIFTER WEN 3 WA[2:0] 3 RA 3 R0 R1 R2 R3 R4 R5 R6 R7 RB WEN Z≠0 3 WA OEN SEL AL[2:0] SH[2:0] RA[2:0] RB[2:0] WEN WA[2:0] 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 G. Tempesti 6
7
Architecture et technologie des ordinateurs II
Machine d’états Une séquence d’instructions peut être vue comme une séquence d’états: start=0 S0 S7 outportocount start=1 data=0 S1 datainport S6 datadata >> 1 S2 ocount0 data≠0 S5 ocountocount + temp S3 mask1 S4 tempdata AND mask G. Tempesti 7
8
Exécution de programme - Exemple
Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1 inport R2 0 R3 1 while R1 ≠ 0 R4 R1 AND R3 R2 R2 + R4 R1 R1 >> 1 end while outport R2 ØØØØ ØØØØ OUTPORT INPORT ØØØØ OEN SEL 1 0 ØØØØ START I0 I1 AL2 AL1 AL0 Ø 1 Ø S0 Z Ø Ø Z≠0 ØØØØ SH2 SH1 SH0 Ø SHIFTER Ø Ø start=0 ØØØØ S0 S7 start=1 data=0 RA S1 S6 ØØØ R0 R1 R2 R3 R4 R5 R6 R7 RB ØØØ WEN 0000 ØØØØ ØØØØ ØØØØ ØØØØ ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 ØØØ S3 S4 G. Tempesti 8
9
Exécution de programme - Exemple
Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1 inport R2 0 R3 1 while R1 ≠ 0 R4 R1 AND R3 R2 R2 + R4 R1 R1 >> 1 end while outport R2 R1 inport ØØØØ 0011 OUTPORT INPORT ØØØØ OEN SEL 1 0 1 0000 START I0 I1 AL2 AL1 AL0 1 Ø + S1 Z 1 1 Z≠0 0011 SH2 SH1 SH0 1 SHIFTER | Ø Ø start=0 0011 S0 S7 start=1 data=0 RA S1 S6 ØØØ R0 R1 R2 R3 R4 R5 R6 R7 RB 000 WEN 1 0000 ØØØØ ØØØØ ØØØØ ØØØØ ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 001 S3 S4 G. Tempesti 9
10
Exécution de programme - Exemple
Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1 inport R2 0 R3 1 while R1 ≠ 0 R4 R1 AND R3 R2 R2 + R4 R1 R1 >> 1 end while outport R2 ØØØØ ØØØØ R2 0 OUTPORT INPORT 0000 OEN SEL 1 0 0000 START I0 I1 AL2 AL1 AL0 1 Ø + S2 Z 1 Z≠0 0000 SH2 SH1 SH0 1 SHIFTER | Ø Ø start=0 0000 S0 S7 start=1 data=0 RA S1 S6 000 R0 R1 R2 R3 R4 R5 R6 R7 RB 000 WEN 1 0000 0011 ØØØØ ØØØØ ØØØØ ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 010 S3 S4 G. Tempesti 10
11
Exécution de programme - Exemple
Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1 inport R2 0 R3 1 while R1 ≠ 0 R4 R1 AND R3 R2 R2 + R4 R1 R1 >> 1 end while outport R2 ØØØØ ØØØØ OUTPORT INPORT R3 1 0000 OEN SEL 1 0 ØØØØ START I0 I1 AL2 AL1 AL0 1 Ø +1 1 S3 Z 1 1 Z≠0 0001 SH2 SH1 SH0 1 SHIFTER | Ø Ø start=0 0001 S0 S7 start=1 data=0 RA S1 S6 000 R0 R1 R2 R3 R4 R5 R6 R7 RB ØØØ WEN 1 0000 0011 0000 ØØØØ ØØØØ ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 011 S3 S4 G. Tempesti 11
12
Exécution de programme - Exemple
Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1 inport R2 0 R3 1 while R1 ≠ 0 R4 R1 AND R3 R2 R2 + R4 R1 R1 >> 1 end while outport R2 ØØØØ ØØØØ OUTPORT INPORT 0011 OEN SEL 1 0 0001 R4 R1 AND R3 START I0 I1 AL2 AL1 AL0 Ø & S4 Z 1 1 Z≠0 0001 SH2 SH1 SH0 1 SHIFTER | Ø Ø start=0 0001 S0 S7 start=1 data=0 RA S1 S6 001 R0 R1 R2 R3 R4 R5 R6 R7 RB 011 WEN 1 0000 0011 0000 0001 ØØØØ ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 100 S3 S4 G. Tempesti 12
13
Exécution de programme - Exemple
Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1 inport R2 0 R3 1 while R1 ≠ 0 R4 R1 AND R3 R2 R2 + R4 R1 R1 >> 1 end while outport R2 ØØØØ ØØØØ OUTPORT INPORT 0000 OEN SEL 1 0 0001 START R2 R2 + R4 I0 I1 AL2 AL1 AL0 1 Ø + S5 Z 1 1 Z≠0 0001 SH2 SH1 SH0 1 SHIFTER | Ø Ø start=0 0001 S0 S7 start=1 data=0 RA S1 S6 010 R0 R1 R2 R3 R4 R5 R6 R7 RB 100 WEN 1 0000 0011 0000 0001 0001 ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 010 S3 S4 G. Tempesti 13
14
Exécution de programme - Exemple
Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1 inport R2 0 R3 1 while R1 ≠ 0 R4 R1 AND R3 R2 R2 + R4 R1 R1 >> 1 end while outport R2 ØØØØ ØØØØ OUTPORT INPORT 0011 OEN SEL 1 0 0000 START I0 I1 AL2 AL1 AL0 1 Ø + R1 R1 >> 1 end while S6 Z 1 1 Z≠0 0011 SH2 SH1 SH0 SHIFTER \ 1 start=0 0001 S0 S7 start=1 data=0 RA S1 S6 001 R0 R1 R2 R3 R4 R5 R6 R7 RB 000 WEN 1 0000 0011 0001 0001 0001 ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 001 S3 S4 G. Tempesti 14
15
Exécution de programme - Exemple
Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1 inport R2 0 R3 1 while R1 ≠ 0 R4 R1 AND R3 R2 R2 + R4 R1 R1 >> 1 end while outport R2 ØØØØ ØØØØ OUTPORT INPORT 0001 OEN SEL 1 0 0001 R4 R1 AND R3 START I0 I1 AL2 AL1 AL0 Ø & S4 Z 1 1 Z≠0 0001 SH2 SH1 SH0 1 SHIFTER | Ø Ø start=0 0001 S0 S7 start=1 data=0 RA S1 S6 001 R0 R1 R2 R3 R4 R5 R6 R7 RB 011 WEN 1 0000 0001 0001 0001 0001 ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 100 S3 S4 G. Tempesti 15
16
Exécution de programme - Exemple
Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1 inport R2 0 R3 1 while R1 ≠ 0 R4 R1 AND R3 R2 R2 + R4 R1 R1 >> 1 end while outport R2 ØØØØ ØØØØ OUTPORT INPORT 0001 OEN SEL 1 0 0001 START R2 R2 + R4 I0 I1 AL2 AL1 AL0 1 Ø + S5 Z 1 1 Z≠0 0010 SH2 SH1 SH0 1 SHIFTER | Ø Ø start=0 0010 S0 S7 start=1 data=0 RA S1 S6 010 R0 R1 R2 R3 R4 R5 R6 R7 RB 100 WEN 1 0000 0001 0001 0001 0001 ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 010 S3 S4 G. Tempesti 16
17
Exécution de programme - Exemple
Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1 inport R2 0 R3 1 while R1 ≠ 0 R4 R1 AND R3 R2 R2 + R4 R1 R1 >> 1 end while outport R2 ØØØØ ØØØØ OUTPORT INPORT 0001 OEN SEL 1 0 0000 START I0 I1 AL2 AL1 AL0 1 Ø + R1 R1 >> 1 end while S6 Z 1 1 Z≠0 0001 SH2 SH1 SH0 SHIFTER \ 1 start=0 0000 S0 S7 start=1 data=0 RA S1 S6 001 R0 R1 R2 R3 R4 R5 R6 R7 RB 000 WEN 1 0000 0001 0010 0001 0001 ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 001 S3 S4 G. Tempesti 17
18
Exécution de programme - Exemple
Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1 inport R2 0 R3 1 while R1 ≠ 0 R4 R1 AND R3 R2 R2 + R4 R1 R1 >> 1 end while outport R2 ØØØØ ØØØØ OUTPORT INPORT 0000 OEN SEL 1 0 0001 R4 R1 AND R3 START I0 I1 AL2 AL1 AL0 Ø & S4 Z 1 Z≠0 0000 SH2 SH1 SH0 1 SHIFTER | Ø Ø start=0 0000 S0 S7 start=1 data=0 RA S1 S6 001 R0 R1 R2 R3 R4 R5 R6 R7 RB 011 WEN 1 0000 0000 0010 0001 0001 ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 100 S3 S4 G. Tempesti 18
19
Exécution de programme - Exemple
Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1 inport R2 0 R3 1 while R1 ≠ 0 R4 R1 AND R3 R2 R2 + R4 R1 R1 >> 1 end while outport R2 ØØØØ ØØØØ OUTPORT INPORT 0010 OEN SEL 1 0 0000 START R2 R2 + R4 I0 I1 AL2 AL1 AL0 1 Ø + S5 Z 1 1 Z≠0 0010 SH2 SH1 SH0 1 SHIFTER | Ø Ø start=0 0010 S0 S7 start=1 data=0 RA S1 S6 010 R0 R1 R2 R3 R4 R5 R6 R7 RB 100 WEN 1 0000 0000 0010 0001 0000 ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 010 S3 S4 G. Tempesti 19
20
Exécution de programme - Exemple
Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1 inport R2 0 R3 1 while R1 ≠ 0 R4 R1 AND R3 R2 R2 + R4 R1 R1 >> 1 end while outport R2 ØØØØ ØØØØ OUTPORT INPORT 0000 OEN SEL 1 0 0000 START I0 I1 AL2 AL1 AL0 1 Ø + R1 R1 >> 1 end while S6 Z 1 Z≠0 0000 SH2 SH1 SH0 SHIFTER \ 1 start=0 0000 S0 S7 start=1 data=0 RA S1 S6 001 R0 R1 R2 R3 R4 R5 R6 R7 RB 000 WEN 1 0000 0000 0010 0001 0000 ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 001 S3 S4 G. Tempesti 20
21
Exécution de programme - Exemple
Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1 inport R2 0 R3 1 while R1 ≠ 0 R4 R1 AND R3 R2 R2 + R4 R1 R1 >> 1 end while outport R2 0010 ØØØØ OUTPORT INPORT 0010 OEN 1 SEL 1 0 0000 START I0 I1 AL2 AL1 AL0 1 Ø + S7 Z 1 1 Z≠0 0010 outport R2 SH2 SH1 SH0 1 SHIFTER | Ø Ø start=0 0010 S0 S7 start=1 data=0 RA S1 S6 010 R0 R1 R2 R3 R4 R5 R6 R7 RB 000 WEN 0000 0000 0010 0001 0000 ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 ØØØ S3 S4 G. Tempesti 21
22
Exécution de programme - Exemple
Architecture et technologie des ordinateurs II Exécution de programme - Exemple R1 inport R2 0 R3 1 while R1 ≠ 0 R4 R1 AND R3 R2 R2 + R4 R1 R1 >> 1 end while outport R2 ØØØØ ØØØØ OUTPORT INPORT ØØØØ OEN SEL 1 0 ØØØØ START I0 I1 AL2 AL1 AL0 Ø Ø S0 Z Ø Ø Z≠0 ØØØØ SH2 SH1 SH0 Ø SHIFTER Ø Ø start=0 ØØØØ S0 S7 start=1 data=0 RA S1 S6 ØØØ R0 R1 R2 R3 R4 R5 R6 R7 RB ØØØ WEN 0000 ØØØØ ØØØØ ØØØØ ØØØØ ØØØØ ØØØØ ØØØØ WA S2 data≠0 S5 ØØØ S3 S4 G. Tempesti 22
23
Contrôle par machine d’états
Architecture et technologie des ordinateurs II Contrôle par machine d’états Toute machine d’états peut être réalisée par un système logique: start SLC D2 Q2 start=0 data≠0 S0 S7 start=1 D1 Q1 data=0 S1 S6 SLC D0 Q0 S2 data≠0 S5 CONTRÔLE[17:0] CK S3 S4 G. Tempesti 23
24
Architecture et technologie des ordinateurs II
Table d’états Une table d’états possible est: | start, data=0 | | | S0 000 | | nop S1 001 | | data inport S3 011 | | mask 1 S2 010 | | ocount 0 S4 100 | | temp data and mask S5 101 | | ocount ocount + temp S7 111 | | outport ocount S6 110 | | data data >> 1 G. Tempesti 24
25
Architecture et technologie des ordinateurs II
Signaux de contrôle On peut aussi créer la table des signaux de contrôle nécessaires pour gérer l’unité de traitement. OEN SEL AL SH RA RB WEN WA S0 000 nop ØØØ ØØØ ØØØ ØØØ 0 ØØØ S1 001 datainport ØØ ØØØ S3 011 mask ØØ 000 ØØØ S2 010 ocount ØØ S4 100 tempdata AND mask ØØ S5 101 ocountocount+temp ØØ S7 111 outportocount ØØ ØØØ S6 110 datadata >> On peut alors déterminer, à l’aide de tables de Karnaugh, les fonctions logiques nécessaires pour évaluer le prochain état ainsi que tous les signaux de contrôle. G. Tempesti 25
26
Architecture et technologie des ordinateurs II
SLC = mémoire Un système logique combinatoire peut toujours être réalisé par une mémoire suffisamment grande: | AB ABCD | Z CD | | 000 S0 00 | | 010 S1 01 | | 011 S2 10 | | 100 S3 11 | | 000 0101 | 010 0110 | 011 0111 | 100 1000 | 001 1001 | 010 1010 | 011 1011 | 100 1100 | 001 1101 | 010 1110 | 011 1111 | 100 N variables d’entrée = 2N adresses M variables de sortie = M bits de large G. Tempesti 26
27
Architecture et technologie des ordinateurs II
SLC = mémoire | start, data=0 | | | S0 000 | | nop S1 001 | | data inport S3 011 | | mask 1 S2 010 | | ocount 0 S4 100 | | temp data and mask S5 101 | | ocount ocount + temp S7 111 | | outport ocount S6 110 | | data data >> 1 La table d’états de notre programme peut donc être réalisée avec une mémoire de 25=32 adresses et de 3 bits de large. G. Tempesti 27
28
Architecture et technologie des ordinateurs II
SLC = mémoire OEN SEL ALC SHC RRA RRB WEN WRA S0 000 nop ØØØ ØØØ ØØØ ØØØ 0 ØØØ S1 001 datainport ØØ ØØØ S3 011 mask ØØ 000 ØØØ S2 010 ocount ØØ S4 100 tempdata AND mask ØØ S5 101 ocountocount+temp ØØ S7 111 outportocount ØØ ØØØ S6 110 datadata >> Les signaux de contrôle de l’unité de traitement pour notre programme peuvent donc être définis avec une mémoire de 23=8 adresses et de 18 bits de large. G. Tempesti 28
29
Architecture et technologie des ordinateurs II
SLC = mémoire L’unité de contrôle de notre processeur peut donc être réalisée à l’aide de mémoires: start RAM 32 x 3 D2 Q2 data≠0 D1 Q1 RAM 8 x 18 D0 Q0 CONTRÔLE[17:0] CK G. Tempesti 29
30
Architecture et technologie des ordinateurs II
SLC = mémoire L’avantage d’utiliser des mémoires pour implémenter l’unité de contrôle est que cette approche peut être généralisée: M Fanions RAM 2N+M x N N N BASCULES RAM 2N x 18 CONTRÔLE[17:0] CK L’inconvénient d’utiliser des mémoires pour implémenter l’unité de contrôle est la taille des mémoires, fonction de la complexité de la table d’états et donc du programme. P.ex.: 16 bascules (64K instructions) + 8 signaux = 224x16 = 32MB! G. Tempesti 30
31
Langage de haut-niveau
Compilation program toto; var A, B, C : array [ ] of integer; i : integer begin ... for i:=1 to 1000 do C[i] := A[i] + B[i]; end Algorithme Langage de haut-niveau Langage machine = assembleur ... MOVE.L #2001,A0 MOVE.L #3001,A1 MOVE.L #4001,A2 START: ABCD -(A0),-(A1) MOVE.B (A1),(A2) TEST: CMPA #1001, A0 BNE START COMPILATEUR
32
Contrôle de l’unité de traitement
Architecture et technologie des ordinateurs II Contrôle de l’unité de traitement OUTPORT INPORT UNITÉ DE CONTRÔLE OEN OEN SEL SEL 1 0 3 AL[2:0] I0 I1 AL2 AL1 AL0 3 SH[2:0] 3 Z RA[2:0] Z≠0 3 RB[2:0] SH2 SH1 SH0 SHIFTER WEN 3 WA[2:0] 3 RA 3 R0 R1 R2 R3 R4 R5 R6 R7 RB WEN Z≠0 3 WA OEN SEL AL[2:0] SH[2:0] WEN RA[2:0] RB[2:0] WA[2:0] OPÉRATION OPÉRANDES G. Tempesti 32
33
Format des instructions: exemple
Architecture et technologie des ordinateurs II Format des instructions: exemple data inport = LOAD ADR, R1 ocount 0 = MOVE R0, R2 mask 1 = INC R0, R3 while data ≠ 0 = BRA COND, ADR temp data AND mask = AND R1, R3, R4 ocount ocount + temp = ADD R2, R4, R2 data data >> 1 = SHR R1, R1 end while = BRA 1, ADR outport ocount = STORE ADR, R2 Opcode: 8 instructions différentes = 3 bits de opcode Opérandes: 3 opérandes de 3 bits de large Les instructions de notre processeur seront donc codées sur 12 bits. G. Tempesti 33
34
Format des instructions: exemple
Architecture et technologie des ordinateurs II Format des instructions: exemple Le codage des instructions est, en général, arbitraire: OPCODE OPER1 OPER2 OPER3 LOAD ADR, R Adresse[5:0] MOVE R0, R ø ø ø INC R0, R ø ø ø BRA ADR, COND Adresse[5:0] data=0 AND R1, R3, R ADD R2, R4, R SHR R1, R ø ø ø BRA ADR, COND Adresse[5:0] vrai STORE ADR, R Adresse[5:0] Paramètres: 8 registres, 8 conditions, 26=64 adresses mémoire G. Tempesti 34
35
Contrôle par instructions - Décodage
Adresse Instruction SLC M RAM 2N+M x N Fanions N SLC N BASCULES Opcode Opérandes n BASCULES Opérandes RAM 2N x 18 CONTRÔLE[17:0] RAM 2x x 9 Contrôle CK CK Fanions Chaque instruction doit permettre de générer les bits de contrôle pour l’unité de traitement ainsi que l’adresse de l’instruction suivante.
36
Contrôle par instructions - Décodage
SLC CK Opcode Opérandes n BASCULES Fanions RAM Contrôle Opérandes Instruction Adresse 0:0|1 4:5 1:2 5:6 2:3 6:7|4 3:4 7:0 0:data inport 1:ocount 0 2:mask 1 3:while data ≠ 0 4:tempdata AND mask 5:ocountocount+temp 6:data data >> 1 end while 7:outport ocount 0:R1 4:R1,R3,R4 1:R0,R2 5:R2,R4,R2 2:R0,R3 6:R1,R1 3: 7:R2 0:AIN 4: CA&B 1:BA 5: CA+B 2:BA+1 6: BA>>1 3:NOP 7: OUTA
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.