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

第17回 パイプライン処理

N/A
N/A
Protected

Academic year: 2024

シェア "第17回 パイプライン処理"

Copied!
48
0
0

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

全文

(1)

計算機アーキテクチャ

2014 年 10 月 7 日

電気情報工学科 田島 孝治

第17回 計算機アーキテクチャ 1

17回 パイプライン処理

(2)

これまでとこれから

第17回 計算機アーキテクチャ

2

ハー ドウ ェア ソフ ト ウェ ア

CPU メモリ

入出力 OS ソフトウェア

命令セット メモリとレジスタ

キャッシュ パイプライン 仮想記憶

並列処理

ネットワーク

外部ハードウェアの制御

(3)

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

10/14は出張のため振替です。(10/17 9:00~の予定)

11/4は研修旅行です。試験の日程は未定です。

3

第17回 計算機アーキテクチャ

日付 タイトル

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? フォローアップ(日程は仮)

(4)

パイプライン処理

単位時間当たりの処理量を増加 させる流れ作業

第17回 計算機アーキテクチャ

4

(5)

私の実家

第17回 計算機アーキテクチャ

5

一日

200

枚くらいの仕上げが限界
(6)

クリーニング工場 6

チェーン店のクリーニング業

地域ごとに工場は1つで十分

1店舗の集客範囲は徒歩の範囲

(7)

パイプライン処理

単位時間当たりの処理量を増加 させる流れ作業

一つを作るのに要する時間は 関係ない

一定時間でどれだけの出力が 得られるかが重要

第17回 計算機アーキテクチャ

7

(8)

パイプラインを使わない場合

各工程は、一人の人が処理する

工程1を作業中には工程2は処理できない

第17回 計算機アーキテクチャ

8

工程

1 2 3 … N 1 2 3 ...

時間

(9)

パイプラインの仕組み

各工程を独立した一人の人が処理する

工程の数だけ作業員が居る

工程1と工程2は同時に実行できる

同じ工程は同時作業できない

9

工程

1 2 3 … N

工程

1 2 3 … N

工程

1 2 3 … N

時間 製作物1

製作物2 製作物3

(10)

パイプラインの効果を検証しよう

自動車工場の例1

1台の自動車を作るのに4つの工程がある

各工程にはそれぞれ5分の時間が必要

1台を作るのに必要な時間を求めよ

1分あたりに作れる自動車の台数を求めよ

第17回 計算機アーキテクチャ

10

(11)

考え方 11

工程1 工程2 工程3 工程4

5

工程1 工程2 工程3 工程4

工程1 工程2 工程3 工程4 工程1 工程2 工程3 ここからのことを考える

(12)

パイプラインの効果を検証しよう

自動車工場の例2

1台の自動車を作るのに

10

個の工程がある

各工程にはそれぞれ2分の時間が必要

1台を作るのに必要な時間を求めよ

1分あたりに作れる自動車の台数を求めよ

第17回 計算機アーキテクチャ

12

(13)

パイプラインの効果を検証しよう

自動車工場の例3

1台の自動車を作るのに

20

個の工程がある

各工程にはそれぞれ

0.8

分の時間が必要

1台を作るのに必要な時間を求めよ

1分あたりに作れる自動車の台数を求めよ

第17回 計算機アーキテクチャ

13

(14)

式を一般化しよう

自動車工場の例

1台の自動車を作るのに

N

個の工程がある

各工程にはそれぞれ

T

分の時間が必要

1台を作るのに必要な時間

1分あたりに作れる自動車の台数はどんな式 で表されるか?

14

(15)

式を一般化しよう

自動車工場の例

1台の自動車を作るのに

N

個の工程がある

各工程にはそれぞれ

T

分の時間が必要

1台を作るのに必要な時間

1分あたりに作れる自動車の台数はどんな式 で表されるか?

15

N × T

(16)

式を一般化しよう

自動車工場の例

1台の自動車を作るのに

N

個の工程がある

各工程にはそれぞれ

T

分の時間が必要

1台を作るのに必要な時間

1分あたりに作れる自動車の台数はどんな式 で表されるか?

16

N × T

1

T

(17)

式を一般化しよう

自動車工場の例

1台の自動車を作るのに

N

個の工程がある

各工程にはそれぞれ

T

分の時間が必要

1台を作るのに必要な時間

1分あたりに作れる自動車の台数はどんな式 で表されるか?

17

⇒1命令の処理時間

=実行時間

⇒単位時間あたり

