110
計算機構成論 (Chap 3) @C401 計算機構成論 (Chap. 3) @C401 http://www.ngc.is.ritsumei.ac.jp/~ger/Lectures/CompArch2012/index.html (user=ganbare, passwd = 初回の講義で言いました) 講義に出るなら、分からないなら質問しよう。 単位を取りたいなら、章末問題は自分で全部といておこう (レポトと考えればいいんです!) ご意見、ご要望、ご質問は、 山下個人か [email protected] (レポ トと考えればいいんです!) 山下 受講者全員 にメールください。 [email protected] [email protected] 0 情報システム学科 次世代コンピューティング研究室 山下

計算機構成論 (Chap 3) @C401(Chap. 3) @C401ger/Lectures/C-CompArch2012/...Chap. 3のセルフチェック 以下の文章の意味がわからないなら、今から,寝ないで

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

計算機構成論 (Chap 3) @C401計算機構成論 (Chap. 3) @C401

http://www.ngc.is.ritsumei.ac.jp/~ger/Lectures/CompArch2012/index.html(user=ganbare, passwd = 初回の講義で言いました)

講義に出るなら、分からないなら質問しよう。単位を取りたいなら、章末問題は自分で全部といておこう(レポートと考えればいいんです!)

ご意見、ご要望、ご質問は、山下個人か [email protected]

(レポ トと考えればいいんです!)

山下 茂

山下個人か受講者全員にメールください。

[email protected]@cs.ritsumei.ac.jp

0

情報システム学科 次世代コンピューティング研究室 山下 茂

Chap. 3のセルフチェック

以下の文章の意味がわからないなら、今から,寝ないで聞いてみましょう。聞いてみましょう。

19 単一クロックサイクル方式では、命令によって実行に本質的に必要な時間が異なる。

20 単一クロック・サイクル方式では性能があまりでない。

21 ルチサイクル方式は単 サイクル方式に比べて2 の利点がある21 マルチサイクル方式は単一サイクル方式に比べて2つの利点がある。

22 マルチサイクル方式では、情報を一時的に保持するレジスタが必要となる。

23 マルチサイクル方式では、5サイクルかけて各命令を実行する。

24 マルチサイクル方式では、制御回路を組み合わせ回路で実現できない。

25 マイクロプログラミングという用語を知っている。

26 プロセッサに関する用語として、例外、割り込みという用語を知っている。

1

What to learn • 単一クロックサイクルの問題点• マルチサイクルの概要、考え方、単一クロックサイクルとの違い

Next Topic概要、考 、 違

• マルチサイクルの各サイクルの詳細1. 命令フェッチ2 命令デコード+レジスタ・フェッチ2. 命令デコ ド+レジスタ フェッチ3. 実行、メモリ・アドレスの計算 or 分岐命令の完了4. メモリ・アクセス or R形式命令の完了5 メモリ読み出し完了5. メモリ読み出し完了

• 制御ユニットの詳細(有限状態機械による方法)*マイクロプログラミングによる方法は用語程度

例外の実現• 例外の実現

教材

2• この内容は教科書にはありません(一つ前の版の教科書にはあります)

重要問題①

以下の2つの方式について、どちらが速いかを検討せよ。

1) 全ての命令が固定長の1クロックサイクルで実現する1) 全ての命令が固定長の1クロックサイクルで実現する

2) それぞれの命令が可変長のクロックを使用し、命令を1クロ クサイクルで動作を実現する方式に いて

ただし、•メモリユニット 200ps

命令を1クロックサイクルで動作を実現する方式について、

•メモリユニット 200ps•ALUと加算器 100ps•レジスタファイル(読出し/書込み) 50ps

それ以外では遅延なしとする。(*次ページの表の値は,後ほどの例とは違っていることに注意)

また, 命令ミックスはロード25%, ストア10%, R形式45%, 分岐15%, ジャンプ5%

3

である

性能の計算方法: 自力でできるように!

答)命令タイプ 命令メモリ レジスタ ALU操作 データ・メモリ レジスタ 合計時間

それぞれの命令が使用する機能ユニットとそのクリティカルパスの実行時間

R形式 200 50 100 50 400

語のロード 200 50 100 200 50 600

語のストア 200 50 100 200 550

分岐 200 50 100 350

ジャンプ 200 200

1)の場合 命令タイプの中で時間を最も要するクロックサイクルタイムが1)の場合、命令タイプの中で時間を最も要するクロックサイクルタイムが、CPUクロックサイクルタイム=600ps

2)の場合、クロックサイクルタイムが変動するので、その平均をとることにより CPUクロックサイクルタイムが求まるその平均をとることにより、CPUクロックサイクルタイムが求まる。平均CPUクロックサイクルタイム= 600x0.25 + 550x0.1 + 400x0.45 + 350x0.15 + 200x0.05 = 447.5ps

4

性能比=600/447.5=1.34

エッジトリガクロック方式 復習

エッジトリガクロック方式 : クロック信号のエッジのみで状態更新を行う方式同一クロックサイクルで、読み出し・書込みを両方行える

状態更新

l k

(立ち上がり動作で、状態更新を行うとした場合)

clock

状態論理要素

組み合わせ論理回路

状態論理要素

書き込み 読み出し 組み合わせ論理回路

クロックの立ち上がりで更新(立下りのシステムもあり) (それ以外では値を更新しない)

5

クロックの立ち上がりで更新(立下りのシステムもあり) (それ以外では値を更新しない)

お絵かきスペース

6

単一(クロック)サイクルの問題点

命令によ て 必要な処理時間が大幅に異なる•命令によって、必要な処理時間が大幅に異なる。(浮動小数点演算などの複雑な命令はもっと時間がかかる。)•かといって 可変長のクロックは現実的には設計が非常に困難かといって、可変長のクロックは現実的には設計が非常に困難

その解決として、マルチサイクルを用いた実現があります その詳細をこれから勉強していきますあります。その詳細をこれから勉強していきます。

7

What to learn • 単一クロックサイクルの問題点

• マルチサイクルの概要 考え方 単一クロックサイクルとの違い• マルチサイクルの概要、考え方、単一クロックサイクルとの違い

• マルチサイクルの各サイクルの詳細

1. 命令フェッチ Next Topic2. 命令デコード+レジスタ・フェッチ

3. 実行、メモリ・アドレスの計算 or 分岐命令の完了

Next Topic

4. メモリ・アクセス or R形式命令の完了

5. メモリ読み出し完了

• 制御ユニットの詳細(有限状態機械による方法)• 制御ユニットの詳細(有限状態機械による方法)

*マイクロプログラミングによる方法は用語程度

• 例外の実現

教材

8• この内容は教科書にはありません(一つ前の版の教科書にはあります)

お絵かきスペース

9

マルチサイクルの考え方 1/2命令タイプ 命令メモリ レジスタ+α ALU操作 データ・メモリ レジスタ+α 合計時間

R形式 150 100 100 100 450形式

語のロード 150 100 100 150 100 600

語のストア 150 100 100 150 500

分岐 150 100 100 350

ジャンプ 150 150

単一クロックサイクルでは、クロックサイクルを600psにするしか方法がない。

New Ideaクロックを150psにしてもいいかも!

New Idea

ロードは5サイクル=750ps, ジャンプは1サイクル=150ps可変長ではないが、それに近い効果!(メリット①)

10注意:先の例と数値が違いますが別の例と思ってください

マルチサイクルの考え方 2/2命令タイプ 命令メモリ レジスタ+α ALU操作 データ・メモリ レジスタ+α 合計時間

R形式 150 100 100 100 450形式

語のロード 150 100 100 150 100 600

語のストア 150 100 100 150 500

分岐 150 100 100 350

ジャンプ 150 150

クロックを150psにしてもいいかも!

New Ideap

各サイクルで、ALUやメモリは一つでいい!(メリット②)

But, 各サイクルの最後に、(次のサイクルで必要となるデータ)を覚えるためのレジスタが必要となる。(これが理解できれば、マルチサイクルが分かったことになる:後で確認してください )

11

後で確認してください。)

命令実行過程のクロック・サイクルへの分割このスライドはまとめスライドです 後で見て理解できればOK

各クロックサイクルにおける作業量のバランスをとり、クロックサイクル時間を最小にする

ク クサイクルには 次の 種類の

このスライドはまとめスライドです。後で見て理解できればOK重要なポイント

1クロックサイクルには、次の3種類の1) メモリアクセス、2) レジスタアクセス、3) ALU操作のうちの操作を高々1回しかしないものとして、データパスを設計する。

保存先:

・ PC レジスタ・ファイル メモリPC, レジスタ ファイル, メモリ・ 一時レジスタ:A, B, MDR(メモリ・データ・レジスタ), ALUout,・ (書き込み制御付き)命令レジスタ(instruction register): IR

*IRのみ複数クロック保持されるので書き込み制御つき(他は1クロック分データを覚えるのみ)

12

命令実行過程のクロック・サイクルへの分割5段のステ プ(制御信号については省略) まとめ 理解し れば問題なし

1.命令フェッチステップIR = メモリ[PC]; PC=PC+4; (命令フェッチとPCの計算)

5段のステップ(制御信号については省略) まとめ: 理解していれば問題なし

[ ]; ; (2.命令デコードとレジスタフェッチのステップ

A=レジスタ[IR[25-21]]; B=レジスタ[IR[20-16]]; (rs,rtフィールドの読込み) ALUOut = PC+(符号拡張(IR[15-0] <<2)); (分岐先の計算)( 拡張 [ ] )); 算

