1 / 32

Exemple chargement d’une instruction

Exemple chargement d’une instruction. Memory control signals (rd,wr,fetch). 3. 4 to 16 Decoder. 4. MPC. 9. 0x00. 0xXX. 8. 0xXX. 8. Imaginons que l’instruction que nous venons de charger est ISTORE 0x36. 0x05. 0x00. JMPC. MIR. C. Addr. J. M. Alu. B. 0x04. JAMN/JAMZ. High

chung
Download Presentation

Exemple chargement d’une instruction

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Exemple chargement d’une instruction Memory control signals (rd,wr,fetch) 3 4 to 16 Decoder 4 MPC 9 0x00 0xXX 8 0xXX 8 Imaginons que l’instruction que nous venons de charger est ISTORE 0x36 0x05 0x00 JMPC MIR C Addr J M Alu B 0x04 JAMN/JAMZ High Bit B Bus 2 N 6 Z C Bus 2

  2. Exemple Istore Memory control signals (rd,wr,fetch) 3 Pour sauvegarder une variable en mémoire, il faut avant tout calculer son adresse. Cette étape prépare le calcul: Adr var =LV +num de var 4 to 16 Decoder 4 MPC 9 0x01 8 0x36 8 0x05 0x00 JMPC MIR C Addr J M Alu B 0x04 JAMN/JAMZ High Bit B Bus 2 N 6 Z C Bus 2

  3. Exemple Istore (H=LV; Goto Istore2) Memory control signals (rd,wr,fetch) 3 4 to 16 Decoder 4 MPC 9 0x01 8 0x36 8 0x05 0x00 JMPC MIR C Addr J M Alu B 0x04 JAMN/JAMZ High Bit B Bus 2 N 6 Z C Bus 2

  4. Exemple Istore (H=LV; Goto Istore2) Memory control signals (rd,wr,fetch) 3 4 to 16 Decoder 4 MPC 9 0x01 8 0x36 8 0x05 0x00 JMPC MIR C Addr J M Alu B 0x04 JAMN/JAMZ High Bit B Bus 2 N 6 Z C Bus 2

  5. Exemple Istore (H=LV; Goto Istore2) • En résumé nous venons de faire les opérations suivantes • H=LV; Goto Istore2

  6. ISTORE1 F1 ENB H B=0x05 ISTORE2 Construisons le contrôleur Main1 JMPC F0 F1 ENB INC FETCH B=0x01 ISTORE

  7. Exemple Istore Memory control signals (rd,wr,fetch) 3 4 to 16 Decoder 4 MPC L’adresse de la variable est calculée. 9 0x01 0x36 8 0x01 8 0x05 0x00 JMPC MIR C Addr J M Alu B Arrivée de la donnée.(Lecture déclenché dans le Main1) 0x04 JAMN/JAMZ 0x00 High Bit B Bus 2 N MBRU+H 6 Z C Bus 2

  8. Exemple Istore (MAR=MBRU+H; Goto Istore3) Memory control signals (rd,wr,fetch) 3 4 to 16 Decoder 4 MPC 9 0x01 8 0x01 8 0x05 0x00 JMPC MIR C Addr J M Alu B 0x04 JAMN/JAMZ 0x00 High Bit B Bus 2 N 6 Z C Bus 2

  9. Exemple Istore (MAR=MBRU+H; Goto Istore3) Memory control signals (rd,wr,fetch) 3 4 to 16 Decoder 4 MPC 9 0x01 8 0x01 8 0x05 0x00 JMPC MIR C Addr J M Alu B 0x04 JAMN/JAMZ 0x00 High Bit B Bus 2 N 6 Z C Bus 2

  10. Exemple Istore • En résumé nous venons de faire les opérations suivantes • MAR=MBRU+H; Goto Istore3

  11. ISTORE2 F0 F1 ENA ENB MAR B=0x03 ISTORE3 Construisons le contrôleur ISTORE1 Main1 F1 ENB H B=0x05 JMPC F0 F1 ENB INC FETCH B=0x01 ISTORE2 ISTORE

  12. Exemple Istore Memory control signals (rd,wr,fetch) 3 4 to 16 Decoder 0x01 4 On va donc envoyer l’élément de tête de pile dans la mémoire MPC 9 0x01 8 0x01 8 0x05 0x00 JMPC MIR C Addr J M Alu B 0x04 JAMN/JAMZ High Bit B Bus 2 N 6 Z C Bus 2

  13. Exemple Istore (MDR=TOS;Wr; Goto Istore4) Memory control signals (rd,wr,fetch) 3 4 to 16 Decoder 0x01 4 MPC 9 0x01 8 0x01 8 0x05 0x00 JMPC MIR C Addr J M Alu B 0x04 JAMN/JAMZ High Bit B Bus 2 N 6 Z C Bus 2

  14. Exemple Istore (MDR=TOS;Wr; Goto Istore4) Memory control signals (rd,wr,fetch) 3 4 to 16 Decoder 0x01 4 MPC 9 0x01 8 0x01 8 0x05 0x00 JMPC MIR C Addr J M Alu B 0x04 JAMN/JAMZ High Bit B Bus 2 N 6 Z C Bus 2

  15. Exemple Istore (MDR=TOS;Wr; Goto Istore4) • En résumé nous venons de faire les opérations suivantes • MDR=TOS;Wr; Goto Istore4

  16. ISTORE3 F1 ENB MDR WRITE B=0x07 ISTORE4 Construisons le contrôleur ISTORE1 ISTORE2 Main1 F1 ENB H B=0x05 F0 F1 ENA ENB MAR B=0x03 JMPC F0 F1 ENB INC FETCH B=0x01 ISTORE2 ISTORE3 ISTORE

  17. Exemple Istore Il faut mettre les registres gérant la pile à jour.On commence par décrémenter le haut de la pile et on va chercher dans la mémoire le nouvelle élément qui sera la tête de la pile. Memory control signals (rd,wr,fetch) 3 4 to 16 Decoder 0x01 4 0x04 MPC 9 0x01 8 0x01 8 0x05 0x00 JMPC MIR C Addr J M Alu B 0x04 JAMN/JAMZ High Bit B Bus 2 N SP-1 6 Z C Bus 2

  18. Exemple Istore (MDR=TOS;Wr; Goto Istore4) Memory control signals (rd,wr,fetch) 3 4 to 16 Decoder 0x01 4 0x04 MPC 9 0x01 8 0x01 8 0x05 0x00 JMPC MIR C Addr J M Alu B 0x04 JAMN/JAMZ High Bit B Bus 2 N 6 Z C Bus 2

  19. Exemple Istore (MDR=TOS;Wr; Goto Istore4) Memory control signals (rd,wr,fetch) 3 4 to 16 Decoder 0x01 4 0x04 MPC 9 0x01 8 0x01 8 0x05 0x00 JMPC MIR C Addr J M Alu B 0x04 JAMN/JAMZ High Bit B Bus 2 N 6 Z C Bus 2

  20. Exemple Istore • En résumé nous venons de faire les opérations suivantes • SP=MAR=SP-1;Rd; Goto Istore5

  21. ISTORE4 F0 F1 ENB INVA INC SP MAR READ B=0x04 ISTORE5 Construisons le contrôleur Main1 ISTORE1 ISTORE2 ISTORE3 JMPC F0 F1 ENB INC FETCH B=0x01 F1 ENB H B=0x05 F0 F1 ENA ENB MAR B=0x03 F1 ENB MDR WRITE B=0x07 ISTORE ISTORE2 ISTORE3 ISTORE4

  22. Exemple Istore Memory control signals (rd,wr,fetch) 3 4 to 16 Decoder 0x04 4 0x04 MPC 9 0x01 8 0x01 8 On incrémente le compteur de programme car l’instruction ISTORE est codée sur 2 bytes 0x04 0x00 JMPC MIR C Addr J M Alu B 0x04 JAMN/JAMZ High Bit B Bus 2 N PC+1 6 Z C Bus 2

  23. Exemple Istore (PC=PC+1;fetch; Goto Istore6) Memory control signals (rd,wr,fetch) 3 4 to 16 Decoder 0x04 4 0x04 MPC 9 0x01 8 0x01 8 0x04 0x00 JMPC MIR C Addr J M Alu B 0x04 JAMN/JAMZ High Bit B Bus 2 N 6 Z C Bus 2

  24. Exemple Istore (PC=PC+1;fetch; Goto Istore6) Memory control signals (rd,wr,fetch) 3 4 to 16 Decoder 0x04 4 0x04 MPC 9 0x01 8 0x01 8 0x04 0x00 JMPC MIR C Addr J M Alu B 0x04 JAMN/JAMZ High Bit B Bus 2 N 6 Z C Bus 2

  25. Exemple Istore • En résumé nous venons de faire les opérations suivantes • PC=PC+1;fetch; Goto Istore6

  26. ISTORE5 F1 ENB TOS FETCH B=0x00 ISTORE6 Construisons le contrôleur ISTORE4 Main1 ISTORE4 JMPC F0 F1 ENB INC FETCH B=0x01 F0 F1 ENB INVA INC SP MAR READ B=0x04 ISTORE2 ISTORE3 ISTORE1 F0 F1 ENA ENB MAR B=0x03 F1 ENB MDR WRITE B=0x07 F1 ENB H B=0x05 ISTORE ISTORE2 ISTORE3 ISTORE4 ISTORE5

  27. Exemple Istore Memory control signals (rd,wr,fetch) 3 4 to 16 Decoder 0x04 4 0x07 MPC Arrivée de la donnée.(Lecture déclenché dans Istore4) 9 0x02 8 0x01 8 0x04 0x00 JMPC MIR C Addr J M Alu B On met a jour la tête de la pile qui vient d’arriver en mémoire 0x04 JAMN/JAMZ High Bit B Bus 2 N 6 Z C Bus 2

  28. Exemple Istore (TOS=MDR; Goto Main1) Memory control signals (rd,wr,fetch) 3 4 to 16 Decoder 0x01 4 0x07 MPC 9 0x02 0x36 8 0x01 8 0x04 0x00 JMPC MIR C Addr J M Alu B 0x04 JAMN/JAMZ High Bit B Bus 2 N 6 Z C Bus 2

  29. Exemple Istore (TOS=MDR; Goto Main1) Memory control signals (rd,wr,fetch) 3 4 to 16 Decoder 0x01 4 0x07 MPC 9 0x02 8 0x01 8 0x04 0x00 JMPC MIR C Addr J M Alu B 0x04 JAMN/JAMZ High Bit B Bus 2 N 6 Z C Bus 2

  30. Exemple Istore • En résumé nous venons de faire les opérations suivantes • TOS=MDR; Goto Main1

  31. ISTORE6 F1 ENB TOS B=0x00 Construisons le contrôleur Main1 ISTORE5 ISTORE4 JMPC F0 F1 ENB INC FETCH B=0x01 F1 ENB TOS FETCH B=0x00 F0 F1 ENB INVA INC SP MAR READ B=0x04 ISTORE2 ISTORE3 ISTORE1 F0 F1 ENA ENB MAR B=0x03 F1 ENB MDR WRITE B=0x07 F1 ENB H B=0x05 ISTORE6 ISTORE ISTORE2 ISTORE3 ISTORE4 ISTORE5 Main1 ISTORE5 ISTORE4

  32. Résultat Memory control signals (rd,wr,fetch) 3 4 to 16 Decoder 0x04 4 0x07 MPC 9 0x02 8 0xXX 8 0x04 0x00 JMPC MIR C Addr J M Alu B Arrivée de la prochaine instruction. 0x07 JAMN/JAMZ High Bit B Bus 2 N 6 Z C Bus 2

More Related