計算機組成原理面試問題彙總 (2)

第1章:計算機系統概論
1、計算機系統由哪兩部分組成?計算機系統性能取決於什麼?
計算機系統是由“硬件”和“軟件”組成。衡量一臺計算機性能的優劣是根據多項技術指標綜合確定的,既包括硬件的各種性能指標,又包括軟件的各種功能。

1)計算機系統由硬件和軟件兩部分組成。

2)計算機系統性能由硬件和軟件共同決定。

2、計算機系統5層層次結構從下到上由哪五層組成?哪些是物理機,哪些是虛擬機?
1)微程序機器、傳統機器、操作系統機器、彙編語言機器、高級語言機器
2)微程序機器和傳統機器是物理機,其他是虛擬機。

3、在計算機系統結構中,什麼是翻譯?什麼是解釋?
1)翻譯:將一種語言編寫的程序全部翻譯成另一種語言,然後再執行;
2)解釋:將一種語言編寫的程序的一條語句翻譯成另一種語言的一條或多條語句,然後執行,執行完這條語言後,再解釋下一條。

4、什麼是計算機體系結構?什麼是計算機組成?以乘法指令爲例說明二者區別。
1)計算機體系結構是指那些能夠被程序員看到的計算機的屬性。如指令集、數據類型等;
2)計算機組成是指如何實現計算機體系結構所體現出來的屬性;
3)以乘法指令爲例,計算機是否有乘法指令,屬於體系結構的問題。乘法指令是採用專用的乘法器,還是使用加法器和移位器構成,屬於計算機組成的問題。

5、馮諾依曼機器的主要特點?
1)計算機由運算器、存儲器、控制器、輸入設備和輸出設備五大部分組成;
2)指令和數據存儲在存儲器中,並可以按地址訪問;
3)指令和數據均以二進制表示;
4)指令由操作碼和地址碼構成,操作碼指明操作的性質,地址碼錶示操作數在存儲器中的位置;
5)指令在存儲器內按順序存放,通常按自動的順序取出執行;
6)機器以運算器爲中心,I/O設備與存儲器交換數據也要通過運算器。(因此,後來有了以存儲器爲中心的計算機結構)

6、畫出現代計算機的組成框圖。
P10,圖1.9

7、什麼是存儲單元、存儲字、存儲字長、存儲體?
存儲單元:存儲一個存儲字並具有特定存儲地址的存儲單位;
存儲字:一個存儲單元中存放的所有的二進制數據,按照某個地址訪問某個存儲單元獲取的二進制數據。
存儲字長:存儲字中二進制數據的位數,即按照某個地址訪問某個存儲單元獲取的二進制數據的位數;
存儲體:由多個存儲單元構成的存儲器件。

8、主存儲器中,什麼是MAR,什麼是MDR,存儲器的最大容量由什麼決定?
1)MAR:存儲地址寄存器,保存需要訪問的存儲單元地址。反映存儲單元的個數。
2)MDR:存儲數據寄存器,緩存讀出/寫入存儲單元的數據。反映存儲字長。
3)存儲器的最大容量由MAR寄存器的位數和MDR寄存器的位數決定。

9、什麼是機器字長,什麼是存儲字長長?
機器字長:CPU一次能夠處理的二進制數據的位數。
存儲字長:按照某個地址訪問某個存儲單元獲取的二進制數據的位數。

10、假設MAR寄存器的位數爲16位,MDR寄存器的位數爲16位,存儲器的最大容量是多少?
1)MAR寄存器的位數爲16位,能表示的地址個數爲2的16次方,爲64K;
2)MDR寄存器的位數爲16位,說明存儲字長爲16位,也即2個字節;
3)存儲器的最大容量爲64K * 2B = 128K Byte

第三章 系統總線
1、爲什麼要使用總線?
在馮諾依曼結構中,各個部件之間均有單獨連線,不僅線多,而且導致擴展I/O設備很不容易。即擴展一個I/O設備,需要連接很多線。
因此,引入了總線連接方式,將多個設備連接在同一組總線上,構成設備之間的公共傳輸通道。