の処理量

=スループット

N × T

1

T

(18)

パイプラインの考え方のまとめ

 パイプラインを使うと【単位時 間当たりの処理量】を増やすこ とができる

 スループットを増やすには、

各ステージの【実行時間】が

【短い】ほうが良い

第17回 計算機アーキテクチャ

18

(19)

パイプラインの考え方のまとめ

 パイプラインを使うと【単位時 間当たりの処理量】を増やすこ とができる

 スループットを増やすには、

各ステージの【実行時間】が

【短い】ほうが良い

第17回 計算機アーキテクチャ

19

(20)

パイプラインの考え方のまとめ

 パイプラインを使うと【単位時 間当たりの処理量】を増やすこ とができる

 スループットを増やすには、

各ステージの【実行時間】が

【短い】ほうが良い

第17回 計算機アーキテクチャ

20

(21)

パイプラインの考え方のまとめ

 パイプラインを使うと【単位時 間当たりの処理量】を増やすこ とができる

 スループットを増やすには、

各ステージの【実行時間】が

【短い】ほうが良い

第17回 計算機アーキテクチャ

21

(22)

命令をパイプラインにするには

命令の実行過程

4つのステージに分かれる

フェッチ( instruction fetch, F )

デコード( instruction decode, D )

実行( execution, E )

結果の格納( write back, W )

第17回 計算機アーキテクチャ

22

(23)

理想的なパイプライン

第17回 計算機アーキテクチャ

23

命令1

F D E W

命令2

F D E W

命令3

F D E W

命令4

F E D

命令5

F E

命令6

F

1クロックで1ステージが完了した場合の スループットはいくつか?

(24)

基本命令処理機構の構成 24

P C

レジスタ ファイル

(読み)

命令デコーダ

