计算机组成原理面试常见问题
目錄
- 一、計算機系統(tǒng)概述
- 二、數(shù)據(jù)的表示和運算
- 三、存儲系統(tǒng)
- 四、指令系統(tǒng)
- 五、中央處理器
- 六、總線
- 七、輸入/輸出系統(tǒng)
注:部分題目答案來源于網(wǎng)絡(luò)
一、計算機系統(tǒng)概述
1.什么是局部性原理?
局部性原理可以分為時間局部性和空間局部性。
(1)時間局部性:如果一個信息項正在被訪問,那么在近期它很可能還會被再次訪問。程序循環(huán)、堆棧等是產(chǎn)生時間局部性的原因。
(2)空間局部性:在最近的將來將用到的信息很可能與正在使用的信息在空間地址上是臨近的。
二、數(shù)據(jù)的表示和運算
1.并行加法器的原理是什么?
并行加法器由多個全加器組成,其位數(shù)與機器的字長相同,各位數(shù)據(jù)同時運算。
三、存儲系統(tǒng)
1.Cache是什么,為很么要采用Cache,原理是什么?
(1)Cache存儲器,電腦中為高速緩沖存儲器,是位于CPU和主存儲器DRAM之間,規(guī)模較小,但速度很高的存儲器,通常由SRAM組成。它是位于CPU與內(nèi)存間的一種容量較小但速度很高的存儲器
(2)Cache可以提高CPU訪問主存的速度和計算機系統(tǒng)處理速度,中央處理器絕大多數(shù)存取主存儲器的操作能為存取高速緩沖存儲器所代替,能極大緩和中央處理器和主存儲器之間速度不匹配的矛盾。
(3)高速緩沖技術(shù)就是利用程序訪問的局部性原理。
2.Cache有幾種地址映射方法,分別有什么優(yōu)缺點?
| 原理 | 主存的一塊只能復制到Cache 的一個特定行位置上去,主存的地址有高位標記、字塊地址、塊內(nèi)地址三個標記。 | 主存中的任一塊都可以映像到Cache的任一塊上,主存的地址有高位標記、塊內(nèi)地址兩個標記 | 前兩種方式的折中方案。主存的地址有高位標記、組地址、塊內(nèi)地址三個標記 |
| 優(yōu)點 | 實現(xiàn)簡單 | 機制靈活,命中率高 | 比直接映像靈活,命中率高,比全相聯(lián)映射所需成本低 |
| 缺點 | 機制不靈活,Cache命中率低 | 比較器電路難于設(shè)計和實現(xiàn),成本較高 | 較適合容量小的Cache |
3.FPGA、MCU、CPU之間的區(qū)別是什么?
(1)MCU與CPU的關(guān)系:MCU是在CPU的的頻率與規(guī)格做適當縮減,并添加上內(nèi)存等形成的芯片級的計算機。
(2)FPGA、MCU與CUP的區(qū)別
| 定義 | MCU是在CPU的的頻率與規(guī)格做適當縮減,并添加上內(nèi)存等形成的芯片級的計算機 | 作為計算機系統(tǒng)的運算和控制核心,是信息處理、程序運行的最終執(zhí)行單元 | FPGA 器件屬于專用集成電路中的一種半定制電路,是可編程的邏輯列陣 |
| 功能 | 音頻信號橋接、視頻信號切換或混合、數(shù)據(jù)切換、會議控制 | 主要是解釋計算機指令以及處理計算機軟件中的數(shù)據(jù)。CPU是計算機中負責讀取指令,對指令譯碼并執(zhí)行指令的核心部件 | 能夠有效的解決原有的器件門電路數(shù)較少的問題 |
4.分頁和分段的區(qū)別是什么?
四、指令系統(tǒng)
1.什么是RISC和CISC,他們的區(qū)別和特點是什么?
RISC:精簡指令系統(tǒng)計算機
CISC:復雜指令系統(tǒng)計算機
五、中央處理器
1.CPU有哪幾種設(shè)計方式,各有什么特點?
| 工作原理 | 微操作控制信號以微程序的形式存放在控制存儲器中,執(zhí)行指令時將其讀出即可 | 微操作控制信號由組合邏輯電路根據(jù)當前的指令碼、狀態(tài)和時序,即時產(chǎn)生 |
| 執(zhí)行速度 | 慢 | 快 |
| 規(guī)整性 | 較規(guī)整 | 煩瑣、不規(guī)整 |
| 應用場合 | CISC、CPU | RISC、CPU |
| 易擴充性 | 易擴充修改 | 困難 |
2.南橋芯片和北橋芯片的作用分別是什么?
(1)南橋芯片(主外):負責I/O總線之間的通信,主要管理中低速外部設(shè)備,集成了中斷控制器、DMA控制器等部件。
(2)北橋芯片(主內(nèi)):主要負責CPU與內(nèi)存、CPU與AGP之間的通,。掌控項目多為高速設(shè)備。如:CPU、Host Bus。后期北橋集成了內(nèi)存控制器、Cache高速控制器。
3.什么是指令流水線?指令流水線相對于傳統(tǒng)計算機體系結(jié)構(gòu)的優(yōu)勢是什么?如何計算指令流水線的加速比?
(1)指令流水線是把指令分解為若干子過程,通過將每個子過程與其他子過程并行執(zhí)行,來提高計算機的吞吐率的技術(shù)。
(2)采用流水線技術(shù)只需增加少量硬件就能把計算機的運算速度提高幾倍,因此成為計算機中普遍使用的一種并行處理技術(shù),通過在同一個時間段使用各功能部件,使得利用率明顯提高。
(3)流水線的加速比指的是完成同樣一批任務,不使用流水線所用的時間與使用流水線所用的時間之比。一條k段流水線理論上的最大加速比為Smax =k。因此,在現(xiàn)代計算機中提高流水線段數(shù)有利于提高計算機的吞吐量。具體的加速比要使用時空圖來計算。
六、總線
1.串行接口和并行接口都有哪些?有什么區(qū)別?
| 傳輸特點 | 數(shù)據(jù)一位位地順序傳送,其特點是通信線路簡單,只要一對傳輸線就可以實現(xiàn)雙向通信,并可以利用電話線,從而大大降低了成本 | 指數(shù)據(jù)的各位同時進行傳送,其特點是傳輸速度快,但當傳輸距離較遠、位數(shù)又多時,導致了通信線路復雜且成本提高 |
| 適用情況 | 適用于遠距離通信 | 適用于近距離通信 |
| 常見接口 | RS-232-C、RS-422、RS485、USB | 連接器、接口電纜 |
2.引入總線結(jié)構(gòu)有什么好處?
(1)簡化了系統(tǒng)結(jié)構(gòu),便于系統(tǒng)設(shè)計制造。
(2)大大減少了連線數(shù)目,便于布線,減小體積,提高系統(tǒng)的可靠性。
(3)便于接口設(shè)計,所有與總線連接的設(shè)備均采用類似的接口。
(4)便于系統(tǒng)的擴充、更新與靈活配置,易千實現(xiàn)系統(tǒng)的模塊化。
(5)便于設(shè)備的軟件設(shè)計,所有接口的軟件對不同的接口地址進行操作。
(6)便于故障診斷和維修,同時也能降低成本。
3.什么是總線寬度、總線帶寬、總線復用、信號線數(shù)?
(1)總線寬度:數(shù)據(jù)總線的根數(shù),一般是8的倍數(shù)。
(2)總線帶寬:即總線數(shù)據(jù)傳輸速率,總線上每秒能夠傳輸?shù)淖畲笞止?jié)量。
(3)總線復用:一條信號線上分時傳送兩種信號。例如數(shù)據(jù)總線和地址總線的分時復用;
(4)信號線數(shù):地址總線、數(shù)據(jù)總線和控制總線三種總線的線數(shù)之和。
4.系統(tǒng)總線按照傳輸信息的不同,分成哪幾類?是單向的,還是雙向的?
分成數(shù)據(jù)總線、地址總線以及控制總線。
(2)數(shù)據(jù)總線:各個功能部件之間傳送數(shù)據(jù)信息,雙向傳輸;
(3)地址總線:用來指明數(shù)據(jù)總線上,源數(shù)據(jù)或目的數(shù)據(jù)所在的主存單元的地址。單向傳輸,由CPU發(fā)出;
(4)控制總線:用來發(fā)送各種控制信號。對于控制總線中的單根線,是單向的,即只能由一個部件發(fā)向另一個部件。而一組控制總線中,有輸入也有輸出,因此,控制總線也可以看成是雙向的。
5.引入總線會導致什么問題?如何解決?
答:引入總線后,總線上的各個設(shè)備分時共享同一總線,當總線上多個設(shè)備同時要求使用總線時就會導致總線的沖突。為解決多個主設(shè)備同時競爭總線控制權(quán)的問題,應當采用總線仲裁部件,以某種方式選擇一個主設(shè)備優(yōu)先獲得總線控制權(quán),只有獲得了總線控制權(quán)的設(shè)備才能開始數(shù)據(jù)傳送。
七、輸入/輸出系統(tǒng)
1.什么是中斷和斷點?
(1)在CPU執(zhí)行程序的過程中,由于某種事件發(fā)生,CPU暫時中止正在執(zhí)行的程序而轉(zhuǎn)向?qū)λl(fā)生的時間進行處理,當對事件的處理結(jié)束后又能回到發(fā)生中止的地方,接著中止前的狀態(tài)繼續(xù)執(zhí)行原來的程序,此過程稱為中斷。
(2)所謂斷點就是程序被中斷的地方,斷點是人為設(shè)置的,意思就是讓程序執(zhí)行到此“停住”,不再往下執(zhí)行,然后主動權(quán)就交給調(diào)試者,對程序進行調(diào)試。
2.中斷的整個過程包含哪幾個階段?中斷有哪些類型?
(1)中斷的整個過程包含4個階段:中斷請求、中斷響應、中斷服務和中斷返回。
(2)查看此文章
3.中斷向量、中斷向量地址以及地址向量中斷之間的區(qū)別是什么?什么是中斷向量表?
(1)不同的設(shè)備有不同的中斷服務程序,每個中斷服務程序都有一個入口地址,CPU必須找到這個入口地址,即中斷向量。
(2)中斷向量是中斷服務程序的入口地址,中斷向量地址是指中斷服務程序的入口地址的地址。
(3)CPU響應中斷后,中斷硬件會自動將中斷向量地址傳送到CPU,由 CPU 實現(xiàn)程序的切換,這種方法稱為中斷向量法,采用中斷向量法的中斷稱為向量中斷。
(4)中斷向量表:中斷類型號與相應中斷源的中斷處理程序入口地址之間的連接表;
4.CPU和外設(shè)之間數(shù)據(jù)交換有哪幾種?
(1)程序查詢方式。其特點是主機與I/O串行工作。CPU啟動I/O后,時刻查詢I/O是否準備好,若設(shè)備準備就緒,CPU便轉(zhuǎn)入處理I/O與主機間傳送信息的程序;若設(shè)備未做好準備,則CPU反復查詢,“踏步”等待直到I/O準備就緒為止。可見這種方式CPU效率很低。
(2)程序中斷方式。其特點是主機與I/O并行工作。CPU啟動I/O后,不必時刻查詢I/O是否準備好,而是繼續(xù)執(zhí)行程序。當I/O準備就緒時,向CPU發(fā)中斷請求信號,CPU在適當?shù)臅r候響應I/O的中斷請求,暫停現(xiàn)行程序為I/O服務。這種方式消除了“踏步”現(xiàn)象,提高了CPU的效率。
(3)DMA方式。其特點是主機與I/0并行工作,主機與I/O之間有一條直接數(shù)據(jù)通路。CPU啟動I/O后,不必查詢I/O是否準備好
(4)通道方式。通道是一個具有特有功能的處理器,CPU把部分權(quán)利下放給通道,由它實現(xiàn)對外圍設(shè)備的統(tǒng)一管理和外圍設(shè)備與主存之間的數(shù)據(jù)交換,大大提高了CPU的效率,但它是以花費更多的硬件為代價的。
(5)I/O處理機方式。它是通道方式的進一步發(fā)展,CPU將I/O操作及外圍設(shè)備的管理權(quán)全部交給I/O處理機,其實質(zhì)是多機系統(tǒng),因而效率有更大提高。
5.程序中斷和調(diào)用子程序之間的區(qū)別有哪些?
| 發(fā)生時間 | 一般是隨機的 | 已知的和固定的 |
| 與主程序的關(guān)系 | 平行關(guān)系 | 主從關(guān)系 |
| 所需環(huán)境 | 中斷系統(tǒng)是一個軟/硬結(jié)合的系統(tǒng),需要專門的硬件電路才能完成中斷處理的過程 | 主程序調(diào)用子程序的過程完全屬于軟件處理過程,不需要專門的硬件電路 |
| 嵌套次數(shù) | 中斷嵌套級數(shù)主要由中斷優(yōu)先級來決定,一般優(yōu)先級數(shù)不會很大 | 子程序嵌套可實現(xiàn)若千級,嵌套的最多級數(shù)受計算機內(nèi)存開辟的堆棧大小限制 |
6.中斷響應優(yōu)先級和中斷處理優(yōu)先級分別指什么?
(1)中斷響應優(yōu)先級是由硬件排隊線路或中斷查詢程序的查詢順序決定的,不可動態(tài)改變;
(2)而中斷處理優(yōu)先級可以由中斷屏蔽字來改變,反映的是正在處理的中斷是否比新發(fā)生的中斷的處理優(yōu)先級低(屏蔽位為"O",對新中斷開放),若是,則中止正在處理的中斷,轉(zhuǎn)到新中斷去處理,處理完后再回到剛才被中止的中斷繼續(xù)處理。
7.CPU響應中斷應具備哪些條件?
(1)在CPU內(nèi)部設(shè)置的中斷屏蔽觸發(fā)器必須是開放的。
(2)外設(shè)有中斷請求時,中斷請求觸發(fā)器必須處于"1"狀態(tài),保持中斷請求信號。
(3)外設(shè)(接口)中斷允許觸發(fā)器必須為"1"這樣才能把外設(shè)中斷請求送至CPU 。
具備上述三個條件時,CPU在現(xiàn)行指令結(jié)束的最后一個狀態(tài)周期響應中斷。
8.DMA方式和中斷方式的區(qū)別有哪些?
① 中斷方式是程序的切換,需要保護和恢復現(xiàn)場;而DMA方式除了預處理和后處理,其他時候不占用CPU的任何資源。
② 對中斷請求的響應只能發(fā)生在每條指令執(zhí)行完畢時(即指令的執(zhí)行周期后);而對 DMA請求的響應可以發(fā)生在每個機器周期結(jié)束時(在取指周期、間址周期、執(zhí)行周期后均可),只要CPU不占用總線就可被響應。
③ 中斷傳送過程需要CPU的干預;而DMA傳送過程不需要CPU的干預,因此數(shù)據(jù)傳輸率非常高,適合于高速外設(shè)的成組數(shù)據(jù)傳送。
④ DMA 請求的優(yōu)先級高于中斷請求。
⑤ 中斷方式具有對異常事件的處理能力,而DMA方式僅局限于傳送數(shù)據(jù)塊的I/O操作。
⑥ 從數(shù)據(jù)傳送來看,中斷方式靠程序傳送,DMA方式靠硬件傳送。
總結(jié)
以上是生活随笔為你收集整理的计算机组成原理面试常见问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bigemap功能介绍
- 下一篇: Hibernate二级缓存适用场景