跳至內容

MIPS架構

出自Taiwan Tongues 台語維基
於 2025年8月22日 (五) 23:56 由 TaiwanTonguesApiRobot留言 | 貢獻 所做的修訂 (從 JSON 檔案批量匯入)

(差異) ←上個修訂 | 已批准修訂 (差異) | 最新修訂 (差異) | 下個修訂→ (差異)

MIPSMicroprocessor withoutInterlockedPipelineStages), 是一種採取精簡指令集(RISC)的指令集架構(ISA), 由美國 MIPS 電腦系統公司開發,現為美普思科技。MIPS 廣泛被使用佇濟濟電子產品、網路裝置、個人娛樂裝置佮商業裝置。上早的啊 MIPS 架構是三十二位元,上新的版本已經變做六十四个元。商業市場主要競爭對手為 ARM 佮 RISC-V。

MIPS 架構有偌个版本,包括講 MIPS I、II、III、IV,以及 MIPS V,𪜶各是 MIPS 六十四分之三十二(三十二位元、六十四位元的實現)發佈的五个版本。古早的 MIPS 架構干焦三十二位元的版本,隨後才開發六十四位元的版本。節甲二空一七年四月,MIPS 六十四分之三十二的目前版本是 MIPS 六十四分之三十二 Release 六。MIPS 六十四分之三十二佮 MIPS I-V 的主要區別毋但佇伊除了使用者態架構外,閣定義特權核心模式的系統控制協處理器。

MIPS 架構有幾个可選的拓展,比如講 MIPS ma三 D,伊是一个專用於常見三 D 計算任務的浮點 SIMD 指令集的簡單集合;MDMX(MaDMaX)是一个應用閣較廣泛的整數 SIMD 指令集,伊使用六十四位元浮點數暫存器;MIPS 十六 e 為著提供指令流壓縮的功能,這會當減細條程式的體積;MIPS MT 則提供真濟執行緒的能力。

佇一寡大學佮技術學校內面電腦架構的課程上,學生囡仔通常會學習 MIPS 架構。這个架構誠大的影響後來的精簡指令集架構,如 Alpha。二空二一年三月,MIPS 宣佈 MIPS 架構的開發已經結束,因為該公司當咧向 RISC-V 過渡。

歷史

MIPS 架構的頭一个版本是由 MIPS 電腦系統公司做其實 R 二千微處理器設計的,這第一个 MIPS 的實現。MIPS 和 R 兩千攏是佇一九八五年做伙推出的。當 MIPS II 推出時陣,MIPS 閣較號名做 MIPS I,以區別於新版本。

MIPS 電腦系統公司的 R 六千微處理器(一九八九年)嘿頭一个 MIPS II 實現,專為侍服器設計,由 Bipolar Integrated Technology 製造佮銷售,但是佇商業上失敗。佇一九九空年代中期,誠濟有用佇1875入式系統的新三十二位元 MIPS 處理器攏是 MIPS II 實現,因為一九九一年引入六十四位元 MIPS III 架構,一直到一九九九年 MIPS 三十二捒出進前,MIPS II 攏是上新的三十二位元 MIPS 架構。

MIPS 電腦系統公司的 R 四千微處理器(一九九一年)嘿頭一个 MIPS III 實現。伊設計用著個人、工作站和侍服器電腦。MIPS 電腦系統積極推廣 MIPS 架構佮 R 四千,建立進階計算環境(ACE)聯盟以捒進其進階 RISC 計算(ARC)標準,旨咧將 MIPS 建立為主導的個人計算平台。ARC 個人電腦差不多無成功,猶毋過 R 四千(和 R 四千四百衍生產品)廣泛用佇工作站和侍服器電腦,尤其是其上大的使用者矽谷圖形公司(SGI)。 R 四千的其他的用途包括高端1875入式系統佮超級電腦。MIPS III 最後由足濟躉入稀微處理器實現。Quantum Effect Design 的 R 四千六百(一九九三年)佮其衍生產品廣泛應用佇高端躉入式系統佮低階工作站佮侍服器。MIPS 科技的 R 四千兩百(一九九四年)專為1875入式系統、筆記型電腦和個人電腦設計的。NEC 製造的衍生產品 R 四千三百 i 用佇咧 N 六十四遊戲機。N 六十四佮 PlayStation 是一九九空年代中期 MIPS 架構處理器的上大使用者之一。

第一啦 MIPS IV 實現是 MIPS 科技 R 八千微處理器晶片組(一九九四年)。 R 八千的設計始佇矽谷圖形公司,伊干焦用高端工作站和侍服器,用佇高效能浮點工課負載關鍵的科學佮技術應用。尾仔的實現是 MIPS 科技的 R 一孵(一九九六年), Quantum Effect Devices 的 R 五千(一九九六年)和 RM 七千(一九九八年)。 NEC 佮東芝製造佮銷售的 R 一爿及其衍生產品予人 NEC、Pyramid Technology、SGI 和 Tandem Computers(以及其他的公司)用佇工作站、侍服器佮超級電腦。R 五千和 R 七千通過高端1875入式的系統、個人電腦佮低階工作站佮侍服器。東芝 R 五千的衍生產品 R 五千九百用佇咧索尼的 Emotion Engine,該 ia̋n-jín 為其 PlayStation 二遊戲機提供動力。