デ・[

データ メモリ

レジスタ ファイル

(書き)

演算結果フラグ 選択

回路

P C

+

+

A L

U デ・[

4

F D E W

(25)

パイプラインの実現

直接ハードウェアを結線する

前のステージの影響が即座に 次のステージに出る

ステージを独立して実行できない

ステージごとに結果を記録する

ステージの間にレジスタを挿入

パイプラインレジスタと呼ぶ

第17回 計算機アーキテクチャ

25

(26)

パイプラインの実装

第17回 計算機アーキテクチャ

26

P C

F D

レジスタ ファイル

(読み)

命令デコーダ

データ メモリ

レジスタ ファイル

(書き)

演算結果フラグ 選択

回路

P C

+

+

A L

U

4

D E

E W

(27)

パイプラインレジスタのまとめ

 基本命令のステージは、

【 F :フェッチ】 、 【 D :デコード】 、

【 E :実行】 、 【 W :結果格納】

の4つである

 パイプラインを実装するには、

ステージを独立させるための、

【パイプラインレジスタ】が必要

第17回 計算機アーキテクチャ

27

(28)

パイプラインレジスタのまとめ

 基本命令のステージは、

【 F :フェッチ】 、 【 D :デコード】 、

【 E :実行】 、 【 W :結果格納】

の4つである

 パイプラインを実装するには、

ステージを独立させるための、

【パイプラインレジスタ】が必要

第17回 計算機アーキテクチャ

28

(29)

パイプラインレジスタのまとめ

 基本命令のステージは、

【 F :フェッチ】 、 【 D :デコード】 、

【 E :実行】 、 【 W :結果格納】

の4つである

 パイプラインを実装するには、

ステージを独立させるための、

【パイプラインレジスタ】が必要

第17回 計算機アーキテクチャ

29

(30)

パイプラインレジスタのまとめ

 基本命令のステージは、

【 F :フェッチ】 、 【 D :デコード】 、

【 E :実行】 、 【 W :結果格納】

の4つである

 パイプラインを実装するには、

ステージを独立させるための、

【パイプラインレジスタ】が必要

第17回 計算機アーキテクチャ

30

(31)

パイプラインレジスタのまとめ

 基本命令のステージは、

【 F :フェッチ】 、 【 D :デコード】 、

【 E :実行】 、 【 W :結果格納】

の4つである

 パイプラインを実装するには、

ステージを独立させるための、

【パイプラインレジスタ】が必要

第17回 計算機アーキテクチャ

31

(32)

パイプラインレジスタのまとめ

 基本命令のステージは、

【 F :フェッチ】 、 【 D :デコード】 、

【 E :実行】 、 【 W :結果格納】

の4つである

 パイプラインを実装するには、

ステージを独立させるための、

【パイプラインレジスタ】が必要

第17回 計算機アーキテクチャ

32

(33)

パイプラインレジスタのまとめ

 基本命令のステージは、

【 F :フェッチ】 、 【 D :デコード】 、

【 E :実行】 、 【 W :結果格納】

の4つである

 パイプラインを実装するには、

ステージを独立させるための、

【パイプラインレジスタ】が必要

第17回 計算機アーキテクチャ

33

(34)

パイプラインの破綻

パイプラインがうまく動かないこと はあるのか?

第17回 計算機アーキテクチャ

34

(35)

ハザードの種類

 構造ハザード

 データハザード

 制御ハザード

第17回 計算機アーキテクチャ

35

(36)

構造ハザード

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

第17回 計算機アーキテクチャ

36

メモリに同時にアクセスする

・命令フェッチ

・データメモリ呼び出し

(37)

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

第17回 計算機アーキテクチャ

37

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

命令メモリを呼び出したい

でも前の命令がメモリを占有中

(38)

構造ハザードの結果

第17回 計算機アーキテクチャ

38

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 ×

次以降の命令も実行が遅くなる

(39)

データハザード

前の処理の結果(データ)を使わない と、次の処理が実行できない場合に 起こる

第17回 計算機アーキテクチャ

39

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

(40)

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

第17回 計算機アーキテクチャ

40

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 にデータが送れない)

(41)

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

第17回 計算機アーキテクチャ

41

lw $t4, 0($t2)

F D E W

add $s1,$t3,$t4

F

× ×

D E

sub $s2,$s1,$3

F

× × ×

li $t5, 5

F E D

li $t6, 10

F E

bne $t5,$s2,loop

F

t4 が決まらないとデコード

できない( ALU にデータが送れない)

(42)

制御ハザード

分岐命令がある場合に起こる

第17回 計算機アーキテクチャ

42

先読みした命令が実行されない

(43)

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

第17回 計算機アーキテクチャ

43

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 が更新される

=次に実行される行が決まる

(44)

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

次のプログラムを実行する際の パイプラインを示せ

プログラムは次ページに明記する

ハザードは指定した条件を満たした 場合のみ起こるものとする

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

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

44

(45)

実行するプログラム

第17回 計算機アーキテクチャ

45

la $s0, values addi $s3,$s2,4

sw $s1, 0($s0)

lw $t1, 4($s0)

add $s4,$t3,$t1

sw $s4, 8($s0)

(46)

ハザードの条件

lw 命令の実行 (E) はフェッチ (F) と 同時にできない

sw 命令の実行 (E) は結果格納 (W) と 同時にできない

前の命令の実行結果を使う命令の

デコード( D )は、前の命令の結果格納( W ) が終わった後にしかできない

制御ハザードはなし

(分岐命令がないですね)

46

(47)

ハザードのまとめ

第17回 計算機アーキテクチャ

47

(48)

来週のテーマ

ハザードの対策方法

第17回 計算機アーキテクチャ

48

参照

関連したドキュメント

逆にレジスタ中の値を8ビット単位でメモリに書き込む命令がsb(Store

meiji.ac.jp/~mk/fourier/fourier-lecture-notes.pdf , 以前は「画像 処理とフーリエ変換」というタイトルだったのを直した。 (2014〜).

 USB(Universal Serial Bus: ユニバーサル・シリアル・バ ス)は、コンピュータと周辺機器を接続する企画です。.

 USB(Universal Serial Bus: ユニバーサル・シリアル・バ ス)は、コンピュータと周辺機器を接続する企画です。.

 USB(Universal Serial Bus: ユニバーサル・シリアル・バ ス)は、コンピュータと周辺機器を接続する企画です。.

図 2 のパイプラインにおいて、SRAM に保存し たタグデータを比較するのは、比較器 2 の部分で、

5 管きょ基礎 管きょ設計Ⅰ 管きょ設計Ⅱ 処理場設計Ⅰ 処理施設の容量計算、水理計算、配置計画 処理場設計Ⅱ

79 7979 79 4.太平洋ルート 4.太平洋ルート 4.太平洋ルート 4.太平洋ルート対対対対大慶ルート大慶ルート大慶ルート大慶ルート 1 1 1 1両パイプラインの比較両パイプラインの比較両パイプラインの比較両パイプラインの比較 大慶ルートは、建設コストと建設期間において、太平洋ルートに対して比較優位を占めている