Exemple chargement d’une instruction 3 0x00 0xXX 0x00 Addr Alu JM 4 to 16 Decoder High Bit C B MPC B Bus C Bus Memory control signals (rd,wr,fetch) N Z MIR JMPC JAMN/JAMZ 0xXX Imaginons que l’instruction que nous venons de charger est BIPUSH 0x10
Comment faire un Bipush Mettre à jour le pointeur de Pile SP. Avancer le « Conteur de Programme » car l’instruction Bipush est codée sur 2 bytes. Mettre à jour le registre « TOS » contenant l’élément en haut de la pile. Stocker en mémoire à l’adresse de « SP » la nouvelle valeur de la pile.
Exemple Bipush 3 0x01 0x10 0x00 Addr Alu JM 4 to 16 Decoder High Bit C B MPC B Bus C Bus Memory control signals (rd,wr,fetch) N Z MIR JMPC JAMN/JAMZ 0x10 SP+1
Exemple Bipush (SP= MAR=SP+1;goto bipush2) 3 0x01 0x10 0x00 Addr Alu JM 4 to 16 Decoder High Bit C B MPC B Bus C Bus Memory control signals (rd,wr,fetch) N Z MIR JMPC JAMN/JAMZ 0x10
Exemple Bipush (SP= MAR=SP+1;goto bipush2) 3 0x01 0x10 0x00 Addr Alu JM 4 to 16 Decoder High Bit C B MPC B Bus C Bus Memory control signals (rd,wr,fetch) N Z MIR JMPC JAMN/JAMZ 0x10
Exemple Bipush En résumé nous venons de faire les opérations suivantes –SP= MAR=SP+1;goto bipush2 Next_Adress 8 bits JAM 3 bits ALU 8 bits Bus C 9 bits Mémoire 3 bits Bus B 4 bits JMPCJMPC JAMNJAMN JAMZJAMZ SLL8SLL8 SRA1SRA1 F0F0 F1F1 ENAENA ENBENB INVAINVA INCINC HOPSOPS TOSTOS CPPCPP LVLV SPSP PCPC MDRMDR MARMAR WRITEWRITE READREAD FETCHFETCH bipush x04
Construisons le contrôleur pour l’instruction Bipush JMPC F 0 F 1 ENB INC FETCH B=0x01 Main1 Bipush F 0 F 1 ENA ENB SP MAR B=0x04 Bipush1Bipush2
Exemple Bipush 3 0x01 0x03 0x00 Addr Alu JM 4 to 16 Decoder High Bit C B MPC B Bus C Bus Memory control signals (rd,wr,fetch) N Z MIR JMPC JAMN/JAMZ Arrivée de la donnée demandée il y a deux cycles
Exemple Bipush 3 0x01 0x03 0x00 Addr Alu JM 4 to 16 Decoder High Bit C B MPC B Bus C Bus Memory control signals (rd,wr,fetch) N Z MIR JMPC JAMN/JAMZ PC+1
Exemple (PC=PC+1;fetch ;goto bipush3) 3 0x01 0x03 0x00 Addr Alu JM 4 to 16 Decoder High Bit C B MPC B Bus C Bus Memory control signals (rd,wr,fetch) N Z MIR JMPC JAMN/JAMZ
Exemple (PC=PC+1;fetch ;goto bipush3) 3 0x01 0x03 0x00 Addr Alu JM 4 to 16 Decoder High Bit C B MPC B Bus C Bus Memory control signals (rd,wr,fetch) N Z MIR JMPC JAMN/JAMZ
Exemple Bipush En résumé nous venons de faire les opérations suivantes –PC= PC+1; fetch ; goto bipush3 Next_Adress 8 bits JAM 3 bits ALU 8 bits Bus C 9 bits Mémoire 3 bits Bus B 4 bits JMPCJMPC JAMNJAMN JAMZJAMZ SLL8SLL8 SRA1SRA1 F0F0 F1F1 ENAENA ENBENB INVAINVA INCINC HOPSOPS TOSTOS CPPCPP LVLV SPSP PCPC MDRMDR MARMAR WRITEWRITE READREAD FETCHFETCH bipush x01
Construisons le contrôleur JMPC F 0 F 1 ENB INC FETCH B=0x01 Main1 Bipush F 0 F 1 ENA ENB SP MAR B=0x04 Bipush1 Bipush2 F 0 F 1 ENB INC PC FETCH B=0x01 Bipush2Bipush3
Exemple Bipush 3 0x01 0x02 0x03 0x00 Addr Alu JM 4 to 16 Decoder High Bit C B MPC B Bus C Bus Memory control signals (rd,wr,fetch) N Z MIR JMPC JAMN/JAMZ
Exemple Bipush (MDR=TOS=MBR; Wr ; Goto Main1) 3 0x01 0x02 0x03 0x00 Addr Alu JM 4 to 16 Decoder High Bit C B MPC B Bus C Bus Memory control signals (rd,wr,fetch) N Z MIR JMPC JAMN/JAMZ
Exemple Bipush (MDR=TOS=MBR; Wr ; Goto Main1) 3 0x01 0x02 0x03 0x00 Addr Alu JM 4 to 16 Decoder High Bit C B MPC B Bus C Bus Memory control signals (rd,wr,fetch) N Z MIR JMPC JAMN/JAMZ
Exemple Bipush En résumé nous venons de faire les opérations suivantes –MDR=TOS=MBR; Wr ; Goto Main1 Next_Adress 8 bits JAM 3 bits ALU 8 bits Bus C 9 bits Mémoire 3 bits Bus B 4 bits JMPCJMPC JAMNJAMN JAMZJAMZ SLL8SLL8 SRA1SRA1 F0F0 F1F1 ENAENA ENBENB INVAINVA INCINC HOPSOPS TOSTOS CPPCPP LVLV SPSP PCPC MDRMDR MARMAR WRITEWRITE READREAD FETCHFETCH Main x02
Construisons le contrôleur JMPC F 0 F 1 ENB INC FETCH B=0x01 Main1 Bipush F 0 F 1 ENA ENB SP MAR B=0x04 Bipush1 Bipush2 F 0 F 1 ENB INC PC FETCH B=0x01 Bipush2 Bipush3 F 1 ENB TOS MBR WRITE B=0x02 Bipush3
Exemple Bipush 3 0x01 0x03 0x02 0xXX 0x05 0x00 0x03 Addr Alu JM 4 to 16 Decoder High Bit C B MPC B Bus C Bus Memory control signals (rd,wr,fetch) N Z MIR JMPC JAMN/JAMZ