You are on page 1of 12

CEG 3556: Conception Avancée de Systèmes

Informatiques (Printemps 2020)


Prof. Rami Abielmona
Solutions Possibles pour Devoir #2: Conception
du Processeur à Cycle Simple

11 Juin, 2020

Question I
Cette question se concerne avec les circuits de multiplicateurs Booth.

Partie a
Tout d’abord, laissez-nous multiplions (−13)10 par (+11)10 . Dans la
notation en complément à deux, nous avons (10011)2 ∗(01011)2 . Reportez-vous
à Table 1 pour l’expansion de l’algorithme de Booth. Le résultat est
(1101110001)2 = (−143)10 , qui est le résultat attendu.

Itération Multiplicande Les étapes


de L’agorithme de Booth Produit
0 10011 Valeurs Initiales 00 0000 1011 0
1 10011 1c: 10 ⇒ Prod = Prod - Mcand 01 1010 1011 0
10011 2: Déplacer le produit vers la droite 00 1101 0101 1
2 10011 1d: 11 ⇒ aucune opération 01 1010 1011 0
10011 2: Déplacer le produit vers la droite 00 0110 1010 1
3 10011 1c: 01 ⇒ Prod = Prod + Mcand 10 1100 1010 1
10011 2: Déplacer le produit vers la droite 11 0110 0101 0
4 10011 1c: 10 ⇒ Prod = Prod - Mcand 01 0000 0101 0
10011 2: Déplacer le produit vers la droite 00 1000 0010 1
5 10011 1c: 01 ⇒ Prod = Prod + Mcand 10 1110 0010 1
10011 2: Déplacer le produit vers la droite 11 0111 0001 0

Table 1: L’algorithme de Booth pour (−13)10 ∗ (+11)10

1
Deuxièmement, nous multiplions (−25)10 par (−4)10 . Dans la notation
en complément à deux, nous avons (100111)2 ∗(111100)2 . Reportez-vous
à Table 2 pour l’algorithme de Booth. Le résultat est (000001100100)2 =
(+100)10 , qui est le résultat attendu.

Itération Multiplicande Les étapes


de L’agorithme de Booth Produit
0 100111 Valeurs Initiales 0000 0011 1100 0
1 100111 1a: 00 ⇒ aucune opération 0000 0011 1100 0
100111 2: Déplacer le produit vers la droite 0000 0001 1110 0
2 100111 1a: 00 ⇒ aucune opération 0000 0011 1100 0
100111 2: Déplacer le produit vers la droite 0000 0000 1111 0
3 100111 1c: 10 ⇒ Prod = Prod - Mcand 0110 0100 1111 0
100111 2: Déplacer le produit vers la droite 0011 0010 0111 1
4 100111 1d: 11 ⇒ aucune opération 0011 0010 0111 1
100111 2: Déplacer le produit vers la droite 0001 1001 0011 1
5 100111 1d: 11 ⇒ aucune opération 0011 0010 0111 1
100111 2: Déplacer le produit vers la droite 0000 1100 1001 1
6 100111 1d: 11 ⇒ aucune opération 0011 0010 0111 1
100111 2: Déplacer le produit vers la droite 0000 0110 0100 1

Table 2: L’algorithme de Booth pour (−25)10 ∗ (−4)10

Partie b
Le schéma du circuit modifié est illustré dans la figure 1. Il est
clairement assumé que tous les signaux d’état (indiquées avec une ligne
fléché rouge) se enfoncent à l’unité de commande, qui servent comme
entrées pour les signaux de commande (indiqué avec une ligne non fléché
rouge)

Question II
Cette question se concerne avec les réalisations du processeur à cycle simple.

Partie a
En regardant la Figure 4.19, nous voyons que MemtoReg et MemRead sont
identiques à l’exception de sw et beq, ou MemtoReg est un Don’t Care.
Ainsi, la modification va fonctionner pour le chemin de données à cycle
simple. La modification fonctionnera également sur le chemin des données
à cycle multiple en supposant que la machine à états finis est modifiée
de sorte que MemRead est affirmé lorsque MemtoReg l’est.