3.実行、メモリアドレスの計算または分岐の完了ステップALUOut = A+符号拡張(IR[15-0]); (メモリ参照の場合)ALUOut = A 演算子 B; (R形式命令の場合)演算子 ; ( 形式命令 場合)if(A==B) PC=ALUOut; (分岐)PC=PC[31-28] || (IR[25-0]<<2); (ジャンプ)

4.メモリアクセス、またはR形式命令完了ステップメモリアクセス、またはR形式命令完了ステップMDR = メモリ[ALUOut]; (ロードの場合)メモリ[ALUOut]=B; (ストアの場合)レジスタ[IR[15-11]]=ALUOut; (R形式命令の場合)レジスタ[IR[15 11]] ALUOut; (R形式命令の場合)

5.メモリ読出し完了ステップレジスタ[IR[20-16]]=MDR; (ロード)

13

各命令の各ステップでの動作のまとめ

命令タイプ 命令フェッチ 命令デコードとレジスタフェッチ

実行、メモリアドレスの計算または分岐の完了

メモリアクセス、またはR形式命令完了 メモリ読出し完了

R形式IR = メモリ[PC];PC=PC+4;

A=レジスタ[IR[25-21]]; B=レジスタ[IR[20-16]]; ALUOut = PC+(符号拡張(IR[15-0] <<2));

ALUOut = A 演算子 B; レジスタ[IR[15-11]]=ALUOut;

語のロード Rと同じ Rと同じALUOut = A+符号拡張(IR[15-0]);

MDR = メモリ[ALUOut];

レジスタ[IR[20-16]]=MDR;

語のストア Rと同じ Rと同じ ロードと同じ メモリ[ALUOut]=B;語のストア Rと同じ Rと同じ ロ ドと同じ メモリ[ALUOut]=B;

分岐 Rと同じ Rと同じ if(A==B) PC=ALUOut;

ジャンプ Rと同じ Rと同じ PC=PC[31-28] || (IR[25-0]<<2);

前ペ ジの書きなおし す*前ページの書きなおしです!前のページを見ながら、自分で表を作れますよね?また、それぞれの動作の意味も確認してください。(自己確認クイズ 空欄をうめよ)

14

(自己確認クイズ:空欄をうめよ)

お絵かきスペース

15

お絵かきスペース① 一番時間がかる命令は何か?② 5つのステップのうちALUを使うステップは?② 5つのステップのうちALUを使うステップは?

16

図4.24 単一クロックサイクルのデータパス命令

復習

加算

2ビット左にシフト

命令[25-0]

26 28 PC+4[31-28]

ジャンプ先アドレス[31-0 ]

42ビット

加算

MUX

1

0制御

RegDst

BranchMemReadMemtoReg命令

[31-26]

MUX

1

0Jump

読出 読出

命令メモリ

命令アドレス

PC

2ビット左にシフト

命令[25-21]

制御MemWriteALUOp

g

ALUSrcRegWrite

AND

[31-26]

レジスタ

reg1

ALU ALU結果

読出reg2書込reg

reg1

読出reg2

ALU操作

ゼロ判定

読出データ

アドレス MUM

U

メモリ

命令[31-0]

01

命令[20-16]

MU0

書込データ 4

ALU操作 データメモリ

書込データ

UXU

X1

0命令[15-11]

命令

X1

符号拡張

3216ALU制御

命令[15-0]

命令[5-0]

17

マルチサイクル・データパスの全体像最後にもう一度確認してください

1クロックサイクルには、1) メモリアクセス、2)レジスタアクセス、3)ALU操作のうち1つの操作しかしないものとして、データパスを設計する。

PC メモリ

アドレス

レジスタ

ALU命令またはデータ

レジスタ番号

データA

ALUOut

命令レジスタ

リ レジスタデ タ

レジスタ番号

レジスタ番号

データ Bメモリ・データ

レジスタ

命令 デ

単一サイクルデータパスとの差異 前のページと比較せよ。①何が共有化されたか?

・命令メモリ、データメモリ ⇒ 1つのメモリ・1つのALUと2つの加算器 ⇒ 1つのALU・主要な機能ユニットの後ろに データ保持用のレジスタを追加

①何が共有化されたか?②何が追加されたか?

18

・主要な機能ユニットの後ろに、データ保持用のレジスタを追加

基本的命令を扱うMIPS用のマルチサイクルデータパス

PCアドレス ALU読出

レジスタ1 A

MUX命令

[25-21] 読出

MUX

0

0

PC

メモリ データ

スタ A

ALU命令レジスタ ALU

ゼロ判定

B

[25 21]

命令[20-16]

命令[15-0]

読出レジスタ2

書込レジスタ

書込

読出データ1

読出データ2

MUX

X

01

0

1

命令[15-11]

書込みデータ

Outレジスタ ALU結果M

UX

B

レジスタ

書込データ

MUX

1

0

12

3

4

命令[15-0]

メモリ・データ

レジスタ

符号拡張

2ビット左シフト

1

3216

いくつかの機能ユニットが異なる目的のために共有される⇒ 既存のマルチプレクサの拡張・追加

19

例) ALU入力部分に、マルチプレクサを用意し,異なる目的に対応

基本的命令を扱うMIPS用のマルチサイクルデータパス

追加されたレジスタ

1. 命令レジスタ (IR: instruction register)フェッチした命令を保存

2. メモリ・データレジスタ(MDR: memory data register)

メモリから読み出したデータを保存

3. Aレジスタ、Bレジスタ

レジスタファイルから読み出したレジスタ・オペランドを保存

4. ALUOutレジスタ

ALUからの出力を保存ALUからの出力を保存

•IR以外は、次のクロックサイクルまで保存したらいい•IRは複数サイクル保存しないといけないので、これのみ

*全ての制御線の勉強が終わったあとで確認すること

20

書き込み制御線を持つ終わったあとで確認すること

お絵かきスペース

21

マルチサイクル方式の全データバスと必要な制御線

IorDMemReadMemWrite

RegWriteRegDstIRWrite

ALUSrcAMemtoReg

ALUSrcBALUOp

制御PC[31-28]

PCSourcePCWritePCWriteCond

アドレス 読出

MUM0 0

gW te

MUX命令[31-26]

2ビット左シフト

26 28

[31 28]

0

1

2ジャンプ先アドレス[31 0]

命令[25-0]

PC

メモリ

アドレス

データ

読出レジスタ1 A

ALUOutALU

ゼロ判定

X

MB

命令[25-21]

命令[20-16]

命令[15-0]

読出レジスタ2書込レジスタ

書込デ

読出データ1

読出データ2

MUX

MUX

0

1

1

01

1

命令[15-11]

X2アドレス[31-0]

ALU

書込みデータ

Out命令レジスタ

メモリ・

結果UXレジスタ

データ

MUX

符号拡張

2ビット左シフト

10

1

12

3

4

32

命令[15-0]

メモリ・データ

レジスタ

拡張 左シフト3216ALU制御

命令[5-0]

22

ミニクイズ 0

前のページのMUX(それぞれ)の,入力数と出力数は?

•2-1 MUXの制御入力は,1 ビット•3-1 MUXの制御入力は,2 ビット•4-1 MUXの制御入力は,2 ビット

23

マルチサイクル方式の制御部分

PCSourcePCWritePCWriteCond

ゼロ判定

IorDMemReadMemWrite ALUSrcA

ALUSrcBALUOp

制御

PCWrite

MemWriteRegWriteRegDst

IRWrite

ALUSrcA

MemtoReg

制御

IRWrite

24

マルチ・サイクル:各制御信号の働きII

信号名 ネゲートされたときの働き アサートされたときの働き

1ビット制御信号

RegDst書込みレジスタのディスティネーションレジスタ番号がrtフィールド(ビット20-16)から得られる

書込みレジスタのディスティネーションレジスタ番号がrdフィールド(ビット15-11)から得られる

RegWrite なし レジスタにデータが書き込まれる

ALUSrcA ALUの第1オペランドはPC ALUの第1オペランドがAレジスタから得られる

MemRead なし 読出しアドレスで指定されたデータメモリの内容がデータ出力へ容

MemWrite なし 書込みアドレスで指定されたデータメモリへデータ入力の内容を書込む

MemtoReg レジスタ書込みデータ入力へ レジスタ書込みデータ入力へ渡される値がMemtoReg レジスタ書込みデ タ入力渡される値がALUOut から得られる

レジスタ書込みデ タ入力 渡される値がMDRから得られる

IorD メモリユニットへのアドレス指定にPCが使われる

メモリユニットへのアドレス指定にALUOut が使われる

IRWrite なし メモリからの出力がIRに書き込まれるIRWrite なし メモリからの出力がIRに書き込まれる

PCWrite なし PCへ書き込むデータはPCSourceにより制御される

PCWriteCond なし ALUのゼロ判定出力もアサート時にPCに書込む

25

PCWriteCond なし 込む

各制御信号の働きIII

信号名 値 働き

2ビット制御信号

信号名 値 働き

ALUOp

00 ALUは加算を行う

01 ALUは減算を行うALUOp 01 ALUは減算を行う

10 命令の機能コード・フィールドにより、ALUの操作が決まる

00 ALUの第2入力がBレジスタから得られる

ALUSrcB

00 ALUの第2入力がBレジスタから得られる