MIPS V 佇一九九六年十月二一微微仔處理器論壇上佮 MIPS 數位媒體擴充(MDMX)擴充做伙發布,旨咧提高三 D 圖形變換的效能。佇一九九空年代中期,非楷入式去 MIPS 微處理器的主要用途是 SGI 的圖形工作站。MIPS V 使用干焦整數的 MDMX 擴充,才有提高三 D 圖形應用程式的效能。MIPS V 毋捌真正實現。一九九七年五月十二號,SGI 發佈矣「H 一」(「 野獸」)和「H 二」(「 船長」)微處理器。前者計畫是頭一个 MIPS V 實現,按算佇一九九九年頂半年推出。「H 一」和「H 二」專案尾仔敆做伙,終其尾佇一九九八年取消。雖然無任何 MIPS V 實現,猶毋過 MIPS 六十四 Release 一(一九九九年)是因為 MIPS V 並保留其實所有功能成做可選的協處理器一(FPU)功能,號做配對單精度(Paired-Single)。

當 MIPS 科技公司佇一九九八年對 SGI 拆出來的時陣,伊重新專注於1875入式的市場。一直到 MIPS V,逐个後續版本攏是前一个版本的超格超集,但是發現這是一个問題,隨後架構更改做分別定義三十二位元佮六十四位元:MIPS 三十二和 MIPS 六十四。兩个人攏佇咧一九九九年推出。MIPS 三十二是因為 MIPS II,, 並帶有 MIPS III、MIPS IV 和 MIPS V 的一寡附加特性;MIPS 六十四是 MIPS V。NEC、東芝佮 SiByte(後來去予博通收去)佇咧 MIPS 六十四發布了後攏有得著許可證。飛利浦、LSI Logic、IDT、Raza Microelectronics , Inc .、凱為、龍芯和君正已經加入其中。MIPS 三十二 / MIPS 六十四 Release 五佇二空一二年十二月六號發布。第四版予人跳過,因為佇足濟亞洲文化內底,數字四予人認為是無吉利的。

二空一八年六月—美國矽谷新創 AI 晶片公司 Wave Computing 宣佈完成收購 MIPS 公司股權,MIPS 公司維持獨立運作,並按算開源 MIPS 架構。

二空一八年十二月,MIPS 架構的新所有的人 Wave Computing 宣佈 MIPS ISA 將佇一个號做 MIPS 開放計劃的專案當中開源。該計畫旨咧開放著三十二位元和六十四位元設計的上新版本的存取,使其無需任何許可或者是版稅會使用,並且授予參與者現有 MIPS 專利的許可。

二空一九年三月,該架構的一个版本免版稅許可下可用,就是過年晚的時陣該程式再一改關起來。

二空二一年三月,WaveComputing 宣佈停止 MIPS 架構的開發。該公司已經加入 RISC-V 基金會,未來的處理器設計從是因為 RISC-V 架構。

設計的

MIPS 是一種模組化架構,上濟支援四个協處理器(CP 一分之零 / 三分之二)。 佇咧 MIPS 術語內底,CP 零是系統控制協處理器(MIPS I-V 中處理器的重要部份,佮實現相關), CP 一是會當選的浮點運算器(FPU), CP 三分之二是會當選的由實現定義的協處理器(MIPS III 刪除了 CP 三並將其他操作碼重新用其他目的)。 比如講,佇咧 PlayStation 電動遊戲機內底,CP 二是幾何變換 ia̋n-jín(GTE), 伊會當加速三 D 電腦圖形中的幾何處理。

版本

MIPS I

MIPS 是一種載入-儲存架構(嘛講號做暫存器-暫存器架構); 除了用於存取電腦記憶體的載入 / 儲存指令外,所有的指令攏對暫存器進行的操作。

暫存器

MIPS I 有三十二个三十二位元通用暫存器(GPR)。 暫存器 $ 空寫死為空,寫入去的內容將被擲捒。暫存器 $ 三十一是連結暫存器。對佮其他指令非同步執行的整數乘法佮除法指令,提供了一對三十二位元暫存器 _ HI _ 和 _ LO _。有一小組指令用於在通用暫存器和 HI / LO 暫存器之間複製資料。

程式計數器(PC)有三十二位元。低二位總是替空,因為乎 MIPS I 指令有三十二位元長,並且佮𪜶的自然字邊界對齊。

指令格式

指令分做三種類型:R 型(Register)、 I 型(Immediate)和 J 型(Jump)。 三種類型的指令的上懸六个攏總為六个的 opcode 碼。對二十五个落崎,

  • R 型指令用連紲三个五个二進位碼來表示三个暫存器的位址,然後用一个五位二進位碼來表示徙位的位數(若是無使用移位元運算,則攏總無咧做), 最後為六位的 function 碼(伊佮 opcode 碼共同決定 R 型指令的具體操作方式);
  • I 型指令用連紲兩个五个二進位碼來表示兩个暫存器的住址,然後是一个十六位元二進位碼來表示的一个隨數二進位碼;
  • J 型指令用二十六位二進位碼來表示跳轉目標的指令位址(實際的指令位址應為三十二位元,其中上低兩位做零)。

三種用佇核心指令集的指令圖示如下:

CPU 指令

