"設計とは、無数の選択を制約することで、秩序を生み出す行為だ。CPUもまた、設計された秩序である。"
すべてのプログラムは、最終的にはCPU上で動く。
そして、CPUは単なる鉄とシリコンの塊ではない。
それは、人間の設計哲学と物理世界への挑戦が結晶化した、動く思想である。
この章では、CPUアーキテクチャと命令セット(Instruction Set Architecture, ISA)という、
最もハードでありながら最も思想的な層について掘り下げる。
CPUアーキテクチャとは何か?
CPUアーキテクチャとは、
**「コンピュータの中核部がどのように命令を解釈し、実行するかを定めた設計仕様」**である。
要素は多岐にわたるが、中心的な構成は次の通り:
- レジスタ設計:データを一時的に保持する高速記憶領域
- 命令セット:CPUが理解できる基本動作の集合
- メモリモデル:どのようにアドレス空間を扱うか
- パイプライン設計:命令実行をいかに並列化するか
- 割り込み処理:外部からのイベントをどう受け止めるか
つまり、CPUアーキテクチャとは、「このハードウェアはこう動く」という設計書そのものである。
命令セットとは何か?
命令セット(Instruction Set)は、
**「CPUが直接理解し、実行可能な最小単位の命令体系」**である。
例えばx86命令セットでは:
-
MOV
:データ転送 -
ADD
:加算 -
SUB
:減算 -
JMP
:無条件ジャンプ -
CMP
:比較
などが用意されている。
それぞれは、ビット列にマッピングされ、最終的に電気信号となってCPU内で解釈される。
命令セット=CPUにとっての母語である。
命令セットが異なれば、世界の見え方も異なる
同じ「加算」を行うにしても、命令セットによって指示の仕方は異なる。
- x86(CISCアーキテクチャ)
ADD EAX, EBX
- ARM(RISCアーキテクチャ)
ADD R0, R1, R2
x86は「加算元と加算先を指定する」のに対し、
ARMは「2つのオペランドを加算し、結果を第3のレジスタに保存する」設計。
この違いは、**アーキテクチャが「世界をどう分解し、再構成しようとしているか」**の違いに直結している。
CISCとRISC:二つの設計思想
CISC(Complex Instruction Set Computer)
- 複雑な命令を少ない行数で表現できる
- ハードウェアが多くの機能を肩代わりする
- 命令セットが大規模・多様化しやすい(例:x86)
RISC(Reduced Instruction Set Computer)
- 命令をできるだけ単純・均一にする
- すべての命令がほぼ同じ実行時間を持つ
- コンパイラによる最適化が前提(例:ARM, RISC-V)
この分岐は、単なる性能比較ではない。
それは、「機械にどこまで仕事をさせ、どこからは設計者が責任を持つか」という設計倫理の違いである。
レジスタ設計:動的世界のための静的拠点
CPU内部のレジスタは、
プログラムの実行中に使われる最も高速な記憶装置である。
種類も豊富だ:
- 汎用レジスタ(General Purpose)
- 特殊レジスタ(Stack Pointer, Program Counterなど)
- フラグレジスタ(条件分岐用ビット)
アセンブリ言語でレジスタを操作することは、
CPUの内部状態を直に触るということであり、
それは設計者にとって**「世界の心臓に直接触れる」**体験に他ならない。
メモリモデル:線形か、セグメントか
CPUがメモリにアクセスする方法もアーキテクチャに依存する。
-
セグメント方式(例:8086)
→ メモリ空間を「セグメント」と呼ばれる単位に区切る -
フラット方式(例:x86-64, ARM)
→ メモリは単一の線形空間として扱う
この設計は、
「物理空間の有限性をどう知覚させるか」
「アドレッシングのコストと安全性をどう分配するか」
という、極めて哲学的な選択である。
CPU設計における「選択」とは何か?
CPUアーキテクチャの設計は、無数の選択の積み重ねだ。
- 命令の種類
- レジスタの数
- メモリアクセスモデル
- 割り込み機構の有無
- マルチコア対応設計
これらすべてが、**「どこまでをハードに固定し、どこからを設計者に委ねるか」**という問いへの回答である。
CPUは、単なる演算装置ではない。
選択と制約の結晶であり、設計者への問いかけなのだ。
結語:CPUアーキテクチャとは、設計された物理法則である
私たちがアセンブリを書くとき、
それは単なる命令列ではない。
それは、ある設計思想に沿った世界の中で、動きを記述する行為である。
- どのレジスタを使うか
- どの命令を選ぶか
- どのメモリにアクセスするか
すべては、そのCPUが持つ設計された物理法則の中で決まる。
"アーキテクチャとは、ただの仕様ではない。それは、動作する宇宙の律法であり、設計者に課せられた静かな宿命である。"