Microsoft PowerPoint - Chap4 [Compatibility Mode]

Similar documents
Microsoft PowerPoint - Chap3 [Compatibility Mode]

Microsoft PowerPoint - Chap2 [Compatibility Mode]

Microsoft PowerPoint - Chap5 [Compatibility Mode]

Microsoft PowerPoint - Sol7 [Compatibility Mode]

ソフトウェア基礎技術研修

6. パイプライン制御

スライド 1

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR

計算機アーキテクチャ

スライド 1

スライド 1

スライド 1

スライド 1

ソフトウェア基礎技術研修

スライド 1

この方法では, 複数のアドレスが同じインデックスに対応づけられる可能性があるため, キャッシュラインのコピーと書き戻しが交互に起きる性のミスが発生する可能性がある. これを回避するために考案されたのが, 連想メモリアクセスができる形キャッシュである. この方式は, キャッシュに余裕がある限り主記憶の

ex04_2012.ppt

< B8CDD8AB B83685D>

Microsoft PowerPoint - Lec ppt [互換モード]

Microsoft PowerPoint - Lec pptx

Microsoft PowerPoint - NxLecture ppt [互換モード]

計算機アーキテクチャ

ディジタル回路 第1回 ガイダンス、CMOSの基本回路

コンピュータ工学Ⅰ

Microsoft PowerPoint - NxLec ppt

コンピュータの仕組み(1)ハードウェア

コンピュータ工学Ⅰ

2ALU 以下はデータ幅 4ビットの ALU の例 加算, 減算,AND,OR の4つの演算を実行する 実際のプロセッサの ALU は, もっと多種類の演算が可能 リスト 7-2 ALU の VHDL 記述 M use IEEE.STD_LOGIC_1164.ALL; 00 : 加算 use IEE

MIPSのマイクロアーキテクチャ

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

ソフトウェア基礎技術研修

目次 1. はじめに 1 2. マルチALUプロセッサ MAP MAP の構成 MAP 命令セットアーキテクチャ 並列 連鎖判定のアルゴリズムについて 5 3. Booth 乗算のアルゴリズム 次 Booth アルゴリズム 次 Bo

スライド 1

Microsoft PowerPoint - 11Web.pptx

問 2. タイミングチャート以下に示す VHDL コードで記述されている回路に関するタイミングチャートを完成させよ ) レジスタの動作 use IEEE.std_logic_64.all; entity RegN is generic (N : integer := 8 port ( CLK, EN

授業のあとで 情報処理工学 : 第 3 回 10 進数を 16 進数に変換する方法と 16 進数を 10 進数に変換する方法は 標準的な方法でも良いですか? 履修申告は済みましたか? 割り算 方法 ) 54 余り 6 16 ) 3 余り 3 ) 0 第 4 回へ 201

Microsoft Word - 実験4_FPGA実験2_2015

計算機アーキテクチャ特論 後半第2回 アウトオブオーダー実行 Out-of-Order Execution

Microsoft PowerPoint - 01-VerilogSetup-2019.pptx

スライド 1

.,. 0. (MSB). =2, =1/2.,. MSB LSB, LSB MSB. MSB 0 LSB 0 0 P

Microsoft PowerPoint - NxLec ppt

出 アーキテクチャ 誰が 出 装置を制御するのか 1

Microsoft PowerPoint ppt

また RLF 命令は 図 2 示す様に RRF 命令とは逆に 各ビットを一つずつ 左方向に回転 ( ローテイト ) する命令である 8 ビット変数のアドレスを A とし C フラグに 0 を代入してから RLF A,1 を実行すると 変数の内容が 左に 1 ビットシフトし 最下位ビット (LSB)

Microsoft Word - HW06K doc

スライド 1

C に必要なコンピュータ知識 C はコンピュータの力を引き出せるように設計 コンピュータの知識が必要

COMET II のプログラミング ここでは機械語レベルプログラミングを学びます 1

Microsoft PowerPoint - 3.3タイミング制御.pptx

Microsoft PowerPoint ppt

情報処理演習 B8クラス

MIPSのマルチサイクル マイクロアーキテクチャ

VLSI工学

プログラミングA

PowerPoint プレゼンテーション

Microsoft PowerPoint - ProcML-12-3.ppt

JavaプログラミングⅠ

040402.ユニットテスト

Microsoft Word - 19-d代 試é¨fi 解ç�fl.docx

スライド 1

スライド 1

Microsoft PowerPoint - 7.Arithmetic.ppt

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

PowerPoint プレゼンテーション

命令セットの構成例 a) 算術 演算命令 例 )ADD dest, source : dest dest + source SUB dest, source : dest dest - source AND dest, source : dest dest AND source SHR reg, c

ターゲット項目の設定について

PowerPoint プレゼンテーション

スライド 1

MODBUS ユーザーズマニュアル 페이지 1 / 23

スライド 1

回路 7 レジスタ ( 同期イネーブル及び非同期リセット付 ) 入力データを保持するのに用いる記憶素子 使用用途として, マイクロプロセッサ内部で演算や実行状態の保持に用いられる Fig4-2 のレジスタは, クロック信号の立ち上がり時かつ 信号が 1 のときに外部からの 1 ビットデータ R をレ

Microsoft PowerPoint - NxLec ppt

PowerPoint プレゼンテーション

プログラミングA

C プログラミング 1( 再 ) 第 5 回 講義では C プログラミングの基本を学び演習では やや実践的なプログラミングを通して学ぶ

VelilogHDL 回路を「言語」で記述する

講義計画 1. コンピュータの歴史 1 2. コンピュータの歴史 2 3. コンピュータの歴史 3 4. 論理回路と記憶, 計算 : レジスタとALU 5. 主記憶装置とALU, レジスタの制御 6. 命令セットアーキテクチャ 7. 演習問題 8. パイプライン処理 9. メモリ階層 : キャッシュ

Microsoft PowerPoint - prog04.ppt

PowerPoint プレゼンテーション

スライド 1

1 はじめに このアプリケーションは 計算機ハードウェア論 のアセンブリ言語 ( 超簡単命令セット ) の理解を助けるために製作されました 便宜的に機能を追加 削除した箇所があるため このアプリケーション上での動き方が実際のCPUでの動き方と異なる場合があることに留意してください このアプリケーショ

目次 1 I2Cとは 13 結線写真 2 センサの多くがI2Cに対応 14 WHO_AM_I 3 マイコンでのI2C通信例 15 I2C読込みプログラム 4 とは 16 I2C読込みスクリプト概要① 5 タイミングパラメータ 17 I2C読込みスクリプト概要② 6 書込み 18 センサ読込みプログラ

講義「○○○○」

SULMS簡単操作マニュアル

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

ディジタル回路 第1回 ガイダンス、CMOSの基本回路

スライド 1

3 SIMPLE ver 3.2: SIMPLE (SIxteen-bit MicroProcessor for Laboratory Experiment) 1 16 SIMPLE SIMPLE 2 SIMPLE 2.1 SIMPLE (main memo

スライド 1

04-process_thread_2.ppt

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

はじめに Microsoft Forms( 以下フォーム ) は 九州産業大学の学生及び教職員が利用できる Office365 の機能の一つです アンケートやクイズ ( テスト ) を簡単な操作で作成することができます 作成したアンケートやクイズは マルチデバイスでの回答が可能で 回答は即時集計され

PowerPoint プレゼンテーション

プログラミング基礎


<4D F736F F F696E74202D C190DD B A CB48D65208E DC58F49205B8CDD8AB B83685D>

スライド 1

分析のステップ Step 1: Y( 目的変数 ) に対する値の順序を確認 Step 2: モデルのあてはめ を実行 適切なモデルの指定 Step 3: オプションを指定し オッズ比とその信頼区間を表示 以下 このステップに沿って JMP の操作をご説明します Step 1: Y( 目的変数 ) の

- VHDL 演習 ( 組み合せ論理回路 ) 回路 半加算器 (half adder,fig.-) 全加算器を構成する要素である半加算器を作成する i) リスト - のコードを理解してから, コンパイル, ダウンロードする ii) 実験基板上のスイッチ W, が, の入力,LED, が, の出力とな

Transcription:

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

Chap. のセルフチェック 以下の文章の意味がわからないなら 今から, 寝ないで聞いてみましょう 27 パイプライン処理は流れ作業に良くたとえられる 28 パイプライン処理によりスループットは良くなるが レイテンシは良くならない 29 IPSのパイプライン ステージは 5 つある 30 パイプラインのステージ間で情報を伝えるために パイプライン レジスタが必要 31 パイプライン方式の制御線の値は単一サイクルの時と基本的に同じである パイプライン方式の制御線の値は必要があればパイプラインレジスタ経由で伝播する 1

What to learn パイプラインの概要とマルチサイクルとの違い パイプラインの各ステージの詳細 1. IF ステージ ( 命令フェッチ ) Next Topic 2. ID ステージ ( 命令デコードとレジスタフェッチ ) 3. E ステージ ( 命令実行 or アドレス生成 ). Eステージ ( ) 5. WB ステージ ( 書き込み ) パイプライン全体の動作 ( 上記が同時並列的に動作 ) パイプラインの制御 各命令の実行をマルチサイクルで行うことを 複数の行う命令に対して1サイクルずらして同時並列実行 教材 : 教科書 5.5 章と6.6 章 2

マルチサイクルの考え方 Chap3 の復習 命令タイプ命令メモリレジスタ +α 操作データ メモリレジスタ +α 合計時間 R 形式 150 100 100 100 50 語のロード 150 100 100 150 100 600 語のストア 150 100 100 150 500 分岐 150 100 100 350 ジャンプ 150 150 New Idea クロックを150ps にしてもいいかも! 各サイクルで やメモリは一つでいい!( メリット 2) But, 各サイクルの最後に ( 次のサイクルで必要となるデータ ) を覚えるためのレジスタが必要となる ( これが理解できれば マルチサイクルが分かったことになる : 後で確認してください ) 3

命令実行過程のクロック サイクルへの分割 5 段のステップ ( 制御信号については省略 ) これは, マルチサイクルの復習 1. 命令フェッチステップ IR = メモリ []; =+; ( 命令フェッチとの計算 ) 2. 命令デコードとレジスタフェッチのステップ A= レジスタ [IR[25-21]]; B= レジスタ [IR[20-]]; (rs,rt フィールドの読込み ) Out = +( (IR[15-0] <<2)); ( 分岐先の計算 ) 3. 実行 メモリアドレスの計算または分岐の完了ステップ Out = A+ (IR[15-0]); ( メモリ参照の場合 ) Out = A 演算子 B; (R 形式命令の場合 ) if(a==b) =Out; ( 分岐 ) =[31-28] [31 (IR[25-0]<<2); 2); ( ジャンプ ). メモリアクセス またはR 形式命令完了ステップ DR = メモリ [Out]; ( ロードの場合 ) メモリ [Out]=B; ( ストアの場合 ) レジスタ [IR[15-11]]=Out; (R 形式命令の場合 ) 5. メモリし完了ステップレジスタ [IR[20-]]=DR; ( ロード )

お絵かきスペース 5

マルチサイクル v.s. パイプライン 命令タイプ命令メモリレジスタ読み込み 操作データ メモリ合計時間 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

パイプライン処理の考え方 1: ステージに分割 命令タイプ命令メモリレジスタ読み込み 操作データ メモリ合計時間 R 形式 200 100 200 100 600 語のロード 200 100 200 200 100 800 語のストア 200 100 200 200 700 分岐 200 100 200 500 ジャンプ 200 200 IPS の場合 仕事のステップは 5 つにわかれている 仕事のステップのことを パイプライン処理の用語で ステージという 1. 命令メモリアクセス 2. レジスタ読み込み 3. で演算. データメモリアクセス 5. 7

パイプライン処理の考え方 2: 仕事が多い時を考える (1/3) 仕事のステップのことを パイプライン処理の用語で ステージという 1. 命令メモリアクセス 2. レジスタ読み込み 3. で演算. データメモリアクセス 5. IF ステージ ( 命令フェッチ ) ID ステージ ( 命令デコードとレジスタフェッチ ) E ステージ ( 命令実行 or アドレス生成 ) E ステージ ( ) WB ステージ ( 書き込み ) lw 命令を 1 つ実行する時 5 ステージ分の時間でできる ( マルチサイクルだと ) lw 命令を2つ実行する時 10ステージ分の時間でできる ( マルチサイクルだと ) IF ID E E WB IF ID E E WB 最初の命令 2 番目の命令 (Question) もっと早くできないか? 8

パイプライン処理の考え方 2: 仕事が多い時を考える (2/3) パイプライン処理複数のステップ ( ステージ ) からなる仕事を複数個 連続して行う時 各ステップ分ずらしながら 複数の仕事を同時並行的に行う処理 最初の命令 2 番目の命令 3 番目の命令 番目の命令 5 番目の命令 : IF ID E E WB IF ID E E WB IF ID E E WB IF ID E E WB IF ID E E WB IF ID E E WB 1 命令の処理には 5 サイクルを要するが 命令実行のは 1 サイクルごとに得られる 9

パイプライン処理の考え方 2: 仕事が多い時を考える (3/3) レイテンシ一つのタスク ( 今は一つの命令 ) の実行開始から完了までの時間スループット一定時間内に処理できる仕事の量 最初の命令 2 番目の命令 3 番目の命令 番目の命令 5 番目の命令 : パイプライン IF ID E E WB IF ID E E WB IF ID E E WB IF ID E E WB IF ID E E WB IF ID E E WB マルチサイクル レイテンシは 5 サイクル スループットは 1 命令 / サイクル レイテンシは 5 サイクル スループットは 02 0.2 命令 / サイクル 10

自己確認クイズ 1 命令タイプ命令メモリレジスタ読み込み 操作データ メモリ合計時間 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 命令連続で続く場合 マルチサイクル方式 総実行時間 = 1000x10 = 10000 ps レイテンシ = 1000 ps スループット = 02 0.2 命令 / 200 ps パイプライン方式 総実行時間 = 1000 + 200x9 = 2800ps レイテンシ = 1000 ps スループット = 1 命令 /200ps 非常に多くの命令がある場合 両者の実行時間の比は いくらになるか? ( スループットの比に等しい ) 1000m 1 1 1000 + 200m = 1 1 1 = + m 5 5 5 12

お絵かきスペース 13

単一クロック サイクルのデータパスの 5 分割 IF: 命令フェッチ ID: 命令デコード + レジスタ フェッチ E: 命令実行 or アドレス生成 E: アドレスデータデータメモリ 図 33.33 1

ミニクイズ : もし 5 クロックで行うなら 何を追加しないといけないか? マルチ サイクルの時, 何を追加したか思い出そう 点線のところにレジスタ アドレスデータデータメモリ 図 33.33 15

単一クロック サイクルのデータパスの 5 分割 IF: 命令フェッチ ID: 命令デコード + レジスタ フェッチ E: 命令実行 or アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図 35.35

パイプライン方式のデータパス IF: 命令フェッチ ID: 命令デコード + レジスタ フェッチ E: 命令実行 or アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 17

例外処理を加えたマルチサイクル方式における全データバス Chap3 の再掲 WriteCond Write IorD emread emwrite emtoreg IRWrite 制御 IntCause CauseWrite EWrite Source Op SrcB SrcA RegWrite RegDst [31-28] 命令 [25-0] 0 命令 [31-26] 0 アドレス 1 メモリ 書込みデータ データ 命令 [25-21] 命令 [20-] 命令 [15-0] 命令レジスタ 命令 [15-0] メモリ データレジスタ 命令 [15-11] 0 1 0 1 レジスタ1 レジスタ2 データ 1 データ 2 レジスタ 2ビット左シフト 命令 [5-0] A B 1 0 1 2 3 26 28 2ビット左シフト 制御 ジャンプ先アドレス [31-0] 8000 0180 Out 0 1 0 1 0 1 2 3 E Cause 18

ミニクイズ 1 図.35や図.1を見たときに, マルチサイクルのデータパスの図と比べて, 大きく違うところは何か? 復習 : 単一サイクルとマルチサイクルの違い (Chap3) 命令メモリ データメモリ 1つのメモリ 1つのと2つの器 1つの 主要な機能ユニットの後ろに データ保持用のレジスタを追加 19

用語の確認 パイプライン ステージ IF ステージ ( 命令フェッチ ) ID ステージ ( 命令デコードとレジスタフェッチ ) E ステージ ( 命令実行 or アドレス生成 ) E ステージ ( ) WB ステージ ( 書き込み ) パイプライン レジスタ IF/ID レジスタ ID/E レジスタ E/E レジスタ E/WB レジスタ 後は 各ステージの動作を確認していくだけです ( 楽勝?) 20

自己確認クイズ 2 図.35は 単一クロックのデータパス ( 図.33) を5 分割して その分割の中間にレジスタを挿入している しかし それではパイプラインは正しくは動かないため それを修正した次のページのデータパス ( 図 1).1) でこれから勉強していきます では では 1. 図.35ではうまく処理できない命令は何か? 2. 図 35.35 と図 1.1 の違いは何か?( 修正点は何か?) ( 講義の後に解答を自分で考えてください ) 21

お絵かきスペース 22

What to learn パイプラインの概要とマルチサイクルとの違い パイプラインの各ステージの詳細 Next Topic 1. IF ステージ ( 命令フェッチ ) 2. ID ステージ ( 命令デコードとレジスタフェッチ ) 3. E ステージ ( 命令実行 or アドレス生成 ). Eステージ ( ) 5. WB ステージ ( 書き込み ) パイプライン全体の動作 ( 上記が同時並列的に動作 ) パイプラインの制御 各命令の実行をマルチサイクルで行うことを 複数の行う命令に対して1サイクルずらして同時並列実行 教材 : 教科書 5.5 章と6.6 章 23

重要問題 1 メモリの番地 10000 からの内容が以下のようになっているとする. パイプライン方式で, クロックサイクル 100 で 10000 番地の命令フェッチを開始するとする. 10000 100011 10000 01000 0000000000001100 注意! 101011 01001 01011 0000000000001100 000000 10000 10001 01111 00000 100000 000100 10001 10010 0000000000011001 000010 00000000000010011100010000 これ以降を理解するには,Chap3の内容の理解が必要 2

重要問題 1 10000 番地の命令の実行のみに注目するとして ( この問題では他の命令のことを考えない ), クロックサイクルがクサイクルが 100~1010 の各時点で, 命令の実行に論理的に関わっているモジュールと結線に色を塗り, またその結線の値を答えよ. クロックサイクル100の時点で, $8 から $12 の値は全て 100, $13 から $20 の値は全て200とする. なお, パイプラインレジスタについては, 読みだす場合は右側, 書き込む場合は左側だけを塗ること 25

重要問題 1:clock = 100 IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 26

重要問題 1:clock=100 ( 予備スライド ) IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 27

重要問題 1:clock = 101 IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 28

重要問題 1:clock=101 ( 予備スライド ) IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 29

重要問題 1:clock = 102 IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 30

重要問題 1:clock=102 ( 予備スライド ) IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 31

重要問題 1:clock = 103 IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1

重要問題 1:clock=103 ( 予備スライド ) IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 33

重要問題 1:clock = 10 IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 3

重要問題 1:clock=10 ( 予備スライド ) IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 35

お絵かきスペース 36

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

自己確認クイズ 3:clock = 101 IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 38

自己確認クイズ 3:clock=101 ( 予備スライド ) IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 39

自己確認クイズ 3:clock = 102 IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 0

自己確認クイズ 3:clock=102 ( 予備スライド ) IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 1

自己確認クイズ 3:clock = 103 IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 2

自己確認クイズ 3:clock=103 ( 予備スライド ) IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 3

自己確認クイズ 3:clock = 10 IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1

自己確認クイズ 3:clock=10 ( 予備スライド ) IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 5

自己確認クイズ 3:clock = 105 IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 6

自己確認クイズ 3:clock=105 ( 予備スライド ) IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 7

お絵かきスペース 8

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

自己確認クイズ :clock = 102 IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 50

自己確認クイズ :clock=102 ( 予備スライド ) IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 51

自己確認クイズ :clock = 103 IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 52

自己確認クイズ :clock=103 ( 予備スライド ) IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 53

自己確認クイズ :clock = 10 IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 5

自己確認クイズ :clock=10 ( 予備スライド ) IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 55

自己確認クイズ :clock = 105 IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 56

自己確認クイズ :clock=105 ( 予備スライド ) IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 57

自己確認クイズ :clock = 106 IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 58

自己確認クイズ :clock=106 ( 予備スライド ) IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 59

What to learn パイプラインの概要とマルチサイクルとの違い パイプラインの各ステージの詳細 1. IF ステージ ( 命令フェッチ ) 2. ID ステージ ( 命令デコードとレジスタフェッチ ) 3. E ステージ ( 命令実行 or アドレス生成 ). Eステージ ( ) 5. WB ステージ ( 書き込み ) パイプライン全体の動作 ( 上記が同時並列的に動作 ) パイプラインの制御 Next Topic 各命令の実行をマルチサイクルで行うことを 複数の行う命令に対して1サイクルずらして同時並列実行 教材 : 教科書 5.5 章と6.6 章 60

重要問題 2( これは少し難しいけど, 類題が試験に出るかも ) 重要問題 1と同じ状況で, クロックサイクル10の時の, パイプラインのデータパスの図のすべての結線において, 論理的に意味がある値が伝搬されている結線全ての値を示せる結線全値を. 61

パイプラインの実行の全体像ポイントパイプライン実行の全体像は, 実際には ( 最大 )5 命令の処理が同時並行的に行われている. 100 101 102 103 10 105 最初の命令 2 番目の命令 3 番目の命令 番目の命令 5 番目の命令 : IF ID E E WB IF ID E E WB IF ID E E WB IF ID E E WB IF ID E E WB IF ID E E WB 62

お絵かきスペース 63

重要問題 2 回答用スライド :WB IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 6

IF: 命令フェッチ 重要問題 2 回答用スライド :WB ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: 予備 IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 65

重要問題 2 回答用スライド :E IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 66

IF: 命令フェッチ 重要問題 2 回答用スライド :E ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: 予備 IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 67

重要問題 2 回答用スライド :E IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 68

IF: 命令フェッチ 重要問題 2 回答用スライド :E ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: 予備 IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 69

重要問題 2 回答用スライド :ID IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 70

IF: 命令フェッチ 重要問題 2 回答用スライド :ID ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: 予備 IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 71

重要問題 2 回答用スライド :IF IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 72

IF: 命令フェッチ 重要問題 2 回答用スライド :IF ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: 予備 IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 73

重要問題 2 回答用スライド ( 全体の統合 ) IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 7

IF: 命令フェッチ 重要問題 2 回答用スライド ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: 予備 IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 75

What to learn パイプラインの概要とマルチサイクルとの違い パイプラインの各ステージの詳細 1. IF ステージ ( 命令フェッチ ) 2. ID ステージ ( 命令デコードとレジスタフェッチ ) 3. E ステージ ( 命令実行 or アドレス生成 ). Eステージ ( ) 5. WB ステージ ( 書き込み ) パイプライン全体の動作 ( 上記が同時並列的に動作 ) パイプラインの制御 Next Topic 各命令の実行をマルチサイクルで行うことを 複数の行う命令に対して1サイクルずらして同時並列実行 教材 : 教科書 5.5 章と6.6 章 76

まず, 単一サイクルの時の制御の復習 複数レベルによるデコード法 主制御ユニットでopコードから大体の命令のグループを解読し それから 2ビットの op(2 ビット ) を生成 + 他の制御信号を生成 制御ユニットで op(2ビット ) とfunct(6ビット ) から ビットの 制御信号を生成 77

単一サイクルのデータパスと制御 Chap2 の再掲 命令メモリ 命令アドレス 命令 [31-0] 命令 [31-26] 命令 [25-21] 制御 RegDst Branch emread emtoreg Op emwrite Src RegWrite 2ビット左にシフト 0 1 AND 命令 [20-] レジスタ 書込アドレス 0 0 1 操作 命令 [15-11] 1 データメモリ データ 1 0 命令 [15-0] 制御 図 17.17 命令 [5-0] 78

制御入力の構成 (1/2) Chap2 の再掲 命令操作コード Op 命令操作機能コード実行する演算 制御コード lw 00 load word add 0010 sw 00 store word add 0010 branch equal 01 branch equal subtract 0110 R 形式 10 add 100000 add 0010 R 形式 10 subtract t 100010 subtract t 0110 R 形式 10 AND 100100 and 0000 R 形式 10 OR 100101 or 0001 R 形式 10 set on less than 101010 set on less than 0111 79

制御入力の構成 (2/2) Op 機能コードによる 制御入力の真理値表 Chap2 の再掲 Op 機能コード Op1 Op0 F5 F F3 F2 F1 F0 制御入力 ( 操作ビット ) 0 0 0010 1 0110 1 0 0 0 0 0010 1 0 0 1 0 0110 1 0 1 0 0 0000 1 0 1 0 1 0001 1 1 0 1 0 0111 真理値表ができれば回路の合成は可能 80