2、總線的兩大基本特徵是什麼?
1)共享:多個部件連接在同一組總線上,各個部件之間都通過該總線進行數據交換。
2)分時:同一時刻,總線上只能傳輸一個部件發送的信息;

3、系統總線按照傳輸信息的不同,分成哪幾類?是單向的,還是雙向的?
1)分成數據總線、地址總線以及控制總線。
2)數據總線:各個功能部件之間傳送數據信息,雙向傳輸;
3)地址總線:用來指明數據總線上,源數據或目的數據所在的主存單元的地址。單向:由CPU發出
4)控制總線:用來發送各種控制信號。對於控制總線中的單根線,是單向的,即只能由一個部件發向另一個部件。而一組控制總線中,有輸入也有輸出,因此,控制總線也可以看成是雙向的。

4、什麼是總線寬度、總線帶寬、總線複用、信號線數?
1)總線寬度:數據總線的根數,一般是8的倍數。是衡量計算機系統性能的重要指標;
2)總線帶寬:即總線數據傳輸速率,總線上每秒能夠傳輸的最大字節量。
3)總線複用:一條信號線上分時傳送兩種信號。例如數據總線和地址總線的分時複用;
4)信號線數:地址總線、數據總線和控制總線三種總線的線數之和。

5、假設總線的工作頻率爲33MHz,總線寬度爲32位,則它最大的傳輸速率是多少?
33 * (32/8) = 132 MB/s

6、簡要說明單總線結構的概念及缺點?(現代計算機爲什麼要採用多總線結構?)
在單總線結構中,所有的部件(CPU、主存、I/O設備)都連接在一組總線上。
但所有的信息傳送都要通過這組總線,同時只能有一個部件向總線上發送信息,導致總線成爲系統的瓶頸。
因此,發展出來了多總線結構,其基本思想均是將速度相近的設備掛接在同一組總線上,總線之間通過總線控制器相連。
例如CPU和Cache之間、I/O設備之間等。

7、集中式總線判優控制有哪三種方式,哪種方式的優先級不能改變?
1)鏈式查詢、計數器定時查詢、以及獨立請求。
2)鏈式查詢的優先級不能改變,離控制器最近的優先級最高。

8、什麼是總線週期,分爲哪幾個階段?
1)總線週期:總線上兩個部件完成一次完整且可靠的數據傳輸時間;
2)分爲四個階段:
申請分配階段:申請總線
尋址階段:發出地址及有關命令
傳數階段:進行數據交換
結束:從總線上撤除信號,讓出總線

9、什麼是總線通信控制,總線通信控制有哪幾種?
1)總線通信控制:解決通信雙方如何獲知傳輸開始和傳輸結束,以及如何協調配合;
2)同步通信、異步通信、半同步通信、分離式通信

10、什麼是同步通信?其優點和缺點?
1)同步通信:總線上各個部件由統一的時鐘信號控制;在總線週期中,每個時鐘週期各個部件如何動作都有明確的規定。
2)優點:速度快,各個模塊間配合簡單
3)缺點:以總線上最慢的部件來設計公共時鐘,影響總線效率。

11、什麼是異步通信?異步通信分爲哪幾種類型?
1)異步通信:總線上各部件沒有統一的時鐘標準,採用應答式通信;(主模塊發出請求後,一直等到從模塊反饋回來應答信號之後纔開始通信)
2)不互鎖、半互鎖、全互鎖。(需要了解各種方式的含義)

12、什麼是波特率?什麼是比特率?(需要掌握如何計算波特率、比特率)
波特率:單位時間內傳送的二進制數據數據的位數,單位bps
比特率:單位時間內傳送的有效的二進制位數。

13、異步通信時,常規需要設置的參數有哪些?
波特率、停止位(1/2/1.5)、校驗位(奇校驗、偶校驗、無校驗)

14、簡述半同步通信的基本原理。
半同步通信結合同步通信和異步通信。
同步通信:採用統一的時鐘,規定了在一定的時鐘週期幹什麼事情;
異步通信:如果從模塊沒有準備好,增加一個“等待響應”信號。

15、簡述分離式通信的基本原理。
主模塊發出地址和命令之後,放棄總線,在從模塊準備數據期間,使得總線可以被其他設備所用。提高總線利用率。
但是,這種方式控制比較複雜。

