More Related Content Similar to Cpuの速度向上はいかに実現されたのか Similar to Cpuの速度向上はいかに実現されたのか (20) More from Joongjin Bae (10) Cpuの速度向上はいかに実現されたのか7. 問題の解決方法
●
洗濯機の性能を上げて洗濯時間を
短縮
● 洗濯機を増やす
●
洗濯機、脱水機、乾燥機に分ける
8. CPUの性能指標
● レイテンシ(latency)
データ転送などを要求してから、
その結果が返送されるまでの遅延時間のこと
● スループット(Throughput)
一般に単位時間当たりの処理能力のこと
9. 分けてみましょう
時間
一体型 学生A(洗濯) 学生A(乾燥) 学生B(洗濯) 学生B(乾燥)
分離型 学生A(洗濯) 学生A(乾燥)
学生B(洗濯) 学生B(乾燥)
10. 分けてみましょう
時間
一体型 A A B B C C D D E E
分離型 A A
B B
C C
D D
E E 2時間短縮
11. 4段階に分けると
時間
一体 A A A A B B B B C C C C D D D D E E E E
分離 A A A A
B B B B
C C C C
D D D D
E E E E
3時間短縮
pipelineの説明終了!
12. CPU がやっていること
●
メモリから命令を取得
Instruction Fetch, IF
● 命令を解釈・解析
Instruction Decoding, ID
●
メモリからデータを読込
Operand Fetch, OF
● 計算を実行
Instruction Execution, EX
● メモリにデータを書込
13. CPU がやっていること
Fetch ID Decode
IF
Unit Unit
Register File
OF Unit
EX
Memory
Execution
Unit WB
Load/Store
Unit
== 1個の命令実行
14. PIPELINEに戻って
時間
命令A 取得 解析 読込 実行 書込
命令B 取得 解析 読込 実行 書込
命令C 取得 解析 読込 実行 書込
命 命令D 取得 解析 読込 実行 書込
令
命令E 取得 解析 読込 実行 書込
パイプラインはスループットを飛躍的に向上させた技術
16. 均等なパイプライン段階
時間
学生A 1 2 3 3 3 3 4 4
学生B 1 2 3 3 3 3 4 4
学生C 1 2 3 3 3 3 4 4
学生D 1 2 3 3 3 3 4 4
Stall発生
一番処理時間が長い段階のパイ
プラインの影響を受ける。
17. 同じ処理作業
時間
学生A 洗濯 乾燥
学生B 洗濯 すすぎ 乾燥
学生C Stall 洗濯 乾燥
学生D 洗濯 乾燥
学生E 洗濯 乾燥
すすぎをすることでPipeline Stall
が発生してしまう。
18. 独立した作業
時間
学生A 洗濯 乾燥
学生B 洗濯 乾燥
学生C 確認 洗濯 乾燥
学生D 洗濯 乾燥
学生E 洗濯 乾燥
赤い服を洗濯してもいいかを確認する
作業が必要になるため遅くなる。
CPUでは分岐予測、結果予測などの回避策
19. パイプラインのコスト
● 一体洗濯機から洗濯機、乾燥機への入替えコスト
● レイテンシの犠牲
洗濯機から乾燥機への移動コストが発生
20. これで充分でしょうか
1 x = data[10];
2 y = x + 10;
3 a = b / c;
4 d = e * f;
2行は1行の結果(x)に依存するが、3,4行はxに依
存しないため先に実行してもいい
21. Out-of-order実行
in-order
x=data[10]
y=x+10
a=b/c
d=e*f
out-of-order 時間
x=data[10] 取得 解析 読込 実行 書込
y=x+10 取得 解析 読込 実行
a=b/c 取得 解析 読込 実行 書込
命 d=e*f 取得 解析 読込 実行 書込
令
xとの依存関係がない3行を先に実行してしまる
22. もうちょっと頑張って
時間
x=data[10]
y=x+10
a=b/c
命
令 d=e*f
SuperScalarプロセッサ
は複数のパイプラインを用意し同時に命令を実行できる
プロセッサ
26. なぜCACHEが必要?
● CPUの実行ユニットにメモリ直結した場合
アクセスだけで200cycleが必要
● 命令実行は1cycleで済む
● 待ちが発生してしまう
Execution Memory
Unit
27. Cache用語
● cache hit
キャッシュに欲しいデータがある
● cache miss
キャッシュに欲しいデータがない
● miss penalty
cache miss時メモリからデータを取得しキャッシュ
に入れるコスト
● hit latency
cache hit時のコスト
28. なぜ複数のCACHE?
Execution L1
Unit Memory
Cache
2 cycle 200 cycle
● L1 cacheは現実上サイズを簡単に増やせない
頑張って256KB
● サイズを増やすことでcache hit rateは上がるがcache latency
は悪くなる
● cacheにほしいデータがなかった場合の時間のロスが大きい
29. なぜ複数のCACHE?
Execution L1 L2
Unit Memory
Cache Cache
2 cycle 10 cycle 200 cycle
● L1 cacheでcache latencyを向上
● L2 cacheでcache hit rateを向上
● 平均アクセスタイムの改善
hit latency + (cache hit / cache miss) * cache penalty
30. まとめ
● Pipeline = 流れ作業の効率化
● Superscalar = pipelineの並列化
● Out-of-Order = 先に進めるなら進め
● Cache = 待ち時間の短縮
● RISC & CISC、分岐予測、結果予測、投機実
行、prefetch等は宿題