ARM Cortex-A32 – 復(fù)雜嵌入式設(shè)備的必然選擇
前言
本文引用地址:http://butianyuan.cn/article/201608/295852.htmARM處理器在嵌入式設(shè)備領(lǐng)域的應(yīng)用非常廣泛。其中,ARM Cortex-A處理器通常用于需要操作系統(tǒng)或高性能支持的應(yīng)用程序;Cortex-R處理器用于實(shí)時(shí)性能要求較高的應(yīng)用程序;而Cortex-M處理器則更適用于類似小型微控制器的應(yīng)用程序。
就Cortex-M處理器核心來(lái)講,ARM已經(jīng)擁有非常豐富的產(chǎn)品類型。Cortex-M0是同系列的首款處理器,設(shè)計(jì)初衷是利用其小體積、低功耗的優(yōu)勢(shì),滿足深度嵌入、成本敏感的應(yīng)用程序的要求,例如智能傳感器節(jié)點(diǎn)。Cortex-M3處理器和Cortex-M4處理器則主要針對(duì)大眾市場(chǎng)的微控制器。Cortex-M7處理器則是整個(gè)系列的最高端產(chǎn)品,性能更高,可以處理計(jì)算強(qiáng)度極高的工作負(fù)載,也包括信號(hào)處理。
基于ARMv6-M和ARMv7-M架構(gòu)的Cortex-M處理器,以簡(jiǎn)單易用的編程模型,通過(guò)搭載高度可配置核心,滿足多種不同設(shè)備的應(yīng)用。
對(duì)多數(shù)嵌入式應(yīng)用而言,盡管Cortex-M核心擁有簡(jiǎn)單易操作的強(qiáng)大優(yōu)勢(shì),但仍有很多用例需要更豐富、更強(qiáng)大的環(huán)境。一方面,這些應(yīng)用對(duì)效率和功耗依然十分敏感;但另一方面,諸如Linux或Android的操作平臺(tái)依舊不可或缺。遷移至類似操作系統(tǒng),應(yīng)用程序即可利用規(guī)模更大、內(nèi)容更豐富、設(shè)計(jì)更精致的軟件生態(tài)系統(tǒng)。
Cortex-M處理器關(guān)注的重點(diǎn)不是運(yùn)行更高層次的操作系統(tǒng),因此也不需要考慮運(yùn)行負(fù)責(zé)操作系統(tǒng)的必備功能。例如,Cortex-M沒(méi)有內(nèi)存管理單元(MMU),不支持虛擬存儲(chǔ)環(huán)境,因此也就不支持這類操作系統(tǒng)。如果應(yīng)用程序需要更豐富的操作環(huán)境,通常第一個(gè)選擇是“超高效率”的Cortex-A核心。這些核心可以為平臺(tái)操作系統(tǒng)提供更高級(jí)的功能支持,同時(shí)保持對(duì)很高的功耗效率。上述內(nèi)容代表了更先進(jìn)、更靈活的編程模式
得益于此,ARM Cortex-A處理器在深度嵌入式應(yīng)用程序中得到廣泛部署;尤其是在需要Linux或其他復(fù)雜操作系統(tǒng)的市場(chǎng)中,其采納更為普遍。
圖1- Cortex-A處理器和架構(gòu)
圖1介紹了目前的Cortex-A處理器家族,綠色高亮的是“超高能效”核。本白皮書將重點(diǎn)介紹其中的最新產(chǎn)品Cortex-A32。
對(duì)希望利用復(fù)雜操作系統(tǒng)環(huán)境或Cortex-A系列處理器強(qiáng)大性能和功能的應(yīng)用來(lái)講,Cortex-A32是一款理想的入門產(chǎn)品。它是ARMv8-A 架構(gòu)中能效最高的CPU,是可穿戴設(shè)備、物聯(lián)網(wǎng)及富嵌入式應(yīng)用的理想選擇;而且尤其適合需要使用Linux等平臺(tái)操作系統(tǒng)的應(yīng)用。
Cortex-A32 產(chǎn)品介紹
Cortex-A32是ARM架構(gòu)中獨(dú)一無(wú)二的產(chǎn)品,擁有重要地位。Cortex-A32基于ARMv8-A架構(gòu),卻是針對(duì)32位設(shè)計(jì)的處理器。圖2介紹了Cortex-A32與ARMv8-A架構(gòu)的匹配程度,并與Cortex-A35進(jìn)行了對(duì)比。
圖2 - Cortex-A32和ARMv8-A
基于上述,Cortex-A35可以實(shí)現(xiàn)兩種執(zhí)行態(tài),分別為32位AArch32及64位AArch64,從而充分發(fā)揮ARMv8-A架構(gòu)的64位操作能力;相對(duì)比,Cortex-A32僅支持32位AArch32執(zhí)行態(tài),這一決定不僅進(jìn)一步壓縮產(chǎn)品面積,對(duì)于不需要64位操作能力的用例,還可以帶來(lái)顯著的功耗優(yōu)化。無(wú)可否認(rèn),部分嵌入式應(yīng)用可以從64位獲益;但許多其他應(yīng)用都是32位的,將來(lái)很長(zhǎng)一段時(shí)間市場(chǎng)也會(huì)依舊如此。Cortex-A32則專為這些應(yīng)用程序量身打造。
AArch32執(zhí)行態(tài)是早期Cortex-A處理器所用ARMv7-A架構(gòu)的升級(jí)版。盡管不具備64位功能,但在其它某些功能卻得到顯著增強(qiáng),使Cortex-A32與Cortex-A7和Cortex-A5相比更加高效;對(duì)基于更早ARM處理器的設(shè)計(jì)演變,或聚焦嵌入式市場(chǎng)的全新設(shè)計(jì)來(lái)說(shuō),都是理想的選擇。
對(duì)比ARMv7-A,AArch32在如下方面得到強(qiáng)化:
• 添加多項(xiàng)新指令,密碼函數(shù)性能提高
• 全新的負(fù)載獲取及存儲(chǔ)釋放(Load Acquire and Store Release)指令,讓訪存排序更高效,與全新C++11訪存排序語(yǔ)義匹配
• 額外的標(biāo)量和單指令多數(shù)據(jù)結(jié)構(gòu)(SIMD)浮點(diǎn)指令
• 更豐富的系統(tǒng)控制指令
對(duì)比早期的32位ARMv7-A處理器,Arrch32這些額外特性使其具備更佳的性能。
Cortex-A32總線接口上的高級(jí)一致性擴(kuò)展(Advanced Coherency Extensions,ACE)使其可以利用Cortex-A32構(gòu)建支持完全一致的多處理器系統(tǒng),按需升級(jí),以實(shí)現(xiàn)更高的性能。不過(guò),如果產(chǎn)品面積與功耗是最主要的限制因素,Cortex-A32也提供專門針對(duì)單處理器應(yīng)用優(yōu)化的版本, 移除一致性邏輯,實(shí)現(xiàn)更高功效。
經(jīng)過(guò)大物理地址擴(kuò)展(Large Physical Address Extension,LPAE),Cortex-A32的可尋址內(nèi)存空間得到擴(kuò)展,超過(guò)Cortex-A5的32位(4GB),達(dá)到40位物理地址空間。
核心本身配置了額外的高級(jí)功能,進(jìn)一步提高效率。其中包括更靈活的功耗管理、更優(yōu)化的電源域和保留電源門控(retention power gating)的延伸使用。
評(píng)論