多樣性與兼容性的統(tǒng)一
處理器供應(yīng)商一直試圖在其產(chǎn)品周圍創(chuàng)建一個龐大的軟件生態(tài)系統(tǒng),因為這可以產(chǎn)生黏性,自然而然地 "鎖定 "大量投資于創(chuàng)建專用軟件的客戶。隨著時間的推移,這種效應(yīng)會越來越大,因為每個產(chǎn)品的軟件數(shù)量都在不斷增加。比如:一輛汽車的代碼行數(shù)可能超過1億行!
硬件與軟件之間的耦合來自于所選擇的指令集架構(gòu)(ISA),這也是為什么處理器設(shè)計者歷來對其加以嚴(yán)格保護(hù)的原因。ISA可為處理器賦予價值,因此帶來較高的售價。
盡管RISC-V ISA被多個處理器供應(yīng)商自由使用和共享,但有一點(diǎn)是共通的:處理器被賦予的價值來自于RISC-V兼容代碼的積累。然而隨著定制能力的不斷增強(qiáng),一些競爭者將碎片化風(fēng)險作為RISC-V架構(gòu)的弱點(diǎn)提出來。然而這個鍋RISC-V該背嗎?
掙脫專有ISA的禁錮
為了保護(hù)自己的生態(tài)系統(tǒng),傳統(tǒng)的專有ISA將用戶鎖定在預(yù)定的標(biāo)準(zhǔn)中,不惜一切代價避免偏離標(biāo)準(zhǔn),以確保軟件的兼容性。這就解釋了為什么一些現(xiàn)代處理器架構(gòu)上仍然留有20世紀(jì)70年代決策的疤痕,當(dāng)時的限制和系統(tǒng)完全不同,這導(dǎo)致了效率極其低下。而RISC-V架構(gòu)通過提供開放和可定制的ISA,正在逐步改變這種格局。RISC-V最引人注目的一點(diǎn)是它能夠?qū)崿F(xiàn)指令集的定制:這也是許多客戶在極力尋求的功能。這一功能的諸多優(yōu)勢可在下圖中一目了然。
可定制RISC-V ISA的優(yōu)勢
如此明顯的架構(gòu)優(yōu)勢,這也是傳統(tǒng)供應(yīng)商試圖通過提出兼容性問題來捍衛(wèi)立場的原因。如果大家都開始修改架構(gòu),對于生態(tài)系統(tǒng)有可能會支離破碎,軟件和硬件變得不兼容的擔(dān)憂時有發(fā)生?
其實(shí)這種擔(dān)憂是合理的,但是需要結(jié)合事實(shí)來判斷。
首先我們必須承認(rèn)碎片化的存在性。對于許多應(yīng)用程序來說,真正依賴于ISA的軟件即使有,也是少之又少。由于軟件開發(fā)人員希望盡可能提高工作效率,因此他們使用高級語言編譯生成依賴ISA的匯編代碼。這些語言中包含大量現(xiàn)成的軟件元素:移植它們只需將程序庫與應(yīng)用程序一起重新編譯即可。而這又意味著什么呢?要將這些代碼重新定位到帶有自定義指令的處理器上,只需要一個優(yōu)秀的專用編譯器即可解決問題。但這同時又相當(dāng)棘手,因為定制編譯器可能需要一個技術(shù)精湛、成本高昂的團(tuán)隊來構(gòu)建......幸運(yùn)的是,目前市面上已經(jīng)有處理器定制化軟件工具可以協(xié)助達(dá)到這一目標(biāo)。比如Codasip Studio,作為高度自動化的處理器設(shè)計工具,它可以在生成定制處理器的同時生成專用編譯器!
盡管在少數(shù)情況下,我們?nèi)匀恍枰蕾嘔SA的代碼,諸如:
對于經(jīng)過嚴(yán)格優(yōu)化的代碼,每個周期都經(jīng)過計算,以保證達(dá)到一定的性能水平。
在大型軟件系統(tǒng)中,需要執(zhí)行預(yù)先編譯好的應(yīng)用程序,例如數(shù)據(jù)中心應(yīng)用中的容器技術(shù)(內(nèi)核虛擬化技術(shù)),計算機(jī)或移動設(shè)備中的應(yīng)用等。
操作系統(tǒng)也可能有ISA特定代碼,如上下文或線程切換。
確實(shí)需要努力將其他ISA移植到RISC-V,但一旦完成移植,就不會妨礙定制,因為RISC-V在構(gòu)建時就考慮到了定制和兼容性。那么RISC-V是如何做到這一點(diǎn)的?此時不得不提到定制指令。定制指令通常可以顯著改善客戶希望移植的經(jīng)過嚴(yán)格優(yōu)化的代碼,因此可能需要權(quán)衡這一點(diǎn)與易移植性之間的關(guān)系。
以下例子充分說明了為確保兼容性,RISC-V所采用的措施:
1. 將基本ISA標(biāo)準(zhǔn)化
RISC-V定義了一組有保證的標(biāo)準(zhǔn)基本指令。這就確保了在不同的實(shí)現(xiàn)中保持一致的通用基線。這種基本兼容性甚至涵蓋了從最微小的設(shè)備到最復(fù)雜的服務(wù)器級多核處理器。在這些標(biāo)準(zhǔn)的基礎(chǔ)上可以進(jìn)行定制,從而保證兼容性不被破壞。
2. 模塊化設(shè)計
RISC-V的模塊化設(shè)計方法將ISA分成不同的部分,明確定義擴(kuò)展以確保其兼容性。例如如果一個軟件需要浮點(diǎn)運(yùn)算單元,它就可以在任何具有浮點(diǎn)運(yùn)算單元的RISC-V 處理器上執(zhí)行,而無需修改。
3. 配置文件
RISC-V定義了復(fù)雜的配置文件,這些配置文件又定義了各種擴(kuò)展,簡化了與各類設(shè)備兼容的條件。這對高端應(yīng)用至關(guān)重要,因為在高端應(yīng)用中,核心指令集提供的基本兼容性不足以管理軟件工作負(fù)載的復(fù)雜性。
通過確保兼容性來避免RISC-V碎片化
由于具有自定義指令的處理器只是“普通”處理器的超集,這些機(jī)制確保其可以(并立即可用)與為其他RISC-V處理器開發(fā)的軟件相兼容。因此,它受益于RISC-V開發(fā)社區(qū)在許多供應(yīng)商的處理器上編寫代碼的倍增效應(yīng)。這就是為什么Codasip的可定制并經(jīng)過預(yù)先驗證的RISC-V兼容處理器解決方案如此強(qiáng)大:設(shè)計人員在保持兼容性的同時獲得定制效率的提升。
RISC-V打破了定制與兼容性相互排斥的觀念。其開放、模塊化和標(biāo)準(zhǔn)化的設(shè)計使開發(fā)人員能夠在保持軟件兼容性的同時,創(chuàng)建滿足特定需求的定制解決方案。RISC-V架構(gòu)能夠使各個行業(yè)有能力擺脫專有限制,并以之前無法想象的方式推動創(chuàng)新。隨著越來越多的行業(yè)對RISC-V接受程度的提高,以及生態(tài)的不斷發(fā)展,并有諸如Codasip這樣的供應(yīng)商不遺余力地提供實(shí)現(xiàn)定制處理器的便捷途徑,我們完全可以期待一個蓬勃發(fā)展的定制計算時代的到來。
審核編輯:彭菁
-
處理器
+關(guān)注
關(guān)注
68文章
19261瀏覽量
229661 -
軟件
+關(guān)注
關(guān)注
69文章
4927瀏覽量
87407 -
代碼
+關(guān)注
關(guān)注
30文章
4780瀏覽量
68529 -
編譯器
+關(guān)注
關(guān)注
1文章
1624瀏覽量
49108 -
RISC-V
+關(guān)注
關(guān)注
45文章
2271瀏覽量
46131
原文標(biāo)題:RISC-V碎片化 - 這個鍋RISC-V背不背?!
文章出處:【微信號:Codasip 科達(dá)希普,微信公眾號:Codasip 科達(dá)希普】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論