在圣何塞舉行的年度TechCon大會(huì)上,Arm宣布了可以由客戶定制的自定義指令,這是其Armv8-M架構(gòu)用于嵌入式CPU的一項(xiàng)新功能,嵌入式和物聯(lián)網(wǎng)應(yīng)用程序。顧名思義,它使客戶能夠編寫自己定制的自定義指令,以加速他們的嵌入式和物聯(lián)網(wǎng)應(yīng)用的特定用例。
“我們已經(jīng)有了增加加速度的方法,但是還沒有深入到CPU的核心。ARM汽車和物聯(lián)網(wǎng)業(yè)務(wù)高級(jí)總監(jiān)Thomas Ensergueix表示:“我們?cè)谶@方面給予我們客戶的靈活性,可以編寫自己的指令,定義自己的指令,并由CPU執(zhí)行?!?/p>
他指出,Arm有一系列加速選項(xiàng),首先是它的內(nèi)存映射架構(gòu),用于通過(guò)總線GPU以及神經(jīng)處理器單元進(jìn)行連接。這允許CPU和加速器并行運(yùn)行,但是總線是瓶頸。客戶也可以選擇直接連接到CPU的協(xié)處理器,不過(guò)今天推出的自定義指令將允許客戶直接創(chuàng)建他們自己的加速算法,然后直接在CPU上運(yùn)行。這意味著與內(nèi)存映射解決方案相比可以獲取更低的延遲。
正如Arm所指出的,這種設(shè)置為集成客戶工作負(fù)載加速提供了最低成本(和風(fēng)險(xiǎn))的途徑,因?yàn)樗粫?huì)對(duì)影響到現(xiàn)有的CPU特性,并且仍然允許客戶使用他們已經(jīng)熟悉的現(xiàn)有標(biāo)準(zhǔn)工具。
目前,自2020年上半年開始,自定義指令只能在Arm Cortex-M33 cpu上實(shí)現(xiàn)。后續(xù)它也會(huì)適用于未來(lái)所有的Cortex-M處理器。不需要為Arm的客戶支付額外的費(fèi)用或購(gòu)買新的許可證。
Ensergueix指出,隨著我們進(jìn)入一個(gè)設(shè)備連接越來(lái)越多的世界,Arm的更多客戶將希望優(yōu)化他們的處理器,以適應(yīng)他們通常非常具體的用例,例如,通過(guò)創(chuàng)建定制指令,可以更多的減小功耗,以獲得更多的電池壽命。
Arm已經(jīng)與眾多合作伙伴合作,以支持定制指令,這些客戶包括IAR Systems,恩智浦,Silicon Labs和意法半導(dǎo)體等。
恩智浦的Geoff Lees表示:“ Arm的新自定義指令功能使像恩智浦這樣的芯片供應(yīng)商能夠?yàn)槠淇蛻籼峁┽槍?duì)特定應(yīng)用的全新指令優(yōu)化,以提高性能,功耗和靜態(tài)代碼大小,以適應(yīng)新興的嵌入式應(yīng)用程序。”的微控制器。“此外,所有這些改進(jìn)都在廣泛的Cortex-M生態(tài)系統(tǒng)中實(shí)現(xiàn),因此客戶的現(xiàn)有軟件投資得以最大化。”
規(guī)格和功能
Arm自定義指令打開了實(shí)現(xiàn)定制數(shù)據(jù)處理操作的大門,而不會(huì)給軟件開發(fā)流程帶來(lái)復(fù)雜性。通過(guò)使用Armde 自定義指令芯片設(shè)計(jì)師可以在保證性能的前提下獲得更好的易用性和安全性。
Arm自定義指令可實(shí)現(xiàn)更高級(jí)別的優(yōu)化,以滿足不斷增長(zhǎng)的行業(yè)對(duì)工作負(fù)載特定計(jì)算的需求。Arm自定義指令功能包括:
Arm架構(gòu)兼容
受符合Arm的標(biāo)準(zhǔn)軟件開發(fā)工具的支持,包括開源編譯器(例如GCC)
與處理器管道緊密耦合,為延遲和功耗敏感型應(yīng)用帶來(lái)了最高的性能效率提升
與TrustZone技術(shù)兼容
Armv8-M架構(gòu)的自定義指令說(shuō)明
Armv8-M體系結(jié)構(gòu)的 Arm自定義指令 使您可以通過(guò)在小型嵌入式處理器中添加特定于應(yīng)用程序域的功能來(lái)進(jìn)一步提高性能和效率,同時(shí)保持Arm的軟件生態(tài)系統(tǒng)的所有優(yōu)勢(shì)。Arm自定義指令支持智能快速開發(fā)完全集成的自定義CPU指令,而不會(huì)造成軟件碎片。
Arm自定義指令允許您在Cortex-M33處理器內(nèi)部添加可自定義的模塊,稱為配置空間。該模塊由預(yù)解碼指令驅(qū)動(dòng),并與CPU的標(biāo)準(zhǔn)算術(shù)邏輯單元(ALU)共享相同的接口。將自定義指令添加到可自定義的CPU需要兩個(gè)步驟:
提供一個(gè)配置文件,該文件列出了要用于添加自己的自定義指令的區(qū)域。
為您自己的自定義指令構(gòu)建數(shù)據(jù)路徑,并將其集成到配置空間中。
配置空間可以實(shí)現(xiàn)以下Arm自定義指令格式之一,由Arm指令集體系結(jié)構(gòu)定義:
更多內(nèi)容可以到官網(wǎng)下載Arm自定義指令白皮書
https://developer.arm.com/architectures/instruction-sets/custom-instructions?from=timeline&isappinstalled=0