計算機面試常見問題-體系結構、組成原理

文章目錄

計算機體系結構

體系結構是什麼

程序員所看到的計算機屬性,即概念性結構和功能特性,如數據類型。指令集。


計算機系統由幾部分組成、計算機系統性能取決於什麼?

硬件和軟件。
其中硬件包括五部分:輸入輸出設備、控制器、運算器、存儲器
軟件按照功能可分爲系統軟件和應用軟件。

衡量一個計算機系統的優劣是根據多個指標綜合確定的,有包含硬件部分的功能,也有包含軟件部分的。


win32和win64區別

計算機體系結構是32位還是64位取決於計算機內部的處理器(CPU)。
64位系統可以保存和處理更多的信息。

64位處理器可以支持32位或64位操作系統,32位處理器僅支持32位操作系統。


64 位環境下,一些類型的長度會有所增加、
64 位程序能用的通用寄存器從 8 個增加到 16 個,每個寄存器的寬度(機器字長)從 32 位增加到 64 位

32位只能使用最高4 GB的RAM。
應用程序將安裝到唯一的Program Files文件夾裏,稱爲x86;

64位可以使用16 GB的RAM。
64位系統則有一個額外的程序文件(x86)夾,稱爲x64。



存儲層次、緩存分級

存儲系統通常分爲:主存-輔存系統,主存-Cache系統

一個是主存和輔存的層次結構,主要是用來解決主存容量不足的問題,對應用程序設計者透明,對系統程序設計者不透明。
另一個是主存和cache的層次結構,主要是用來解決主存和CPU速度不匹配的問題,對所有程序員透明。


主存儲器(CPU可以直接訪問)、

輔存儲器(外存,需調入主存才能被CPU訪問):幫助主存儲器記憶更多的信息。

高速緩衝存儲器(Cache):爲緩解CPU和主存速度不匹配的問題,避免CPU空等I/O訪存,
在CPU和主存之間引入Cache。

CPU要讀數據首先在cache中讀,如果cache命中,CPU就可以極快的得到該地址處的值。
如果cache miss 也就是沒有命中,CPU就會通過總線在內存中去讀,並把連續的一塊單元加載到cache中,下次好使用。



緩存(Cache)分級:

一級cache 有指令cache和數據cache之分,這使整個系統更加高效,但容量小。

二級緩存(L2 CACHE)出現是爲了協調一級緩存與內存之間的速度,二級緩存是比一級緩存速度更慢,容量更大的內存,主要就是做一級緩存和內存之間數據臨時交換的地方用。

CPU首先訪L1級Cache,若不命中,再訪問L2級Cache和主存。

三級cache同。



源碼補碼反碼,有源碼爲什麼有補碼反碼

源碼:最簡單的機器數表示法,最高位表示符號,符號位0正1負。
數值部分用二進制數的絕對值表示

沒解決減法問題。即兩個源碼做加法運算,其中一個爲負數就可能出錯。
最大問題:非零數與相反數相加不爲零,如+1 加 -1 爲-2

     (+1) + (-1) = 
源碼: 0001 + 1001 = 1010

引入補碼,把減法運算轉換爲加法運算
正數源碼的補碼不變,
負數源碼的補碼 爲反碼+1

     (+1) + (-1) = (+0)
源碼:0001 + 1001 = 1010
補碼:0001 + 1111 = 0000

引入反碼,便於求負數的補碼。
正數的反碼與原碼相同,負數的反碼是符號位不變,數值位逐位取反。




流水線調度效率、五級流水線加速達到5嗎

在任務數足夠多的時,理論上接近5.



計算機組成原理

實現計算機體系結構所體現出來的特性

計算機系統5層層次結構?哪些是物理機,哪些是虛擬機?

1)微程序機器、傳統機器、操作系統機器、彙編語言機器、高級語言機器
2)微程序機器和傳統機器是物理機,其他是虛擬機。



在計算機系統結構中,什麼是翻譯?什麼是解釋?

翻譯的話就是把一種編程語言一下子全都換成另一種語言,解釋的話就是一句一句的解釋和執行,總的來說就是一股腦和一下一下的區別。



馮諾依曼機器的主要特點?

有五個特點:
1.由運算器,存儲器,控制器,輸入輸出這五大部件組成
2.指令和數據以二進制形式存儲在存儲器中
3.整個系統以運算器爲中心
4.指令有操作碼和地址碼
5.指令按順序存在,以按一定順序輸出



