マルチサイクルを用いた実現方式 (教科書5.4節) マルチサイクル方式(1) 2つのデータパス実現方式 z 単一クロックサイクル: 1命令を1クロックサイクルで処理 z マルチクロックサイクル: 1命令を複数クロックサイクルで処理 単一クロックサイクル方式は処理効率が悪い. CLK 処理時間 命令 命令 時間のかかる命令にクロック・ サイクル時間をあわさなければ ならない.→余り時間の発生 命令 命令 命令 クロック・サイクル 時間は一定. 九州大学工学部電気情報工学科(2006年度) マルチサイクル方式(2) マルチクロックサイクル方式 z 1命令の実行を(同程度の処理量の)複数小作業に分割する z 各小作業を1クロックサイクルで処理する z 1命令は複数クロックサイクルで実行される z クロック・サイクル時間を短くする(動作周波数を高くする) CLK 処理時間 命令 命令 命令 命令 命令 CLK 処理時間 九州大学工学部電気情報工学科(2006年度) マルチサイクル処理例(1) + 4 RegWrite MemRead 25-21 20-16 rreg1 rreg2 P 命令メモリ inst C adrs a rd1 レジスタ ファイル wreg b rd2 A L U y adrs データメモリ wd wd 15-0 符号拡張 16 MemWrite 32 rd ALUctrl LW命令実行の場合 九州大学工学部電気情報工学科(2006年度) マルチサイクル処理例(2) + 4 RegWrite MemRead 25-21 20-16 rreg1 rreg2 P 命令メモリ inst C adrs a rd1 レジスタ ファイル wreg b rd2 A L U y adrs データメモリ wd wd 15-0 符号拡張 16 MemWrite 32 rd ALUctrl LW命令実行の場合 九州大学工学部電気情報工学科(2006年度) マルチサイクル処理例(3) + 4 RegWrite MemRead 25-21 20-16 rreg1 rreg2 P 命令メモリ inst C adrs a rd1 レジスタ ファイル wreg b rd2 A L U y adrs データメモリ wd wd 15-0 符号拡張 16 MemWrite 32 rd ALUctrl LW命令実行の場合 九州大学工学部電気情報工学科(2006年度) マルチサイクル処理例(4) + 4 RegWrite MemRead 25-21 20-16 rreg1 rreg2 P 命令メモリ inst C adrs a rd1 レジスタ ファイル wreg b rd2 A L U y adrs データメモリ wd wd 15-0 符号拡張 16 MemWrite 32 rd ALUctrl LW命令実行の場合 九州大学工学部電気情報工学科(2006年度) マルチサイクル処理例(5) + 4 RegWrite MemRead 25-21 20-16 rreg1 rreg2 P 命令メモリ inst C adrs a rd1 レジスタ ファイル wreg b rd2 A L U y adrs データメモリ wd wd 15-0 符号拡張 16 MemWrite 32 rd ALUctrl LW命令実行の場合 九州大学工学部電気情報工学科(2006年度) マルチサイクル処理例(6) 1クロック・サイクルより長い時間 値を保持しなければならない信 号線には,レジスタを挿入する. + 4 RegWrite MemRead 25-21 20-16 rreg1 rreg2 P 命令メモリ inst C adrs a rd1 レジスタ ファイル wreg b rd2 A L U y adrs データメモリ wd wd 15-0 異なるクロック・サイ クルで動作するので, 共通化可能! 符号拡張 16 MemWrite 32 rd ALUctrl 九州大学工学部電気情報工学科(2006年度) マルチサイクル・データパス(1) PCWriteCond 31-26 制御部 5-0 PCWrite 31-28 IRWrite wd MDR 1 rd 25-21 20-16 0 rreg1 rreg2 レジスタ ファイル RegDst wreg 15-111 1 0 rd1 0 B adrs ALU 制御部 00 01 10 rd2 wd MemToReg 15-0 符号拡張 16 32 ALUCtrl zero ALUSrcA 1 ALUSrcB 00 01 4 10 11 A L U ALUOut メモリ RegWrite A IorD IR PC 0 MemRead PCSource 2bit 左シフト 25-0 MemWrite ALUOp 2bit 左シフト 九州大学工学部電気情報工学科(2006年度) マルチサイクル・データパス(2) プログラムカウンタ(PC) 信号の意味 入出力 信号名 ビット幅 次のクロック・サイクルで更新するPCの 値 入力 32 記憶してる値(現在のPCの値) 出力 32 更新要求(1で要求) 入力 1 命令レジスタ(IR): メモリから読み出した命令を記憶する. 信号の意味 入出力 信号名 次のクロック・サイクルで記憶する命令 入力 32 記憶している命令(現在のIRの値) 出力 32 書き込み要求(1のとき要求) 入力 IRWrite ビット幅 1 九州大学工学部電気情報工学科(2006年度) マルチサイクル・データパス(3) MDR(メモリデータレジスタ),A,B,ALUOut: いずれも通常のレ ジスタ(Dフリップフロップ) 信号の意味 入出力 信号名 ビット幅 次のクロック・サイクルで記憶するデータ 入力 32 現在記憶しているデータ 出力 32 九州大学工学部電気情報工学科(2006年度) R形式命令の実行(命令取得とPC更新) PCWriteCond 31-26 制御部 5-0 PCWrite 31-28 IRWrite wd MDR 1 rd 25-21 20-16 0 rreg1 rreg2 レジスタ ファイル RegDst wreg 15-111 1 0 rd1 0 B adrs ALU 制御部 00 01 10 rd2 wd MemToReg 15-0 符号拡張 16 32 ALUCtrl zero ALUSrcA 1 ALUSrcB 00 01 4 10 11 A L U ALUOut メモリ RegWrite A IorD IR PC 0 MemRead PCSource 2bit 左シフト 25-0 MemWrite ALUOp 2bit 左シフト 九州大学工学部電気情報工学科(2006年度) R形式命令の実行(命令解読とレジスタ読出し) PCWriteCond 31-26 制御部 5-0 PCWrite 31-28 IRWrite wd MDR 1 rd 25-21 20-16 0 rreg1 rreg2 レジスタ ファイル RegDst wreg 15-111 1 0 rd1 0 B adrs ALU 制御部 00 01 10 rd2 wd MemToReg 15-0 符号拡張 16 32 ALUCtrl zero ALUSrcA 1 ALUSrcB 00 01 4 10 11 A L U ALUOut メモリ RegWrite A IorD IR PC 0 MemRead PCSource 2bit 左シフト 25-0 MemWrite ALUOp 2bit 左シフト 九州大学工学部電気情報工学科(2006年度) R形式命令の実行(演算の実行) PCWriteCond 31-26 制御部 5-0 PCWrite 31-28 IRWrite wd MDR 1 rd 25-21 20-16 0 rreg1 rreg2 レジスタ ファイル RegDst wreg 15-111 1 0 rd1 0 B adrs ALU 制御部 00 01 10 rd2 wd MemToReg 15-0 符号拡張 16 32 ALUCtrl zero ALUSrcA 1 ALUSrcB 00 01 4 10 11 A L U ALUOut メモリ RegWrite A IorD IR PC 0 MemRead PCSource 2bit 左シフト 25-0 MemWrite ALUOp 2bit 左シフト 九州大学工学部電気情報工学科(2006年度) R形式命令の実行(演算結果の書込み) PCWriteCond 31-26 制御部 5-0 PCWrite 31-28 IRWrite wd MDR 1 rd 25-21 20-16 0 rreg1 rreg2 レジスタ ファイル RegDst wreg 15-111 1 0 rd1 0 B adrs ALU 制御部 00 01 10 rd2 wd MemToReg 15-0 符号拡張 16 32 ALUCtrl zero ALUSrcA 1 ALUSrcB 00 01 4 10 11 A L U ALUOut メモリ RegWrite A IorD IR PC 0 MemRead PCSource 2bit 左シフト 25-0 MemWrite ALUOp 2bit 左シフト 九州大学工学部電気情報工学科(2006年度) lw命令の実行(命令取得とPC更新) PCWriteCond 31-26 制御部 5-0 PCWrite 31-28 IRWrite wd MDR 1 rd 25-21 20-16 0 rreg1 rreg2 レジスタ ファイル RegDst wreg 15-111 1 0 rd1 0 B adrs ALU 制御部 00 01 10 rd2 wd MemToReg 15-0 符号拡張 16 32 ALUCtrl zero ALUSrcA 1 ALUSrcB 00 01 4 10 11 A L U ALUOut メモリ RegWrite A IorD IR PC 0 MemRead PCSource 2bit 左シフト 25-0 MemWrite ALUOp 2bit 左シフト 九州大学工学部電気情報工学科(2006年度) lw命令の実行(命令解読とレジスタ読出し) PCWriteCond 31-26 制御部 5-0 PCWrite 31-28 IRWrite wd MDR 1 rd 25-21 20-16 0 rreg1 rreg2 レジスタ ファイル RegDst wreg 15-111 1 0 rd1 0 B adrs ALU 制御部 00 01 10 rd2 wd MemToReg 15-0 符号拡張 16 32 ALUCtrl zero ALUSrcA 1 ALUSrcB 00 01 4 10 11 A L U ALUOut メモリ RegWrite A IorD IR PC 0 MemRead PCSource 2bit 左シフト 25-0 MemWrite ALUOp 2bit 左シフト 九州大学工学部電気情報工学科(2006年度) lw命令の実行(アドレス計算) PCWriteCond 31-26 制御部 5-0 PCWrite 31-28 IRWrite wd MDR 1 rd 25-21 20-16 0 rreg1 rreg2 レジスタ ファイル RegDst wreg 15-111 1 0 rd1 0 B adrs ALU 制御部 00 01 10 rd2 wd MemToReg 15-0 符号拡張 16 32 ALUCtrl zero ALUSrcA 1 ALUSrcB 00 01 4 10 11 A L U ALUOut メモリ RegWrite A IorD IR PC 0 MemRead PCSource 2bit 左シフト 25-0 MemWrite ALUOp 2bit 左シフト 九州大学工学部電気情報工学科(2006年度) lw命令の実行(メモリへのアクセス) PCWriteCond 31-26 制御部 5-0 PCWrite 31-28 IRWrite wd MDR 1 rd 25-21 20-16 0 rreg1 rreg2 レジスタ ファイル RegDst wreg 15-111 1 0 rd1 0 B adrs ALU 制御部 00 01 10 rd2 wd MemToReg 15-0 符号拡張 16 32 ALUCtrl zero ALUSrcA 1 ALUSrcB 00 01 4 10 11 A L U ALUOut メモリ RegWrite A IorD IR PC 0 MemRead PCSource 2bit 左シフト 25-0 MemWrite ALUOp 2bit 左シフト 九州大学工学部電気情報工学科(2006年度) lw命令の実行(ロード結果の書込み) PCWriteCond 31-26 制御部 5-0 PCWrite 31-28 IRWrite wd MDR 1 rd 25-21 20-16 0 rreg1 rreg2 レジスタ ファイル RegDst wreg 15-111 1 0 rd1 0 B adrs ALU 制御部 00 01 10 rd2 wd MemToReg 15-0 符号拡張 16 32 ALUCtrl zero ALUSrcA 1 ALUSrcB 00 01 4 10 11 A L U ALUOut メモリ RegWrite A IorD IR PC 0 MemRead PCSource 2bit 左シフト 25-0 MemWrite ALUOp 2bit 左シフト 九州大学工学部電気情報工学科(2006年度) sw命令の実行(命令取得とPC更新) PCWriteCond 31-26 制御部 5-0 PCWrite 31-28 IRWrite wd MDR 1 rd 25-21 20-16 0 rreg1 rreg2 レジスタ ファイル RegDst wreg 15-111 1 0 rd1 0 B adrs ALU 制御部 00 01 10 rd2 wd MemToReg 15-0 符号拡張 16 32 ALUCtrl zero ALUSrcA 1 ALUSrcB 00 01 4 10 11 A L U ALUOut メモリ RegWrite A IorD IR PC 0 MemRead PCSource 2bit 左シフト 25-0 MemWrite ALUOp 2bit 左シフト 九州大学工学部電気情報工学科(2006年度) sw命令の実行(命令解読とレジスタ読出し) PCWriteCond 31-26 制御部 5-0 PCWrite 31-28 IRWrite wd MDR 1 rd 25-21 20-16 0 rreg1 rreg2 レジスタ ファイル RegDst wreg 15-111 1 0 rd1 0 B adrs ALU 制御部 00 01 10 rd2 wd MemToReg 15-0 符号拡張 16 32 ALUCtrl zero ALUSrcA 1 ALUSrcB 00 01 4 10 11 A L U ALUOut メモリ RegWrite A IorD IR PC 0 MemRead PCSource 2bit 左シフト 25-0 MemWrite ALUOp 2bit 左シフト 九州大学工学部電気情報工学科(2006年度) sw命令の実行(アドレス計算) PCWriteCond 31-26 制御部 5-0 PCWrite 31-28 IRWrite wd MDR 1 rd 25-21 20-16 0 rreg1 rreg2 レジスタ ファイル RegDst wreg 15-111 1 0 rd1 0 B adrs ALU 制御部 00 01 10 rd2 wd MemToReg 15-0 符号拡張 16 32 ALUCtrl zero ALUSrcA 1 ALUSrcB 00 01 4 10 11 A L U ALUOut メモリ RegWrite A IorD IR PC 0 MemRead PCSource 2bit 左シフト 25-0 MemWrite ALUOp 2bit 左シフト 九州大学工学部電気情報工学科(2006年度) sw命令の実行(メモリへのアクセス) PCWriteCond 31-26 制御部 5-0 PCWrite 31-28 IRWrite wd MDR 1 rd 25-21 20-16 0 rreg1 rreg2 レジスタ ファイル RegDst wreg 15-111 1 0 rd1 0 B adrs ALU 制御部 00 01 10 rd2 wd MemToReg 15-0 符号拡張 16 32 ALUCtrl zero ALUSrcA 1 ALUSrcB 00 01 4 10 11 A L U ALUOut メモリ RegWrite A IorD IR PC 0 MemRead PCSource 2bit 左シフト 25-0 MemWrite ALUOp 2bit 左シフト 九州大学工学部電気情報工学科(2006年度) beq命令の実行(命令取得とPC更新) PCWriteCond 31-26 制御部 5-0 PCWrite 31-28 IRWrite wd MDR 1 rd 25-21 20-16 0 rreg1 rreg2 レジスタ ファイル RegDst wreg 15-111 1 0 rd1 0 B adrs ALU 制御部 00 01 10 rd2 wd MemToReg 15-0 符号拡張 16 32 ALUCtrl zero ALUSrcA 1 ALUSrcB 00 01 4 10 11 A L U ALUOut メモリ RegWrite A IorD IR PC 0 MemRead PCSource 2bit 左シフト 25-0 MemWrite ALUOp 2bit 左シフト 九州大学工学部電気情報工学科(2006年度) beq命令の実行 (命令解読とレジスタ読出し,分岐先PCの計算) PCWriteCond 31-26 制御部 5-0 PCWrite 31-28 IRWrite wd MDR 1 rd 25-21 20-16 0 rreg1 rreg2 レジスタ ファイル RegDst wreg 15-111 1 0 rd1 0 B adrs ALU 制御部 00 01 10 rd2 wd MemToReg 15-0 符号拡張 16 32 ALUCtrl zero ALUSrcA 1 ALUSrcB 00 01 4 10 11 A L U ALUOut メモリ RegWrite A IorD IR PC 0 MemRead PCSource 2bit 左シフト 25-0 MemWrite ALUOp 2bit 左シフト 九州大学工学部電気情報工学科(2006年度) beq命令の実行(分岐条件判定とPC更新) PCWriteCond 31-26 制御部 5-0 PCWrite 31-28 IRWrite wd MDR 1 rd 25-21 20-16 0 rreg1 rreg2 レジスタ ファイル RegDst wreg 15-111 1 0 rd1 0 B adrs ALU 制御部 00 01 10 rd2 wd MemToReg 15-0 符号拡張 16 32 ALUCtrl zero ALUSrcA 1 ALUSrcB 00 01 4 10 11 A L U ALUOut メモリ RegWrite A IorD IR PC 0 MemRead PCSource 2bit 左シフト 25-0 MemWrite ALUOp 2bit 左シフト 九州大学工学部電気情報工学科(2006年度) j命令の実行(命令取得とPC更新) PCWriteCond 31-26 制御部 5-0 PCWrite 31-28 IRWrite wd MDR 1 rd 25-21 20-16 0 rreg1 rreg2 レジスタ ファイル RegDst wreg 15-111 1 0 rd1 0 B adrs ALU 制御部 00 01 10 rd2 wd MemToReg 15-0 符号拡張 16 32 ALUCtrl zero ALUSrcA 1 ALUSrcB 00 01 4 10 11 A L U ALUOut メモリ RegWrite A IorD IR PC 0 MemRead PCSource 2bit 左シフト 25-0 MemWrite ALUOp 2bit 左シフト 九州大学工学部電気情報工学科(2006年度) j命令の実行(命令の解読) PCWriteCond 31-26 制御部 5-0 PCWrite 31-28 IRWrite wd MDR 1 rd 25-21 20-16 0 rreg1 rreg2 レジスタ ファイル RegDst wreg 15-111 1 0 rd1 0 B adrs ALU 制御部 00 01 10 rd2 wd MemToReg 15-0 符号拡張 16 32 ALUCtrl zero ALUSrcA 1 ALUSrcB 00 01 4 10 11 A L U ALUOut メモリ RegWrite A IorD IR PC 0 MemRead PCSource 2bit 左シフト 25-0 MemWrite ALUOp 2bit 左シフト 九州大学工学部電気情報工学科(2006年度) j命令の実行(PC更新) PCWriteCond 31-26 制御部 5-0 PCWrite 31-28 IRWrite wd MDR 1 rd 25-21 20-16 0 rreg1 rreg2 レジスタ ファイル RegDst wreg 15-111 1 0 rd1 0 B adrs ALU 制御部 00 01 10 rd2 wd MemToReg 15-0 符号拡張 16 32 ALUCtrl zero ALUSrcA 1 ALUSrcB 00 01 4 10 11 A L U ALUOut メモリ RegWrite A IorD IR PC 0 MemRead PCSource 2bit 左シフト 25-0 MemWrite ALUOp 2bit 左シフト 九州大学工学部電気情報工学科(2006年度) 制御部の設計(1) R形式 第1サイクル lw sw j IorD=0; MemRead=1; IRWrite=1; ALUSrcA=0; ALUSrcB=01; ALUOp=00; PCSource=00; PCWrite=1 ALUSrcA=0 ALUSrcB=11 ALUOp=00 第2サイクル 第3サイクル ALUSrcA=1 ALUSrcB=00 ALUOp=10 ALUSrcA=1 ALUSrcB=10 ALUOp=00 ALUSrcA=1 ALUSrcB=10 ALUOp=00 第4サイクル RegDst=1 MemToReg=0 RegWrite=1 IorD=1 MemRead=1 IorD=1 MemWrite=1 第5サイクル beq ALUSrcA=1 ALUSrcB=00 ALUOp=01 PCSource=01 PCWriteCond=1 PCSource=10 PCWrite=1 MemToReg=1 RegDst=0 RegWrite=1 九州大学工学部電気情報工学科(2006年度) 制御部の設計(2) R形式 lw sw beq j 第1サイクル IorD=0; MemRead=1; IRWrite=1; ALUSrcA=0; ALUSrcB=01; ALUOp=00; PCSource=00; PCWrite=1 第2サイクル ALUSrcA=0 ALUSrcB=11 ALUOp=00 ALUSrcA=0 ALUSrcB=11 ALUOp=00 ALUSrcA=0 ALUSrcB=11 ALUOp=00 ALUSrcA=0 ALUSrcB=11 ALUOp=00 ALUSrcA=0 ALUSrcB=11 ALUOp=00 第3サイクル ALUSrcA=1 ALUSrcB=00 ALUOp=10 ALUSrcA=1 ALUSrcB=10 ALUOp=00 ALUSrcA=1 ALUSrcB=10 ALUOp=00 ALUSrcA=1 ALUSrcB=00 ALUOp=01 PCSource=01 PCWriteCond=1 PCSource=10 PCWrite=1 第4サイクル RegDst=1 MemToReg=0 RegWrite=1 IorD=1 MemRead=1 IorD=1 MemWrite=1 第5サイクル MemToReg=1 共通 RegDst=0 RegWrite=1 やる必要はないが, やっても無害.やっ たほうが制御部が 簡潔になる. 九州大学工学部電気情報工学科(2006年度) 制御部の設計(3) R形式 lw sw beq j 第1サイクル IorD=0; MemRead=1; IRWrite=1; ALUSrcA=0; ALUSrcB=01; ALUOp=00; PCSource=00; PCWrite=1 ⓪ 第2サイクル ALUSrcA=0; ALUSrcB=11; ALUOp=00 第3サイクル ALUSrcA=1 ALUSrcB=00 ALUOp=10 ALUSrcA=1 ALUSrcB=10 ALUOp=00 ⑥ 第4サイクル 第5サイクル RegDst=1 MemToReg=0 RegWrite=1 ⑦ ① ② IorD=1 MemRead=1 ③ ALUSrcA=1 ALUSrcB=00 ALUOp=01 ⑧ PCSource=01 PCWriteCond=1 PCSource=10 PCWrite=1 ⑨ IorD=1 MemWrite=1 ⑤ MemToReg=1 RegDst=0 RegWrite=1 ④ 九州大学工学部電気情報工学科(2006年度) 制御部の設計(4) 状態遷移図 2 lw 3 4 sw lw/sw 0 1 5 R形式 6 7 beq j 8 9 九州大学工学部電気情報工学科(2006年度) 制御部の設計(5) 制御部 状態レジスタ 組み合わせ 論理回路 各制御信号 IR 31-26 次状態 九州大学工学部電気情報工学科(2006年度)
© Copyright 2024 Paperzz