MIPS I 有載入佮儲存八位元的位元組、十六位元的半字佮三十二位元的字的指令。干焦支援一種定址模式:基址 + 位徙。因為 MIPS I 是三十二位架構,所致載入少佇三十二位元的值需要將資料有符號抑是無符號擴充到三十二位元。以「unsigned」為字尾的載入指令執行無符號擴充;抑無執行有符號擴充。載入指令對 GPR(rs)的內容中取得基址,並且結果寫入另外一个 GPR(rt)。 儲存指令對 GPR(rs)的內容中取得基址,對另外一个 GPR(rt)取得儲存資料。所有載入佮儲存指令攏通過將基址佮符號擴充的十六位元隨數相加來計算記持體位址。MIPS I 要求所有記持體存取攏佮其自然字爿界對齊,抑無會發出各樣訊號。「倒」抑是「正」為字尾的載入 / 儲存字指令用支援高效的無對同記憶體存取。所有載入指令以後攏有一條指令的載入延遲槽。載入去延遲槽內底的指令袂使使用載入指令載入的資料。載入去延遲槽會當坉充一條無依賴於載入的指令;若揣無按呢的指令,著愛用 nop 代替。

MIPS I 有執行加法佮減法的指令。遮指令對兩个 GPR(rs 和 rt)取得𪜶的運算元,並將結果寫入第三个 GPR(rd)。 此外,加法會使對十六位元隨數(有符號擴充做三十二位元)中取得運算元之一。加減法指令有兩種變體:預設的情況下,若結果溢个是發出異常訊號;帶有「unsigned」這字尾的指令袂發出異常訊號。溢位檢查欲結果解說為三十二位元二補數整數。MIPS I 有執行照位元邏輯 AND、OR、XOR 和 NOR 的指令。遮指令對兩个 GPR 取得其運算元並將結果寫入第三个 GPR。AND、OR 和 XOR 指令嘛會當對十六位元隨數(無符號擴充到三十二位元)中取得運算元之一。若指定的關係為真的抑是假的,著 Seton 關係指令共一抑是零寫入目標暫存器。遮的指令的運算元來自兩个 GPR 抑是一个 GPR 佮一个十六位元隨數(符號擴充做三十二位元), 並將結果寫入第三个 GPR。預設的情況下,運算元被解說做有符號整數。以「unsigned」為字尾的指令的變體將運算元解說為無符號整數(即使是對來自有符號擴充十六位元隨數的運算元)。

Load Immediate Upper 指令將十六位元隨數複製到 GPR 的高十六位元。伊佮 Or Immediate 指令結合使用以將三十二位元隨數載入到暫存器當中。

MIPS I 有執行左右邏輯移位佮正算後徙位的指令。運算元對一个 GPR(rt)得著,並且結果寫入另外一个 GPR(rd)。 位徙的距離是對 GPR(rs)抑是五位「位徙量」(「 sa」欄位)得著的。

MIPS I 有符號佮無符號整數乘法佮除法的指令。遮指令對兩个 GPR 取得其運算元,並共結果寫入去一對稱為 HI 和 LO 的三十二位元暫存器,因為𪜶可能佮其他 CPU 指令分開(並同時)執行。對乘法,六十四位元乘積的懸位佮低位分別寫入 HI 和 LO。對除法,商寫入去 LO,餘數寫入 HI。為著欲存取結果,提供著一對指令(對 HI 徙振動佮 LO 徙振動)將 HI 抑是 LO 彼个內容複製甲講 GPR。遮的指令是互鎖的:著 HI 和 LO 的讀讀袂愈過未完成的愛寫入 HI 和 LO 的算講指令。另外一對指令(Move to HI 抑是 Move to LO)將 GPR 彼个內容複製甲講 HI 和 LO。遮的指令用佇咧例外處理了後將 HI 和 LO 恢復到其原始的狀態。讀取 HI 抑是 LO 的指令著愛由無寫入 HI 抑是 LO 彼兩條指令分隔。

所有 MIPS I 控制流指令了後需要接一个分支延遲槽。除非分支延遲槽用執行有用工課的指令添充,抑無欲用 nop。MIPS I 分支指令將 GPR(rs)的內容佮無抑是另外一个 GPR(rt)的內容成做有符號整數進行較,若是指定的條件為真,是跳分支。執行位置欲轉移到通過將十六位元偏徙量倒徙兩位、對十八位元結果進行有符號擴充,並將三十二个元符號擴充結果和程式計數器(指令位址)佮八百十作佮得著。跳轉有兩个版本:絕對跳轉佮暫存器接跳轉。絕對跳轉(「 Jump」和「Jump and Link」)通過將二十六个 instr \ _ index 倒徙兩位,並且將24位元結果佮分支延延槽指令的指令位址高四位連接來計算跳轉的位址。暫存器間接跳轉共控制轉移到來自 GPR(rs)的住址處的指令。來自 GPR 的位址著愛字對齊的,若無咧執行分支延遲槽內底的指令了後會發出異常訊號。連結的分支佮跳轉指令(「 Jump and Link Register」除外)欲轉去到位址儲存到 GPR 三十一。「Jump and Link Register」指令允准共回轉去位址儲存到任何可寫的 GPR。

MIPS I 有兩條軟體用佇咧發出異常訊號的指令:System Call 和 Breakpoint。System Call 予使用者態軟體用來進行核心呼叫;Breakpoint 用佇核心例外處理程式轉移控制到除錯器。兩條指令攏有一个二十位的代碼(Code)欄位,會當儲存予例外處理程式的操作環境特定資訊。

MIPS 有三十二个浮點暫存器。兩暫存器配對用於雙精度數。奇數號暫存器袂當用於算術抑是分支,只是成做雙精度暫存器對的一部份,致使大多數指令干焦十六个可用暫存器(徙振動 / 複製佮載入 / 儲存無受著影響)。

