電腦組成原理(複習)
第一章 電腦系統概論
\1. 什麼是電腦系統、電腦硬體和電腦軟體?硬體和軟體哪個更重要?
解:P3
電腦系統:由電腦硬體系統和軟體系統組成的綜合體。
電腦硬體:指電腦中的電子線路和物理裝置。
電腦軟體:電腦運行所需的程式及相關資料。
硬體和軟體在電腦系統中相互依存,缺一不可,因此同樣重要。
\5. 馮•諾依曼電腦的特點是什麼?
解:馮•諾依曼電腦的特點是:P8
l 電腦由運算器、控制器、存儲器、輸入設備、輸出設備五大部件組成;
l 指令和數據以同同等地位存放於存儲器內,並可以按地址訪問;
l 指令和數據均用二進位表示;
l 指令由操作碼、地址碼兩大部分組成,操作碼用來表示操作的性質,地址碼用來表示操作數在存儲器中的位置;
l 指令在存儲器中順序存放,通常自動順序取出執行;
l 機器以運算器為中心(原始馮•諾依曼機)。
\7. 解釋下列概念:
主機、CPU、主存、存儲單元、存儲元件、存儲基元、存儲元、存儲字、存儲字長、存儲容量、機器字長、指令字長。
解:P9-10
主機:是電腦硬體的主體部分,由CPU和主存儲器MM合成為主機。
CPU:中央處理器,是電腦硬體的核心部件,由運算器和控制器組成;(早期的運算器和控制器不在同一晶片上,現在的CPU內除含有運算器和控制器外還集成了CACHE)。
主存:電腦中存放正在運行的程式和數據的存儲器,為電腦的主要工作存儲器,可隨機存取;由存儲體、各種邏輯部件及控制電路組成。
存儲單元:可存放一個機器字並具有特定存儲地址的存儲單位。
存儲元件:存儲一位二進位資訊的物理元件,是存儲器中最小的存儲單位,又叫存儲基元或存儲元,不能單獨存取。
存儲字:一個存儲單元所存二進位程式碼的邏輯單位。
存儲字長:一個存儲單元所存二進位程式碼的位數。
存儲容量:存儲器中可存二進位程式碼的總量;(通常主、輔存容量分開描述)。
機器字長:指CPU一次能處理的二進位數據的位數,通常與CPU的暫存器位數有關。
指令字長:一條指令的二進位程式碼位數。
\8. 解釋下列英文縮寫的中文含義:
CPU、PC、IR、CU、ALU、ACC、MQ、X、MAR、MDR、I/O、MIPS、CPI、FLOPS
解:全面的回答應分英文全稱、中文名、功能三部分。
CPU:Central Processing Unit,中央處理機(器),是電腦硬體的核心部件,主要由運算器和控制器組成。
PC:Program Counter,程式計數器,其功能是存放當前欲執行指令的地址,並可自動計數形成下一條指令地址。
IR:Instruction Register,指令暫存器,其功能是存放當前正在執行的指令。
CU:Control Unit,控制單元(部件),為控制器的核心部件,其功能是產生微操作命令序列。
ALU:Arithmetic Logic Unit,算術邏輯運算單元,為運算器的核心部件,其功能是進行算術、邏輯運算。
ACC:Accumulator,累加器,是運算器中既能存放運算前的操作數,又能存放運算結果的暫存器。
MQ:Multiplier-Quotient Register,乘商暫存器,乘法運算時存放乘數、除法時存放商的暫存器。
X:此字母沒有專指的縮寫含義,可以用作任一部件名,在此表示操作數暫存器,即運算器中工作暫存器之一,用來存放操作數;
MAR:Memory Address Register,存儲器地址暫存器,在主存中用來存放欲訪問的存儲單元的地址。
MDR:Memory Data Register,存儲器數據緩衝暫存器,在主存中用來存放從某單元讀出、或要寫入某存儲單元的數據。
I/O:Input/Output equipment,輸入/輸出設備,為輸入設備和輸出設備的總稱,用於電腦內部和外界資訊的轉換與傳送。
MIPS:Million Instruction Per Second,每秒執行百萬條指令數,為電腦運算速度指標的一種計量單位。
\9. 畫出主機框圖,分別以存數指令「STA M」和加法指令「ADD M」(M均為主存地址)為例,在圖中按序標出完成該指令(包括取指令階段)的資訊流程(如→①)。假設主存容量為256M*32位,在指令字長、存儲字長、機器字長相等的條件下,指出圖中各暫存器的位數。
解:主機框圖如P13圖1.11所示。
(1)STA M指令:PC→MAR,MAR→MM,MM→MDR,MDR→IR,
OP(IR) →CU,Ad(IR) →MAR,ACC→MDR,MAR→MM,WR
(2)ADD M指令:PC→MAR,MAR→MM,MM→MDR,MDR→IR,
OP(IR) →CU,Ad(IR) →MAR,RD,MM→MDR,MDR→X,ADD,ALU→ACC,ACC→MDR,WR
假設主存容量256M*32位,在指令字長、存儲字長、機器字長相等的條件下,ACC、X、IR、MDR暫存器均為32位,PC和MAR暫存器均為28位。
\11. 指令和數據都存於存儲器中,電腦如何區分它們?
解:電腦區分指令和數據有以下2種方法:
l 通過不同的時間段來區分指令和數據,即在取指令階段(或取指微程式)取出的為指令,在執行指令階段(或相應微程式)取出的即為數據。
l 通過地址來源區分,由PC提供存儲單元地址的取出的是指令,由指令地址碼部分提供存儲單元地址的取出的是操作數。
第3章 系統匯流排
\1. 什麼是匯流排?匯流排傳輸有何特點?為了減輕匯流排負載,匯流排上的部件應具備什麼特點?
答:P41.匯流排是多個部件共享的傳輸部件。
匯流排傳輸的特點是:某一時刻只能有一路資訊在匯流排上傳輸,即分時使用。
為了減輕匯流排負載,匯流排上的部件應通過三態驅動緩衝電路與匯流排連通。
\4. 為什麼要設置匯流排判優控制?常見的集中式匯流排控制有幾種?各有何特點?哪種方式響應時間最快?哪種方式對電路故障最敏感?
答:匯流排判優控制解決多個部件同時申請匯流排時的使用權分配問題;
常見的集中式匯流排控制有三種:鏈式查詢、計數器定時查詢、獨立請求;
特點:鏈式查詢方式連線簡單,易於擴充,對電路故障最敏感;計數器定時查詢方式優先順序設置較靈活,對故障不敏感,連線及控制過程較複雜;獨立請求方式速度最快,但硬體器件用量大,連線多,成本較高。
\5. 解釋下列概念:匯流排寬度、匯流排頻寬、匯流排復用、匯流排的主設備(或主模組)、匯流排的從設備(或從模組)、匯流排的傳輸周期和匯流排的通訊控制。
答:P46。
匯流排寬度:通常指數據匯流排的根數;
匯流排頻寬:匯流排的數據傳輸率,指單位時間內匯流排上傳輸數據的位數;
匯流排復用:指同一條訊號線可以分時傳輸不同的訊號。
匯流排的主設備(主模組):指一次匯流排傳輸期間,擁有匯流排控制權的設備(模組);
匯流排的從設備(從模組):指一次匯流排傳輸期間,配合主設備完成數據傳輸的設備(模組),它只能被動接受主設備發來的命令;
匯流排的傳輸周期:指匯流排完成一次完整而可靠的傳輸所需時間;
匯流排的通訊控制:指匯流排傳送過程中雙方的時間配合方式。
\6. 比較同步通訊和非同步通訊。
答:同步通訊:指由統一時鐘控制的通訊,控制方式簡單,靈活性差,當系統中各部件工作速度差異較大時,匯流排工作效率明顯下降。適合於速度差別不大的場合。
非同步通訊:指沒有統一時鐘控制的通訊,部件間採用應答方式進行聯繫,控制方式較同步複雜,靈活性高,當系統中各部件工作速度差異較大時,有利於提高匯流排工作效率。
\7. 畫圖說明非同步通訊中請求與回答有幾種互鎖關係
1)不互鎖方式:
主模組發出請求請求訊號後,不必等待從模組的回答訊號,而是經過一段時間,確認從模組已收到請求訊號後,便撤銷其請求訊號;從模組接收請求訊號後,在條件允許時發出回答訊號,並且經過一段時間(這段時間的設置對不同設備而言是不同的)確認主模組已收到回答訊號後,自動撤銷回答訊號。
2)半互鎖方式:
主模組發出請求訊號,必須待接到從模組的回答訊號後再撤銷其請求訊號,有互鎖關係;而從模組在接到請求訊號後發出回答訊號,但不必等待獲知主模組的請求訊號已經撤銷,而是隔一段時間後自動撤銷其回答訊號,無互鎖關係。由於一方存在互鎖關係,一方不存在互鎖關係,故稱為半互鎖方式。
3)全互鎖方式:
主模組發出請求訊號後,必須待從模組回答後再撤銷其請求訊號;從模組發出回答訊號後,必須待獲知主模組請求訊號已撤銷後,再撤回其回答訊號。雙方存在互鎖關係,故稱為全互鎖方式。
\8. 為什麼說半同步通訊同時保留了同步通訊和非同步通訊的特點?
答:半同步通訊既能像同步通訊那樣由統一時鐘控制,又能像非同步通訊那樣允許傳輸時間不一致,因此工作效率介於兩者之間。
3.14 設匯流排的時鐘頻率為8MHz,一個匯流排周期等於一個時鐘周期。如果一個匯流排周期中並行傳送16位數據,試問匯流排的頻寬是多少?
解;匯流排寬度 = 16位/8 =2B 匯流排頻寬 = 8MHz×2B =16MB/s
3.15 在一個32位的匯流排系統中,匯流排的時鐘頻率為66MHz,假設匯流排最短傳輸周期為4個時鐘周期,試計算匯流排的最大數據傳輸率。若想提高數據傳輸率,可採取什麼措施?
解法1: 匯流排寬度 =32位/8 =4B 時鐘周期 =1/ 66MHz =0.015µs
匯流排最短傳輸周期 =0.015µs×4 =0.06µs
匯流排最大數據傳輸率 = 4B/0.06µs =66.67MB/s
解法2: 匯流排工作頻率 = 66MHz/4 =16.5MHz 匯流排最大數據傳輸率=16.5MHz×4B =66MB/s
若想提高匯流排的數據傳輸率,可提高匯流排的時鐘頻率,或減少匯流排周期中的時鐘個數,或增加匯流排寬度。
3.16 在非同步串列傳送系統中,字元格式為:1個起始位、8個數據位、1個校驗位、2個終止位。若要求每秒傳送120個字元,試求傳送的波特率和比特率。
解: 一幀 =1+8+1+2 =12位 波特率 =120幀/秒×12位=1440波特
比特率 = 1440波特×(8/12)=960bps或:比特率 = 120幀/秒×8 =960bps
第4章 存儲器
\1. 解釋概念:主存、輔存、Cache、RAM、SRAM、DRAM、ROM、PROM、EPROM、EEPROM、CDROM、Flash Memory。
答:主存:主存儲器,用於存放正在執行的程式和數據。CPU可以直接進行隨機讀寫,訪問速度較高。
輔存:輔助存儲器,用於存放當前暫不執行的程式和數據,以及一些需要永久保存的資訊。
Cache:高速緩衝存儲器,介於CPU和主存之間,用於解決CPU和主存之間速度不匹配問題。
RAM:半導體隨機存取存儲器,主要用作電腦中的主存。
SRAM:靜態半導體隨機存取存儲器。
DRAM:動態半導體隨機存取存儲器。
ROM:掩膜式半導體只讀存儲器。由晶片製造商在製造時寫入內容,以後只能讀出而不能寫入。
PROM:可編程只讀存儲器,由用戶根據需要確定寫入內容,只能寫入一次。
EPROM:紫外線擦寫可編程只讀存儲器。需要修改內容時,現將其全部內容擦除,然後再編程。擦除依靠紫外線使浮動柵極上的電荷泄露而實現。
EEPROM:電擦寫可編程只讀存儲器。
CDROM:只讀型光碟。
Flash Memory:閃速存儲器。或稱快擦型存儲器。
\3. 存儲器的層次結構主要體現在什麼地方?為什麼要分這些層次?電腦如何管理這些層次?
答:存儲器的層次結構主要體現在Cache-主存和主存-輔存這兩個存儲層次上。
Cache-主存層次在存儲系統中主要對CPU訪存起加速作用,即從整體運行的效果分析,CPU訪存速度加快,接近於Cache的速度,而定址空間和位價卻接近於主存。
主存-輔存層次在存儲系統中主要起擴容作用,即從程式設計師的角度看,他所使用的存儲器其容量和位價接近於輔存,而速度接近於主存。
綜合上述兩個存儲層次的作用,從整個存儲系統來看,就達到了速度快、容量大、位價低的優化效果。
主存與CACHE之間的資訊調度功能全部由硬體自動完成。而主存與輔存層次的調度目前廣泛採用虛擬存儲技術實現,即將主存與輔存的一部分通過軟硬結合的技術組成虛擬存儲器,程式設計師可使用這個比主存實際空間(物理地址空間)大得多的虛擬地址空間(邏輯地址空間)編程,當程式運行時,再由軟、硬體自動配合完成虛擬地址空間與主存實際物理空間的轉換。因此,這兩個層次上的調度或轉換操作對於程式設計師來說都是透明的。
\4. 說明存取周期和存取時間的區別。
解:存取周期和存取時間的主要區別是:存取時間僅為完成一次操作的時間,而存取周期不僅包含操作時間,還包含操作後線路的恢復時間。即:
存取周期 = 存取時間 + 恢復時間
\5. 什麼是存儲器的頻寬?若存儲器的數據匯流排寬度為32位,存取周期為200ns,則存儲器的頻寬是多少?
解:存儲器的頻寬指單位時間內從存儲器進出資訊的最大數量。
存儲器頻寬 = 1/200ns ×32位 = 160M位/秒 = 20MB/秒 = 5M字/秒
注意:字長32位,不是16位。(註:1ns=10-9s)
\6. 某機字長為32位,其存儲容量是64KB,按字編址它的定址範圍是多少?若主存以位元組編址,試畫出主存字地址和位元組地址的分配情況。
解:存儲容量是64KB時,按位元組編址的定址範圍就是64K,
如按字編址,其定址範圍為:64K / (32/8)= 16K
主存字地址和位元組地址的分配情況:如圖
\7. 一個容量為16K×32位的存儲器,其地址線和數據線的總和是多少?當選用下列不同規格的存儲晶片時,各需要多少片?
1K×4位,2K×8位,4K×4位,16K×1位,4K×8位,8K×8位
解:地址線和數據線的總和 = 14 + 32 = 46根;
選擇不同的晶片時,各需要的片數為:
1K×4:(16K×32) / (1K×4) = 16×8 = 128片
2K×8:(16K×32) / (2K×8) = 8×4 = 32片
4K×4:(16K×32) / (4K×4) = 4×8 = 32片
16K×1:(16K×32)/ (16K×1) = 1×32 = 32片
4K×8:(16K×32)/ (4K×8) = 4×4 = 16片
8K×8:(16K×32) / (8K×8) = 2×4 = 8片
\9. 什麼叫刷新?為什麼要刷新?說明刷新有幾種方法。
解:刷新:對DRAM定期進行的全部重寫過程;
刷新原因:因電容泄漏而引起的DRAM所存資訊的衰減需要及時補充,因此安排了定期刷新操作;
常用的刷新方法有三種:集中式、分散式、非同步式。
集中式:在最大刷新間隔時間內,集中安排一段時間進行刷新,存在CPU訪存死時間。
分散式:在每個讀/寫周期之後插入一個刷新周期,無CPU訪存死時間。
非同步式:是集中式和分散式的折衷。
\10. 半導體存儲器晶片的解碼驅動方式有幾種?
解:半導體存儲器晶片的解碼驅動方式有兩種:線選法和重合法。
線選法:地址解碼訊號只選中同一個字的所有位,結構簡單,費器材;
重合法:地址分行、列兩部分解碼,行、列解碼線的交叉點即為所選單元。這種方法通過行、列解碼訊號的重合來選址,也稱矩陣解碼。可大大節省器材用量,是最常用的解碼驅動方式。
\11. 一個8K×8位的動態RAM晶片,其內部結構排列成256×256形式,存取周期為0.1μs。試問採用集中刷新、分散刷新和非同步刷新三種方式的刷新間隔各為多少?
解:採用分散刷新方式刷新間隔為:2ms,其中刷新死時間為:256×0.1μs=25.6μs
採用分散刷新方式刷新間隔為:256×(0.1μs+×0.1μs)=51.2μs
採用非同步刷新方式刷新間隔為:2ms
\15. 設CPU共有16根地址線,8根數據線,並用(低電平有效)作訪存控制訊號,
作讀寫命令訊號(高電平為讀,低電平為寫)。現有下列存儲晶片:ROM(2K×8位,4K×4位,8K×8位),RAM(1K×4位,2K×8位,4K×8位),及74138解碼器和其他閘電路(閘電路自定)。試從上述規格中選用合適晶片,畫出CPU和存儲晶片的連接圖。要求:
(1)最小4K地址為系統程式區,4096~16383地址範圍為用戶程式區。
(2)指出選用的存儲晶片類型及數量。
(3)詳細畫出片選邏輯。
解:(1)地址空間分配圖:
系統程式區(ROM共4KB):0000H-0FFFH
用戶程式區(RAM共12KB):1000H-3FFFH
(2)選片:ROM:選擇4K×4位晶片2片,位並聯
RAM:選擇4K×8位晶片3片,字串聯(RAM1地址範圍為:1000H-1FFFH,RAM2地址範圍為2000H-2FFFH, RAM3地址範圍為:3000H-3FFFH)
(3)各晶片二進位地址分配如下:
A15 | A14 | A13 | A12 | A11 | A10 | A9 | A8 | A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ROM1,2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |
RAM1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |
RAM2 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |
RAM3 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
CPU和存儲器連接邏輯圖及片選邏輯如下圖(3)所示:
圖(3)
\17. 寫出1100、1101、1110、1111對應的漢明碼。
解:有效資訊均為n=4位,假設有效資訊用b4b3b2b1表示
校驗位位數k=3位,(2k>=n+k+1)
設校驗位分別為c1、c2、c3,則漢明碼共4+3=7位,即:c1c2b4c3b3b2b1
校驗位在漢明碼中分別處於第1、2、4位
c1=b4⊕b3⊕b1
c2=b4⊕b2⊕b1
c3=b3⊕b2⊕b1
當有效資訊為1100時,c3c2c1=110,漢明碼為0111100。
當有效資訊為1101時,c3c2c1=001,漢明碼為1010101。
當有效資訊為1110時,c3c2c1=000,漢明碼為0010110。
當有效資訊為1111時,c3c2c1=111,漢明碼為1111111。
\18. 已知收到的漢明碼(按配偶原則配置)為1100100、1100111、1100000、1100001,檢查上述程式碼是否出錯?第幾位出錯?
解:假設接收到的漢明碼為:c1』c2』b4』c3』b3』b2』b1』
糾錯過程如下:
P1=c1』⊕b4』⊕b3』⊕b1』
P2=c2』⊕b4』⊕b2』⊕b1』
P3=c3』⊕b3』⊕b2』⊕b1』
如果收到的漢明碼為1100100,則p3p2p1=011,說明程式碼有錯,第3位(b4』)出錯,有效資訊為:1100
如果收到的漢明碼為1100111,則p3p2p1=111,說明程式碼有錯,第7位(b1』)出錯,有效資訊為:0110
如果收到的漢明碼為1100000,則p3p2p1=110,說明程式碼有錯,第6位(b2』)出錯,有效資訊為:0010
如果收到的漢明碼為1100001,則p3p2p1=001,說明程式碼有錯,第1位(c1』)出錯,有效資訊為:0001
\24. 一個4體低位交叉的存儲器,假設存儲周期為T,CPU每隔1/4存取周期啟動一個存儲體,試問依次訪問64個字需多少個存取周期?
解:4體低位交叉的存儲器的匯流排傳輸周期為τ,τ=T/4,依次訪問64個字所需時間為:
t=T+(64-1) τ=T+63T/4=16.75T
\25. 什麼是「程式訪問的局部性」?存儲系統中哪一級採用了程式訪問的局部性原理?
答:程式運行的局部性原理指:在一小段時間內,最近被訪問過的程式和數據很可能再次被訪問;在空間上,這些被訪問的程式和數據往往集中在一小片存儲區;在訪問順序上,指令順序執行比轉移執行的可能性大 (大約 5:1 )。存儲系統中Cache-主存層次和主存-輔存層次均採用了程式訪問的局部性原理。
\28. 設主存容量為256K字,Cache容量為2K字,塊長為4。
(1)設計Cache地址格式,Cache中可裝入多少塊數據?
(2)在直接映射方式下,設計主存地址格式。
(3)在四路組相聯映射方式下,設計主存地址格式。
(4)在全相聯映射方式下,設計主存地址格式。
(5)若存儲字長為32位,存儲器按位元組定址,寫出上述三種映射方式下主存的地址格式。
解:(1)Cache容量為2K字,塊長為4,Cache共有2K/4=211/22=29=512塊,
Cache字地址9位,字塊內地址為2位
因此,Cache地址格式設計如下:
Cache字塊地址(9位) | 字塊內地址(2位) |
---|---|
(2)主存容量為256K字=218字,主存地址共18位,共分256K/4=216塊,
主存字塊標記為18-9-2=7位。
直接映射方式下主存地址格式如下:
主存字塊標記(7位) | Cache字塊地址(9位) | 字塊內地址(2位) |
---|---|---|
(3)根據四路組相聯的條件,一組內共有4塊,得Cache共分為512/4=128=27組,
主存字塊標記為18-7-2=9位,主存地址格式設計如下:
主存字塊標記(9位) | 組地址(7位) | 字塊內地址(2位) |
---|---|---|
(4)在全相聯映射方式下,主存字塊標記為18-2=16位,其地址格式如下:
主存字塊標記(16位) | 字塊內地址(2位) |
---|---|
(5)若存儲字長為32位,存儲器按位元組定址,則主存容量為256K*32/4=221B,
Cache容量為2K32/4=214B,塊長為432/4=32B=25B,字塊內地址為5位,
在直接映射方式下,主存字塊標記為21-9-5=7位,主存地址格式為:
主存字塊標記(7位) | Cache字塊地址(9位) | 字塊內地址(5位) |
---|---|---|
在四路組相聯映射方式下,主存字塊標記為21-7-5=9位,主存地址格式為:
主存字塊標記(9位) | 組地址(7位) | 字塊內地址(5位) |
---|---|---|
在全相聯映射方式下,主存字塊標記為21-5=16位,主存地址格式為:
主存字塊標記(16位) | 字塊內地址(5位) |
---|---|
\29. 假設CPU執行某段程式時共訪問Cache命中4800次,訪問主存200次,已知Cache的存取周期為30ns,主存的存取周期為150ns,求Cache的命中率以及Cache-主存系統的平均訪問時間和效率,試問該系統的性能提高了多少倍?
解:Cache被訪問命中率為:4800/(4800+200)=24/25=96%
則Cache-主存系統的平均訪問時間為:ta=0.9630ns+(1-0.96)150ns=34.8ns
Cache-主存系統的訪問效率為:e=tc/ta100%=30/34.8100%=86.2%
性能為原來的150ns/34.8ns=4.31倍,即提高了3.31倍。
\30. 一個組相連映射的CACHE由64塊組成,每組內包含4塊。主存包含4096塊,每塊由128字組成,訪存地址為字地址。試問主存和高速存儲器的地址各為幾位?畫出主存地址格式。
解:cache組數:64/4=16 ,Cache容量為:64*128=213字,cache地址13位
主存共分4096/16=256區,每區16塊
主存容量為:4096*128=219字,主存地址19位,地址格式如下:
主存字塊標記(8位) | 組地址(4位) | 字塊內地址(7位) |
---|---|---|
\32. 設某機主存容量為4MB,Cache容量為16KB,每字塊有8個字,每字32位,設計一個四路組相聯映射(即Cache每組內共有4個字塊)的Cache組織。
(1)畫出主存地址欄位中各段的位數。
(2)設Cache的初態為空,CPU依次從主存第0,1,2,…,89號單元讀出90個字(主存一次讀出一個字),並重複按此次序讀8次,問命中率是多少?
(3)若Cache的速度是主存的6倍,試問有Cache和無Cache相比,速度約提高多少倍?
解:(1)根據每字塊有8個字,每字32位(4位元組),得出主存地址欄位中字塊內地址為3+2=5位。
根據Cache容量為16KB=214B,字塊大小為8*32/8=32=25B,得Cache地址共14位,Cache共有214-5=29塊。
根據四路組相聯映射,Cache共分為29/22=27組。
根據主存容量為4MB=222B,得主存地址共22位,主存字塊標記為22-7-5=10位,故主存地址格式為:
主存字塊標記(10位) | 組地址(7位) | 字塊內地址(5位) |
---|---|---|
(2)由於每個字塊中有8個字,而且初態為空,因此CPU讀第0號單元時,未命中,必須訪問主存,同時將該字所在的主存塊調入Cache第0組中的任一塊內,接著CPU讀第1~7號單元時均命中。同理,CPU讀第8,16,…,88號時均未命中。可見,CPU在連續讀90個字中共有12次未命中,而後8次循環讀90個字全部命中,命中率為:
(3)設Cache的周期為t,則主存周期為6t,沒有Cache的訪問時間為6t908,有Cache的訪問時間為t(908-12)+6t12,則有Cache和無Cache相比,速度提高的倍數為:
第5章 輸入輸出系統
\1. I/O有哪些編址方式?各有何特點?
解:常用的I/O編址方式有兩種: I/O與記憶體統一編址和I/O獨立編址。
特點:I/O與記憶體統一編址方式的I/O地址採用與主存單元地址完全一樣的格式,I/O設備和主存佔用同一個地址空間,CPU可像訪問主存一樣訪問I/O設備,不需要安排專門的I/O指令。
I/O獨立編址方式時機器為I/O設備專門安排一套完全不同於主存地址格式的地址編碼,此時I/O地址與主存地址是兩個獨立的空間,CPU需要通過專門的I/O指令來訪問I/O地址空間。
3.I/O設備與主機交換資訊時,有哪幾種控制方式?簡述他們的特點
答: (1)程式查詢方式。其特點是主機與I/O串列工作。CPU啟動I/O後,時刻查詢I/O是否準備好,若設備準備就緒,CPU便轉入處理I/O與主機間傳送資訊的程式;若設備未做好準備,則CPU反覆查詢,直到I/O準備就緒為止。可見這種方式CPU效率很低
(2)程式中斷方式。其特點是主機與I/O並行工作。CPU啟動I/O後,不必時刻查詢I/O是否準備好,而是繼續執行程式,當I/O準備就緒時。向CPU發中斷請求訊號,CPU在適當時候響應I/O的中斷請求,暫停現行程式為I/O服務。這種方式消除了「踏步」現象,提高了CPU效率,(特點為:CPU與設備並行工作,傳送與主程式串列工作)
(3)DMA方式。其特點是主機與I/O並行工作,主存和I/O之間有一條直接數據通路。CPU啟動I/O後,不必查詢I/O是否準備好,當I/O準備就緒後,發出DMA請求,此時CPU不參與I/O和主存間的資訊交換,只是把外部匯流排(地址線、數據線以及有關的控制線)的使用權暫時賦予DMA,仍然可以完成自身內部的操作(如加法、位移等),故不必中斷現行程式,只需暫停一個存取周期訪存(即周期挪用),CPU的效率高,(特點為:CPU與設備並行工作,傳送與主程式並行工作)
(4)通道方式。通道是一個具有特殊功能的處理器,CPU把部分權力下放給通道,由它實現對外圍設備的統一管理和外圍設備與主存之間的數據交換,大大提高了CPU的效率,但它是以花費更多的硬體為代價。
(5)I/O處理機方式。它是通道方式的進一步發展,CPU將I/O操作及外圍設備的管理權全部交給I/O處理機,其實質是多機系統,因而效率有更大提高
\10. 什麼是I/O介面,與埠有何區別?為什麼要設置I/O介面?I/O介面如何分類?
解:I/O介面一般指CPU和I/O設備間的連接部件,而埠是指I/O介面內CPU能夠訪問的暫存器,埠加上相應的控制邏輯即構成I/O介面。
I/O介面分類方法很多,主要有:
(1)按數據傳送方式分有並行介面和串列介面兩種;
(2)按數據傳送的控制方式分有程式控制介面、程式中斷介面、DMA介面三種。
\12. 結合程式查詢方式的介面電路,說明其工作過程。
解:程式查詢介面工作過程如下(以輸入為例):
1)CPU發I/O地址設備開始工作;地址匯流排®介面®設備選擇器解碼®選中®發SEL訊號; 2)CPU發啟動命令 DBR®開命令接收門; ® D置0,B置1 ® 介面向設備發啟動命令;3)CPU等待,輸入設備讀出數據;4)外設工作完成,B置0,D置1;5)準備就緒訊號®介面®完成訊號®控制匯流排® CPU;6)輸入:CPU通過輸入指令(IN)將DBR中的數據取走。
若為輸出,除數據傳送方向相反以外,其他操作與輸入類似。工作過程如下:
開命令接收門;®選中,發SEL訊號®設備選擇器解碼®介面®地址匯流排®1)CPU發I/O地址 2)輸出: CPU通過輸出指令(OUT)將數據放入介面DBR中;設備開始工作;®介面向設備發啟動命令® D置0,B置1 ® 3)CPU發啟動命令 4)CPU等待,輸出設備將數據從 DBR取走; B置0,D置1;®介面® 5)外設工作完成,完成訊號 CPU,CPU可通過指令再次向介面DBR輸出數據,進行第二次傳送。®控制匯流排®6)準備就緒訊號。
\13. 說明中斷向量地址和入口地址的區別和聯繫。
解:中斷向量地址和入口地址的區別:
向量地址是硬體電路(向量編碼器)產生的中斷源的記憶體地址編號,中斷入口地址是中斷服務程式首址。
中斷向量地址和入口地址的聯繫:
中斷向量地址可理解為中斷服務程式入口地址指示器(入口地址的地址),通過它訪存可獲得中斷服務程式入口地址。 (兩種方法:在向量地址所指單元內放一條JMP指令;主存中設向量地址表。參考8.4.3)
\16. 在什麼條件和什麼時間,CPU可以響應I/O的中斷請求?
解:CPU響應I/O中斷請求的條件和時間是:當中斷允許狀態為1(EINT=1),且至少有一個中斷請求被查到,則在一條指令執行完時,響應中斷。
\28. CPU對DMA請求和中斷請求的響應時間是否一樣?為什麼?
解: CPU對DMA請求和中斷請求的響應時間不一樣,因為兩種方式的交換速度相差很大,因此CPU必須以更短的時間間隔查詢並響應DMA請求。響應中斷請求是在每條指令執行周期結束的時刻,而響應DMA請求是在存取周期結束的時刻。
中斷方式是程式切換,而程式又是由指令組成,所以必須在一條指令執行完畢才能響應中斷請求,而且CPU只有在每條指令執行周期結束的時刻才發出查詢訊號,以獲取中斷請求訊號,若此時條件滿足,便能響應中斷請求。
DMA請求是由DMA介面根據設備的工作狀態向CPU申請佔用匯流排,此時只要匯流排未被CPU佔用,即可立即響應DMA請求;若匯流排正被CPU佔用,則必須等待該存取周期結束時,CPU才交出匯流排的使用權。
\31. 假設某設備向CPU傳送資訊的最高頻率是40 000次/秒,而相應的中斷處理程式其執行時間為40ms,試問該外設是否可用程式中斷方式與主機交換資訊,為什麼?
解:該設備向CPU傳送資訊的時間間隔 =1/40000=0.025×10-3=25 m s < 40ms
則:該外設不能用程式中斷方式與主機交換資訊,因為其中斷處理程式的執行速度比該外設的交換速度慢。
\32. 設磁碟存儲器轉速為3000轉/分,分8個扇區,每扇區存儲1K位元組,主存與磁碟存儲器數據傳送的寬度為16位(即每次傳送16位)。假設一條指令最長執行時間是25ms,是否可採用一條指令執行結束時響應DMA請求的方案,為什麼?若不行,應採取什麼方案?
解:先算出磁碟傳送速度,然後和指令執行速度進行比較得出結論。
道容量= 1K ×8 ×8 位= 8KB = 4K字
數傳率=4K字×3000轉/分=4K字×50轉/秒 =200K字/秒
一個字的傳送時間=1/200K秒» 5ms (註:在此1K=1024,來自數據塊單位縮寫。)
因為5 ms<<25ms,所以不能採用一條指令執行結束響應DMA請求的方案,應採取每個CPU機器周期末查詢及響應DMA請求的方案(通常安排CPU機器周期=MM存取周期)。
第6章 電腦的運算方法
\5. 已知[x]補,求[x]原和x。
[x1]補=1.1100; [x2]補=1.1001; [x3]補=0.1110; [x4]補=1.0000;
[x5]補=1,0101; [x6]補=1,1100; [x7]補=0,0111; [x8]補=1,0000;
解:[x]補與[x]原、x的對應關係如下:
[x]補 | 1.1100 | 1.1001 | 0.1110 | 1.0000 | 1,0101 | 1,1100 | 0,0111 | 1,0000 |
---|---|---|---|---|---|---|---|---|
[x]原 | 1.0100 | 1.0111 | 0.1110 | 無 | 1,1011 | 1,0100 | 0,0111 | 無 |
x | -0.0100 | -0.0111 | 0.1110 | -1 | -1011 | -100 | 0,0111 | -10000 |
\9. 當十六進位數9B和FF分別表示為原碼、補碼、反碼、移碼和無符號數時,所對應的十進位數各為多少(設機器數採用一位符號位)?
解:真值和機器數的對應關係如下:
9BH | 原碼 | 補碼 | 反碼 | 移碼 | 無符號數 |
---|---|---|---|---|---|
對應十進位數 | -27 | -101 | -100 | +27 | 155 |
FFH | 原碼 | 補碼 | 反碼 | 移碼 | 無符號數 |
對應十進位數 | -128 | -1 | -0 | +128 | 256 |
\14. 設浮點數字長為32位,欲表示±6萬間的十進位數,在保證數的最大精度條件下,除階符、數符各取1位外,階碼和尾數各取幾位?按這樣分配,該浮點數溢出的條件是什麼?
解:若要保證數的最大精度,應取階碼的基值=2。
若要表示±6萬間的十進位數,由於32768(215)< 6萬 <65536(216),則:階碼除階符外還應取5位(向上取2的冪)。
故:尾數位數=32-1-1-5=25位
25(32) 該浮點數格式如下:
階符(1位) | 階碼(5位) | 數符(1位) | 尾數(25位) |
---|---|---|---|
按此格式,該浮點數上溢的條件為:階碼³25
\19. 設機器數字長為8位(含1位符號位),用補碼運算規則計算下列各題。
(1)A=9/64, B=-13/32,求A+B。
(2)A=19/32,B=-17/128,求A-B。
(3)A=-3/16,B=9/32,求A+B。
(4)A=-87,B=53,求A-B。
(5)A=115,B=-24,求A+B。
解:(1)A=9/64= 0.001 0010B, B= -13/32= -0.011 0100B
[A]補=0.001 0010, [B]補=1.100 1100
[A+B]補= 0.0010010 + 1.1001100 = 1.1011110 ——無溢出
A+B= -0.010 0010B = -17/64
(2)A=19/32= 0.100 1100B, B= -17/128= -0.001 0001B
[A]補=0.100 1100, [B]補=1.110 1111 , [-B]補=0.001 0001
[A-B]補= 0.1001100 + 0.0010001= 0.1011101 ——無溢出
A-B= 0.101 1101B = 93/128B
(3)A= -3/16= -0.001 1000B, B=9/32= 0.010 0100B
[A]補=1.110 1000, [B]補= 0.010 0100
[A+B]補= 1.1101000 + 0.0100100 = 0.0001100 —— 無溢出
A+B= 0.000 1100B = 3/32
(4) A= -87= -101 0111B, B=53=110 101B
[A]補=1 010 1001, [B]補=0 011 0101, [-B]補=1 100 1011
[A-B]補= 1 0101001 + 1 1001011 = 0 1110100 —— 溢出
(5)A=115= 111 0011B, B= -24= -11 000B
[A]補=0 1110011, [B]補=1,110 1000
[A+B]補= 0 1110011 + 1 1101000 = 0 1011011——無溢出
A+B= 101 1011B = 91
26.按機器補碼浮點運算步驟,計算[x±y]補.
(1)x=2-011× 0.101 100,y=2-010×(-0.011 100);
(2)x=2-011×(-0.100 010),y=2-010×(-0.011 111);
(3)x=2101×(-0.100 101),y=2100×(-0.001 111)。
解:先將x、y轉換成機器數形式:
(1)x=2-011× 0.101 100,y=2-010×(-0.011 100)
[x]補=1,101;0.101 100, [y]補=1,110;1.100 100
[Ex]補=1,101, [y]補=1,110, [Mx]補=0.101 100, [My]補=1.100 100
1)對階:
[DE]補=[Ex]補+[-Ey]補 = 11,101+ 00,010=11,111 < 0,
應Ex向Ey對齊,則:[Ex]補+1=11,101+00,001=11,110 = [Ey]補
[x]補=1,110;0.010 110
2)尾數運算:
[Mx]補+[My]補= 0.010 110 + 11.100 100=11.111010
[Mx]補+[-My]補=0.010 110 + 00.011100= 00.110 010
3)結果規格化:
[x+y]補=11,110;11.111 010 = 11,011;11.010 000 (尾數左規3次,階碼減3)
[x-y]補=11,110;00.110 010, 已是規格化數。
4)舍入:無
5)溢出:無
則:x+y=2-101×(-0.110 000)
x-y =2-010×0.110 010
(2)x=2-011×(-0.100010),y=2-010×(-0.011111)
[x]補=1,101;1.011 110, [y]補=1,110;1.100 001
1)對階:過程同(1)的1),則
[x]補=1,110;1.101 111
2)尾數運算:
[Mx]補+[My]補= 11.101111 + 11. 100001 = 11.010000
[Mx]補+[-My]補= 11.101111 + 00.011111 = 00.001110
3)結果規格化:
[x+y]補=11,110;11.010 000,已是規格化數
[x-y]補=11,110;00.001 110 =11,100;00.111000 (尾數左規2次,階碼減2)
4)舍入:無
5)溢出:無
則:x+y=2-010×(-0.110 000)
x-y =2-100×0.111 000
(3)x=2101×(-0.100 101),y=2100×(-0.001 111)
[x]補=0,101;1.011 011, [y]補=0,100;1.110 001
1)對階:
[DE]補=00,101+11,100=00,001 >0,應Ey向Ex對齊,則:
[Ey]補+1=00,100+00,001=00,101=[Ex]補
[y]補=0,101;1.111 000(1)
2)尾數運算:
[Mx]補+[My]補= 11.011011+ 11.111000(1)= 11.010011(1)
[Mx]補+[-My]補= 11.011011+ 00.000111(1)= 11.100010(1)
3)結果規格化:
[x+y]補=00,101;11.010 011(1),已是規格化數
[x-y]補=00,101;11.100 010(1)=00,100;11.000 101 (尾數左規1次,階碼減1)
4)舍入:
[x+y]補=00,101;11.010 011(舍)
[x-y]補 不變
5)溢出:無
則:x+y=2101×(-0.101 101)
x-y =2100×(-0.111 011)
第7章 指令系統
1.什麼叫機器指令?什麼叫指令系統?為什麼說指令系統與機器的主要功能以及與硬體結構之間存在著密切的關係?
答:參考P300。
3.什麼是指令字長、機器字長和存儲字長?
答:第一章7題
6.對於二地址指令而言,操作數的物理地址可安排在什麼地方?舉例說明。
答:對於二地址指令而言,操作數的物理地址可安排在暫存器內、指令中或記憶體單元內等。
\8. 某機指令字長16位,每個操作數的地址碼為6位,設操作碼長度固定,指令分為零地址、一地址和二地址三種格式。若零地址指令有M條,一地址指令有N種,則二地址指令最多有幾種?若操作碼位數可變,則二地址指令最多允許有幾種?
解:1)若採用定長操作碼時,二地址指令格式如下:
OP(4位) | A1(6位) | A2(6位) |
---|---|---|
設二地址指令有K種,則:K=24-M-N
當M=1(最小值),N=1(最小值)時,二地址指令最多有:Kmax=16-1-1=14種
2)若採用變長操作碼時,二地址指令格式仍如1)所示,但操作碼長度可隨地址碼的個數而變。此時,K= 24 -(N/26 + M/212 );
當(N/26 + M/212 )£1時(N/26 + M/212 向上取整),K最大,則二地址指令最多有:
Kmax=16-1=15種(只留一種編碼作擴展標誌用。)
\16. 某機主存容量為4M´16位,且存儲字長等於指令字長,若該機指令系統可完成108種操作,操作碼位數固定,且具有直接、間接、變址、基址、相對、立即等六種定址方式,試回答:(1)畫出一地址指令格式並指出各欄位的作用;
(2)該指令直接定址的最大範圍;
(3)一次間址和多次間址的定址範圍;
(4)立即數的範圍(十進位表示);
(5)相對定址的位移量(十進位表示);
(6)上述六種定址方式的指令哪一種執行時間最短?哪一種最長?為什麼?哪一種便於程式浮動?哪一種最適合處理數組問題?
(7)如何修改指令格式,使指令的定址範圍可擴大到4M?
(8)為使一條轉移指令能轉移到主存的任一位置,可採取什麼措施?簡要說明之。
解:(1)單字長一地址指令格式:
OP(7位) | M(3位) | A(6位) |
---|---|---|
OP為操作碼欄位,共7位,可反映108種操作;
M為定址方式欄位,共3位,可反映6種定址操作;
A為地址碼欄位,共16-7-3=6位。
(2)直接定址的最大範圍為26=64。
(3)由於存儲字長為16位,故一次間址的定址範圍為216;若多次間址,需用存儲字的最高位來區別是否繼續間接定址,故定址範圍為215。
(4)立即數的範圍為-32——31(有符號數),或0——63(無符號數)。
(5)相對定址的位移量為-32——31。
(6)上述六種定址方式中,因立即數由指令直接給出,故立即定址的指令執行時間最短。間接定址在指令的執行階段要多次訪存(一次間接定址要兩次訪存,多次間接定址要多次訪存),故執行時間最長。變址定址由於變址暫存器的內容由用戶給定,而且在程式的執行過程中允許用戶修改,而其形式地址始終不變,故變址定址的指令便於用戶編製處理數組問題的程式。相對定址操作數的有效地址只與當前指令地址相差一定的位移量,與直接定址相比,更有利於程式浮動。
(7)方案一:為使指令定址範圍可擴大到4M,需要有效地址22位,此時可將單字長一地址指令的格式改為雙字長,如下圖示:
OP(7位) | MOD(3位) | A(高6位) |
---|---|---|
A(低16位) |
方案二:如果仍採用單字長指令(16位)格式,為使指令定址範圍擴大到4M,可通過段定址方案實現。安排如下:
硬體設段暫存器DS(16位),用來存放段地址。在完成指令定址方式所規定的定址操作後,得有效地址EA(6位),再由硬體自動完成段定址,最後得22位物理地址。 即:物理地址=(DS)´26 + EA
註:段定址方式由硬體隱含實現。在編程指定的定址過程完成、EA產生之後由硬體自動完成,對用戶是透明的。
方案三:在採用單字長指令(16位)格式時,還可通過頁面定址方案使指令定址範圍擴大到4M。安排如下:
硬體設頁面暫存器PR(16位),用來存放頁面地址。指令定址方式中增設頁面定址。當需要使指令定址範圍擴大到4M時,編程選擇頁面定址方式,則:EA =(PR)‖A (有效地址=頁面地址「拼接」6位形式地址),這樣得到22位有效地址。
(8)為使一條轉移指令能轉移到主存的任一位置,定址範圍須達到4M,除了採用(7) 方案一中的雙字長一地址指令的格式外,還可配置22位的基址暫存器或22位的變址暫存器,使EA = (BR) + A (BR為22位的基址暫存器)或EA =(IX)+ A(IX為22位的變址暫存器),便可訪問4M存儲空間。還可以通過16位的基址暫存器左移6位再和形式地址A相加,也可達到同樣的效果。
總之,不論採取何種方式,最終得到的實際地址應是22位。
第8章 CPU的結構和功能
\1. CPU有哪些功能?畫出其結構框圖並簡要說明各個部件的作用。
答:參考P328和圖8.2。
\2. 什麼是指令周期?指令周期是否有一個固定值?為什麼?
解:指令周期是指取出並執行完一條指令所需的時間。
由於電腦中各種指令執行所需的時間差異很大,因此為了提高CPU運行效率,即使在同步控制的機器中,不同指令的指令周期長度都是不一致的,也就是說指令周期對於不同的指令來說不是一個固定值。
\3. 畫出指令周期的流程圖,分析說明圖中每個子周期的作用。
答:參看P343及圖8.8。
\5. 中斷周期前是什麼階段?中斷周期後又是什麼階段?在中斷周期CPU應完成什麼操作?
答:中斷周期前是執行周期,中斷周期後是取指周期。在中斷周期,CPU應完成保存斷點、將中斷向量送PC和關中斷等工作。
\17. 在中斷系統中INTR、INT、EINT三個觸發器各有何作用?
解:INTR——中斷請求觸發器,用來登記中斷源發出的隨機性中斷請求訊號,以便為CPU查詢中斷及中斷排隊判優線路提供穩定的中斷請求訊號。
EINT——中斷允許觸發器,CPU中的中斷總開關。當EINT=1時,表示允許中斷(開中斷),當EINT=0時,表示禁止中斷(關中斷)。其狀態可由開、關中斷等指令設置。
INT——中斷標記觸發器,控制器時序系統中周期狀態分配電路的一部分,表示中斷周期標記。當INT=1時,進入中斷周期,執行中斷隱指令的操作。
\24. 現有A、B、C、D四個中斷源,其優先順序由高向低按A、B、C、D順序排列。若中斷服務程式的執行時間為20µs,請根據下圖所示時間軸給出的中斷源請求中斷的時刻,畫出CPU執行程式的軌跡。
解:A、B、C、D的響優先順序即處理優先順序。CPU執行程式的軌跡圖如下:
\25. 某機有五個中斷源L0、L1、L2、 L3、L4,按中斷響應的優先次序由高向低排序為L0® L1®L2®L3®L4,根據下示格式,現要求中斷處理次序改為L1®L4®L2®L0®L3,根據下面的格式,寫出各中斷源的屏蔽字。
解:各中斷源屏蔽狀態見下表:
中斷源 | 屏蔽字 | ||||
---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | |
I0 | 1 | 0 | 0 | 1 | 0 |
I1 | 1 | 1 | 1 | 1 | 1 |
I2 | 1 | 0 | 1 | 1 | 0 |
I3 | 0 | 0 | 0 | 1 | 0 |
I4 | 1 | 0 | 1 | 1 | 1 |
表中:設屏蔽位=1,表示屏蔽;屏蔽位=0,表示中斷開放。
第9章 控制單元的功能
\3. 什麼是指令周期、機器周期和時鐘周期?三者有何關係?
答:CPU每取出並執行一條指令所需的全部時間叫指令周期;
機器周期是在同步控制的機器中,執行指令周期中一步相對完整的操作(指令步)所需時間,通常安排機器周期長度等於主存周期;
時鐘周期是指電腦主時鐘的周期時間,它是電腦運行時最基本的時序單位,對應完成一個微操作所需時間,通常時鐘周期等於電腦主頻的倒數。
\4. 能不能說機器的主頻越快,機器的速度就越快,為什麼?
解:不能說機器的主頻越快,機器的速度就越快。因為機器的速度不僅與主頻有關,還與數據通路結構、時序分配方案、ALU運算能力、指令功能強弱等多種因素有關,要看綜合效果。
\5. 設機器A的主頻為8MHz,機器周期含4個時鐘周期,且該機的平均指令執行速度是0.4MIPS,試求該機的平均指令周期和機器周期,每個指令周期中含幾個機器周期?如果機器B的主頻為12MHz,且機器周期也含4個時鐘周期,試問B機的平均指令執行速度為多少MIPS?
解:先通過A機的平均指令執行速度求出其平均指令周期,再通過主頻求出時鐘周期,然後進一步求出機器周期。B機參數的演算法與A機類似。計算如下:
A機平均指令周期=1/0.4MIPS=2.5µs
A機時鐘周期=1/8MHz=125ns
A機機器周期=125ns×4=500ns=0.5µs
A機每個指令周期中含機器周期個數=2.5µs÷0.5µs=5個
B機時鐘周期 =1/12MHz»83ns
B機機器周期 =83ns×4=332ns
設B機每個指令周期也含5個機器周期,則:
B機平均指令周期=332ns×5=1.66µs
B機平均指令執行速度=1/1.66µs=0.6MIPS
結論:主頻的提高有利於機器執行速度的提高。
\6. 設某機主頻為8MHz,每個機器周期平均含2個時鐘周期,每條指令平均有4個機器周期,試問該機的平均指令執行速度為多少MIPS?若機器主頻不變,但每個機器周期平均含4個時鐘周期,每條指令平均有4個機器周期,則該機的平均指令執行速度又是多少MIPS?由此可得出什麼結論?
解:先通過主頻求出時鐘周期,再求出機器周期和平均指令周期,最後通過平均指令周期的倒數求出平均指令執行速度。計算如下:
時鐘周期=1/8MHz=0.125×10-6s
機器周期=0.125×10-6s×2=0.25×10-6s
平均指令周期=0.25×10-6s×4=10-6s
平均指令執行速度=1/10-6s=1MIPS
當參數改變後:機器周期= 0.125×10-6s×4=0.5×10-6s
平均指令周期=0.5×10-6s×4=2×10-6s
平均指令執行速度=1/(2×10-6s) =0.5MIPS
結論:兩個主頻相同的機器,執行速度不一定一樣。
\11. 設CPU內部結構如圖9.4所示,此外還設有B、C、D、E、H、L六個暫存器,它們各自的輸入和輸出端都與內部匯流排相通,並分別受控制訊號控制(如Bi為暫存器B的輸入控制;Bo為B的輸出控制)。要求從取指令開始,寫出完成下列指令所需的全部微操作和控制訊號。
(1)ADD B,C ((B)+(C) ®B)
(2)SUB A,H ((AC)-(H) ®AC)
解:先畫出相應指令的流程圖,然後將圖中每一步數據通路操作分解成相應的微操作,再寫出同名的微命令即可。
(1) ADD B,C指令流程及微命令序列如下:

