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 »)).
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | |
Phase 1 | Phase 2 | Phase 3 | Phase 4 | Phase 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.
- Pointer le MAR [“Memory Address Register”3] sur l'adresse 0 de la “Main Memory”2.
- Envoyer la valeur (L) dans le MDR [“Memory Data Register”5].
- Envoyer la valeur dans un registre de travail (A).
- Envoyer la valeur 1 dans MAR (pour lire la largeur).
- Envoyer la largeur dans MDR.
- Pointer le MAR sur l'adresse 2 pour mémoriser le résultat.
- Additionner L (dans A) et l (dans MDR).
- Multiplier le résultat par 2.
- 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.
- 0->MAR; MM(0)->MDR; MPC+1 ->MPC;
- MDR->A; MPC+1 ->MPC;
- 1->MAR; MM(1)->MDR;MPC+1 ->MPC;
- (A+MDR) ShiftLeft -> MDR; MPC+1 ->MPC;
- 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 :
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 |
1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 |
2 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 |
3 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 |
4 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |
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.
- ↑ Micro Memory : corresponds to « micro mémoire » en français
- ↑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.