單精度指令由 . s 字尾表示,啊若雙精度由 . d 字尾表示。

MIPS II

MIPS II 移除了載入延遲槽並添加幾組指令。對共享記持體較濟處理,添加了「Synchronize Shared Memory」、「 Load Linked Word」和「Store Conditional Word」指令。添加一組 Trap-on-Condition 指令。若求值為真,遮的指令共致使異常。所有這馬現有的分支指令攏有矣「可能」分支的版,干焦佇分支跳愛執行的時才來執行分支延遲槽中執行指令。佇某一寡狀況下,遮的指令允准用有路用的指令添充分支延遲槽,才有法度提高效果。為 COP 一孵三添加了雙字載入佮儲存指令。佮其他的記憶體存取指令一致,遮的載入佮儲存要求雙字自然掠齊。

浮點協處理器指令集也添加幾條指令。添加符合 IEEE 七仔五十四的浮點平方根指令。伊支援單精度佮雙精度運算元。添加了一組將單精度佮雙精度浮點數轉換做三十二位元字的指令。𪜶補充了現有的轉換指令,允准用指令控制 IEEE 較會甘入去伊的模式,毋是通過浮點控制佮狀態(Floating Point Control and Status)暫存器。

MIPS III

MIPS III 是向下跤相容 MIPS II 的擴充,增加了對六十四位元記憶體定址佮整數運算的支援。六十四位元資料類型號做雙字,MIPS III 共通用暫存器、HI / LO 暫存器佮程式計數器擴充到六十四位元以支援。添加新指令來載入佮儲存雙字,著伊執行整數加、減、乘、除佮移位元運算,以及佇咧 GPR 和 HI / LO 暫存器之間徙雙字。必要的時間,現有的上蓋初定義為對三十二位元字進行操作的指令被重新定義,以對三十二位元結果進行符號擴充,予大多數指令對字佮雙字進行的處理行為相𫝛。佇遮的重新定義的指令中包括「Load Word」。 佇咧 MIPS III 中,伊這將字有符號擴充到六十四个元。為著補充「Load Word」,添加一个無符號擴充版本。

R 指令格式無法度指定完整的六十四位元位移距離(其五个徙量欄位傷狹,無法度指定雙字的徙位), MIPS III 對著每一个 MIPS I 的位移指令,提供三个六十四个元的版本。頭一个版本是原始徙位指令的六十四位元版本,用佇咧指定介於講零交三十一位元之間的常數位徙距離。頭兩个版本佮頭一个版本的類似,但將位移量欄位的值加上三千兩百十一,通好指定三十二顧六十四位元之間的常數位徙距離。第三个版本對 GPR 的六个低位取得徙位。

MIPS III 佇咧現有核心佮使用者權限級別之間加一个「管理員」權限級別。這个功能干焦影響由實現定義的系統控制處理器(協處理器零)。

MIPS III 徙掉協處理器三(CP 三)相關支援指令,並為新的雙字指令重新使用矣其實操作碼。賰的協處理器得著佇協處理器暫存器佮 GPR 之間徙雙字的指令。浮點通用暫存器(FGR)擴充到六十四位元,而且取消指令干焦取消偶數暫存器的要求。這和早期版本的架構無相容;浮點控制 / 狀態暫存器內面的一位用於在 MIPS I 和 II 相容模式下操作 MIPS III 浮點單元(FPU)。 浮點控制暫存器無為相容性進行擴充。添加的唯一新浮點指令是佇咧 CPU 和 FPU 之間複製雙字的指令,將單精度佮雙精度浮點數轉換做雙字整數,反之亦然。

MIPS IV

MIPS IV 是該架構的第四个版本。伊是 MIPS III 的超集,佮 MIPS 的所有的現有版本相容。MIPS IV 主要旨咧提懸浮點(FP)效能。為著改進對運算元的存取,添加欲用著 FP 載入和儲存的索引定址模式(基址 + 索引,均來自 GPR), 猶閣有用佇執行記憶體預取佮指定緊取提示的預取指令(遮的指令同時支援基址 + 偏移量佮基址 + 索引定址模式)。

MIPS IV 添加幾个特性來改進指令級並列性。為著欲緩解由單一个條件引起的關頭,佇咧浮點控制佮狀態暫存的器當中有添七條件代碼位,總數達到八个。重新定義矣 FP 較和分支指令,以便𪜶會當(分別)指定寫入抑是讀佗一个條件位;並且刪除了 FP 比較佮讀冊由較指令寫入去條件位的 FP 撥工之間的延遲槽。通過 GPR 和 FPR 條件移動指令的形式部份添加對分支預測的支援;並且實現會當選擇為著 IEEE 七百五十四陷阱提供精確抑無精確的例外。

MIPS IV 替單精度佮雙精度浮點數添加幾若个新的浮點算是術指令:融合乘加減、就倒踏算講平方根。FP 融合乘加減指令執行一擺抑是兩擺會入(由實現定義),(分別)超過抑是達到 IEEE 七仔五十四的精度要求。FP 尾數佮平方根指令無符合 IEEE 七仔五十四的精度要求,並且產生的結果佮所需要精差一到兩个單位(伊是實現定義的)。 遮的指令服務佇指令延遲比準確性閣較重要的應用程式。

MIPS V

