第一章 計算機系統結構的概念
重要知識點:
1. 計算機系統結構的定義
答:計算機系統結構是程序員看到的計算機屬性,即概念性結構和功能性結構
2. 計算機系統結構的Flynn分類法
答:
分類依據:
指令流(計算機執行指令的序列)
數據流(指令流調用的數據序列)
多倍性(在系統受限的部件上,同時處於同一執行階段的指令或數據的最大數目)
四大分類:
1)單指令流單數據流(SISD)
2)單指令流多數據流(SIMD)
3)多指令流單數據流(MISD)
4)多指令流多數據流(MIMD)
Ps:S代表Single,M代表Multiple
3. 計算機系統設計的定量原理(4個),熟練運用Amdahl定律和CPU性能公式
答:
計算機系統設計的4個定量原理:
1)以經常性事件為重點
2)遵循Amdahl定律
3)CPU性能公式
4)程序局部性原理
關於定量原理的簡單分析:
Amdahl定律:加速某部件執行速度所能獲得的系統性能加速比,受限於改部件的執行時間占系統中總執行時間的百分比
加速比公式的推導:
加速比=改進前的總執行時間/改進后的總執行時間(核心定義式)
改進后的總執行時間=改進前的總執行時間*[(1-可改進比例)+可改進比例/部件加速比]
加速比=1/[(1-可改進比例)+可改進比例/部件加速比](這是針對只有一個部件改進的情況,如果有多個部件改進的話,要求加速比要根據核心定義式來)
多個部件改進求加速比:加速比=1/[(1-多個部件可改進比例之和)+多個部件可改進比例之和/多個部件加速比之和](預測是考試重點)
CPU性能公式的推導:
CPU時間=時鍾周期數*單個時鍾周期時間(單個時鍾周期時間是系統頻率的倒數)
新定義一個CPI,CPI=時鍾周期數/指令條數
定義IC,IC=指令條數
那么CPU時間=IC*CPI*時鍾周期時間
程序局部性原理的分析:
指的是程序執行時訪問的存儲器地址不是隨機的,是相對成簇的,比如數組里面的數據在地址空間里面都是連續存在的,包括時間局部性和空間局部性
時間局部性:指程序將要用到的信息和可能是當前正在使用的信息
空間局部性:指程序將要用到的信息很可能與目前正在使用的信息在空間上相鄰或者相近
(簡單了解即可)
4. 理解執行時間和吞吐率的含義
答:
執行時間:計算機完成某一任務所花費的全部時間(包括磁盤訪問,存儲器訪問,IO,操作系統開銷等)
吞吐率:單位時間內計算機完成任務的多少
5. 系列機的含義與軟件兼容方式
答:
系列機:由同一廠家生產的具有相同的系統結構,但具有不同的組成和實現的一系列不同型號的計算機
系列機的4種軟件兼容方式:
1)向前兼容
2)向后兼容
3)向上兼容
4)向下兼容
6. 模擬與仿真的區別
答:
模擬:用軟件的方法在一台現有的計算機上實現另外一台計算機的指令集
仿真:用一台現有計算機上的微程序去解釋實現另一台計算機
區別:
1)模擬程序放在內存中,而仿真微程序放在存儲器中
2)仿真的運行速度比模擬快
3)仿真只能在系統結構差距不大的計算機之間使用
7. 並行性,同時性,並發性的含義
答:
並行性:指計算機系統在同一時刻或同一時間間隔內進行多種運算或操作
注意:並行性包括同時性和並發性!!!!
同時性:指兩個或者兩個以上的事情在同一時間發生
並發性:指兩個或者兩個以上的事情在同一間隔發生
8.提高並行性的技術途徑
答:
1)時間重疊:流水線技術
2)資源重復:多處理機系統
3)資源共享:多道程序,分時系統,打印機
第二章 計算機指令集結構
1. 根據儲存操作數的存儲單元的類型對指令集結構進行分類以及每類的特點
答:
指令集結構的分類:
1)堆棧類指令集結構
2)累加器類指令集結構
3)通用寄存器類指令集結構
堆棧類指令集結構的特點:
1)操作數都是隱式給出(即棧頂和次棧頂中的數據)(棧頂和次棧頂的數據取出來進行運算之后,結果再次壓入堆棧當中)
2)只能通過psuh/pop指令訪問存儲器
3)指令字短,程序占用空間小但訪問存在瓶頸(由堆棧這種數據結構決定)
累加器類指令集結構的特點:
1)一個操作數是隱式給出(累加器本身數據),一個操作數是顯示給出(一個存儲單元的數據)(運算結果再次送回累加器)
通用寄存器類指令集結構的特點:
1)所有操作數都是顯示給出(或是來源於存儲器,或是來源於通用寄存器本身,結果再次希爾通用寄存器)
2. 尋址方式的含義以及常見的尋址方式
答:
尋址方式的含義:
指一種指令集結構如何確所要訪問的數據的地址
常見的尋址方式:
1)寄存器尋址(ADD R1,R2):Regs[R1] <-- Regs[R1]+Regs[R2]
2)立即數尋址(ADD R3,#6):Regs[R3] <-- Regs[R3]+6
3)偏移尋址(ADD R3,120(R2)):Regs[R3] <-- Regs[R3]+Mem[120+Regs[R2]]
3. 偏移尋址方式中偏移量的取值范圍的特點,立即數尋址方式中立即數取值范圍的特點
答:
偏移量的取值范圍特點:
1)分布廣泛
2)較小偏移量和較大偏移量占的比重大
立即數取值范圍的特點:
1)較小的立即數最常用,但有時也會用到較大的立即數
2)立即數范圍大小設置為8位到16位
4. CISC復雜指令集結構存在的問題,RISC精簡指令集結構的設計原則
答:
CISC復雜指令集結構存在的問題:
1)各種指令的使用頻度相差懸殊,許多指令很少用到
2)指令集龐大,指令條數多,許多指令的功能又很復雜
3)許多指令由於操作復雜,其CPI值比較大,執行速度慢
4)由於指令功能復雜,規整性不好,不利於采用流水線技術來提高性能
RISC精簡指令集結構的設計原則
1)指令條數小,指令簡單
2)采用簡單而有統一的指令格式,並減少尋址方式
3)指令的執行在單個機器周期內完成
4)只有load和store指令才能訪問存儲器,其他指令的操作都是在寄存器之間進行
5)大多數指令都采用硬連邏輯來實現
6)強調優化編譯器的作用,為高級語言程序生成優化的代碼
7)充分理由流水線技術來提高性能
5. 能夠改變控制流的4種指令類型
答:
1)條件分支(if else)
2)跳轉(break,continue)
3)過程調用(函數調用)
4)過程返回(return)
6. 數據表示的含義,操作數類型的兩種表示方法
答:
數據表示:
指計算機硬件能夠直接識別,指令集可以直接調用的數據類型
操作數類型的兩種表示方法:
1)由指令中的操作碼指定操作數的類型
2)給數據加上標識,由數據本身給出操作數的類型
7. 指令集的3種編碼格式
答:
1)可變長度的編碼格式(該編碼格式適合指令集的尋址方式和操作種類很多時)
2)固定長度編碼格式(該編碼格式適合指令集的尋址方式和操作種類很少時)
8. MIPS的寄存器和數據尋址方式的特點
答:
MIPS寄存器的特點:
1)32個64位的通用寄存器,R0~R31,R0的值永遠是0
2)32個64位的浮點寄存器(可存放單雙精度)
3)還有一些特殊狀態寄存器(比如浮點狀態寄存器)
數據尋址方式的特點:
1)只有立即數尋址和偏移量尋址的兩種方式
2)立即數字段和偏移量字段都是16位
3)寄存器間接尋址是通過把0作為偏移量來實現的
4)16位絕對尋址是把R0作為基址寄存器來完成的
9. MIPS的3種指令方式中各字段的含義
答:
MIPS指令都是32位的,操作碼占6位,三類:I類,R類,J類
1)I類指令(load,store,立即數指令,分支指令,寄存器跳轉指令,寄存器鏈接跳轉指令)
操作碼 + rs + rt + 立即數
Rs:第一個源操作數寄存器
Rt:第二個源操作數寄存器
2)R類指令(ALU指令,專用寄存器讀寫指令,move指令等)
操作碼 + rs + rt + rd + shamt + funct
Rd:存放操作結果的目的寄存器
Shamt:移位的位數
Funct:運算操作碼(功能碼)
3)J類指令:(跳轉指令,跳轉並鏈接指令,自陷指令,異常返回指令)
操作碼 + 與pc相加的偏移量
10.MIPS的4種操作類型,控制指令的組成
答:
MIPS的4種操作的類型:
1)Load和store
2)ALU操作
3)分支與跳轉
4)浮點操作
控制指令的組成:
1)跳轉指令
2)分支指令
第三章 流水線技術
1. 流水線的概念和時空圖
答:
流水線的概念:把多個處理過程在時間上錯開,依次通過各功能段,這樣每個子過程就可以與其他子過程並行進行,這個就叫做流水線技術
流水線的工作過程采用時空圖來描述,橫坐標表示時間,縱坐標表示空間,即流水線中每一個流水段
2. 流水線的分類
答: 流水線由多種分類,分類依據不同,分類自然也不同
1)單功能流水線和多功能流水線(划分依據:功能的多少)
2)靜態流水線和動態流水線(划分依據:同一時間內各段之間的連接方式)
3)部件級,處理機級及處理機間流水線(划分依據:流水的級別)
4)線性流水線和非線性流水線(划分依據:流水線中是否有反饋回路)
5)順序流水線和亂序流水線(划分依據:任務流入和流出的順序是否相同)
3. 計算以下兩種情況的流水線的吞吐率(核心定義式:TP=n/Tk)
1)各段時間均等的流水線
2)各段時間不均等的流水線
4. 解決流水線瓶頸常用的兩種方法
答:
1)細分瓶頸段
2)重復設置瓶頸段(不差錢的搞法,在瓶頸段設置多個運算部件)
5. 計算流水線的加速比和效率
答:
加速比=不采用流水線的時間/采用流水線的時間
效率=時空圖所有小矩形總面積/時空圖大矩形面積
6. 經典5段流水線的執行過程
答:
1)取指令周期
2)指令譯碼周期
3)執行/有效地址計算周期
4)儲存訪問/分支完成周期
5)寫回周期
7. 指令相關定義(3種),運用換名技術解決名相關
答:指令相關的定義:
1)數據相關(此次運算需要前一次運算的結果作為數據)
2)名相關(指令所訪問的寄存器或存儲器單元相同)
3)控制相關(分支指令引起的相關)
換名技術:因為名相關的兩條指令之間沒有數據的傳送,只使用了相同的名而已,所以如果把其中一條指令所使用的名換成別的,並不影響另外一條指令的正確執行
8. 流水線沖突的定義(3種),結構沖突和數據沖突的解決措施
答:
流水線沖突的定義:指對於具體執行的流水線來說,由於相關的存在,使得指令流中的下一條指令不能在指定的時間執行
流水線沖突的分類:
1)結構沖突(因硬件資源滿足不了指令重疊執行的要求而引發的沖突)
2)數據沖突(當指令在流水線中重疊執行時,因需要后面指令的執行結果而引發的沖突)(通俗說就是現在要用到還沒有算出來的結果)
3)控制沖突(流水線遇到分支指令和其他會改變pc值的指令所引起的沖突)
結構沖突的解決措施:
1)適當停頓流水線,推遲沖突中的一個操作
2)增加硬件設備資源
數據沖突的解決措施:
1)定向技術:把計算結果從產生的地方直接放到需要的地方)
2)適當停頓流水線(因為需要的東西還沒有算,所以你先停下自己的工作,等它算出來,你再拿着算出來的結果繼續開始工作)
第五章 儲存系統
1. 多級存儲層次的設計目標
答:
1)速度快
2)容量大
3)價格低
2. 以下概念的含義:命中率,失效率,命中時間,失效開銷,平均訪存時間的計算公式
答:
命中率:cpu訪問存儲系統時,找到所需信息的概率
失效率:cpu訪問儲存系統時,找不到所需信息的概率
命中時間:cpu訪問存儲系統時,找到所需信息所花費的時間
失效開銷:cpu訪問存儲系統時,找不到所需信息所花費的時間
平均訪存時間的計算公式=命中開銷+不命中率*不命中開銷
3.三種映像規則的實現原理
答:
1)全相連映像(主存中的任意一塊可以放到cache中的任意一個位置)(任意一個)
2)直接映像(主存中的每一個塊只能放置到cache的唯一一個位置)(唯一一個)
3)組相連映像(主存中的一個塊可以放到cache中唯一一個組中的任意一個位置)(唯一一個組的任意位置)
4.cache塊的查找方法
答:
標識+索引
先索引到組/塊,然后在組/塊內根據標識查找
同一組內索引相同,標識不同
5. cache的工作過程
答:
21064的cache的物理地址為24位(塊地址29位+塊內位移5位)
1)先得到標識的位數,進而得到索引
2)將索引作為地址從目錄項里面得到相應的標識和有效位
3)同時用索引從cache的數據體中選一塊,用塊內位移作為偏移量得到相應的標識
4)將兩個標識相比較(有效位為1比較才有效)
5)匹配成功且有效位為1,cache命中,發信號通知cpu取走數據
6)匹配不成功,cache不命中,給cpu發送一個等待信號,並從下一級存儲器調入一個新的數據庫(如需替換cache中數據塊,則按照對應的替換算法進行替換)
6. 兩種寫策略的含義及其優缺點
答:
1)寫直達法:不僅把數據寫入cache,還寫入下一級存儲器
優點:數據保證了一致性
缺點:慢
2)寫回法:只把數據寫入cache,不寫入下一級存儲器
優點:快
缺點:數據沒有保證一致性
7. 熟練運用平均訪存時間公式,cpu時間公式,存儲器停頓時鍾周期數公式進行cache性能分析
8. cache失效的三種類型,降低cache失效率的四種方法
答:
Cache失效的三種類型:
1)強制性不命中(第一次訪問時,cache中沒有對應程序的任何數據)
2)容量不命中(容量限制,需要訪問的數據因為cache容量有限被替換出去了)
3)沖突不命中(組相連映像中,太多的快映像到同一組,出現的在組內x塊被y塊替換了,需要訪問x的時候訪問不到情況)
降低cache失效率的四種方法:
1)增加cache塊的大小(程序局部性原理,增加了塊大小,所以減少了塊數目,可能會增加沖突不命中)
2)增加cache的容量(以增加成本,命中時間為代價)
3)提高相連度(以增加命中時間為代價)
4)偽相連(列相連)(即獲得了多路組相連cache的低不命中率,又保持了直接映像cache的命中速度
9. 減少cache失效開銷的3種方法
答:
1)采用兩級cache
2)讓讀不命中優先於寫(等我寫完再讀)
3)寫緩沖合並(不寫重復的,提高了寫的效率)
10. 減少命中時間的兩種方法
答:
1)容量小,結構簡單的cache(硬件越簡單,速度就越快)
2)虛擬cache
第七章 互連網絡
1.互連網絡的定義與三大要素
答:
互連網絡的定義:一種由開關元件按照一定的拓撲結構和控制方式構成的網絡,用來實現計算機系統中結點之間的相互連接
互連網絡的三大要素:
1)互連結構
2)開關元件
3)控制方式
2.常見的互連函數
略(不好寫這上面,看書比較好)
第八章 多處理機
1. 依據存儲器結構對多處理機進行分類
答:
1)對稱式共享存儲器多處理機
2)分布式存儲器多處理機
2. 分布式存儲器多處理機的兩種通信方式
答:
1)共享地址空間
2)多個獨立的地址空間
3. 多處理機Cache一致性的定義
答:
如果允許共享數據進入Cache,那么當其中一個處理器對自己Cache中的數據進行了修改之后,其他Cache中的副本數據沒有被修改,數據不一致
4. 兩種共享數據狀態跟蹤技術的實現過程
答:
1)目錄式協議
2)監聽式協議
實現過程:
1)目錄式協議:
對於分布式存儲器多處理機,由多個存儲器,多個Cache,多個CPU,多個IO,一個存儲器,一個Cache,和一個CPU和一個IO叫做一個處理單元,一個處理單元配備一個目錄,該目錄記載了該單元的存儲器中的數據在哪些Cache中存在了副本,當該單元從自己的存儲器讀入一個數據然后又修改了之后,該單元會先把該數據從自己的Cache寫回自己的存儲器,然后查看自己的目錄,看看我修改的數據在那些Cache中存在副本,依次修改數據,保證共享數據的一致性
2)監聽式協議
所有的存儲器一直監聽總線,當某個存儲器對共享數據進行了修改之后就對該數據被修改的信息進行廣播,所有的存儲器都是一直在監聽總線的,收到消息之后會對比一下看看自己是否有被修改數據的副本,有的話進行修改,沒有的話不進行操作
5. 兩種更新協議的實現過程
答:
1)寫作廢協議
2)寫更新協議
實現原理:
寫作廢協議:
當本地cache中的數據被修改之后,告訴所有的Cache你們的該數據作廢了,因為被我修改了,你別用了
寫更新協議:
當本地Cache中的數據被修改之后,告訴所有的Cache你們的該數據也要進行修改,因為我剛剛修改了我本地Cache的該數據
6. 對稱式共享存儲器系統中監聽協議的實現過程
答:
對稱式共享存儲器系統由多個cache多個cpu,但是只有一個存儲器,他們共用這個存儲器,假定一個cahce和一個cpu叫做一個運算單元,假定發生數據修改的單元的cpu和cache分別叫做本地cache和本地cpu,當本地運算單元發送數據修改時,cpu寫把修改之后的數據寫入本地cache和存儲器,然后向總線廣播該數據被我修改的消息,其他運算單元看看自己的caceh中有沒有改數據的副本,有的話也要進行修改,沒有的話就跳過
7. 分布式存儲器多處理機目錄協議的實現過程
答:
分布式存儲器多處理機系統有多個cache,多個cpu,多個存儲器,多個目錄,假定一個存儲器一個cpu一個cache一個目錄叫做一個運算單元,假定發生數據修改的單元的cpu和cache和存儲器分別叫做本地cpu,本地cache,本地存儲器,當本地運算單元發生數據修改時,先把修改的數據寫回本地cache,然后查找本地目錄,看看被修改的數據在哪些cache中存在副本,然后讓他們都修改一下該數據在他們cache中的副本,從而保證數據一致性