指令集架構(Instruction Set Architecture)是 CPU 與軟體之間的介面定義,規定了指令集合、暫存器組織、記憶體模型和例外處理方式。ISA 是電腦系統中最關鍵的抽象層,決定了編譯器產生什麼樣的機器碼,以及作業系統如何與硬體互動。
| ISA | 類型 | 指令數 | 長度 | 應用 |
|---|---|---|---|---|
| x86/x64 | CISC | 數百 | 變長 | PC / 伺服器 |
| ARM | RISC | ~100 | 固定 32 位元 | 行動裝置 |
| RISC-V | RISC | ~40 | 固定 32/64 位元 | 嵌入式 / 學術 |
| MIPS | RISC | ~100 | 固定 32 位元 | 網路 / 嵌入式 |
CISC(複雜指令集)提供豐富的指令,硬體複雜,如 x86 使用微碼實現。RISC(精簡指令集)指令簡單固定,硬體簡潔,適合低功耗和高頻率設計。現代 x86 處理器內部也使用 RISC 風格的微操作(μop)。
RISC 指令通常使用固定長度格式(如 RISC-V 為 32 位元),分為 R 型(暫存器)、I 型(立即數)、S 型(儲存)、B 型(分支)、U 型(上位立即數)和 J 型(跳躍)。
# RISC-V R-type (ADD) # 31:25 | 24:20 | 19:15 | 14:12 | 11:7 | 6:0 # funct7 | rs2 | rs1 | funct3 | rd | opcode # 0000000 | 00001 | 00010 | 000 | 00110| 0110011 # ADD x6, x4, x5