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

English translation

You have asked to visit this site in English. For now, only the interface is translated, but not all the content yet.

If you want to help me in translations, your contribution is welcome. All you need to do is register on the site, and send me a message asking me to add you to the group of translators, which will give you the opportunity to translate the pages you want. A link at the bottom of each translated page indicates that you are the translator, and has a link to your profile.

Thank you in advance.

Document created the 14/02/2004, last modified the 28/10/2018
Source of the printed document:https://www.gaudry.be/en/microinstructions-perimetre.html

The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.

Notes
  1.  Micro Memory : corresponds to « micro mémoire » en français

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

  3. a,b,c,d Memory Address Register : corresponds to « 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 : corresponds to « registre de mots » en français

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

Contents Haut