例外が起こった時の処理
• 例外プログラムカウンタ( EPC ) <= (PC ー 4)
• PC <= 8000 0180
• Cause <= 0, if 未定義命令
Cause <= 1, if 算術オーバーフロー
例外は、算術オーバーフロー/未定義命令で発生 どこで何が起きたを知る必要がある
↓↓
例外プログラムカウンタ(
EPC
):
問題が起きた命令アドレスを退避する。Cause
レジスタ:
例外発生の理由を記録するレジスタ(
未定義命令なら0
算術オ バ フロ なら1) (
未定義命令なら0,
算術オーバーフローなら1) OS
はCause
レジスタを見て例外要因を知り、それに応じた処理を行う⇒ データパスに、例外用の制御信号を導入
97
例外処理を加えたマルチサイクル方式における全データバス
CauseWriteIntCause
MemReadIorD MemWrite
RegWrite R D t IRW i
ALUSrcA MemtoReg
ALUSrcB ALUOp
制御
PC PCSource
PCWrite
PCWriteCond CauseWriteEPCWrite
M U
0 M 0
RegDst IRWrite
M U
命令[31-26]
2ビット 左シフト
26 28
[31-28]
0
ジャンプ先
1
命令[25-0]
PC
メモリ
アドレス
データ
読出
レジスタ1
A
ALU
ALU
ゼロ 判定
U X
B M
命令[25-21]
命令[20-16]
命令[15-0]
読出 レジスタ2 書込 レジスタ 書込
読出 データ1
読出 データ2
M U X M U
X
0 0
1
0 1
命令 [15-11]
U X
命令[31 26]
2
アドレス[31-0]
8000 0180
3
ALU
書込み データ
命令
Out
レジスタ
ALU
M
結果U X
B
レジスタ
書込 データ
デ タ2
M U X
符号 2ビット
1
0
1
1 2 3 4
[15-11]
命令[15-0]
EPC
メモリ・データ レジスタ
拡張
32
左シフト16 ALU
制御
命令 [5-0]
Cause M U
X
0 1 0 1
98
お絵かきスペース
例外処理のために追加された部分はどこか?
99
データパスを制御する有限状態機械の全体図
MemRead ALUSrcA=0
IorD=0 IRWrite ALUSrcB=01
ALUOP=00 PCW it
命令フェッチ 命令デコード/
レジスタのフェッチ
開始
0 1
ALUSrcA=0 ALUSrcB=11 ALUOP=00 PCWrite
PCSource=00
2
ALUSrcA=1 ALUSrcB=10
ALUOP=00
メモリアドレスの計算6
ALUSrcA=1 ALUSrcB=00
ALUOP=10
実行PCWrite PCSource=10
9
ジャンプの完了ALUSrcA=1
ALUSrcB=00 ALUOp=01 PCWriteCond
8
分岐完了3
メモリアクセス5
メモリ アクセス
(Op=‘SW’)
7
R形式命令の完了
PCSource=01
11
IntCause=1CauseWrite
10
IntCause=0MemRead
IorD=1 MemWrite
IorD=1
RegDst=1 RegWrite MemtoReg=0
ALUSrcA=0 ALUSrcB=01
ALUOP=01 EPCWrite
PCWrite PCSource=11
IntCause=0 CauseWrite ALUSrcA=0 ALUSrcB=01
ALUOP=01 PCWrite EPCWrite PCSource=11
10
数値 オーバーフロー
RegWrite MemtoReg=1
RegDst=0
4
メモリ読出し完了 ステップ
100
RegDst 0
お絵かきスペース
例外処理のために追加された部分はどこか?
101
Chap. 3 のセルフチェック
以下の文章の意味がわからないなら、講義で寝ていた ( 笑 ) かもしれませんね。
19 単一クロックサイクル方式では、命令によって実行に本質的に必要な時間が異なる。
20 単一クロック・サイクル方式では性能があまりでない。
21 ルチサイクル方式は単 サイクル方式に比べて2 の利点がある
かもしれませんね。
21 マルチサイクル方式は単一サイクル方式に比べて2つの利点がある。
22
マルチサイクル方式では、情報を一時的に保持するレジスタが必要となる。23
マルチサイクル方式では、5サイクルかけて各命令を実行する。24 マルチサイクル方式では、制御回路を組み合わせ回路で実現できない。
25 マイクロプログラミングという用語を知っている。
26
プロセッサに関する用語として、例外、割り込みという用語を知っている。ちゃんと聞いていたのに,わからなければ質問しましょう!
102
Chap. 3 の試験に出るかもしれない用語集
• 単一 ( クロック ) サイクル
• マルチサイクル
• IR
• MDR
• 命令フェッチ
• 命令フェッチ
• 命令デコード
• レジスタ・フェッチ レジスタ フ ッチ
• 順序回路
• 有限状態機械
プ グ グ
• マイクロプログラミング
• マイクロ命令(マイクロコード)
• 例外 割り込み
• 例外、割り込み
• オーバーフロー
103
講義中にやって試験に出るかもしれないもの ( もちろん全く同じ形ではないですが)
( もちろん全く同じ形ではないですが)
• 重要問題 重要問題
• ミニクイズ
自己確認クイズ(自分でやるのが基本)
• 自己確認クイズ(自分でやるのが基本)
• 章末問題
配布資料は試験中に提供予定
(詳細は講義中に説明します。)
104
章末問題①
•
次ページの図は、MIPS
のマルチサイクルでの実現のデータパスの制御を行 う有限状態機械の状態遷移図である。図中の制御信号の値を全て答えよ。う有限状態機械の状態遷移図である。図中の制御信号の値を全て答えよ。
(便宜上全ての制御線の値が書かれているが、問題としてはその値を聞いて いると思ってください。)
同じ図において 以下の問いを答えよ
•
同じ図において、以下の問いを答えよ。1. R
形式の命令を実行する場合、開始からどの順番に状態遷移するか?2.
ストア命令の場合は?3
ロ ド命令の場合は?3.
ロード命令の場合は?4.
ジャンプ命令の場合は?5.
分岐命令の場合は?105
データパスを制御する有限状態機械の全体図
MemRead ALUSrcA=0
IorD=0 IRWrite ALUSrcB=01
ALUOP=00
命令フェッチ 命令デコード/
レジスタのフェッチ
開始
0 1
ALUSrcA=0 ALUSrcB=11 ALUOP=00 ALUOP 00
PCWrite PCSource=00
2
ALUSrcA=1 ALUSrcB=10
ALUOP=00
メモリアドレスの計算6
ALUSrcA=1 ALUSrcB=00
ALUOP=10
実行PCWrite PCSource=10
9
ジャンプの完了ALUSrcA=1 ALUSrcB=00
ALUOp=01 PCWriteCond
8
分岐完了ALUOP 00
3
メモリアクセス5
メモリ アクセス
(Op=‘SW’)
7
R形式命令の完了PCWriteCond PCSource=01
MemRead
IorD=1 MemWrite
IorD=1
RegDst=1 RegWrite MemtoReg=0
RegWrite MemtoReg=1
R D t 0
4
メモリ読出し完了 ステップ
106
RegDst=0
お絵かきスペース
107
章末問題②
•
次ページの図は、MIPSのマルチサイクルでの実現のデータパスの制御を行 う有限状態機械の状態遷移図である 図中の制御信号の値を全て答えよ う有限状態機械の状態遷移図である。図中の制御信号の値を全て答えよ。(便宜上全ての制御線の値がほとんど書かれているが、問題としてはその値 を聞いていると思ってください。)
•
同じ図において、以下の問いを答えよ。1. R形式の命令を実行してオーバーフローが起こった場合、開始からどの順番
に状態遷移するか?