01 ALUの第2入力は定数の4

10 ALUの第2入力はIRの下位16ビットを符号拡張したもの第 拡張

11 ALUの第2入力はIRの下位16ビットを符号拡張して、2ビットへ左シフトしたもの

00 ALUの出力(PC+4)をPCへの書込み用に送る

PCSource

00 ALUの出力(PC+4)をPCへの書込み用に送る

01 ALUOutの出力(分岐先アドレス)をPCへの書込み用に送る

10 ジャンプ先アドレス(IR[25-0]を2ビット左シフト、PC+4[31-28]と連結)を

26

10 ジャンプ先アドレス( [ ]を ビット左シフト、 [ ]と連結)をPCへの書込み用に送る

お絵かきスペース

27

自己確認クイズ

1. マルチサイクルが単一サイクルに比べてよい点を2つ挙げよ。

•可変長サイクルに近い効果を得られる.

2. 単一サイクルに比べて、マルチサイクルで追加されるハードウェアモジュールは?

可変長サイクルに近い効果を得られる.•ハードウェアが減る.

A B MDR ALUO t IR (あとMUX)

3. 上記の中で、書き込み制御線のあるレジスタは何か?

•A, B, MDR, ALUOut,IR (あとMUX)

4. 単一サイクルに比べて、マルチサイクルで減ったハードウェアモジュールは?

•IR

•メモリ ALU•メモリ,ALU

自分でまとめてください。

28

お絵かきスペース

29

What to learn • 単一クロックサイクルの問題点

• マルチサイクルの概要 考え方 単一クロックサイクルとの違い• マルチサイクルの概要、考え方、単一クロックサイクルとの違い

• マルチサイクルの各サイクルの詳細

1. 命令フェッチ Next Topic2. 命令デコード+レジスタ・フェッチ

3. 実行、メモリ・アドレスの計算 or 分岐命令の完了

Next Topic

4. メモリ・アクセス or R形式命令の完了

5. メモリ読み出し完了

• 制御ユニットの詳細(有限状態機械による方法)• 制御ユニットの詳細(有限状態機械による方法)

*マイクロプログラミングによる方法は用語程度

• 例外の実現

教材

30• この内容は教科書にはありません(一つ前の版の教科書にはあります)

命令実行過程のクロック・サイクルへの分割5段のステ プ(制御信号については省略)

1.命令フェッチステップIR = メモリ[PC]; PC=PC+4; (命令フェッチとPCの計算)

5段のステップ(制御信号については省略)再掲

[ ]; ; (2.命令デコードとレジスタフェッチのステップ

A=レジスタ[IR[25-21]]; B=レジスタ[IR[20-16]]; (rs,rtフィールドの読込み) ALUOut = PC+(符号拡張(IR[15-0] <<2)); (分岐先の計算)( 拡張 [ ] )); 算

3.実行、メモリアドレスの計算または分岐の完了ステップALUOut = A+符号拡張(IR[15-0]); (メモリ参照の場合)ALUOut = A 演算子 B; (R形式命令の場合)演算子 ; ( 形式命令 場合)if(A==B) PC=ALUOut; (分岐)PC=PC[31-28] || (IR[25-0]<<2); (ジャンプ)

4.メモリアクセス、またはR形式命令完了ステップメモリアクセス、またはR形式命令完了ステップMDR = メモリ[ALUOut]; (ロードの場合)メモリ[ALUOut]=B; (ストアの場合)レジスタ[IR[15-11]]=ALUOut; (R形式命令の場合)レジスタ[IR[15 11]] ALUOut; (R形式命令の場合)

5.メモリ読出し完了ステップレジスタ[IR[20-16]]=MDR; (ロード)

31

1.命令フェッチステップ 1/2ズ プ 性 される ジ 必 な制御線をミニクイズ1:このステップで活性化されるモジュールと必要な制御線を示せ

IorDMemReadMemWrite

RegWriteRegDstIRWrite

ALUSrcAMemtoReg

ALUSrcBALUOp

制御PC[31-28]

PCSourcePCWritePCWriteCond

アドレス 読出

MUM0 0

gW te

MUX命令[31-26]

2ビット左シフト

26 28

[31 28]

0

1

2ジャンプ先アドレス[31-0]

命令[25-0]

PC

メモリ

アドレス

データ

読出レジスタ1 A

ALUOutALU

ゼロ判定

X

MB

命令[25-21]

命令[20-16]

命令[15-0]

読出レジスタ2書込レジスタ

書込デ

読出データ1

読出データ2

MUX

MUX

0

1

1

01

1

命令[15-11]

X2アドレス[31-0]

ALU

書込みデータ

Out命令レジスタ

メモリ・

結果UXレジスタ

データ

MUX

符号拡張

2ビット左シフト

10

1

12

3

4

32

命令[15-0]

メモリ・データ

レジスタ

拡張 左シフト3216ALU制御

命令[5-0]

32

1.命令フェッチステップ 1/2ズ プ 性 される ジ 必 な制御線を

予備

ミニクイズ1:このステップで活性化されるモジュールと必要な制御線を示せ

IorDMemReadMemWrite

RegWriteRegDstIRWrite

ALUSrcAMemtoReg

ALUSrcBALUOp

制御PC[31-28]

PCSourcePCWritePCWriteCond

アドレス 読出

MUM0 0

gW te

MUX命令[31-26]

2ビット左シフト

26 28

[31 28]

0

1

2ジャンプ先アドレス[31-0]

命令[25-0]

PC

メモリ

アドレス

データ

読出レジスタ1 A

ALUOutALU

ゼロ判定

X

MB

命令[25-21]

命令[20-16]

命令[15-0]

読出レジスタ2書込レジスタ

書込デ

読出データ1

読出データ2

MUX

MUX

0

1

1

01

1

命令[15-11]

X2アドレス[31-0]

ALU

書込みデータ

Out命令レジスタ

メモリ・

結果UXレジスタ

データ

MUX

符号拡張

2ビット左シフト

10

1

12

3

4

32

命令[15-0]

メモリ・データ

レジスタ

拡張 左シフト3216ALU制御

命令[5-0]

33

ズ プ 線 値 全 答

1.命令フェッチステップ2/2

RegDstIR = メモリ[PC]; PC=PC+4; (命令フェッチとPCの計算)

ミニクイズ2:このステップで、必要な制御線の値を全て答えよ。

RegDst

RegWrite 0ALUSrcA 0

MemRead 1