(2) SUB A,H指令流程及微命令序列如下:
第10章 控制單元的設計
\2. 寫出完成下列指令的微操作及節拍安排(包括取指操作)。
(1)指令ADD R1,X完成將R1暫存器的內容和主存X單元的內容相加,結果存於R1的操作。
(2)指令ISZ X完成將主存X單元的內容增1,並根據其結果若為0,則跳過下一條指令執行。
解:設採用單匯流排結構的CPU數據通路如下圖所示,且ALU輸入端設兩個暫存器C、D(見17題圖)。並設採用同步控制,每周期3節拍:
(1)指令ADD R1,X的微操作及節拍安排如下:
取指周期:T0 PC®MAR,1® R
T1 M(MAR) ®MDR,PC+1®PC
T2 MDR®IR,OP(IR) ®ID
執行周期1:T0 Ad(IR)®MAR,1®R
T1 M(MAR) ®MDR
T2 MDR®D
執行周期2:T0 R1®C
T1 +
T2 ALU®R1
(2)指令ISZ X的微操作及節拍安排:
取指周期同(1):略
執行周期1: T0 Ad(IR)-MAR,1-R
T1 M(MAR)-MDR
T2 MDR-C,+1-ALU
執行周期2:T0 ALU-MDR,1-W
T1 (PC+1)·Z+ PC-PC
\15. 設控制存儲器的容量為512×48位,微程式可在整個控存空間實現轉移,而控制微程式轉移的條件共有4個(採用直接控制),微指令格式如下:
解:因為控制存儲器共有51248=2948
所以,下址欄位應有9位,微指令字長48位
又因為控制微程式轉移的條件有4個,4+1<=23
所以判斷測試欄位佔3位
因此控制欄位位數為:48-9-3=36
微指令格式為:
48 13 12 10 9 1
控制欄位 測試欄位 下址欄位