2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

"設計とは、無数の選択を制約することで、秩序を生み出す行為だ。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が持つ設計された物理法則の中で決まる。

"アーキテクチャとは、ただの仕様ではない。それは、動作する宇宙の律法であり、設計者に課せられた静かな宿命である。"

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?