CPUアーキテクチャとISA
命令セットアーキテクチャ(Instruction Set Architecture)はハードウェアとソフトウェアの境界を定める契約。代表的なISAと、現代CPUの実行機構を扱う。
主要ISA
- x86_64: CISC系。リトルエンディアン。SIMD拡張 parallel-computing の AVX-512 を含む。Intel VT-x で仮想化支援(virtualization-hypervisor)。
- ARM:
ARMv<X>がアーキテクチャ、ARM<X>がプロセッサ。プロファイルは A(サーバ)/R(リアルタイム)/M(組み込み)。v8 から64bit、A64モードは条件付き命令やバレルシフタを持つ。Exception Level(EL0..3)で特権を分離、TrustZone で論理的にメモリを分離(Intel SGX相当)。バイエンディアン。 - MIPS / RISC-V: RISC系の学術・オープンISA。
メモリと整合性
- ハーバードアーキテクチャ: 命令メモリとデータメモリを分離(対するノイマン型は共有)。
- メモリ整合性モデル(Total Store Ordering 等)は Rosetta 2 のような x86→ARM 変換で問題になる。Apple は自社CPUにIntelのメモリオーダを追加し、変換コード実行時にモードを切り替えることで高速化した。
高速化機構
- アウトオブオーダー実行: 依存関係のない命令を先に実行する。
- 投機実行(speculative execution): 分岐予測に基づき先行実行する。これが cpu-side-channel-attacks (Spectre)の温床になる。
- 算術回路の例として、桁上げ先見加算器(パラレルプリフィックスアダー)である Kogge-Stone Adder / Sklansky Adder がある。
学習リソース
- パタヘネ(『コンピュータの構成と設計』): アーキテクチャの定番教科書。
- CPUエミュレーション・自作の文脈は operating-system-kernel や NES エミュレータ等とも繋がる。