《計算機體系結構 量化研究方法》讀書筆記

2021-10-09 23:41:03 字數 3770 閱讀 1263

1.計算機體系結構與計算機組成原理有什麼區別?

計算機的實現包括兩個方面:組成和硬體。組成一詞包含了計算機設計的高階內容,例如儲存器系統,儲存器互連,設計內部處理器 cpu (**處理器——算術、邏輯、分支和資料傳送功能都在內部實現)。有時也用微體系結構一詞來代替「組成」。例如amd operon和intel core i7是兩個指令集體系結構相同但組成不同的處理器。這兩種處理器都實現x86指令集,但它們的流水線和快取組成有很大的不同。硬體指的是乙個計算機的具體實現,包括計算機的詳盡邏輯設計和封裝技術。

真正的體系結構涵蓋了計算機設計的所有三個方面:指令集體系結構、組成或微體系結構、硬體。計算機架構師設計的計算機必須滿足功能需求,並達到**、功耗、效能和可用性指標。

2.現如今的晶元設計趨勢或者現狀是怎樣的?

功率是現如今使用電晶體的主要限制,通過降低電壓可以大幅度降低動態功率和能耗,二十年來,電壓已經從最初的5v降低到1v以下,然而如果不能降低電壓或提高每個晶元的功率,那可能就要減緩時鐘頻率的增長速度,這也是從2023年以來的主要趨勢。

3.怎樣設計出低成本的積體電路?

雖然積體電路的成本以指數形式下降,但基本的矽製造工藝沒有變化:仍需要對晶圓進行測試,切割成晶元進行封裝。對於計算機設計人員來講,由於製造工藝決定了晶圓的成本、晶圓成品率和單位面積上的缺陷數,設計人員唯一可控的就是晶元面積。

4.如何對計算機的效能進行評估?

使用量化的研究方法,從計算機的響應時間、執行時間、吞吐量來進行綜合評估。

主要通過基準測試來對計算機進行效能的測試與度量,包括:桌面基準測試、伺服器基準測試。要注意spec基準測試集,是乙個使用相當廣泛的測試集。

5.如何理解程式區域性性?

區域性性原理指的是程式常常重複使用它們最近使用過的資料和指令。有一條廣泛使用的經驗規律:乙個程式90%的執行時間花費在僅10%的**中。充分利用時間區域性性和空間區域性性可以優化程式的執行時間。

處理器中指令的提取與解碼器的使用可能比乘法器要繁瑣的多,所以應該優先對其進行優化。

6.設計多核晶元的意義何在?

2023年以來,之所以轉向一芯多核,並不是因為取得了什麼重大突破,顯著簡化了並行程式設計方式。而是因為ilp(指令級並行)壁壘和功率壁壘的存在存在而別無選擇。在乙個晶元中設計多個處理器並不能保證功率較低。而的確有可能設計一種消耗更高功率的多核晶元。其潛力僅僅在於能夠用幾個低時鐘頻率的高效核心代替高時鐘頻率的低效核心,從而有可能提高整體效率。因此多核處理器並不是萬能的。

first microprocessor intel 4004, 1971

7.amdahl 定理有何作用?

利用amdahl 定理可以計算出通過改進計算機某一部分而能獲得的效能增益。

指令集架構(instruction set architecture, isa)-組合語言程式設計師或編譯器編寫者可見

isa包括:

isa 是硬體與軟體之間的連線點。任何在記憶體裡執行的程式都將通過 isa 進行解耦從而能在底層架構上執行。

計算機體系結構和抽象層如下:

算術運算指令的執行主要分為以下幾種:

動機:

時間區域性性(temporal locality)

被引用過一次的儲存器位置在未來會被多次引用(通常在迴圈中)。

空間區域性性(spatial locality)

如果乙個儲存器的位置被引用,那麼將來他附近的位置也會被引用。

正是由於區域性性原理的存在和「在給定實現技術和功率預算的情況下,硬體越小,速度可以越快」的準則,儲存器體系結構便運營而生。

