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 エミュレータ等とも繋がる。

関連: _moc-systems / elf-format / virtualization-hypervisor