這篇用來存檔 基本並不能幫助大家速成 只是博主復習時用來鞏固時用的(假裝大家都看不見)
教材:《計算機組成原理》唐朔飛版
內容:第四章到第八章不完全總結
chapter 4
存儲器
存儲器的層次結構:緩存-主存 提高速度 主存地址 實地址 物理地址
主存-輔存 提高容量 虛擬存儲器 虛地址 邏輯地址
2^地址線 * 數據線 =存儲容量
半導體存儲器芯片的譯碼驅動方式:線選法 重合法
動態RAM刷新:
- 1. 集中刷新
在規定的一個刷新周期內,對全部存儲單元集中一段時間逐行進行刷新,此刻必須停止讀、寫操作。存在“死時間”
- 2. 分散刷新
對每行存儲單元的刷新分散到每個存儲周期內完成,不存在讀寫操作死時間,但存取周期長了,整個系統速度降低了
- 3. 異步刷新
是兩種方式的結合 既可縮短死時間,又充分利用最大刷新間隔為2ms的特點。
海明碼:2^k >=n+k+1
K=3 1 3 5 7 2 3 6 7 4 5 6 7
K=4 3 5 7 9 11 3 6 7 10 11 5 6 7 9 10 11
Cache-主存地址映射
直接映射:有固定的映射關系,某一主存塊只能固定映射到某一緩存塊
優點:實現簡單,只要利用主存地址的某些位直接判斷,即可確定所需字塊是否在緩存中
缺點:不夠靈活。
全相聯映射:某一主存塊可以映射到任一緩存塊
優點:方式靈活 命中率更高 縮小了塊沖突率
缺點:邏輯電路甚多 成本較高
組相聯映射:是直接映射和全相聯映射的一中折中。某一主存塊能映射到某一緩存組中的任一塊
性能及復雜度介於直接映射和全相聯映射之間。
chapter 5
I/O設備與主機信息傳送的控制方式
程序查詢方式:CPU啟動I/O設備后便不斷查詢I/O設備是否已做好准備。啟動I/O設備,CPU便不斷查詢I/O設備的狀態,若查得I/O設備未准備就緒,就繼續查詢;若查得I/O設備准備就緒,就將數據從I/O接口送至CPU,再由CPU送至主存,一個字一個字地傳送,直至全部結束,CPU回到原現行程序。
特點:
- 只要一啟動I/O設備,CPU便不斷查詢I/O設備的准備情況,從而終止了原程序的進行,反復查詢過程進入“原地踏步”
- CPU和I/O設備串行工作,CPU效率低
程序中斷方式:啟動I/O設備后,不查詢設備是否已准備就緒,繼續執行自身程序,當I/O設備准備就緒並向CPU發出中斷請求后才給予響應。處理完中斷后返回原程序斷點處,繼續執行原程序
特點:
- 不必不斷查詢I/O設備准備情況,沒有“踏步”現象
- 中斷了現行程序
- CPU執行程序和I/O設備准備同時進行,CPU和I/O並行工作(部分)。
- 相比程序查詢方式提高了CPU利用率
(硬件需增加相應電路,軟件必須編制中斷服務程序)
過程:
- 中斷請求、中斷判優、中斷響應、中斷服務(保護現場、中斷服務、恢復現場、中斷返回)、中斷返回
- (宏觀上CPU與I/O並行工作,微觀上CPU中斷現行程序為I/O服務)
- INTR中斷請求觸發器 MASR中斷屏蔽觸發器
D設備准備就緒 EINT允許中斷觸發器(開中斷、關中斷)
DMA方式:主存與I/O設備之間有一條數據通路,無需調用中斷服務程序,若CPU和DMA同時訪存,總是把總線占有權給DMA,DMA竊取或挪用一個存取周期。
特點:
- 主存與I/O設備之間有一條數據通路
- 不中斷現行程序,省去了保護現場和恢復現場
- 周期挪用/周期竊取
- CPU和I/O並行工作
- 相比程序查詢方式和程序中斷方式更提高了CPU利用率
DMA與主存交換數據的三種方法(優缺點?):
- 停止CPU訪問主存
- 周期挪用
- DMA與CPU交替訪問
DMA的數據傳送過程:
預處理 數據傳送 后處理
DMA接口類型:
選擇型 多路型
DMA與程序中斷方式比較:
chapter 6
無符號數和有符號數,定點表示和浮點表示
X=0時,[+0]原=0,0000 [-0]原=1,0000 [+0]原[-0]原
[+0]補=0,0000 [-0]補=0,0000 [+0]補[-0]補
[+0]反=0,0000 [-0]反=1,1111 [+0]反[-0]反
[+0]移=1,0000 [-0]移=1,0000 [+0]移[-0]移
補碼或移碼唯一
原碼小數點(小數)或逗號(整數)前永遠是符號位
[y]補求[-y]補:連同符號位,每位取反,末位加一
移碼:補碼符號位取反
IEEE754: 短實數 符號位1 階碼8 位數23 總位數32
定點運算
有符號數的移位:算術移位 無符號數的移位:邏輯移位
現代計算機使用補碼加減法
補碼加減法(符號位也做運算,由於模2,溢出丟掉即可):
[A]補+[B]補=[A+B]補 [A-B]補= [A]補+[-B]補 (記得溢出判斷)
補碼:參與加減的兩個數符號相同但與結果符號不同,則溢出
變形補碼:結果的符號位不用則溢出,高位為真正的符號
原碼一位乘:邏輯移位、移位次數判斷結束、n次加法和n次移位
原碼兩位乘:算術移位、移位次數判斷結束、n/2+1次加法和n/2次移位(n為偶)
補碼乘法(booth算法,被乘數和乘數符號均任意的情況):
原碼乘符號位單獨處理,補碼乘符號位自然形成
chapter 7
指令的一般格式
操作碼:長度固定(集中放在指令字的一個字段內,用於指令字較長的情況)、
長度不固定(分散在指令字的不同字段中,增加譯碼和分析的難度)、
擴展操作碼(位數隨地址數減少而增加)
擴展操作碼:
地址碼(通常是形式地址而不是有效地址):兩個源操作數、結果、下一條指令
四地址:四次訪存、A1(OP)A2 →A3
三地址:四次訪存、A1(OP)A2 →A3、PC代替A4
二地址:四次訪存(若結果存於ACC則三次訪存)、A1(OP)A2 →A1、結果存於A1
一地址:兩次訪存、ACC(OP)A1→ACC、ACC代替原A1
零地址:無地址碼
指令字長:取決於操作碼長度、操作數地址的長度、操作數地址的個數
指令字長固定:指令字長=存儲字長
指令字長可變:按字節的倍數變化
尋址方式
尋址方式:確定本條指令地址的數據地址、確定下一條將要執行的指令地址,包括指令尋址和數據尋址
指令尋址:順序尋址、跳躍尋址
數據尋址:
- 立即尋址:形式地址A內放操作數(立即數)、指令執行階段不訪存、A的位數限制了立即數的范圍
- 直接尋址:形式地址內放有效地址、執行階段只訪存一次、操作數的地址不易修改(必須修改A)
- 隱含尋址:操作數的地址隱含在操作碼中(例如MUL被乘數在AX或AL中)、指令字中少了一個地 址字段所以可以縮短指令字長
- 間接尋址:有效地址由形式地址間接提供、指令執行階段訪存兩次以上、指令執行時間變長、擴大尋址范圍、便於編制程序
- 寄存器尋址:有效地址即為寄存器編號、執行階段不訪存 只訪問寄存器 執行速度快、寄存器個數有限 可縮短指令字長
- 寄存器間接尋址:有效地址在寄存器中 操作數在存儲器中 執行階段訪存、便於編制循環程序
- 基址尋址:
- 采用專用的寄存器做基址寄存器(隱式):擴大尋址范圍、便於程序搬家、BR內容由操作系統或管理程序確定、程序執行過程中BR中內容不變,A的內容可變
- 采用通用的寄存器做基址寄存器(顯式):用戶指定哪個寄存器做基址寄存器、基址寄存器的內容由操作系統決定、在程序執行過程中R0內容不變,形式地址A可變
- 變址尋址:IX為變址寄存器(通用寄存器也可以作為變址寄存器)、可擴大尋址范圍、IX內容由用戶給定、程序執行過程中IX內容可變、形式地址A不變、便於處理數組問題
- 相對尋址:A是相對於當前指令的位移量(可正可負,補碼)、A的位數決定操作數的尋址范圍、程序浮動、廣泛用於轉移指令
- 堆棧尋址:
RISC的特點
chapter 8
CPU的結構(ALU、CU、寄存器、中斷系統)
CPU功能:指令控制(控制程序的順序執行)、操作控制(產生完成每條指令所需的控制命令)時間控制(對各種操作加以時間上的控制)、數據加工(對數據進行算術運算和邏輯運算)、處理中斷
CPU的寄存器:
- 用戶可見寄存器(通用寄存器、數據寄存器、地址寄存器、條件碼寄存器)
- 控制和狀態寄存器(控制:PC→MAR→M→MDR→IR,PC可見 狀態:狀態寄存器放條件碼 PSW寄存器放程序狀態字)
CU控制單元:產生全部指令的微操作命令部件(兩種方法:組合邏輯設計方法(硬連線邏輯)、微程序設計方法(存儲邏輯))
指令周期
指令周期=取指周期(取指、分析)+間址周期+執行周期(執行)+中斷周期
指令流水
為什么要用指令流水?提高細粒度並行性,開發系統的並行性,提高機器速度——小圓想的,錯了不挨打
指令的二級流水:如果指令的執行階段不訪問主存,就可以利用這段時間取下一條指令,使得取下一條指令的操作和執行當前指令的操作同時進行,這就是兩條指令的重疊
指令預取:由指令部件取出一條指令,並將它暫存起來,如果執行部件空閑,就將暫存的指令傳給執行部件執行。與此同時,指令部件又可取出下一條指令並暫存起來。
如果取值和執行階段時間上完全重疊,指令周期減半,速度提高一倍。影響效率加倍的因素?
- 指令執行時間一般大於取指時間。
- 當遇到條件轉移指令時,下一條指令是不可知的。(用猜測法解決)
影響流水線性能的因素?(看書上的例子)
- 結構相關:不同指令爭用同一功能部件產生的,也稱資源相關
解決?
a) 后推法:流水線在完成前一條指令對數據的存儲器訪問時,暫停(一個時鍾周期)取后一條指令的操作
b) 指令存儲器和數據存儲器分開,以免取指令和取操作數同時進行時互相沖突
c) 指令預取技術,適用於訪存周期短的情況
- 數據相關:各條指令因重疊操作,可能改變對數據的讀寫訪問順序
解決?
a) 后推法:遇到數據相關時,就停頓后繼指令的運行,直至前面指令的結果已經生成
b) 定向技術(旁路技術、相關專用通路技術):不必等某條指令的執行結果送回到寄存器后,再從寄存器中取出該結果,作為下一條指令的源操作數,而是直接將執行結果送到其他指令所需要的地方放。
- 控制相關:由轉移指令引起
解決?(了解)
盡早判別法,轉移預測法,加快和提前生成條件碼,提高猜准率
數據相關分類:
流水線性能指標:吞吐率、加速比、效率
流水線中的多發技術:
1. 超標量技術:每個時鍾周期內同時並發多條獨立指令,即以並行操作方式將兩條或兩條以上指令編譯並執行
要求配置多個功能部件,要求通過編譯優化技術把可並行的指令搭配起來,硬件不能調整指令執行順序
2. 超流水技術:將一些流水線寄存器插入到流水線段中,好比將流水線再分段。使得一個時鍾周期內一個功能部件使用多次
硬件不能調整指令的執行順序,靠編譯程序解決優化問題
3. 超長指令字技術:由編譯程序在編譯時挖掘出指令間潛在的並行性后,把多條能並行操作的指令組合成具有多個操作碼字段的超長指令
采用多個處理部件。對優化編譯器的要求高,對Cache容量要求大。
中斷系統
