現代計算機アーキテクチャ (Modern Computer Architecture)

プロセッサの高速化技術から記憶階層の最適化まで。現代の圧倒的な計算能力がいかなる設計思想(アーキテクチャ)の上に成り立っているのかを、理論と定量的評価の両面から探求します。

Course Content

パフォーマンスの定量化

ムーアの法則からAmdahlの法則まで。CPU時間やスループットを指標とした、計算機システムの科学的な評価手法を学びます。

メモリアーキテクチャ

記憶階層(階層構造)の設計。時間的・空間的局所性を利用し、低速なメインメモリの影響を最小化する戦略を修得します。

キャッシュ最適化

キャッシュミスの分類(3C)と、ブロックサイズ、セットアソシアティビティなどのパラメータ最適化を詳解します。

パイプラインとハザード

RISC-Vをベースとした命令のオーバーラップ実行。データ・分岐ハザードを「フォワーディング」等で解決する手法を学びます。

命令レベルの並列化 (ILP)

動的スケジューリングと投機実行。パイプラインのストールを回避し、命令流から最大限の並列性を抽出する技術を修得します。

スレッドレベルの並列化 (TLP)

マルチコア・マルチプロセッサ。キャッシュコヒーレンスプロトコル(MSI/MESI)と、並列プログラムの同期と整合性を学びます。

Lecture Notes: アーキテクチャが描くロマンス

#01: Moore's Law of Expectations (パフォーマンス定量化)

「君への愛は年々進化しているよ」と彼は言いました。
しかし彼女は、ムーアの法則を独自の解釈で適用していました。

「ええ、あなたのパフォーマンスが18ヶ月ごとに2倍になるのは当然として、
私の『要求リスト』の集積密度も18ヶ月ごとに2倍になっているわ。

去年はディナーだけで満足(Speedup)できたけど、今年は指輪と海外旅行を同時実行(Parallelism)してくれないと、
私の満足度という指標(Metric)は向上しないのよ。」

#02: Locality of Affection (メモリアーキテクチャ)

「最近の僕たち、全然噛み合ってないね」と彼女が言いました。
彼は「時間的局所性(昨日話したこと)」も「空間的局所性(近くにある思い出)」も無視して、
全く新しい不満ばかりをぶつけていたからです。

彼女の脳内キャッシュは常にミス(Miss)を繰り返し、心は低速なメインメモリ(過去の全記録)を読み取りに行ってしまいました。
愛を長続きさせたいなら、新しい情報を詰め込む前に、まず共有済みのデータをヒット(Hit)させる努力が必要です。

#03: The Cold Start Conflict (キャッシュ最適化)

久しぶりのデート、会話が全く弾みません。
典型的な「コールド・スタート(Compulsory Miss)」の状態です。

彼は焦って、かつて彼女が好きだった話題を次々と投入しました(プリフェッチ)。
しかし、彼女の興味は既に別のドメインへ移っており、キャッシュは激しくコンフリクト(Conflict Miss)を起こしました。

一度汚れた(Dirty)データをライトバック(謝罪)せずに、新しい命令を書き込もうとしても、システムのハングアップは免れません。

#04: Data Hazard Jealousy (パイプライン)

「今の発言、さっきの話と矛盾してない?」
結婚記念日のレストランで、深刻なデータハザードが発生しました。

前の会話の結果(Write)が出る前に、次の話題(Read)を始めてしまったために、依存関係が崩壊したのです。
二人の間に「フォワーディング(根回し)」の回路が備わっていれば、
ディナーの雰囲気がパイプライン・フラッシュ(全台無し)になることはなかったでしょう。

#05: Speculative Regret (ILP / 投機実行)

「彼女はきっと、このサプライズを喜ぶはずだ」
彼はその推測に基づき、勝手に高価な指輪を買い、高級ホテルを予約しました(投機実行)。

しかし、予測は外れ、彼女は「今は仕事に集中したい」と告げました。
彼の人生のパイプラインは激しくロールバックされ、
費やしたコストと時間はすべて「無効な命令」として闇に消えていきました。

#06: The TLP Play-boy (TLP / マルチスレッド)

「僕は君だけを愛しているよ」と言いながら、
彼は時間を細かく区切り、複数の相手と同時並行で付き合っていました。

アーキテクチャ用語で言うところの「スレッドレベルの並列化(TLP)」です。
彼はコンテキスト・スイッチの天才でしたが、ある日、共有アカウントの設定ミスで同期(Synchronization)に失敗しました。

一貫性プロトコルが破綻した瞬間、彼のマルチスレッドな生活はデッドロックに陥り、回復不能なシステムダウンを迎えました。