コンピュータアーキテクチャの論文を読んでいたのだが、どうもよく知らない項目がある。 よく考えてみたらコンピュータアーキテクチャの最新トレンドも含め最近勉強量が不足していたので、ここらへんでもう一度復習しておきたい。 せっかくなので海外の大学の講義資料を読んでみよう。
- Advanced Computer Architecture
https://www.ece.ucsb.edu/~strukov/ece154BSpring2018/home.htm
せっかくなのでまとめていく。
目次
- 1. 半導体のトレンドと背景
- 2.半導体の性能向上
- 3.半導体の性能向上
- 4. キャッシュ階層
- 5. キャッシュ階層
- 6. 高度なキャッシュ最適化
- 7. ILPの向上テクニック
- 8. ILPの向上テクニック, Tomasuloのアルゴリズム
- 9. 分岐予測
- 10. 複数命令発行の技術
1. Introduction
- コンピュータの基本 (歴史的なトレンド・性能メトリック):1週間
- メモリ階層の設計:2週間
- 命令レベル並列性(静的・動的なスケジューリング、投機的実行):2.5週間
- データレベル並列性(ベクトル、SIMD、GPU):2.5週間
- スレッドレベル並列性(共有メモリアーキテクチャ・動機及びキャッシュコヒーレンシ):1週間
この講義の目標
この講義で学ぶこと
コンピュータ技術のトレンド
歴史的なコンピュータアーキテクチャの知恵
過去 | 「電力は問題にならない、トランジスタは高価」と言われていた。 |
---|---|
現代 | 「電力の壁」が問題になる。トランジスタの数は問題にならない。 |
過去 | 命令レベル並列性はコンパイラ・イノベーション(アウトオブオーダ、投機実行、VLIW)により十分に向上する。 |
---|---|
現代 | 「ILPの壁」ILPを向上するためにはより多くのハードウェアが必要となる。 |
過去 | 乗算は低速・メモリアクセスは高速 |
---|---|
現代 | 「メモリの壁」メモリは低速、乗算は高速 |
過去 | 単一プロセッサの性能は1.5年で2倍になる |
---|---|
現代 | 電力の壁+ILPの壁+メモリの壁=ブリックの壁。単一プロセッサの性能向上は止まった。 |
これにより、チップ設計の方針が変わった。「複数のコアを搭載する時代に」
- 2年でチップ内のプロセッサ数が2倍に増加する
- よりシンプルなプロセッサがより効率が良い。
コンピュータのトレンド・単一プロセッサの性能向上
問題:下記のグラフにおける「性能」はどのように定義されているのか?
解答1:性能は一般的に特定のタスクをどれくらいの速度で実行できるのかで定義される。
- 性能 = 1/ExecTime
- ExecTime = IC * CCT * CPI
- IC : Instruction Count, CCT : Clock Cycle Time, CPI = Clocks Per Instruction
解答2:現在は性能に関して様々な評価基準が存在している。どのような評価基準が存在しているのか?
典型的な性能評価基準:
- 性能を測定するための一般的な方法はベンチマークプログラムを実行することである。
バンド幅とレイテンシ
バンド幅 / スループット
- ある時間内の行われる仕事量
- プロセッサは10,000 - 25,000 倍の向上を成し遂げてきた。
- メモリ及びディスクでは300-1200倍の向上を成し遂げてきた。
レイテンシ及びレスポンス時間
- イベントが開始されてから終了するまでの時間
- プロセッサは30-80倍の向上を成し遂げてきた。
- メモリ及びディスクは6-8倍の性能向上を成し遂げてきた。