MIPS
衡量CPU速度的指標
MIPS(Million Instructions Per Second):單字長定點指令平均執行速度 Million Instructions Per Second的縮寫,每秒處理的百萬級的機器語言指令數。這是衡量CPU速度的一個指標。像是一個Intel80386 電腦可以每秒處理3百萬到5百萬機器語言指令,即我們可以說80386是3到5MIPS的CPU。MIPS只是衡量CPU性能的指標。
MIPS 科技公司(納斯達克交易代碼:MIPS)是全球第二大半導體設計IP(知識產權)公司和全球第一大模擬IP公司。MIPS 科技在全球擁有超過 250 家客戶,為全球眾多最受歡迎的數字消費、寬頻、無線、網路和攜帶型媒體市場提供動力——包括 Linksys 的寬頻設備、索尼的數字電視和娛樂系統、先鋒的 DVD刻錄設備、摩托羅拉的數字機頂盒、思科的網路路由器、Microchip 的 32 位微控制器和惠普的激光印表機。今天,MIPS 科技在全球擁有 400 多項專利產權(專利和應用)。公司成立於 1998 年,總部位於美國加州 Mountain View,辦事處遍布全球。
MIPS技術公司則是一家設計製造高性能、高檔次及嵌入式32位和64位處理器的廠商。在通用方面,MIPS R系列微處理器用於構建SGI的高性能工作站、伺服器和超級計算機系統。在嵌入式方面,MIPS K系列微處理器是目前僅次於ARM的用得最多的處理器之一(1999年以前MIPS是世界上用得最多的處理器),其應用領域覆蓋遊戲機、路由器、激光印表機、掌上電腦等各個方面。
MIPS在RISC處理器方面佔有重要地位。1984年,MIPS計算機公司成立。1992年,SGI收購了MIPS計算機公司。1998年,MIPS脫離SGI,成為MIPS技術公司。
MIPS公司設計RISC處理器始於二十世紀八十年代初,1986年推出R2000處理器,1988年推R3000處理器,1991年推出第一款64位商用微處器R4000。之後又陸續推出R8000(於1994年)、R10000(於1996年)和R12000(於1997年)等型號。
隨後,MIPS公司的戰略發生變化,把重點放在嵌入式系統。1999年,MIPS公司發布MIPS32和MIPS64架構標準,為未來MIPS處理器的開發奠定了基礎。新的架構集成了所有原來MIPS指令集,並且增加了許多更強大的功能。MIPS公司陸續開發了高性能、低功耗的32位處理器內核(core)MIPS324Kc與高性能64位處理器內核MIPS64 5Kc。2000年,MIPS公司發布了針對MIPS32 4Kc的版本以及64位MIPS 64 20Kc處理器內核。
MIPS是世界上很流行的一種RISC處理器。MIPS的意思“無內部互鎖流水級的微處理器”(Microprocessor without interlocked piped stages),其機制是盡量利用軟體辦法避免流水線中的數據相關問題。它最早是在80年代初期由斯坦福(Stanford)大學Hennessy教授領導的研究小組研製出來的。MIPS公司的R系列就是在此基礎上開發的RISC工業產品的微處理器。這些系列產品為很多計算機公司採用構成各種工作站和計算機系統。
MIPS技術公司是美國著名的晶元設計公司,它採用精簡指令系統計算結構(RISC)來設計晶元。和英特爾採用的複雜指令系統計算結構(CISC)相比,RISC具有設計更簡單、設計周期更短等優點,並可以應用更多先進的技術,開發更快的下一代處理器。MIPS是出現最早的商業RISC架構晶元之一,新的架構集成了所有原來MIPS指令集,並增加了許多更強大的功能。
MIPS處理器是八十年代中期RISC CPU設計的一大熱點。MIPS是賣的最好的RISC CPU,可以從任何地方,如Sony, Nintendo的遊戲機,Cisco的路由器和SGI超級計算機,看見MIPS產品在銷售。目前隨著RISC體系結構遭到x86晶元的競爭,MIPS有可能是起初RISC CPU設計中唯一的一個在本世紀盈利的。和英特爾相比,MIPS的授權費用比較低,也就為除英特爾外的大多數晶元廠商所採用。
MIPS的系統結構及設計理念比較先進,其指令系統經過通用處理器指令體系MIPS I、MIPS II、MIPS III、MIPS IV到MIPS V,嵌入式指令體系MIPS16、MIPS32到MIPS64的發展已經十分成熟。在設計理念上MIPS強調軟硬體協同提高性能,同時簡化硬體設計。
中國龍芯2和前代產品採用的都是64位MIPS指令架構,它與大家平常所知道的X86指令架構互不兼容,MIPS指令架構由MIPS公司所創,屬於RISC體系。過去,MIPS架構的產品多見於工作站領域,索尼PS2遊戲機所用的“Emotion Engine”也採用MIPS指令,這些MIPS處理器的性能都非常強勁,而龍芯2也屬於這個陣營,在軟體方面與上述產品完全兼容。
MIPS即Million Instructions Per Second的簡寫--計算機每秒鐘執行的百萬指令數。是衡量計算機速度的指標。
現如今CPU的頻率越來越高,又是流水線又是超標量計算又是雙核多核的,單純以時鐘頻率來衡量計算機的速度已經不再科學,用MIPS來衡量相對比較合理。
以ARM7為內核的S3C44B0X的推薦最高工作頻率為66MHz,按照ARM公司提供的技術資料,Cortex A9類CPU的運算速度可按如下公式計算:MIPS=0.9×MHz,由此可得出,舊型號的Arm 7 系列S3C44B0X的最大運算速度大約為0.9×66MHz=59.4MIPS。6M的51單片機通常是12 或24個時鐘周期才能完成1條指令,乘法和除法指令更需要48個時鐘周期。這樣,我初步估算6M的51單片機的運算速度應該在0.2~0.5MIPS之間。可見8位機與32位機的運算速度還是有巨大的差異的。
再以AVR為例,它的數據吞吐率可達1MIPS/MHz,即1MHz的震蕩頻率可達1MIPS。
綜上,用MIPS衡量計算機速度很合理,對於不同的cpu,它的最高工作頻率不同,數據吞吐率也不同,所以不可一概而論。
MIPS是指令執行的速率,規定了性能和執行時間成反比,越快的計算機具有越高的MIPS值。從表面看,MIPS既容易理解,又符合人的直覺。其實,用MIPS作為度量性能的指標存在三個問題。
首先,MIPS規定了指令執行的速率,但沒有考慮指令的能力。我們沒有辦法用MIPS比較不同指令集的計算機,因為指令數肯定是不同的。
其次,在同一計算機上,不同的程序會有不同的MIPS,因而一台計算機不會只有一個MIPS值。例如,將執行時間用MIPS、CPI、時鐘頻率代入之後可得:
MIPS = 指令數/(執行時間 * 10^6) = 指令數 / (指令數 * CPI / 時鐘頻率 * 10^6) = 時鐘頻率 / (CPI * 10^6)
MIPS
最後一點,也是最重要的一點,如果一個新程序執行的指令數更多,但每條指令的執行速度更快,則MIPS的變化是性能無關的。