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

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

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

  • 計算機構成論 (Chap 4) @C401計算機構成論 (Chap. 4) @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. 4のセルフチェック以下の文章の意味がわからないなら、今から,寝ないで聞いてみましょう。聞いてみましょう。

    27 パイプライン処理は流れ作業に良くたとえられる。

    28 パイプライン処理によりスループットは良くなるが、レイテンシは良くならない。

    29 MIPSのパイプライン ステ ジは 5 ある29 MIPSのパイプライン・ステージは、5つある。

    30 パイプラインのステージ間で情報を伝えるために、パイプライン・レジスタが必要。

    31 パイプライン方式の制御線の値は単一サイクルの時と基本的に同じである。

    32 パイプライン方式の制御線の値は必要があればパイプラインレジスタ経由で伝播する。イプライ 方式 制御線 値は必要があれば イプライ ジ タ経由で伝播する。

    1

  • What to learn • パイプラインの概要とマルチサイクルとの違い• パイプラインの各ステージの詳細

    Next Topicイプラインの各ステ ジの詳細

    1. IF ステージ (命令フェッチ)2. ID ステージ (命令デコードとレジスタフェッチ)2. ID ステ ジ (命令デコ ドとレジスタフェッチ)3. EXステージ (命令実行 or アドレス生成)4 MEMステージ(データ・メモリ・アクセス)4. MEMステ ジ(デ タ メモリ アクセス)5. WBステージ (書き込み)

    • パイプライン全体の動作(上記が同時並列的に動作)• パイプライン全体の動作(上記が同時並列的に動作)• パイプラインの制御

    各命令 実行を サイク 行う とを 複数各命令の実行をマルチサイクルで行うことを、複数の命令に対して1サイクルずらして同時並列実行

    教材 教科書4 5章と4 6章

    2

    教材:教科書4.5章と4.6章

  • マルチサイクルの考え方 Chap3の復習

    命令タイプ 命令メモリ レジスタ+α 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, 各サイクルの最後に、(次のサイクルで必要となるデータ)を覚えるためのレジスタが必要となる。(これが理解できれば、マルチサイクルが分かったことになる:後で確認してください )

    3

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

  • 命令実行過程のクロック・サイクルへの分割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]

  • お絵かきスペース

    5

  • マルチサイクル v.s. パイプライン命令タイプ 命令メモリ レジスタ読み込み ALU操作 データ・メモリ レジスタ書き込み 合計時間

    R形式 200 100 200 100 600形式

    語のロード 200 100 200 200 100 800

    語のストア 200 100 200 200 700

    分岐 200 100 200 500

    ジャンプ 200 200

    p305の例題の類題で以下の問題を考えます。今からの説明を聞いて、後で出てくる自己確認クイズに自分

    上の状況をマルチサイクル方式とパイプライン方式で実現した時の

    今からの説明を聞いて、後で出てくる自己確認クイズに自分で回答してください。

    違いについて述べよ。

    6

  • パイプライン処理の考え方①:ステージに分割

    命令タイプ 命令メモリ レジスタ読み込み ALU操作 データ・メモリ レジスタ書き込み 合計時間

    R形式 200 100 200 100 600形式

    語のロード 200 100 200 200 100 800

    語のストア 200 100 200 200 700

    分岐 200 100 200 500

    ジャンプ 200 200

    •MIPSの場合、仕事のステップは5つにわかれている•仕事のステップのことを、パイプライン処理の用語で、ステージ という。

    1. 命令メモリアクセス2. レジスタ読み込み3 ALUで演算3. ALUで演算4. データメモリアクセス5. レジスタ書き込み

    7

  • パイプライン処理の考え方②:仕事が多い時を考える(1/3)

    1. 命令メモリアクセス

    •仕事のステップのことを、パイプライン処理の用語で、ステージ という。

    • IF ステージ (命令フェッチ)2. レジスタ読み込み3. ALUで演算4. データメモリアクセス

    • ID ステージ (命令デコードとレジスタフェッチ)• EX ステージ (命令実行 or アドレス生成)• MEM ステージ(データ・メモリ・アクセス)リ

    5. レジスタ書き込み

    l 命令を1つ実行する時 5ステ ジ分の時間でできる(マルチサイクルだと)

    テ ジ(デ タ リ ク )• WB ステージ (書き込み)

    •lw命令を1つ実行する時、 5ステージ分の時間でできる(マルチサイクルだと)•lw命令を2つ実行する時、 10ステージ分の時間でできる(マルチサイクルだと)

    IF ID EX MEM WB IF ID EX MEM WB

    最初の命令 2番目の命令

    (Question) もっと早くできないか?

    8

    (Question) もっと早くできないか?

  • パイプライン処理の考え方②:仕事が多い時を考える(2/3)

    複数のステップ(ステージ)からなる仕事を複数個、連続して行う時、

    パイプライン処理

    各ステップ分ずらしながら、複数の仕事を同時並行的に行う処理

    最初の命令

    2番目の命令

    IF ID EX MEM WB

    IF ID EX MEM WB2番目の命令

    3番目の命令

    4番目の命令

    番 命令

    IF ID EX MEM WB

    IF ID EX MEM WB

    IF ID EX MEM WB

    5番目の命令

    IF ID EX MEM WB

    IF ID EX MEM WB

    • 1命令の処理には5サイクルを要するが、• 命令実行の結果は1サイクルごとに得られる

    9

    • 命令実行の結果は1サイクルごとに得られる

  • パイプライン処理の考え方②:仕事が多い時を考える(3/3)

    一つのタスク(今は一つの命令)の実行開始から完了までの時間

    レイテンシ

    一定時間内に処理できる仕事の量

    スループット

    最初の命令

    2番目の命令

    IF ID EX MEM WB

    IF ID EX MEM WB2番目の命令

    3番目の命令

    4番目の命令

    番 命令

    IF ID EX MEM WB

    IF ID EX MEM WB

    IF ID EX MEM WB

    5番目の命令

    IF ID EX MEM WB

    IF ID EX MEM WB

    パイプライン マルチサイクル

    • レイテンシは、5サイクルスル プ トは 1命令/サイクル

    パイプライン

    • レイテンシは、5サイクルスル プットは 0 2命令/サイクル

    マルチサイクル

    10

    • スループットは、1命令/サイクル • スループットは、0.2命令/サイクル

  • 自己確認クイズ1命令タイプ 命令メモリ レジスタ読み込み ALU操作 データ・メモリ レジスタ書き込み 合計時間

    R形式 200 100 200 100 600形式

    語のロード 200 100 200 200 100 800

    語のストア 200 100 200 200 700

    分岐 200 100 200 500

    ジャンプ 200 200

    上の状況をマルチサイクル方式とパイプライン方式で実現した時の違いについて述べよ。必ず、レイテンシとスループットという用語を用いること例えば、依存関係のないlw命令が10命令連続で続く場合を考えよ

    (注意)教科書は、単一サイクル方式とパイプラインの比較

    11

  • 自己確認クイズ1:回答の方針lw命令が10命令連続で続く場合•マルチサイクル方式

    総実行時間 1000 10 10000• 総実行時間 = 1000x10 = 10000 ps• レイテンシ = 1000 ps• スループット = 0 2 命令 / 200 ps• スル プット 0.2 命令 / 200 ps

    •パイプライン方式• 総実行時間 = 1000 + 200x9 = 2800psp• レイテンシ = 1000 ps• スループット = 1命令 /200ps

    非常に多くの命令がある場合 両者の実行時間の比は いくらに•非常に多くの命令がある場合、両者の実行時間の比は、いくらになるか? (スループットの比に等しい)

    1 0 0 0 1 1 51 1 11 0 0 0 2 0 05 5

    mm

    = → =+ +

    12

    5 5m

  • お絵かきスペース

    13

  • 単一クロック・サイクルのデータパスの5分割

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込

    読出reg1

    読出reg2

    ゼロ判定

    読出アドレス

    命令

    命令メモリ

    X

    結果reg

    書込データ

    reg2

    データメモリ

    書込データ

    読データ

    命令メモリ MUX

    MUX

    符号拡張

    3216

    図4 33

    14

    図4.33

  • ミニクイズ:もし、5クロックで行うなら、何を追加しないといけないか?マルチ サイクルの時マルチ・サイクルの時,

    何を追加したか思い出そう点線のところにレジスタ

    4加算

    加算

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込

    読出reg1

    読出reg2

    ゼロ判定

    読出アドレス

    命令

    命令メモリ

    X

    結果reg

    書込データ

    reg2

    データメモリ

    書込データ

    読データ

    命令メモリ MUX

    MUX

    符号拡張

    3216

    図4 33

    15

    図4.33

  • 単一クロック・サイクルのデータパスの5分割

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID ID/EX EX/MEM MEM/WB

    命令アドレスPC

    2ビット左にシフト

    MU

    レジスタ

    読出reg1

    ALUALU

    読出reg2書込

    読出reg1

    読出2

    ゼロ判定

    読出アドレス

    命令

    PC

    命令メモリ

    X

    結果reg

    書込データ

    reg2

    データメモリ

    書込データ

    読出データ

    アドレス命令メモリ M

    UX

    MUX

    符号拡張

    3216

    図4 35

    16

    図4.35

  • 命令実

    パイプライン方式のデータパス

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID ID/EX EX/MEM MEM/WB

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ

    X

    M 結果reg書込データ

    g

    データメモリ

    書込データ

    データ命令メモリ M

    UX

    MUX

    符号拡張

    3216

    図4.41

    17

    図4.41

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

    CauseWriteIntCause

    Chap3の再掲

    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

    18

  • ミニクイズ1

    •図4.35や図4.41を見たときに,マルチサイクルのデータパスの図と比べて,大きく違うところは何か?の図と比 て,大きく違うと ろは何か

    ・命令メモリ、データメモリ ⇒ 1つのメモリ

    復習:単一サイクルとマルチサイクルの違い(Chap3)

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

    19

  • 用語の確認

    •パイプライン・ステージ• IF ステージ (命令フェッチ)IF ステ ジ (命令フェッチ)• ID ステージ (命令デコードとレジスタフェッチ)• EX ステージ (命令実行 or アドレス生成)• MEM ステージ(データ・メモリ・アクセス)• WB ステージ (書き込み)

    •パイプライン・レジスタ• IF/ID レジスタIF/ID レジスタ• ID/EX レジスタ• EX/MEM レジスタ• MEM/WB レジスタ

    後は 各ステ ジの動作を確認していくだけです(楽勝?)

    20

    後は、各ステージの動作を確認していくだけです(楽勝?)

  • 自己確認クイズ2

    図4.35は、単一クロックのデータパス(図4.33)を5分割して、その分割の中間にレジスタを挿入している。しかし、それではパイプラインは正しくは動かないため、それを修正した次のペ ジのデ タパス(図4 41)でこれから勉強していきます ではページのデータパス(図4.41)でこれから勉強していきます。では、

    1. 図4.35ではうまく処理できない命令は何か?2 図4 35と図4 41の違いは何か?(修正点は何か?)2. 図4.35と図4.41の違いは何か?(修正点は何か?)

    (講義の後に解答を自分で考えてください。)

    21

  • お絵かきスペース

    22

  • What to learn • パイプラインの概要とマルチサイクルとの違い• パイプラインの各ステージの詳細 Next Topicイプラインの各ステ ジの詳細

    1. IF ステージ (命令フェッチ)2. ID ステージ (命令デコードとレジスタフェッチ)

    Next Topic

    2. ID ステ ジ (命令デコ ドとレジスタフェッチ)3. EXステージ (命令実行 or アドレス生成)4 MEMステージ(データ・メモリ・アクセス)4. MEMステ ジ(デ タ メモリ アクセス)5. WBステージ (書き込み)

    • パイプライン全体の動作(上記が同時並列的に動作)• パイプライン全体の動作(上記が同時並列的に動作)• パイプラインの制御

    各命令 実行を サイク 行う とを 複数

    教材 教科書4 5章と4 6章

    各命令の実行をマルチサイクルで行うことを、複数の命令に対して1サイクルずらして同時並列実行

    23

    教材:教科書4.5章と4.6章

  • 重要問題1

    メモリの番地10000からの内容が以下のようになっているとする.パイプライン方式で,クロックサイクル100で10000番地の命令フェッチを開始するとする.

    100011 0000000000001100010001000010000

    101011 00000000000011000101101001

    000000 10000 10001 01111 00000 100000000000 00000 100000

    000100 00000000000110011001010001

    000010 00000000000010011100010000

    れ 降を理解する は 内容 理解が必要

    注意!

    24

    これ以降を理解するには,Chap3の内容の理解が必要

  • 重要問題1

    10000番地の命令の実行のみに注目するとして(この問題では他の命令のことを考えない) クロ クサイクルが100 104の各他の命令のことを考えない),クロックサイクルが100~104の各時点で,命令の実行に論理的に関わっているモジュールと結線に色を塗り またその結線の値を答えよに色を塗り,またその結線の値を答えよ.

    クロックサイクル100の時点で,$8 から$12 の値は全て100$8 から$12 の値は全て100,$13 から$20 の値は全て200とする.

    なお,パイプラインレジスタについては,読みだす場合は右側,書き込む場合は左側だけを塗ること

    25

  • 重要問題1:clock = 100命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    26

  • 重要問題1:clock=100 (予備スライド)命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    27

  • 重要問題1:clock = 101命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    28

  • 重要問題1:clock=101 (予備スライド)命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    29

  • 重要問題1:clock = 102命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    30

  • 重要問題1:clock=102 (予備スライド)命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    31

  • 重要問題1:clock = 103命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    32

  • 重要問題1:clock=103 (予備スライド)命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    33

  • 重要問題1:clock = 104命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    34

  • 重要問題1:clock=104 (予備スライド)命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    35

  • お絵かきスペース

    36

  • 自己確認クイズ3

    重要問題1と同じ状況で、10004番地の命令の実行のみに注目するとして(この問題では他の命令のことを考えない),クロックサイクルが101 105の各時点で 命令の実行に論理的に関わイクルが101~105の各時点で,命令の実行に論理的に関わっているモジュールと結線に色を塗り,またその結線の値を答えよ.

    37

  • 自己確認クイズ3:clock = 101命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    38

  • 自己確認クイズ3:clock=101 (予備スライド)命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    39

  • 自己確認クイズ3:clock = 102命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID ID/EX EX/MEM MEM/WB

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    40

  • 自己確認クイズ3:clock=102 (予備スライド)命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    41

  • 自己確認クイズ3:clock = 103命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    42

  • 自己確認クイズ3:clock=103 (予備スライド)命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    43

  • 自己確認クイズ3:clock = 104命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    44

  • 自己確認クイズ3:clock=104 (予備スライド)命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    45

  • 自己確認クイズ3:clock = 105命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    46

  • 自己確認クイズ3:clock=105 (予備スライド)命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    47

  • お絵かきスペース

    48

  • 自己確認クイズ4重要問題1と同じ状況で、10008番地の命令の実行のみに注目するとして(この問題では他の命令のことを考えない),クロックサイクルが102 106の各時点で 命令の実行に論理的に関わイクルが102~106の各時点で,命令の実行に論理的に関わっているモジュールと結線に色を塗り,またその結線の値を答えよ.

    49

  • 自己確認クイズ4:clock = 102命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID ID/EX EX/MEM MEM/WB

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    50

  • 自己確認クイズ4:clock=102 (予備スライド)命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    51

  • 自己確認クイズ4:clock = 103命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    52

  • 自己確認クイズ4:clock=103 (予備スライド)命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    53

  • 自己確認クイズ4:clock = 104命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    54

  • 自己確認クイズ4:clock=104 (予備スライド)命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    55

  • 自己確認クイズ4:clock = 105命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    56

  • 自己確認クイズ4:clock=105 (予備スライド)命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    57

  • 自己確認クイズ4:clock = 106命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    58

  • 自己確認クイズ4:clock=106 (予備スライド)命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    59

  • What to learn • パイプラインの概要とマルチサイクルとの違い• パイプラインの各ステージの詳細イプラインの各ステ ジの詳細

    1. IF ステージ (命令フェッチ)2. ID ステージ (命令デコードとレジスタフェッチ)2. ID ステ ジ (命令デコ ドとレジスタフェッチ)3. EXステージ (命令実行 or アドレス生成)4 MEMステージ(データ・メモリ・アクセス)4. MEMステ ジ(デ タ メモリ アクセス)5. WBステージ (書き込み)

    • パイプライン全体の動作(上記が同時並列的に動作)• パイプライン全体の動作(上記が同時並列的に動作)• パイプラインの制御 Next Topic

    各命令 実行を サイク 行う とを 複数各命令の実行をマルチサイクルで行うことを、複数の命令に対して1サイクルずらして同時並列実行

    教材 教科書4 5章と4 6章

    60

    教材:教科書4.5章と4.6章

  • 重要問題2(これは少し難しいけど,類題が試験に出るかも)

    重要問題1と同じ状況で,クロックサイクル104の時の,パイプラインのデータパスの図のすべての結線において,論理的に意味がある値が伝搬され る結線全 値を意味がある値が伝搬されている結線全ての値を示せ.

    61

  • パイプラインの実行の全体像

    ポイント

    パイプライン実行の全体像は,実際には(最大)5命令の処理が同時並行的に行われている

    ポイント

    同時並行的に行われている.

    100 101 102 103 104 105

    最初の命令

    2番目の命令

    IF ID EX MEM WB

    IF ID EX MEM WB2番目の命令

    3番目の命令

    4番目の命令

    番 命令

    IF ID EX MEM WB

    IF ID EX MEM WB

    IF ID EX MEM WB

    5番目の命令

    IF ID EX MEM WB

    IF ID EX MEM WB

    62

  • お絵かきスペース

    63

  • 重要問題2回答用スライド:WB命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    64

  • 重要問題2回答用スライド:WB命令デ ド 命令実行

    予備

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    65

  • 重要問題2回答用スライド:MEM命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    66

  • 重要問題2回答用スライド:MEM命令デ ド 命令実行

    予備

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    67

  • 重要問題2回答用スライド:EX命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    68

  • 重要問題2回答用スライド:EX命令デ ド 命令実行

    予備

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    69

  • 重要問題2回答用スライド:ID命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    70

  • 重要問題2回答用スライド:ID命令デ ド 命令実行

    予備

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    71

  • 重要問題2回答用スライド:IF命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    72

  • 重要問題2回答用スライド:IF命令デ ド 命令実行

    予備

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    73

  • 重要問題2回答用スライド (全体の統合)命令デ ド 命令実行

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    74

  • 重要問題2回答用スライド命令デ ド 命令実行

    予備

    IF: 命令フェッチID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID EX/MEM MEM/WBID/EX

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    75

  • What to learn • パイプラインの概要とマルチサイクルとの違い• パイプラインの各ステージの詳細イプラインの各ステ ジの詳細

    1. IF ステージ (命令フェッチ)2. ID ステージ (命令デコードとレジスタフェッチ)2. ID ステ ジ (命令デコ ドとレジスタフェッチ)3. EXステージ (命令実行 or アドレス生成)4 MEMステージ(データ・メモリ・アクセス)4. MEMステ ジ(デ タ メモリ アクセス)5. WBステージ (書き込み)

    • パイプライン全体の動作(上記が同時並列的に動作)• パイプライン全体の動作(上記が同時並列的に動作)• パイプラインの制御 Next Topic

    各命令 実行を サイク 行う とを 複数各命令の実行をマルチサイクルで行うことを、複数の命令に対して1サイクルずらして同時並列実行

    教材 教科書4 5章と4 6章

    76

    教材:教科書4.5章と4.6章

  • まず,単一サイクルの時の制御の復習

    複数レベルによるデ ド法複数レベルによるデコード法主制御ユニットでopコードから大体の命令のグループを解読し、それから2ビットのALU op(2ビット)を生成+他の制読 、 p( )御信号を生成ALU制御ユニットでALU op(2ビット)とfunct(6ビット)から4ビットのALU制御信号を生成から4ビットのALU制御信号を生成

    77

  • 単一サイクルのデータパスと制御Chap2の再掲

    加算加算4

    2ビット加算

    MUX

    1

    0

    制御

    RegDstBranch

    MemRead

    ALUOMemtoReg命令[31-26]

    読出1

    読出1 ゼ 判定

    命令メモリ

    命令アドレス

    PC

    左にシフト

    命令[25-21]

    命令

    制御MemWriteALUOp

    ALUSrcRegWrite

    AND

    [ ]

    レジスタ

    reg1

    ALU ALU結果読出reg2書込reg

    reg1

    読出reg2

    ALU操作

    ゼロ判定

    デ タ

    読出データ

    アドレス MUMU

    命令[31-0]

    01

    命令[20-16]

    MUX

    01 書込

    データ 4ALU操作 データ

    メモリ書込データ

    3216

    XUX1

    0命令[15-11]

    命令

    X1

    符号拡張

    3216ALU制御

    命令[15-0]

    命令[5-0]

    図4 17

    78

    図4.17

  • ALU制御入力の構成(1/2) Chap2の再掲

    命令操作ド

    ALUOp 命令操作 機能コード 実行する演算ALU制御

    ドコードALUOp 命令操作 機能コ ド 実行する演算

    コード

    lw 00 load word XXXXXX add 0010

    sw 00 store word XXXXXX add 0010

    branch equal 01 branch equal XXXXXX subtract 0110

    R形式 10 add 100000 add 0010

    R形式 10 bt t 100010 bt t 0110R形式 10 subtract 100010 subtract 0110

    R形式 10 AND 100100 and 0000

    形式R形式 10 OR 100101 or 0001

    R形式 10set onless than

    101010set on less than

    0111

    79

    less than than

  • ALU制御入力の構成(2/2) Chap2の再掲ALUOp・機能コードによるALU制御入力の真理値表

    ALUOp 機能コード制御

    p 機能ALU制御入力(操作ビット)

    ALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0

    0 0 X X X X X X 0010

    X 1 X X X X X X 0110

    1 X X X 0 0 0 0 0010

    1 X X X 0 0 1 0 0110

    1 X X X 0 1 0 0 0000

    1 X X X 0 1 0 1 00011 X X X 0 1 0 1 0001

    1 X X X 1 0 1 0 0111

    真理値表ができれば回路の合成は可能

    80

    真理値表ができれば回路の合成は可能

  • 制御信号の詳細図4.16

    Chap2の再掲

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

    RegDst書込みレジスタのディスティネーションレジスタ番号がrt

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

    フィールド(ビット15:11)から得られる

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

    ALUSrcALUの第2オペランドが

    レジスタファイルの第2出力ALUの第2オペランドが命令の下位16ビット

    を符号拡張したものになる

    PCSrc PC+4を計算した加算器の値がPCに 分岐先を計算した加算器の値がPCに

    MemRead なし読出しアドレスで指定されたデータメモリ

    の内容がデータ出力へ

    MemWrite なし書込みアドレスで指定されたデータメモリへ

    データ入力の内容を書込む

    レジスタ書込みデ タ入力 レジスタ書込みデ タ入力 渡される値がMemtoReg

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

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

    Branch : beqの時1となる制御信号。

    ALUからのゼロ判定とBranchの論理積をPCSrcへ

    00:(load,store),01:beq10:機能コードfunctの演算(6ビット)

    ALU op(2ビット)

    81

    機能 ド 演算( ット)

  • 制御ユニットの仕上げ(完全な仕様) Chap2の再掲

    制御関数の真理値表(完全な仕様)

    ミニクイズ2

    図4.22

    R lw sw beq ミニクイズ2

    入力

    Op5 0 1 1 0

    各制御線はどのステージで使用されるか?

    Op4 0 0 0 0

    Op3 0 0 1 0入力

    ジで使用されるか?Op2 0 0 0 1Op1 0 1 1 0

    Op0 0 1 1 0

    RegDst 1 0 X X EXALUSrc 0 1 1 0 EXMemtoReg 0 1 X X WBRegWrite 1 1 0 0 WB

    出力 MemRead 0 1 0 0 MEMMemWrite 0 0 1 0 MEMBranch 0 0 0 1 MEMBranch 0 0 0 1 MEMALUOp1 1 0 0 0 EXALUOp0 0 0 0 1 EX

    82

  • お絵かきスペース

    83

  • パイプラインのデータパス with 制御信号

    4 加算 PCSrc

    2ビット左にシフト

    加算

    RegWrite0

    読出reg1読出

    読出reg1

    ゼロ判定

    命令アドレス

    命令

    PC

    シフト

    AND

    MUX1

    0

    MemWrite MemtoReg

    Branch

    ALUSrcレジスタ

    ALUALU結果

    reg2書込reg

    書込データ

    読出reg2

    データメモリ

    読出データ

    アドレス

    命令

    命令メモリ

    g

    4

    MUX1

    0

    ALUSrc

    MUX

    1

    書込データ

    3216

    MemRead

    4

    ALU操作ALU制御

    1

    6

    命令[15-0]

    0

    符号拡張

    図4.46 ALUOp

    MUX1

    0

    命令[15-11]

    命令[20-16]

    R D t

    84

    命令[ ] RegDst

  • パイプラインのデータパス with 制御信号 予備

    4 加算 PCSrc

    2ビット左にシフト

    加算

    RegWrite0

    読出reg1読出

    読出reg1

    ゼロ判定

    命令アドレス

    命令

    PC

    シフト

    AND

    MUX1

    0

    MemWrite MemtoReg

    Branch

    ALUSrcレジスタ

    ALUALU結果

    reg2書込reg

    書込データ

    読出reg2

    データメモリ

    読出データ

    アドレス

    命令

    命令メモリ

    g

    4

    MUX1

    0

    ALUSrc

    MUX

    1

    書込データ

    3216

    MemRead

    4

    ALU操作ALU制御

    1

    6

    命令[15-0]

    0

    符号拡張

    図4.46 ALUOp

    MUX1

    0

    命令[15-11]

    命令[20-16]

    R D t

    85

    命令[ ] RegDst

  • パイプライン方式の制御単一サイクルの時と制御の値は同じ

    単 サイクル 時 制御 値は チした命令から生成

    なお,PCとパイプライン・レジスタに書き込み制御はなし

    単一サイクルの時,制御の値はフェッチした命令から生成

    •パイプラインでは,IFステージでフェッチした命令から生成必要な制御の値はそれを使用するステ ジにパイプラインレジスタを通じて供給•必要な制御の値はそれを使用するステージにパイプラインレジスタを通じて供給

    IF/ID EX/MEM MEM/WBID/EX自己確認5:下図の各制御線の名前を答えよ.

    IF/IDWB WB WB

    制御

    MEM MEM MEM

    EX EX EX

    86

  • Chap. 4のセルフチェック以下の文章の意味がわからないなら、講義で寝ていた(笑)かもしれませんね。かもしれませんね。

    27 パイプライン処理は流れ作業に良くたとえられる。

    28 パイプライン処理によりスループットは良くなるが、レイテンシは良くならない。

    29 MIPSのパイプライン ステ ジは 5 ある29 MIPSのパイプライン・ステージは、5つある。

    30 パイプラインのステージ間で情報を伝えるために、パイプライン・レジスタが必要。

    31 パイプライン方式の制御線の値は単一サイクルの時と基本的に同じである。

    32 パイプライン方式の制御線の値は必要があればパイプラインレジスタ経由で伝播する。イプライ 方式 制御線 値は必要があれば イプライ ジ タ経由で伝播する。

    ちゃんと聞いていたのに,わからなければ質問しましょう!

    87

  • Chap. 4の試験に出るかもしれない用語集

    •パイプライン処理•IF ステージIF ステ ジ•ID ステージ•EXステージ•MEMステージ•WBステージパイプライン レジスタ•パイプライン・レジスタ

    •レイテンシ•スループットスル プット

    88

  • 試験勉強頑張ってください!

    • 重要問題1 2重要問題1、2• ミニクイズ全て

    自己確認クイズ全て(自分でやるのが基本)• 自己確認クイズ全て(自分でやるのが基本)• (用語もチェック:前のページ)

    89

  • 章末問題①

    重要問題1と同じ状況で、10012番地の命令の実行のみに注目するとして(この問題では他の命令のことを考えない),クロックサす ( 問題 他 命令 を考 な ),ク ックイクルが103~107の各時点で,命令の実行に論理的に関わっているモジュールと結線に色を塗り,またその結線の値を答えよ.

    90

  • 自習用

    命令デ ド 命令実行IF: 命令フェッチ

    ID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID ID/EX EX/MEM MEM/WB

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    91

  • 自習用

    命令デ ド 命令実行IF: 命令フェッチ

    ID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID ID/EX EX/MEM MEM/WB

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    92

  • 自習用

    命令デ ド 命令実行IF: 命令フェッチ

    ID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID ID/EX EX/MEM MEM/WB

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    93

  • 自習用

    命令デ ド 命令実行IF: 命令フェッチ

    ID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID ID/EX EX/MEM MEM/WB

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    94

  • 自習用

    命令デ ド 命令実行IF: 命令フェッチ

    ID: 命令デコード+レジスタ・フェッチ

    EX: 命令実行 orアドレス生成

    MEM: データ・メモリ・アクセス

    WB:レジスタ書き込み

    4加算

    加算IF/ID ID/EX EX/MEM MEM/WB

    読出 読出

    命令アドレスPC

    2ビット左にシフト

    MUX

    レジスタ

    読出reg1

    ALUALU結果

    読出reg2書込reg

    読出reg1

    読出reg2

    ゼロ判定

    読出デ タ

    アドレス

    命令

    命令メモリ M 結果reg書込データ

    データメモリ

    書込データ

    データ命令 M

    UX

    MUX

    符号拡張

    3216

    図4.41

    95