官术网_书友最值得收藏!

1.3 下一代計算機體系結構

回顧計算機技術的發展歷程,可以發現計算機體系結構和計算機硬件依賴的半導體技術是推動計算機技術快速發展的動力。

20世紀60年代,最大的磁存儲系統只能存儲1 MB的信息,該存儲系統不僅像機房那樣龐大,而且訪問速度慢、功耗高。1966年秋天的一個晚上,34歲的IBM電氣工程師鮑勃·登納德靈光乍現,他想用一個晶體管來存儲1 bit的數據。如果這個想法成為現實,只需要使用極少的電量反復刷新晶體管就能夠留住電荷,從而維持數據的存儲。現在,我們知道登納德發明了計算機存儲系統中的DRAM(Dynamic Random Access Memory,動態隨機存儲器)。1974年,登納德提出了著名的登納德縮放(Dennard Scaling)定律,該定律指出,隨著晶體管密度的增加,每個晶體管的功耗會下降,因此他預言每平方毫米硅的功耗幾乎是恒定的。在很長的時間里,某代半導體產品的工作頻率會比上一代產品提高40%,而同樣空間可容納的晶體管數量會比上一代產品增加一倍。計算機體系結構使用各種創新技術來利用快速增長的晶體管資源,提高了CPU的性能,減小了內存訪問速度和CPU處理速度之間的差異給系統帶來的性能損失。在過去幾十年里,摩爾定律一直發揮著作用,在不增加成本的情況下,計算機性能呈指數增長。正如登納德所言,“縮放終究會結束,但是,創造力永無止境”。登納德縮放定律從2007年開始逐漸失效,工藝提升不再能保證功耗不增加,2012年該定律基本被終結。計算機體系結構的對比如表1-2所示。

表1-2 計算機體系結構的對比

體系結構作為計算機系統的基礎架構,正在經歷從獨立計算到分布式部署的上下文計算的轉變。這種轉變要求通信和計算并重,性能、隱私與安全、可用性和能耗并重。并行性、專用化及跨層次設計成為“能量優先時代”的關鍵原則。

長期以來,用戶程序開發人員不需要關注底層技術就能輕易獲得計算機體系結構革新等給應用軟件開發帶來的各種好處。一方面,計算機提供更高的性能,使實現那些有更多計算需求的用戶程序(如AI、AR、VR等)變得可能;另一方面,通過支持更高層的編程抽象(如腳本語言、編程框架),使那些對性能要求不高的用戶程序更容易開發。隨著下一代體系結構的重心更接近物理層,可能必須要求一部分用戶程序具備感知底層硬件的能力,這對下一代計算機體系結構提出了如下新的要求。

新的系統資源管理方式:以前的操作系統更強調系統資源對用戶程序的透明性,對部分性能要求不高的用戶程序而言,這種處理方式是合理的;但對另一部分性能要求較高的用戶程序而言,可感知系統資源的具體差異更有助于用戶程序以更好的方式使用硬件資源。

新的用戶程序開發方法和編程模型:當前的用戶程序開發以CPU為核心,編程模型以同步編程模型為主。隨著多核、異構多核設備的普及,需要提供讓用戶程序在多形態設備上可以并行運行的方案,譬如感知底層領域體系結構的新的特定編程模型。

異構計算、異構存儲:因為散熱和能耗的原因,通過提升CPU時鐘頻率和內核數量來大幅提高計算能力的傳統方式遇到瓶頸。針對不同的計算類型,CPU、GPU、NPU(Neural network Processing Unit,神經網絡處理器)、TPU(Tensor Processing Unit,張量處理器)、IPU(Image Processing Unit,圖像處理器)、DSP(Digital Signal Processor,數字信號處理器)、ASIC(Application Specific Integrated Circuit,專用集成電路)、FPGA(Field Programmable Gate Array,現場可編程門陣列)等用于特定領域的加速器不斷涌現。這些異構計算單元要求操作系統能夠基于算力、性能、功耗、并發等多種因素提供綜合調度能力。因NVRAM(Non-Volatile Random Access Memory,非易失性隨機訪問存儲器)、SCM (Storage Class Memory,存儲級內存)、PIM等新存儲架構的出現,傳統分層存儲體系的部分存儲層級關系變得模糊,這要求操作系統能夠更好地支持新型異構存儲,提升存取性能。

支持多種指令集:不同的計算單元可能使用不同的指令集,這需要操作系統運行時能夠針對不同計算節點編譯出不同指令集的二進制代碼。

并行計算對操作系統的要求是既要考慮用戶程序的具體特征,又不能過分“迎合”用戶程序的需求。下一代計算機體系結構在并行計算方面的核心問題如下。

并行類型:并行計算中,有兩種并行類型,即任務并行(Task Parallelism)和數據并行(Data Parallelism)。任務并行就是對多個待解決的問題進行任務分割,不同的任務分布在不同的處理單元上執行。數據并行就是對任務依賴的數據進行分割,將分割好的數據放在一個或多個處理單元上執行,每一個處理單元對這些數據都進行類似的操作。

處理單元的組織結構:處理單元的組織結構包括單設備上獨立的核、多核、協處理器和加速器,以及多設備之間獨立的核、多核、協處理器和加速器。

同步和通信:通過底層通信機制解決數據在多個核之間或設備之間的同步問題。特別是設備之間的數據同步,由于通信帶寬的限制,需要做到按需同步,僅同步業務必需的數據。

總體而言,我們需要打破現有的計算機軟硬件抽象層次,提出一套新的機制和策略來實現局部性和并發性;提供可編程、高性能和高能效的軟硬件協同平臺;能夠高效地支持同步、通信和調度;開發真正易于使用的并行編程的模型、框架和系統。

隨著萬物互聯時代計算機體系結構的不斷演進,操作系統必然要能夠同步演進。同時,操作系統需要高效地使能體系結構的新變化,充分發揮軟件和硬件的協同作用。

主站蜘蛛池模板: 龙门县| 鄱阳县| 冷水江市| 潜江市| 海宁市| 綦江县| 佛教| 肥乡县| 乳山市| 台东市| 武邑县| 乌什县| 克东县| 苍梧县| 交城县| 铜鼓县| 内江市| 鲁甸县| 屯留县| 蓝山县| 昭苏县| 蕉岭县| 黄石市| 新兴县| 景泰县| 禹州市| 普兰店市| 南城县| 眉山市| 朝阳县| 甘谷县| 饶阳县| 库伦旗| 宁城县| 大宁县| 绍兴县| 呼玛县| 德清县| 齐齐哈尔市| 射洪县| 乐都县|