図. 制御信号の詳細 Chap2 の再掲 信号名ネゲートされたときの働きアサートされたときの働き RegDst 書込みレジスタのディスティネーションレジスタ番号が rt フィールド ( ビット 20:) から得られる 書込みレジスタのディスティネーションレジスタ番号が rd フィールド ( ビット 15:11) から得られる RegWrite なしレジスタにデータが書き込まれる Src の第 2 オペランドがレジスタファイルの第 2 出力 の第 2 オペランドが命令の下位 ビットをしたものになる Src + を計算した器の値が に分岐先を計算した器の値が に emread emwrite emtoreg なし なし しアドレスで指定されたデータメモリの内容がデータ出力へ 書込みアドレスで指定されたデータメモリへデータ入力の内容を書込む レジスタ書込みデータ入力へタ入力 レジスタ書込みデータ入力へ渡される値がタ入力 渡される値がから得られる データメモリから得られる Branch : beq の時 1 となる制御信号 からのと Branch の論理積を Src へ op(2 ビット ) 00:(load,store), 01:beq 10: 機能コード functの演算 (6 ビット ) 81

制御ユニットの仕上げ ( 完全な仕様 ) Chap2の再掲 制御関数の真理値表 ( 完全な仕様 ) 入力 図.22 R lw sw beq ミニクイズ 2 Op5 0 1 1 0 Op 0 0 0 0 Op3 0 0 1 0 Op2 0 0 0 1 Op1 0 1 1 0 各制御線はどのステージで使用されるか? Op0 0 1 1 0 RegDst 1 0 E Src 0 1 1 0 E emtoreg 0 1 WB RegWrite 1 1 0 0 WB 出力 emread 0 1 0 0 E emwrite 0 0 1 0 E Branch 0 0 0 1 E Op1 1 0 0 0 E Op0 0 0 0 1 E 82

お絵かきスペース 83

パイプラインのデータパス with 制御信号 Src 0 1 図.6 RegWrite 命令 [15-0] 命令 [20-] 6 2ビット左にシフト Src 0 0 1 制御 操作 Op Branch AND アドレス emwrite データメモリ データ emread emtoreg 1 0 命令 [15-11] 1 RegDst 8

パイプラインのデータパス with 制御信号 予備 Src 0 1 図.6 RegWrite 命令 [15-0] 命令 [20-] 6 2ビット左にシフト Src 0 0 1 制御 操作 Op Branch AND アドレス emwrite データメモリ データ emread emtoreg 1 0 命令 [15-11] 1 RegDst 85

パイプライン方式の制御 単一サイクルの時と制御の値は同じなお,とパイプライン レジスタに書き込み制御はなし単一サイクルの時, 制御の値はフェッチした命令から生成 パイプラインでは,IFステージでフェッチした命令から生成 必要な制御の値はそれを使用するステージにパイプラインレジスタを通じて供給 自己確認 5: 下図の各制御線の名前を答えよ. IF/ID ID/E E/E E/WB WB WB WB 制御 E E E E E E 86

Chap. のセルフチェック 以下の文章の意味がわからないなら 講義で寝ていた ( 笑 ) かもしれませんね 27 パイプライン処理は流れ作業に良くたとえられる 28 パイプライン処理によりスループットは良くなるが レイテンシは良くならない 29 IPSのパイプライン ステージは 5 つある 30 パイプラインのステージ間で情報を伝えるために パイプライン レジスタが必要 31 パイプライン方式の制御線の値は単一サイクルの時と基本的に同じである パイプライン方式の制御線の値は必要があればパイプラインレジスタ経由で伝播する ちゃんと聞いていたのに, わからなければ質問しましょう! 87

Chap. の試験に出るかもしれない用語集 パイプライン処理 IF ステージ ID ステージ Eステージ Eステージ WBステージ パイプライン レジスタ レイテンシ スループット 88

試験勉強頑張ってください! 重要問題 1 2 ミニクイズ全て 自己確認クイズ全て ( 自分でやるのが基本 ) ( 用語もチェック : 前のページ ) 89

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

自習用 IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 91

自習用 IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 92

自習用 IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 93

自習用 IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 9

自習用 IF: 命令フェッチ ID: 命令デコード + E: 命令実行 or レジスタ フェッチ アドレス生成 E: IF/ID ID/E E/E E/WB アドレスデータデータメモリ 図.1 95