ピタゴラスイッチMIPS版/仕様/IDステージ分岐(1命令遅延スロット付き)
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[ピタゴラスイッチMIPS版/プロセッサの仕様]]
*概要 [#s5770acd]
IDステージで分岐。フラッシュは行わず、1命令遅延スロットを持つ。
ベースとなる設計データは[[フォワーディングユニット>ピタゴラスイッチMIPS版/仕様/フォワーディングユニット]]+[[ハザード検出ユニット>ピタゴラスイッチMIPS版/仕様/ハザード検出ユニット]]を実装したもの。
*仕様 [#q7251654]
IDステージ分岐。分岐成立時のフラッシュの機能を持たずに、1つの遅延スロット付き。
*差分モジュール [#ge94adad]
-追加
--id_comparetor
--id_mux_fwd_a
--id_mux_fwd_b
--id_bch_calc
--id_pc_shifter
--id_ext_shifter
--id_mux_pcsrc
--id_and_gate
--id_or_gate
--fwd_unit
-削除
--ex_bch_calc
--ex_pc_shifter
--ex_ext_shifter
--ex_mux_pcsrc
--ex_fwd_unit
--mem_and_gate
--mem_or_gate
-機能変更
--ex_alu
---ゼロ判定削除
--fwd_unit
---IDステージのフォワーディング制御信号判定追加
*差分レジスタ [#l487d725]
-削除
--idex_adr_current
--exmem_pcdst
--exmem_data_zero
-変更
--idex_ctrl_mem
---id_branch, id_jump分削除
--exmem_ctrl_mem
---ex_branch, ex_jump分削除
*差分ワイヤ [#of83ff3a]
-追加
--id_shifted_imm
--id_bch_adr
--id_jmp_adr
--id_pcsrc
--id_data_equal
--id_bch_taken
--id_pcdst
--id_fwd_a
--id_fwd_b
--id_fwd_outa
--id_fwd_outb
--ex_regwrite
-削除
--ex_pcadr
--ex_shifted_imm
--ex_jump
--ex_bch_adr
--ex_jmp_adr
--ex_pcsrc
--ex_data_zero
--mem_branch
--mem_pcsrc
--mem_data_zero
--mem_bch_taken
--mem_jump
--mem_pcdst
*フォワーディングユニット再考 [#z7c41cde]
IDステージで分岐判定をするため、IDステージへのフォワーディングパスを設計。
**IDステージのフォワーディング制御信号と条件(プライオリティ付き) [#ka200226]
-2:FROM_EX_STAGE
--EXステージの命令がWBを行う
--EXステージの命令のWB先レジスタ番号が0ではない
--IDステージの命令で使用するレジスタ番号とEXステージの命令のWB先レジスタが一致する
-1:FROM_MEM_STAGE
--MEMステージの命令がWBを行う
--MEMステージの命令のWB先レジスタ番号が0ではない
--IDステージの命令で使用するレジスタ番号とMEMステージの命令のWB先レジスタが一致する
-0:NO_FORWARDING
--上記の条件に当てはまらないとき
**EXステージのフォワーディング制御信号と条件 [#z7aec2e0]
MEMステージからEXステージにフォワーディングする必要のあるデータハザードは、前クロックでEXステージからIDステージにフォワーディングすることで解決可能。ただしWBステージからEXステージにフォワーディングする必要のあるデータハザードはデータメモリからの読み出しデータである可能性があるため、前クロックでのフォワーディングでは解決できない。よって、ここではWBステージからのフォワーディングだけを考えれば良い。
-1:FROM_WB_STAGE
--以下の条件が当てはまらない
---MEMステージの命令がWBを行う
---MEMステージの命令のWB先レジスタ番号が0ではない
---EXステージの命令で使用するレジスタ番号とMEMステージの命令のWB先レジスタが一致する
--WBステージの命令がWBを行う
--WBステージの命令のWB先レジスタ番号が0ではない
--EXステージの命令で使用するレジスタ番号とWBステージの命令のWB先レジスタが一致する
-0:NO_FORWARDING
--上記の条件に当てはまらないとき
**入力 [#ia6cba17]
-id_source(id_inst[25:21])
-id_target(id_inst[20:16])
-ex_source(ex_inst[25:21])
-ex_target(ex_inst[20:16])
-ex_wbdst
-ex_regwrite
-mem_wbdst
-mem_regwrite
-wb_wbdst
-wb_regwrite
*ハザード検知ユニット再考 [#tf5c993d]
BEQ命令時は最大2クロック分をストールに費す場合がある。
-通常条件
--EXステージの命令がメモリ読み出しを行う(ここではEXステージの命令がLW)
--EXステージの命令のライトバック先とIDステージの読み出しレジスタ番号(rsもしくはrt)が一致する
-追加条件
--IDステージの命令がBEQ
--MEMステージの命令がメモリ読み出しを行う(ここではEXステージの命令がLW)
--MEMステージの命令のライトバック先とIDステージの読み出しレジスタ番号(rsもしくはrt)が一致する
**入力 [#q64a6290]
-id_source
-id_target
-id_branch
-ex_memread
-ex_target
-mem_memread
-mem_wbdst
*回路図 [#y1a6f02b]
&ref(ピタゴラスイッチMIPS版/プロセッサの仕様/mips_pipe_id_branch_sche.pdf);
終了行:
[[ピタゴラスイッチMIPS版/プロセッサの仕様]]
*概要 [#s5770acd]
IDステージで分岐。フラッシュは行わず、1命令遅延スロットを持つ。
ベースとなる設計データは[[フォワーディングユニット>ピタゴラスイッチMIPS版/仕様/フォワーディングユニット]]+[[ハザード検出ユニット>ピタゴラスイッチMIPS版/仕様/ハザード検出ユニット]]を実装したもの。
*仕様 [#q7251654]
IDステージ分岐。分岐成立時のフラッシュの機能を持たずに、1つの遅延スロット付き。
*差分モジュール [#ge94adad]
-追加
--id_comparetor
--id_mux_fwd_a
--id_mux_fwd_b
--id_bch_calc
--id_pc_shifter
--id_ext_shifter
--id_mux_pcsrc
--id_and_gate
--id_or_gate
--fwd_unit
-削除
--ex_bch_calc
--ex_pc_shifter
--ex_ext_shifter
--ex_mux_pcsrc
--ex_fwd_unit
--mem_and_gate
--mem_or_gate
-機能変更
--ex_alu
---ゼロ判定削除
--fwd_unit
---IDステージのフォワーディング制御信号判定追加
*差分レジスタ [#l487d725]
-削除
--idex_adr_current
--exmem_pcdst
--exmem_data_zero
-変更
--idex_ctrl_mem
---id_branch, id_jump分削除
--exmem_ctrl_mem
---ex_branch, ex_jump分削除
*差分ワイヤ [#of83ff3a]
-追加
--id_shifted_imm
--id_bch_adr
--id_jmp_adr
--id_pcsrc
--id_data_equal
--id_bch_taken
--id_pcdst
--id_fwd_a
--id_fwd_b
--id_fwd_outa
--id_fwd_outb
--ex_regwrite
-削除
--ex_pcadr
--ex_shifted_imm
--ex_jump
--ex_bch_adr
--ex_jmp_adr
--ex_pcsrc
--ex_data_zero
--mem_branch
--mem_pcsrc
--mem_data_zero
--mem_bch_taken
--mem_jump
--mem_pcdst
*フォワーディングユニット再考 [#z7c41cde]
IDステージで分岐判定をするため、IDステージへのフォワーディングパスを設計。
**IDステージのフォワーディング制御信号と条件(プライオリティ付き) [#ka200226]
-2:FROM_EX_STAGE
--EXステージの命令がWBを行う
--EXステージの命令のWB先レジスタ番号が0ではない
--IDステージの命令で使用するレジスタ番号とEXステージの命令のWB先レジスタが一致する
-1:FROM_MEM_STAGE
--MEMステージの命令がWBを行う
--MEMステージの命令のWB先レジスタ番号が0ではない
--IDステージの命令で使用するレジスタ番号とMEMステージの命令のWB先レジスタが一致する
-0:NO_FORWARDING
--上記の条件に当てはまらないとき
**EXステージのフォワーディング制御信号と条件 [#z7aec2e0]
MEMステージからEXステージにフォワーディングする必要のあるデータハザードは、前クロックでEXステージからIDステージにフォワーディングすることで解決可能。ただしWBステージからEXステージにフォワーディングする必要のあるデータハザードはデータメモリからの読み出しデータである可能性があるため、前クロックでのフォワーディングでは解決できない。よって、ここではWBステージからのフォワーディングだけを考えれば良い。
-1:FROM_WB_STAGE
--以下の条件が当てはまらない
---MEMステージの命令がWBを行う
---MEMステージの命令のWB先レジスタ番号が0ではない
---EXステージの命令で使用するレジスタ番号とMEMステージの命令のWB先レジスタが一致する
--WBステージの命令がWBを行う
--WBステージの命令のWB先レジスタ番号が0ではない
--EXステージの命令で使用するレジスタ番号とWBステージの命令のWB先レジスタが一致する
-0:NO_FORWARDING
--上記の条件に当てはまらないとき
**入力 [#ia6cba17]
-id_source(id_inst[25:21])
-id_target(id_inst[20:16])
-ex_source(ex_inst[25:21])
-ex_target(ex_inst[20:16])
-ex_wbdst
-ex_regwrite
-mem_wbdst
-mem_regwrite
-wb_wbdst
-wb_regwrite
*ハザード検知ユニット再考 [#tf5c993d]
BEQ命令時は最大2クロック分をストールに費す場合がある。
-通常条件
--EXステージの命令がメモリ読み出しを行う(ここではEXステージの命令がLW)
--EXステージの命令のライトバック先とIDステージの読み出しレジスタ番号(rsもしくはrt)が一致する
-追加条件
--IDステージの命令がBEQ
--MEMステージの命令がメモリ読み出しを行う(ここではEXステージの命令がLW)
--MEMステージの命令のライトバック先とIDステージの読み出しレジスタ番号(rsもしくはrt)が一致する
**入力 [#q64a6290]
-id_source
-id_target
-id_branch
-ex_memread
-ex_target
-mem_memread
-mem_wbdst
*回路図 [#y1a6f02b]
&ref(ピタゴラスイッチMIPS版/プロセッサの仕様/mips_pipe_id_branch_sche.pdf);
ページ名: