Microsoft PowerPoint - Chap3 [Compatibility Mode]

Similar documents
Microsoft PowerPoint - Chap4 [Compatibility Mode]

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

Microsoft PowerPoint - Chap2 [Compatibility Mode]

Microsoft PowerPoint - Chap5 [Compatibility Mode]

Microsoft PowerPoint - Sol7 [Compatibility Mode]

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

スライド 1

スライド 1

計算機アーキテクチャ

スライド 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

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

6. パイプライン制御

< B8CDD8AB B83685D>

計算機アーキテクチャ

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

コンピュータ工学Ⅰ

コンピュータ工学Ⅰ

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

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

ex04_2012.ppt

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

Microsoft PowerPoint - kougi7.ppt

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

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

Microsoft Word - HW06K doc

Microsoft PowerPoint - 11Web.pptx

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

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

Microsoft PowerPoint - LogicCircuits09note.ppt [互換モード]

PowerPoint プレゼンテーション

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

Microsoft PowerPoint - 01-VerilogSetup-2019.pptx

VLSI工学

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

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

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

スライド 1

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

スライド 1

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

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

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

スライド 1

Microsoft PowerPoint - Lec pptx

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

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

Microsoft PowerPoint ppt

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

Microsoft PowerPoint - NxLec ppt

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

Microsoft PowerPoint - LogicCircuits11note.ppt [互換モード]

PowerPoint プレゼンテーション

MW100 Modbusプロトコルによるデータ通信の設定について

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

Microsoft Word - 実験4_FPGA実験2_2015

Microsoft PowerPoint - ProcML-12-3.ppt

Microsoft PowerPoint ppt

スライド 1

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

Microsoft Word - マイコン実験 doc

PowerPoint プレゼンテーション

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

プログラミングA

例 e 指数関数的に減衰する信号を h( a < + a a すると, それらのラプラス変換は, H ( ) { e } e インパルス応答が h( a < ( ただし a >, U( ) { } となるシステムにステップ信号 ( y( のラプラス変換 Y () は, Y ( ) H ( ) X (

JavaプログラミングⅠ

Microsoft PowerPoint ppt

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

Microsoft PowerPoint - 集積回路工学_ ppt[読み取り専用]

Microsoft PowerPoint - ar10_08.ppt

PowerPoint プレゼンテーション

Microsoft PowerPoint - 7.Arithmetic.ppt

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

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

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

スライド 1

スライド 1

情報工学Ⅰ-02

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

4 分岐処理と繰返し処理 ( 教科書 P.32) プログラムの基本的処理は三つある. (1) 順次処理 : 上から下に順番に処理する ぶんきそろ (2) 分岐処理 : 条件が揃えば, 処理する はんぷく (3) 反復処理 : 条件が揃うまで処理を繰り返す 全てのプログラムは (1) から (3) の

プログラミングA

JAIST Reposi Title RTL とゲートレベルを混在させた最適な論理回路設計に 関する研究 Author(s) 張, 之飛 Citation Issue Date Type Thesis or Dissertation Text ver

スライド 1

Microsoft PowerPoint - No7note.ppt

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

PowerPoint プレゼンテーション

OS

<4D F736F F F696E74202D FEE95F18F88979D8B5A8F702E B93C782DD8EE682E890EA97705D205B8CDD8AB B83685D>

kantan_C_1_iro3.indd

SOPC Builder ペリフェラル 簡易ユーザ・ガイド - PIO (Parallel I/O)

スライド 1

プログラミング基礎

PIC の書き込み解説 PICライターを使うときに間違った使い方を見受ける 書き込み失敗の原因は知識不足にある やってはいけないことをしている 単に失敗だけならまだしも部品を壊してしまう 正しい知識を身に着けよう 書き込みに必要なピンと意味 ICSPを意識した回路設計の必要性 ICSP:In Cir

プログラミング実習I

Microsoft PowerPoint - NxLec ppt

JavaプログラミングⅠ

PowerPoint プレゼンテーション

Transcription:

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

Chap. 3 のセルフチェック 以下の文章の意味がわからないなら 今から, 寝ないで聞いてみましょう 9 単一クロックサイクル方式では によって実行に本質的に必要な時間が異なる 2 単一クロック サイクル方式では性能があまりでない 2 マルチサイクル方式は単一サイクル方式に比べてサイクル方式に比べて2 つの利点がある 22 マルチサイクル方式では 情報を一時的に保持するレジスタが必要となる 23 マルチサイクル方式では 5サイクルかけて各を実行する 24 マルチサイクル方式では 制御回路を組み合わせ回路で実現できない 25 マイクロプログラミングという用語を知っている 26 プロセッサに関する用語として 例外 割り込みという用語を知っている

What to learn 単一クロックサイクルの問題点 Next Topic マルチサイクルの概要 考え方 単一クロックサイクルとの違い マルチサイクルの各サイクルの詳細. フェッチ 2. デコード +レジスタ フェッチ 3. 実行 メモリ アドレスの計算 or 分岐の完了 4. メモリ アクセス or R 形式の完了 5. メモリ読み出し完了 制御ユニットの詳細 ( 有限状態機械による方法 ) * マイクロプログラミングによる方法は用語程度 例外の実現 教材 この内容は教科書にはありません ( 一つ前の版の教科書にはあります ) 2

重要問題 以下の 2 つの方式について どちらが速いかを検討せよ ) 全てのが固定長の クロックサイクルで実現する 2) それぞれのが可変長のクロックを使用し を クロックサイクルで動作を実現する方式について クサイクルで動作を実現する方式に ただし メモリユニット 2ps と加算器 ps レジスタファイル ( 読出し / 書込み ) 5ps それ以外では遅延なしとする (* 次ページの表の値は, 後ほどの例とは違っていることに注意 ) また, ミックスはロード25%, ストア%, R 形式 45%, 分岐 5%, ジャンプ5% である 3

性能の計算方法 : 自力でできるように! 答 ) それぞれのが使用する機能ユニットとそのクリティカルパスの実行時間 タイプメモリレジスタ 操作データ メモリレジスタ合計時間 R 形式 2 5 5 4 語のロード 2 5 2 5 6 語のストア 2 5 2 55 分岐 2 5 35 ジャンプ 2 2 ) の場合 タイプの中で時間を最も要するクロックサイクルタイムが CPUクロックサイクルタイム=6ps 2) の場合 クロックサイクルタイムが変動するので その平均をとることにより CPU クロックサイクルタイムが求まる 平均 CPUクロックサイクルタイム = 6x.25 + 55x. + 4x.45 + 35x.5 + 2x.5 = 447.5ps 性能比 =6/447.5=.34 4

エッジトリガクロック方式 復習 エッジトリガクロック方式 : クロック信号のエッジのみで状態更新を行う方式同一クロックサイクルで 読み出し 書込みを両方行える 状態更新 clock ( 立ち上がり動作で 状態更新を行うとした場合 ) 状態論理要素書き込み読み出し組み合わせ論理回路 クロックの立ち上がりで更新 ( 立下りのシステムもあり ) ( それ以外では値を更新しない ) 5

お絵かきスペース 6

単一 ( クロック ) サイクルの問題点 によって 必要な処理時間が大幅に異なる ( 浮動小数点演算などの複雑なはもっと時間がかかる ) かといって 可変長のクロックは現実的には設計が非常に困難 その解決として マルチサイクルを用いた実現があります その詳細をこれから勉強していきます 7

What to learn 単一クロックサイクルの問題点 マルチサイクルの概要 考え方 単一クロックサイクルとの違い マルチサイクルの各サイクルの詳細. フェッチ Next Topic 2. デコード+レジスタ フェッチ 3. 実行 メモリ アドレスの計算 or 分岐の完了 4. メモリ アクセス or R 形式の完了 5. メモリ読み出し完了 制御ユニットの詳細 ( 有限状態機械による方法 ) * マイクロプログラミングによる方法は用語程度 例外の実現 教材 この内容は教科書にはありません ( 一つ前の版の教科書にはあります ) 8

お絵かきスペース 9

マルチサイクルの考え方 /2 タイプメモリレジスタ +α 操作データ メモリレジスタ +α 合計時間 R 形式 5 45 語のロード 5 5 6 語のストア 5 5 5 分岐 5 35 ジャンプ 5 5 単一クロックサイクルでは クロックサイクルを 6ps にするしか方法がない New Idea クロックを 5ps にしてもいいかも! ロードは 5 サイクル =75ps, ジャンプは サイクル =5ps 可変長ではないが それに近い効果!( メリット ) 注意 : 先の例と数値が違いますが別の例と思ってください

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

重要なポイント 実行過程のクロック サイクルへの分割 このスライドはまとめスライドです 後で見て理解できれば OK 各クロックサイクルにおける作業量のバランスをとり クロックサイクル時間を最小にする クロックサイクルには 次のクサイクルには 3 種類の ) メモリアクセス 2) レジスタアクセス 3) 操作のうちの操作を高々 回しかしないものとして データパスを設計する 保存先 : PC, レジスタ ファイル, メモリ 一時レジスタ :A, B, MDR( メモリ データ レジスタ ), out, ( 書き込み制御付き ) レジスタ (instruction register): IR *IR のみ複数クロック保持されるので書き込み制御つき ( 他は クロック分データを覚えるのみ ) 2

