ARM Cortex-A32 – 復雜嵌入式設備的必然選擇
前言
本文引用地址:http://dyxdggzs.com/article/201608/295852.htmARM處理器在嵌入式設備領(lǐng)域的應用非常廣泛。其中,ARM Cortex-A處理器通常用于需要操作系統或高性能支持的應用程序;Cortex-R處理器用于實(shí)時(shí)性能要求較高的應用程序;而Cortex-M處理器則更適用于類(lèi)似小型微控制器的應用程序。
就Cortex-M處理器核心來(lái)講,ARM已經(jīng)擁有非常豐富的產(chǎn)品類(lèi)型。Cortex-M0是同系列的首款處理器,設計初衷是利用其小體積、低功耗的優(yōu)勢,滿(mǎn)足深度嵌入、成本敏感的應用程序的要求,例如智能傳感器節點(diǎn)。Cortex-M3處理器和Cortex-M4處理器則主要針對大眾市場(chǎng)的微控制器。Cortex-M7處理器則是整個(gè)系列的最高端產(chǎn)品,性能更高,可以處理計算強度極高的工作負載,也包括信號處理。
基于A(yíng)RMv6-M和ARMv7-M架構的Cortex-M處理器,以簡(jiǎn)單易用的編程模型,通過(guò)搭載高度可配置核心,滿(mǎn)足多種不同設備的應用。
對多數嵌入式應用而言,盡管Cortex-M核心擁有簡(jiǎn)單易操作的強大優(yōu)勢,但仍有很多用例需要更豐富、更強大的環(huán)境。一方面,這些應用對效率和功耗依然十分敏感;但另一方面,諸如Linux或Android的操作平臺依舊不可或缺。遷移至類(lèi)似操作系統,應用程序即可利用規模更大、內容更豐富、設計更精致的軟件生態(tài)系統。
Cortex-M處理器關(guān)注的重點(diǎn)不是運行更高層次的操作系統,因此也不需要考慮運行負責操作系統的必備功能。例如,Cortex-M沒(méi)有內存管理單元(MMU),不支持虛擬存儲環(huán)境,因此也就不支持這類(lèi)操作系統。如果應用程序需要更豐富的操作環(huán)境,通常第一個(gè)選擇是“超高效率”的Cortex-A核心。這些核心可以為平臺操作系統提供更高級的功能支持,同時(shí)保持對很高的功耗效率。上述內容代表了更先進(jìn)、更靈活的編程模式
得益于此,ARM Cortex-A處理器在深度嵌入式應用程序中得到廣泛部署;尤其是在需要Linux或其他復雜操作系統的市場(chǎng)中,其采納更為普遍。

圖1- Cortex-A處理器和架構
圖1介紹了目前的Cortex-A處理器家族,綠色高亮的是“超高能效”核。本白皮書(shū)將重點(diǎn)介紹其中的最新產(chǎn)品Cortex-A32。
對希望利用復雜操作系統環(huán)境或Cortex-A系列處理器強大性能和功能的應用來(lái)講,Cortex-A32是一款理想的入門(mén)產(chǎn)品。它是ARMv8-A 架構中能效最高的CPU,是可穿戴設備、物聯(lián)網(wǎng)及富嵌入式應用的理想選擇;而且尤其適合需要使用Linux等平臺操作系統的應用。
Cortex-A32 產(chǎn)品介紹
Cortex-A32是ARM架構中獨一無(wú)二的產(chǎn)品,擁有重要地位。Cortex-A32基于A(yíng)RMv8-A架構,卻是針對32位設計的處理器。圖2介紹了Cortex-A32與ARMv8-A架構的匹配程度,并與Cortex-A35進(jìn)行了對比。

圖2 - Cortex-A32和ARMv8-A
基于上述,Cortex-A35可以實(shí)現兩種執行態(tài),分別為32位AArch32及64位AArch64,從而充分發(fā)揮ARMv8-A架構的64位操作能力;相對比,Cortex-A32僅支持32位AArch32執行態(tài),這一決定不僅進(jìn)一步壓縮產(chǎn)品面積,對于不需要64位操作能力的用例,還可以帶來(lái)顯著(zhù)的功耗優(yōu)化。無(wú)可否認,部分嵌入式應用可以從64位獲益;但許多其他應用都是32位的,將來(lái)很長(cháng)一段時(shí)間市場(chǎng)也會(huì )依舊如此。Cortex-A32則專(zhuān)為這些應用程序量身打造。
AArch32執行態(tài)是早期Cortex-A處理器所用ARMv7-A架構的升級版。盡管不具備64位功能,但在其它某些功能卻得到顯著(zhù)增強,使Cortex-A32與Cortex-A7和Cortex-A5相比更加高效;對基于更早ARM處理器的設計演變,或聚焦嵌入式市場(chǎng)的全新設計來(lái)說(shuō),都是理想的選擇。
對比ARMv7-A,AArch32在如下方面得到強化:
• 添加多項新指令,密碼函數性能提高
• 全新的負載獲取及存儲釋放(Load Acquire and Store Release)指令,讓訪(fǎng)存排序更高效,與全新C++11訪(fǎng)存排序語(yǔ)義匹配
• 額外的標量和單指令多數據結構(SIMD)浮點(diǎn)指令
• 更豐富的系統控制指令
對比早期的32位ARMv7-A處理器,Arrch32這些額外特性使其具備更佳的性能。
Cortex-A32總線(xiàn)接口上的高級一致性擴展(Advanced Coherency Extensions,ACE)使其可以利用Cortex-A32構建支持完全一致的多處理器系統,按需升級,以實(shí)現更高的性能。不過(guò),如果產(chǎn)品面積與功耗是最主要的限制因素,Cortex-A32也提供專(zhuān)門(mén)針對單處理器應用優(yōu)化的版本, 移除一致性邏輯,實(shí)現更高功效。
經(jīng)過(guò)大物理地址擴展(Large Physical Address Extension,LPAE),Cortex-A32的可尋址內存空間得到擴展,超過(guò)Cortex-A5的32位(4GB),達到40位物理地址空間。
核心本身配置了額外的高級功能,進(jìn)一步提高效率。其中包括更靈活的功耗管理、更優(yōu)化的電源域和保留電源門(mén)控(retention power gating)的延伸使用。
評論