軟硬件協同,是上世紀90年代提出的概念。在那個時候,系統已經變得相對復雜,需要更加準確嚴謹的軟硬件劃分,然后軟硬件再協同。
系統規模小的時候,軟硬件劃分很容易,可以比較隨意的劃分,即使有錯誤,后期修改也沒什么大不了。但隨著系統越來越大,如果不經過嚴謹的軟硬件劃分,到開發階段才發現問題,可能來不及糾正,會導致項目的失敗,帶來非常嚴重的后果。軟硬件協同,是系統變的復雜之后,軟硬件設計的必然選擇。
那么,既然已經軟硬件協同了,為什么還需要軟硬件融合?軟硬件融合又是什么?我們將在本文中進行探討。
01軟硬件劃分
軟件和硬件需要定義好交互的“接口”,通過接口實現軟硬件的“解耦”。例如,對CPU來說,軟硬件的接口是指令集架構ISA:ISA之下的CPU處理器是硬件,指令集之上的各種程序、數據集、文件等是軟件。
軟硬件劃分的意思是說:需要確定好軟件做什么,硬件做什么。確定軟硬件做什么的過程其實就是確定指令復雜度的過程。可以這樣說,指令的復雜度(單位指令的計算密度)決定了系統的軟硬件解耦程度。
按照指令的復雜度,典型的處理器平臺大致分為CPU、協處理器、GPU、FPGA、DSA、ASIC。如圖所示:最左邊,幾乎是100%軟件實現,CPU硬件只是一個跟業務沒有必然聯系的軟件執行平臺而已;最右邊,是幾乎100%的硬件,系統的業務邏輯,完全的固化成了電路實現,額外的軟件控制面,只是負責硬件的運行控制而已;中間的協處理器、GPU、FPGA和DSA,則是軟件做一部分,硬件做一部分。
02軟硬件協同概念的提出
軟硬件協同是1990年代提出的概念。大背景是隨著系統規模擴大,傳統的系統軟硬件設計的問題逐漸凸顯,需要軟硬件協同設計。傳統系統軟硬件設計存在的問題主要是:
硬件/軟件劃分,是在還未充分理解系統的情況下進行,很容易產生設計錯誤;
軟硬件劃分的設計錯誤,會對系統產生巨大的負面影響;
而受開發周期和糾正代價的影響,難以糾正在軟硬件劃分階段的錯誤。
傳統軟硬件一體的設計,適合于較小的系統;而軟硬件協同的設計,適合于大一些的系統。
軟硬件協同的價值主要體現在:
統一的設計方法論,可以持續指導大系統的設計;
可以充分利用已有的軟硬件資源,使得開發效率最大化;
縮短大系統產品上市的時間。
從長期來看,軟硬件協同,需要對目標系統的軟硬件設計持續迭代:
如果是做一次性的項目,只需要循環一次;
如果要做用戶滿意的產品,需要迭代循環數次,不斷的升級優化;
如果是一個軟硬件平臺,則需要循環數十次,不斷的優化軟硬件劃分,基于軟硬件的“接口”,實現功能更強大的軟件和硬件;
如果要構建基于平臺的生態,甚至需要循環上百次,時間更久(數年甚至數十年),代價更高(數以十億美金計的投入)。
03為什么要從軟硬件協同到軟硬件融合
量變會引起質變!
隨著系統的規模越來越大,系統的設計方法論也需要不斷地升級:
第一階段,小系統。軟硬件一體設計,軟硬件劃分的難度也不高,劃分也比較隨意。即使劃分錯誤,后期修正的代價也不高。
第二階段,大系統。隨著系統設計規模不斷擴大,傳統的軟硬件一體的方法,越來越不適應系統的設計,越來越成為系統設計的瓶頸;于是,出現了軟硬件協同。
第三階段,復雜宏系統是很多系統的混合交叉,需要實現很多功能的融合。復雜系統里的每一個子系統,其體量和傳統系統的規模相當。每個子系統設計都需要軟硬件協同,而且會是不同程度軟硬件劃分之后的再協同。子系統之間的協作(軟件和軟件的協作、軟件和硬件的協作、硬件和硬件的協作),也是軟硬件協同。通過不同子系統的軟硬件協同,形成了有機的復雜系統。如圖所示,我們把眾多子系統的眾多軟硬件協同的組合稱為軟硬件融合。
軟硬件協同,是單個系統的軟硬件設計方法學;而軟硬件融合,則是復雜宏系統的軟硬件設計方法學。
04軟硬件融合
復雜系統,由分層分塊的各個組件(即工作任務Workloads),有機組成的。這樣,我們就可以把系統的組件(即工作任務,或子系統)映射到一個或多個處理引擎:
按照指令復雜度,形成一維坐標系。CPU是100%軟件,ASIC是100%硬件,其他處理引擎介于兩者之間,是不同比例軟硬件混合態。
根據任務特點,映射到最合適的引擎。軟硬件的分工和協同,需要均衡;但更要不斷的向上向下拉扯,形成極致最優。需要注意的是:基于軟硬件引擎的分層跟系統分層是不同的概念。
映射是動態平衡的:任務最合適的處理引擎,并非一成不變,而是隨著系統發展有可能下沉(Offload)/上浮(Onload)。
需要強調的是:軟硬件融合不改變系統層次結構和組件間的交互關系,但打破傳統軟硬件的界限,系統的、動態的重構軟硬件劃分/協同,達到整體最優。
在小系統和大系統的背景下,分層很清晰:下層硬件上層軟件。軟硬件融合的分層分塊,每個任務都是不同程度軟硬件解耦基礎上的再協同。然后再整合成復雜宏系統。整個復雜宏系統呈現出:軟件中有硬件,硬件中有軟件,軟硬件融合成一體。
目前,在CPU性能瓶頸和對算力需求不斷上升的的大背景下,軟硬件融合主要是任務卸載。系統的任務,不斷的從CPU卸載到各個層次的硬件加速,其原因主要是:①復雜分層的系統、 ②CPU性能瓶頸、 ③超大規模以及④特定場景服務。
無規模,不卸載(Offload)。
哪些任務適合卸載?卸載的大原則可以分為微觀和宏觀兩個方面。微觀原則是:①性能敏感,占據較多CPU資源;宏觀原則是:②廣泛部署,運行于眾多服務器。
宏觀的看,分層的系統,越上層越靈活軟件成分越多,越下層越固定硬件成分越多。龐大的規模以及特定場景服務,使得云計算底層工作任務逐漸穩定并且逐步卸載到硬件(被動趨勢)。軟硬件融合架構,可以使“硬件”更加靈活,功能也更加強大,使得更多的層次功能向“硬件”加速卸載(主動搶占)。
05軟硬件融合面向的場景
Intel SVP Raja表示:要實現元宇宙級別的體驗,算力至少需要提升1000倍。從云計算到云網邊端融合的萬物融合,再到云宇宙的虛實融合,算力需要多個數量級的提高,單個設備的系統越來越復雜,數以億計設備組成的融合大系統,則更加復雜。
軟硬件融合,從宏觀和微觀的視角,嘗試解決復雜計算面臨的問題。系統越復雜,軟硬件融合的價值越凸顯。
軟硬件融合相關技術,從云計算抽象出來,指引包括云計算在內的各種復雜計算場景的芯片及系統設計。
06軟硬件融合的意義
軟硬件融合的根基:①分層分塊的系統和②宏觀的超大規模,這兩個原因使得③二八規律廣泛存在。
軟硬件融合承上啟下:從產品定義和系統架構開始,逐步拓展到整個系統棧;往下拓展微架構設計和實現,甚至考慮工藝、封裝和測試;往上,考慮接口驅動、操作系統、框架和開發庫,甚至需要考慮應用算法和業務邏輯。
軟硬件融合,落地實現必然是CPU + 協處理器 + GPU + FPGA + DSA + ASIC等多種處理引擎充分協同的超異構計算。其中,每個工作任務都是在軟硬件均衡/解耦基礎上的再協同。
軟硬件融合的核心目標是要兼顧軟件靈活性和硬件高性能,實現既要又要。
軟硬件融合,既是理論和理念,也是方法和解決方案。讓硬件更加靈活、彈性、可擴展,彌補硬件和軟件之間的鴻溝。
軟硬件融合應對云計算、邊緣計算及超級終端等復雜計算場景的挑戰。軟硬件融合也為解決芯片一次性成本過高導致的設計風險,提供了切實可行的思路和方案。
審核編輯 :李倩
-
cpu
+關注
關注
68文章
10829瀏覽量
211182 -
云計算
+關注
關注
39文章
7744瀏覽量
137211 -
軟硬件協同
+關注
關注
0文章
5瀏覽量
6319
原文標題:為什么要從“軟硬件協同”走向“軟硬件融合”?
文章出處:【微信號:算力基建,微信公眾號:算力基建】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論