実行過程のクロック サイクルへの分割 5 段のステップ ( 制御信号については省略 ) まとめ : 理解していれば問題なし. フェッチステップ IR = メモリ [PC]; PC=PC+4; ( フェッチとPCの計算 ) 2. デコードとレジスタフェッチのステップ A= レジスタ [IR[25-2]]; B= レジスタ [IR[2-6]]; (rs,rtフィールドの読込み) Out = PC+( 符号拡張 (IR[5-][ ] <<2)); ( 分岐先の計算 ) 3. 実行 メモリアドレスの計算または分岐の完了ステップ Out = A+ 符号拡張 (IR[5-]); ( メモリ参照の場合 ) Out = A 演算子 B; ;(R 形式の場合 ) if(a==b) PC=Out; ( 分岐 ) PC=PC[3-28] (IR[25-]<<2); ( ジャンプ ) 4. メモリアクセス または R 形式完了ステップ MDR = メモリ [Out]; ( ロードの場合 ) メモリ [Out]=B; ( ストアの場合 ) レジスタ [IR[5-]]=Out; ]] (R 形式の場合 ) 5. メモリ読出し完了ステップレジスタ [IR[2-6]]=MDR; ( ロード ) 3

各の各ステップでの動作のまとめ タイプ フェッチ デコードとレジスタフェッチ 実行 メモリアドレスの計算または分岐の完了 メモリアクセス または R 形式完了 メモリ読出し完了 R 形式 IR = メモリ [PC]; PC=PC+4; A= レジスタ [IR[25-2]]; B= レジスタ [IR[2-6]]; Out = PC+ ( 符号拡張 (IR[5-] <<2)); Out = A 演算子 B; レジスタ [IR[5-]] =Out; 語のロード R と同じ R と同じ Out = A+ 符号拡張 (IR[5-]); MDR = メモリ [Out]; レジスタ [IR[2-6]] =MDR; 語のストア R と同じ R と同じロードと同じメモリ [Out]=B; 分岐 R と同じ R と同じ if(a==b) PC=Out; ジャンプ R と同じ R と同じ PC=PC[3-28] (IR[25-]<<2); * 前ページの書きなおしです! 前のページを見ながら 自分で表を作れますよね? また それぞれの動作の意味も確認してください ( 自己確認クイズ : 空欄をうめよ ) 4

お絵かきスペース 5

一番時間がかるは何か? 2 5 つのステップのうち を使うステップは? お絵かきスペース 6

図 4.24 単一クロックサイクルのデータパス 復習 PC 4 加算 アドレス メモリ [3-] [25-] 2ビットジャンプ先アドレス [3- ] 左に 26 シフト 28 PC+4 [3-28] [3-26] [25-2] [2-6] M U X [5-] 制御 RegDst Jump Branch MemRead MemtoReg Op MemWrite Src RegWrite 2 ビット左にシフト 加算 M AND 読出読出 reg reg ゼロ判定読出 reg2 レジスタ 結果書込読出 reg reg2 アドレス M U 操作書込データデータ X 4 メモリ 書込データ M 読出データ M U X [5-] 6 符号拡張 32 制御 [5-] 7

マルチサイクル データパスの全体像 最後にもう一度確認してください クロックサイクルには ) メモリアクセス 2) レジスタアクセス 3) 操作のうち つの操作しかしないものとして データパスを設計する PC アドレスメモリデータ またはデータ レジスタ メモリ データレジスタ データ レジスタ番号 レジスタ番号レジスタ番号 レジスタ A B Out 単一サイクルデータパスとの差異 前のページと比較せよ 何が共有化されたか? 2 何が追加されたか? メモリ データメモリ つのメモリ つのと2つの加算器 つの 主要な機能ユニットの後ろに データ保持用のレジスタを追加 8

基本的を扱う MIPS 用のマルチサイクルデータパス PC M X アドレス メモリデータ 書込みデータ [25-2] 2] 読出レジスタ 読出 読出 データ [2-6] レジスタ2 [5-] レジスタ [5-] [5-] M M 書込レジスタ 書込データ 読出データ 2 レジスタ A B 4 2 3 M M ゼロ判定 結果 Out メモリ データレジスタ 6 符号拡張 32 2 ビット左シフト いくつかの機能ユニットが異なる目的のために共有される 既存のマルチプレクサの拡張 追加 例 ) 入力部分に マルチプレクサを用意し, 異なる目的に対応 9

基本的を扱う MIPS 用のマルチサイクルデータパス 追加されたレジスタ. レジスタ (IR: instruction register) フェッチしたを保存 2. メモリ データレジスタ (MDR: memory data register) メモリから読み出したデータを保存 3. A レジスタ B レジスタ 4. Out レジスタ レジスタファイルから読み出したレジスタ オペランドを保存 からの出力を保存 IR 以外は 次のクロックサイクルまで保存したらいい IRは複数サイクル保存しないといけないので これのみ書き込み制御線を持つ * 全ての制御線の勉強が終わったあとで確認すること 2

お絵かきスペース 2

