計算機組成原理課后答案(唐第二版)
第一章?計算機系統(tǒng)概論1.?什么是計算機系統(tǒng)、計算機硬件和計算機軟件?硬件和軟件哪個更重要?解:P3?
計算機系統(tǒng):由計算機硬件系統(tǒng)和軟件系統(tǒng)組成的綜合體。計算機硬件:指計算機中的電子線路和物理裝置。計算機軟件:計算機運行所需的程序及相關資料。硬件和軟件在計算機系統(tǒng)中相互依存,缺一不可,因此同樣重要。5.?馮?諾依曼計算機的特點是什么?解:馮?諾依曼計算機的特點是:P8?
l?計算機由運算器、控制器、存儲器、輸入設備、輸出設備五大部件組成;l?指令和數(shù)據(jù)以同同等地位存放于存儲器內(nèi),并可以按地址訪問;l?指令和數(shù)據(jù)均用二進制表示;l?指令由操作碼、地址碼兩大部分組成,操作碼用來表示操作的性質,地址碼用來表示操作數(shù)在存儲器中的位置;l?指令在存儲器中順序存放,通常自動順序取出執(zhí)行;l?
機器以運算器為中心(原始馮?諾依曼機)。7.?解釋下列概念:主機、CPU、主存、存儲單元、存儲元件、存儲基元、存儲元、存儲字、存儲字長、存儲容量、機器字長、指令字長。解:P9-10?
主機:是計算機硬件的主體部分,由CPU和主存儲器MM合成為主機。?CPU:中央處理器,是計算機硬件的核心部件,由運算器和控制器組成;(早期的運算器和控制器不在同一芯片上,現(xiàn)在的CPU內(nèi)除含有運算器和控制器外還集成了CACHE)。主存:計算機中存放正在運行的程序和數(shù)據(jù)的存儲器,為計算機的主要工作存儲器,可隨機存取;由存儲體、各種邏輯部件及控制電路組成。存儲單元:可存放一個機器字并具有特定存儲地址的存儲單位。存儲元件:存儲一位二進制信息的物理元件,是存儲器中最小的存儲單位,又叫存儲基元或存儲元,不能單獨存取。存儲字:一個存儲單元所存二進制代碼的邏輯單位。存儲字長:一個存儲單元所存二進制代碼的位數(shù)。存儲容量:存儲器中可存二進制代碼的總量;(通常主、輔存容量分開描述)。機器字長:指CPU一次能處理的二進制數(shù)據(jù)的位數(shù),通常與CPU的寄存器位數(shù)有關。指令字長:一條指令的二進制代碼位數(shù)。8.?解釋下列英文縮寫的中文含義:CPU、PC、IR、CU、ALU、ACC、MQ、X、MAR、MDR、I/O、MIPS、CPI、FLOPS?解:全面的回答應分英文全稱、中文名、功能三部分。CPU:Central?Processing?Unit,中央處理機(器),是計算機硬件的核心部件,主要由運算器和控制器組成。PC:Program?Counter,程序計數(shù)器,其功能是存放當前欲執(zhí)行指令的地址,并可自動計數(shù)
形成下一條指令地址。?
IR:Instruction?Register,指令寄存器,其功能是存放當前正在執(zhí)行的指令。?CU:Control?Unit,控制單元(部件),為控制器的核心部件,其功能是產(chǎn)生微操作命令序列。?
ALU:Arithmetic?Logic?Unit,算術邏輯運算單元,為運算器的核心部件,其功能是進行算術、邏輯運算。?
ACC:Accumulator,累加器,是運算器中既能存放運算前的操作數(shù),又能存放運算結果的寄存器。?
MQ:Multiplier-Quotient?Register,乘商寄存器,乘法運算時存放乘數(shù)、除法時存放商的寄存器。?
X:此字母沒有專指的縮寫含義,可以用作任一部件名,在此表示操作數(shù)寄存器,即運算器中工作寄存器之一,用來存放操作數(shù);?
MAR:Memory?Address?Register,存儲器地址寄存器,在主存中用來存放欲訪問的存儲單元的地址。?
MDR:Memory?Data?Register,存儲器數(shù)據(jù)緩沖寄存器,在主存中用來存放從某單元讀出、或要寫入某存儲單元的數(shù)據(jù)。?
I/O:Input/Output?equipment,輸入/輸出設備,為輸入設備和輸出設備的總稱,用于計算機內(nèi)部和外界信息的轉換與傳送。?
MIPS:Million?Instruction?Per?Second,每秒執(zhí)行百萬條指令數(shù),為計算機運算速度指標的一種計量單位。?
?
9.?畫出主機框圖,分別以存數(shù)指令“STA?M”和加法指令“ADD?M”(M均為主存地址)為例,在圖中按序標出完成該指令(包括取指令階段)的信息流程(如→①)。假設主存容量為256M*32位,在指令字長、存儲字長、機器字長相等的條件下,指出圖中各寄存器的位數(shù)。?解:主機框圖如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位。?
?
10.?指令和數(shù)據(jù)都存于存儲器中,計算機如何區(qū)分它們??解:計算機區(qū)分指令和數(shù)據(jù)有以下2種方法:?
l?通過不同的時間段來區(qū)分指令和數(shù)據(jù),即在取指令階段(或取指微程序)取出的為指令,在執(zhí)行指令階段(或相應微程序)取出的即為數(shù)據(jù)。?
l?通過地址來源區(qū)分,由PC提供存儲單元地址的取出的是指令,由指令地址碼部分提供存儲單元地址的取出的是操作數(shù)。?
第2章?計算機的發(fā)展及應用?
1.?通常計算機的更新?lián)Q代以什么為依據(jù)??答:P22?
主要以組成計算機基本電路的元器件為依據(jù),如電子管、晶體管、集成電路等。??
2.?舉例說明專用計算機和通用計算機的區(qū)別。?
答:按照計算機的效率、速度、價格和運行的經(jīng)濟性和實用性可以將計算機劃分為通用計算機和專用計算機。通用計算機適應性強,但犧牲了效率、速度和經(jīng)濟性,而專用計算機是最有效、最經(jīng)濟和最快的計算機,但適應性很差。例如個人電腦和計算器。??
3.?什么是摩爾定律?該定律是否永遠生效?為什么??答:P23,否,P36?
第3章?系統(tǒng)總線?
1.?什么是總線?總線傳輸有何特點?為了減輕總線負載,總線上的部件應具備什么特點??答:P41.總線是多個部件共享的傳輸部件。?
總線傳輸?shù)奶攸c是:某一時刻只能有一路信息在總線上傳輸,即分時使用。?為了減輕總線負載,總線上的部件應通過三態(tài)驅動緩沖電路與總線連通。?????
4.?為什么要設置總線判優(yōu)控制?常見的集中式總線控制有幾種?各有何特點?哪種方式響應時間最快?哪種方式對電路故障最敏感??
答:總線判優(yōu)控制解決多個部件同時申請總線時的使用權分配問題;?
常見的集中式總線控制有三種:鏈式查詢、計數(shù)器定時查詢、獨立請求;?
特點:鏈式查詢方式連線簡單,易于擴充,對電路故障最敏感;計數(shù)器定時查詢方式優(yōu)先級設置較靈活,對故障不敏感,連線及控制過程較復雜;獨立請求方式速度最快,但硬件器件用量大,連線多,成本較高。?
?
5.?解釋下列概念:總線寬度、總線帶寬、總線復用、總線的主設備(或主模塊)、總線的從設備(或從模塊)、總線的傳輸周期和總線的通信控制。?答:P46。?
總線寬度:通常指數(shù)據(jù)總線的根數(shù);?
總線帶寬:總線的數(shù)據(jù)傳輸率,指單位時間內(nèi)總線上傳輸數(shù)據(jù)的位數(shù);?總線復用:指同一條信號線可以分時傳輸不同的信號。?
總線的主設備(主模塊):指一次總線傳輸期間,擁有總線控制權的設備(模塊);?總線的從設備(從模塊):指一次總線傳輸期間,配合主設備完成數(shù)據(jù)傳輸?shù)脑O備(模塊),它只能被動接受主設備發(fā)來的命令;?
總線的傳輸周期:指總線完成一次完整而可靠的傳輸所需時間;?總線的通信控制:指總線傳送過程中雙方的時間配合方式。??
6.?試比較同步通信和異步通信。?
答:同步通信:指由統(tǒng)一時鐘控制的通信,控制方式簡單,靈活性差,當系統(tǒng)中各部件工作速度差異較大時,總線工作效率明顯下降。適合于速度差別不大的場合。?
異步通信:指沒有統(tǒng)一時鐘控制的通信,部件間采用應答方式進行聯(lián)系,控制方式較同步復雜,靈活性高,當系統(tǒng)中各部件工作速度差異較大時,有利于提高總線工作效率。?
?
8.?為什么說半同步通信同時保留了同步通信和異步通信的特點??
答:半同步通信既能像同步通信那樣由統(tǒng)一時鐘控制,又能像異步通信那樣允許傳輸時間不一致,因此工作效率介于兩者之間。??
10.?為什么要設置總線標準?你知道目前流行的總線標準有哪些?什么叫plug?and?play?哪些總線有這一特點??
答:總線標準的設置主要解決不同廠家各類模塊化產(chǎn)品的兼容問題;?
目前流行的總線標準有:ISA、EISA、PCI等;?plug?and?play:即插即用,EISA、PCI等具有此功能。??
11.?畫一個具有雙向傳輸功能的總線邏輯圖。?
答:在總線的兩端分別配置三態(tài)門,就可以使總線具有雙向傳輸功能。?
a0a1an
bn
b1b0a至b
b至a
?
?
12.?設數(shù)據(jù)總線上接有A、B、C、D四個寄存器,要求選用合適的74系列芯片,完成下列邏輯設計:?
(1)?設計一個電路,在同一時間實現(xiàn)D→A、D→B和D→C寄存器間的傳送;?(2)?設計一個電路,實現(xiàn)下列操作:?
T0時刻完成D→總線;?T1時刻完成總線→A;?T2時刻完成A→總線;?T3時刻完成總線→B。?
解:(1)由T打開三態(tài)門將?D寄存器中的內(nèi)容送至總線bus,由cp脈沖同時將總線上的數(shù)據(jù)打入到?A、B、C寄存器中。?T和cp的時間關系如圖(1)所示。?
A
B
C
cp脈沖
總線bus
三態(tài)門
D
T
Tcp
?
圖(1)?
(2)三態(tài)門1受T0+T1控制,以確保T0時刻D→總線,以及T1時刻總線→接收門1→A。三態(tài)門2受T2+T3控制,以確保T2時刻A→總線,以及T3時刻總線→接收門2→B。T0、T1、T2、T3波形圖如圖(2)所示。?
?
圖(2)?
第?四?章?
3.?存儲器的層次結構主要體現(xiàn)在什么地方?為什么要分這些層次?計算機如何管理這些層次??答:存儲器的層次結構主要體現(xiàn)在Cache-主存和主存-輔存這兩個存儲層次上。?
Cache-主存層次在存儲系統(tǒng)中主要對CPU訪存起加速作用,即從整體運行的效果分析,CPU訪存速度加快,接近于Cache的速度,而尋址空間和位價卻接近于主存。?
主存-輔存層次在存儲系統(tǒng)中主要起擴容作用,即從程序員的角度看,他所使用的存儲器其容量和位價接近于輔存,而速度接近于主存。?
綜合上述兩個存儲層次的作用,從整個存儲系統(tǒng)來看,就達到了速度快、容量大、位價低的優(yōu)化效果。?
主存與CACHE之間的信息調度功能全部由硬件自動完成。而主存與輔存層次的調度目前廣泛采用虛擬存儲技術實現(xiàn),即將主存與輔存的一部分通過軟硬結合的技術組成虛擬存儲器,程序員可使用這個比主存實際空間(物理地址空間)大得多的虛擬地址空間(邏輯地址空間)編程,當程序運行時,再由軟、硬件自動配合完成虛擬地址空間與主存實際物理空間的轉換。因此,這兩個層次上的調度或轉換操作對于程序員來說都是透明的。?
?
4.?說明存取周期和存取時間的區(qū)別。?
解:存取周期和存取時間的主要區(qū)別是:存取時間僅為完成一次操作的時間,而存取周期不僅包含操作時間,還包含操作后線路的恢復時間。即:?
存取周期?=?存取時間?+?恢復時間??
5.?什么是存儲器的帶寬?若存儲器的數(shù)據(jù)總線寬度為32位,存取周期為200ns,則存儲器的帶寬是多少??
解:存儲器的帶寬指單位時間內(nèi)從存儲器進出信息的最大數(shù)量。?
存儲器帶寬?=?1/200ns?×32位?=?160M位/秒?=?20MB/秒?=?5M字/秒?注意:字長32位,不是16位。(注:1ns=10-9
s)??
6.?某機字長為32位,其存儲容量是64KB,按字編址它的尋址范圍是多少?若主存以字節(jié)編址,試畫出主存字地址和字節(jié)地址的分配情況。?
解:存儲容量是64KB時,按字節(jié)編址的尋址范圍就是64K,如按字編址,其尋址范圍為:?
64K?/?(32/8)=?16K?
主存字地址和字節(jié)地址的分配情況:(略)。??
7.?一個容量為16K×32位的存儲器,其地址線和數(shù)據(jù)線的總和是多少?當選用下列不同規(guī)格的存儲芯片時,各需要多少片??
1K×4位,2K×8位,4K×4位,16K×1位,4K×8位,8K×8位?解:地址線和數(shù)據(jù)線的總和?=?14?+?32?=?46根;?
選擇不同的芯片時,各需要的片數(shù)為:?
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片??
8.?試比較靜態(tài)RAM和動態(tài)RAM。?答:略。(參看課件)??
9.?什么叫刷新?為什么要刷新?說明刷新有幾種方法。?解:刷新:對DRAM定期進行的全部重寫過程;?
刷新原因:因電容泄漏而引起的DRAM所存信息的衰減需要及時補充,因此安排了定期刷新操作;?
常用的刷新方法有三種:集中式、分散式、異步式。?
集中式:在最大刷新間隔時間內(nèi),集中安排一段時間進行刷新,存在CPU訪存死時間。?分散式:在每個讀/寫周期之后插入一個刷新周期,無CPU訪存死時間。?異步式:是集中式和分散式的折衷。??
10.?半導體存儲器芯片的譯碼驅動方式有幾種??
解:半導體存儲器芯片的譯碼驅動方式有兩種:線選法和重合法。?
線選法:地址譯碼信號只選中同一個字的所有位,結構簡單,費器材;?
重合法:地址分行、列兩部分譯碼,行、列譯碼線的交叉點即為所選單元。這種方法通過行、列譯碼信號的重合來選址,也稱矩陣譯碼??纱蟠蠊?jié)省器材用量,是最常用的譯碼驅動方式。??
11.?一個8K×8位的動態(tài)RAM芯片,其內(nèi)部結構排列成256×256形式,存取周期為0.1μs。試問采用集中刷新、分散刷新和異步刷新三種方式的刷新間隔各為多少??
解:采用分散刷新方式刷新間隔為:2ms,其中刷新死時間為:256×0.1μs=25.6μs?
采用分散刷新方式刷新間隔為:256×(0.1μs+×0.1μs)=51.2μs?采用異步刷新方式刷新間隔為:2ms??
12.?畫出用1024×4位的存儲芯片組成一個容量為64K×8位的存儲器邏輯框圖。要求將64K分成4個頁面,每個頁面分16組,指出共需多少片存儲芯片。?解:設采用SRAM芯片,則:?
總片數(shù)?=?(64K×8位)?/?(1024×4位)=?64×2?=?128片?
題意分析:本題設計的存儲器結構上分為總體、頁面、組三級,因此畫圖時也應分三級畫。首先應確定各級的容量:?
頁面容量?=?總容量?/?頁面數(shù)?=?64K×8?/?4??=?16K×8位,4片16K×8字串聯(lián)成64K×8位?
組容量?=?頁面容量?/?組數(shù)???=?16K×8位?/?16?=?1K×8位,16片1K×8位字串聯(lián)成16K×8位?
組內(nèi)片數(shù)?=?組容量?/?片容量?=?1K×8位?/?1K×4位?=?2片,兩片1K×4位芯片位并聯(lián)成1K×8位?
存儲器邏輯框圖:(略)。??
13.?設有一個64K×8位的RAM芯片,試問該芯片共有多少個基本單元電路(簡稱存儲基元)?欲設計一種具有上述同樣多存儲基元的芯片,要求對芯片字長的選擇應滿足地址線和數(shù)據(jù)線的總和為最小,試確定這種芯片的地址線和數(shù)據(jù)線,并說明有幾種解答。?解:存儲基元總數(shù)?=?64K×8位?=?512K位?=?219
位;?
思路:如要滿足地址線和數(shù)據(jù)線總和最小,應盡量把存儲元安排在字向,因為地址位數(shù)和字數(shù)成2的冪的關系,可較好地壓縮線數(shù)。?
解:設地址線根數(shù)為a,數(shù)據(jù)線根數(shù)為b,則片容量為:2a
×b?=?219
;b?=?2
19-a
;?
若a?=?19,b?=?1,總和?=?19+1?=?20;??a?=?18,b?=?2,總和?=?18+2?=?20;???a?=?17,b?=?4,總和?=?17+4?=?21;???a?=?16,b?=?8,總和?=?16+8?=?24;?????????????
由上可看出:片字數(shù)越少,片字長越長,引腳數(shù)越多。片字數(shù)減1、片位數(shù)均按2的冪變化。?
結論:如果滿足地址線和數(shù)據(jù)線的總和為最小,這種芯片的引腳分配方案有兩種:地址線?=?19根,數(shù)據(jù)線?=?1根;或地址線?=?18根,數(shù)據(jù)線?=?2根。?
?
14.?某8位微型機地址碼為18位,若使用4K×4位的RAM芯片組成模塊板結構的存儲器,試問:?
(1)該機所允許的最大主存空間是多少??
(2)若每個模塊板為32K×8位,共需幾個模塊板??(3)每個模塊板內(nèi)共有幾片RAM芯片??(4)共有多少片RAM??(5)CPU如何選擇各模塊板??
解:(1)該機所允許的最大主存空間是:218
?×?8位?=?256K×8位?=?256KB?
(2)模塊板總數(shù)?=?256K×8?/?32K×8?=?8塊?
(3)板內(nèi)片數(shù)?=?32K×8位?/?4K×4位?=?8×2?=?16片?(4)總片數(shù)?=?16片×8?=?128片?
(5)CPU通過最高3位地址譯碼輸出選擇模板,次高3位地址譯碼輸出選擇芯片。地址格式分配如下:?
模板號(3位)???????????????芯片號?(3位)????????????????片內(nèi)地址(12位)
?
?
15.?設CPU共有16根地址線,8根數(shù)據(jù)線,并用MREQ(低電平有效)作訪存控制信號,W/R作讀寫命令信號(高電平為讀,低電平為寫)?,F(xiàn)有下列存儲芯片:ROM(2K×8位,4K×4位,8K×8位),RAM(1K×4位,2K×8位,4K×8位),及74138譯碼器和其他門電路(門電路自定)。試從上述規(guī)格中選用合適芯片,畫出CPU和存儲芯片的連接圖。要求:?
(1)最小4K地址為系統(tǒng)程序區(qū),4096~16383地址范圍為用戶程序區(qū);?(2)指出選用的存儲芯片類型及數(shù)量;?(3)詳細畫出片選邏輯。?解:(1)地址空間分配圖:?
????????系統(tǒng)程序區(qū)(ROM共4KB):0000H-0FFFH?????????用戶程序區(qū)(RAM共12KB):1000H-FFFFH????(2)選片:ROM:選擇4K×4位芯片2片,位并聯(lián)?
??????????????RAM:選擇4K×8位芯片3片,字串聯(lián)(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?0?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)所示:?
CPU
ROM1
RAM1
RAM2RAM3
74138
ROM2
D0D3D4D7R/W
A11A0
0
Y1
Y2
Y3Y7YA15A14A13A12MREQ
A
2GB
2G1GABC
PROG
/PDOE
CS
CS
CS
OE
......
...
...
...
...
...
...
...
.........
...
圖(3)?
?
16.?CPU假設同上題,現(xiàn)有8片8K×8位的RAM芯片與CPU相連,試回答:?
(1)用74138譯碼器畫出CPU與存儲芯片的連接圖;?(2)寫出每片RAM的地址范圍;?
(3)如果運行時發(fā)現(xiàn)不論往哪片RAM寫入數(shù)據(jù)后,以A000H為起始地址的存儲芯片都有與其相同的數(shù)據(jù),分析故障原因。?
(4)根據(jù)(1)的連接圖,若出現(xiàn)地址線A13與CPU斷線,并搭接到高電平上,將出現(xiàn)什么后果??
解:(1)CPU與存儲器芯片連接邏輯圖:?
CPU
RAM0
74138
RAM1D0D7
A12A0
0
Y1
Y2
Y7
YA15A14A13MREQ
A
2GB
2G1GABC
CS
CS
CS
...
......
...
...
...
...
...
...
RAM7
...
...
W
/RWE
WE
WE
+5V
?
???(2)地址空間分配圖:?????????RAM0:0000H-1FFFH?????????RAM1:2000H-3FFFH?????????RAM2:4000H-5FFFH?????????RAM3:6000H-7FFFH?????????RAM4:8000H-9FFFH?????????RAM5:A000H-BFFFH?????????RAM6:C000H-DFFFH?????????RAM7:E000H-FFFFH?
(3)如果運行時發(fā)現(xiàn)不論往哪片RAM寫入數(shù)據(jù)后,以A000H為起始地址的存儲芯片(RAM5)都有與其相同的數(shù)據(jù),則根本的故障原因為:該存儲芯片的片選輸入端很可能總是處于低電平。假設芯片與譯碼器本身都是好的,可能的情況有:?
1)該片的-CS端與-WE端錯連或短路;?
2)該片的-CS端與CPU的-MREQ端錯連或短路;?3)該片的-CS端與地線錯連或短路。?
(4)如果地址線A13與CPU斷線,并搭接到高電平上,將會出現(xiàn)A13恒為“1”的情況。此時存儲器只能尋址A13=1的地址空間(奇數(shù)片),A13=0的另一半地址空間(偶數(shù)片)將永遠訪問不到。若對A13=0的地址空間(偶數(shù)片)進行訪問,只能錯誤地訪問到A13=1的對應空間(奇數(shù)片)中去。?
?
17.?寫出1100、1101、1110、1111對應的漢明碼。?解:有效信息均為n=4位,假設有效信息用b4b3b2b1表示?
校驗位位數(shù)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=011,漢明碼為1110100。?當有效信息為1101時,c3c2c1=100,漢明碼為0011101。?當有效信息為1110時,c3c2c1=101,漢明碼為1011110。?當有效信息為1111時,c3c2c1=010,漢明碼為0110111。??
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?
?
22.?某機字長16位,常規(guī)的存儲空間為64K字,若想不改用其他高速的存儲芯片,而使訪存速度提高到8倍,可采取什么措施?畫圖說明。?
解:若想不改用高速存儲芯片,而使訪存速度提高到8倍,可采取八體交叉存取技術,8體交叉訪問時序如下圖:?
單體訪存周期
啟動存儲體0啟動存儲體1啟動存儲體2啟動存儲體3啟動存儲體4啟動存儲體5啟動存儲體6啟動存儲體7
?
?
18.?什么是“程序訪問的局部性”?存儲系統(tǒng)中哪一級采用了程序訪問的局部性原理??解:程序運行的局部性原理指:在一小段時間內(nèi),最近被訪問過的程序和數(shù)據(jù)很可能再次被訪問;在空間上,這些被訪問的程序和數(shù)據(jù)往往集中在一小片存儲區(qū);在訪問順序上,指令順序執(zhí)行比轉移執(zhí)行的可能性大?(大約?5:1?)。存儲系統(tǒng)中Cache—主存層次采用了程序訪問的局部性原理。??
25.?Cache做在CPU芯片內(nèi)有什么好處?將指令Cache和數(shù)據(jù)Cache分開又有什么好處??答:Cache做在CPU芯片內(nèi)主要有下面幾個好處:?
1)可提高外部總線的利用率。因為Cache在CPU芯片內(nèi),CPU訪問Cache時不必占用外部總線。?
2)Cache不占用外部總線就意味著外部總線可更多地支持I/O設備與主存的信息傳輸,增強了系統(tǒng)的整體效率。?
3)可提高存取速度。因為Cache與CPU之間的數(shù)據(jù)通路大大縮短,故存取速度得以提高。?將指令Cache和數(shù)據(jù)Cache分開有如下好處:?
1)可支持超前控制和流水線控制,有利于這類控制方式下指令預取操作的完成。?2)指令Cache可用ROM實現(xiàn),以提高指令存取的可靠性。?
3)數(shù)據(jù)Cache對不同數(shù)據(jù)類型的支持更為靈活,既可支持整數(shù)(例32位),也可支持浮點數(shù)據(jù)(如64位)。?補充:?
Cache結構改進的第三個措施是分級實現(xiàn),如二級緩存結構,即在片內(nèi)Cache(L1)和主存之間再設一個片外Cache(L2),片外緩存既可以彌補片內(nèi)緩存容量不夠大的缺點,又可在主存與片內(nèi)緩存間起到平滑速度差的作用,加速片內(nèi)緩存的調入調出速度。?
?
30.?一個組相連映射的CACHE由64塊組成,每組內(nèi)包含4塊。主存包含4096塊,每塊由128
字組成,訪存地址為字地址。試問主存和高速存儲器的地址各為幾位?畫出主存地址格式。?解:cache組數(shù):64/4=16?,Cache容量為:64*128=213
字,cache地址13位?
主存共分4096/16=256區(qū),每區(qū)16塊?
主存容量為:4096*128=219
字,主存地址19位,地址格式如下:?主存字塊標記(8位)?
組地址(4位)?
字塊內(nèi)地址(7位)?
?
第?六?章?
12.?設浮點數(shù)格式為:階碼5位(含1位階符),尾數(shù)11位(含1位數(shù)符)。寫出51/128、-27/1024所對應的機器數(shù)。要求如下:?(1)階碼和尾數(shù)均為原碼。?(2)階碼和尾數(shù)均為補碼。?
(3)階碼為移碼,尾數(shù)為補碼。??????解:據(jù)題意畫出該浮點數(shù)的格式:?
階符1位?
階碼4位?
數(shù)符1位?
尾數(shù)10位?
??????將十進制數(shù)轉換為二進制:x1=?51/128=?0.0110011B=?2-1
?*?0.110?011B?
????x2=?-27/1024=?-0.0000011011B?=?2-5
*(-0.11011B)?
則以上各數(shù)的浮點規(guī)格化數(shù)為:?
(1)[x1]浮=1,0001;0.110?011?000?0??????[x2]浮=1,0101;1.110?110?000?0?(2)[x1]浮=1,1111;0.110?011?000?0??????[x2]浮=1,1011;1.001?010?000?0?(3)[x1]浮=0,1111;0.110?011?000?0??????[x2]浮=0,1011;1.001?010?000?0??
?
16.設機器數(shù)字長為16位,寫出下列各種情況下它能表示的數(shù)的范圍。設機器數(shù)采用一位符號
位,答案均用十進制表示。??????(1)無符號數(shù);?
?????(2)原碼表示的定點小數(shù)。??????(3)補碼表示的定點小數(shù)。??????(4)補碼表示的定點整數(shù)。??????(5)原碼表示的定點整數(shù)。?
?????(6)浮點數(shù)的格式為:階碼6位(含1位階符),尾數(shù)10位(含1位數(shù)符)。分別寫出其正數(shù)和負數(shù)的表示范圍。?
?????(7)浮點數(shù)格式同(6),機器數(shù)采用補碼規(guī)格化形式,分別寫出其對應的正數(shù)和負數(shù)的真值范圍。?
解:(1)無符號整數(shù):0?——?216
?-?1,即:0——?65535;?
????無符號小數(shù):0?——?1?-?2-16
?,即:0?——?0.99998;??
(2)原碼定點小數(shù):-1?+?2-15
——1?-?2-15
?,即:-0.99997?——?0.99997?(3)補碼定點小數(shù):-?1——1?-?2-15
??,即:-1——0.99997?(4)補碼定點整數(shù):-215
——215
?-?1?,即:-32768——32767?(5)原碼定點整數(shù):-215
?+?1——215
?-?1,即:-32767——32767?
(6)據(jù)題意畫出該浮點數(shù)格式,當階碼和尾數(shù)均采用原碼,非規(guī)格化數(shù)表示時:?最大負數(shù)=?1,11?111;1.000?000?001?,即?-2-9
′2-31
?最小負數(shù)=?0,11?111;1.111?111?111,即?-(1-2-9
)′231
?則負數(shù)表示范圍為:-(1-2-9
)′231?
——?-2-9
′2-31
?最大正數(shù)=?0,11?111;0.111?111?111,即?(1-2-9
)′231
?最小正數(shù)=?1,11?111;0.000?000?001,即?2-9
′2-31?則正數(shù)表示范圍為:2-9
′2
-31?
——(1-2-9)′231
?
(7)當機器數(shù)采用補碼規(guī)格化形式時,若不考慮隱藏位,則?最大負數(shù)=1,00?000;1.011?111?111,即?-2-1
′2-32
?最小負數(shù)=0,11?111;1.000?000?000,即?-1′231?則負數(shù)表示范圍為:-1′231?
——?-2-1
′2-32
?
最大正數(shù)=0,11?111;0.111?111?111,即?(1-2-9
)′231
??最小正數(shù)=1,00?000;0.100?000?000,即??2-1
′2-32?則正數(shù)表示范圍為:2-1
′2-32?
——(1-2-9)′231
?
?
17.?設機器數(shù)字長為8位(包括一位符號位),對下列各機器數(shù)進行算術左移一位、兩位,算術
右移一位、兩位,討論結果是否正確。?
???[x1]原=0.001?1010;[y1]補=0.101?0100;[z1]反=1.010?1111;????[x2]原=1.110?1000;[y2]補=1.110?1000;[z2]反=1.110?1000;????[x3]原=1.001?1001;[y3]補=1.001?1001;[z3]反=1.001?1001。?解:算術左移一位:?
?[x1]原=0.011?0100;正確??
[x2]原=1.101?0000;溢出(丟1)出錯??[x3]原=1.011?0010;正確??
[y1]補=0.010?1000;溢出(丟1)出錯??[y2]補=1.101?0000;正確??
[y3]補=1.011?0010;溢出(丟0)出錯??[z1]反=1.101?1111;溢出(丟0)出錯??[z2]反=1.101?0001;正確??
[z3]反=1.011?0011;溢出(丟0)出錯?算術左移兩位:??
[x1]原=0.110?1000;正確??
[x2]原=1.010?0000;溢出(丟11)出錯?[x3]原=1.110?0100;正確?
[y1]補=0.101?0000;溢出(丟10)出錯??[y2]補=1.010?0000;正確??
[y3]補=1.110?0100;溢出(丟00)出錯??[z1]反=1.011?1111;溢出(丟01)出錯??[z2]反=1.010?0011;正確??
[z3]反=1.110?0111;溢出(丟00)出錯?算術右移一位:?
?[x1]原=0.000?1101;正確??[x2]原=1.011?0100;正確?
[x3]原=1.000?1100(1);丟1,產(chǎn)生誤差??[y1]補=0.010?1010;正確?[y2]補=1.111?0100;正確?
[y3]補=1.100?1100(1);丟1,產(chǎn)生誤差?[z1]反=1.101?0111;正確?
[z2]反=1.111?0100(0);丟0,產(chǎn)生誤差?[z3]反=1.100?1100;正確?算術右移兩位:?
?[x1]原=0.000?0110(10);產(chǎn)生誤差??[x2]原=1.001?1010;正確?
[x3]原=1.000?0110(01);產(chǎn)生誤差?[y1]補=0.001?0101;正確?[y2]補=1.111?1010;正確?
[y3]補=1.110?0110(01);產(chǎn)生誤差?[z1]反=1.110?1011;正確?
[z2]反=1.111?1010(00);產(chǎn)生誤差?[z3]反=1.110?0110(01);產(chǎn)生誤差?
?
19.?設機器數(shù)字長為8位(含1位符號位),用補碼運算規(guī)則計算下列各題。?
???(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轉換成機器數(shù)形式:??(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)尾數(shù)運算:?
???[Mx]補+[My]補=?0.010?110?+?11.100?100=11.111010?
[Mx]補+[-My]補=0.010?110?+?00.011100=?00.110?010??3)結果規(guī)格化:?
???[x+y]補=11,110;11.111?010?=?11,011;11.010?000?(尾數(shù)左規(guī)3次,階碼減3)????[x-y]補=11,110;00.110?010,?已是規(guī)格化數(shù)。??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)尾數(shù)運算:?
?????[Mx]補+[My]補=?11.101111?+?11.?100001?=?11.010000??????[Mx]補+[-My]補=?11.101111?+?00.011111?=?00.001110?
3)結果規(guī)格化:?
?[x+y]補=11,110;11.010?000,已是規(guī)格化數(shù)?
?[x-y]補=11,110;00.001?110?=11,100;00.111000?(尾數(shù)左規(guī)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)尾數(shù)運算:?
??[Mx]補+[My]補=?11.011011+?11.111000(1)=?11.010011(1)???[Mx]補+[-My]補=?11.011011+?00.000111(1)=?11.100010(1)?2)?結果規(guī)格化:?
???[x+y]補=00,101;11.010?011(1),已是規(guī)格化數(shù)?
???[x-y]補=00,101;11.100?010(1)=00,100;11.000?101?(尾數(shù)左規(guī)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)?
?
32.?設機器字長為16位,分別按4、4、4、4和5、5、3、3分組后,?
???(1)畫出按兩種分組方案的單重分組并行進位鏈框圖,并比較哪種方案運算速度快。???(2)畫出按兩種分組方案的雙重分組并行進位鏈框圖,并對這兩種方案進行比較。???(3)用74181和74182畫出單重和雙重分組的并行進位鏈框圖。?
解:(1)4—4—4—4分組的16位單重分組并行進位鏈框圖見教材286頁圖6.22。?
????5—5—3—3分組的16位單重分組并行進位鏈框圖如下:??
(2)4—4—4—4分組的16位雙重分組并行進位鏈框圖見教材289頁圖6.26。?????5—5—3—3分組的16位雙重分組并行進位鏈框圖如下:??
????5—5—3—3分組的進位時間=2.5ty′3=7.5ty;????4—4—4—4分組的進位時間=2.5ty′3=7.5ty;?可見,兩種分組方案最長加法時間相同。?
?結論:雙重分組并行進位的最長進位時間只與組數(shù)和級數(shù)有關,與組內(nèi)位數(shù)無關。?(3)單重分組16位并行加法器邏輯圖如下(正邏輯):??
注意:?1)74181芯片正、負邏輯的引腳表示方法;?
???2)為強調可比性,5-5-3-3分組時不考慮扇入影響;?
???3)181芯片只有最高、最低兩個進位輸入/輸出端,組內(nèi)進位無引腳;????4)181為4位片,無法5-5-3-3分組,只能4-4-4-4分組;?
???5)單重分組跳躍進位只用到181,使用182的一定是雙重以上分組跳躍進位;????6)單重分組跳躍進位是并行進位和串行進位技術的結合;雙重分組跳躍進位是二級
并行進位技術;特別注意在位數(shù)較少時,雙重分組跳躍進位可以采用全先行進位技術實現(xiàn);位數(shù)較多時,可采用雙重分組跳躍進位和串行進位技術結合實現(xiàn)。?
第???七???章?
1.?什么叫機器指令?什么叫指令系統(tǒng)?為什么說指令系統(tǒng)與機器的主要功能以及與硬件結構之間存在著密切的關系??答:參考P300。??
2.?什么叫尋址方式?為什么要學習尋址方式??答:參看P310。??
3.?什么是指令字長、機器字長和存儲字長??答:略。??
4.?零地址指令的操作數(shù)來自哪里??各舉一例說明。?答:零地址指令的操作數(shù)來自ACC,為隱含約定。?
在一地址指令中,另一個操作數(shù)的地址通??刹捎肁CC隱含尋址方式獲得。??
5.?對于二地址指令而言,操作數(shù)的物理地址可安排在什么地方?舉例說明。?
答:對于二地址指令而言,操作數(shù)的物理地址可安排在寄存器內(nèi)、指令中或內(nèi)存單元內(nèi)等。??
8.?某機指令字長16位,每個操作數(shù)的地址碼為6位,設操作碼長度固定,指令分為零地址、一地址和二地址三種格式。若零地址指令有M條,一地址指令有N種,則二地址指令最多有幾種?若操作碼位數(shù)可變,則二地址指令最多允許有幾種??解:1)若采用定長操作碼時,二地址指令格式如下:?
OP(4位)?
A1(6位)?
A2(6位)?
設二地址指令有K種,則:K=24
-M-N?
當M=1(最小值),N=1(最小值)時,二地址指令最多有:Kmax=16-1-1=14種?3)?若采用變長操作碼時,二地址指令格式仍如1)所示,但操作碼長度可隨地址碼的
個數(shù)而變。此時,K=?24
?-(N/26
?+?M/212
?);?
?當(N/26
?+?M/212
?)£1時(N/26
?+?M/212
?向上取整),K最大,則二地址指令最多有:
Kmax=16-1=15種(只留一種編碼作擴展標志用。)?
??
9.?試比較間接尋址和寄存器間接尋址。?答:略。??
10.?試比較基址尋址和變址尋址。?略。??
11.?畫出先變址再間址及先間址再變址的尋址過程示意圖。?解:1)先變址再間址尋址過程簡單示意如下:????????EA=[(IX)+A],IX?(IX)+1?
2)先間址再變址尋址過程簡單示意如下:EA=(IX)+(A),IX??(IX)+1??
16.?某機主存容量為4M′16位,且存儲字長等于指令字長,若該機指令系統(tǒng)可完成108種操作,
操作碼位數(shù)固定,且具有直接、間接、變址、基址、相對、立即等六種尋址方式,試回答:(1)畫出一地址指令格式并指出各字段的作用;???(2)該指令直接尋址的最大范圍;???(3)一次間址和多次間址的尋址范圍;???(4)立即數(shù)的范圍(十進制表示);???(5)相對尋址的位移量(十進制表示);?
?(6)上述六種尋址方式的指令哪一種執(zhí)行時間最短?哪一種最長?為什么?哪一種便于程序浮動?哪一種最適合處理數(shù)組問題??
?(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
;若多次間址,需用存儲字的最高位來區(qū)別是否繼續(xù)間接尋址,故尋址范圍為215
。?
(4)立即數(shù)的范圍為-32——31(有符號數(shù)),或0——63(無符號數(shù))。??(5)相對尋址的位移量為-32——31。?
?(6)上述六種尋址方式中,因立即數(shù)由指令直接給出,故立即尋址的指令執(zhí)行時間最短。間接尋址在指令的執(zhí)行階段要多次訪存(一次間接尋址要兩次訪存,多次間接尋址要多次訪存),故執(zhí)行時間最長。變址尋址由于變址寄存器的內(nèi)容由用戶給定,而且在程序的執(zhí)行過程中允許用戶修改,而其形式地址始終不變,故變址尋址的指令便于用戶編制處理數(shù)組問題的程序。相對尋址操作數(shù)的有效地址只與當前指令地址相差一定的位移量,與直接尋址相比,更有利于程序浮動。?
(7)方案一:為使指令尋址范圍可擴大到4M,需要有效地址22位,此時可將單字長一地址指令的格式改為雙字長,如下圖示:?
OP(7位)?
MOD(3位)?
A(高6位)?
A(低16位)?
???????方案二:如果仍采用單字長指令(16位)格式,為使指令尋址范圍擴大到4M,可通過段尋址方案實現(xiàn)。安排如下:??
????硬件設段寄存器DS(16位),用來存放段地址。在完成指令尋址方式所規(guī)定的尋址操作后,得有效地址EA(6位),再由硬件自動完成段尋址,最后得22位物理地址。?即:物理地址=(DS)′26
?+?EA??
注:段尋址方式由硬件隱含實現(xiàn)。在編程指定的尋址過程完成、EA產(chǎn)生之后由硬件自動
完成,對用戶是透明的。?
方案三:在采用單字長指令(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位。??????
19.?某CPU內(nèi)有32個32位的通用寄存器,設計一種能容納64種操作的指令系統(tǒng)。假設指令字長等于機器字長,試回答以下問題:?
???(1)如果主存可直接或間接尋址,采用寄存器—存儲器型指令,能直接尋址的最大存儲空間是多少?畫出指令格式并說明各字段的含義。?
???(2)在滿足(1)的前提下,如果采用通用寄存器作基址寄存器,則上述寄存器—存儲器型指令的指令格式有何特點?畫出指令格式并指出這類指令可訪問多大的存儲空間??解:(1)如采用RS型指令,則此指令一定是二地址以上的地址格式,指令格式如下:?
OP(6位)?
R(5位)?
I(1位)?A(20位)?
??????操作碼字段OP占6位,因為26>=64;?
寄存器編號R占5位,因為25
>=32;?
間址位I占1位,當I=0,存儲器尋址的操作數(shù)為直接尋址,當I=1時為間接尋址;?形式地址A占20位,可以直接尋址220
字。?
(2)如采用基址尋址,則指令格式中應給出基址寄存器號,以指定哪一個通用寄存器用作基址寄存器。指令格式變?yōu)椋?OP(6位)?
源R(5位)?
I(1位)?
X(1位)?目標R(5位)?A(14位)?
??????增加尋址特征位X,當X=1時,以目標寄存器R作為基址寄存器進行基址尋址。???????基址尋址可訪問存儲空間為:232
字。?
第八章?
1.?CPU有哪些功能?畫出其結構框圖并簡要說明各個部件的作用。?答:參考P328和圖8.2。??
2.?什么是指令周期?指令周期是否有一個固定值?為什么??解:指令周期是指取出并執(zhí)行完一條指令所需的時間。?
???由于計算機中各種指令執(zhí)行所需的時間差異很大,因此為了提高CPU運行效率,即使在同步控制的機器中,不同指令的指令周期長度都是不一致的,也就是說指令周期對于不同的指令來說不是一個固定值。?
3.?畫出指令周期的流程圖,分析說明圖中每個子周期的作用。?答:參看P343及圖8.8。??
4.?設CPU內(nèi)有下列部件:PC、IR、SP、AC、MAR、MDR和CU。?
??(1)畫出完成間接尋址的取數(shù)指令LDA@X(將主存某地址單元X的內(nèi)容取至AC中)的數(shù)據(jù)流(從取指令開始)。?
??(2)畫出中斷周期的數(shù)據(jù)流。?
解:CPU中的數(shù)據(jù)流向與所采用的數(shù)據(jù)通路結構直接相關,不同的數(shù)據(jù)通路中的數(shù)據(jù)流是不一樣的。常用的數(shù)據(jù)通路結構方式有直接連線、單總線、雙總線、三總線等形式,目前大多采用總線結構,直接連線方式僅適用于結構特別簡單的機器中。?
為簡單起見,本題采用單總線將題中所給部件連接起來,框圖如下:?
PCMARAC
MDRCUSPIRbus
地址線數(shù)據(jù)線控制線
ˉ?????????
????(1)LDA@X指令周期數(shù)據(jù)流程圖:?
PC→MARM(MAR)→MDR(MDR)→IRPC+1→PCAd(IR)→MARM(MAR)→MDRMDR→Ad(IR)Ad(IR)→MARM(MAR)→MDRMDR→AC
?
(2)中斷周期流程圖如下:?
SP-1→SPPC→MDRMDR→M(MAR)向量地址→PC0→EINT
SP→MAR?
?注:解這道題有兩個要素,首先要根據(jù)所給部件設計好數(shù)據(jù)通路,即確定信息流動的載體。其次選擇好描述數(shù)據(jù)流的方法,無論采用什么樣的表達方式,其關鍵都要能清楚地反映數(shù)據(jù)在通路上流動的順序,即強調一個“流”字。較好的表達方式是流程圖的形式。??
5.?中斷周期前是什么階段?中斷周期后又是什么階段?在中斷周期CPU應完成什么操作??答:中斷周期前是執(zhí)行周期,中斷周期后是取指周期。在中斷周期,CPU應完成保存斷點、將中斷向量送PC和關中斷等工作。??
7.?什么叫系統(tǒng)的并行性?粗粒度并行和細粒度并行有何區(qū)別??
答:所謂并行性包含同時性和并發(fā)性。同時性是指兩個或兩個以上的事件在同一時刻發(fā)生,并發(fā)性是指兩個或多個事件在同一時間段發(fā)生。即在同一時刻或同一時間段內(nèi)完成兩個或兩個以上性質相同或性質不同的功能,只要在時間上存在相互重疊,就存在并行性。?
并行性又分為粗粒度并行和細粒度并行兩類。粗粒度并行是指在多個處理機上分別運行多個進程,由多臺處理機合作完成一個程序,一般用算法實現(xiàn)。細粒度并行是指在處理機的指令級
和操作級的并行性。??
8.?什么是指令流水?畫出指令二級流水和四級流水的示意圖,它們中哪個更能提高處理機速度,為什么??
答:指令流水是指將一條指令的執(zhí)行過程分為n個操作時間大致相等的階段,每個階段由一個獨立的功能部件來完成,這樣n個部件就可以同時執(zhí)行n條指令的不同階段,從而大大提高CPU的吞吐率。?
指令二級流水和四級流水示意圖如下:?
IF,ID
EX,WRIF,ID
EX,WRIF,ID
EX,WR
二級指令流水示意圖
四級指令流水示意圖
IF????????ID
EX???????WR
IF?????????ID
EX??????WR
EX??????WR
IF?????ID
?
?????四級流水更能提高處理機的速度。分析如下:?
?????假設IF、ID、EX、WR每個階段耗時為t,則連續(xù)執(zhí)行n條指令?
采用二級流水線時,耗時為:4t+(n-1)2t=(2n+2)t?采用四級流水線時,耗時為:4t+(n-1)t=(n+3)t?
在n>1時,n+3<2n+2,可見四級流水線耗時比二級流水線耗時短,因此更能提高處理
機速度。??
17.?在中斷系統(tǒng)中INTR、INT、EINT三個觸發(fā)器各有何作用??
解:INTR——中斷請求觸發(fā)器,用來登記中斷源發(fā)出的隨機性中斷請求信號,以便為CPU查詢中斷及中斷排隊判優(yōu)線路提供穩(wěn)定的中斷請求信號。?
EINT——中斷允許觸發(fā)器,CPU中的中斷總開關。當EINT=1時,表示允許中斷(開中斷),當EINT=0時,表示禁止中斷(關中斷)。其狀態(tài)可由開、關中斷等指令設置。?
INT——中斷標記觸發(fā)器,控制器時序系統(tǒng)中周期狀態(tài)分配電路的一部分,表示中斷周期標記。當INT=1時,進入中斷周期,執(zhí)行中斷隱指令的操作。?
?
24.?現(xiàn)有A、B、C、D四個中斷源,其優(yōu)先級由高向低按A、B、C、D順序排列。若中斷服務程序的執(zhí)行時間為20μs,請根據(jù)下圖所示時間軸給出的中斷源請求中斷的時刻,畫出CPU執(zhí)行程序的軌跡。?
解:A、B、C、D的響優(yōu)先級即處理優(yōu)先級。CPU執(zhí)行程序的軌跡圖如下:?
0???10???20????30???40???50????60???70???80???90??100??110?120?130?140????t/usB與C請求
B請求D請求
C服務
B服務A服務程序
D服務A請求
B服務
C服務
D服務
A服務
B服務
B服務
?
25.?某機有五個中斷源L0、L1、L2、?L3、L4,按中斷響應的優(yōu)先次序由高向低排序為L0??
L1?L2?L3?L4,根據(jù)下示格式,現(xiàn)要求中斷處理次序改為L1?L4?L2?L0?L3,根據(jù)下面的格式,寫出各中斷源的屏蔽字。?解:各中斷源屏蔽狀態(tài)見下表:?
中斷源?
屏蔽字?
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,表示中斷開放。?
?
26.?設某機配有A、B、C三臺設備,其優(yōu)先順序按A?B?C降序排列,為改變中斷處理次序,它們的中斷屏蔽字設置如下:?
設備?屏蔽字?A?111?B?010?C?
011?
???請按下圖所示時間軸給出的設備請求中斷的時刻,畫出CPU執(zhí)行程序的軌跡。設A、B、C中斷服務程序的執(zhí)行時間均為20m?s。?
解:A、B、C設備的響應優(yōu)先級為A最高、B次之、C最低,處理優(yōu)先級為A最高、C次之、B最低。CPU執(zhí)行程序的軌跡圖如下:?
0???10??20???30??40??50???60??70??80???90??????t/usA請求C請求
B請求C服務
B服務A服務程序
?
?