Construisons le contrôleur Que faut-il que le contrôleur fasse pour : Charger une instruction ? Exécuter une instruction Bipush Exécuter une instruction IADD Exécuter une instruction ISTORE Exemple dexécution : Une instruction Bipush Une instruction IADD Une instruction ISTORE
Intérieur dun contrôleur LabelOpération Main1PC=PC+1 ;fetch;goto (MBR) Iadd1 Iadd2 Iadd3 MAR=SP=S-1; rd; H=TOS MDR=TOS=MDR+H;wr;goto Main1 Bipush1 Bipush2 Bipush3 SP=MAR=SP+1 PC=PC+1 ; fetch MDR=TOS=MBR;wr; goto Main1 Istore1 Istore2 Istore3 Istore4 Istore5 Istore6 H=LV MAR=MBRU + H; MDR=TOS;wr SP=MAR=SP-1;rd PC=PC+1;fetch; TOS=MDR;goto Main1 ….
Schéma du contrôleur JMPC F 0 F 1 ENB INC FETCH B=0x01 Main1 Bipush F 0 F 1 ENA ENB SP MAR B=0x05 F 0 F 1 ENB INC PC FETCH B=0x03 F 1 ENB TOS MBR WRITE B=0x04 F 0 F 1 ENB INVA SP MAR READ B=0x04 F 1 ENB H B=0x07 F 0 F 1 ENA ENB TOS MDR WRITE B=0x00 IADD ISTORE … F 1 ENB H B=0x05 F 0 F 1 ENA ENB MAR B=0x03 F 1 ENB MDR WRITE B=0x07 F 0 F 1 ENB INVA INC SP MAR READ B=0x04 F 1 ENB TOS FETCH B=0x00 F 1 ENB TOS B=0x00