マルチサイクル方式の全データバスと必要な制御線 PCWriteCond PCWrite IorD MemRead MemWrite MemtoReg IRWrite 制御 PCSource Op SrcB SrcA RegWrite RegDst PC [3-28] PC M アドレス メモリ 書込みデータ データ [3-26] [25-2] [2-6] [5-] レジスタ [5-] メモリ データレジスタ [5-] M M 6 [25-] 読出レジスタ 読出レジスタ2 書込レジスタ書込 データ 符号拡張 32 読出データ 読出データ 2 レジスタ 2ビット左シフト [5-] A B 4 M U X M U 2 X 3 26 28 2ビット左シフト ゼロ判定 結果 制御 ジャンプ先アドレス [3-] Out 2 M X 22

ミニクイズ 前のページの M( それぞれ ) の, 入力数と出力数は? 2- M の制御入力は, ビット 3- M の制御入力は,2 ビット 4- M の制御入力は,2 ビット 23

マルチサイクル方式の制御部分 IorD PCWriteCond PCWrite MemRead MemWrite MemtoReg IRWrite ゼロ判定 制御 PCSource Op SrcB SrcA RegWrite RegDst 24

マルチ サイクル : 各制御信号の働き II ビット制御信号 信号名ネゲートされたときの働きアサートされたときの働き RegDst 書込みレジスタのディスティネーションレジスタ番号が rt フィールド ( ビット 2-6) から得られる 書込みレジスタのディスティネーションレジスタ番号が rd フィールド ( ビット 5-) から得られる RegWrite なしレジスタにデータが書き込まれる SrcA の第 オペランドは PC の第 オペランドが A レジスタから得られる MemRead MemWrite MemtoReg IorD なし なし レジスタ書込みデータ入力へタ入力渡される値がOut から得られる メモリユニットへのアドレス指定に PC が使われる 読出しアドレスで指定されたデータメモリの内容がデータ出力へ 書込みアドレスで指定されたデータメモリへデータ入力の内容を書込む レジスタ書込みデータ入力へ渡される値がタ入力 MDRから得られる メモリユニットへのアドレス指定に Out が使われる IRWrite なし メモリからの出力が IR に書き込まれる PCWrite なし PCへ書き込むデータはPCSourceにより制御される PCWriteCond なし のゼロ判定出力もアサート時にPCに書込む 25

各制御信号の働き III 2 ビット制御信号 信号名値働き は加算を行う Op は減算を行う SrcB PCSource の機能コード フィールドにより の操作が決まる の第 2 入力が B レジスタから得られる の第 2 入力は定数の 4 の第 2 入力はIRの下位 6ビットを符号拡張したもの の第 2 入力は IR の下位 6 ビットを符号拡張して 2 ビットへ左シフトしたもの の出力 (PC+4) を PC への書込み用に送る Out の出力 ( 分岐先アドレス ) を PC への書込み用に送る ジャンプ先アドレス (IR[25-] を2 ビット左シフト PC+4[3-28] と連結 ) を PCへの書込み用に送る 26

お絵かきスペース 27

自己確認クイズ. マルチサイクルが単一サイクルに比べてよい点を 2 つ挙げよ 可変長サイクルに近い効果を得られる. ハードウェアが減る. 2. 単一サイクルに比べて マルチサイクルで追加されるハードウェアモジュールは? A, A B, MDR, Out,IR ( あと M) 3. 上記の中で 書き込み制御線のあるレジスタは何か? IR 4. 単一サイクルに比べて マルチサイクルで減ったハードウェアモジュールは? メモリ, 自分でまとめてください 28

お絵かきスペース 29

What to learn 単一クロックサイクルの問題点 マルチサイクルの概要 考え方 単一クロックサイクルとの違い マルチサイクルの各サイクルの詳細. フェッチ Next Topic 2. デコード+レジスタ フェッチ 3. 実行 メモリ アドレスの計算 or 分岐の完了 4. メモリ アクセス or R 形式の完了 5. メモリ読み出し完了 制御ユニットの詳細 ( 有限状態機械による方法 ) * マイクロプログラミングによる方法は用語程度 例外の実現 教材 この内容は教科書にはありません ( 一つ前の版の教科書にはあります ) 3

実行過程のクロック サイクルへの分割 5 段のステップ ( 制御信号については省略 ). フェッチステップ IR = メモリ [PC]; PC=PC+4; ( フェッチとPCの計算 ) 2. デコードとレジスタフェッチのステップ A= レジスタ [IR[25-2]]; B= レジスタ [IR[2-6]]; (rs,rtフィールドの読込み) Out = PC+( 符号拡張 (IR[5-][ ] <<2)); ( 分岐先の計算 ) 3. 実行 メモリアドレスの計算または分岐の完了ステップ Out = A+ 符号拡張 (IR[5-]); ( メモリ参照の場合 ) Out = A 演算子 B; ;(R 形式の場合 ) if(a==b) PC=Out; ( 分岐 ) PC=PC[3-28] (IR[25-]<<2); ( ジャンプ ) 4. メモリアクセス または R 形式完了ステップ MDR = メモリ [Out]; ( ロードの場合 ) メモリ [Out]=B; ( ストアの場合 ) レジスタ [IR[5-]]=Out; ]] (R 形式の場合 ) 5. メモリ読出し完了ステップレジスタ [IR[2-6]]=MDR; ( ロード ) 再掲 3

. フェッチステップ /2 ミニクイズ : このステップで活性化されるモジュールと必要な制御線を示せ PCWriteCond PCWrite IorD MemRead MemWrite MemtoReg IRWrite 制御 PCSource Op SrcB SrcA RegWrite RegDst PC [3-28] PC M アドレス メモリ 書込みデータ データ [3-26] [25-2] [2-6] [5-] レジスタ [5-] メモリ データレジスタ [5-] M M 6 [25-] 読出レジスタ 読出レジスタ2 書込レジスタ書込 データ 符号拡張 32 読出データ 読出データ 2 レジスタ 2ビット左シフト [5-] A B 4 M U X M U 2 X 3 26 28 2ビット左シフト ゼロ判定 結果 制御 ジャンプ先アドレス [3-] Out 2 M X 32

. フェッチステップ /2 ミニクイズ : このステップで活性化されるモジュールと必要な制御線を示せ 予備 PCWriteCond PCWrite IorD MemRead MemWrite MemtoReg IRWrite 制御 PCSource Op SrcB SrcA RegWrite RegDst PC [3-28] PC M アドレス メモリ 書込みデータ データ [3-26] [25-2] [2-6] [5-] レジスタ [5-] メモリ データレジスタ [5-] M M 6 [25-] 読出レジスタ 読出レジスタ2 書込レジスタ書込 データ 符号拡張 32 読出データ 読出データ 2 レジスタ 2ビット左シフト [5-] A B 4 M U X M U 2 X 3 26 28 2ビット左シフト ゼロ判定 結果 制御 ジャンプ先アドレス [3-] Out 2 M X 33

