MIPS 指令集
/ mips /
MIPS 是一個經典的 RISC 指令集架構,數十年來都是計算機結構課程與教科書中的標準教學 ISA,也是 RISC-V 的近親。如果 RISC-V 是本領域所依循的食譜,MIPS 就是同一傳統中那本較舊的食譜——相似到你學會其一,幾乎一切都能直接轉用到另一個。它在 1980 年代出自史丹佛,曾驅動從工作站到電玩主機到路由器的種種裝置。
它的設計徹頭徹尾是 RISC:簡單、定長的 32 位元指令、一個只有載入與儲存碰記憶體的載入-儲存架構,以及 32 個通用暫存器(其中 0 號暫存器被硬接成零,就和 RISC-V 的 x0 一樣)。它的三種指令格式——R 型給暫存器算術、I 型給立即值與載入/儲存、J 型給跳躍——正是你在 RISC-V 中所見格式的直系祖先。家族相似度如此之強,以至於針對同一件事的 MIPS 程式與 RISC-V 程式,看起來就像同一種語言的方言:「add」、「lw」、「sw」、「beq」意思基本相同。
MIPS 在這裡主要作為一座學習橋梁與一段誠實的歷史。它顯示 RISC-V 中那些乾淨的 RISC 想法並非新穎或未經驗證——它們早在很久以前就被想透並出貨在真實、商業上成功的硬體中。誠實的提醒是:MIPS 不像 RISC-V,它曾是一個由公司掌控、需付費授權的專有架構,而這正是 RISC-V 被創造出來要彌合的那道開放性鴻溝。懂 MIPS 會讓 RISC-V 立刻變得熟悉,反之亦然。
MIPS 的加法是「add $t0, $t1, $t2」、載入是「lw $t0, 0($t1)」;RISC-V 的對應寫法是「add x5, x6, x7」與「lw x5, 0(x6)」。暫存器名稱與語法不同,底下卻是同一個 RISC 概念。
MIPS 與 RISC-V 是同一種 RISC 語言的方言——學會一個,另一個幾乎免費奉送。
MIPS 早在數十年前就在真實出貨的硬體中證明了 RISC 路線——但它是專有且需授權的。RISC-V 的主要不同不在設計(兩者相似),而在 ISA 本身是開放且免費的。