RISC 與 CISC 的差異:指令集的設計理念與代表例比較
RISC(精簡指令集電腦)與 CISC(複雜指令集電腦)是關於指令集設計的兩種理念。RISC 使用少量簡單且長度固定的指令,容易進行管線處理。CISC 則使用大量複雜且長度可變的指令,一條指令可以完成更多工作。現在兩者的界線已經模糊,現代的 x86 處理器會在內部將 CISC 指令轉換為簡單的運算後再執行。因此,兩者的差異主要在於指令集與軟體環境方面才顯得重要。
| 項目 | RISC | CISC |
|---|---|---|
| 理念 | 使用少量簡單的指令。一條指令的工作量小,設計成可快速執行 | 使用大量強大的指令。有些指令可以一次執行多個步驟 |
| 指令的長度 | 固定(RISC-V 與 AArch64 的基本指令集為 32 位元等) | 可變(x86 的指令為 1~15 位元組) |
| 記憶體存取 | 載入/儲存(load/store)方式。接觸記憶體的只有載入與儲存指令,運算在暫存器之間進行 | 許多指令可以直接將記憶體中的資料作為運算元 |
| 暫存器 | 通用暫存器多(RISC-V 與 AArch64 為 32 個) | 較少(x86-64 的通用暫存器為 16 個) |
| 解碼 | 簡單,適合管線處理,硬體也可以做得小 | 複雜。現代 x86 的核心會將指令轉換為內部的微指令 |
| 程式碼大小 | 較大。不過可藉由壓縮指令擴充(Thumb 或 RISC-V 的 C 擴充)縮小 | 一條指令的工作量多,因此容易較為緊湊 |
| 代表例 | ARM、RISC-V、MIPS、PowerPC | x86 與 x86-64(Intel、AMD)、IBM z/Architecture |
| 主要用途 | 智慧型手機、嵌入式設備,近年也用於筆記型電腦與伺服器 | 個人電腦與伺服器。軟體相容性重要的領域 |
數值為具代表性的大致參考值,會因世代或產品而異。