. フェッチステップ 2/2 ミニクイズ 2: このステップで 必要な制御線の値を全て答えよ RegDst RegWrite SrcA MemRead MemWrite IR = メモリ [PC]; PC=PC+4; ( フェッチとPCの計算 ) MemtoRegg IorD IRWrite PCWrite PCWriteCond op SrcB Point: 書き込んでほしくないところは必ず書き込み制御線をにする PCSource 34

お絵かきスペース 35

2. デコードとレジスタフェッチのステップ /2 ミニクイズ 3: このステップで活性化されるモジュールと必要な制御線を示せ PCWriteCond PCWrite IorD MemRead MemWrite MemtoReg IRWrite 制御 PCSource Op SrcB SrcA RegWrite RegDst PC [3-28] PC M アドレス メモリ 書込みデータ データ [3-26] [25-2] [2-6] [5-] レジスタ [5-] メモリ データレジスタ [5-] M M 6 [25-] 読出レジスタ 読出レジスタ2 書込レジスタ書込 データ 符号拡張 32 読出データ 読出データ 2 レジスタ 2ビット左シフト [5-] A B 4 M U X M U 2 X 3 26 28 2ビット左シフト ゼロ判定 結果 制御 ジャンプ先アドレス [3-] Out 2 M X 36

2. デコードとレジスタフェッチのステップ /2 予備 ミニクイズ 3: このステップで活性化されるモジュールと必要な制御線を示せ PCWriteCond PCWrite IorD MemRead MemWrite MemtoReg IRWrite 制御 PCSource Op SrcB SrcA RegWrite RegDst PC [3-28] PC M アドレス メモリ 書込みデータ データ [3-26] [25-2] [2-6] [5-] レジスタ [5-] メモリ データレジスタ [5-] M M 6 [25-] 読出レジスタ 読出レジスタ2 書込レジスタ書込 データ 符号拡張 32 読出データ 読出データ 2 レジスタ 2ビット左シフト [5-] A B 4 M U X M U 2 X 3 26 28 2ビット左シフト ゼロ判定 結果 制御 ジャンプ先アドレス [3-] Out 2 M X 37

2. デコードとレジスタフェッチのステップ 2/2 ミニクイズ 4: このステップで 必要な制御線の値を全て答えよ RegDst RegWrite SrcA A= レジスタ [IR[25-2]]; [ B= レジスタ [IR[2-6]]; [ (rs,rtフィールドの読込み) MemRead Out = PC+( 符号拡張 (IR[5-] <<2)); ( 分岐先の計算 ) MemWrite MemtoReg g IorD IRWrite PCWrite PCWriteCond op SrcB もし が分岐でないと分かったら単に Out の値は後で使わなければいい もし レジスタ B は必要なければ単に後でつかわなければいい PCSource 38

お絵かきスペース 39

3. 実行 メモリアドレスの計算または分岐の完了ステップ / ミニクイズ 7: このステップで活性化されるモジュールと必要な制御線を示せ R 形式の場合 PCWriteCond PCWrite IorD MemRead MemWrite MemtoReg IRWrite 制御 PCSource Op SrcB SrcA RegWrite RegDst PC [3-28] PC [25-] M [3-26] M U アドレス読出 [25-2] レジスタ A X 読出 [2-6] 読出データ レジスタ2 M 書込メモリデータ レジスタ読出 [5-] [5-] ] X 書込データ 2 B M データ 4 書込みレジスタ 2 データ M レジスタ 3 [5-] メモリ データレジスタ 6 符号拡張 32 2 ビット左シフト [5-] 26 28 2ビット左シフト ゼロ判定 結果 制御 ジャンプ先アドレス [3-] Out 2 M U X 4

3. 実行 メモリアドレスの計算または分岐の完了ステップ / 予備 ミニクイズ 7: このステップで活性化されるモジュールと必要な制御線を示せ R 形式の場合 PCWriteCond PCWrite IorD MemRead MemWrite MemtoReg IRWrite 制御 PCSource Op SrcB SrcA RegWrite RegDst PC [3-28] PC [25-] M [3-26] M U アドレス読出 [25-2] レジスタ A X 読出 [2-6] 読出データ レジスタ2 M 書込メモリデータ レジスタ読出 [5-] [5-] ] X 書込データ 2 B M データ 4 書込みレジスタ 2 データ M レジスタ 3 [5-] メモリ データレジスタ 6 符号拡張 32 2 ビット左シフト [5-] 26 28 2ビット左シフト ゼロ判定 結果 制御 ジャンプ先アドレス [3-] Out 2 M U X 4

3. 実行 メモリアドレスの計算または分岐の完了ステップ2/ ミニクイズ 8: このステップで 必要な制御線の値を全て答えよ R 形式の場合 RegDst RegWrite SrcA MemRead MemWrite Out = A 演算子 B; MemtoRegg IorD IRWrite PCWrite PCWriteCond op SrcB PCSource 42

お絵かきスペース 43

3. 実行 メモリアドレスの計算または分岐の完了ステップ 3/ ミニクイズ 5: このステップで活性化されるモジュールと必要な制御メモリ参照の場合線を示せ PCWriteCond PCWrite IorD MemRead MemWrite MemtoReg IRWrite 制御 PCSource Op SrcB SrcA RegWrite RegDst PC [3-28] PC M アドレス メモリ 書込みデータ データ [3-26] [25-2] [2-6] [5-] レジスタ [5-] メモリ データレジスタ [5-] M M 6 [25-] 読出レジスタ 読出レジスタ2 書込レジスタ 書込データ 符号拡張 32 読出データ 読出データ 2 レジスタ 2ビット左シフト [5-] A B 4 M U X M 2 3 26 28 2ビット左シフト ゼロ判定 結果 制御 ジャンプ先アドレス [3-] Out 2 M X 44

3. 実行 メモリアドレスの計算または分岐の完了ステップ 3/ 予備 ミニクイズ 5: このステップで活性化されるモジュールと必要な制御線を示せ メモリ参照の場合 PCWriteCond PCWrite IorD MemRead MemWrite MemtoReg IRWrite 制御 PCSource Op SrcB SrcA RegWrite RegDst PC [3-28] PC M アドレス メモリ 書込みデータ データ [3-26] [25-2] [2-6] [5-] レジスタ [5-] メモリ データレジスタ [5-] M M 6 [25-] 読出レジスタ 読出レジスタ2 書込レジスタ 書込データ 符号拡張 32 読出データ 読出データ 2 レジスタ 2ビット左シフト [5-] A B 4 M U X M 2 3 26 28 2ビット左シフト ゼロ判定 結果 制御 ジャンプ先アドレス [3-] Out 2 M X 45

3. 実行 メモリアドレスの計算または分岐の完了ステップ 4/ ミニクイズ 6: このステップで 必要な制御線の値を全て答えよ メモリ参照の場合 RegDst RegWrite SrcA MemRead MemWrite Out = A+ 符号拡張 (IR[5-]); MemtoRegg IorD IRWrite PCWrite PCWriteCond op SrcB PCSource 46

お絵かきスペース 47

