閱讀664 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Cortex係列ARM內核介紹

眾所周知,英國的ARM公司是嵌入式微處理器世界當中的佼佼者。ARM一直以來都是自己研發微處理器內核架構,然後將這些架構的知識產權授權給各個芯片廠商,精簡的CPU架構,高效的處理能力以及成功的商業模式讓ARM公司獲得了巨大的成功,使他迅速占據了32位嵌入式微處理器的大部分市場份額,甚至現在,ARM芯片在上網本市場的也大有與INTEL的ATOM處理器一較高低的實力。

  目前,隨著對嵌入式係統的要求越來越高,作為其核心的嵌入式微處理器的綜合性能也受到日益嚴峻的考驗,最典型的例子就是伴隨3G網絡的推廣,對手機的本地處理能力要求很高,現在一個高端的智能手機的處理能力幾乎可以和幾年前的筆記本電腦相當。為了迎合市場的需求,ARM公司也在加緊研發他們最新的ARM架構,Cortex係列就是這樣的產品。在Cortex之前,ARM核都是以ARM為前綴命名的,從ARM1一直到ARM11,之後就是Cortex係列了。Cortex在英語中有大腦皮層的意思,而大腦皮層正是人腦最核心的部分,估計ARM公司如此命名正有此含義吧。

  一.ARMv7架構特點

  下表列出了ARM微處理器核心以及體係結構的發展曆史:

  表一: ARM微處理器核心以及體係結構的發展曆史


  我們可以看到,Cortex係列屬於ARMv7架構,這是ARM公司最新的指令集架構,而我們比較熟悉的三星的S3C2410芯片是ARMv4架構,ATMEL公司的AT91SAM9261芯片則是ARMv5架構。

  ARMv7架構是在ARMv6架構的基礎上誕生的。該架構采用了Thumb-2技術,Thumb-2技術是在ARM的Thumb代碼壓縮技術的基礎上發展起來的,並且保持了對現存ARM解決方案的完整的代碼兼容性。Thumb-2技術比純32位代碼少使用 31%的內存,減小了係統開銷。同時能夠提供比已有的基於Thumb技術的解決方案高出38%的性能。ARMv7架構還采用了NEON技術,將DSP和媒體處理能力提高了近4倍,並支持改良的浮點運算,滿足下一代3D圖形、遊戲物理應用以及傳統嵌入式控製應用的需求。此外,ARMv7還支持改良的運行環境,以迎合不斷增加的JIT(JuST In Time)和DAC(DynamicAdaptive CompilatiON)技術的使用。另外,ARMv7架構對於早期的ARM處理器軟件也提供很好的兼容性。

  ARMv7架構定義了三大分工明確的係列:“A”係列麵向尖端的基於虛擬內存的操作係統和用戶應用;“R”係列針對實時係統;“M”係列對微控製器和低成本應用提供優化。下圖為v5至v7架構比較:


  圖一:v5至v7架構比較

  由於應用領域不同,基於v7架構的Cortex處理器係列所采用的技術也不相同,基於v7A的稱為Cortex-A係列,基於v7R的稱為Cortex-R係列,基於v7M的稱為Cortex-M係列。下麵一一介紹。

  二.Cortex-A8

  Cortex-A8第一款基於ARMv7構架的應用處理器。Cortex-A8是ARM公司有史以來性能最強勁的一款處理器,主頻為600MHz到1GHz。A8可以滿足各種移動設備的需求,其功耗低於300毫瓦,而性能卻高達2000MIPS

  Cortex-A8也是ARM公司第一款超級標量處理器。在該處理器的設計當中,采用了新的技術以提高代碼效率和性能,采用了專門針對多媒體和信號處理的NEON技術。同時,還采用了Jazelle RCT技術,可以支持JAVA程序的預編譯與實時編譯。

  針對Cortex-A8,ARM公司專門提供了新的函數庫(Artisan Advantage-CE)。新的庫函數可以有效的提高異常處理的速度並降低功耗。同時,新的庫函數還提供了高級內存泄漏控製機製。

  Cortex-A8處理器使用了先進的分支預測技術,並且具有專用的NEON整型和浮點型流水線進行媒體和信號處理。在使用小於4 mm2的矽片及低功耗的65 nm工藝的情況下,Cortex-A8處理器的運行頻率將高於600MHz(不包括NEON追蹤技術和二級高速緩衝存儲器)。在高性能的90 nm和65 nm工藝下,Cortex-A8處理器運行頻率最高可達1 GHz,能夠滿足高性能消費產品設計的需要。

  Cortex-A8第一次為低費用、高容量的產品帶來了台式機級別的性能。當前最新的IPHONE手機和ANDROID手機裏的處理器就是基於Cortex-A8內核的芯片。

  Cortex-A8的係統框圖如下:


  圖二:Cortex-A8的係統框圖

  更詳細的框圖如下:


  圖三:Cortex-A8的詳細係統框圖

  三.Cortex-R4

  Cortex-R4是ARM開發的超標量結構的ARM內核,主要麵向實時控製領域,如汽車刹車控製等,這一領域要求處理器響應中斷的實時性高,並且要盡可能的節約成本,而很多客戶要求不需過多提高工作頻率,就能提高運算性能,因此在Cortex-R4的設計過程中,工作頻率的最佳點位是300MHz。再高的話,不僅需要高速內存,而且時鍾樹的設計也更為複雜。結果,判斷合理的做法就是采用超標量結構,增加單位周期所執行的指令平均數。Cortex-R4單位工作頻率的運算性能為 1.62MIPS(按Dhrystone換算)/MHz,比ARM9的約1.2MIPS/MHz大幅提高。Cortex-R4電路規模隻是比ARM9略有增加,但是可以實現更接近於Cortex-A8的運算性能。

  Cortex-R4係統框圖如下所示:


  圖四:Cortex-R3係統框圖

  四.Cortex-M3

  ARM Cortex-M係列則是為那些對開發費用非常敏感同時對性能要求小斷增加的嵌入式應用(如微控製器、汽車車身控製係統和各種大型家電)所設計的,主要麵向單片機領域,可以說是51單品機的完美替代品。

  Cortex-M3係統框圖如下所示:


  圖五:Cortex-M3係統框圖

  Cortex-M3的速度比ARM7快三分之一,功耗低四分之三,並且能實現更小芯片麵積,利於將更多功能整合在更小的芯片尺寸中。Cortex-M3處理器結合了執行Thumb-2指令的32位哈佛微體係結構和係統外設,包括Nested Vec-tored Interrupt Controller和Arbiter總線。該技術方案在測試和實例應用中表現出較高的性能:在台機電180 nm工藝下,芯片性能達1.2 DMIPS/MHz,時鍾頻率高達100 MHz。

  在工控領域,用戶要求具有更快的中斷速度,Cortex-M3采用了Tail-Chaining中斷技術,完全基於硬件進行中斷處理,最多可減少12個時鍾周期數,在實際應用中可減少 70%中斷。

  五.總結

  ARM Cortex處理器係列都是基於ARMv7架構的產品,從尺寸和性能方而來看,既有少於33000個門電路的Cortex-M係列,也有高性能的Cortex-A係列。其中,Cortex-A係列是針對日益增長的,運行包括Linux、Windows,CE和Symbian操作係統在內的消費娛樂和無線產品設計的;ARM Cortex-R係列針對的是需要運行實時操作係統來進行控製應用的係統,包括汽車電子、網絡和影像係統;ARM Cortex-M係列則麵向微控製器領域,為那些對開發費用非常敏感同時對性能要求不斷增加的嵌入式應用所設計的。可見隨著在各種不同領域應用需求的增加,微處理器市場也在趨於多樣化。

  “本文由華清遠見https://www.embedu.org/index.htm提供”


最後更新:2017-04-02 16:47:59

  上一篇:go oracle中對時間的操作以及to_char和to_date用法總結
  下一篇:go C# 程序開機啟動