Cortex系列組合大體上分為三種類別:

● Cortex-A—面向效能密集型系統的應用處理器核心

● Cortex-R—面向實時應用的高效能核心

● Cortex-M—面向各類嵌入式應用的微控制器核心

1

Cortex-A系列

Cortex-A處理器為利用作業系統(例如Linux或者Android)的裝置提供了一系列解決方案,這些裝置被用於各類應用,從低成本手持裝置到智慧手機、平板電腦、機頂盒以及企業網路裝置等。早期的Cortex-A系列處理器(A5、A7、A8、A9、A12、A15和A17)基於ARMv7-A架構。每種核心都共享相同的功能集,例如NEON媒體處理引擎、Trustzone安全擴充套件、單精度和雙精度浮點支援、以及對多種指令集(ARM、Thumb-2、Thumb、Jazelle和DSP)的支援。與此同時,這些處理器也具有極高的設計靈活性,能夠提供所需的最佳效能和預期的功效。

儘管Cortex-A5核心是Cortex-A系列中體積和功耗都最低的成員,但它擁有支援多核效能的潛能,並且與該系列中的高階成員(A9和A15)相容。對於那些之前採用ARM926EJ-S或ARM1176JZ-S處理器的設計人員來說,選擇A5是自然的,因為它具有更高的效能和更低的晶片成本。

Cortex-A7在功耗和體積上與Cortex-A5相似,但其效能提升20%左右,且與Cortex-A15和Cortex-A17有完全的架構相容性。Cortex-A7是成本敏感型智慧手機和平板電腦的理想選擇,而且它還可以與Cortex-A15或Cortex-A17組合使用,形成ARM稱為“big。LITTLE”的處理結構。big。LITTLE結構實質上是一種功耗最佳化技術;高效能CPU(例如Cortex-A17)和高效率CPU(例如Cortex-A7)的組合配置能夠提供更高的永續性能,同時因為更高效的核心很好的滿足了應用對中低效能的需求,這種組合還顯著節省整體功耗,節省75%的CPU耗能,並且延長電池的使用壽命。

智慧手機和平板電腦的效能需求發展遠比電池容量的增長快得多,因此這種配置帶給開發人員明顯的優勢。諸如big。LITTLE等設計方法,作為整體系統設計策略的一部分,能夠顯著降低這種電池技術造成的差距。

接下來讓我們看看Cortex-A系列處理器中的高級別產品——Cortex-A15和Cortex-A17核心。這兩款核心都是高效能處理器,也可用於多種配置中。Cortex-A17是最高效的“中級”處理器,直接針對高階智慧手機和平板電腦。Cortex-A9曾廣泛應用於這個市場,但與Cortex-A9相比,Cortex-A17效能提升了60%以上(迴圈週期),同時也改善了整體功效。Cortex-A17能夠配置多達四個核心,每個核心都包含一個完整的亂序流水線。如前面提到的,Cortex-A17 可與Cortex-A7組合成高效的big。LITTLE配置,還可以搭配高階移動圖形處理器(例如來自ARM的MALI),構成非常高效的設計整體。

Cortex-A15是該系列處理器中效能最高的成員,是Cortex-A9效能(移動配置模式)的兩倍。不僅完全勝任高階智慧手機或平板電腦這樣的應用,而且執行速率可高達2。5GHz的多核Cortex-A15處理器也能夠支撐低功耗伺服器或無線基礎設施等應用。Cortex-A15是ARM公司第一款對虛擬軟體環境中的資料管理和仲裁提供硬體支援的處理器。這些軟體環境中的應用能夠同時訪問系統資源,實現虛擬環境中裝置的可靠執行和相互隔離。

Cortex-A50系列將Cortex-A系列的應用範圍擴大至低功耗伺服器領域。這些處理器基於ARMv8架構,支援AArch64——高效能64位執行態且可以與現行32位執行態共存。升級到64位的原因之一顯而易見是為了支援大於4GB的物理記憶體,儘管Cortex-A15和Cortex-A7已經具備此能力。在這種情況下,升級到64位其實是為伺服器應用提供更好的支援,伺服器中越來越多的作業系統和應用程式都採用64位,當然,Cortex-A50系列為上述情況提供了功耗最佳化的解決方案。對於桌上型電腦市場而言,情況也大體相同,支援64位意味著Cortex-A50系列能夠更廣泛地應用到這一細分市場,而且某種程度證明了未來64位作業系統最終將遷移到移動應用。

2

Cortex-R

介紹過Cortex-A,下面介紹Cortex-R系列——衍生產品中體積最小的ARM處理器,這一點也最不為人所知。Cortex-R處理器針對高效能實時應用,例如硬碟控制器(或固態驅動控制器)、企業中的網路裝置和印表機、消費電子裝置(例如藍光播放器和媒體播放器)、以及汽車應用(例如安全氣囊、制動系統和發動機管理)。Cortex-R系列在某些方面與高階微控制器(MCU)類似,但是,針對的是比通常使用標準MCU的系統還要大型的系統。例如,Cortex-R4就非常適合汽車應用。