[ ]; ; (RegWrite

ALUSrcA

MemRead 1

MemWrite 0

MemtoReg

MemWrite

MemtoRegg

IorD 0

IRWrite 1Point: 書き込んでほしくないところは

g

IorD

IRWrite

PCWrite 1

PCWriteCond

ALUop 00

Point: 書き込んでほしくないところは必ず書き込み制御線を0にする

PCWrite

PCWriteCond

ALUopALUop 00

ALUSrcB 01

PCSource 00

ALUop

ALUSrcB

PCSource

34

お絵かきスペース

35

2.命令デコードとレジスタフェッチのステップ1/2ズ プ 性 される ジ 必 な制御線をミニクイズ3:このステップで活性化されるモジュールと必要な制御線を示せ

IorDMemReadMemWrite

RegWriteRegDstIRWrite

ALUSrcAMemtoReg

ALUSrcBALUOp

制御PC[31-28]

PCSourcePCWritePCWriteCond

アドレス 読出

MUM0 0

gW te

MUX命令[31-26]

2ビット左シフト

26 28

[31 28]

0

1

2ジャンプ先アドレス[31-0]

命令[25-0]

PC

メモリ

アドレス

データ

読出レジスタ1 A

ALUOutALU

ゼロ判定

X

MB

命令[25-21]

命令[20-16]

命令[15-0]

読出レジスタ2書込レジスタ

書込デ

読出データ1

読出データ2

MUX

MUX

0

1

1

01

1

命令[15-11]

X2アドレス[31-0]

ALU

書込みデータ

Out命令レジスタ

メモリ・

結果UXレジスタ

データ

MUX

符号拡張

2ビット左シフト

10

1

12

3

4

32

命令[15-0]

メモリ・データ

レジスタ

拡張 左シフト3216ALU制御

命令[5-0]

36

2.命令デコードとレジスタフェッチのステップ1/2ズ プ 性 される ジ 必 な制御線を

予備

ミニクイズ3:このステップで活性化されるモジュールと必要な制御線を示せ

IorDMemReadMemWrite

RegWriteRegDstIRWrite

ALUSrcAMemtoReg

ALUSrcBALUOp

制御PC[31-28]

PCSourcePCWritePCWriteCond

アドレス 読出

MUM0 0

gW te

MUX命令[31-26]

2ビット左シフト

26 28

[31 28]

0

1

2ジャンプ先アドレス[31-0]

命令[25-0]

PC

メモリ

アドレス

データ

読出レジスタ1 A

ALUOutALU

ゼロ判定

X

MB

命令[25-21]

命令[20-16]

命令[15-0]

読出レジスタ2書込レジスタ

書込デ

読出データ1

読出データ2

MUX

MUX

0

1

1

01

1

命令[15-11]

X2アドレス[31-0]

ALU

書込みデータ

Out命令レジスタ

メモリ・

結果UXレジスタ

データ

MUX

符号拡張

2ビット左シフト

10

1

12

3

4

32

命令[15-0]

メモリ・データ

レジスタ

拡張 左シフト3216ALU制御

命令[5-0]

37

2.命令デコードとレジスタフェッチのステップ2/2ズ プ 線 値 全 答

A=レジスタ[IR[25-21]]; B=レジスタ[IR[20-16]];

ミニクイズ4:このステップで、必要な制御線の値を全て答えよ。

RegDstRegDstレジスタ[ [ 5 ]]; レジスタ[ [ 0 6]];

(rs,rtフィールドの読込み)

ALUOut = PC+(符号拡張(IR[15-0] <<2));

RegWrite 0ALUSrcA 0

MemRead 0

RegWrite

ALUSrcA

MemRead ALUOut PC (符号拡張(IR[15 0] 2)); (分岐先の計算)

0

MemWrite 0

MemtoReg

MemWrite

MemtoRegもし、命令が分岐でないと分かったら単にALUOutの値は後で使わなければいい。

g

IorD

IRWrite 0

g

IorD

IRWrite

もし、レジスタBは必要なければ単に後でつかわなければいい

PCWrite 0

PCWriteCond 0

ALUop 00

PCWrite

PCWriteCond

ALUopALUop 00

ALUSrcB 11

PCSource

ALUop

ALUSrcB

PCSource

38

お絵かきスペース

39

3.実行、メモリアドレスの計算または分岐の完了ステップ1/10R形式命令 場合R形式命令の場合ミニクイズ7:このステップで活性化されるモジュールと必要な制御

線を示せ

IorDMemReadMemWrite

RegWriteALUSrcA

MemtoReg

ALUSrcBALUOp

制御PC

PCSourcePCWritePCWriteCond

MU0 0

RegDstIRWrite

MU

命令[31 26]

2ビット左シフト

26 28

C[31-28]

0

1ジャンプ先

命令[25-0]

PC

メモリ

アドレス

データ

読出レジスタ1 A

ALUALU

ゼロ判定

UX

MB

命令[25-21]

命令[20-16]

命令[15-0]

読出レジスタ2書込レジスタ

書込

読出データ1

読出デ タ2

MUX

MUX

0

0

1

0

0

1

命令[15 11]

X命令[31-26] 2ジャンプ先アドレス[31-0]

ALU

書込みデータ

Out命令レジスタ

ALU結果

MUX

B命 [ ]

レジスタ

書込データ

データ2X

MUX

符号 2ビット

10

1

12

3

4[15-11]

命令[15-0]

メモリ・データ

レジスタ

符号拡張

2ビット左シフト3216

ALU制御

命令[5-0]

40

3.実行、メモリアドレスの計算または分岐の完了ステップ1/10R形式命令 場合

予備

R形式命令の場合ミニクイズ7:このステップで活性化されるモジュールと必要な制御線を示せ

IorDMemReadMemWrite

RegWriteALUSrcA

MemtoReg

ALUSrcBALUOp

制御PC

PCSourcePCWritePCWriteCond

MU0 0

RegDstIRWrite

MU

命令[31 26]

2ビット左シフト

26 28

C[31-28]

0

1ジャンプ先

命令[25-0]

PC

メモリ

アドレス

データ

読出レジスタ1 A

ALUALU

ゼロ判定

UX

MB

命令[25-21]

命令[20-16]

命令[15-0]

読出レジスタ2書込レジスタ

書込

読出データ1

読出デ タ2

MUX

MUX

0

0

1

0

0

1

命令[15 11]

X命令[31-26] 2ジャンプ先アドレス[31-0]

ALU

書込みデータ

Out命令レジスタ

ALU結果

MUX

B命 [ ]

レジスタ

書込データ

データ2X

MUX

符号 2ビット

10

1

12

3

4[15-11]

命令[15-0]

メモリ・データ

レジスタ

符号拡張

2ビット左シフト3216

ALU制御

命令[5-0]

41

3.実行、メモリアドレスの計算または分岐の完了ステップ2/10ズ プ 線 値 全 答 R形式命令 場合

RegDst ALUOut = A 演算子 B;

ミニクイズ8:このステップで、必要な制御線の値を全て答えよ。 R形式命令の場合

RegDst

RegWrite 0ALUSrcA 1

MemRead 0

RegWrite

ALUSrcA

MemRead 0

MemWrite 0

MemtoReg

MemWrite

MemtoRegg

IorD

IRWrite 0

g

IorD

IRWrite

PCWrite 0

PCWriteCond 0

ALUop 10

PCWrite

PCWriteCond

ALUopALUop 10

ALUSrcB 00

PCSource

ALUop

ALUSrcB

PCSource

42

お絵かきスペース

43

3.実行、メモリアドレスの計算または分岐の完了ステップ3/10ズ プ 性 される ジ 必 な制御 メモリ参照の場合ミニクイズ5:このステップで活性化されるモジュールと必要な制御

線を示せ

IorDMemReadMemWrite

RegWriteRegDstIRWrite

ALUSrcAMemtoReg

ALUSrcBALUOp

制御PC[31 28]

PCSourcePCWritePCWriteCond

MUM0 0

RegDstIRWrite

MUX命令[31-26]

2ビット左シフト

26 28

[31-28]

0

1

2ジャンプ先アドレス[31 0]

命令[25-0]

PC

メモリ

アドレス

データ

読出レジスタ1 A

ALUOALU

ゼロ判定

UX

MB

命令[25-21]

命令[20-16]

命令[15-0]

読出レジスタ2書込レジスタ

書込

読出データ1

読出データ2

MUX

MUX

0

1

1

01

1

命令[15-11]

X[ ] 2アドレス[31-0]

ALU

書込みデータ

Out命令レジスタ

メモリ

ALU結果

MUX

Bレジスタ

書込データ

MUX

符号 2ビット左シ ト

10

1

12

3

4

命令[15-0]

メモリ・データ

レジスタ

拡張 左シフト3216ALU制御

命令[5-0]

44

3.実行、メモリアドレスの計算または分岐の完了ステップ3/10ズ プ 性 される ジ 必 な制御

予備

メモリ参照の場合ミニクイズ5:このステップで活性化されるモジュールと必要な制御線を示せ

IorDMemReadMemWrite

RegWriteRegDstIRWrite

ALUSrcAMemtoReg

ALUSrcBALUOp

制御PC[31 28]

PCSourcePCWritePCWriteCond

MUM0 0

RegDstIRWrite

MUX命令[31-26]

2ビット左シフト

26 28

[31-28]

0

1

2ジャンプ先アドレス[31 0]

命令[25-0]

PC

メモリ

アドレス

データ

読出レジスタ1 A

ALUOALU

ゼロ判定

UX

MB

命令[25-21]

命令[20-16]

命令[15-0]

読出レジスタ2書込レジスタ

書込

読出データ1

読出データ2

MUX

MUX

0

1

1

01

1

命令[15-11]

X[ ] 2アドレス[31-0]

ALU

書込みデータ

Out命令レジスタ

メモリ

ALU結果

MUX

Bレジスタ

書込データ

MUX

符号 2ビット左シ ト

10

1

12

3

4

命令[15-0]

メモリ・データ

レジスタ

拡張 左シフト3216ALU制御

命令[5-0]

45

3.実行、メモリアドレスの計算または分岐の完了ステップ4/10ズ プ 線 値 全 答

ALUOut = A+符号拡張(IR[15-0]);

ミニクイズ6:このステップで、必要な制御線の値を全て答えよ。メモリ参照の場合

RegDstRegDstALUOut A 符号拡張(IR[15 0]);

RegWrite 0ALUSrcA 1

MemRead 0

RegWrite

ALUSrcA

MemRead 0

MemWrite 0

MemtoReg

MemWrite

MemtoRegg

IorD

IRWrite 0

g

IorD

IRWrite

PCWrite 0

PCWriteCond 0

ALUop 00

PCWrite

PCWriteCond

ALUopALUop 00

ALUSrcB 10

PCSource

ALUop

ALUSrcB

PCSource

46

お絵かきスペース

47

3.実行、メモリアドレスの計算または分岐の完了ステップ5/10 分岐の場合

成 時ミニクイズ9:このステップで活性化されるモジュールと必要な制御線を示せ 成立の時

IorDMemReadMemWrite

RegWriteALUSrcA

MemtoReg

ALUSrcBALUOp

制御PC

PCSourcePCWritePCWriteCond

MU0 0

RegDstIRWrite

MU

命令[31 26]

2ビット左シフト

26 28

C[31-28]

0

1ジャンプ先

命令[25-0]

PC

メモリ

アドレス

データ

読出レジスタ1 A

ALUALU

ゼロ判定

UX

MB

命令[25-21]

命令[20-16]

命令[15-0]

読出レジスタ2書込レジスタ

書込

読出データ1

読出デ タ2

MUX

MUX

0

0

1

0

0

1

命令[15 11]

X命令[31-26] 2ジャンプ先アドレス[31-0]

ALU

書込みデータ

Out命令レジスタ

ALU結果

MUX

B命 [ ]

レジスタ

書込データ

データ2X

MUX

符号 2ビット

10

1

12

3

4[15-11]

命令[15-0]

メモリ・データ

レジスタ

符号拡張

2ビット左シフト3216

ALU制御

命令[5-0]

48

3.実行、メモリアドレスの計算または分岐の完了ステップ5/10 分岐の場合

成 時

予備

ミニクイズ9:このステップで活性化されるモジュールと必要な制御線を示せ 成立の時

IorDMemReadMemWrite

RegWriteALUSrcA

MemtoReg

ALUSrcBALUOp

制御PC

PCSourcePCWritePCWriteCond

MU0 0

RegDstIRWrite

MU

命令[31 26]

2ビット左シフト

26 28

C[31-28]

0

1ジャンプ先

命令[25-0]

PC

メモリ

アドレス

データ

読出レジスタ1 A

ALUALU

ゼロ判定

UX

MB

命令[25-21]

命令[20-16]

命令[15-0]

読出レジスタ2書込レジスタ

書込

読出データ1

読出デ タ2

MUX

MUX

0

0

1

0

0

1

命令[15 11]

X命令[31-26] 2ジャンプ先アドレス[31-0]

ALU

書込みデータ

Out命令レジスタ

ALU結果

MUX

B命 [ ]

レジスタ

書込データ

データ2X

MUX

符号 2ビット

10

1

12

3

4[15-11]

命令[15-0]

メモリ・データ

レジスタ

符号拡張

2ビット左シフト3216

ALU制御

命令[5-0]

49

3.実行、メモリアドレスの計算または分岐の完了ステップ6/10ズ プ 線 値 全 答 分岐 場合

if(A==B) PC=ALUOut;

ミニクイズ10:このステップで、必要な制御線の値を全て答えよ。 分岐の場合

RegDst 成立の時RegDstif(A B) PC ALUOut;

RegWrite 0ALUSrcA 1

MemRead 0

RegWrite

ALUSrcA

MemRead 0

MemWrite 0

MemtoReg

MemWrite

MemtoRegg

IorD

IRWrite 0

g

IorD

IRWrite

PCWrite 0

PCWriteCond 1

ALUop 01

PCWrite

PCWriteCond

ALUopALUop 01

ALUSrcB 00

PCSource 01

ALUop

ALUSrcB

PCSource

50

お絵かきスペース

51

3.実行、メモリアドレスの計算または分岐の完了ステップ7/10 分岐の場合

成 時ミニクイズ11:このステップで活性化されるモジュールと必要な制御線を示せ 不成立の時

IorDMemReadMemWrite

RegWriteALUSrcA

MemtoReg

ALUSrcBALUOp

制御PC

PCSourcePCWritePCWriteCond

MU0 0

RegDstIRWrite

MU

命令[31 26]

2ビット左シフト

26 28

C[31-28]

0

1ジャンプ先

命令[25-0]

PC

メモリ

アドレス

データ

読出レジスタ1 A

ALUALU

ゼロ判定

UX

MB

命令[25-21]

命令[20-16]

命令[15-0]

読出レジスタ2書込レジスタ

書込

読出データ1

読出デ タ2

MUX

MUX

0

0

1

0

0

1

命令[15 11]

X命令[31-26] 2ジャンプ先アドレス[31-0]

ALU

書込みデータ

Out命令レジスタ

ALU結果

MUX

B命 [ ]

レジスタ

書込データ

データ2X

MUX

符号 2ビット

10

1

12

3

4[15-11]

命令[15-0]

メモリ・データ

レジスタ

符号拡張

2ビット左シフト3216

ALU制御

命令[5-0]

52

3.実行、メモリアドレスの計算または分岐の完了ステップ7/10 分岐の場合

成 時

予備

ミニクイズ11:このステップで活性化されるモジュールと必要な制御線を示せ 不成立の時

IorDMemReadMemWrite

RegWriteALUSrcA

MemtoReg

ALUSrcBALUOp

制御PC

PCSourcePCWritePCWriteCond

MU0 0

RegDstIRWrite

MU

命令[31 26]

2ビット左シフト

26 28

C[31-28]

0

1ジャンプ先

命令[25-0]

PC

メモリ

アドレス

データ

読出レジスタ1 A

ALUALU

ゼロ判定

UX

MB

命令[25-21]

命令[20-16]

命令[15-0]

読出レジスタ2書込レジスタ

書込

読出データ1

読出デ タ2

MUX

MUX

0

0

1

0

0

1

命令[15 11]

X命令[31-26] 2ジャンプ先アドレス[31-0]

ALU

書込みデータ

Out命令レジスタ

ALU結果

MUX

B命 [ ]

レジスタ

書込データ

データ2X

MUX

符号 2ビット

10

1

12

3

4[15-11]

命令[15-0]

メモリ・データ

レジスタ

符号拡張

2ビット左シフト3216

ALU制御

命令[5-0]

53

3.実行、メモリアドレスの計算または分岐の完了ステップ8/10ズ プ 線 値 全 答 分岐 場合

if(A==B) PC=ALUOut;

ミニクイズ12:このステップで、必要な制御線の値を全て答えよ。 分岐の場合

RegDst 不成立の時RegDstif(A B) PC ALUOut;

RegWrite 0ALUSrcA 1

MemRead 0

RegWrite

ALUSrcA

MemRead 0

MemWrite 0

MemtoReg

成立の時と違うところはあるでしょうかMemWrite

MemtoRegg

IorD

IRWrite 0

g

IorD

IRWrite

PCWrite 0

PCWriteCond 1

ALUop 01

PCWrite

PCWriteCond

ALUopALUop 01

ALUSrcB 00

PCSource 01

ALUop

ALUSrcB

PCSource

54

お絵かきスペース

55

3.実行、メモリアドレスの計算または分岐の完了ステップ9/10ジ ンプの場合ジャンプの場合ミニクイズ13:このステップで活性化されるモジュールと必要な制御

線を示せ

IorDMemReadMemWrite

RegWriteALUSrcA

MemtoReg

ALUSrcBALUOp

制御PC

PCSourcePCWritePCWriteCond

MU0 0

RegDstIRWrite

MU

命令[31 26]

2ビット左シフト

26 28

C[31-28]

0

1ジャンプ先

命令[25-0]

PC

メモリ

アドレス

データ

読出レジスタ1 A

ALUALU

ゼロ判定

UX

MB

命令[25-21]

命令[20-16]

命令[15-0]

読出レジスタ2書込レジスタ

書込

読出データ1

読出デ タ2

MUX

MUX

0

0

1

0

0

1

命令[15 11]

X命令[31-26] 2ジャンプ先アドレス[31-0]

ALU

書込みデータ

Out命令レジスタ

ALU結果

MUX

B命 [ ]

レジスタ

書込データ

データ2X

MUX

符号 2ビット

10

1

12

3

4[15-11]

命令[15-0]

メモリ・データ

レジスタ

符号拡張

2ビット左シフト3216

ALU制御

命令[5-0]

56

3.実行、メモリアドレスの計算または分岐の完了ステップ9/10ジ ンプの場合

予備

ジャンプの場合ミニクイズ13:このステップで活性化されるモジュールと必要な制御線を示せ

IorDMemReadMemWrite

RegWriteALUSrcA

MemtoReg

ALUSrcBALUOp

制御PC

PCSourcePCWritePCWriteCond

MU0 0

RegDstIRWrite

MU

命令[31 26]

2ビット左シフト

26 28

C[31-28]

0

1ジャンプ先

命令[25-0]

PC

メモリ

アドレス

データ

読出レジスタ1 A

ALUALU

ゼロ判定

UX

MB

命令[25-21]

命令[20-16]

命令[15-0]

読出レジスタ2書込レジスタ

書込

読出データ1

読出デ タ2

MUX

MUX

0

0

1

0

0

1

命令[15 11]

X命令[31-26] 2ジャンプ先アドレス[31-0]

ALU

書込みデータ

Out命令レジスタ

ALU結果

MUX

B命 [ ]

レジスタ

書込データ

データ2X

MUX

符号 2ビット

10

1

12

3

4[15-11]

命令[15-0]

メモリ・データ

レジスタ

符号拡張

2ビット左シフト3216

ALU制御

命令[5-0]

57

3.実行、メモリアドレスの計算または分岐の完了ステップ10/10ズ プ 線 値 全 答 ジャンプの場合

C C[31 28] || ( [2 0] 2)

ミニクイズ14:このステップで、必要な制御線の値を全て答えよ。 ジャンプの場合

RegDstRegDst

PC=PC[31-28] || (IR[25-0]<<2); RegWrite 0ALUSrcA

MemRead 0

RegWrite

ALUSrcA

MemRead 0

MemWrite 0

MemtoReg

MemWrite

MemtoRegg

IorD

IRWrite 0

g

IorD

IRWrite

PCWrite 1

PCWriteCond

ALUop

PCWrite

PCWriteCond

ALUopALUop

ALUSrcB

PCSource 10

ALUop

ALUSrcB

PCSource

58

お絵かきスペース

59

4.メモリアクセス、またはR形式命令完了ステップ1/6R形式命令の場合

ミニクイズ19:このステップで活性化されるモジュールと必要な制御線を示せ

R形式命令の場合

IorDMemReadMemWrite

RegWriteALUSrcA

MemtoReg

ALUSrcBALUOp

制御PC

PCSourcePCWritePCWriteCond

MU0 0

RegDstIRWrite

MU

命令[31 26]

2ビット左シフト

26 28

C[31-28]

0

1ジャンプ先

命令[25-0]

PC

メモリ

アドレス

データ

読出レジスタ1 A

ALUALU

ゼロ判定

UX

MB

命令[25-21]

命令[20-16]

命令[15-0]

読出レジスタ2書込レジスタ

書込

読出データ1

読出デ タ2

MUX

MUX

0

0

1

0

0

1

命令[15 11]

X命令[31-26] 2ジャンプ先アドレス[31-0]

ALU

書込みデータ

Out命令レジスタ

ALU結果

MUX

B命 [ ]

レジスタ

書込データ

データ2X

MUX

符号 2ビット

10

1

12

3

4[15-11]

命令[15-0]

メモリ・データ

レジスタ

符号拡張

2ビット左シフト3216

ALU制御

命令[5-0]

60

4.メモリアクセス、またはR形式命令完了ステップ1/6R形式命令の場合

予備

ミニクイズ19:このステップで活性化されるモジュールと必要な制御線を示せ

R形式命令の場合

IorDMemReadMemWrite

RegWriteALUSrcA

MemtoReg

ALUSrcBALUOp

制御PC

PCSourcePCWritePCWriteCond

MU0 0

RegDstIRWrite

MU

命令[31 26]

2ビット左シフト

26 28

C[31-28]

0

1ジャンプ先

命令[25-0]

PC

メモリ

アドレス

データ

読出レジスタ1 A

ALUALU

ゼロ判定

UX

MB

命令[25-21]

命令[20-16]

命令[15-0]

読出レジスタ2書込レジスタ

書込

読出データ1

読出デ タ2

MUX

MUX

0

0

1

0

0

1

命令[15 11]

X命令[31-26] 2ジャンプ先アドレス[31-0]

ALU

書込みデータ

Out命令レジスタ

ALU結果

MUX

B命 [ ]

レジスタ

書込データ

データ2X

MUX

符号 2ビット

10

1

12

3

4[15-11]

命令[15-0]

メモリ・データ

レジスタ

符号拡張

2ビット左シフト3216

ALU制御

命令[5-0]

61

4.メモリアクセス、またはR形式命令完了ステップ2/6ズ プ 線 値 全 答

RegDst 1レジスタ[IR[15-11]]=ALUOut;

ミニクイズ20:このステップで、必要な制御線の値を全て答えよ。 R形式命令の場合

RegDst

RegWrite 1ALUSrcA

MemRead 0

レジスタ[IR[15 11]] ALUOut; RegWrite

ALUSrcA

MemRead 0

MemWrite 0

MemtoReg 0

MemWrite

MemtoRegg 0

IorD

IRWrite 0

g

IorD

IRWrite

PCWrite 0

PCWriteCond 0

ALUop

PCWrite

PCWriteCond

ALUopALUop

ALUSrcB

PCSource

ALUop

ALUSrcB

PCSource

62

お絵かきスペース

63

4.メモリアクセス、またはR形式命令完了ステップ3/6メモリ参照(ロ ド)の場合

ミニクイズ15:このステップで活性化されるモジュールと必要な制御線を示せ

メモリ参照(ロード)の場合

IorDMemReadMemWrite

RegWriteALUSrcA

MemtoReg

ALUSrcBALUOp

制御PC

PCSourcePCWritePCWriteCond

MU0 0

RegDstIRWrite

MU

命令[31 26]

2ビット左シフト

26 28

C[31-28]

0

1ジャンプ先

命令[25-0]

PC

メモリ

アドレス

データ

読出レジスタ1 A

ALUALU

ゼロ判定

UX

MB

命令[25-21]

命令[20-16]

命令[15-0]

読出レジスタ2書込レジスタ

書込

読出データ1

読出デ タ2

MUX

MUX

0

0

1

0

0

1

命令[15 11]

X命令[31-26] 2ジャンプ先アドレス[31-0]

ALU

書込みデータ

Out命令レジスタ

ALU結果

MUX

B命 [ ]

レジスタ

書込データ

データ2X

MUX

符号 2ビット

10

1

12

3

4[15-11]

命令[15-0]

メモリ・データ

レジスタ

符号拡張

2ビット左シフト3216

ALU制御

命令[5-0]

64

4.メモリアクセス、またはR形式命令完了ステップ3/6メモリ参照(ロ ド)の場合

予備

ミニクイズ15:このステップで活性化されるモジュールと必要な制御線を示せ

メモリ参照(ロード)の場合

IorDMemReadMemWrite

RegWriteALUSrcA

MemtoReg

ALUSrcBALUOp

制御PC

PCSourcePCWritePCWriteCond

MU0 0

RegDstIRWrite

MU

命令[31 26]

2ビット左シフト

26 28

C[31-28]

0

1ジャンプ先

命令[25-0]

PC

メモリ

アドレス

データ

読出レジスタ1 A

ALUALU

ゼロ判定

UX

MB

命令[25-21]

命令[20-16]

命令[15-0]

読出レジスタ2書込レジスタ

書込

読出データ1

読出デ タ2

MUX

MUX

0

0

1

0

0

1

命令[15 11]

X命令[31-26] 2ジャンプ先アドレス[31-0]

ALU

書込みデータ

Out命令レジスタ

ALU結果

MUX

B命 [ ]

レジスタ

書込データ

データ2X

MUX

符号 2ビット

10

1

12

3

4[15-11]

命令[15-0]

メモリ・データ

レジスタ

符号拡張

2ビット左シフト3216

ALU制御

命令[5-0]

65

4.メモリアクセス、またはR形式命令完了ステップ4/6ズ プ 線 値 全 答

RegDst

ミニクイズ16:このステップで、必要な制御線の値を全て答えよ。

メモリ参照(ロード)の場合RegDst

RegWrite 0ALUSrcA

MemRead 1

MDR = メモリ[ALUOut]; RegWrite

ALUSrcA

MemRead 1

MemWrite 0

MemtoReg

MemWrite

MemtoRegg

IorD 1

IRWrite 0Point: MDRは書き込み制御線なし

g

IorD

IRWrite

PCWrite 0

PCWriteCond 0

ALUop

Point: MDRは書き込み制御線なしPCWrite

PCWriteCond

ALUopALUop

ALUSrcB

PCSource

ALUop

ALUSrcB

PCSource

66

お絵かきスペース

67

4.メモリアクセス、またはR形式命令完了ステップ5/6メモリ参照(ストア)の場合

ミニクイズ17:このステップで活性化されるモジュールと必要な制御線を示せ

メモリ参照(ストア)の場合

IorDMemReadMemWrite

RegWriteALUSrcA

MemtoReg

ALUSrcBALUOp

制御PC

PCSourcePCWritePCWriteCond

MU0 0

RegDstIRWrite

MU

命令[31 26]

2ビット左シフト

26 28

C[31-28]

0

1ジャンプ先

命令[25-0]

PC

メモリ

アドレス

データ

読出レジスタ1 A

ALUALU

ゼロ判定

UX

MB

命令[25-21]

命令[20-16]

命令[15-0]

読出レジスタ2書込レジスタ

書込

読出データ1

読出デ タ2

MUX

MUX

0

0

1

0

0

1

命令[15 11]

X命令[31-26] 2ジャンプ先アドレス[31-0]

ALU

書込みデータ

Out命令レジスタ

ALU結果

MUX

B命 [ ]

レジスタ

書込データ

データ2X

MUX

符号 2ビット

10

1

12

3

4[15-11]

命令[15-0]

メモリ・データ

レジスタ

符号拡張

2ビット左シフト3216

ALU制御

命令[5-0]

68

4.メモリアクセス、またはR形式命令完了ステップ5/6メモリ参照(ストア)の場合

予備

ミニクイズ17:このステップで活性化されるモジュールと必要な制御線を示せ

メモリ参照(ストア)の場合

IorDMemReadMemWrite

RegWriteALUSrcA

MemtoReg

ALUSrcBALUOp

制御PC

PCSourcePCWritePCWriteCond

MU0 0

RegDstIRWrite

MU

命令[31 26]

2ビット左シフト

26 28

C[31-28]

0

1ジャンプ先

命令[25-0]

PC

メモリ

アドレス

データ

読出レジスタ1 A

ALUALU

ゼロ判定

UX

MB

命令[25-21]

命令[20-16]

命令[15-0]

読出レジスタ2書込レジスタ

書込

読出データ1

読出デ タ2

MUX

MUX

0

0

1

0

0

1

命令[15 11]

X命令[31-26] 2ジャンプ先アドレス[31-0]

ALU

書込みデータ

Out命令レジスタ

ALU結果

MUX

B命 [ ]

レジスタ

書込データ

データ2X

MUX

符号 2ビット

10

1

12

3

4[15-11]

命令[15-0]

メモリ・データ

レジスタ

符号拡張

2ビット左シフト3216

ALU制御

命令[5-0]

69

4.メモリアクセス、またはR形式命令完了ステップ6/6ズ プ 線 値 全 答

RegDst

メモリ[ALUOut]=B;

ミニクイズ18:このステップで、必要な制御線の値を全て答えよ。

メモリ参照(ストア)の場合RegDst

RegWrite 0ALUSrcA

MemRead 0

メモリ[ALUOut]=B; RegWrite

ALUSrcA

MemRead 0

MemWrite 1

MemtoReg

自己確認ポイント: ちなみに、レジスタBの値はここまでの各ステップでどのような値になるか分かっていますか?

MemWrite

MemtoRegg

IorD 1

IRWrite 0

*書き込み制御線を持たないレジスタは各ステップの最後=次のステップの最初で更新されます。

g

IorD

IRWrite

PCWrite 0

PCWriteCond 0

ALUop

PCWrite

PCWriteCond

ALUopALUop

ALUSrcB

PCSource

ALUop

ALUSrcB

PCSource

70

お絵かきスペース

71

ズ プ 性 される ジ 必 な制御線を

5.メモリ読出し完了ステップ1/2ミニクイズ21:このステップで活性化されるモジュールと必要な制御線を示せ

IorDMemReadMemWrite

RegWriteALUSrcA

MemtoReg

ALUSrcBALUOp

制御PC

PCSourcePCWritePCWriteCond

MU0 0

RegDstIRWrite

MU

命令[31 26]

2ビット左シフト

26 28

C[31-28]

0

1ジャンプ先

命令[25-0]

PC

メモリ

アドレス

データ

読出レジスタ1 A

ALUALU

ゼロ判定

UX

MB

命令[25-21]

命令[20-16]

命令[15-0]

読出レジスタ2書込レジスタ

書込

読出データ1

読出デ タ2

MUX

MUX

0

0

1

0

0

1

命令[15 11]

X命令[31-26] 2ジャンプ先アドレス[31-0]

ALU

書込みデータ

Out命令レジスタ

ALU結果

MUX

B命 [ ]

レジスタ

書込データ

データ2X

MUX

符号 2ビット

10

1

12

3

4[15-11]

命令[15-0]

メモリ・データ

レジスタ

符号拡張

2ビット左シフト3216

ALU制御

命令[5-0]

72

ズ プ 性 される ジ 必 な制御線を

5.メモリ読出し完了ステップ1/2 予備

ミニクイズ21:このステップで活性化されるモジュールと必要な制御線を示せ

IorDMemReadMemWrite

RegWriteALUSrcA

MemtoReg

ALUSrcBALUOp

制御PC

PCSourcePCWritePCWriteCond

MU0 0

RegDstIRWrite

MU

命令[31 26]

2ビット左シフト

26 28

C[31-28]

0

1ジャンプ先

命令[25-0]

PC

メモリ

アドレス

データ

読出レジスタ1 A

ALUALU

ゼロ判定

UX

MB

命令[25-21]

命令[20-16]

命令[15-0]

読出レジスタ2書込レジスタ

書込

読出データ1

読出デ タ2

MUX

MUX

0

0

1

0

0

1

命令[15 11]

X命令[31-26] 2ジャンプ先アドレス[31-0]

ALU

書込みデータ

Out命令レジスタ

ALU結果

MUX

B命 [ ]

レジスタ

書込データ

データ2X

MUX

符号 2ビット

10

1

12

3

4[15-11]

命令[15-0]

メモリ・データ

レジスタ

符号拡張

2ビット左シフト3216

ALU制御

命令[5-0]

73

5.メモリ読出し完了ステップ2/2ズ プ 線 値 全 答

RegDst 0

ミニクイズ22:このステップで、必要な制御線の値を全て答えよ。

レジスタ[IR[20 16]] MDR (ロ ド)RegDst

RegWrite 1ALUSrcA

MemRead 0

レジスタ[IR[20-16]]=MDR; (ロード)RegWrite

ALUSrcA

MemRead 0

MemWrite 0

MemtoReg 1

MemWrite

MemtoRegg 1

IorD

IRWrite 0

g

IorD

IRWrite

PCWrite 0

PCWriteCond 0

ALUop

PCWrite

PCWriteCond

ALUopALUop

ALUSrcB

PCSource

ALUop

ALUSrcB

PCSource

74

お絵かきスペース

75

What to learn • 単一クロックサイクルの問題点• マルチサイクルの概要、考え方、単一クロックサイクルとの違い概要、考 、 違• マルチサイクルの各サイクルの詳細

1. 命令フェッチ2 命令デコード+レジスタ・フェッチ2. 命令デコ ド+レジスタ フェッチ3. 実行、メモリ・アドレスの計算 or 分岐命令の完了4. メモリ・アクセス or R形式命令の完了5 メモリ読み出し完了5. メモリ読み出し完了

• 制御ユニットの詳細(有限状態機械による方法)*マイクロプログラミングによる方法は用語程度

例外の実現

Next Topic

• 例外の実現

教材

76• この内容は教科書にはありません(一つ前の版の教科書にはあります)

制御回路の設計

制御信号の真理値表を作成し それから制御回路を

単一サイクルの場合:制御信号の真理値表を作成し、それから制御回路を

組み合わせ回路として作成する

マルチサイクルの場合:各ステップ毎にデータパスを変更するので、単純な各 テッ 毎 デ タ を変更する 、単純な組み合わせ回路としては実現できない

今,どのステップにいるかを管理し、各ステップ毎に制御信号を整理する。

序 路 ク プ グ⇒ 順序回路 or マイクロプログラム

77

一般的な同期式順序回路順序回路

復習• 順序回路

– 同じ入力に対して出力が異なる

記憶を持つ回路 過去の入力や計算結果を記憶– 記憶を持つ回路、過去の入力や計算結果を記憶

– ループ(サイクル)を持つ回路

– クロックのタイミングで記憶を更新– クロックのタイミングで記憶を更新

1円5円

10円

現在の投入金額

S RQ FFがS,Rの値

を取り込む現在の投入金額を記憶

クロック

を取り込む

78clock

お絵かきスペース

79

順序回路による制御ユニットの構成

組み合わせ制御論理 データパス制御出力

出力出力

入力

次ステート

状態レジスタ命令レジスタの命令操作コード・

フィールドからの入力

フィ ルドからの入力

順序回路による制御ユニット組み合わせ論理回路と現ステ トを保持するレジスタから構成可能

80

組み合わせ論理回路と現ステートを保持するレジスタから構成可能

お絵かきスペース

81

有限状態機械による制御仕様の定義

開始有限状態機械の制御のOverview

順序回路の数学的モデル

開始有限 機械 御

命令フェッチとデコード及びレジスタのフェッチ

メモリアクセス R形式命令 分岐命令 ジャンプ命令命令

R形式命令 分岐命令 ジャンプ命令

最初のステップは命令タイプに依存しない。「開始」の矢印は、最初の命令がフェッチされたときの開始ステート

82

開始」の矢印は、最初の命令がフ ッチされたときの開始ステ ト

お絵かきスペース

83

再掲(復習)各命令の各ステップでの動作のまとめ

命令タイプ 命令フェッチ 命令デコードとレジスタフェッチ

実行、メモリアドレスの計算または分岐の完了

メモリアクセス、またはR形式命令完了 メモリ読出し完了

再掲(復習)

R形式IR = メモリ[PC];PC=PC+4;

A=レジスタ[IR[25-21]]; B=レジスタ[IR[20-16]]; ALUOut = PC+(符号拡張(IR[15-0] <<2));

ALUOut = A 演算子 B; レジスタ[IR[15-11]]=ALUOut;

語のロード Rと同じ Rと同じALUOut = A+符号拡張(IR[15-0]);

MDR = メモリ[ALUOut];

レジスタ[IR[20-16]]=MDR;

語のストア Rと同じ Rと同じ ロードと同じ メモリ[ALUOut]=B;語のストア Rと同じ Rと同じ ロ ドと同じ メモリ[ALUOut]=B;

分岐 Rと同じ Rと同じ if(A==B) PC=ALUOut;

ジャンプ Rと同じ Rと同じ PC=PC[31-28] || (IR[25-0]<<2);

84

各命令に共通な命令フェッチ及びデコード部分

命令デコード/

*全ての制御線が書いているわけではありません。

MemReadALUS A 0

命令フェッチ命令デレジスタのフェッチ

0 1 ALUSrcA=0IorD=0IRWrite

ALUSrcB=01ALUOP=00

PCW it

開始

0ALUSrcA=0ALUSrcB=11ALUOP=00

PCWritePCSource=00

メモリ参照FSM R形式FSM 分岐FSM ジャンプFSM

85これらの制御線の値は試験で聞かれるかも(ちなみにスライドのどこを見ればわかる?)

メモリ参照FSMとR形式FSM

ステート1から

2

ステート1から

メモリアドレスの計算

6ALUSrcA=1ALUSrcB=00ALUOP 10

実行

2ALUSrcA=1ALUSrcB=10ALUOP=00

ALUOP=10

R形式命令の完了35

メモリアクセス

メモリアクセス

(Op=‘SW’)

RegDst=1RegWrite

MemtoReg=0

7MemReadIorD=1

MemWriteIorD=1

ステ ト0RegWrite

4メモリ読出し完了ステップ

R形式FSM

ステート0へRegWriteMemtoReg=1

RegDst=0 ステート0へ

メモリ参照FSM

86

R形式FSMメモリ参照FSM

お絵かきスペース

87

分岐FSMとジャンプFSM

ステ ト1からステ ト1から ステート1から

9ジャンプの完了

ステート1から

8 分岐完了

PCWritePCSource=10

9ALUSrcA=1ALUSrcB=00ALUOp=01

PCWriteCondPCSource=01

8 分岐完了

ステート0へステート0へ ステ ト0へステ ト0へ

ジャンプFSM分岐FSM

88

データパスを制御する有限状態機械の全体図

MemReadALUSrcA=0

IorD=0IRWrite

ALUSrcB=01ALUOP=00

命令フェッチ 命令デコード/レジスタのフェッチ

開始0 1

ALUSrcA=0ALUSrcB=11ALUOP=00

ALUOP 00PCWrite

PCSource=00

2ALUSrcA=1ALUSrcB=10ALUOP=00

メモリアドレスの計算

6ALUSrcA=1ALUSrcB=00ALUOP=10

実行

PCWritePCSource=10

9ジャンプの完了

ALUSrcA=1ALUSrcB=00ALUOp=01

PCWriteCond

8 分岐完了

ALUOP 00

35メモリ

アクセス

メモリアクセス

(Op=‘SW’)

7R形式命令の完了

PCWriteCondPCSource=01

MemReadIorD=1

MemWriteIorD=1

RegDst=1RegWrite

MemtoReg=0

RegWriteMemtoReg=1

R D t 0

4メモリ読出し完了ステップ

89

RegDst=0

お絵かきスペース

90

別の実現方法:マイクロプログラミング用語と概要は覚えよう

マイクロ命令(マイクロコード)実行すべき命令のあるステートでのデータパスで実行するのに

用語と概要は覚えよう詳細はスキップ

実行す き命令のあるステ トでのデ タパスで実行するのに必要な一群の制御信号を生成する具体的には、

制御信号を サ トす か•どの制御信号をアサートするか•次にどのマイクロ命令を実行するか

などを指定などを指定

マイクロプログラミングマシン命令の制御をマイクロ命令で記述したプログラム通常ROMなどに格納される複雑な制御も容易に実現可能複雑な制御も容易に実現可能

91

イクロコ ド

マイクロコード制御ユニットの構成 発展

マイクロコード記憶

出力

データパス制御出力マイクロコード記憶にはPLAまたはROMが用いられる

出力

入力入力

順序制御1

マイクロプログラム・カウンタ

アドレス選択論理インクルメンタ

アドレス選択論理

命令操作コード・フィールドスライド80と対比して、概要のみ理解しよう図 5 7 4

92

命令操からの入力

概要のみ理解しよう図 5.7.4

お絵かきスペース

93

What to learn • 単一クロックサイクルの問題点• マルチサイクルの概要、考え方、単一クロックサイクルとの違い概要、考 、 違• マルチサイクルの各サイクルの詳細

1. 命令フェッチ2 命令デコード+レジスタ・フェッチ2. 命令デコ ド+レジスタ フェッチ3. 実行、メモリ・アドレスの計算 or 分岐命令の完了4. メモリ・アクセス or R形式命令の完了5 メモリ読み出し完了5. メモリ読み出し完了

• 制御ユニットの詳細(有限状態機械による方法)*マイクロプログラミングによる方法は用語程度

例外の実現• 例外の実現 Next Topic

教材

94• この内容は教科書にはありません(一つ前の版の教科書にはあります)

例外 教科書P356

例外(割り込み) プロセッサの中で生じる予期せぬ出来事

算術オーバーフロー、入出力装置からのリクエストなど

割り込み例外

例外と割り込みの定義は状況によるが、教科書では例外を考える

•算術オーバーフロー

以下の2つの例外を考える

•未定義命令のフェッチ

オ バ フロ とは何か?(覚えてますか?)オーバーフローとは何か?(覚えてますか?)- 演算結果が表現可能な値の上限を超える こと

c f アンダーフロー:表現可能な最小の値を下回る こと

95

c.f. アンダ フロ :表現可能な最小の値を下回る こと

お絵かきスペース

96

例外が起こった時の処理

• 例外プログラムカウンタ(EPC)<= (PC ー 4)

• PC <= 8000 0180

• Cause <= 0, if 未定義命令Cause <= 1, if算術オーバーフロー

例外は、算術オーバーフロー/未定義命令で発生どこで何が起きたを知る必要がある

↓↓例外プログラムカウンタ(EPC) : 問題が起きた命令アドレスを退避する。Causeレジスタ : 例外発生の理由を記録するレジスタ

(未定義命令なら0 算術オ バ フロ なら1)(未定義命令なら0,算術オーバーフローなら1)OSはCauseレジスタを見て例外要因を知り、それに応じた処理を行う

⇒ データパスに、例外用の制御信号を導入

97

デ タパスに、例外用の制御信号を導入

例外処理を加えたマルチサイクル方式における全データバス

CauseWriteIntCause

IorDMemReadMemWrite

RegWriteR D tIRW i

ALUSrcAMemtoReg

ALUSrcBALUOp

制御

PC

PCSourcePCWritePCWriteCond EPCWrite

CauseWrite

MUM0 0

RegDstIRWrite

MU命令[31-26]

2ビット左シフト

26 28

[31-28]

0

1ジャンプ先

命令[25-0]

PC

メモリ

アドレス

データ

読出レジスタ1 A

ALUALU

ゼロ判定

UX

MB

命令[25-21]

命令[20-16]

命令[15-0]

読出レジスタ2書込レジスタ

書込

読出データ1

読出データ2

MUX

MUX

0

0

1

0

1

命令[15-11]

UX

命令[31 26] 2アドレス[31-0]

38000 0180

ALU

書込みデータ

Out命令レジスタ

ALU結果

MUX

Bレジスタ

書込データ

デ タ2

MUX

符号 2ビット

10

1

12

3

4[15-11]

命令[15-0]EPC

メモリ・データ

レジスタ

拡張 左シフト3216ALU制御

命令[5-0]

CauseMUX

0

1

01

98

お絵かきスペース例外処理のために追加された部分はどこか?

99

データパスを制御する有限状態機械の全体図

MemReadALUSrcA=0

IorD=0IRWrite

ALUSrcB=01ALUOP=00

PCW it

命令フェッチ 命令デコード/レジスタのフェッチ

開始0 1

ALUSrcA=0ALUSrcB=11ALUOP=00

PCWritePCSource=00

2ALUSrcA=1ALUSrcB=10ALUOP=00

メモリアドレスの計算

6ALUSrcA=1ALUSrcB=00ALUOP=10

実行

PCWritePCSource=10

9 ジャンプの完了

ALUSrcA=1ALUSrcB=00ALUOp=01

PCWriteCond

8 分岐完了

35メモリ

アクセス

メモリアクセス

(Op=‘SW’)

7R形式命令の完了

PCSource=01

11 IntCause=1CauseWrite IntCause=010

MemReadIorD=1

MemWriteIorD=1

RegDst=1RegWrite

MemtoReg=0

ALUSrcA=0ALUSrcB=01ALUOP=01EPCWritePCWrite

PCSource=11

IntCause=0CauseWriteALUSrcA=0ALUSrcB=01ALUOP=01

PCWriteEPCWrite

PCSource=11

10

数値オーバーフロー

RegWriteMemtoReg=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

データパスを制御する有限状態機械の全体図

MemReadALUSrcA=0

IorD=0IRWrite

ALUSrcB=01ALUOP=00

命令フェッチ 命令デコード/レジスタのフェッチ

開始0 1

ALUSrcA=0ALUSrcB=11ALUOP=00

ALUOP 00PCWrite

PCSource=00

2ALUSrcA=1ALUSrcB=10ALUOP=00

メモリアドレスの計算

6ALUSrcA=1ALUSrcB=00ALUOP=10

実行

PCWritePCSource=10

9ジャンプの完了

ALUSrcA=1ALUSrcB=00ALUOp=01

PCWriteCond

8 分岐完了

ALUOP 00

35メモリ

アクセス

メモリアクセス

(Op=‘SW’)

7R形式命令の完了

PCWriteCondPCSource=01

MemReadIorD=1

MemWriteIorD=1

RegDst=1RegWrite

MemtoReg=0

RegWriteMemtoReg=1

R D t 0

4メモリ読出し完了ステップ

106

RegDst=0

お絵かきスペース

107

章末問題②

• 次ページの図は、MIPSのマルチサイクルでの実現のデータパスの制御を行う有限状態機械の状態遷移図である 図中の制御信号の値を全て答えよう有限状態機械の状態遷移図である。図中の制御信号の値を全て答えよ。(便宜上全ての制御線の値がほとんど書かれているが、問題としてはその値を聞いていると思ってください。)

• 同じ図において、以下の問いを答えよ。1. R形式の命令を実行してオーバーフローが起こった場合、開始からどの順番

に状態遷移するか?2 未定義の命令をフ チした場合はどうか?2. 未定義の命令をフェッチした場合はどうか?

108

データパスを制御する有限状態機械の全体図

MemReadALUSrcA=0

IorD=0IRWrite

ALUSrcB=01ALUOP=00

PCW it

命令フェッチ 命令デコード/レジスタのフェッチ

開始0 1

ALUSrcA=0ALUSrcB=11ALUOP=00

PCWritePCSource=00

ジャンプ

2ALUSrcA=1ALUSrcB=10ALUOP=00

メモリアドレスの計算

6ALUSrcA=1ALUSrcB=00ALUOP=10

実行

PCWritePCSource=10

9ジャンプの完了

ALUSrcA=1ALUSrcB=00ALUOp=01

PCWriteCond

8 分岐完了

35メモリ

アクセス

メモリアクセス

(Op=‘SW’)

7R形式命令の完了

PCSource=01

11 IntCause=1CauseWrite IntCause=010

MemReadIorD=1

MemWriteIorD=1

RegDst=1RegWrite

MemtoReg=0

ALUSrcA=0ALUSrcB=01ALUOP=01EPCWritePCWrite

PCSource=11

IntCause=0CauseWriteALUSrcA=0ALUSrcB=01ALUOP=01

PCWriteEPCWrite

PCSource=11

10

数値オーバーフロー

RegWriteMemtoReg=1

RegDst=0

4メモリ読出し完了ステップ

109

RegDst 0