當前位置:法律諮詢服務網 - 知識產權保護 - ARM架構的歷史

ARM架構的歷史

壹款主要用於路由器的Conexant ARM處理器,是Acorn Computers Ltd在1983開始的開發計劃。

在Roger Wilson和Steve Furber的領導下,這個團隊開始開發壹種新的架構,類似於先進的MOS技術6502處理器。Acorn有很多基於6502架構的計算機,因此設計壹個類似的芯片意味著它對公司有很大的優勢。

團隊在1985年開發了ARM1樣片的版本,第壹個真正量產的ARM2在次年量產。ARM2具有32位數據總線和26位尋址空間,並提供64 Mbyte和16個32位寄存器的尋址範圍。其中壹個寄存器用作程序計數器(字長),其前6位和後2位用於存儲處理器狀態標誌。ARM2可能是世界上最簡單和最實用的32位微處理器,只有30,000個晶體管(相比之下,摩托羅拉六年後有68,000個)。之所以緊湊,是因為它不包含微碼(見微碼)(這意味著它只有68000的1/3到1/4左右),而且不像今天的大多數CPU,它不包含任何緩存。這種精簡的特性使得它的功耗很小,但卻能發揮比Intel 80286更好的作用。後續處理器ARM3擁有4KB緩存,性能更佳。

1980年代後期,蘋果開始與Acorn合作開發新版ARM內核。由於這個項目的重要性,Acorn甚至在1990成立了壹家新公司,名為Advanced RISC Machines Ltd。正因如此,ARM有時被稱為高級RISC機,而不是Acorn RISC機。因為其母公司ARM Holdings plc於1998 [1]在倫敦證券交易所和納斯達克上市,高級RISC機器成為ARM Ltd .旗下的產品

這個項目後來進入ARM6,第壹個版本發布於1991。然後蘋果電腦用ARM6架構的ARM610作為他們蘋果牛頓PDA的基礎。1994年,Acorn在他們的Risc PC中使用ARM 610作為CPU。

在這些變化之後,大多數內核部件保持相同的大小。ARM2有30000個晶體管,但ARM6只增長到35000個。主要概念是ARM核可以通過ODM與壹些選定的部件匹配,制成壹個完整的CPU,並且可以在現有的晶圓廠中制造,以低成本實現高效率。

ARM的商業模式是出售其知識產權核心(IP核),授權廠商根據設計制作基於該核心構建的微控制器和中央處理器。最成功的實施案例是ARM7TDMI,它已經銷售了幾乎數億臺內置微控制器的設備。

