求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

ARM架構檢視原始碼討論檢視歷史

事實揭露 揭密真相
前往: 導覽搜尋
ARM架構

來自 網絡 的圖片

ARM架構,曾稱進階精簡指令集機器(Advanced RISC Machine)更早稱作Acorn RISC Machine,是一個32位精簡指令集(RISC)處理器架構。還有基於ARM設計的派生產品,重要產品包括Marvell的XScale架構和德州儀器的OMAP系列。

ARM家族占比所有32位嵌入式處理器的75%,成為占全世界最多數的32位架構。

ARM處理器廣泛使用在嵌入式系統設計,低耗電節能,非常適用移動通訊領域。消費性電子產品,例如可攜式裝置(PDA、移動電話、多媒體播放器、掌上型電子遊戲,和計算機),電腦外設(硬盤、桌上型路由器),甚至導彈的彈載計算機等軍用設施。

簡介

一顆主要用於路由器的Conexant ARM處理器是Acorn電腦公司(Acorn Computers Ltd)於1983年開始的開發計劃。

這個團隊由Roger Wilson和Steve Furber帶領,着手開發一種新架構,類似進階的MOS Technology 6502處理器。Acorn有一大堆建構在6502架構上的電腦,因此能設計出一顆類似的芯片即意味着對公司有很大的優勢。

團隊在1985年時開發出ARM1 Sample版,而首顆"真正"的產能型ARM2於次年量產。ARM2具有32位的數據總線、26位的尋址空間,並提供64 Mbyte的尋址範圍與16個32-bit的暫存器。這些暫存器其中有一顆做為(word大小)程式計數器,其前面6 bits和後面2 bits用來保存處理器狀態標記(Processor Status Flags)。ARM2可能是全世界最簡單實用的32位微處理器,其僅容納了30,000個晶體管(相較於Motorola六年後的68000其包含了70,000顆)。之所以精簡的原因在於它不含微碼(請參閱microcode)(這表示大概只有68000的1/3至1/4),而與現今大多數的 CPU 不同,它沒有包含任何的高速緩存。這個精簡的特色使它只需消耗很少的電能,卻能發揮比 Intel 80286 更好的效能。後繼的處理器ARM3更備有4KB的高速緩存,使它能發揮更佳的效能。

在1980年代晚期,蘋果電腦開始與Acorn合作開發新版的ARM核心,由於這專案非常重要,Acorn甚至於1990年將設計團隊另組成一間名為安謀國際科技(Advanced RISC Machines Ltd.)的新公司。也基於這原因,使得ARM有時候反而稱作Advanced RISC Machine而不是Acorn RISC Machine。由於其母公司ARM Holdings plc於1998年的倫敦交易市場和NASDAQ掛牌上市[1],使得Advanced RISC Machines成了ARM Ltd旗下擁有的產品。

這個專案到後來進入了ARM6,首版的式樣在1991年釋出,然後蘋果電腦使用ARM6架構的ARM 610來當作他們Apple Newton PDA的基礎。在1994年,Acorn使用ARM 610做為他們Risc PC電腦內的CPU。

在這些變革之後,內核部份卻大多維持一樣的大小。ARM2有30,000顆晶體管,但ARM6卻也只增長到35,000顆。主要概念是以ODM的方式,使ARM核心能搭配一些選配的零件而製成一顆完整的CPU,而且可在現有的晶圓廠里製作並以低成本的方式達到很大的效能。

ARM的經營模式在於出售其知識產權核(IP core),授權廠家依照設計製作出建構於此核的微控制器和中央處理器。最成功的實作案例屬 ARM7TDMI,幾乎賣出了數億套內建微控制器的裝置。

