• 検索結果がありません。

計算機アーキテクチャ

N/A
N/A
Protected

Academic year: 2021

シェア "計算機アーキテクチャ"

Copied!
49
0
0

読み込み中.... (全文を見る)

全文

(1)

計算機アーキテクチャ

2014年 10月17日

電気情報工学科 田島 孝治

(2)

授業スケジュール(後期)

※10/14は出張のため振替です。(10/17 9:00~の予定) ※11/4は研修旅行です。試験の日程は未定です。 2 回 日付 タイトル 17 10/7 パイプライン処理 18 10/17 ハザードの解決法 19 10/21 並列処理 20 11/11 マルチプロセッサ 21 11/18 入出力装置の分類と特徴 22 11/25 割り込み 23 12/2 ネットワークアーキテクチャ 24 12/9 中間試験(日程は仮) 回 日付 タイトル 25 12/16 メモリ構成の基本原理 26 12/30 記憶領域の管理手法 27 1/13 仮想メモリ 28 1/20 キャッシュ 29 1/27 システムアーキテクチャ 30 2/3 組み込みコンピューティング 31 2/10 コンピュータの設計と実装 2/24? 期末試験(日程は仮) 32 3/3? フォローアップ(日程は仮)

(3)

先週の復習

パイプライン処理

 単位時間当たりの処理量を増加 させる流れ作業 3 命令1 F D E W 命令2 F D E W 命令3 F D E W 命令4 F E D 命令5 F E

(4)

パイプラインの破綻:ハザード

構造ハザード

データハザード

制御ハザード

(5)

構造ハザード

 同じハードウェアを同時に使わないと いけない場合に起こる 5

メモリに同時にアクセス

する

・命令フェッチ

・データメモリ呼び出し

(6)

構造ハザードが起こる場合

6 lw $t4, 0($t2) F D E W add $s1,$t3,$t4 F D E W sub $s2,$s1,$3 F D E W li $t5, 5 F E D li $t6, 10 F E bne $t5,$s2,loop F 命令メモリを呼び出したい でも前の命令がメモリを占有中

(7)

構造ハザードの結果

7 lw $t4, 0($t2) F D E W add $s1,$t3,$t4 F D E W sub $s2,$s1,$3 × li $t5, 5 li $t6, 10 bne $t5,$s2,loop

(8)

構造ハザードの結果

8 lw $t4, 0($t2) F D E W add $s1,$t3,$t4 F D E W sub $s2,$s1,$3 × F D E li $t5, 5 × F E li $t6, 10 × F bne $t5,$s2,loop × 次以降の命令も実行が遅くなる

(9)

データハザード

 前の処理の結果(データ)を使わないと、 次の処理が実行できない場合に起こる  前の命令の変数を共有している 9

前の計算結果を次の命令で利用

する

(10)

データハザードが起こる場合

10 lw $t4, 0($t2) F D E W add $s1,$t3,$t4 F D E W sub $s2,$s1,$3 F D E W li $t5, 5 F E D li $t6, 10 F E bne $t5,$s2,loop F t4が決まらないとデコード できない(ALUにデータが送れない)

(11)

データハザードが起こる場合

11 lw $t4, 0($t2) F D E W add $s1,$t3,$t4 F D E W sub $s2,$s1,$3 F D E W li $t5, 5 F E D li $t6, 10 F E bne $t5,$s2,loop F t4が決まらないとデコード できない(ALUにデータが送れない)

(12)

データハザードが起こる場合

12 lw $t4, 0($t2) F D E W add $s1,$t3,$t4 F × × sub $s2,$s1,$3 li $t5, 5 li $t6, 10 bne $t5,$s2,loop t4が決まらないとデコード できない(ALUにデータが送れない)

(13)

制御ハザード

分岐命令

がある場合に起こる

13

(14)

制御ハザードが起こる場合

14 loop: $t4, 0($t2) F D E W bne $t5,$s2,end F D E W add $s2,$s1,$3 F sub $t5,$s2,$s1 j loop $t6, 10

(15)

制御ハザードが起こる場合

15 loop: $t4, 0($t2) F D E W bne $t5,$s2,end F D E W add $s2,$s1,$3 F × × F sub $t5,$s2,$s1 F E D j loop $t6, 10 F E

end: add $t5,$zero,$zero F

Wまで終わってPCが更新される =次に実行される行が決まる

(16)

ハザードが起こった場合の手順

次のプログラムを実行する際の

パイプラインを示せ

 プログラムは次ページに明記する  ハザードは指定した条件を満たした 場合のみ起こるものとする 

この際のスループットも求めよ

 全てのステージの実行時間は 1クロックとする 16

(17)

実行するプログラム

17 la $s0, values addi $s3,$s2,4 sw $s1, 0($s0) lw $t1, 4($s0) add $s4,$t3,$t1 sw $s4, 8($s0)

(18)