2
Figure 1: Chemin de données d’un Multiplicateur de Booth

Partie b
Utilisant la Figure 4.19, nous découvrons que MemtoReg pourrait ^ etre
remplacé par ALUSrc, RegDst pourrait ^etre remplacé par ALUOp1, et soit
Branch ou ALUOp0 peut ^etre remplacé en faveur de l’autre (leurs signaux
sont identiques). Noter qu’en réalité il y aurait probablement des
lignes supplémentaires présents dans la table de vérité (truth table)
pour soutenir d’autres instructions, et il est tout à fait probable
que aucun signal de contr^ole pourraient ^etre éliminés.

Question III
Cette question se concerne avec les mesures de performance des processeurs à
cycle simple.

L’essentiel de comprendre dans cette question est que c’est la longeur


du plus long chemin dans la logique combinatoire qui détermine le temps
du cycle. Essentiellement, on calcule la longeur du plus long chemin
pour chaque instruction et puis nous devrons prendre celui avec la
valeur maximale. Pour maintenant, l’instruction lw fournit le plus
long chemin de longeur de 8 ns.

3
(i) Les changements ne augmentent pas la longeur des chemins au-delà
de maximums actuels. Ainsi, le temps de cycle est toujours 8 ns

(ii) Considérons l’instruction de beq. Nous avons maintenant un chemin


qui nécessite 10 ns pour calculer l’addresse de branchement (X + Y
= 10 ns), et ce est maximale. Ainsi, le temps de cycle augmente à
10 ns.

(iii) Vous pourriez ^etre tenté de conclure une nouvelle fois que l’instruction
de branchement exigera X + Y = 9 ns pour le calcul de l’addresse de
branch. Ce ne est pas tout à fait correct, cependant, parce que le
deuxième additionneur (exigeant du temps Y) a deux entrées, dont l’une
ne est pas disponible qu’après l’instruction est lu (les 16 bits immédiats),
et cela prend 2 ns. Ainsi, la longueur de chemin maximale réelle est
encore de 10 ns, et le temps de cycle est de 10 ns.

Question IV
Cette question se concerne avec la conception en utilisant la machine à état
algorithmique (ASM). Dans les parties a et b, on travaille avec l’additionneur á
point mobile developpé en classe. Alors, référez à la figure 2 pour le datapath
developpé en utilisant la méthode ASM. Dans la partie c, référez à la figure 3
pour une réalisation possible pour le multiplicateur séquentiel.

Partie a
Le chemin de données nouveau et optimisé est réprensenté dans la figure
4. Il regroupe les deux additionneurs et compteurs à 8 bits, tout
en utilisant l’extension de signe pour assurer l’addition ou la soustraction
correcte du complément à deux signé. A noter aussi est l’égalité entre
Edif f et REZ , qui nous permet de les regrouper en un seul compteur
à 8 bits. Tous les nouveaux signaux de contr^ ole et d’état, ainsi que
tous les nouveaux multiplexeurs sont présentés dans la figure.

Partie b
Le nouveau diagramme détaillé d’ASM est illustré dans la figure 5.
Noter que le diagramme ne diffère pas beaucoup de celui calculé en
classe. Cela entra^ıne une caractéristique intéressante de la méthodologie
de l’ASM: Les optimisations effectuées sur le chemin de données ne
devrait pas affecter la structure de l’ASM ou les diagrammes détaillées
de l’ASM. De m^
eme, la logique de contr^ ole complet, dérivé du nouveau

4
Figure 2: Chemin de Données d’un Additionneur a Point Mobile

diagramme détaillée d’ASM, est illustrée dans la figure 6. Toutes


les hypothèses et la légende du circuit sont présentées dans la figure.