DEC 購買這個架構的產權(此處會造成混淆在於其本身也製造 DEC Alpha 並研發出StrongARM。在 233 MHz 的頻率下,這顆 CPU 只消耗一瓦特的電能(後來的芯片消耗得更少)。這項設計後來為了和 Intel 的控訴和解而技術移轉,Intel 因而趁機以 StrongARM 架構補強他們老舊的 i960 產線。Intel 後來開發出他們自有的高效能實作,稱作XScale,之後也賣給了 Marvell。

支援智能型手機、PDA和其他手持裝置最常見的架構是ARMv4。XScale 和 ARM926 處理器是ARMv5TE,而且比起建構在 ARMv4 的 StrongARM、ARM925T 和 ARM7TDMI 等處理器還更常見於許多高階裝置上。架構版本如下欄所示。

設計文件

講求精簡又快速的設計方式,整體電路化卻又不採用微碼,就像早期使用在Acorn微電腦的8位6502處理器。

ARM架構包含了下述RISC特性:

讀取/儲存 架構

不支援地址不對齊內存存取(ARMv6內核現已支持)

正交指令集(任意存取指令可以任意的尋址方式存取數據Orthogonal instruction set)

大量的16 × 32-bit 寄存器陣列(register file)

固定的32 bits 操作碼(opcode)長度,降低編碼數量所產生的耗費,減輕解碼和流水線化的負擔。

大多均為一個CPU周期執行。

為了補強這種簡單的設計方式,相較於同時期的處理器如Intel 80286和Motorola 68020,還多加了一些特殊設計:

大部分指令可以條件式地執行,降低在分支時產生的負重,彌補分支預測器(branch predictor)的不足。

算數指令只會在要求時更改條件編碼(condition code)

32-bit筒型位移器(barrel shifter)可用來執行大部分的算數指令和尋址計算而不會損失效能

強大的索引尋址模式(addressing mode)

精簡但快速的雙優先級中斷子系統,具有可切換的暫存器組

有個附加在ARM設計中好玩的東西,就是使用一個4-bit 條件編碼 在每個指令前頭,表示每支指令的執行是否為有條件式的

這大大的減低了在內存存取指令時用到的編碼位,換句話說,它避免在對小型敘述如if做分支指令。有個標準的範例引用歐幾里得的最大公因子算法:

在C編程語言中,循環為:

int gcd (int i, int j)

{

while (i != j)

if (i > j)

i -= j;

else

j -= i;

return i;

}

在ARM 匯編語言中,循環為:

loop CMP Ri, Rj ; 設定條件為 "NE"(不等於) if (i != j)

"GT"(大於) if (i > j),
or "LT"(小於) if (i < j)

SUBGT Ri, Ri, Rj ; 若 "GT"(大於), i = i-j;

SUBLT Rj, Rj, Ri ; 若 "LT"(小於), j = j-i;

BNE loop ; 若 "NE"(不等於),則繼續迴圈

這避開了then和else子句之間的分支。

另一項指令集的特色是,能將位移(shift)和迴轉(rotate)等功能並成"資料處理"型的指令(算數、邏輯、和暫存器之間的搬移),因此舉例來說,一個C語言的敘述

a += (j << 2);

在ARM之下,可簡化成只需一個word和一個cycle即可完成的指令

ADD Ra, Ra, Rj, LSL #2

這結果可讓一般的ARM程式變得更加緊密,而不需經常使用內存存取,流水線也可以更有效地使用。即使在ARM以一般認定為慢速的速度下執行,與更複雜的CPU設計相比它仍能執行得不錯。

ARM處理器還有一些在其他RISC的架構所不常見到的特色,例如PC-相對尋址(的確在ARM上PC為16個暫存器的其中一個)以及 前遞加或後遞加的尋址模式。

另外一些注意事項是 ARM 處理器會隨着時間,不斷地增加它的指令集。某些早期的 ARM 處理器(比ARM7TDMI更早),譬如可能並未具備指令可以讀取兩 Bytes 的數量,因此,嚴格來講,對這些處理器產生程式碼時,就不可能處理如 C 語言物件中使用 "volatile short" 的資料型態。

ARM7 和大多數較早的設計具備三階段的流水線化(Pipeline):提取指令、解碼,並執行。較高效能的設計,如 ARM9,則有五階段的流水線化。提高效能的額外方式,包含一顆較快的加法器,和更廣的分支預測邏輯線路。

這個架構使用"協處理器"提供一種非侵入式的方法來延伸指令集,可透過軟件下 MCR、MRC、MRRC和MCRR 等指令來對協處理器尋址。協處理器空間邏輯上通常分成16個協處理器,編號分別從 0 至 15 ,而第15號協處理器(CP15)是保留用作某些常用的控制功能,像是使用高速緩存和記憶管理單元運算(若包含於處理器時)。

在 ARM 架構的機器中,周邊裝置連接處理器的方式,通常透過將裝置的實體暫存器對應到 ARM 的內存空間、協處理器空間,或是連接到另外依序接上處理器的裝置(如總線)。協處理器的存取延遲較低,所以有些周邊裝置(例如 XScale 中斷控制器)會設計成可透過不同方式存取(透過內存和協處理器)。


評價

ARM 公司本身並不靠自有的設計來製造或出售 CPU ,而是將處理器架構授權給有興趣的廠家。ARM 提供了多樣的授權條款,包括售價與散播性等項目。對於授權方來說,ARM 提供了 ARM 內核的整合硬件敘述,包含完整的軟件開發工具(編譯器、debugger、SDK),以及針對內含 ARM CPU 硅芯片的銷售權。對於無晶圓廠的授權方來說,其希望能將 ARM 內核整合到他們自行研發的芯片設計中,通常就僅針對取得一份生產就緒的知識產權內核(IP Core)認證。對這些客戶來說,ARM 會釋出所選的 ARM 核心的版圖,連同抽象模擬模型和測試程式,以協助設計整合和驗證。需求更多的客戶,包括整合元件製造商(IDM)和晶圓廠家,就選擇可合成的RTL(寄存器傳輸級,如 Verilog)形式來取得處理器的知識產權(IP)。藉著可整合的 RTL,客戶就有能力能進行架構上的最佳化與加強。這個方式能讓設計者完成額外的設計目標(如高震盪頻率、低能量耗損、指令集延伸等)而不會受限於無法更動的電路圖。雖然 ARM 並不授予授權方再次出售 ARM 架構本身,但授權方可以任意地出售製品(如芯片元件、評估板、完整系統等)。商用晶圓廠是特殊例子,因為他們不僅授予能出售包含 ARM 內核的硅晶成品,對其它客戶來講,他們通常也保留重製 ARM 內核的權利。

就像大多數 IP 出售方,ARM 依照使用價值來決定 IP 的售價。在架構上而言,更低效能的 ARM 內核比更高效能的內核擁有較低的授權費。以硅芯片實作而言,一顆可整合的內核要比一顆硬件宏(黑箱)內核要來得貴。更複雜的價位問題來講,持有 ARM 授權的商用晶圓廠(例如韓國三星和日本富士通)可以提供更低的授權價格給他們的晶圓廠客戶。透過晶圓廠自有的設計技術,客戶可以更低或是免費的ARM預付授權費來取得 ARM 內核。相較於不具備自有設計技術的專門半導體晶圓廠(如台積電和聯電),富士通/三星對每片晶圓多收取了兩至三倍的費用。對中少量的應用而言,具備設計部門的晶圓廠提供較低的整體價格(透過授權費用的補助)。對於量產而言,由於長期的成本縮減可藉由更低的晶圓價格,減少ARM的NRE成本,使得專門的晶圓廠也成了一個更好的選擇。

許多半導體公司持有 ARM 授權:Atmel、Broadcom、Cirrus Logic、Freescale(於2004從摩托羅拉公司獨立出來)、富士通、英特爾(藉由和Digital的控訴調停)、IBM,英飛凌科技,任天堂,恩智浦半導體(於2006年從飛利浦獨立出來)、OKI電氣工業,三星電子,Sharp,STMicroelectronics,德州儀器 和 VLSI等許多這些公司均擁有各個不同形式的ARM授權。雖然ARM的授權項目由保密合約所涵蓋,在智慧財產權工業,ARM是廣為人知最昂貴的CPU內核之一。單一的客戶產品包含一個基本的 ARM 內核可能就需索取一次高達美金20萬的授權費用。而若是牽涉到大量架構上修改,則費用就可能超過千萬美元。[1]

參考文獻

  1. ARM架構搜狗