處理器擴展性有什么重要之處?
2020-07-03 13:03:15 處理器許多人認為可擴展性是增加指令的能力,然而當基礎設施和通信被視為機會空間的一部分時,可能會獲得更大的收益。例如,通過專用硬件通道實現(xiàn)處理器到處理器的直接通信,與對稱多處理(SMP)等舊技術相比,可以提供巨大的功耗和性能優(yōu)勢。這些舊機制依賴于耗電大的總線體系結構和共享內存之間的通信。
分布式處理還能實現(xiàn)更大程度的專業(yè)化,但要想從中受益,整個流程必須變得足夠優(yōu)化,使增加的開發(fā)成本能夠證明性能的提升是合理的。ISC-V有助于將其推向標準設計實踐,因此該行業(yè)似乎正處于轉折點。
西門子業(yè)務部門Mentor的設計驗證技術營銷總監(jiān)Neil Hand說:“由于遺留用途或存在的基礎結構,整個行業(yè)仍然仍然致力于標準處理器和標準體系結構。” “他們通過硬件加速器處理了所需的任何其他功能。你還有另一群人開始研究RISC-V等替代產品。”
Arm的策略副總裁Tim Whitfield表示:“從歷史上看,挑戰(zhàn)在于將自定義指令的提供僅限于利基應用,在這些應用中,必須權衡額外的設計工作,功能和對定制軟件工具鏈的需求。汽車和物聯(lián)網業(yè)務線。“管理軟件的成本和開銷超過了性能或功耗優(yōu)勢。通常,該用途僅限于軟件或用戶界面未暴露給第三方的嵌入式應用。”
性能的改善迫使這些替代方案。“如果無法從標準的固定指令集(ISA)處理器中獲得所需的性能,那么你將不得不在處理器外部添加硬件并以某種方式進行連接,” Cadence Tensilica集團產品營銷總監(jiān)George Wall說。“借助可擴展的ISA,你可以將該特定功能作為一條指令或一組指令進行加速,并滿足整體性能要求,而不必加載到固定硬件上。”
這樣做的愿望當然不是什么新鮮事。"一直以來,人們都夢想著把C代碼神奇地移植到一個可以優(yōu)化運行該C代碼的定制處理器上,"Synopsys公司ARC DSP處理器的產品營銷經理Graham Wilson說。"現(xiàn)實情況是,要實現(xiàn)這個夢想并不像最初想象的那樣容易,但可配置和可擴展的處理器讓他們更接近夢想。能夠快速響應市場的變化、新的算法或以前算法的不同實現(xiàn)方式,為定制指令提供了最大的成功,使人們能夠獲得更好的性能。"
RISC-V的影響
添加指令并不是什么新鮮事。"很多處理器已經出現(xiàn)了一段時間,但它們受到了非常嚴格的控制,"Mentor的Hand說。"他們允許你添加特殊指令,但這是在不干擾處理器主解碼結構的情況下。RISC-V所改變的是,現(xiàn)在有了一個可重用的軟件生態(tài)系統(tǒng),使人們更容易考慮這些專用處理器。我們看到越來越多的人希望建立或修改他們自己的軟件,因為他們不必在軟件生態(tài)系統(tǒng)上投資。在嘗試探索新的架構時,軟件生態(tài)系統(tǒng)總是代價高昂的部分。”"
這種選擇以前從未出現(xiàn)過。"將模塊化設計方法與基于開源ISA創(chuàng)建自定義指令的能力結合起來,對處理器來說是一個突破性的想法,"Aldec營銷總監(jiān)Louie De Luna說。"模塊化方法可以覆蓋更廣泛的領域,而定制指令可以解決更多的領域特定要求。"
而且因為RISC-V是開放的,所以可能性是無限的。"RISC-V允許你對它進行擴展,或者嘗試使用許多內核的配置,你需要自己的指令來做一致性和移動數(shù)據(jù),"Imperas軟件公司的CEO Simon Davidmann說。"也許你想在它們之間有一個FIFO。開放式ISA的想法是,它讓你有能力添加簡單的東西,比如自定義指令來做特定的算法,但它也允許你連接數(shù)組或進行通信。RISC-V給你的是創(chuàng)新的自由。"
擴展類型某些算法可以從指令的添加中獲益。"它可能是一個VLIW類型的指令,或者只是一個指令,它結合了兩個非常常見的操作,比如在一個移位中添加,"Cadence的Wall說。"根據(jù)擴展和能力,你有時可以將一些決策指標納入該數(shù)據(jù)處理中。你可能有一個指令說,'如果這個條件為真,我將從這個存儲器位置加載我的寄存器。否則,我將保留舊的值'。這些類型的指令在圖像處理中是非常有價值的。"
添加擴展不僅僅是添加計算。"你還可以添加接口,"Wall繼續(xù)說道。"通過這些接口,人們可以連接外部硬件塊。了解處理器和外部硬件塊之間的帶寬和吞吐量是系統(tǒng)架構的一個基本部分。你需要提出一個系統(tǒng)架構,然后提出你打算執(zhí)行的算法。"
這將其從軟件擴展轉換為體系結構擴展。“你可以添加自己的自定義接口-無論是GPIO,F(xiàn)IFO寄存器,輔助寄存器還是可以鏡像硬件模塊的自定義寄存器-這樣它們就可以與硬件緊密耦合,” Synopsys的Wilson說道。“這為開發(fā)人員提供了一個最佳處理器,該處理器非常緊密地耦合并連接到他們的系統(tǒng)中,并且通過接口的擴展來實現(xiàn)。然后創(chuàng)建指令以訪問那些GPIO,F(xiàn)IFO和輔助寄存器。”
多核體系結構正在推動這種類型的擴展。Imperas的Davidmann說:“當你擁有一系列處理器時,它們往往會坐在一個矩陣中,與周邊設備進行數(shù)據(jù)交換。” “也許它們之間有一個FIFO。你可以通過編程方式執(zhí)行此操作,但是添加自己的指令來控制通信結構的效率要高得多。”
然而,也有一個缺點。"現(xiàn)在你有這么多的自由度,你必須小心使用這些自由度中,"Hand警告說。"你的每一個改變都會對驗證產生影響。"
量化收益人們擴展處理器會期望什么?“在DAC 2017上,Microsemi報告了為其基于RISC-V的音頻處理器產品創(chuàng)建定制的DSP指令,” Codasip的高級市場總監(jiān)Roddy Urquhart說。“他們的定制處理器提供的性能是原始內核的4.24倍,但僅需要增加48%的硅面積。由于功耗與時鐘頻率成正比,因此,由于處理器面積較大,降低時鐘頻率比降低功率要明顯多。此外,代碼大小縮小到原始大小的43%,并具有相關的區(qū)域成本和功耗優(yōu)勢。”
收益可能更大。Wall說:“我們有許多使用Tensilica內核來加速AES加密的客戶。” “如果要在純處理器上運行該加密,然后將其與具有處理器擴展的加密進行比較,則加密速度大約快200倍。這是一個極端的情況,但它為你提供了各種可能性的示例。標準RISC處理器中的基本說明并非在設計時就考慮了AES。需要一些特殊的XOR和移位。能夠添加這些功能不僅增加了數(shù)據(jù)計算量,而且還使你可以將一些決策捕獲到硬件中,因此無需執(zhí)行處理器中昂貴的分支。”
它可以提供較小的芯片。"除了性能之外,你可能會看到功率和面積方面的收益。在功率方面,你可能需要更少的指令來執(zhí)行一些操作。如果你打算加速一些關鍵基準,這些基準消耗了70%的處理器負載,你加速這些基準,你以將實現(xiàn)算法所需的時鐘周期數(shù)減半。這就轉化為一個更低能耗的解決方案。雖然由于額外的指令,核心可能會大一點,但你由此產生的功耗卻會少很多。如果你合并了大量的指令,也會減少你的指令代碼大小,從而減少你的指令內存大小,并會減少你在訪問內存時的功耗。"
而結果可能是一個更便宜的解決方案。"人們對處理器進行了改變,使他們的軟件速度得到了數(shù)量級的提升,"Hand說。“這使他們可以轉到較舊的過程節(jié)點,并且實際上可以節(jié)省金錢,而無需對設計進行太大的改動。”
性能分析
這一切都要從分析開始。"并非所有的計算都適合通用處理器內核,"Codasip的Urquhart說。"如果對軟件進行剖析,就可以確定計算熱點,讓設計人員研究如何擴展指令集,以便更好地實現(xiàn)設計目標。設計人員可以創(chuàng)建額外的指令,然后使用分析工具來反饋性能瓶頸是否得到了解決。"
你可以非常快速地通過你的EDA流程來得出一個門級的實現(xiàn),然后你通常可以得到一個粗略的功率數(shù)量級估計。這樣就可以很容易地對兩種不同的實現(xiàn)進行比較。你可能會看到,功率上升了10%,但我的應用性能卻提高了一倍。"
這不是一個開環(huán)過程。“你需要保持嚴格控制,因為你正在向內核添加邏輯,” Wilson說。“這是一個迭代過程,需要開發(fā)指令,進行物理實現(xiàn),評估門數(shù),計算最大時鐘頻率等。只要你堅持這一點,如果考慮到指令存儲器,你將獲得更低的功耗和更小的解決方案。”
維護工具鏈
如果擴展時工具鏈被破壞,擴展帶來的收益就會消失。一些解決方案將這一點建立在擴展的方式中,而另一些解決方案則提供了更多的靈活性,但也可能讓你陷入更多的麻煩。作為最低限度,保持RISC-V的工具兼容性意味著你仍然符合標準。
許多解決方案從對處理器的單一描述開始。“擴展指令集后,將自動生成必要的參考ISS,RTL,軟件工具鏈和UVM驗證環(huán)境以及用于檢查RTL與ISS匹配的測試,” Urquhart說。“與手動或部分手動創(chuàng)建對ISS,RTL,編譯器和驗證環(huán)境的擴展的替代方法相比,這種高度自動化的方法具有更高的成本效益和更低的風險。”
有些解決方案可能比其他方案走得更遠。“我們也為指令擴展使用單一來源,并且該單一來源指導硬件設計和軟件設計,”Wall說。軟件工具鏈與硬件一起生成。一個關鍵的方面是使用這些擴展進行編程的便利性。如果你查看你的標準RISC指令集,編譯器會決定哪些指令需要被發(fā)出,以及這些指令使用的資源如何被調度。當進行擴展時,這并不容易,但編譯器可以做出決定,即使使用定制指令。”
其他解決方案確保工具鏈不會損壞。“我們采用的方法與許多其他體系結構不同,” Arm的Whitfield說。“我們的方法可以添加自定義數(shù)據(jù)路徑指令,而對硬件或軟件生態(tài)系統(tǒng)的影響最小。向任何CPU實現(xiàn)中添加自定義邏輯的影響之一是要求確保不僅新指令可以正常工作,而且還沒有破壞CPU的任何其他方面。驗證費用可能非常可觀。我們的方法減少了對驗證的影響,并使軟件工具和生態(tài)系統(tǒng)保持一致。”
這種方法對許多人來說都是明智的。Davidmann說:“在Arm解決方案中,它們并沒有賦予人們完全自由地添加任何舊指令的權利。” ”這是一個非常干凈的解決方案,因此你可以添加它并以受控方式擴展它。它使你可以自由地進行算法改進所需的某些擴展,但是這樣做的方式不會損壞Arm架構的其余部分。這意味著你不需要重新驗證所有內容。在RISC-V世界中,沒有任何保障措施。”
驗證成本可能導致收益減少。“雖然可以將軟件自定義的影響保持在更加本地化的位置,但是使用硬件則要困難得多,” OneSpin Solutions的設計驗證專家NicolaeTusinschi說。。“在流水線的RTL處理器中添加一條自定義指令,對于可能隱藏錯誤的功能異常情況而言,具有巨大的意義。這些公司需要的是嚴格的驗證流程,該流程可以在ISA(包括自定義說明)和其工具生成的RTL實現(xiàn)之間實施某種等效檢查。這類似于使用等效性檢查工具來驗證RTL模型與FPGA供應商綜合工具生成的FPGA網表。
結論處理器的可擴展性會對設計產生深遠的影響。這可以通過顯著提高性能和降低功耗來體現(xiàn)。它打開了過去從未考慮過的體系結構。
但是,走這條路的公司必須充分意識到將要遇到的障礙和隱性成本,尤其是在某些技術仍處于起步階段時。
EETOP 官方微信
創(chuàng)芯大講堂 在線教育
半導體創(chuàng)芯網 快訊
相關文章