1. 程式人生 > >計算機系統結構中的8個偉大思想

計算機系統結構中的8個偉大思想

摘抄自《計算機組成與設計—硬體/軟體介面》

1. 面向摩爾定律的設計

計算機設計者面臨的一個永恆問題就是摩爾定律驅動的快速變化。摩爾定律指出單晶片上的整合度沒18-24個月翻一番。摩爾定律是Intel公司的創始人之一Gordon Moore在1965年對積體電路整合度做出的預測。由於計算機設計需要幾年時間,因此在專案結束時,單晶片的整合度相對於設計開始時很容易翻一番甚至翻兩番。像一個雙向飛碟運動員一樣,計算機設計者必須預測其設計完成時的工藝水平,而不是設計開始時的。

2. 使用抽象簡化設計

計算機架構師和程式設計師必須發明能夠提高產量的技術。否則設計時間也會向資源規模一樣按照摩爾定律增長。提高硬體和軟體生產率的主要技術之一是使用抽象

(abstraction)來表示不同的設計層次,在高層次中看不到低層次的細節,只能看到一個簡化的模型。

例如計算機網路層次劃分模型,軟體開發SDK,API等無不體現出抽象的思想。

3. 加速大概率事件

加速大概率事件(Common case fast)遠比優化小概率時間更能提高效能。大概率事件通常比小概率事件簡單,從而易於提高。大概率事件規則意味著設計者需要知道什麼事件是經常發生的,這隻有通過仔細的實驗與評估才能得出。可以把加速大概率事件想象成一輛賽車,由於通常情況下只有一兩名乘客,因此提高賽車的速度要比提高小型貨車的速度容易。

4. 通過並行提高效能

從計算機誕生開始,計算機設計者就通過並行執行操作來提高效能。

5. 通過流水線提高效能

在計算機系統結構中,一個特別的並行性場景就是流水線(pipelining)。例如許多西部片中,一些壞人在製造火災,在消防車出現之前會有一個“消防佇列”來滅火——小鎮的居民們排成一排通過水桶接力快速將水桶從水源傳至火場,而不是每個人都在來回奔跑。可以把流水線想象成一系列水管,其中每一塊代表一個流水級。

6. 通過預測提高效能

遵循諺語“求人准許不如求人原諒”,最後一個偉大的思想就是預測(prediction)。在某些情況下,如果假定從誤預測恢復執行代價不高並且預測的準確率相對較高,則通過猜測的方式提前開始某些操作,要比等到確切知道這些操作應該啟動時才開始要快一些。

7. 儲存器層次

由於儲存器的速度通常影響效能,儲存器的容量限制瞭解題的規模,當今計算系統中儲存器的代價佔了主要部分,因此程式設計師希望儲存器速度更快,容量更大,價格更便宜。設計師們發現可以通過儲存器層次(hierarchy of memory)來解決這些相互矛盾的需求。在儲存器層次中,速度最快,容量最小並且每位價格最昂貴的儲存器位於頂層,而速度最慢,容量最大且每位價格最便宜的儲存器位於最底層。程式設計師看到的主存同時具有儲存器層次中頂層的高速度和底層的大容量和便宜的特徵。可以把儲存器層次想象成一個堆疊的三角形,該形狀表示速度/價格/和容量:越靠近頂端,儲存器速度越快/每位價格越高:底層寬度越大,儲存器容量越大。

8. 通過冗餘提高可靠性

計算機不僅需要速度快,還要工作可靠。由於任何一個物理器件都有可能失效,因此可以通過使用冗餘部件的方式提高系統的可靠性(dependable),冗餘部件可以替換失效部件並可以幫助檢測錯誤。可以通過牽引式掛車來理解可靠性:牽引式掛車後軸兩邊具有雙輪胎,在一個輪胎出問題時卡車仍然可以繼續工作。(在一個輪胎出問題時,卡車司機立即直接開往修理廠進行修理,從而恢復冗餘性。)