Partie c
Il ya cinq étapes à la méthode de l’ASM, à savoir: la génération de
code pseudo, la construction du diagramme ASM, la réalisation de chemin
de donnée, le mapping détaillé du diagramme ASM et la réalisation de
la logique de contr^ ole. La première de ces étapes, la génération de
code pseudo, se compose de la solution de haut niveau du problème,
essentiellement la multiplication des deux nombres de 8 bits de complément
à deux signé. L’algorithme qui sera utilisé dans cette solution est
le multiplicateur séquentielle développé dans le livre, et expliqué
en classe. Laissez-nous d’abord commencer par montrer notre code pseudo
raffinée:
• X<7:0> ← multiplicateur; Y <7:0> ← multiplicande; P <15:0> ← 0;
• Pour i = 0 à n - 2 faire
– Commencer

5
Figure 3: Diagramme de Blocs d’un Multiplicateur Séquentielle

∗ P <15:8> ← P <15:8> + (X<0> ∧Y <7:0>);


∗ P ← P >> 1 (changement dans la copie de l’original
P<15>);
∗ X ← X >> 1;
– fin;
• P <15:8> ← P <15:8> −(X<0> ∧Y <7:0>);
• P ← P >> 1 (changement dans la copie de l’original P<15>);

Maintenant, de le code pseudo, nous pouvons construire notre diagramme


graphique d’ASM, illustré dans la figure 7. Le chemin de données dans
la figure 8 est réalisé à partir du diagramme d’ASM, et les règles
associées à l’implémentation du chemin de données. Finalement, le
diagramme détaillée d’ASM est mappé sur le diagramme d’ASM et le chemin
de données (figure 9), et la logique de contr^ ole est réalisée à partir
du diagramme détaillée d’ASM. La logique de contr^ ole est répresenté
dans la figure 10, réaliser en utilisant la méthode un-FF-par-état
(one-FF-per-state method).

Question de Boni
Le chronogamme qui montre l’operation correcte de la bascule a type
D est présenté dans la figure 12. Noter les labels indiquant états

6
Figure 4: Chemin de Données d’un Additionneur a Point Mobile

distincts suivants:

• Lorsque l’horloge est élevée, la bascule ma^


ıtre tient ses valeurs
de sortie (int D et int DBar ), tandis que la bascule esclave enregistre
(verrouillage) ses entrées aux sorties (Q et QBar );

• Lorsque l’horloge est bas, la bascule ma^ıtre verouille (enregistre)


ces entrées aux sorties, tandis que le verrouillage esclave tient
ses valeurs de sortie.

Ainsi, lorsque l’horloge est élevée, les changes qui appartiennent


à la valeur d’entrée (D ) sont ignoré jusqu’au prochain changement d’état
d’horloge, tandis que lorsque l’horloge est bas, les changes apportées
aux entrées de verrouillage esclave sont ignorées jusqu’à ce que l’horloge
change d’états. L’effet final est que les changements apportés à l’entrée
de D ne sont observé a la sortie de Q uniquement sur le front montant
suivant de l’horloge (en supposant des bascules déclenché positivement).

7
Figure 5: Diagramme Détaillée ASM d’Addition à Point Mobile

Remerciements
Les réponses et figures liés aux questions de livres scolaires sont tirées avec le
manuel de professeur Computer Organization and Design, quatrième edition,
par Patterson et Hennessy.

8
Figure 6: Logique de Contrôle d’Addition à Point Mobile

9
Figure 7: Diagramme d’ASM d’un Multiplicateur de Complément à Deux Signé

Figure 8: Chemin de données d’un Multiplicateur de Complément à Deux Signé

10
Figure 9: Diagramme Détaillée d’ASM d’un Multiplicateur de Complément à
Deux Signé

Figure 10: Logique de Contrôle d’un Multiplicateur de Complément à Deux


Signé

11
Figure 11: Bascule de type D créer utilisant des bascules maı̂tre et esclave

Figure 12: Chronogramme Démontrant l’Opération d’une Bascule de Type D

12

You might also like