3. 実行 メモリアドレスの計算または分岐の完了ステップ 5/ 分岐の場合 ミニクイズ 9: このステップで活性化されるモジュールと必要な制御線を示せ 成立の時 PCWriteCond PCWrite IorD MemRead MemWrite MemtoReg IRWrite 制御 PCSource Op SrcB SrcA RegWrite RegDst PC [3-28] PC [25-] M [3-26] M U アドレス読出 [25-2] レジスタ A X 読出 [2-6] 読出データ レジスタ2 M 書込メモリデータ レジスタ読出 [5-] [5-] ] X 書込データ 2 B M データ 4 書込みレジスタ 2 データ M レジスタ 3 [5-] メモリ データレジスタ 6 符号拡張 32 2 ビット左シフト [5-] 26 28 2ビット左シフト ゼロ判定 結果 制御 ジャンプ先アドレス [3-] Out 2 M U X 48

3. 実行 メモリアドレスの計算または分岐の完了ステップ 5/ 分岐の場合 予備 ミニクイズ 9: このステップで活性化されるモジュールと必要な制御線を示せ 成立の時 PCWriteCond PCWrite IorD MemRead MemWrite MemtoReg IRWrite 制御 PCSource Op SrcB SrcA RegWrite RegDst PC [3-28] PC [25-] M [3-26] M U アドレス読出 [25-2] レジスタ A X 読出 [2-6] 読出データ レジスタ2 M 書込メモリデータ レジスタ読出 [5-] [5-] ] X 書込データ 2 B M データ 4 書込みレジスタ 2 データ M レジスタ 3 [5-] メモリ データレジスタ 6 符号拡張 32 2 ビット左シフト [5-] 26 28 2ビット左シフト ゼロ判定 結果 制御 ジャンプ先アドレス [3-] Out 2 M U X 49

3. 実行 メモリアドレスの計算または分岐の完了ステップ6/ ミニクイズ : このステップで 必要な制御線の値を全て答えよ 分岐の場合 RegDst RegWrite SrcA MemRead MemWrite 成立の時 if(a==b) PC=Out; MemtoRegg IorD IRWrite PCWrite PCWriteCond op SrcB PCSource 5

お絵かきスペース 5

3. 実行 メモリアドレスの計算または分岐の完了ステップ7/ 分岐の場合ミニクイズ: このステップで活性化されるモジュールと必要な制御線を示せ不成立の時 PCWriteCond PCWrite IorD MemRead MemWrite MemtoReg IRWrite 制御 PCSource Op SrcB SrcA RegWrite RegDst PC [3-28] PC [25-] M [3-26] M U アドレス読出 [25-2] レジスタ A X 読出 [2-6] 読出データ レジスタ2 M 書込メモリデータ レジスタ読出 [5-] [5-] ] X 書込データ 2 B M データ 4 書込みレジスタ 2 データ M レジスタ 3 [5-] メモリ データレジスタ 6 符号拡張 32 2 ビット左シフト [5-] 26 28 2ビット左シフト ゼロ判定 結果 制御 ジャンプ先アドレス [3-] Out 2 M U X 52

3. 実行 メモリアドレスの計算または分岐の完了ステップ7/ 分岐の場合ミニクイズ: このステップで活性化されるモジュールと必要な制御線を示せ不成立の時 予備 PCWriteCond PCWrite IorD MemRead MemWrite MemtoReg IRWrite 制御 PCSource Op SrcB SrcA RegWrite RegDst PC [3-28] PC [25-] M [3-26] M U アドレス読出 [25-2] レジスタ A X 読出 [2-6] 読出データ レジスタ2 M 書込メモリデータ レジスタ読出 [5-] [5-] ] X 書込データ 2 B M データ 4 書込みレジスタ 2 データ M レジスタ 3 [5-] メモリ データレジスタ 6 符号拡張 32 2 ビット左シフト [5-] 26 28 2ビット左シフト ゼロ判定 結果 制御 ジャンプ先アドレス [3-] Out 2 M U X 53

3. 実行 メモリアドレスの計算または分岐の完了ステップ8/ ミニクイズ 2: このステップで 必要な制御線の値を全て答えよ 分岐の場合 RegDst RegWrite SrcA MemRead MemWrite 不成立の時 if(a==b) PC=Out; 成立の時と違うところはあるでしょうか MemtoRegg IorD IRWrite PCWrite PCWriteCond op SrcB PCSource 54

お絵かきスペース 55

3. 実行 メモリアドレスの計算または分岐の完了ステップ 9/ ミニクイズ 3: このステップで活性化されるモジュールと必要な制御線を示せ ジャンプの場合 PCWriteCond PCWrite IorD MemRead MemWrite MemtoReg IRWrite 制御 PCSource Op SrcB SrcA RegWrite RegDst PC [3-28] PC [25-] M [3-26] M U アドレス読出 [25-2] レジスタ A X 読出 [2-6] 読出データ レジスタ2 M 書込メモリデータ レジスタ読出 [5-] [5-] ] X 書込データ 2 B M データ 4 書込みレジスタ 2 データ M レジスタ 3 [5-] メモリ データレジスタ 6 符号拡張 32 2 ビット左シフト [5-] 26 28 2ビット左シフト ゼロ判定 結果 制御 ジャンプ先アドレス [3-] Out 2 M U X 56

3. 実行 メモリアドレスの計算または分岐の完了ステップ 9/ ミニクイズ 3: このステップで活性化されるモジュールと必要な制御線を示せ 予備 ジャンプの場合 PCWriteCond PCWrite IorD MemRead MemWrite MemtoReg IRWrite 制御 PCSource Op SrcB SrcA RegWrite RegDst PC [3-28] PC [25-] M [3-26] M U アドレス読出 [25-2] レジスタ A X 読出 [2-6] 読出データ レジスタ2 M 書込メモリデータ レジスタ読出 [5-] [5-] ] X 書込データ 2 B M データ 4 書込みレジスタ 2 データ M レジスタ 3 [5-] メモリ データレジスタ 6 符号拡張 32 2 ビット左シフト [5-] 26 28 2ビット左シフト ゼロ判定 結果 制御 ジャンプ先アドレス [3-] Out 2 M U X 57

3. 実行 メモリアドレスの計算または分岐の完了ステップ / ミニクイズ 4: このステップで 必要な制御線の値を全て答えよ ジャンプの場合 RegDst RegWrite PC=PC[3-28] (IR[25-]<<2); SrcA MemRead MemWrite MemtoRegg IorD IRWrite PCWrite PCWriteCond op SrcB PCSource 58

お絵かきスペース 59

4. メモリアクセス または R 形式完了ステップ /6 R 形式の場合ミニクイズ9: このステップで活性化されるモジュールと必要な制御線を示せ PCWriteCond PCWrite IorD MemRead MemWrite MemtoReg IRWrite 制御 PCSource Op SrcB SrcA RegWrite RegDst PC [3-28] PC [25-] M [3-26] M U アドレス読出 [25-2] レジスタ A X 読出 [2-6] 読出データ レジスタ2 M 書込メモリデータ レジスタ読出 [5-] [5-] ] X 書込データ 2 B M データ 4 書込みレジスタ 2 データ M レジスタ 3 [5-] メモリ データレジスタ 6 符号拡張 32 2 ビット左シフト [5-] 26 28 2ビット左シフト ゼロ判定 結果 制御 ジャンプ先アドレス [3-] Out 2 M U X 6