MIPS V 添加一種新的資料類型,配對單精度(PS), 伊由兩个單精度(三十二位元)浮點陣列做,儉佇咧現有的六十四位元浮點暫存器。添加了有算術、較和條件徙振動浮點指令的變體,以便以 SIMD 方式對這款資料類型來進行操作。添加用載入、重排佮轉換 PS 資料的新指令。這是第一个利用現有資源實現的浮點 SIMD 指令集。

MIPS 三十二 / MIPS 六十四

MIPS 三十二的頭一个版本是因為 MIPS II,添加來自 R 四千和 R 五千系列六十四位元處理器的條件徙動、預取指令佮其他的特性。MIPS 六十四的頭一个版本增加一个 MIPS 三十二模式來執行三十二位元代碼。向 MIPS 三十二和 MIPS 六十四規範添加了較早佇咧某一寡實現中會當用的 MUL 和 MADD(乘加)指令,仝款的閣有緊取控制指令。

二空一四年的 MIPS 三十二 / MIPS 六十四 Release 六添加了以下內容:

  • 一个無延遲槽的新分支家族:
  • 具有二十六个偏徙量的無條件分支(BC)佮分支連結(BALC),
  • 有二十一个偏徙量的零 / 非零條件分支,
  • 全套有符號佮無符號條件分支,會當較兩个暫存器(比如講 BGTUC)抑是一个暫存器佮零(比如講 BGTZC),
  • 全套分支佮連結,共暫存器佮零進行較(比如講 BGTZALC)。
  • 無延遲槽的索引跳轉指令,旨咧支援大絕對位址。
  • 佇第十六、三十二抑四十八个元處載入十六位元隨數的指令,允准輕鬆生成大常數。
  • PC 相關載入指令,以及大(PC 相關)偏徙量的位址生成。
  • 位反轉和位元組對齊指令(較早干焦適用佇咧 DSP 擴充)。
  • 乘法佮除法指令重新定義,向單 ​​ 暫存器輸出結果。
  • 生成真值的指令這馬完全無或者是全一,毋但是清除 / 設定零位,
  • 使用真值的指令這馬只將全零解說做假,毋是干焦看零位。

刪除了無常用的指令:

  • 一寡條件徙振動
  • 「可能」分支指令(佇咧以前的版本中已經棄用)。
  • 具有十六位元隨數的整數溢位揣取指令
  • 整數累加器指令(連同 HI / LO 暫存器,徙到 DSP 特定應用擴充)
  • 未有對齊的載入指令(LWL 和 LWR)(現要求大多數一般載入佮儲存指令支援無對齊的存取,通過陷阱抑是添加新指令(BALIGN)等形式)

重新組織指令編碼,為未來的擴充騰出的空間。

microMIPS

microMIPS 六十四分之三十二架構(分別)是 MIPS 三十二和 MIPS 六十四架構的超集,旨咧取代 MIPS 十六 e ASE。MIPS 十六 e 的一个缺點是佇咧處理任何十六位元指令進前需要切換模式。microMIPS 將上捷用的三十二位元指令編碼為十六位元指令版本。允准程式透濫十六位元和三十二位元指令而無需要切換模式。microMIPS 佮 MIPS 六十四分之三十二 Release 三做伙推出,MIPS 六十四分之三十二的逐个後續版本攏有相應的 microMIPS 六十四分之三十二版本。處理器會當單獨實現 microMIPS 六十四分之三十二,抑是仝時陣實現 microMIPS 六十四分之三十二佮其相應的 MIPS 六十四分之三十二子集。對 MIPS 六十四分之三十二 Release 六開始,著 MIPS 十六 e 的支援結束,microMIPS 是 MIPS 唯一的代碼壓縮形式。

應用程式特定擴充

基本的 MIPS 三十二和 MIPS 六十四架構會當補充一寡會當選的架構擴充,遮的擴充統稱為「應用程式特定擴充」(ASE)。 這是 ASE 提供的功能會當提懸某寡工作負載的效率佮效能,譬如講數位訊號處理。

MIPS 單晶片

微控制器應用的增強功能。MCU ASE(特定應用擴充)用佇咧擴充中斷控制器支援、減少中斷延延延閣增強微控制器系統設計中通常需要的 I / O 外設控制功能。
  • 獨獨的優先級佮向量生成
  • 佇咧 EIC(外部斷控制器)模式下支援達到兩百五十六个中斷佮八个硬體斷引跤
  • 提供十六位元向量偏徙位址
  • 中斷異常向量預取
  • 自動中斷序序序—— 添加硬體以佇斷節處理常式進前儲存佮更新系統狀態
  • 自動中斷尾聲—— 恢復進前儲存佇咧疊中的系統狀態,通好對斷返回轉來。
  • 中斷鏈—— 支援掛斷去的服務,無需要登出初中斷常式,省儲存佮恢復真濟活動斷節所需要的禮拜
  • 支援推測性預取斷向量位址。通過共記持體存取佮管道重新整理佮異常優先級重疊來減少中斷服務周期數
  • 原子性位設定 / 清除指令,通常會當佇無停斬的狀況之下修改 I / O 暫存器內底用佇咧監視抑是控制外部外圍功能的所在,確保安全地執行操作。

MIPS 十六

