1 / 24

コンピュータアーキテクチャ

コンピュータアーキテクチャ. 第 12 回. 各種メモリ・レジスタ間命令. COMETⅡ の命令の分類 ロード,ストア,ロードアドレス命令 : LD, ST, LAD 算術,論理演算命令: ADDA, ADDL, SUBA, SUBL, AND, OR, XOR 比較演算命令: CPA, CPL シフト演算命令 : SLA, SRA, SLL, SRL 分岐命令 : JPL, JMI, JNZ, JZE, JOV, JUMP スタック操作命令 : PUSH, POP コール,リターン命令 : CALL, RET 今回の内容 LAD 命令の実行制御

quanda
Download Presentation

コンピュータアーキテクチャ

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. コンピュータアーキテクチャ 第 12 回

  2. 各種メモリ・レジスタ間命令 • COMETⅡの命令の分類 • ロード,ストア,ロードアドレス命令 :LD, ST, LAD • 算術,論理演算命令:ADDA, ADDL, SUBA, SUBL, AND, OR, XOR • 比較演算命令: CPA, CPL • シフト演算命令: SLA, SRA, SLL, SRL • 分岐命令: JPL, JMI, JNZ, JZE, JOV, JUMP • スタック操作命令: PUSH, POP • コール,リターン命令: CALL, RET • 今回の内容 • LAD命令の実行制御 • 共通の実効アドレス計算状態に推移しない • 実際にはメモリにアクセスしない • SLA命令の実行制御 • JPL命令の実行制御 • PUSH・POP命令の実行制御 • CALL・RET命令の実行制御... PUSH・POP命令に類似 * 実行制御の点で類似

  3. ロードアドレス命令の実行制御状態 * ロードアドレス命令検出 * 共通の実効アドレス計算状態には推移しない

  4. 制御信号生成回路におけるロードアドレス命令の処理制御信号生成回路におけるロードアドレス命令の処理 デコードの開始 * デコードの完了: ロードアドレス命令の特定 * ロードアドレス命令 の制御信号生成へ *

  5. ロードアドレス命令の制御 命令の例: LAD GR0,#****,GR1 bA bB A/S_op F bC Mem IAa BPAbSD c0123aLR Fcn GiPAmDdSsD srw Dec-Lad: ; 001 100000 00111000 000 1000000000 000 if Lad = 1 then GRA←MDR+GRB *

  6. シフト命令の実行概念 SLA GR1,#****,GR2 実効アドレス値だけ1ビットシフトの繰り返し * ただし,現在の主流はバレルシフタ(1ステップで任意ビットシフト)

  7. 制御信号生成回路におけるSLA 命令の処理 デコードの開始 * デコードの完了: SLA命令の特定 * 実効アドレス計算の開始 * SLA命令の 実行ステップの 制御信号生成へ *

  8. シフト演算命令の制御 命令の例: SLA GR1,#0003 (クロックサイクル Sla0) * #FFFD * #0003 * バス A の 値が 0 * #FFFD =-(MAR) bA bB A/S_op F bC Mem IAa BPAbSD c0123aLR Fcn GiPAmDdSsD srw Sla0: ; 000 001000 11111000 000 0000000000 000 SNC←-MAR *

  9. シフト演算命令の制御信号生成回路 命令の例: SLA GR1,#0003 (クロックサイクル Sla0) * #FFFD #FFFD

  10. シフト演算命令の制御 命令の例: SLA GR1,#0003 (クロックサイクル Sla1) * #FFFD →#FFFE →#FFFF →#0000 bA bB A/S_op F bC Mem IAa BPAbSD c0123aLR Fcn GiPAmDdSsD srw Sla1: ; * 値が 0 で なければ If SNC <> 0 then {GRA←Sla(GRA), SNC←SNC+1,Sla1} 010 000000 00100110 100 1000000000 000 *

  11. シフト演算命令の制御信号生成回路 命令の例: SLA GR1,#0003 (クロックサイクル Sla1) * #FFFD →#FFFE →#FFFF →#0000

  12. 演習問題 12.1 前述のシフト演算命令 SLA GR1,#0003の実行 ステップのタイムチャートを示せ.

  13. 分岐命令の制御信号生成回路 命令の例: JPL #****,GRB (クロックサイクル Jpl0)      bA bB A/S_op F bC Mem     IAa BPAbSD c0123aLR Fcn GiPAmDdSsD srw    Jpl0: ; if (SF=0)AND(ZE=0) then PR←MAR 000 001000 00010000 000 0010000000 000 *

  14. 演習問題 12.2 JPL命令の実行ステップのタイムチャートを示せ. ただし,実行時の SF および ZF の値はともに 0 で あるとする.

  15. プッシュ命令の制御信号とデータの流れ(1)(実効アドレス計算のサイクル Dec-Ea は省略)   bA bB A/S_op F bC Mem  IAa BPAbSD c0123aLR Fcn GiPAmDdSsD srw Push0: ; SDR←MAR, SP←SP-1 000 001000 00010000 000 0000001101 000 *

  16. プッシュ命令の制御信号とデータの流れ(2)   bA bB A/S_op F bC Mem  IAa BPAbSD c0123aLR Fcn GiPAmDdSsD srw Push1: ; mem(SP)←SDR 000 000000 00000000 000 0000000000 101 *

  17. POP命令の実行制御状態 * POP命令検出 * 状態 F3 に推移(パイプラインを崩さない)

  18. ポップ命令の制御信号とデータの流れ(1)      bA bB A/S_op F bC Mem     IAa BPAbSD c0123aLR Fcn GiPAmDdSsD srw Dec-Pop0: ; if POP = 1 then {SDR←mem(SP), SP←SP+1} 000 000010 10111000 000 0000000111 110 *

  19. ポップ命令の制御信号とデータの流れ(2) bA bB A/S_op F bC Mem IAa BPAbSD c0123aLR Fcn GiPAmDdSsD srw Pop1: ; GRA←SDR, PR←PR+1 000 000001 00010000 000 1110000000 000 * レジスタ間命令と同様 *

  20. ポップ命令の実行ステップのタイムチャート * bA bB A/S_op F bC Mem IAa BPAbSD c0123aLR Fcn GiPAmDdSsD srw Dec-Pop0:000 000010 10111000 000 0000000111 110; Pop1:000 000001 00010000 000 1110000000 000;

  21. コール命令(CALL命令)の制御信号   bA bB A/S_op F bC Mem  IAa BPAbSD c0123aLR Fcn GiPAmDdSsD srw Call0: ; SDR←PR, SP←SP-1 Call1: ; mem(SP)←SDR, PR←MAR プッシュ命令(PUSH命令)に類似 PUSH命令の制御信号   bA bB A/S_op F bC Mem  IAa BPAbSD c0123aLR Fcn GiPAmDdSsD srw Push0: ; SDR←MAR, SP←SP-1 Push1: ; mem(SP)←SDR 000 001000 00010000 000 0000001101 000 000 000000 00000000 000 0000000000 101 CALL命令の制御信号 000 010000 00010000 000 0000001101 000 * 000 001000 00010000 000 0010000000 101 *

  22. RET命令の実行制御状態 * RET命令検出 * 状態 F1 に推移(パイプラインが崩れる)

  23. リターン命令(RET命令)の制御信号 ポップ命令(POP命令)に類似 POP命令の制御信号    bA bB A/S_op F bC Mem  IAa BPAbSD c0123aLR Fcn GiPAmDdSsD srw Dec-Pop0: ; if POP = 1 then {SDR←mem(SP), SP←SP+1} Pop1: ; GRA←SDR, PR←PR+1 000 000010 10111000 000 0000000111 110 000 000001 00010000 000 1110000000 000 RET命令の制御信号    bA bB A/S_op F bC Mem  IAa BPAbSD c0123aLR Fcn GiPAmDdSsD srw Dec-Ret0: ; if RET = 1 then {SDR←mem(SP), SP←SP+1} Ret1: ; PR←SDR 000 000010 10111000 000 0000000111 110 000 000001 00010000 000 0010000000 000 * *

  24. 演習問題 12.3 RET命令の実行ステップのタイムチャートを示せ.

More Related