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