MIPS 十六是對 MIPS I 到 V 的特定應用擴充,由 LSI Logic 和 MIPS 科技設計,佇一九九六年十月二十一佮其第一个實現 LSI Logic TinyRISC 處理器做伙發布。隨後 NEC 電子、飛利浦半導體、東芝佮其他公司得著 MIPS 十六的許可,並成做 MIPS I、II、III 架構的擴充實現。MIPS 十六使用十六位元指令毋是三十二位元指令,減少應用程式的大細多達百分之四十,並且閣提懸著電源效率、指令緊取命中率,並且佇效能方面佮其基礎的架構不止仔好。伊由 MIPS 科技佮其他供應商的硬體佮軟體開發工具提供支援。MIPS 十六 e 是 MIPS 十六的改進版本,首先由 MIPS 三十二和 MIPS 六十四 Release 一支援。MIPS 十六 e 二是 MIPS 十六的改進版本,由 MIPS 三十二和 MIPS 六十四(一直到 Release 五)支援。Release 六將其替換做 microMIPS。

MIPS 數位訊號處理(DSP)

DSP ASE 是 MIPS 三十二 / MIPS 六十四 Release 二佮更新指令集版本的可選擴充,可以加速大量「媒體」計算—— 尤其是音影片。DSP 模組包含整數管線中的一組指令佮狀態,並且佇咧 MIPS 處理器核心內實現所需要的附加邏輯上少。ASE 修訂版二於二空空六年下半年推出。該修訂版向原始 ASE 添加額外的指令,但是佇其他方面佮伊向下跤相容。佮 MIPS 架構的大部份無仝,伊是一組誠無規則的操作,其中真濟是為著某一寡關鍵演算法特別選擇的。其主要新穎特點(嘿比原始 MIPS 三十二):
  • 飽和算術(做計算溢个時陣,提供最接近非溢位答案的會當表示數字)。
  • 有符號三十二位元佮十六位元定點小數的定點運算,範圍來做-一到 + 一(足廣泛講的「Q 三十一」和「Q 十五」)。
  • 現有的整數乘法佮乘法累加指令,共結果傳送到雙倍大細的忝加器(佇咧 MIPS 三十二 CPU 上叫做「hi / lo」佮六十四位元)。 DSP ASE 增加三个忝加器,佮一寡無仝風格的乘法累加。
  • SIMD 指令佇四 x 無符號位元組抑是二 x 十六位元值上執行,遮的值包裝到一个三十二位元暫存器(DSP ASE 的六十四位元變體嘛支援閣較大的向量)。
  • SIMD 操作是基本算術、徙位佮一寡乘法累加類型的操作。

MIPS SIMD 架構(MSA)

旨佇加速多媒體的指令集擴充。
  • 三十二个十六 x 八位元、八 x 十六位元、四 x 三十二位元佮二 x 六十四位元向量元素的向量暫存器
  • 高效的整數、定點佮浮點數向量並列算術運算
  • 對絕對值運算元的操作
  • 可用的捨入佮飽和選項
  • 全精度乘法佮乘加
  • 整數、浮點佮定點資料之間的轉換
  • 完整的向量級較佮分支指令集,沒條件標誌
  • 向量(一 D)和陣列(二 D)打散操作
  • 位元組序無關係的有類型載入佮儲存指令
  • 符合 IEEE 七百五十四鋪兩千空八浮點運算標準
  • 基本精確的浮點異常訊號
  • 用佇閣較濟門 / 電晶體的晶片的預定義會當延伸擴充
  • 結合通用編譯器加速計算密集型應用程式
  • 用佇消費電子應用抑是專用硬體無涵蓋的功能的軟體可程式化解決方案
  • 新興的資料探勘、特徵提、圖像佮影片處理佮人機互動應用
  • 高效能科學計算

MIPS 虛擬化

硬體支援的虛擬化技術。

MIPS 加執行緒

逐个多執行緒 MIPS 核心上濟會當支援兩个 VPE(虛擬處理元素), 𪜶共享單一个管道佮其他的硬體資源。猶毋過,因為每一个 VPE 攏包含軟體系統所看著的處理器狀態的完整副本,所以每一个 VPE 對於 SMP Linux 作業系統來講的攏是一个完整的獨立處理器。對閣較幼粒度的執行緒處理應用程式,彼每一个 VPE 會當支援多到九个迒兩个 VPE 分配的 TC。TC 共享一个公共執行單元,毋過逐个攏有家己的程式計數器佮核心暫存器檔案,所以逐个攏會當處理對軟體的執行緒。MIPS MT 架構閣較允准共處理器周期分配予執行緒,並使用會當選的服務品質(QoS)管理塊設定相關執行緒的優先級。按呢有兩个決定跨匯流排資訊流的優先級機制。第一種機制允准使用者優先一个執行緒於另外一个執行緒。第二種機制用佇隨時間共指定比例的周期分配予特定執行緒。兩種機制的結合使用允准向執行緒集有效分配頻闊,閣較好控制延延。就是佇即時系統內底,系統級確定性非常的重要,而且 QoS 對提高系統有幫贊的可能預測性。進階系統的硬體設計人員會當用專門針對其應用進行調整的模組來替換 MIPS 科技提供的標準 QoS 模組。

SmartMIPS

SmartMIPS 是由 Gemplus International 和 MIPS 科技設計特定佇應用程式的擴充(ASE), 旨咧提高智慧卡軟體的效能並且減少記憶體銷孝。伊干焦受著 MIPS 三十二支援,因為智慧卡無需要 MIPS 六十四處理器的功能。足罕得有智慧卡使用 SmartMIPS。

