“These are eight great ideas that computer architects have invented in the last 60 years of computer design. They are so powerful they have lasted long after the first computer that used them, with newer architects demonstrating their admiration by imitating their predecessors.” --大衛 A.帕特森博士
大衛 A.帕特森博士 ,自 1977 年加入該學院以來, David A. Patterson博士一直在加州大學伯克利分校教授計算機體系結構,并擔任 Pardee 計算機科學主席。他的教學曾獲得加州大學杰出教學獎、ACM 卡爾斯特倫獎、IEEE穆里根教育獎章和本科教學獎,世界上最大的技術進步專業協會。Patterson 博士因對 RISC 的貢獻而獲得 IEEE 技術成就獎和 ACM Eckert-Mauchly 獎,并因對 RAID 的貢獻而分享了 IEEE 約翰遜信息存儲獎。他還與合著者 John Hennessy 博士分享了 IEEE 約翰·馮·諾依曼獎章和 C&C 獎。
1、面向摩爾定律設計
計算機設計師的一個常數是快速變化,這在很大程度上是由摩爾定律驅動的。它指出,集成電路資源每 18-24 個月翻一番。摩爾定律源于 1965 年英特爾創始人之一戈登·摩爾 (Gordon Moore) 對 IC 容量增長的預測。由于計算機設計可能需要數年時間,因此在項目開始和結束之間,每個芯片的可用資源很容易翻倍或四倍。就像飛碟射手一樣,計算機架構師必須預測設計完成時技術的位置,而不是設計開始的位置。我們使用“向上和向右”摩爾定律圖來表示快速變化的設計。
半導體行業大致按照摩爾定律發展了半個多世紀,對二十世紀后半葉的世界經濟增長做出了貢獻,并驅動了一系列科技創新、社會改革、生產效率的提高和經濟增長。個人電腦、因特網、智能手機等技術改善和創新都離不開摩爾定律的延續。如今單個處理器已經很難適應摩爾定律了(主要包括隨著更多晶體管被裝入芯片當中,相應會出現電子能量外泄和熱量散發的現象),但云計算興起,算力網絡起飛,在某種程度延續了摩爾定律。
基于 Spring Boot + MyBatis Plus + Vue & Element 實現的后臺管理系統 + 用戶小程序,支持 RBAC 動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能
項目地址:https://gitee.com/zhijiantianya/ruoyi-vue-pro
視頻教程:https://doc.iocoder.cn/video/
2、使用抽象簡化設計
計算機架構師和程序員都必須發明技術來提高自己的生產力,否則設計時間會隨著摩爾定律的資源增長而顯著延長。硬件和軟件的主要生產力技術是使用抽象來表示不同表示級別的設計。隱藏較低級別的細節以在較高級別提供更簡單的模型。我們將使用抽象繪畫圖標來代表第二個偉大的想法。
抽象思維一直推動著計算機技術不斷向前發展,科學技術本身就是現實世界的抽象和演繹:電路信號->01二進制->指令匯編->高級編程->模塊設計->框架設計->單機系統->分布式系統-->云計算,計算機領域有句名言:“計算機科學領域的任何問題都可以通過增加一個間接的中間層來解決”。
基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實現的后臺管理系統 + 用戶小程序,支持 RBAC 動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能
項目地址:https://gitee.com/zhijiantianya/yudao-cloud
視頻教程:https://doc.iocoder.cn/video/
3、快速做普通案例
使常見情況變得更快往往會比優化罕見情況更有效地提高性能。具有諷刺意味的是,常見情況通常比罕見情況更簡單,因此通常更容易增強。這種常識性建議意味著您知道常見情況是什么,這只有通過仔細的實驗和測量才能實現。我們使用跑車作為快速制作普通案例的圖標,因為最常見的旅行只有一兩個乘客,而且制作快速轎車肯定比快速小型貨車更容易。
計算機大多數時間都是運作在常見情況下,符合2/8定律,所以首先我們針對常見情況進行優化改進,加速大概率事件,效果更快。
4、通過并行提高性能
自從計算出現以來,計算機架構師就提供了通過并行執行操作來獲得更高性能的設計。我們將在本書中看到許多并行性的例子。我們使用飛機的多個噴氣發動機作為并行性能的標志。
并行設計思想一直是提升性能的核心思想,多進程,多線程,多核-SMP,SIMD,NUMA,MIPS,向量機,GPU等等。
5、通過流水線提高性能
一種特殊的并行模式在計算機體系結構中如此普遍,以至于它有自己的名字:流水線。例如,在消防車出現之前,“水桶大隊”會對火災做出反應,許多牛仔電影都會以這種方式來應對惡棍的卑鄙行為。城鎮居民形成一條人鏈來攜帶水源生火,因為他們可以更快地將水桶向上移動,而不是個人來回奔跑。我們的管道圖標是一系列管道,每個部分代表管道的一個階段。
不管硬件設計還是軟件設計,流水線設計(pipeline)都是計算機領域最重要設計思想之一,這種思想是一種用面積換速度的思想,用更多的資源來實現高速。
6、通過預測提高性能
遵循“請求寬恕比請求許可更好”的說法,下一個好主意是預測。在某些情況下,假設從錯誤預測中恢復的機制不是太昂貴并且您的預測相對準確,那么平均而言,猜測并開始工作可能比等到您確定知道時更快。我們使用算命先生的水晶球作為我們的預測圖標。
現在流行大數據+AI算法預測和CPU的分支預測技術在思想上是不是有異曲同工之妙。
7、存儲的層次設計
程序員希望內存快速、大且便宜,因為內存速度通常會影響性能,容量限制了可以解決的問題的大小,而今天的內存成本通常是計算機成本的大部分。架構師發現他們可以通過內存層次結構來解決這些相互沖突的需求,在層次結構的頂部,每比特最快、最小和最昂貴的內存,而在底部每比特最慢、最大和最便宜的內存。高速緩存給程序員一種錯覺,即主存儲器幾乎與層次結構的頂部一樣快,并且幾乎與層次結構的底部一樣大且便宜。我們使用分層的三角形圖標來表示內存層次結構。形狀表示速度、成本和大小:越靠近頂部,內存越快,每比特成本越高;層的底部越寬。
cache層次思想是計算機軟硬件非常偉大思想,一直延伸到現在redis緩存MySQL,本地緩存遠端網絡等等。
8、通過冗余提高可靠性
計算機不僅需要速度快;他們需要可靠。由于任何物理設備都可能發生故障,因此我們通過包含冗余組件來使系統可靠,這些組件可以在發生故障時接管并幫助檢測故障。我們使用拖拉機拖車作為我們的標志,因為其后軸兩側的雙輪胎允許卡車在一個輪胎失效的情況下繼續行駛。(據推測,卡車司機會立即前往維修設施,以便修復漏氣的輪胎,從而恢復冗余!)
提高可靠性最笨的辦法,也是最有效的方法就是冗余設計,大到飛機的雙引擎設計,小到數據庫冗余備份模型,服務器熱備,冷備,異地多活等等。
編輯:黃飛
-
摩爾定律
+關注
關注
4文章
634瀏覽量
78998 -
半導體行業
+關注
關注
9文章
403瀏覽量
40517 -
計算機架構
+關注
關注
1文章
8瀏覽量
6160 -
AI算法
+關注
關注
0文章
249瀏覽量
12259
原文標題:計算機架構設計的 8 個偉大思想
文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論