DEC購買這個架構的產權(這裏會引起混亂的是,它也讓DEC Alpha化,開發StrongARM。在233 MHz的頻率下,這個CPU只消耗壹瓦的功率(後來的芯片消耗更少)。這種設計後來被轉移到解決英特爾的投訴,所以英特爾借此機會用StrongARM架構來加強他們的舊i960生產線。英特爾後來開發了自己的高性能實現,稱為XScale,後來賣給了Marvell。

支持智能手機、PDA和其他手持設備的最常見架構是ARMv4。XScale和ARM926處理器都是ARMv5TE,在很多高端設備中比ARMv4內置的StrongARM、ARM925T和ARM7TDMI處理器更常見。架構版本顯示在下壹列中。

設計文件

強調簡單快速的設計方法,但整個電路不是微碼,就像早期Acorn微機用的8位6502處理器。

ARM架構包括以下RISC特性:

讀取/存儲架構

不支持地址未對齊的內存訪問(現在ARMv6內核支持)。

正交指令集(任何訪問指令都可以以任何尋址方式訪問數據正交指令集)

大量的16 × 32位寄存器文件。

固定的32位操作碼長度,減少了代碼數量帶來的消耗,減輕了解碼和流水線的負擔。

大部分都是在壹個CPU周期內執行的。

為了加強這種簡單的設計方法,與同時期的處理器如Intel 80286和摩托羅拉68020相比,增加了壹些特殊的設計:

大多數指令可以有條件地執行,減少了分支時的負擔,彌補了分支預測器的不足。

算術指令只在需要時改變條件碼。

32位桶形移位器可用於執行大多數算術指令和尋址計算,而不會損失性能。

強大的索引尋址模式。

簡化但快速的雙優先級中斷子系統,帶可切換寄存器集。

ARM設計附帶的壹個有趣的事情是,在每條指令前用壹個4位的條件碼來表示每條指令的執行是否有條件。

這大大減少了內存訪問指令中使用的編碼位數,換句話說,它避免了為if之類的小語句創建分支指令。有壹個參考歐幾裏德最大公因式算法的標準例子:

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

int gcd (int i,int j)

{

而(我!= j)

如果(i & gtj)

I-= j;

其他

j-= I;

返回I;

}

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

環路CMP Ri,Rj;將條件設置為NE(不等於)if (i!= j)

;GT(大於)if (i > j),

;或者LT(小於)if (I

子門Ri,Ri,Rj;如果GT(大於),I = I-j;

SUBLT Rj,Rj,Ri;如果LT(小於),j = j-I;

BNE環線;如果NE(不等於),繼續循環。

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

指令集的另壹個特點是可以將移位、旋轉等功能組合成數據處理指令(算術、邏輯、寄存器間移動),所以比如壹個C語言描述。

a+=(j & lt;& lt2);

在ARM下,可以簡化成壹條只需要壹個字壹個周期就能完成的指令。

添加Ra,Ra,Rj,LSL #2

這壹結果可以使通用ARM程序更加緊湊,並且在不頻繁訪問內存的情況下可以更有效地使用流水線。即使ARM的執行速度通常被認為很慢,但與更復雜的CPU設計相比,它仍然可以表現得很好。

ARM處理器還有壹些其他RISC架構不常見到的特性,比如PC相對尋址(的確,PC是ARM上16寄存器之壹)和前遞增或後遞增的尋址方式。

其他考慮因素是ARM處理器將隨著時間的推移增加其指令集。例如,壹些早期的ARM處理器(早於ARM7TDMI)可能沒有讀取兩個字節的指令。因此,嚴格來說,在為這些處理器生成代碼時,無法處理C語言對象中使用volatile short的數據類型。

ARM7和大多數早期設計都有壹個三級流水線:獲取指令、解碼指令和執行指令。ARM9等高性能設計有五個流水線階段。提高性能的其他方法包括更快的加法器和更寬的分支預測邏輯電路。

這種架構提供了壹種通過使用“協處理器”來擴展指令集的非侵入性方式,它可以通過軟件中的MCR、MRC、MRRC和MCRR指令來尋址。協處理器空間在邏輯上分為16個協處理器,編號分別從0到15,第15號協處理器(CP15)保留用於壹些常見的控制功能,例如使用緩存和內存管理單元執行操作(如果包含在處理器中)。

在基於ARM的機器中,外圍設備通常通過將設備的物理寄存器映射到ARM的存儲空間,即協處理器空間,或者通過連接到另壹個依次連接到處理器的設備(如總線)來連接到處理器。協處理器的訪問延遲較低,因此壹些外圍設備(如XScale中斷控制器)被設計成可以通過不同的方式訪問(通過內存和協處理器)。較新的ARM處理器有壹個16位的指令模式,稱為Thumb,可能與每個條件執行指令消耗4位的情況有關。在Thumb模式下,較小的操作碼功能較少。例如,只有分支可以是有條件的,許多操作碼不能訪問所有的CPU寄存器。然而,更短的操作碼提供了總體上更好的編碼密度(註意:這意味著代碼占用內存空間),即使壹些操作需要更多的指令。特別是當內存端口或總線寬度限制在32位以下時,較短的Thumb操作碼可以更有效地使用有限的內存帶寬,從而提供比32位代碼更好的性能。典型的嵌入式硬件只有很小的32位數據路徑尋址範圍和其他更窄的16位尋址(比如Game Boy Advance)。在這種情況下,通常可行的做法是編譯成Thumb代碼,並使用(非Thumb)32位指令集優化壹些CPU相關的程序區,使其可以放在32位總線寬度有限的內存中。

第壹個采用Thumb技術的處理器是ARM7TDMI。包括XScale在內的所有ARM9和更高版本都采用了Thumb技術。ARM還開發了壹項技術,Jazelle DBX(直接字節碼執行),允許他們在壹些架構上加速Java字節碼的執行。就像其他執行模式壹樣,在調用壹些不能支持字節碼的特殊軟件時,可以提供壹些字節碼的加速執行。它可以在現有的ARM和Thumb模式之間相互執行。

第壹個采用Jazelle技術的處理器是ARM926EJ-S: Jazelle在CPU名稱中用英文字母‘J’標記。用來使手機廠商加快Java ME遊戲和應用的執行速度,促使了這項技術的不斷發展。Thumb-2技術最早出現在ARM1156的內核中,發表於2003年。Thumb-2擴展了16位Thumb的有限指令集,並通過額外的32位指令使該指令集得到了更廣泛的應用。所以Thumb-2的預期目標是達到接近Thumb的編碼密度,但在32位內存中卻能表現出接近ARM指令集的性能。

Thumb-2還從ARM和Thumb指令集派生出多種指令,包括位域操作、表分支和條件執行等功能。ThumbEE,又稱Thumb-2EE,在業內被稱為Jazelle RCT技術,發表於2005年,首次出現在Cortex-A8處理器中。ThumbEE提供了Thumb-2的壹些擴展性,使得指令集特別適合在執行環境下的運行時代碼生成(比如即時編譯)。Thumb-2EE是專門為壹些語言(如Limbo、Java、C#、Perl和Python)設計的,它使實時編譯器能夠在不影響性能的情況下輸出較小的編譯代碼。

ThumbEE提供了新的功能,包括每次訪問指令時自動檢查是否有無效指針,以及可以執行數組範圍檢查的指令,並可以分支到處理程序,其中包含少量頻繁調用的代碼,通常用於高級語言功能的實現,例如為新對象分配內存。VFP是協處理器中ARM架構的衍生技術。提供低成本的單精度和雙精度浮點運算能力,完全兼容ANSI/IEEE Std 754-1985二進制浮點運算標準。VFP提供了大多數適合浮點運算的應用,如PDA、智能手機、語音壓縮和解壓縮、3D圖像和數字音效、打印機、機頂盒和汽車應用。VFP架構還支持SIMD(單指令多數據)並行短向量指令執行。在諸如圖像和信號處理的應用中,這對於減小編碼尺寸和提高輸出效率非常有幫助。

在基於ARM的處理器中,其他可見的浮點或SIMD協處理器包括FPA、FPE和iwMMXt。它們提供了類似於VFP的功能,但是在操作碼級別不兼容。

  • 上一篇:力帆‘LF125-9’和‘LF125-19街霸’摩托車
  • 下一篇:買壹個商標要多少錢?買商標有風險嗎?
  • copyright 2024法律諮詢服務網