MIPS 數位媒體擴充(MDMX)

一九九空年代定定看著 RISC 和 CISC 系統上多媒體應用程式加速。

MIPS ma三 D

提高三 D 圖形應用程式效能的附加指令

呼喝約束

MIPS 有幾个呼叫約束,尤其是佇三十二位元平台頂。

O 三十二 ABI 是上捷用的 ABI,因為伊是 MIPS 的原始 System V ABI。伊嚴格基於堆疊,干焦四个暫存器 $ a 零-$ a 三通用傳遞參數。疊起來的空間是保留的,以防被呼叫者需要儲存其參數,毋過叫者講袂共暫存的物件囥佇遐。倒轉值儉佇咧暫存的物件 $ v 零中;第二个倒轉來值會當儉佇咧 $ v 一中。ABI 形成一九九空年,最後一改更新是佇一九九四年。這種肉眼可見的慢慢仔,佮只有十六暫存器的浮點模型,促進了真濟其他的呼叫約定的擴散。伊干焦針對三十二位元 MIPS 定義,猶毋過 GCC 建立一个叫做 O 六十四的六十四位元變體。

嘿六十四位元,上捷用的是 SGI 的 N 六十四 ABI。上重要的改進是現有八個暫存器可用於參數傳達;伊閣共浮點暫存器的數量增加到三十二个。閣有一个稱為 N 三十二的 ILP 三十二版本,伊使用三十二位元指標來處理較細的代碼,類似 x 三十二 ABI。兩个人攏佇咧 CPU 的六十四位元模式下執行。N 三十二和 N 六十四 ABI 共前八个參數傳遞予暫存器 $ a 零-$ a 七中的函式;後續參數佇堆疊懸頂傳遞。倒轉值(抑是講向伊的指標)儉佇咧暫存的物件 $ v 零中;第二个倒轉來值會當儉佇咧 $ v 一中。佇咧 N 三十二和 N 六十四 ABI 中,所有暫存器攏予人認為是六十四位元寬。

𪜶有一寡試驗,使用閣較類似 N 三十二的三十二位元 ABI 替換 O 三十二。一九九五年的一改會議提出了 MIPS EABI,其三十二位元版本足相𫝛的。EABI 啟發 MIPS 科技提出閣較激進的「NUBI」ABI,重用參數暫存的器作為返回值。GCC 支援 MIPS EABI,猶毋過 LLVM 無支援,兩个嘛無支援 NUBI。

對於 O 三十二佮 N 三十二 / N 六十四,轉去到位址儲存佇咧 $ ra 暫存器中。這是使用 JAL(跳轉佮連結)抑是 JALR(跳轉和連結暫存器)指令自動設定的。(非葉仔)MIPS 次常式的函式序大話將轉去到位址(佇咧 $ ra 中)捒規堆的。

佇咧 O 三十二和 N 三十二 / N 六十四上,疊落去疊落去,猶毋過 N 三十二 / N 六十四 ABI 需要所有疊條目六十四位元對齊。影格指標($ 三十)是可選的,實際上真少使用,除非需要佇咧執行的時陣確定函式內底的堆疊分配,譬如講呼叫矣 ` alloca ( ) `。

對於 N 三十二和 N 六十四,倒轉去位址通常儲存佇咧棧指標進前的八个位元組,就算講這可能是可選的。

對於 N 三十二和 N 六十四 ABI,函式著愛保留 $ S 零-$ s 七暫存器、全域指標($ gp 抑是 $ 二十八)、 棧指標($ sp 抑是 $ 二十九)佮影格指標($ 三十)。 O 三十二 ABI 相仝,只是 $ gp 暫存器需要由呼叫函式儲存毋是被呼叫函式。

著加執行緒代碼,執行緒本地儲存指標通常儲存佇咧特殊硬體暫存器 $ 二十九中,並通過使用 mfhw(對硬體徙動)指令存取。已經知影至少有一个供應商會遮的資訊儲存佇咧 $ k 零暫存器當中,該暫存器通常保留供核心使用,但是這毋是標準的。

$ k 零和 $ k 有一暫存器($ 二十六-$ 二十七)保留供核心使用,無應用程式使用,因為核心會用得隨時因為中斷、上下文交換抑是啥物事件改變這寡暫存器。

迒過叫保留的暫存器是(按照約定)袂予系統呼叫抑是過程(函式)呼叫更改的暫存器。比如講,$ s-暫存器必須愛使用𪜶的過程儲存到堆疊中,而且 $ sp 和 $ fp 總是按常數遞增,並且佇咧過程完成了後遞減(佮𪜶的指向的記持體)。 比並之下,$ ra 由任何普通函式呼叫(使用 jal 的函式呼叫)自動更改,並且 $ t-暫存器必須愛佇任何過程呼叫進前由程式儲存(若程式咧呼叫後需要其中的值)。

Linux 頂頭無關代碼的使用者空間呼叫約定閣要求,呼叫函式的時陣,$ t 九暫存器著愛包含該函式的位址。這个約定會當追溯甲 MIPS 的 System V ABI 補充規定。

用途

MIPS 處理器用佇1875入式系統,比如講徛家的道器佮路由器。上代先,MIPS 是為著通用計算爾設計的。佇一九八空年代和一九九空年代,誠濟公司佇個人、工課站和侍服器電腦使用 MIPS 處理器,比如講 DEC、MIPS Computer Systems、NEC、Pyramid Technology、SiCortex、Siemens Nixdorf、SGI,和 Tandem Computers .