有學生可能會問,為什麼需要多層次的儲存結構,使用乙個理論上無限大的儲存器去完成一些工作不就可以了麼?這樣表面上是可以的,但是我們沒有辦法立刻馬上從這樣乙個十分龐大的儲存器中得到我們想要的機器字。我們不得不去構建分層的結構儲存器,每一層的容量都要大於前一層,但訪問速度也要慢一些。

當前的一大趨勢:儲存器效能和處理器效能之間的差距越來越大。

1.使用小而簡單的第一級快取,用來縮短命中時間、降低功率。

大容量l1快取會給時鐘頻率帶來影響,所以近來l1快取大小的漲幅很小。近些年來,l1快取中使用了較高的相聯度,容易知道,直接對映的命中時間略快於兩路組相聯,而近些年來處理器在訪問快取時至少需要兩個時鐘週期,因此命中時間較長不會帶來太大影響。

2.採用路**以縮短命中時間。

路**指的是在快取中另外儲存了一些位,用於**下一次快取訪問組中的路和塊。實驗表明,對i-快取的準確度要優於對d-快取的準確度(這也符合常理)。

3.實現快取訪問的流水化、以提高快取頻寬

這個方法沒有看懂

4.採用無阻塞快取,以提高頻寬

允許「缺失時仍然命中」甚至「多次缺失仍然命中」。

5.採用多組快取以提高快取頻寬

6.關鍵字優先和提前重啟動以降低缺失代價

7.合併寫緩衝區以降低缺失代價

將缺失資料位址與寫緩衝區中的有效專案進行對比,如果匹配,則將新資料與這個專案合併在一起,稱為寫合併。

8.採用編譯器優化來降低缺失率

這種方法應用的較為廣泛,尤其是在迴圈優化之中。

著重講一下迴圈分塊

分塊技術的目的是在快取中載入的資料被替換之前,在最大限度上利用它。

for

(int i =

0; i < n;

++i)

for(

int j =

0; j < n;

++j)

迴圈分塊技術可以簡單的看作是將兩層迴圈變為四重迴圈,表面上增加了時間複雜度,實則是提高了快取的命中率,分塊後的**如下:

for

(int jj =

0; i < n; jj = jj + b)

for(

int kk =

0; j < n; kk = kk + b)

for(

int i =

0; i < n; i = i +1)

for(

int j =

0; j <

min(jj + b, n)

; j = j +1)

b 被稱作分塊因子,這樣的迴圈優化技術在深度學習硬體加速器中的應用十分廣泛,很多新型的架構都是基於這樣的技術設計的。

如何最直觀的理解分塊原理?

可以從原始**中看出來,對陣列 z 的訪問步長較大,對陣列 x 的訪問並不那麼頻繁且按列訪問,在內部的兩層迴圈中可以達到 nn 次,如果快取大小較大,能夠裝下所有的x、y、z三個 nn 陣列,那麼並不存在什麼問題,但是如果快取較小,顯然缺失率會較大。

解決方法就是對陣列的訪問步長進行限制,改為計算乙個大小為 b*b 的子矩陣。

計算機體系結構量化研究方法 學習 一

計算機體系結構定義 真正的計算機體系結構 未來趨勢 功率和能耗 成本趨勢 可信任度 效能的測量 報告和彙總 計算機設計的量化原理 20世紀80年代成功地開發了新的體系結構risc體系結構。帶有多 使用者介面的無線裝置,比如手機 平板電腦等。成本主要因素是功耗和電池。多 應用程式的關鍵特性是響應效能和...

計算機體系結構

計算機體系結構 計算機體系機構指計算機中部件和部件之間的聯絡 一 馮 諾依曼體系 1 計算機處理的資料和指令用二進位制數表示 2 採用儲存程式方式,指令和資料儲存在同乙個儲存器中。3 指令由操作碼和位址組成。操作碼指明指令的操作型別,位址指明運算元和位址。4 以運算器為中心,i o裝置與儲存器間的資...

計算機體系結構

2.計算機體系結構 經典計算機體系結構概念的實質是計算機系統中軟硬體介面的確定,其介面之上的是軟體的功能,介面之下的是硬體和韌體的功能。廣義 現代 的計算機體系結的構概念,它除了包括經典的計算機體系結構的概念範疇 指令集結構 還包括計算機組成和計算機實現的內容。計算機體系結構是程式設計師所看到的計算...