Calcul d'un périmètre en micro circuits

Rappel : les phases des CS

Nous devrons veiller au moment de la conception de notre algorithme à respecter les différentes phases des micro instructions.
Nous pouvons retrouver dans une même instruction des bits à 1 parmi chaque phase, et même des combinaisons de bits dans une même phase.
La phase 5 ne nécessite pas de codage car elle est effectuée systématiquement (ce qui détermine le chargement d'une instruction hors de la “Micro Memory” (en français, « micro mémoire »)).

12345678910111213141516171819202122
Phase 1Phase 2Phase 3Phase 4Phase 5

Enoncé

Nous devons calculer le périmètre d'un rectangle.
La longueur (L) se trouve à l'index 0 de la “Main Memory” (en français, « mémoire principale »), et la largeur (l) à l'index 1.
Nous devons mémoriser le résultat à l'index 2 de la “Main Memory”2.

Méthode pour les micro circuits

Algorithme de notre exercice

Nous devons lire les valeurs de L et de l, les additionner, puis multiplier le résultat par 2.

Sketch - étape 1

Premier jet, les principes de base.

  1. Pointer le MAR [“Memory Address Register”3] sur l'adresse 0 de la “Main Memory”2.
  2. Envoyer la valeur (L) dans le MDR [“Memory Data Register”5].
  3. Envoyer la valeur dans un registre de travail (A).
  4. Envoyer la valeur 1 dans MAR (pour lire la largeur).
  5. Envoyer la largeur dans MDR.
  6. Pointer le MAR sur l'adresse 2 pour mémoriser le résultat.
  7. Additionner L (dans A) et l (dans MDR).
  8. Multiplier le résultat par 2.
  9. Ecrire la valeur dans la “Main Memory”2.

Sketch - étape 2

Sketch - étape 2

Etablissement séquentiel des instructions en fonction des différentes phases.

  1. 0->MAR; MM(0)->MDR; MPC+1 ->MPC;
  2. MDR->A; MPC+1 ->MPC;
  3. 1->MAR; MM(1)->MDR;MPC+1 ->MPC;
  4. (A+MDR) ShiftLeft -> MDR; MPC+1 ->MPC;
  5. 1 ShiftLeft->MAR; MDR->MM(2); MPC+1 ->MPC;

Micro instructions

Utilisons cette fois une autre représentation. Voici les micro instructions telles qu'elles se présentent dans la micro memory :

 12345678910111213141516171819202122
00000000000000110100001
10000010010000000100001
20000100000000110100001
30000100100000100100001
41000010100001001100001

 

Document créé le 14/02/2004, dernière modification le 28/10/2018
Source du document imprimé : https://www.gaudry.be/microinstructions-perimetre.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Notes

  1.  Micro Memory : correspond à « micro mémoire » en français

  2. a,b,c,d Main Memory : correspond à « mémoire principale » en français

  3. a,b,c,d Memory Address Register : correspond à « registre d'adresse de la mémoire » en français

  4. a,b,c MAR : “Memory Address Register” (en français, « registre d'adresse de la mémoire ») Plus d'informations sur la page dédiée aux registres MAR.

  5. a,b,c,d Memory Data Register : correspond à « registre de mots » en français

  6. a,b,c MDR : “Memory Data Register” (en français, « registre de mots »)