Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Cpuの速度向上はいかに実現されたのか

2,851 views

Published on

Published in: Technology
  • Be the first to comment

Cpuの速度向上はいかに実現されたのか

  1. 1. CPUの速度向上はいかに実現されたのか? - 性能向上を支えた技術 -  
  2. 2. About MeName: Joongjin BaeBlog: http://baepiff.blogspot.com/Twitter: bae_j
  3. 3. 世界最古のComputer ENIACは1秒で約5000演算
  4. 4. 現代のCPUは1秒で約100億演算
  5. 5. 洗濯 脱水 乾燥
  6. 6. 寮に洗濯機が1台しかない場合 洗濯機殺す!
  7. 7. 問題の解決方法● 洗濯機の性能を上げて洗濯時間を 短縮● 洗濯機を増やす● 洗濯機、脱水機、乾燥機に分ける
  8. 8. CPUの性能指標● レイテンシ(latency) データ転送などを要求してから、 その結果が返送されるまでの遅延時間のこと● スループット(Throughput) 一般に単位時間当たりの処理能力のこと
  9. 9. 分けてみましょう 時間一体型 学生A(洗濯) 学生A(乾燥) 学生B(洗濯) 学生B(乾燥)分離型 学生A(洗濯) 学生A(乾燥) 学生B(洗濯) 学生B(乾燥)
  10. 10. 分けてみましょう 時間一体型 A A B B C C D D E E分離型 A A B B C C D D E E 2時間短縮
  11. 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. 12. CPU がやっていること● メモリから命令を取得 Instruction Fetch, IF● 命令を解釈・解析 Instruction Decoding, ID● メモリからデータを読込 Operand Fetch, OF● 計算を実行 Instruction Execution, EX● メモリにデータを書込
  13. 13. CPU がやっていること Fetch ID Decode IF Unit Unit Register File OF Unit EX Memory Execution Unit WB Load/Store Unit== 1個の命令実行
  14. 14. PIPELINEに戻って 時間 命令A 取得 解析 読込 実行 書込 命令B 取得 解析 読込 実行 書込 命令C 取得 解析 読込 実行 書込命 命令D 取得 解析 読込 実行 書込令 命令E 取得 解析 読込 実行 書込 パイプラインはスループットを飛躍的に向上させた技術
  15. 15. 性能を上げるためには● 均等なパイプライン段階● 同じ処理作業● 独立した作業● パイプラインのコストの最少化
  16. 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. 17. 同じ処理作業 時間学生A 洗濯 乾燥学生B 洗濯 すすぎ 乾燥学生C Stall 洗濯 乾燥学生D 洗濯 乾燥学生E 洗濯 乾燥 すすぎをすることでPipeline Stall が発生してしまう。
  18. 18. 独立した作業 時間学生A 洗濯 乾燥学生B 洗濯 乾燥学生C 確認 洗濯 乾燥学生D 洗濯 乾燥学生E 洗濯 乾燥赤い服を洗濯してもいいかを確認する作業が必要になるため遅くなる。CPUでは分岐予測、結果予測などの回避策
  19. 19. パイプラインのコスト● 一体洗濯機から洗濯機、乾燥機への入替えコスト● レイテンシの犠牲 洗濯機から乾燥機への移動コストが発生
  20. 20. これで充分でしょうか1 x = data[10];2 y = x + 10;3 a = b / c;4 d = e * f;2行は1行の結果(x)に依存するが、3,4行はxに依存しないため先に実行してもいい
  21. 21. Out-of-order実行in-order x=data[10] y=x+10 a=b/c d=e*fout-of-order 時間 x=data[10] 取得 解析 読込 実行 書込 y=x+10 取得 解析 読込 実行 a=b/c 取得 解析 読込 実行 書込 命 d=e*f 取得 解析 読込 実行 書込 令 xとの依存関係がない3行を先に実行してしまる
  22. 22. もうちょっと頑張って 時間 x=data[10] y=x+10 a=b/c命令 d=e*f SuperScalarプロセッサ は複数のパイプラインを用意し同時に命令を実行できる プロセッサ
  23. 23. CPUのレイテンシを向上するためには???
  24. 24. The answer is CACHE!!!
  25. 25. CPUとメモリクロック比較4000350030002500 CPU2000 RAM15001000500 0 1990 1995 2000 2005 2010
  26. 26. なぜCACHEが必要?● CPUの実行ユニットにメモリ直結した場合 アクセスだけで200cycleが必要● 命令実行は1cycleで済む● 待ちが発生してしまう Execution Memory Unit
  27. 27. Cache用語● cache hit キャッシュに欲しいデータがある● cache miss キャッシュに欲しいデータがない● miss penalty cache miss時メモリからデータを取得しキャッシュ に入れるコスト● hit latency cache hit時のコスト
  28. 28. なぜ複数のCACHE? Execution L1 Unit Memory Cache 2 cycle 200 cycle● L1 cacheは現実上サイズを簡単に増やせない 頑張って256KB● サイズを増やすことでcache hit rateは上がるがcache latency は悪くなる● cacheにほしいデータがなかった場合の時間のロスが大きい
  29. 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. 30. まとめ● Pipeline = 流れ作業の効率化● Superscalar = pipelineの並列化● Out-of-Order = 先に進めるなら進め● Cache = 待ち時間の短縮● RISC & CISC、分岐予測、結果予測、投機実 行、prefetch等は宿題
  31. 31. 参考図書

×