16、奇偶校驗可以糾錯嗎?漢明碼可以糾錯碼?
1)奇偶校驗只能檢錯,不能糾錯。
2)漢明碼可以糾錯。

第四章 存儲器
1、存儲器按存取方式,可以分成哪四類?哪些屬於隨機訪問存儲器,哪些屬於串行訪問存儲器?
1)可以分爲隨機存儲器、只讀存儲器、順序存儲器和直接存儲器;
2)隨機存儲器和只讀存儲器屬於隨機存儲器,即存取時間與物理地址無關;
3)順序存儲器(典型的如磁帶)和直接存儲器(典型的如磁盤)屬於串行存儲器,即存取時間與物理地址有關。

2、衡量存儲器使用哪三個指標?寄存器、緩存、主存中,哪個速度最快?哪個最便宜?
1)速度、容量、位價格。
2)寄存器速度最快,主存最便宜。

3、常見的存儲系統層次結構有哪兩種?透明性如何?各自用來解決什麼問題的?
1)緩存-主存層次:用來緩解CPU和主存速度不匹配的問題,由硬件來完成,對所有的程序員完全透明。
2)主存-輔存層次:用來解決主存容量不夠的問題,由操作系統和硬件共同完成,對應用程序設計者透明,對系統程序設計者不透明。

(現在一般存儲器都即能按字訪問,也能按照字節訪問,因此,存儲器編址時,每個字節都有一個獨立的地址。)

4、字在存儲單元中有兩種存儲方式,大端方式和小端方式。各是什麼含義?x86採用的是哪種存儲方式?
1)大端方式:字的低位存在內存的高地址中,而字的高位存在內存的低地址中;
2)小端方式:字的低位存在內存的低地址中,而字的高位存在內存的高地址中。
3)x86CPU採用的是小端方式。

5、主存的三個主要技術指標
存儲容量、存取速度和存儲帶寬

6、什麼是存取時間?什麼是存取週期?哪個大?
1)存取時間:啓動一次存儲器完成本次操作(讀或寫)所需的時間;
2)存取週期:連續兩次啓動存儲器所需要的最小間隔時間;
3)存取週期包含存取時間;

7、什麼是存儲器帶寬?(要了解如何計算存儲器帶寬)
單位時間內存儲器存取的信息量;

8、半導體存儲芯片譯碼驅動包含哪兩種方式,請簡要說明。
1)線選法:所有的地址芯片通過一個譯碼器譯碼,選擇一個存儲單元的各位,適合於存儲容量不大的芯片;
2)重合法:將地址分爲兩組,每組通過一個譯碼器譯碼,選擇行或列,行、列交叉處就是要訪問的存儲位。

9、隨機存儲器包含哪兩大類?哪個需要刷新?請從速度、容量、價格等方面進行簡要比較。
1)靜態RAM:採用鎖存器原理實現;
2)動態RAM:採用電容原理實現,需要刷新。
3)相比於動態RAM,靜態RAM的速度快、容量小、價格高,一般用於緩存,而動態RAM一般用於內存。

10、只讀存儲器有哪幾種?
1)掩模ROM(MROM):出廠後內容不能被更改。
2)PROM:可編程只讀存儲器,可以進行一次性編程;
3)EPROM:可擦除只讀ROM,用紫外線照射;
4)EEPROM:電可擦除只讀ROM。
6)FLash Memory:採用EEPROM的非易失性存儲器。

11、單片存儲器芯片的容量有限,很難滿足實際需要,因此必須將若干存儲芯片連接在一起才能組成足夠容量的存儲器。
存儲器的擴展通常有位擴展和字擴展,什麼是字擴展,什麼是位擴展?請舉例簡要說明
1)位擴展:增加存儲器的字長,例如兩個1K * 4位的存儲芯片構成1個1K*8位的存儲器;
2)字擴展:增加存儲器的字數,例如兩個1K * 8位的存儲芯片構成1個2K * 8位的存儲器;
通常字擴展和位擴展兩種方式混合使用。