4. メモリアクセス または R 形式完了ステップ /6 R 形式の場合ミニクイズ9: このステップで活性化されるモジュールと必要な制御線を示せ 予備 PCWriteCond PCWrite IorD MemRead MemWrite MemtoReg IRWrite 制御 PCSource Op SrcB SrcA RegWrite RegDst PC [3-28] PC [25-] M [3-26] M U アドレス読出 [25-2] レジスタ A X 読出 [2-6] 読出データ レジスタ2 M 書込メモリデータ レジスタ読出 [5-] [5-] ] X 書込データ 2 B M データ 4 書込みレジスタ 2 データ M レジスタ 3 [5-] メモリ データレジスタ 6 符号拡張 32 2 ビット左シフト [5-] 26 28 2ビット左シフト ゼロ判定 結果 制御 ジャンプ先アドレス [3-] Out 2 M U X 6

4. メモリアクセス または R 形式完了ステップ 2/6 ミニクイズ 2: このステップで 必要な制御線の値を全て答えよ R 形式の場合 RegDst RegWrite レジスタ [IR[5-]]=Out; ]] SrcA MemRead MemWrite MemtoRegg IorD IRWrite PCWrite PCWriteCond op SrcB PCSource 62

お絵かきスペース 63

4. メモリアクセス または R 形式完了ステップ 3/6 メモリ参照 ( ロード ) の場合ミニクイズ5: このステップで活性化されるモジュールと必要な制御線を示せ PCWriteCond PCWrite IorD MemRead MemWrite MemtoReg IRWrite 制御 PCSource Op SrcB SrcA RegWrite RegDst PC [3-28] PC [25-] M [3-26] M U アドレス読出 [25-2] レジスタ A X 読出 [2-6] 読出データ レジスタ2 M 書込メモリデータ レジスタ読出 [5-] [5-] ] X 書込データ 2 B M データ 4 書込みレジスタ 2 データ M レジスタ 3 [5-] メモリ データレジスタ 6 符号拡張 32 2 ビット左シフト [5-] 26 28 2ビット左シフト ゼロ判定 結果 制御 ジャンプ先アドレス [3-] Out 2 M U X 64

4. メモリアクセス または R 形式完了ステップ 3/6 メモリ参照 ( ロード ) の場合ミニクイズ5: このステップで活性化されるモジュールと必要な制御線を示せ 予備 PCWriteCond PCWrite IorD MemRead MemWrite MemtoReg IRWrite 制御 PCSource Op SrcB SrcA RegWrite RegDst PC [3-28] PC [25-] M [3-26] M U アドレス読出 [25-2] レジスタ A X 読出 [2-6] 読出データ レジスタ2 M 書込メモリデータ レジスタ読出 [5-] [5-] ] X 書込データ 2 B M データ 4 書込みレジスタ 2 データ M レジスタ 3 [5-] メモリ データレジスタ 6 符号拡張 32 2 ビット左シフト [5-] 26 28 2ビット左シフト ゼロ判定 結果 制御 ジャンプ先アドレス [3-] Out 2 M U X 65

4. メモリアクセス または R 形式完了ステップ 4/6 ミニクイズ 6: このステップで 必要な制御線の値を全て答えよ RegDst RegWrite SrcA MemRead MemWrite MDR = メモリ [Out]; メモリ参照 ( ロード ) の場合 MemtoRegg IorD IRWrite PCWrite PCWriteCond Point: MDR は書き込み制御線なし op SrcB PCSource 66

お絵かきスペース 67

4. メモリアクセス または R 形式完了ステップ 5/6 メモリ参照 ( ストア ) の場合ミニクイズ7: このステップで活性化されるモジュールと必要な制御線を示せ PCWriteCond PCWrite IorD MemRead MemWrite MemtoReg IRWrite 制御 PCSource Op SrcB SrcA RegWrite RegDst PC [3-28] PC [25-] M [3-26] M U アドレス読出 [25-2] レジスタ A X 読出 [2-6] 読出データ レジスタ2 M 書込メモリデータ レジスタ読出 [5-] [5-] ] X 書込データ 2 B M データ 4 書込みレジスタ 2 データ M レジスタ 3 [5-] メモリ データレジスタ 6 符号拡張 32 2 ビット左シフト [5-] 26 28 2ビット左シフト ゼロ判定 結果 制御 ジャンプ先アドレス [3-] Out 2 M U X 68

4. メモリアクセス または R 形式完了ステップ 5/6 メモリ参照 ( ストア ) の場合ミニクイズ7: このステップで活性化されるモジュールと必要な制御線を示せ 予備 PCWriteCond PCWrite IorD MemRead MemWrite MemtoReg IRWrite 制御 PCSource Op SrcB SrcA RegWrite RegDst PC [3-28] PC [25-] M [3-26] M U アドレス読出 [25-2] レジスタ A X 読出 [2-6] 読出データ レジスタ2 M 書込メモリデータ レジスタ読出 [5-] [5-] ] X 書込データ 2 B M データ 4 書込みレジスタ 2 データ M レジスタ 3 [5-] メモリ データレジスタ 6 符号拡張 32 2 ビット左シフト [5-] 26 28 2ビット左シフト ゼロ判定 結果 制御 ジャンプ先アドレス [3-] Out 2 M U X 69

4. メモリアクセス または R 形式完了ステップ 6/6 ミニクイズ 8: このステップで 必要な制御線の値を全て答えよ RegDst RegWrite メモリ [Out]=B; メモリ参照 ( ストア ) の場合 SrcA MemRead MemWrite MemtoRegg IorD IRWrite PCWrite PCWriteCond 自己確認ポイント : ちなみに レジスタB の値はここまでの各ステップでどのような値になるか分かっていますか? * 書き込み制御線を持たないレジスタは各ステップの最後 = 次のステップの最初で更新されます op SrcB PCSource 7

お絵かきスペース 7

5. メモリ読出し完了ステップ /2 ミニクイズ 2: このステップで活性化されるモジュールと必要な制御線を示せ PCWriteCond PCWrite IorD MemRead MemWrite MemtoReg IRWrite 制御 PCSource Op SrcB SrcA RegWrite RegDst PC [3-28] PC [25-] M [3-26] M U アドレス読出 [25-2] レジスタ A X 読出 [2-6] 読出データ レジスタ2 M 書込メモリデータ レジスタ読出 [5-] [5-] ] X 書込データ 2 B M データ 4 書込みレジスタ 2 データ M レジスタ 3 [5-] メモリ データレジスタ 6 符号拡張 32 2 ビット左シフト [5-] 26 28 2ビット左シフト ゼロ判定 結果 制御 ジャンプ先アドレス [3-] Out 2 M U X 72

5. メモリ読出し完了ステップ /2 予備 ミニクイズ 2: このステップで活性化されるモジュールと必要な制御線を示せ PCWriteCond PCWrite IorD MemRead MemWrite MemtoReg IRWrite 制御 PCSource Op SrcB SrcA RegWrite RegDst PC [3-28] PC [25-] M [3-26] M U アドレス読出 [25-2] レジスタ A X 読出 [2-6] 読出データ レジスタ2 M 書込メモリデータ レジスタ読出 [5-] [5-] ] X 書込データ 2 B M データ 4 書込みレジスタ 2 データ M レジスタ 3 [5-] メモリ データレジスタ 6 符号拡張 32 2 ビット左シフト [5-] 26 28 2ビット左シフト ゼロ判定 結果 制御 ジャンプ先アドレス [3-] Out 2 M U X 73