主存儲器中,什麼是MAR,什麼是MDR,存儲器的最大容量由什麼決定?

MAR是address地址寄存器,MDR是DATA數據寄存器,存儲器的最大容量由地址寄存器和數據寄存器的位數來決定的



什麼是機器字長,什麼是存儲字長,什麼是指令字長?

機器字長是CPU執行一次操作的二進制位數,存儲字長是一個存儲單元存的最長位數,指令字長是機器指令中二進制的最長位數



系統總線按照傳輸信息的不同,分成哪幾類?是單向的,還是雙向的?

分爲數據總線,地址總線和控制總線
其中,數據總線和控制總線是雙向的,而地址總線是單向的,由CPU發出。



存儲器按存取方式,可以分成哪四類?哪些屬於隨機訪問存儲器,哪些屬於串行訪問存儲器?

1)按存取方式分類可以分爲
隨機存儲器(RAM)、只讀存儲器(ROM)、
順序存儲器(磁帶)和直接存儲器(磁盤);

2)隨機存儲器和只讀存儲器都是隨機訪問存儲器,即訪問內存時間與物理地址無關;
3)順序存儲器和直接存儲器屬於串行存訪問儲器,即存取時間與物理地址有關。

按層次分類可分爲:主存、外存和Cache(高速緩衝存儲器)



衡量存儲器使用哪三個指標?寄存器、緩存(cache)、主存中,哪個速度最快?哪個最便宜?

分別是 容量,速度和價格。

寄存器->Cache->主存
其中寄存器速度最快,主存最便宜



字在存儲單元中有兩種存儲方式,x86採用的是哪種存儲方式?

1)大端方式:字的低位存在內存的高地址中,而字的高位存在內存的低地址中;
2)小端方式:字的低位存在內存的低地址中,而字的高位存在內存的高地址中。
3)x86 x64 CPU是小端(英特爾的CPU是小端)



什麼是存取時間?什麼是存取週期?哪個大?

存取時間是啓動一次存儲器操作到完成該操作所經歷的時間(分爲讀出和寫入時間)

存取週期是連續兩次獨立訪問存儲器操作(讀或寫)之間所需的最小時間間隔。



隨機存儲器包含哪兩大類?哪個需要刷新?請從速度、容量、價格等方面進行簡要比較

1)靜態SRAM:以觸發器原理寄存信息。
2)動態DRAM:以電容充電爲原理寄存信息,需要刷新。

3)SRAM的存取速度快、但集成度低,功耗大,一般用來組成高速緩衝寄存器(Cache)

4)DRAM 容易集成、價格低、容量大和功耗低。但是存取速度較慢。
一般用來組成主存。



提高訪存速度的三種方式。

1)採用高速元器件;(即採用存取週期短的芯片)

2)採用Cache(引入Cache-主存層次結構)
CPU最近要使用的信息先調入Cache,而Cache的速度比主存快得多,這樣CPU每次只需從Cache中讀寫信息,從而縮短訪存時間,提高訪存速度。

3)調整主存結構:採用單體多字或多體結構存儲器。



操作碼長度:固定長度和可變長度

1)固定長度:便於硬件設計,指令譯碼時間短;
2)可變長度:壓縮了操作碼平均長度;



什麼是中斷?中斷流程?中斷服務程序的基本流程?

計算機在執行程序的過程中,出現某些急需處理的異常情況和特殊請求,CPU暫時中止現行程序,而轉去處理這些異常情況或特殊請求,處理完畢後CPU自行返回到現行程序的斷點處,繼續執行原程序。


中斷流程:
中斷請求、
中斷判優、
中斷響應(終止程序轉去中斷服務)、
中斷處理(執行中斷服務程序)、
中斷返回(結束中斷服務,返回程序)

中斷服務程序的基本流程:
1,保護現場 2.中斷服務 3.恢復現場 4.中斷返回

CPU響應中斷的時機:當前指令結束之後



什麼是DMA(直接內存訪問)?

DMA是一種完全由硬件進行成組信息傳送的控制方式,它具有程序中斷的優點
DMA在外設和內存之間開闢一條直接數據通道,信息傳送不再經過CPU。
稱爲直接存儲器存取方式(如磁盤)



什麼是形式地址?什麼是有效地址?

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



數據在存儲器中存儲時,爲什麼要按照邊界對齊?

爲了減少訪存次數



當使用寄存器代替指令字中的地址碼字段後,有哪些優點?

1.減少訪存次數
2.提高尋址範圍





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