1 SOC和HPU綜合介紹
什么是SOC?SoC稱為系統級芯片,也稱為片上系統。狹義上講,SOC是將系統關鍵部件集成在一塊芯片上;從廣義上講, SOC是一個系統,如果說中央處理器(CPU)是大腦,那么SOC就是包括大腦、心臟、眼睛和手的系統。
高通手機SOC處理器驍龍810芯片,可以看到此芯片主要包括:
- 通用CPU:ARM Cortex-A57和Cortex-A53,CPU主要用于運行Android等智能手機操作系統以及APP程序;
- 特定場景處理器:Adreno 430 GPU、Hexagon DSP、ISP、多媒體處理器等,GPU主要用于3D游戲等場景,DSP主要用于傳感器算法處理;
- 特定功能子系統:支持4G LTE的通信基帶處理、GPS/北斗等的定位模塊等;
- WiFi、USB、藍牙等連接模塊;
- 安全處理模塊;
- 其他一些外圍模塊。
超異構計算,是把CPU同構、GPU異構、各種DSA異構等多種異構計算整合起來的計算架構。超異構處理器,則是在芯片層次實現超異構計算架構(言下之意是:超異構也可以在板級的多芯片層次、多計算節點的集群層次,甚至數據中心等更高層次實現)。
目前,數據中心有三大芯片:CPU適合應用層的工作,GPU適合業務的彈性加速,DPU適合基礎設施層工作任務的加速處理。從功能視角看,HPU可以當做CPU、GPU和DPU三大功能芯片的融合體。
從馮諾依曼架構我們可以得知,計算機的五個組件是輸入設備、輸出設備、控制器、運算器和內存。在現代計算機里,通常劃歸為三個組件:處理器,包含控制器和運算器;內存,跟馮諾依曼架構一致;輸入輸出I/O設備,輸入輸出都是和外部的通信,把輸入輸出合并為一類設備。
不同的芯片類型,都是由上述這三類組件組成。其內存和I/O設備沒有本質的區別,核心的區別則在于處理器部分:
- CPU芯片,其內部處理器核都是CPU核。
- GPU芯片,其內部處理器核則是數億千計的高效能的小CPU核。也因此,GPU本質上是眾核并行計算平臺。
- 各類DSA芯片,內部主要是DSA加速處理器核。
- SOC包含CPU、GPU、ISP等各種偏ASIC級別的加速處理器核。
- HPU有CPU、GPU、各類DSA等加速處理器核。
從SOC的定義來說,超異構處理器也可以歸屬到SOC的范疇。但如果只是稱之為SOC,那無法體現超異構處理器和傳統SOC的本質區別。這樣,不利于我們深刻認識超異構處理器的創新價值和重要性所在,以及在支撐超異構處理器需要的創新技術和架構方面積極地投入更多的資源。
2 區別1:單系統 vs 分布式混合多系統
SOC,顧名思義,系統在芯片上。也即針對一個場景的系統,設計一款芯片。系統和芯片是完全匹配的一對一的關系。因為系統多種多樣,這也意味著SOC的類型會非常地多。
而HPU則定位基礎的通用處理器,針對的是宏觀的綜合的計算系統和任務,不針對任何具體的特定的系統和任務。也因此,HPU計算的特征表現在:
- HPU通常通過集群協作來完成任務;
- 單個HPU硬件上會運行多個不同的軟件系統和任務;
- 多個宏觀的分布式大系統,混合交叉地運行在多個HPU上。
3 區別2:弱虛擬化 vs 硬件原生虛擬化
虛擬化是HPU和SOC最核心的能力區別。
SOC因為面向單個系統,通常不需要支持虛擬化。有的SOC中的CPU核支持虛擬化,但虛擬化的性能損耗較高;并且僅只有CPU支持虛擬化。其他內存、加速器和I/O則不支持虛擬化。
而HPU則不僅僅需要CPU、內存的完全硬件虛擬化,其他I/O和加速卡也需要實現完全的硬件虛擬化。需要強調的是,I/O虛擬化不僅僅指的是如PCIE SR-IOV或S-IOV的I/O接口的虛擬化,更要實現I/O內部處理引擎的虛擬化。
以汽車芯片為例,汽車EE架構目前在經歷顛覆性的變化,即從傳統ECU、DCU的架構向CCU(Central Control Unit,中央控制器)的架構轉變。多域融合的自動駕駛CCU芯片,跟DCU最鮮明的區別就在于,是否支持虛擬化。在CCU里,每一個VM相當于傳統的一個DCU SOC系統。
4 區別3:軟硬件一體 vs 軟硬件分離
SOC中的軟件通常附著于硬件之上,兩者是匹配的關系。我們可以根據硬件的架構/接口,定制開發特定的軟件;也可以通過HAL層,適配標準的軟件和不同的硬件接口。
HPU的要求就要更高很多。HPU上的軟件和硬件沒有直接的關系。軟件可以運行在硬件A,也可以運行在硬件B,也可以運行在任何其他硬件之上。反過來,硬件也可以運行任意可能的軟件。軟件在不同硬件資源上的運行和遷移是完全動態的,并且從宏觀角度看,是非常頻繁的。
通常,可以通過虛擬化實現硬件接口的屏蔽,給軟件提供標準化的硬件,這樣可以方便實現軟件VM/容器的遷移。但隨著性能的要求越來越高,虛擬化逐漸卸載到了硬件。VM/容器需要通過直通的方式直面硬件接口。虛擬化完全卸載到硬件加速的情況下,需要硬件提供完全一致性的接口/架構。
5 區別4:控制驅動 vs 數據驅動
在以前,更多的計算量,更少的數據量,因此以CPU單位代表的數據流驅動計算的架構是主要的模式。如今,大數據計算時代,計算的特征變成“大數據量小計算量”(小計算量是相對的說法)的模式,因此,數據流驅動計算的架構變成算力的主力擔當。
SOC里,是以CPU為中心的架構。主要是依靠嵌入式CPU核中的軟件來驅動整個SOC的工作運轉。而在HPU里,則以數據為中心,主要依靠數據的流動來驅動計算的運轉。
需要強調的是,在一些觀點里,大家認為:以DPU為中心的計算架構,就“天然”是以數據為中心的計算。這個論斷不完全正確的。以DPU為中心的架構,依然是以CPU控制驅動整個板級系統運轉的系統架構,也即是以CPU控制為中心的架構。
要真正實現以數據驅動為中心的計算架構,需要在底層軟硬件上做非常大的調整。難度很高,工作量很大。
6 區別5:軟件的多異構協同 vs 硬件的多異構融合
SOC和HPU都是多異構組成的混合計算,區別在于,SOC僅僅是異構的集成,而HPU則需要實現異構的融合。
在SOC系統里,每個加速單元可以看作是CPU+加速單元組成一個異構子系統;不同的異構子系統之間在硬件上是沒有關聯的,需要通過軟件構建異構子系統之間的交互和協同。在CPU性能逐漸瓶頸的當下,這通常也意味著性能的約束。
而在HPU里,需要實現硬件層次的不同加速單元之間的直接的、高效的數據交互,不需要嵌入式CPU的參與。這樣,在硬件層次,就實現了CPU、GPU以及各種其他加速單元之間的對等的深度交互、協同和融合。
7 區別6:軟件可編程 vs 多層次可編程
SOC里,其他加速器通常是ASIC層次的,只能施加一些簡單的控制,整個數據面的業務邏輯功能是完全確定的,無法軟件編程。在SOC里,能支持軟件編程的通常只有嵌入式CPU。
而在HPU里,可編程能力要更加豐富一些:
- DSA可編程:在每個計算節點都存在,性能敏感,并且功能邏輯不經常變化的工作任務,可以劃歸到基礎設施層。適合DSA加速處理。
- GPU可編程:這里的GPU特指支持并行計算編程,甚至AI編程,的GPGPU;不是只有圖形加速功能的經典GPU。
- CPU可編程:跟SOC中的CPU一樣,支持CPU的完全軟件可編程。
8 區別7:資源確定 vs 資源彈性可擴展
CPU是支持資源(動態的)可擴展能力的:通過時間片把單個CPU核劃分成千份萬份;再通過同構并行把幾十個CPU核連成一個大的CPU計算資源組;還可以通過UPI甚至一致性網絡的方式實現多個CPU芯片的資源擴展。
在SOC內部,除了CPU可以支持可擴展外,其他模塊基本上都是性能確定的設計,無法支持資源的擴展能力。
在HPU里,每個計算資源,甚至I/O資源,都需要像CPU一樣,支持多個層次的資源可擴展能力。甚至可以實現數以萬計芯片集群的“幾乎無限”的資源擴展能力。
9 區別8:定制Chiplet vs 原生支持Chiplet
當我們做SOC設計的時候,如果需要通過Chiplet優化設計,通常需要針對性地設計若干個小芯粒。這些芯粒的功能不一樣,然后再把芯粒通過Chiplet連接并封裝成系統芯片。這種方式存在一些問題:
- 優化的價值有限。一個是部分芯粒可以使用非先進工藝,降低成本;另一個是降低單DIE面積,優化良品率。這樣提升的價值僅僅是百分比的提升。
- 復用性低。不同型號的芯粒DIE,非標準器件,本質上增加了芯片集成的難度。
HPU采用資源彈性擴展的設計,可以實現:單DIE HPU芯片,以及不同數量DIE通過Chiplet封裝的不同規格的HPU芯片。
10 區別9:設計規模小 vs 設計規模數量級提升
目前,隨著系統規模越來越大,單芯片設計規模也越來越大,但是傳統SOC架構所能支撐的系統規模逐漸逼近上限。規模上限的意思指的是:雖然工藝和封裝支持更大規模的芯片設計,但在傳統架構下,突破了規模上限以后,整個系統的復雜度會急劇上升,很難駕馭;并且,各種資源和性能的利用率會急劇下降,浪費嚴重,投入產出比不高,不夠經濟。
隨著工藝持續優化,以及Chiplet封裝的進步,單芯片的設計規模數量級提升。亟需一種創新的架構來快速提升“可駕馭條件下”的系統規模。
SOC支持單系統,HPU支持多系統。并且,HPU采用可擴展的分布式系統架構設計,每個子系統相當于一個SOC系統。HPU可駕馭的系統規??梢宰龅絊OC的10倍甚至100倍。
11 區別10:專用 vs 通用
SOC是針對特定的場景,定制開發的芯片。
HPU面向的是通用的、綜合的復雜計算場景,定位在以不變應萬變。目前,通用的計算架構主要有三個:
- CPU。CPU又稱GP-CPU,是通用的中央處理單元。CPU可以用在幾乎所有場景。
- CPU+GPU。CPU性能不夠,GPU是眾核并行加速平臺,性能相比CPU數量級提升。因此可以把一些性能敏感的并且適合GPU并行計算的任務由GPU來完成,其他任務繼續放在CPU。
- HPU(CPU+GPU+DSA的融合)。DSA性能效率比GPU要高,同等晶體管資源下,DSA相比GPU可以做到性能數量級提升。但DSA僅適合相對確定性的任務。依據二八定律,80%計算通過DSA完成。然后再使用GPU進行剩余性能敏感并且適合并行計算的任務加速。剩余不適合加速的部分任務,繼續放在CPU處理。
**12 總結 **
把上面十個方面的區別總結如下面表格所示。
當然,這些是目前我們想到的并且重要的方面。還有很多其他方面的區別,無法一一列舉。功能上,HPU和SOC都是把很多功能集成在一起,有很多的相似性。但本質上,兩者是完全不同的兩個產品定位和發展方向。
隨著對算力的需求持續不斷的提升,隨著算力網絡的不斷延伸。未來,幾乎所有的處理器都會成為類超異構架構的計算芯片,超異構處理器會成為支撐宏觀算力的核心底座。
-
傳感器
+關注
關注
2552文章
51237瀏覽量
754784 -
處理器
+關注
關注
68文章
19349瀏覽量
230294 -
SoC芯片
+關注
關注
1文章
615瀏覽量
34954 -
DSA
+關注
關注
0文章
49瀏覽量
15192 -
自動駕駛
+關注
關注
784文章
13877瀏覽量
166618
發布評論請先 登錄
相關推薦
評論