5. メモリ読出し完了ステップ 2/2 ミニクイズ 22: このステップで 必要な制御線の値を全て答えよ RegDst RegWrite レジスタ [IR[2-6]]=MDR; ( ロード ) SrcA MemRead MemWrite MemtoRegg IorD IRWrite PCWrite PCWriteCond op SrcB PCSource 74

お絵かきスペース 75

What to learn 単一クロックサイクルの問題点 マルチサイクルの概要 考え方 単一クロックサイクルとの違い マルチサイクルの各サイクルの詳細. フェッチ 2. デコード +レジスタ フェッチ 3. 実行 メモリ アドレスの計算 or 分岐の完了 4. メモリ アクセス or R 形式の完了 5. メモリ読み出し完了 制御ユニットの詳細 ( 有限状態機械による方法 ) * マイクロプログラミングによる方法は用語程度 例外の実現 Next Topic 教材 この内容は教科書にはありません ( 一つ前の版の教科書にはあります ) 76

制御回路の設計 単一サイクルの場合 : 制御信号の真理値表を作成し それから制御回路を組み合わせ回路として作成する マルチサイクルの場合 : 各ステップ毎にデータパスを変更するので 単純な組み合わせ回路としては実現できない 今, どのステップにいるかを管理し 各ステップ毎に制御信号を整理する 順序回路 or マイクロプログラム 77

一般的な同期式順序回路 復習 順序回路 同じ入力に対して出力が異なる 記憶を持つ回路 過去の入力や計算結果を記憶 ループ ( サイクル ) を持つ回路 クロックのタイミングで記憶を更新 円 5 円 円 Q クロック 現在の投入金額を記憶 S R FFがS,Rの値を取り込む clock 78

お絵かきスペース 79

順序回路による制御ユニットの構成 組み合わせ制御論理 データパス制御出力 出力 入力 次ステート レジスタの操作コード フィールドからの入力 状態レジスタ 順序回路による制御ユニット組み合わせ論理回路と現ステートを保持するレジスタから構成可能 8

お絵かきスペース 8

順序回路の数学的モデル 有限状態機械による制御仕様の定義 開始 有限状態機械の制御の Overview フェッチとデコード及びレジスタのフェッチ メモリアクセス R 形式分岐ジャンプ 最初のステップはタイプに依存しない 開始 の矢印は 最初のがフェッチされたときの開始ステート 82

お絵かきスペース 83

各の各ステップでの動作のまとめ 再掲 ( 復習 ) タイプ フェッチ デコードとレジスタフェッチ 実行 メモリアドレスの計算または分岐の完了 メモリアクセス または R 形式完了 メモリ読出し完了 R 形式 IR = メモリ [PC]; PC=PC+4; A= レジスタ [IR[25-2]]; B= レジスタ [IR[2-6]]; Out = PC+ ( 符号拡張 (IR[5-] <<2)); Out = A 演算子 B; レジスタ [IR[5-]] =Out; 語のロード R と同じ R と同じ Out = A+ 符号拡張 (IR[5-]); MDR = メモリ [Out]; レジスタ [IR[2-6]] =MDR; 語のストア R と同じ R と同じロードと同じメモリ [Out]=B; 分岐 R と同じ R と同じ if(a==b) PC=Out; ジャンプ R と同じ R と同じ PC=PC[3-28] (IR[25-]<<2); 84

各に共通なフェッチ及びデコード部分 * 全ての制御線が書いているわけではありません 開始 フェッチ MemRead SrcA=A IorD= IRWrite SrcB= OP= PCWrite PCSource= デコード / レジスタのフェッチ SrcA= SrcB= OP= メモリ参照 FSM R 形式 FSM 分岐 FSM ジャンプ FSM これらの制御線の値は試験で聞かれるかも ( ちなみにスライドのどこを見ればわかる?) 85

メモリ参照 FSM と R 形式 FSM 2 ステート から 3 SrcA= SrcB= OP= MemRead IorD= メモリアドレスの計算 メモリアクセス (Op= SW ) メモリアクセス 5 MemWrite IorD= 6 ステート から 7 SrcA= SrcB= OP= RegDst= RegWrite MemtoReg= 実行 R 形式の完了 4 メモリ読出し完了ステップ RegWrite MemtoReg= RegDst= ステート へ ステート へ メモリ参照 FSM R 形式 FSM 86

お絵かきスペース 87

分岐 FSM とジャンプ FSM ステート からステート から 8 SrcA= SrcB= Op= PCWriteCond PCSource= 分岐完了 9 PCWrite PCSource= ジャンプの完了 ステート へステート へ 分岐 FSM ジャンプ FSM 88

データパスを制御する有限状態機械の全体図 開始 MemRead SrcA= IorD= IRWrite SrcB= OP= PCWrite PCSource= フェッチ SrcA= SrcB= OP= デコード / レジスタのフェッチ 2 メモリアドレスの計算 SrcA= SrcB= OP= 6 SrcA= SrcB= OP= 実行 分岐完了 8 SrcA= SrcB= Op= PCWriteCond PCSource= 9 PCWrite PCSource= ジャンプの完了 3 MemRead IorD= メモリアクセス (Op= SW ) メモリアクセス 5 MemWrite IorD= 7 RegDst= RegWrite MemtoReg= R 形式の完了 4 メモリ読出し完了ステップ RegWrite MemtoReg= RegDst= 89

お絵かきスペース 9

別の実現方法 : マイクロプログラミング 用語と概要は覚えよう詳細はスキップ マイクロ ( マイクロコード ) 実行すべきのあるステートでのデータパスで実行するのに必要な一群の制御信号を生成する具体的には どの制御信号をアサートするか 次にどのマイクロを実行するかなどを指定 マイクロプログラミングマシンの制御をマイクロで記述したプログラム通常 ROMなどに格納される複雑な制御も容易に実現可能 9

マイクロコード記憶には PLA または ROM が用いられる マイクロコード制御ユニットの構成 マイクロコード記憶 出力 データパス制御出力 発展 入力 マイクロプログラム カウンタ 順序制御 インクルメンタ アドレス選択論理 図 574 5.7.4 操作コード フィールドからの入力 スライド8と対比して 概要のみ理解しよう 92

お絵かきスペース 93

What to learn 単一クロックサイクルの問題点 マルチサイクルの概要 考え方 単一クロックサイクルとの違い マルチサイクルの各サイクルの詳細. フェッチ 2. デコード +レジスタ フェッチ 3. 実行 メモリ アドレスの計算 or 分岐の完了 4. メモリ アクセス or R 形式の完了 5. メモリ読み出し完了 制御ユニットの詳細 ( 有限状態機械による方法 ) * マイクロプログラミングによる方法は用語程度 例外の実現 Next Topic 教材 この内容は教科書にはありません ( 一つ前の版の教科書にはあります ) 94

