コンピュータアーキテクチャ
ハードウェアとソフトウェアの境界の設計。フォン・ノイマン・ボトルネックへの対処が多くの技術の動機。
ハードウェアとソフトウェアの境界の設計。
フォン・ノイマン型#
現代のコンピュータのほぼすべてがこの構成。
[[CPU]] ←→ [[メモリ]] ←→ 入出力
↑
[[キャッシュ]]命令もデータも同じメモリに置くのが特徴。 プログラムをデータとして扱えるので、 コンパイラや JIT が成立する。
同時に、CPU とメモリの間の帯域が全体の律速になる (フォン・ノイマン・ボトルネック)。 キャッシュ、 パイプライン、 GPU はいずれも この制約への対処と見ることができる。
性能の式#
3 つの因子のどれを改善するかで手法が分かれる。
| 因子 | 改善手段 |
|---|---|
| 命令数 | 命令セット設計、コンパイラ最適化 |
| CPI | パイプライン、スーパースカラ、キャッシュ |
| クロック周期 | 微細化(近年は頭打ち) |
クロックの向上が 2000 年代に電力の壁で止まったため、 並列化が唯一の残された道になった。
参考文献#
- John L. Hennessy, David A. Patterson. Computer Architecture: A Quantitative Approach, 6th ed. Morgan Kaufmann, 2017.
- David A. Patterson, John L. Hennessy. Computer Organization and Design: RISC-V Edition, 2nd ed. Morgan Kaufmann, 2020.