ハザードの条件

 lw命令の実行(E)はフェッチ(F)と 同時にできない  sw命令の実行(E)は結果格納(W)と 同時にできない  前の命令の実行結果を使う命令の デコード(D)は、前の命令の結果格納(W) が終わった後にしかできない  制御ハザードはなし (分岐命令がないですね) 18 第18回 計算機アーキテクチャ

(19)

ハザードのまとめ

 何らかの原因により命令をパイプライン 動作させられない状態を【ハザード】いう  【構造】ハザード:  同じハードウェアの同時利用が原因  【データ】ハザード:  変数の共有等が原因  【制御】ハザード: 19

(20)

ハザードのまとめ

 何らかの原因により命令をパイプライン 動作させられない状態を【ハザード】いう  【構造】ハザード:  同じハードウェアの同時利用が原因  【データ】ハザード:  変数の共有等が原因  【制御】ハザード: 20

(21)

ハザードのまとめ

 何らかの原因により命令をパイプライン 動作させられない状態を【ハザード】いう  【構造】ハザード:  同じハードウェアの同時利用が原因  【データ】ハザード:  変数の共有等が原因  【制御】ハザード: 21

(22)

ハザードのまとめ

 何らかの原因により命令をパイプライン 動作させられない状態を【ハザード】いう  【構造】ハザード:  同じハードウェアの同時利用が原因  【データ】ハザード:  変数の共有等が原因  【制御】ハザード: 22

(23)

ハザードのまとめ

 何らかの原因により命令をパイプライン 動作させられない状態を【ハザード】いう  【構造】ハザード:  同じハードウェアの同時利用が原因  【データ】ハザード:  変数の共有等が原因  【制御】ハザード: 23

(24)
(25)

データハザードの対策

計算結果を次の命令の

実行ステージに書き戻す

レジスタから読み込まなくても、

前の命令の実行結果を使える

ように

ハードウェアを改良

25 lw $t4, 0($t2) F D E W add $s1,$t3,$t4 F D E D E

(26)

フォワーディング機構

26 P C 命 令 メ モ リ 命 令 レ ジ ス タ ( F D レ ジ ス タ ) レジスタ ファイル (読み) 命令デコーダ デ ー タ 選 択 メ モ リ ア ド レ ス レ ジ ス タ データ メモリ レジスタ ファイル (書き) 演算結果フラグ 選択 回路 P C + + A L U デ ー タ 選 択 4 D E レ ジ ス タ E W レ ジ ス タ フォワーディング

(27)

フォワーディング機構

フォワーディング

forwarding)

データハザードを解決する

ハードウェア

機構

バイパシング、ショートカットとも

呼ばれる

計算命令で使う

変数の共有

考える必要がなくなった

27

(28)

制御ハザードの解消

条件分岐

によるハザードの解消

 命令アドレスがいつ決まるかが重要 28  無条件分岐 (j命令、jr命令) Dステージ直後 に決定 直後にPCを更新

(29)

条件がある場合

Wステージ

が終わるまではどこに

分岐するかわからない

どうやって

無駄な時間

をすごすか

質問です

 あなたはゲームのトーナメント戦に 出場しています  1試合目に勝ちました、2試合目ま での時間をどう過ごしますか? 29

(30)

1試合目終了時点でのトーナメント表 30 あなた Bさん Cさん Dさん Eさん Fさん Gさん どれか1つしか試合は見れません ①~③のどれを見に行きますか? ① ② ③

(31)

遅延分岐

分岐をしてもしなくても直後に同じ

命令を実行する

場合に有効

31 beq $t1,t2,sub2 la $t0, a lw $s0, 0($t0) sub $s2,$s0,$s1 lw $s0, 0($t0) la $t0, a add $s2,$s0,$s1 sub1: sub2: 同じ命令 を実行

(32)

遅延分岐の結果

32 beq $t1,t2,sub2 sub1: la $t0, a lw $s0, 0($t0) sub $s2,$s0,$s1 sub2: lw $s0, 0($t0) la $t0, a add $s2,$s0,$s1 beq $t1,t2,sub2 la $t0, a lw $s0, 0($t0) sub1: sub $s2,$s0,$s1 sub2: add $s2,$s0,$s1 命令を精査する

(33)

1試合目終了時点でのトーナメント表 33 あなた 8 Bさん 20 Cさん 17 Dさん 7 Eさん 18 Fさん 10 Gさん 2 どれか1つしか試合は見れません ①~③のどれを見に行きますか? ① ② ③ 現在の

(34)

分岐予測

分岐が起こるかどうかを

予測して

処理を進める

 事前に起こりそうな方を進めておく  予測がはずれたら、事前に進めた 分は破棄 34 ある意味で、当たり前 な方法ですね

(35)

分岐予測

分岐が起こるかどうかを

予測して

処理を進める

 事前に起こりそうな方を進めておく  予測がはずれたら、事前に進めた 分は破棄 35 でもどうやって予想するの?

(36)

どうやって次を予測するのか?

あなたは、バス(または電車)に

乗って通学しています

できれば椅子に座りたいと考えて

いますが、あいにく満席でした

