指令集架構(ISA)

載入-儲存架構

載入-儲存架構是一種建立在一條嚴格規則上的 ISA:只有特殊的載入與儲存指令可以碰記憶體,其餘一切純粹在暫存器上運作。這就像一條廚房規則:你只能用流理檯上的食材下廚——要用儲藏室裡的任何東西,必須先把它搬出來(載入),要收起一道做好的菜,必須把它搬回去(儲存)。你永遠不能去攪一鍋還擺在儲藏室裡的湯。

實務上這表示一條算術或邏輯指令從暫存器讀入它的輸入、把輸出寫到暫存器;它根本沒有辦法指名一個記憶體位置。所以對住在記憶體裡的值做計算,總是遵循同樣的三拍節奏:把值載入暫存器、在暫存器上計算、把結果存回記憶體。RISC-V 與 MIPS 是教科書級的載入-儲存架構;這個設計是 RISC 的定義性特徵之一。

為何要加上這樣的限制?因為記憶體比暫存器慢得多也更不穩定,把所有記憶體存取局限在兩種被充分理解的指令型別上,使整台機器更簡單、更規律、也更容易高速管線化——硬體永遠確切知道哪些指令可能因等記憶體而停頓。誠實的對比是「暫存器-記憶體」(或「記憶體-記憶體」)架構,也就是 CISC 風格,其中像 x86 的「add」這樣的指令可以直接從記憶體讀一個運算元、做數學、甚至在一條指令裡寫回記憶體。那更方便也更密,但每一條這樣的指令裡都藏著一次記憶體存取,使高速實作變得複雜。

在 x86(暫存器-記憶體)上,你可能寫一條指令就把一個記憶體值加進暫存器。在 RISC-V(載入-儲存)上,同一件事需要兩條:「lw x5, 0(x10)」載入,再「add x6, x6, x5」計算——以兩個簡單步驟取代一個複雜步驟。

載入-儲存把一條 CISC 的「記憶體加算術」指令拆成一條載入加一個暫存器運算。

載入-儲存並不表示「要跑的指令總數更少」。它往往表示同一件事用更多、更小的指令——賭注在於每一條都簡單到能跑得更快、更易管線化,使總時間仍然勝出。

又称
register-register architectureload/store ISA載入儲存架構