Cortex-R4主頻可以高達600MHz(具有2。45DMIPS/MHz),配有8級流水線,具有雙傳送、預取和分支預測功能、以及低延遲中斷系統,可以中斷多週期操作而快速進入中斷服務程式。Cortex-R4還可以與另外一個Cortex-R4構成雙核心配置,一同組成一個帶有失效檢測邏輯的冗餘鎖步(lock-step)配置,從而非常適合安全攸關的系統。

Cortex-R5能夠很好的服務於網路和資料儲存應用,它擴充套件了Cortex-R4的功能集,從而提高了效率和可靠性,增強了可靠實時系統中的錯誤管理。其中的一個系統功能是低延遲外設埠(LLPP),可實現快速外設讀取和寫入(而不必對整個埠進行“讀取-修改-寫入”操作)。Cortex-R5還可以實現處理器獨立執行的“鎖步(lock-step)”雙核系統,每個處理器都能透過自己的“匯流排介面和中斷”執行自己的程式。這種雙核實現能夠構建出非常強大和靈活的實時響應系統。

Cortex-R7極大擴充套件了R系列核心的效能範圍,時鐘速度可超過1GHz,效能達到3。77DMIPS/MHz。Cortex-R7上的11級流水線現在增強了錯誤管理功能,以及改進的分支預測功能。多核配置也有多種不同選項:鎖步、對稱多重處理和不對稱多重處理。Cortex-R7還配有一個完全整合的通用中斷控制器(GIC)來支援複雜的優先順序中斷處理。不過,值得注意的是,雖然Cortex-R7具有高效能,但是它並不適合執行那些特性豐富的作業系統(例如Linux和Android)的應用,Cortex-A系列才更適合這類應用。

3

Cortex-M

最後,我們來討論Cortex-M系列,特別設計針對競爭已經非常激烈的MCU市場。Cortex-M系列基於ARMv7-M架構(用於Cortex-M3和Cortex-M4)構建,而較低的Cortex-M0+基於ARMv6-M架構構建。首款Cortex-M處理器於2004年釋出,當一些主流MCU供應商選擇這款核心,並開始生產MCU器件後,Cortex-M處理器迅速受到市場青睞。可以肯定的說,Cortex-M之於32位MCU就如同8051之於8位MCU——受到眾多供應商支援的工業標準核心,各家供應商採用該核心加之自己特別的開發,在市場中提供差異化產品。例如,Cortex-M系列能夠實現在FPGA中作為軟核來用,但更常見的用法是作為集成了儲存器、時鐘和外設的MCU。在該系列產品中,有些產品專注最佳能效、有些專注最高效能、而有些產品則專門應用於諸如智慧電錶這樣的細分市場。

Cortex-M3和Cortex-M4是非常相似的核心。二者都具有1。25DMIPS/MHz的效能,配有3級流水線、多重32位匯流排介面、時鐘速率可高達200MHz,並配有非常高效的除錯選項。最大的不同是,Cortex-M4的核心效能針對的是DSP。Cortex-M3和Cortex-M4具有相同的架構和指令集(Thumb-2)。然而,Cortex-M4增加了一系列特別針對處理DSP演算法而最佳化的飽和運算和SIMD指令。以每0。5秒執行一次的512點FFT為例,如果分別在同類量產的Cortex-M3 MCU和Cortex-M4 MCU上執行,完成同樣的工作,Cortex-M3所需功耗約是Cortex-M4所需功耗的三倍。此外,也有在Cortex-M4上實現單精度浮點單元(FPU)的選項。如果應用涉及到浮點計算,那在Cortex-M4上完成比在Cortex-M3上完成要快得多。也就是說,對於不使用Cortex-M4上DSP或FPU功能的應用而言,其效能和功耗與Cortex-M3相同。換句話說,如果使用DSP功能,那就選擇Cortex-M4。否則,就選擇Cortex-M3完成工作。

對於成本特別敏感的應用或者正在從8位遷移到32位的應用而言,Cortex-M系列的最低端產品可能是最佳選擇。雖然Cortex-M0+的效能為0。95DMIPS/MHz,比Cortex-M3和Cortex-M4的效能稍稍低一些,但仍可與同系列其他高階產品相容。Cortex-M0+採用Thumb-2指令集的子集,而且這些指令大都是16位運算元(雖然所有資料執行都是32位的),這使得它們能夠很好的適應Cortex-M0+所提供的2級流水線服務。透過減少分支對映,系統就能節約一些整體功耗,而且在大多數情況下,流水線將保留接下來的四個指令。Cortex-M0+還具有專用的匯流排用於單週期GPIO,這意味著你能夠利用位控制的GPIO實現確定介面,就像8位MCU那樣,但卻以32位核心的效能來處理該資料。

Cortex-M0+的另外一個重要的不同特點是增加了微型跟蹤緩衝器(MTB)。該外設可使設計人員在除錯過程中使用一些片上RAM來儲存程式分支。這些分支隨後能夠回傳到整合開發環境中,而且可以重建程式流程。這一功能提供了一種初步的指令跟蹤能力,這對於不具備擴充套件跟蹤宏單元(ETM)功能的Cortex-M3和Cortex-M4來說比較有意義。從Cortex-M0+中提取的除錯資訊等級顯著高於8位MCU,這就意味著那些難以解決的除錯問題變得更加容易解決。