12、熟慮掌握存儲器的擴展,包括地址空間分配、地址線的連接、數據線的連接、片選信號的產生及連接等;
參看P94頁,例4.1

13、假設欲檢測的二進制代碼爲n位,爲了使其具有1位的糾錯能力,需添加K位檢測位,組成n+k位的代碼。問,應添加多少位檢測位?
應添加的檢測位位數:2的k次方大於等於n+k+1。
因爲要使其有1位的檢測能力,必須使用k位來說明n+k位到底哪一位出現了錯誤,k位能表達的數量爲2的k次方,而n+k位到底哪一位
出現了錯誤或者是全部正確,共有n+k+1種狀況,因此,k的取值需要滿足:2的k次方大於等於n+k+1

14、對於漢明碼,應熟練掌握漢明碼的編碼方式(按照配偶或配奇的原則),以及給出漢明碼,得到要傳送的原始信息(包括糾錯過程)。
15、提高訪存速度的三種方式。
1)採用高速元器件;
2)採用存儲層次結構:cache-主存結構;
3)調整主存結構:包括單體多字,多體並行兩種方式。

16、簡述單體多字的存儲系統的工作原理,及其優點。
1)單體多字存儲系統一次訪存取出多個CPU字,即存儲字爲CPU字的n倍(假設一次訪存取出n個cpu字)。
2)優點是:顯著提高了存儲器帶寬。

17、多體並行系統有哪兩種編址方式?請簡要說明其編址方式及其優點。
1)高位交叉編址方式:存儲體的編址方式爲順序存儲,即一個存儲體存滿後,再存入下一個;存儲單元地址的高位爲存儲體的編號。
高位交叉編址並不能提高單次訪存速度,但能使多應用並行訪存,提高系統的併發性。

2)低位交叉編址方式:存儲體的編址方式爲交叉存儲。即程序連續存放在相鄰的存儲體之中。存儲單元地址的低位爲存儲體的編號。
低位交叉編址能顯著提高單次訪存速度。

18、在四位低位交叉編址中,假設存取週期爲T,總線傳輸週期爲τ,爲了實現流水線方式存儲,應滿足什麼條件?如果連續讀取四個字,所需要的時間是多少?
1)T= 4τ
2)連續讀取四個字,所需要的時間爲T + (4-1)τ
注意:假設不是低位交叉編址,而是高位交叉編址,連續讀取四個字所需要的時間仍然爲4T。

20、需要大家掌握多體並行存儲器在高位交叉編址(順序存儲)和低位交叉編址(交叉存儲)的情況下,存儲器帶寬的計算方式。
21、在CPU和內存之間引入cache的原因。
1)避免cpu空等I/O訪存;
2)緩解CPU和主存速度不匹配的問題。

22、什麼是程序的局部性原理。
CPU從主存取指令或數據,在一定時間內,只是對主存局部地址區域訪問。

23、Cache命中率、平均訪問時間以及訪問效率的計算。
24、Cache寫操作有哪兩種方式?
1)寫直達法:寫操作既寫入Cache又寫入主存;
2)寫回法:只把數據寫入Cache而不寫入主存,當Cache中數據被替換出去之後才寫入主存。

25、將主存地址映射到Cache地址稱爲地址映射,常見的Cache映射方式有哪幾種?
直接映射、全相聯映射、組相聯映射。

26、直接映射的優缺點?
優點:地址變換速度快。缺點:cache利用率不高,塊衝突率高;

27、全相聯映射的優缺點?
優點:cache利用率高,塊衝突率低。缺點:地址變換複雜,需要較多的硬件。

28、需要大家掌握各種映射方式之下,寫出主存地址格式、cache地址格式,以及主存地址向cache地址的轉換。
29、Cache常用的替換算法有哪些?哪個命中率最高?
1)先進先出、近期最少使用算法和隨機替換算法;
2)命中率最高的是近期最少使用算法;

30、磁盤的三地址結構包括哪些?
柱面、磁頭號和扇區號

第五章 輸入輸出系統
1、I/O系統的發展大致可以分爲哪4個階段