どこ(どんな人の横、または場所)

で席が空くのを待ちますか?

 理由も考えてください 36

(37)

方法1:常に分岐しないと予想

常に分岐

する

と予想しても同義

当たるか外れるかは運しだい

ただ待っているだけより良い

予想が

当たれば無駄が少ない

37

(38)

方法2:アドレスが小さい方を予測

もっともよく使われる条件分岐

38

ループ

(繰り返し)

処理

1回で終わることは少ない

繰り返す場合は、

前のアドレス

(少ない方)

に戻る

(39)

方法3:分岐予測テーブルを使う

2ビット予測器

 予想が2回続けて外れたら予測を 変える 39 00 01 10 11 入力 出力 T 分岐した B 分岐させる NT NB T/B T/B T/B T/NB NT/NB NT/NB NT/NB NT/B

(40)

分岐予測テーブル

2ビット予測器と

テーブル

を組み

合わせて予測率を高める方式

各分岐命令

ごとの履歴と

すべて

の分岐

の履歴を

組み合わせる

アイデア

平均的な

成功率は

90%

を超える

40

(41)

分岐予測テーブル

41 01 1 0 00 01 10 11 00 04 08 0C 10 14 18 1C ・・・ FC 命令アドレス の下位ビット この値で 分岐予測 を行う 正解/ 不正解に 合わせて 書き換え

(42)

ハザードの解消のまとめ

 データハザードには【フォワーディング】が 有効  構造ハザードと、データハザードは、 【ハードウェア】の改良で対処する  制御ハザードの対策は、【命令アドレス】を いつ決めるかが重要  先に共通して命令を実行する【遅延分岐】 と、次にどの命令が実行されるか予測する 【分岐予測】がある 42

(43)

ハザードの解消のまとめ

 データハザードには【フォワーディング】が 有効  構造ハザードと、データハザードは、 【ハードウェア】の改良で対処する  制御ハザードの対策は、【命令アドレス】を いつ決めるかが重要  先に共通して命令を実行する【遅延分岐】 と、次にどの命令が実行されるか予測する 【分岐予測】がある 43

(44)

ハザードの解消のまとめ

 データハザードには【フォワーディング】が 有効  構造ハザードと、データハザードは、 【ハードウェア】の改良で対処する  制御ハザードの対策は、【命令アドレス】を いつ決めるかが重要  先に共通して命令を実行する【遅延分岐】 と、次にどの命令が実行されるか予測する 【分岐予測】がある 44

(45)

ハザードの解消のまとめ

 データハザードには【フォワーディング】が 有効  構造ハザードと、データハザードは、 【ハードウェア】の改良で対処する  制御ハザードの対策は、【命令アドレス】を いつ決めるかが重要  先に共通して命令を実行する【遅延分岐】 と、次にどの命令が実行されるか予測する 【分岐予測】がある 45

(46)

ハザードの解消のまとめ

 データハザードには【フォワーディング】が 有効  構造ハザードと、データハザードは、 【ハードウェア】の改良で対処する  制御ハザードの対策は、【命令アドレス】を いつ決めるかが重要  先に共通して命令を実行する【遅延分岐】 と、次にどの命令が実行されるか予測する 【分岐予測】がある 46

(47)

ハザードの解消のまとめ

 データハザードには【フォワーディング】が 有効  構造ハザードと、データハザードは、 【ハードウェア】の改良で対処する  制御ハザードの対策は、【命令アドレス】を いつ決めるかが重要  先に共通して命令を実行する【遅延分岐】 と、次にどの命令が実行されるか予測する 【分岐予測】がある 47

(48)

練習問題

 次のプログラムの分岐命令(3か所)に 関して、分岐予測の正解率を求めよ  次の4つの場合を考える事  常に分岐しないと考える  常に小さいアドレスに分岐すると考える  全体で1つの2ビット予測器を使う  分岐命令単位で個別の2ビット予測器を使う 48

(49)

参照

関連したドキュメント

絡み目を平面に射影し,線が交差しているところに上下 の情報をつけたものを絡み目の 図式 という..

Mochizuki, On the combinatorial anabelian geometry of nodally nondegenerate outer representations, RIMS Preprint 1677 (August 2009); see http://www.kurims.kyoto‐u.ac.jp/

実際, クラス C の多様体については, ここでは 詳細には述べないが, 代数 reduction をはじめ類似のいくつかの方法を 組み合わせてその構造を組織的に研究することができる

自閉症の人達は、「~かもしれ ない 」という予測を立てて行動 することが難しく、これから起 こる事も予測出来ず 不安で混乱

高(法 のり 肩と法 のり 尻との高低差をいい、擁壁を設置する場合は、法 のり 高と擁壁の高さとを合

・分速 13km で飛ぶ飛行機について、飛んだ時間を x 分、飛んだ道のりを ykm として、道のりを求め

■横置きタンクについては、H26.12を目処に撤去を実施予定。.. 対策

本研究は,地震時の構造物被害と良い対応のある震害指標を,構造物の疲労破壊の