計算機系統結構名詞解析-課後筆記
阿新 • • 發佈:2022-01-04
第一章
名稱解析:
程式的區域性性原理:
程式執行時所訪問的儲存器地址不是隨機分佈的,而是相對地簇
聚。包括時間區域性性和空間區域性性。軟體相容:
一個軟體可以不經修改或者只需少量修改就可以由一臺計算機移植到另一
臺計算機上執行。差別只是執行時間的不同。時間重疊
:在並行性概念中引入時間因素,讓多個處理過程在時間上相互錯開,輪流
重疊地使用同一套硬體裝置的各個部分,以加快硬體週轉而贏得速度。資源重複
:在並行性概念中引入空間因素,以數量取勝。通過重複設定硬體資源,大
幅度地提高計算機系統的效能。
實現軟體可移植的方法:
採用系列機方法
,只能在具有相同系統結構的各種機器之間實現軟體移植,
般是 一個廠家生產的機器。採用模擬與模擬的方法
,可在不同系統結構的機器之間相互移植軟體,對於使
用頻 率較高的指令,儘可能用模擬方法以提高運算速度,而對於使用頻率低且難於用
模擬實現的指令則用模擬方法來實現。採用統一的高階語言方法
,可以解決結構相同或完全不同的各種機器上的軟體
移植, 但是,要統一高階語言,語言的標準化很重要,但難以在短期內解決。
第二章
2.1解釋下列術語
堆疊型機器
:CPU中儲存運算元的單元是堆疊的機器。累加器型機器:
CPU中儲存運算元的單元是累加器的機器通用暫存器型機器:
CPU中儲存運算元的單元是通用暫存器的機器。CISC:
複雜指令集計算機RISC:
精簡指令集計算機定址方式
令中的運算元是一個常數丶一個暫存器運算元或者是一個儲存器運算元資料表示:
硬體結構能夠識別、指令系統可以直接呼叫的那些資料結構。
2.2 區別不同指令集結構的主要因素是什麼?根據這個主要因素可將指令集結構分為哪3類?
答:區別不同指令集結構的主要因素是CPU中用來儲存運算元的儲存單元。據此可將指令
系統結構分為堆疊結構
、累加器結構
和通用暫存器結構
。
2.3 指令集結構設計所涉及的內容有哪些?
指令集功能設計
:主要有RISC和CISC兩種技術發展方向;定址方式的設計
:設定定址方式可以通過對基準程式進行測試統計,察看各種定址方式的使用頻率,根據適用頻率設定必要的定址方式。運算元表示和運算元型別
:主要的運算元型別和運算元表示的選擇有:浮點資料型別、整型資料型別、字元型、十進位制資料型別等等。址方式的表示
:可以將定址方式編碼於操作碼中,也可以將定址方式作為一個單獨的域來表示。指令集格式的設計
:有變長編碼格式、固定長度編碼格式和混合型編碼格式3種。
2.10 通常有哪幾種指令格式,請簡述其適用範圍。
變長編碼格式
。如果系統結構設計者感興趣的是程式的目的碼大小,而不是效能,就可以採用變長編碼格式。固定長度編碼格式
。如果感興趣的是效能,而不是程式的目的碼大小,則可以選擇固定長度編碼格式。混合型編碼格式
。需要兼顧降低目的碼長度和降低譯碼複雜度時,可以採用混合型編碼格式。
第三章
3.1 名詞解析
靜態流水線
:指在同一時間內,多功能流水線中的各段只能按同一種功能的連線方式工作的流
水線。當流水線要切換到另一種功能時,必須等前面的任務都流出流水線之後,才能改變連線。換名技術
:名相關的兩條指令之間並沒有資料的傳送,只是使用了相同的名。可以把其中一條
指令所使用的名換成別的,以此來消除名相關。寫後寫衝突
:考慮兩條指令 i 和 j,且 i 在 j 之前進入流水線,指令 j 和指令 i 的結果單元(寄存
器或儲存器單元)相同,而且 j 在 i 寫入之前就先對該單元進行了寫入操作,從而導致寫入順序
錯誤。這時在結果單元中留下的是 i 寫入的值,而不是 j 寫入的。
3.2 簡述流水線技術的特點
- 流水線把一個處理過程分解為若干個子過程,每個子過程由一個專門的功能部件來實現。
因此,流水線實際上是把一個大的處理功能部件分解為多個獨立的功能部件,並依靠它們的並
行工作來提高吞吐率。 - 流水線中各段的時間應儘可能相等,否則將引起流水線堵塞和斷流。
- 流水線每一個功能部件的前面都要有一個緩衝暫存器,稱為流水暫存器。
- 流水技術適合於大量重複的時序過程,只有在輸入端不斷地提供任務,才能充分發揮流
水線的效率。 - 流水線需要有通過時間和排空時間。在這兩個時間段中,流水線都不是滿負荷工作。
第四章
4.1名詞解析
-
縱向處理方式:將整個向量按相同的運算處理完畢之後,再去執行其他運算。適合對向量進行流水處理,向量運算指令的源/目向量都放在儲存器內,使得流水線運算部件的輸入、輸出端直接與儲存器相聯,構成M-M型的運算流水線。
-
分段開採:當向量的長度大於向量暫存器的長度時,必須把長向量分成長度固定的段,然後迴圈分段處理,每一次迴圈只處理一個向量段。
-
向量長度臨界值:向量流水方式的處理速度優於標量序列方式的處理速度時所需的向量長度的最小值。
4.2 簡述三種向量處理方式,它們對向量處理機的結構要求有何不同?
- 橫向處理方式:若向量長度為N,則水平處理方式相當於執行N次迴圈。若使用流水線,在每次迴圈中可能出現數據相關和功能轉換,不適合對向量進行流水處理。
- 縱向處理方式:將整個向量按相同的運算處理完畢之後,再去執行其他運算。適合對向量進行流水處理,向量運算指令的源/目向量都放在儲存器內,使得流水線運算部件的輸入、輸出端直接與儲存器相聯,構成M-M型的運算流水線。
- 縱橫處理方式:把長度為N的向量分為若干組,每組長度為n,組內按縱向方式處理,依次處理各組,組數為「N/n」,適合流水處理。可設長度為n的向量暫存器,使每組向量運算的源/目向量都在向量暫存器中,流水線的運算部件輸入、輸出端與向量暫存器相聯,構成R-R型運算流水線。
第五章
5.1 名詞解析
-
指令級並行:簡稱ILP。是指指令之間存在的一種並行性,利用它,計算機可以並行執行兩條或兩條以上的指令。
-
指令的動態排程:是指在保持資料流和異常行為的情況下,通過硬體對指令執行順序進行重新安排,以提高流水線的利用率且減少停頓現象。是由硬體在程式實際執行時實施的。
-
BHT:分支歷史表。用來記錄相關分支指令最近一次或幾次的執行情況是成功還是失敗,並據此進行預測。
-
超標量:一種多指令流出技術。它在每個時鐘週期流出的指令條數不固定,依程式碼的具體情況而定,但有個上限。
5.3 記分牌演算法中,記分牌中記錄的資訊由哪三部分組成?
- 指令狀態表=:記錄正在執行的各條指令已經進入
到了哪一段; - 功能部件狀態表:記錄各個功能部件的狀態;
- 結果暫存器狀態表 Result:每個暫存器在該表中有一項,用於指出哪個功能部件(編號)將把結果寫入該暫存器。
第六章
6.1 解析下列名詞:迴圈展開 全域性指令排程 蹤跡排程 迴圈攜帶相關 VLIW
- 迴圈展開 :是一種增加指令間並行性最簡單和最常用的方法。它將迴圈展開若干遍後,通過
重新命名和指令排程來開發更多的並行性。 - 全域性指令排程: :在迴圈體內的多個基本塊間移動指令,擴大那些執行頻率較高的基本塊的體
積;在保持原有資料相關和控制相關不變的前提下,儘可能地縮短包含分支結構的程式碼段的
總執行時間。 - 蹤跡排程 :由一個或多個基本塊組成的指令序列,通過移動指令優化執行頻率高的 trace,
減少其執行開銷,包括蹤跡選擇和蹤跡壓縮兩步。 - 迴圈攜帶相關 :是指一個迴圈的某個疊代中的指令與其他疊代中的指令之間的資料相關。
- VLIW :一種多指令流出技術。VLIW 處理機在每個時鐘週期流出的指令條數是固定的,這
些指令構成一條長指令或者一個指令包,在這個指令包中,指令之間的並行性是通過指令顯
式地表示出來的。
6.2 簡述蹤跡排程和超塊排程的基本過程
- 蹤跡排程:包括蹤跡選擇和蹤跡壓縮。
- 蹤跡選擇:從程式的控制流圖中選擇執行頻
率較高的路徑,每條路徑就是一條 trace; - 蹤跡壓縮:對已生成的 trace 進行指令排程和
優化,儘可能地縮短其執行時間,跨越 trace 內部的入口或出口排程指令時必須非常小心,
有時還需要增加補償程式碼 。
- 蹤跡選擇:從程式的控制流圖中選擇執行頻
- 超塊排程:增加對 trace 拓撲結構的約束,將其限制為只能更擁有一個入口,但可以擁
有多個出口的結構。壓縮超塊時,只需要考慮跨越超塊出口移動指令的情形,而且對於那些
只有一個出口的計算迴圈控制,經過迴圈展開後得到的超塊只有一個入口和一個出口。
第七章
7.1
- 多級儲存層次: :採用不同的技術實現的儲存器,處在離 CPU 不同距離的層次上,各儲存器
之間一般滿足包容關係,即任何一層儲存器中的內容都是其下一層(離 CPU 更遠的一層)
儲存器中內容的子集。目標是達到離 CPU 最近的儲存器的速度,最遠的儲存器的容量。 - 組相聯映像: :主存中的每一塊可以放置到 Cache 中唯一的一組中任何一個地方(Cache 分成
若干組,每組由若干塊構成)。 - LRU :選擇最近最少被訪問的塊作為被替換的塊。實際實現都是選擇最久沒有被訪問的塊
作為被替換的塊。 - 寫回法: 只把資訊寫入 Cache 中相應塊,該塊只有被替換時,才被寫回主存。
- 衝突不命中:在組相聯或直接映象 Cache 中,若太多的塊映象到同一組(塊)中,則會出現
該組中某個塊被別的塊替換(即使別的組或塊有空閒位置),然後又被重新訪問的情況。
7.2 簡述“Cache-主存”層次與“主存-輔存”層次的區別
- “cache-主存”指 在 CPU 和主存之間增加一級速度快、但容量較小且每位價格較高的高速緩衝儲存Cache
- “主存-輔存”層次的目的是為了彌補主存容量的不足。它是在主存外面增加一個容量更大、每位價格更 低、但速度更慢的儲存器