1)早期(分散連接、串行工作、程序查詢)
2)接口模塊和DMA階段(總線連接、並行工作、中斷及DMA)
3)通道階段(通道是具有特殊功能的處理器)
4)I/O處理機階段
I/O系統的發展實際上是逐步將CPU從繁重的I/O工作中解放出來的過程;

2、I/O設備編址有哪兩種方式?各有什麼優缺點?
1)統一編址方式:和存儲器統一編址,I/O地址作爲存儲器地址的一部分;無須用專用的I/O指令,但佔用存儲器空間。
2)獨立編址方式:和存儲地址分開編址,需用專用的I/O指令。

3、I/O設備與主機的聯絡方式有哪幾種?
I/O設備與主機間交互信息時必須瞭解彼此的狀態。根據I/O設備工作速度的不同,可以分爲3類:
1)立即響應:不管其狀態(認爲其時刻準備好),適用於慢速設備。
2)應答信號:通過應答信號來進行交互;
3)同步時標:採用統一的時鐘信號。

4、I/O總線包括哪四類?
數據線、設備選擇線、狀態線、命令線

5、I/O設備通常使用D觸發器(完成觸發器)和B觸發器(工作觸發器)來標識設備所處的狀態。
D=0,B=0:暫停狀態;
D=0,B=1:準備狀態
D=1,B=0:就緒狀態

6、程序查詢的基本工作原理。
cpu不斷去查詢I/O設備狀態,導致CPU和I/O設備串行工作。

7、什麼是中斷?
計算機在執行程序過程中,當出現異常清空或特殊請求時,計算機停止現行程序的運行,轉去處理這些異常清空或特殊請求,處理結束後,再返回現行程序的間斷處,繼續執行原程序,即爲中斷。

8、中斷服務程序的基本流程包括哪四部分?
1)保護現場
2)中斷服務
3)恢復現場
4)中斷返回

9、什麼是單重中斷和多重中斷?
1)單重中斷:不允許中斷現行的中斷服務程序;
2)多重中斷:允許級別更高的中斷源中斷現行的中斷服務程序,也稱爲中斷嵌套;

10、CPU響應中斷的時機?
當前指令執行完畢後,cpu發出中斷查詢信號,也就是說,中斷響應一定是在每條指令執行結束之後進行的,不可能在指令執行過程中響應中斷。

11、什麼是DMA?
DMA:直接內存訪問。在主存和I/O設備之間建立獨立的總線連接。

12、在DMA方式中,由於DMA接口與CPU共享主存,可能會出現兩者爭用主存的衝突,爲解決衝突,DMA和主存交換數據時,通常採用哪三種工作方式?
1)停止CPU訪問主存:DMA訪存優先級高;
2)週期挪用(竊取):DMA挪用存儲或竊取總線使用權一個或幾個主存存取週期;
3)DMA和CPU交替訪問:將CPU工作週期分成兩部分,一部分供DMA訪存,一部分供CPU訪存。

13、DMA工作過程包括哪三部分?
1)預處理
2)數據傳輸
2)後處理

第六章 計算機的運算方法
1、掌握有符號數的原碼計算方法,以及通過原碼求真值;
2、掌握補碼計算的方法,以及通過補碼求原碼,然後求真值的方法。
1)通過原碼求補碼:符號位不變,各位取反,末位加1;
2)通過補碼求原碼:符號位不變,各位取反,末位加1;

3、原碼中0有2種表示方法(正零和負零),補碼中0只有一種表示方法(正零和負零的表示方法一致)
4、假設有符號數的位數爲8(包括符號位),補碼能表示的真值的範圍?
補碼能表示的真值範圍爲-128~+127(參見補碼定義)

5、掌握求反碼以及移碼的方法。
6、什麼是定點表示?什麼是浮點表示?
1)定點表示:小數點固定在某一位置的數爲定點數;
2)浮點表示:小數點位置可以浮動的數。

7、浮點數在機器中的表示形式,由哪幾部分組成?
由尾數、數符、階碼、階符四部分組成。

8、掌握規格化浮點數的表示範圍(最大正數、最小正數、最大負數、最小負數)的計算方法。
9、IEEE754標準規定的浮點數由哪幾部分組成?
由數符、階碼(含階符)以及尾數組成。