例外 教科書 P356 例外 ( 割り込み ) プロセッサの中で生じる予期せぬ出来事 算術オーバーフロー 入出力装置からのリクエストなど 例外割り込み 例外と割り込みの定義は状況によるが 教科書では以下の2つの例外を考える 算術オーバーフロー 未定義のフェッチ オーバーフローとは何か?( 覚えてますか?) - 演算結果が表現可能な値の上限を超えること cf c.f. アンダーフロー : 表現可能な最小の値を下回ること 95

お絵かきスペース 96

例外が起こった時の処理 例外プログラムカウンタ (EPC)<= (PC ー 4) PC <= 8 8 Cause <=, if 未定義 Cause <=, if 算術オーバーフロー 例外は 算術オーバーフロー / 未定義で発生どこで何が起きたを知る必要がある 例外プログラムカウンタ (EPC) : 問題が起きたアドレスを退避する Causeレジスタ : 例外発生の理由を記録するレジスタ ( 未定義なら, 算術オーバーフローなら ) OSはCauseレジスタを見て例外要因を知り それに応じた処理を行う データパスに 例外用の制御信号を導入 97

例外処理を加えたマルチサイクル方式における全データバス PCWriteCond PCWrite IorD MemRead MemWrite MemtoReg IRWrite 制御 IntCause CauseWrite EPCWrite PCSource Op SrcB SrcA RegWrite RegDst PC [3-28] PC [25-] [3-26] M アドレス読出 メモリ 書込みデータ データ [25-2] [2-6] [5-] レジスタ [5-] メモリ データレジスタ [5-] M M 6 レジスタ 読出レジスタ2 書込レジスタ 書込データ 符号拡張 32 読出データ 読出データ 2 レジスタ 2ビット左シフト [5-] A B 4 M U X M 2 3 26 28 2ビット左シフト ゼロ判定 結果 制御 ジャンプ先アドレス [3-] 8 8 Out M 2 U X 3 M EPC Cause 98

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

データパスを制御する有限状態機械の全体図 MemRead SrcA= IorD= IRWrite SrcB= OP= PCW it フェッチデコード / レジスタのフェッチ開始 SrcA= SrcB= OP= PCWrite PCSource= 2 SrcA= SrcB= OP= メモリアドレスの計算 6 SrcA= SrcB= OP= 実行 PCWrite PCSource= 9 ジャンプの完了 SrcA= SrcB= Op= PCWriteCond 8 分岐完了 3 5 メモリアクセスメモリアクセス (Op= SW ) 7 R 形式の完了 PCSource= IntCause= CauseWrite IntCause= MemRead IorD= MemWrite IorD= RegDst= RegWrite MemtoReg= SrcA= SrcB= OP= EPCWrite PCWrite PCSource= IntCause= CauseWrite SrcA= SrcB= OP= PCWrite EPCWrite PCSource= 数値オーバーフロー RegWrite MemtoReg= RegDst= 4 メモリ読出し完了ステップ RegDst

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

Chap. 3 のセルフチェック 以下の文章の意味がわからないなら 講義で寝ていた ( 笑 ) かもしれませんね 9 単一クロックサイクル方式では によって実行に本質的に必要な時間が異なる 2 単一クロック サイクル方式では性能があまりでない 2 マルチサイクル方式は単一サイクル方式に比べてサイクル方式に比べて2 つの利点がある 22 マルチサイクル方式では 情報を一時的に保持するレジスタが必要となる 23 マルチサイクル方式では 5サイクルかけて各を実行する 24 マルチサイクル方式では 制御回路を組み合わせ回路で実現できない 25 マイクロプログラミングという用語を知っている 26 プロセッサに関する用語として 例外 割り込みという用語を知っている ちゃんと聞いていたのに, わからなければ質問しましょう! 2

Chap. 3 の試験に出るかもしれない用語集 単一 ( クロック ) サイクル マルチサイクル IR MDR フェッチ デコード レジスタ フェッチ 順序回路 有限状態機械 マイクロプログラミンググ マイクロ ( マイクロコード ) 例外 割り込み オーバーフロー 3

講義中にやって試験に出るかもしれないもの ( もちろん全く同じ形ではないですが ) 重要問題 ミニクイズ 自己確認クイズ ( 自分でやるのが基本 ) 章末問題 配布資料は試験中に提供予定 ( 詳細は講義中に説明します ) 4

章末問題 次ページの図は MIPSのマルチサイクルでの実現のデータパスの制御を行う有限状態機械の状態遷移図である 図中の制御信号の値を全て答えよ ( 便宜上全ての制御線の値が書かれているが 問題としてはその値を聞いていると思ってください ) 同じ図において 以下の問いを答えよ. R 形式のを実行する場合 開始からどの順番に状態遷移するか? 2. ストアの場合は? 3. ロードの場合は? 4. ジャンプの場合は? 5. 分岐の場合は? 5

データパスを制御する有限状態機械の全体図 開始 MemRead SrcA= IorD= IRWrite SrcB= OP= PCWrite PCSource= フェッチ SrcA= SrcB= OP= デコード / レジスタのフェッチ 2 メモリアドレスの計算 SrcA= SrcB= OP= 6 SrcA= SrcB= OP= 実行 分岐完了 8 SrcA= SrcB= Op= PCWriteCond PCSource= 9 PCWrite PCSource= ジャンプの完了 3 MemRead IorD= メモリアクセス (Op= SW ) メモリアクセス 5 MemWrite IorD= 7 RegDst= RegWrite MemtoReg= R 形式の完了 4 メモリ読出し完了ステップ RegWrite MemtoReg= RegDst= 6

お絵かきスペース 7

章末問題 2 次ページの図は MIPSのマルチサイクルでの実現のデータパスの制御を行う有限状態機械の状態遷移図である 図中の制御信号の値を全て答えよ 図中の制御信号の値を全て答えよ ( 便宜上全ての制御線の値がほとんど書かれているが 問題としてはその値を聞いていると思ってください ) 同じ図において 以下の問いを答えよ. R 形式のを実行してオーバーフローが起こった場合 開始からどの順番に状態遷移するか? 2. 未定義のをフェッチした場合はどうか? 8

データパスを制御する有限状態機械の全体図 MemRead SrcA= IorD= IRWrite SrcB= OP= PCW it フェッチデコード / レジスタのフェッチ開始 SrcA= SrcB= OP= PCWrite PCSource= ジャンプ 2 SrcA= SrcB= OP= メモリアドレスの計算 6 SrcA= SrcB= OP= 実行 PCWrite PCSource= 9 ジャンプの完了 SrcA= SrcB= Op= PCWriteCond 8 分岐完了 3 5 メモリアクセスメモリアクセス (Op= SW ) 7 R 形式の完了 PCSource= IntCause= CauseWrite IntCause= MemRead IorD= MemWrite IorD= RegDst= RegWrite MemtoReg= SrcA= SrcB= OP= EPCWrite PCWrite PCSource= IntCause= CauseWrite SrcA= SrcB= OP= PCWrite EPCWrite PCSource= 数値オーバーフロー RegWrite MemtoReg= RegDst= 4 メモリ読出し完了ステップ 9 RegDst