Vous êtes sur la page 1sur 3

CEG 3556: Conception Avancée de Systèmes

Informatiques (Hiver 2022)


Prof. Rami Abielmona
Solutions Potentielles pour Devoir #3: Schémas
d’Efficacité de Processeur Schemes

14 Février, 2022

Question I
Cette question ce concerne avec les schémas d’implementation d’un processeur
à cycle multiple.

Des nombreuses solutions sont possibles. Dans chacun d’eux, un multiplexeur


sera nécessaire, ainsi qu’un nouveau signal de contr^ ole (par exemple,
RegRead) pour sélectionner le registre qui va ^ etre lu (ce est à dire,
en utilisant IR[25-11] ou IR[20-16]). Une solution simple consiste
simplement d’ajouter un signal d’écriture à A, et de séparer état 1
en deux états, dans laquelle A et B sont lus. Il est possible d’éviter
l’ajout du signal d’écriture à A si B est lu en premier. Alors A est
lit et RegRead est maintenu stable(car A écrit toujours). Alternativement,
vous pourriez décider de lire A en premier car il peut ^ etre nécessaire
pour le calcul d’une adresse. Vous pourriez alors reporter la lecture
de B jusqu’à état 2 et d’éviter l’ajout d’un cycle extra pour les instructions
de chargement et de stockage. Un cycle supplémentaire serait nécessaire
pour les instructions de branchement et de type R.

Question II
Cette question ce concerne avec les techniques de pipelining simple.

1
Partie a
Il est évident que soit le charge (load) ou le addi doit occuper la
fente de retard de branche. Nous ne pouvons pas juste mettre le addi
dans la fente, car l’instruction de branchement doit comparer $3 avec
le registre $4, et l’instruction de addi va changer. Afin de déplacer
la charge dans la fente de retard de branche, nous devons réaliser
que $3 aura changé. Si vous le souhaitez, vous pouvez penser de cette
transformation en deux étapes. Premièrement, nous réécrivons le code
comme suit:
Loop: addi $3, $3, 4
lw $2, 96($3)
beq $3, $4, Loop
Ensuite, nous pouvons déplacer la charge dans la fente de retard de
branche:
Loop: addi $3, $3, 4
beq $3, $4, Loop
lw $2, 96($3) # fente de retard de branche

Partie b
Prenons chaque registre:
• IF/ID détient PC + 4 (32 bits) et l’instruction (32 bits) pour
un total de 64 bits;
• ID/EX détient PC + 4 (32 bits), Read data 1 et 2 (32 bits chacun),
les données à signe étendu (32 bits), et deux destinations possible
(5 bits chacun) pour un total de 138 bits;
• EX/MEM détient la cible de PC si brancher (32 bits), Zéro (1 bit),
Resultat d’ALU (32 bits), Read data 2 (32 bits), et le registre
de destination (5 bits) pour un total de 102 bits;
• MEM/WB contient les données sortant de la mémoire (32 bits), Resultat
d’ALU (32 bits), et le registre de destination (5 bits) pour un
total de 69 bits.

Question III
Cette question ce concerne avec les architectures de processeur.

Il n’y a pas de réponse précise à cette question, et donc il est laissé


à l’étudiant de choisir un processeur et de décrire ses details. Cette
question est est destiné à accro^
ıtre l’intér^
et de l’étudiant dans une
architecture particulière.

2
Question de Boni
L’efficacité d’un pipeline est défini comme le rapport du nombre d’étages
de pipeline utilisée au nombre total de fentes utilisables, jusqu’à
la fin des calculations. Afin de tirer notre facteur d’efficacité,
considérons un exemple. Imaginez un pipeline de quatre étapes (k =
4) avec 10 instructions à exécuter. En dessinant une représentation
graphique à cycle multiple, ou ce qui est techniquement appelé time-space
diagram, du pipeline, nous pouvons remarquer que le nombre d’étapes
de pipeline utilisés est 40 (4*10), tandis que le nombre total d’intervalles
utilisables est de 52 (40 + 12), car il ya 12 fentes qui représentent
la latence de pipeline (au démarrage du pipeline) et le surchage de
pipeline flush (au arr^et du pipeline). La généralisation pour un k-étape
et n-instruction pipeline nous donne:
nk
Ef f iciencypipeline = → 1, n → ∞ (1)
nk + n2 − n
où le numérateur est la valeur numérique pour combien d’étapes de pipeline
sont occupés après l’achèvement de calcul, et le dénominateur est la
valeur numérique pour tous les emplacements admissibles sur le pipeline
((k + n − 1) ∗ n = nk + n2 − n).

Remerciements
Les réponses et les figures liés aux questions de manuels sont tirées du manuel
du professeur textit Computer Organisation and Design, par Patterson et Hen-
nessy.

Vous aimerez peut-être aussi