對歷史上看著,N 六十四、索尼 PlayStation、PlayStation 二和 PlayStation Portable 等電動遊戲機攏使用 MIPS 處理器。MIPS 處理器佇一九九空年代嘛捌佇超級電腦當中時行,這个系統攏對 TOP 五百名單中落落來。遮的用途上頭仔有雕入式應該補,但是一九九空年代,MIPS 閣來入去處理器市場的主流去選擇,到二空空空年代,大多數啦 MIPS 處理器攏用這類應用。

佇一九九空年代當中尾期,根據估計生產的 RISC 微處理器中有三分之一是 MIPS 處理器。

到二空一空年代尾期,MIPS 機器猶原普遍用佇1875入式的市場,包括汽車、無線路由器、LTE 數據機(主要為聯發科)佮微控制器(比如講 PIC 三十二 M)。 𪜶大部份攏出個人爾、侍服器佮應用領域。

模擬器

開放虛擬平台(OVP)包括可免費用佇咧非商業用途的模擬器 OVPsim、處理器模型庫、外圍裝置和平台,猶閣有使用者會當開發家己的模型的 API。庫中的模型是用 C 語言編寫的開源模型,包括講 MIPS 四 K、二十四 K、三十四 K、七十四 K、一千空四 K、一千空七十四 K、M 十四 K、microAptiv、interAptiv、proAptiv 三十二位元核心佮 MIPS 六十四位元五 K 系列核心。遮的模型由來 Imperas 建立佮維護,並佮 MIPS 技術公司合作做試矣測試,會用得著 MIPS 驗證標記。是因為 MIPS 的範例平台包括囉機環境佮用引導無修改的 Linux 二進位映像的平台。遮的平台模擬器會當做原始碼或者是二進位檔案使用,速度緊咧,非商業用途免費,並且會當使用。OVPsim 由 Imperas 開發佮維護,速度非常緊(逐秒數億條指令), 旨咧處理多核同構佮異構架構佮系統。

有一个免費的 MIPS 三十二模擬器(較早彼版本干焦比 R 兩千 / R 三千)這號做 SPIM,用教育。EduMIPS 六十四是一个 GPL 圖形跨平台 MIPS 六十四 CPU 模擬器,用 Java / Swing 編寫。伊支援 MIPS 六十四 ISA 較大子集,並允准使用者以圖形方式檢視 CPU 執行組譯程式時管線中發生的情況。

MARS 是另外一个因為 GUI 的 MIPS 仿真器,設計用教育,特別是佮 Hennessy 的《電腦組織佮設計》做伙使用。

WebMIPS 是一个是瀏覽器的 MIPS 模擬器,有通用管線處理器的視覺化表示。該模擬器對每一步執行期間的暫存器佮蹤非常的有路用。

QtMips 為基礎電腦架構課程提供簡單的五階段管道視覺化猶閣有緊取原理視覺化。提供 Windows、Linux、macOS 和線頂版本。

GXemul(較早號做 mips 六十四 emul 專案)和 QEMU 專案提供閣較進階的免費模擬器。除了使用𪜶的規个電腦系統以外,𪜶閣比各種的 MIPS III 和 IV 微處理器。

商業模擬器特別適用佇咧 MIPS 處理器的1875入式來使用,比如講 Wind River Simics(MIPS 四 Kc 佮五 Kc、PMC RM 九千、QED RM 七千、Broadcom / Netlogic ec 四千四百、Cavium Octeon I)、 Imperas(所有 MIPS 三十二和 MIPS 六十四核心)、 VaST 系統(R 三千、R 四千)和 CoWare(MIPS 四 KE、MIPS 二十四 K、MIPS 二十五 Kf 和 MIPS 三十四 K)。

WepSIM 是一个是瀏覽器的模擬器,其中 MIPS 講令的子集是微編程的。這个模擬器對學習 CPU 的工作方式(微編程、MIPS 常式、陷阱、就斷去、系統呼叫等)有夠有路用。

參見

  • MIPS 架構處理器
  • 管線

參考文獻

擴充閱讀

  • Farquhar , Erin ; Philip Bunce . MIPS Programmer's Handbook . Morgan Kaufmann Publishers . 一千九百九十四 . ISBN  一石頭五千八百六十五兩百九十七孵六 .
  • Patterson , David A ; John L . Hennessy . Computer Organization and Design : The Hardware / Software Interface . Morgan Kaufmann Publishers . 兩千空四 . ISBN  一孵五千八百六十配六百空四孵一 .   有的內容需要登入檢視的頁面 ( link )
  • Sweetman , Dominic . See MIPS Run . Morgan Kaufmann Publishers . 一千九百九十九 . ISBN  一石頭五千八百六十石四百一十五三 .
  • Sweetman , Dominic . See MIPS Run , 二 nd edition . Morgan Kaufmann Publishers . 兩千空七 . ISBN  九百七十八追空九十二孵八千四百二十一孵六 .

外部連結

  • MIPS 處理器
  • prpl 基金會(由 Imagination Technologies 創立的一个支援 MIPS 平台的非盈利基金會)
  • MIPS Architecture history diagram,存檔佇網路檔案館(存檔日期兩千空一十三抹五五)
  • 線頂 MIPS 模擬器
  • MIPS Instructions-MIPS Instruction Set
  • 計算機組織:MIPS 指令集 ( 一 ) 暫存器說明