- 軟硬件融合:超大規模云計算架構創新之路
- 黃朝波
- 1078字
- 2021-05-19 17:57:11
推薦序2
軟件還是硬件,這是一個問題。軟件的靈活性和硬件的高性能都是我們希望得到的,但是,考慮到實現代價,我們必須在軟件實現和硬件實現之間進行折中選擇。
傳統上,軟件和硬件有一個相對明晰的區分:但凡通用處理器能夠高效處理的功能,都用軟件實現(并在通用處理器硬件上執行);但凡通用處理器不能高效處理的功能,都用專用硬件實現,如各種基于ASIC或FPGA的硬件加速器。
但是,隨著需求的多樣化和系統的復雜化,尤其是云計算環境的出現,我們需要將不同功能的軟件和不同種類的硬件集成起來,使它們協同工作。在這種情況下,采用軟件還是硬件,同時采用哪種軟件或硬件來進行實現,就變得異常復雜。而分層抽象則是一種解決復雜問題行之有效的方法。
黃朝波老師長期從事云計算架構相關工作,并且頗有心得,他從實際云計算工作需求出發,嘗試采用軟硬件多級分層抽象和接口標準化的方法來解決軟硬件協同工作的問題,這個問題體現在如下兩個方面。
(1)多級分層模型。隨著系統變得越來越復雜,我們已經不能簡單地采用軟件和硬件兩個層次來對復雜系統進行分層,而應該對傳統的軟件層和硬件層進行進一步分層。目前,軟件多級分層的思想已經被廣泛接受,而硬件多級分層的驅動力來自日益多樣性的硬件(如不同類型的處理器和面向不同目的的加速器)。為了能夠從全系統的角度更好地進行硬件資源的分配與調度,我們應該進一步對不同的硬件進行分層抽象。
(2)接口標準化。軟件接口標準化可以帶來互操作性方面的好處,而某類硬件接口的標準化(如硬件總線協議)也可以帶來互操作性方面的極大便利。如何基于多樣性硬件的分層抽象來定義層間的標準化接口以支持高效的互操作性,是一個值得深入并持續探討的問題。硬件接口標準化目前已經有了一些趨勢,如RISC-V。RISC-V嘗試定義一套標準化的ISA,以使不同硬件廠商的處理器硬件和不同軟件廠商的操作系統、編譯器及應用軟件都能實現互操作,從而擺脫二進制翻譯和虛擬機等復雜且不高效的互操作機制。
隨著技術的進步,傳統意義上的硬件加速器可能會逐漸成為標準化的功能,從而進入通用處理領域(被通用處理器吸收,如向量和多媒體功能),采用軟件實現。同時,隨著需求的變化,傳統意義上可以由軟件實現的功能也會有更高的性能要求,從而需要用專用硬件實現。軟硬件的多級分層抽象和接口標準化的另一個好處在于,我們可以在不影響其他層次的前提下,根據技術的進步或需求的變化,自由地替換某一層次的具體實現方式。
本書系統地探討了以上問題,并將相關思想實際應用于包含復雜軟硬件的云計算系統,提出了多級分層抽象的軟硬件融合系統模型,對云計算的架構設計有著實際的指導意義。
——NVIDIA Principal Architect蔣江