10、IEEE754標準規定的浮點數中,階碼和尾數用什麼形式表示?
階碼用移碼錶示,其偏移量是2^(n-1),尾數用原碼錶示。

11、float佔多少位?double佔多少位?
float爲短實數,佔32位,其中階碼8位,尾數23位。
double爲長實數,佔64位,其中階碼佔11位,尾數爲52位。

12、對正數進行算術移位,當正數採用源碼、補碼、反碼時,左移或右移時,低位或高位添補什麼代碼?
對於正數,其源碼、補碼、反碼均等於真值,左移時,低位添補0,右移時,高位添補0。

13、對負數進行算術移位,當負數採用源碼、補碼、反碼時,左移或右移時,低位或高位添補什麼代碼?
對於源碼,左移或右移時,低位或高位均添補0;
對於補碼:左移時,低位添補0,右移時高位添補1
對於反碼:左移或右移時,低位或高位均添補1;

14、什麼是邏輯移位?
邏輯移位是對無符號數的移位,由於無符號數不存在符號位,左移時,高位移丟,低位補零。右移時,低位移丟,高位補零。

15、加法和減法時,什麼情況下可能發生溢出?如何簡單判斷髮生溢出?
1)正數加正數,正數減負數,負數加負數,負數減正數時,可能會發生溢出。
2)如果參加操作的兩個數符號相同(轉換成補碼的加法),其結果與源操作數符號不同,即爲溢出。
3)如果補碼採用1位符號位,如果最高有效位的進位和符號位的進位不同,則發生溢出。

16、定點乘法運算可以使用加法和移位來實現嗎?
可以。

17、浮點加減運算基本按照哪幾步來進行?
1)對階:使小數點對齊;
2)尾數求和:將對階後的兩個尾數按照定點加減運算規則求和;
3)規格化:尾數規格化;
4)舍入:尾數右規時,丟失數值位;
5)溢出判斷:判斷結果是否溢出。

18、如何判斷浮點運算結果是否溢出?
階碼是否超出了其表示範圍。(使用2個符號位判溢出)

第七章 指令系統
1、什麼是機器指令?什麼是指令系統?
1)機器指令:每一條機器語言的語句;
2)指令系統:全部機器指令的集合。

2、一條指令包含哪兩個主要部分?請簡要說明各部分作用。
1)操作碼:指明指令要完成的操作;
2)地址碼:指明指令要操作的數據或數據來源;

3、操作碼長度有固定長度和可變長度兩種,各自有什麼優點?
1)固定長度:便於硬件設計,指令譯碼時間短;
2)可變長度:壓縮了操作碼平均長度;

4、指令中地址碼中的地址可以是哪些設備的地址?
可以是主存地址、寄存器地址或I/O設備的地址;

5、指令中地址的個數可以有幾個?
四地址、三地址、二地址、一地址以及零地址。

6、假設指令中有四個地址、三個地址、兩個地址以及一個地址,各自需要訪存幾次?
1)四地址:訪存4次;
2)三地址:訪存4次;
3)兩地址:訪存3次;
4)一地址:訪存2次;

7、當使用寄存器代替指令字中的地址碼字段後,有哪些優點?
1)擴大指令字的尋址範圍;
2)縮短指令字長;
3)減少訪存次數

8、數據在存儲器中存儲時,爲什麼要按照邊界對齊?
減少訪存次數。

9、尋址方式包括哪兩類?
1)指令尋址:下一條將要執行的指令的指令地址;
2)數據尋址:確定本指令的操作數地址。

10、什麼是形式地址?什麼是有效地址?
1)形式地址:指令的地址碼字段通常都不代表操作數的真實地址,成爲形式地址,記爲A;
2)有效地址:操作數的真實地址,記爲EA,由尋址特徵和形式地址共同決定;

11、瞭解各種尋址方式的概念及根據形式地址形成有效地址的方式。
立即尋址、直接尋址、隱含尋址、間接尋址、寄存器尋址、寄存器間接尋址、基址尋址(隱式或顯式)、變址尋址、相對尋址、堆棧尋址

12、什麼是RISC?什麼是CISC?
RISC:精簡指令集;
CISC:複雜指令集;
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章