計算機組成原理 CPU 章節知識點總結(適用于 408 考研)?
一、CPU 的功能與基本結構?
1.1 CPU 的功能?
CPU(中央處理器)是計算機的核心部件,主要功能包括:?
指令控制:程序的順序執行,這是 CPU 的首要功能。?
操作控制:一條指令的功能往往由若干操作信號的組合來實現,CPU 通過對這些操作信號的控制來完成指令的功能。?
時間控制:對各種操作實施時間上的控制,即時序控制。?
數據加工:對數據進行算術運算和邏輯運算處理。?
**中斷處理:**處理計算機運行過程中出現的異常情況和特殊請求。?
如何巧記呢?
記 CPU 五大功能,可用口訣 + 邏輯串聯:
口訣:“指操時,數中斷”
(指令控制、操作控制、時間控制、數據加工、中斷處理)
邏輯串:先定指令順序(指),再控操作細節(操),接著卡準時間(時),然后加工數據(數),最后應對突發(中斷)。
1.2 CPU 的基本結構?
CPU 由運算器、控制器和寄存器組三大部分組成:?
運算器:負責數據的加工處理,主要包括算術邏輯單元(ALU)、累加寄存器(ACC)、數據緩沖寄存器(DR)、狀態條件寄存器(PSW)等。?
ALU:執行各種算術和邏輯運算。?
ACC:累加器,用于存放運算結果或作為運算的一個操作數。?
DR:數據緩沖寄存器,作為 CPU 與主存、外設之間數據傳送的中轉站。?
PSW:狀態條件寄存器,保存由算術指令和邏輯指令運行或測試的結果建立的各種條件碼內容,如進位標志(C)、零標志(Z)等。?
控制器:負責協調和控制計算機各部件執行指令,主要包括程序計數器(PC)、指令寄存器(IR)、指令譯碼器(ID)、時序系統和操作控制器等。?
PC:程序計數器,存放當前欲執行指令的地址,具有自動加 1 的功能,以保證程序的順序執行。?
IR:指令寄存器,存放當前正在執行的指令。?
ID:指令譯碼器,對指令中的操作碼字段進行分析和解釋,產生相應的控制信號。?
時序系統:產生時序信號,為計算機各部件的協調工作提供定時脈沖。?
操作控制器:根據指令譯碼器的輸出信號和時序信號,產生各種操作控制信號,控制計算機各部件的操作。?
寄存器組:分為通用寄存器和專用寄存器。通用寄存器可由用戶編程訪問,用于暫存數據和地址;專用寄存器(如 PC、IR、PSW 等)有特定的功能和用途。?
如何巧記?
記 CPU 結構及核心組件,用 “三分法 + 核心功能聯想”:
結構總覽:運算器、控制器、寄存器組(三大部分)
運算器核心組件:
ALU(算邏運算)、ACC(累加結果)
DR(數據中轉)、PSW(狀態標志)
聯想:“算(ALU)完存(ACC),轉(DR)狀態(PSW)”
控制器核心組件:
PC(指令地址,自動 + 1)、IR(存當前指令)
ID(譯碼)、時序系統(定時)、操作控制器(發控制信號)
聯想:“找地址(PC)、存指令(IR)、譯操作(ID)、控時序(定時)、發信號(操作控制器)”
寄存器組:通用(用戶用)、專用(固定功能,如 PC/IR)
口訣串:“運算器里算存轉狀態,控制器中址令譯控時,再加通用專用寄存器”
二、數據通路?
2.1 數據通路的基本概念?
數據通路是 CPU 內部各功能部件之間傳送信息的通路,由一組總線和有關的邏輯電路組成。數據通路的設計直接影響 CPU 的性能,它決定了信息在 CPU 內部的傳送路徑和傳送方式。?
2.2 數據通路的類型?
單總線結構:所有功能部件都連接在一條公共總線上。優點是結構簡單、成本低;缺點是數據傳送效率低,同一時間只能進行一次數據傳送。?
雙總線結構:將 CPU 內部的總線分為兩條,一條用于數據傳送,另一條用于地址傳送。優點是數據傳送效率有所提高;缺點是結構相對復雜。?
多總線結構:設置多條總線,不同類型的信息在不同的總線上傳送。優點是數據傳送效率高,能滿足高速 CPU 的需求;缺點是結構復雜,成本高。?
2.3 數據通路的功能?
數據通路的主要功能是實現 CPU 內部各部件之間的數據傳送和運算操作。在指令執行過程中,數據在數據通路中按照一定的路徑流動,完成取指令、分析指令、執行指令等操作。例如,取指令時,PC 中的地址通過地址總線送到主存,主存根據地址取出指令,經數據總線送到 IR 中。?
三、控制器的功能和工作原理?
3.1 控制器的功能?
控制器是 CPU 的指揮中心,它的主要功能是:?
從主存中取出一條指令,并指出下一條指令在主存中的位置。?
對指令進行譯碼或測試,產生相應的操作控制信號,以便啟動規定的動作。?
指揮并控制 CPU、主存和輸入 / 輸出設備之間的數據流動方向。?
3.2 控制器的工作原理?
控制器的工作過程就是按照程序的順序,依次從主存中取出指令,進行譯碼和分析,然后產生一系列控制信號,控制計算機各部件執行相應的操作,直到程序執行完畢。?
以指令的執行過程為例,控制器的工作步驟如下:?
取指令:根據 PC 中的指令地址,從主存中取出指令,送到 IR 中,并將 PC 的值自動加 1,指向下一條指令。?
指令譯碼:對 IR 中的指令進行譯碼,確定指令的操作碼和操作數地址。?
取操作數:根據操作數地址,從主存或寄存器中取出操作數。?
執行指令:根據指令的操作碼,向各部件發出相應的控制信號,完成指令規定的操作。?
存放結果:將指令執行的結果存放到指定的寄存器或主存單元中。?
如何巧記?
控制器功能和工作原理可以這么記,用 “指揮家” 的角色來類比,更接地氣:
功能(指揮家的三大任務):
找指令:從內存 “樂譜架” 上取下當前要演奏的 “音符”(指令),并告訴下一個該取哪個。
懂指令:看懂這個 “音符” 是啥意思(譯碼),知道該讓哪些 “樂器”(部件)動起來。
控流向:指揮 “音符”(數據)在 CPU、內存、外設之間該往哪走,別亂串門。工作原理(指揮流程):
就像按樂譜一步步指揮演奏,步驟是:
拿譜子(取指令):按 PC 指的頁碼(地址)從內存拿指令放 IR,PC 自動翻到下一頁。
看譜子(譯碼):琢磨 IR 里的譜子是彈 do 還是 re(操作碼),找哪個琴鍵(操作數地址)。
找琴鍵(取操作數):按地址找到要彈的鍵(操作數)。
彈起來(執行):指揮對應的樂器出聲(發控制信號完成操作)。
記下來(存結果):把彈完的調子(結果)記到樂譜或筆記本上(寄存器 / 內存)。
核心就是:“取指→譯碼→取數→執行→存結果”,循環往復直到整首曲子(程序)結束。
四、微指令?
4.1 微指令的基本概念?
微指令是指在微程序控制的計算機中,用來描述一個基本微操作的指令。它是微程序的基本組成單位,每條微指令對應一個或幾個微操作。?
4.2 微指令的格式?
微指令通常由操作控制字段和順序控制字段兩部分組成:?
操作控制字段:又稱微操作碼字段,用于發出各種微操作控制信號,控制數據通路中各部件的操作。?
順序控制字段:又稱微地址碼字段,用于指出下一條微指令的地址,以保證微程序的順序執行。?
4.3 微指令的編碼方式?
直接編碼方式:操作控制字段中的每一位代表一個微操作命令。優點是簡單直觀,微指令的譯碼速度快;缺點是微指令字長較長,當微操作數量較多時,會導致微指令字長過長。?
字段編碼方式:將操作控制字段分成若干個小字段,每個小字段分別編碼,每個編碼代表一個微操作或一組相斥的微操作。優點是可以縮短微指令字長;缺點是增加了譯碼電路,微指令的譯碼速度有所降低。字段編碼方式又可分為字段直接編碼方式、字段間接編碼方式和混合編碼方式。?
其他編碼方式:如隱式編碼方式,這種方式不直接給出微操作命令,而是通過微指令的順序控制字段來隱含地指出微操作命令。?
4.4 微程序控制器?
微程序控制器是采用微程序控制方式的控制器,它主要由控制存儲器(CM)、微指令寄存器(IR)、微地址形成電路和微地址寄存器(MAR)等組成。?
控制存儲器(CM):用于存放微程序,是一種只讀存儲器。?
微指令寄存器(IR):用于存放從控制存儲器中取出的當前微指令。?
微地址形成電路:根據當前微指令的順序控制字段、指令寄存器中的操作碼、以及各種狀態條件,形成下一條微指令的地址。?
微地址寄存器(MAR):用于存放將要訪問的微指令的地址。?
微程序控制器的工作過程是:將指令系統中的每條指令編寫成一個微程序,這些微程序存放在控制存儲器中。當執行一條指令時,從控制存儲器中取出相應的微程序,逐條執行微指令,產生各種控制信號,控制計算機各部件的操作。?
如何巧記?
把微指令想象成 “指揮手冊里的小步驟”,用生活化類比來記:
微指令:就是 “最小動作說明書”,每條對應 1-2 個細微操作(比如 “打開某個開關”“傳送一個字節”),是微程序的基本單元。
格式:分兩部分 ——
“動作欄”(操作控制字段):寫具體做什么(發哪些控制信號)。
“下一頁”(順序控制字段):寫下一步看哪頁說明書(下條微指令地址)。
編碼方式:
直接編碼:動作欄每格寫一個動作(一位對應一個微操作),簡單但占地方(字長太長)。
字段編碼:把動作欄分成幾小格,每格用編號代表一類動作(比如 “01 = 開 A 開關,10 = 開 B 開關”),省地方但要多一步翻譯(譯碼)。
微程序控制器:就是 “按手冊指揮的系統”,核心部件:
控制存儲器(CM):存整本 “指揮手冊”(微程序)。
微指令寄存器:翻開當前看的那頁(當前微指令)。
微地址形成電路:根據當前頁和情況,算下一頁該翻到哪。
工作流程:從手冊(CM)取一頁(微指令)→按 “動作欄” 做事→按 “下一頁” 找下條→循環直到完成一個指令。
核心:微指令 =“小動作 + 下地址”,控制器按手冊(微程序)一步步指揮。
五、指令流水線?
5.1 指令流水線的基本概念?
指令流水線是指將指令的執行過程分解為若干個階段,每個階段由專門的硬件部件完成,不同的指令可以在不同的階段同時執行,從而提高 CPU 的指令執行效率。?
5.2 指令流水線的階段劃分?
常見的指令流水線階段劃分如下:?
取指令(IF):從主存中取出指令。?
指令譯碼(ID):對指令進行譯碼,確定指令的操作碼和操作數地址。?
取操作數(EX):根據操作數地址,從主存或寄存器中取出操作數,并執行相應的運算。?
寫回結果(WB):將運算結果存放到指定的寄存器或主存單元中。?
不同的計算機系統,指令流水線的階段劃分可能會有所不同,有些系統可能會劃分更多的階段,以進一步提高流水線的效率。?
5.3 流水線的性能指標?
吞吐率:指單位時間內流水線所能完成的指令條數。吞吐率越高,說明流水線的效率越高。?
加速比:指采用流水線方式后的指令執行速度與采用非流水線方式后的指令執行速度之比。加速比越大,說明流水線的效果越好。?
效率:指流水線中各功能段的利用率。效率越高,說明流水線的資源利用越充分。?
5.4 流水線的相關問題及解決方法?
結構相關(資源相關):指多條指令在同一時間爭用同一資源而產生的沖突。解決方法主要有資源重復配置、時間錯開使用等。?
數據相關:指指令之間存在數據依賴關系,后一條指令需要用到前一條指令的執行結果。數據相關主要有寫后讀(RAW)、讀后寫(WAR)和寫后寫(WAW)三種類型。解決方法主要有定向技術(旁路技術)、暫停流水線、編譯器優化等。?
控制相關:指由于指令轉移(如分支指令)等原因,導致下一條要執行的指令地址無法確定而產生的沖突。解決方法主要有分支預測、延遲分支、循環展開等。?
如何巧記?
把指令流水線想象成 “工廠裝配線”,用生產流程類比記憶:
基本概念:把指令執行拆成好幾步(比如 “取料→加工→質檢→包裝”),每步專人負責,不同指令錯開步驟同時干,提高效率。
階段劃分:常見四步 ——
取指令(IF):去倉庫拿零件(從內存取指令)。
譯碼(ID):看圖紙認零件(分析指令要干啥)。
執行(EX):組裝零件(運算或取操作數)。
寫回(WB):把裝好的成品入庫(存結果)。
性能指標:
吞吐率:單位時間裝多少個(指令數)。
加速比:流水線比單打獨斗快多少倍。
效率:工人(各階段)忙不忙,越忙越高效。
相關問題及解決:
結構相關:多人搶同一工具(資源沖突)→多備幾套工具(重復配置)。
數據相關:后道工序等前道的零件(數據依賴)→直接傳零件(定向技術)或暫停等。
控制相關:突然換生產計劃(分支指令)→猜下一步做啥(分支預測)或延遲換計劃。
核心:流水線就是 “分工合作、并行干活”,解決好搶資源、等數據、變計劃的問題就行。
六、CPU 的運作過程?
CPU 的運作過程實際上是不斷地執行指令的過程,其基本步驟如下:?
取指令階段:CPU 根據程序計數器(PC)中的地址,從主存中取出一條指令,將其存入指令寄存器(IR)中,同時 PC 的值自動加 1,為取下一條指令做好準備。?
指令譯碼階段:指令譯碼器(ID)對 IR 中的指令進行譯碼,分析出指令的操作碼和操作數地址等信息。?
取操作數階段:根據指令譯碼得到的操作數地址,從主存或寄存器中取出操作數,送到相應的寄存器中。?
執行指令階段:在算術邏輯單元(ALU)中執行指令規定的操作,如算術運算、邏輯運算等,并將運算結果存入累加寄存器(ACC)或其他指定的寄存器中。?
寫回結果階段:將運算結果從寄存器寫回主存的指定單元或其他寄存器中。?
在整個運作過程中,控制器負責協調和控制各個階段的操作,時序系統提供定時信號,確保各操作按順序有序進行。同時,CPU 還需要處理各種中斷請求,當有中斷發生時,CPU 會暫停當前程序的執行,轉而去執行中斷服務程序,處理完中斷后再返回繼續執行原來的程序。?
如何巧記?
CPU 運作就像 “按步驟處理快遞”:
取指令:按 PC 的地址(快遞單號)從內存取指令(包裹)放 IR,PC 自動寫下個單號。
譯碼:拆包裹看說明(操作碼)和收件地址(操作數地址)。
取操作數:按地址找到要處理的物品(數據)放寄存器。
執行:用 ALU 加工物品(運算),結果放 ACC。
寫回:把加工好的物品存到指定位置(寄存器 / 內存)。
全程由控制器協調,時序系統卡時間,遇到突發情況(中斷)先處理再回來。
七、練習題?
7.1 選擇題?
下列關于 CPU 功能的描述中,錯誤的是( )?
A. 指令控制是 CPU 的首要功能?
B. 操作控制是指對各種操作實施時間上的控制?
C. 數據加工包括算術運算和邏輯運算?
D. 中斷處理可以處理計算機運行過程中的異常情況?
程序計數器(PC)的作用是( )?
A. 存放當前正在執行的指令?
B. 存放當前欲執行指令的地址?
C. 存放運算結果?
D. 存放狀態條件信息?
數據通路采用單總線結構時,下列說法正確的是( )?
A. 數據傳送效率高?
B. 同一時間可以進行多次數據傳送?
C. 結構簡單、成本低?
D. 適用于高速 CPU?
微指令中,操作控制字段的作用是( )?
A. 指出下一條微指令的地址?
B. 發出各種微操作控制信號?
C. 存放微指令的操作數?
D. 對微指令進行譯碼?
指令流水線中,結構相關是指( )?
A. 指令之間存在數據依賴關系?
B. 多條指令在同一時間爭用同一資源?
C. 由于指令轉移導致下一條指令地址無法確定?
D. 流水線中各功能段的利用率低?
7.2 填空題?
CPU 由(運算器 )、(控制器 )和寄存器組三大部分組成。?
控制器主要包括程序計數器(PC)、( 指令寄存器IR)、(指令譯碼器ID )、時序系統和操作控制器等。?
微指令通常由**(操作控制字段 )和(順序控制字段 )兩部分組成。?
指令流水線的性能指標主要有(吞吐率 )、( 加速比)和效率。?
數據相關主要有( 寫后讀)、(讀后寫 )**和寫后寫(WAW)三種類型。?
7.3 簡答題?
簡述 CPU 的基本功能。
答:CPU
的基本功能包括指令控制、操作控制、時間控制、數據加工和中斷處理。指令控制是指程序的順序執行;操作控制是指對實現指令功能的操作信號進行控制;時間控制是指對各種操作實施時間上的控制;數據加工是指對數據進行算術運算和邏輯運算處理;中斷處理是指處理計算機運行過程中出現的異常情況和特殊請求。?
?
什么是數據通路?數據通路有哪些類型??
答:數據通路是 CPU
內部各功能部件之間傳送信息的通路,由一組總線和有關的邏輯電路組成。數據通路的類型主要有單總線結構、雙總線結構和多總線結構。單總線結構所有功能部件都連接在一條公共總線上;雙總線結構將
CPU 內部的總線分為兩條,一條用于數據傳送,另一條用于地址傳送;多總線結構設置多條總線,不同類型的信息在不同的總線上傳送。?
簡述微程序控制器的組成及工作過程。?
答:微程序控制器主要由控制存儲器(CM)、微指令寄存器(IR)、微地址形成電路和微地址寄存器(MAR)等組成。其工作過程是:將指令系統中的每條指令編寫成一個微程序,這些微程序存放在控制存儲器中。當執行一條指令時,從控制存儲器中取出相應的微程序,逐條執行微指令,產生各種控制信號,控制計算機各部件的操作。具體步驟為:根據微地址寄存器中的地址從控制存儲器中取出微指令,存入微指令寄存器;微指令的操作控制字段發出控制信號,控制各部件操作;微地址形成電路根據相關信息形成下一條微指令的地址,存入微地址寄存器,重復上述過程,直到微程序執行完畢。?
什么是指令流水線?流水線的相關問題有哪些?如何解決??
答:指令流水線是指將指令的執行過程分解為若干個階段,每個階段由專門的硬件部件完成,不同的指令可以在不同的階段同時執行,從而提高 CPU的指令執行效率。
流水線的相關問題主要有結構相關、數據相關和控制相關。結構相關的解決方法主要有資源重復配置、時間錯開使用等;數據相關的解決方法主要有定向技術、暫停流水線、編譯器優化等;控制相關的解決方法主要有分支預測、延遲分支、循環展開等。?
簡述 CPU 執行一條指令的基本過程。?
答:CPU 執行一條指令的基本過程如下:①取指令階段:根據 PC 中的地址從主存取出指令存入 IR,PC 自動加 1;②指令譯碼階段:對
IR 中的指令進行譯碼,得到操作碼和操作數地址;③取操作數階段:根據操作數地址從主存或寄存器取出操作數;④執行指令階段:在 ALU中執行指令規定的操作。
7.4 綜合題?
假設有一條指令 “ADD R1, R2, R3”,其功能是將寄存器 R2 和 R3 中的數據相加,結果存入寄存器 R1 中。請描述該指令在 CPU 中的執行過程(假設采用單總線結構)。?
某 CPU 采用 3 段流水線,各段的執行時間分別為 t1=2ns,t2=3ns,t3=2ns。計算該流水線的吞吐率、加速比和效率(假設連續執行 n 條指令)。?
八、練習題答案及解析?
7.1 選擇題答案?
B 解析:操作控制是指一條指令的功能往往由若干操作信號的組合來實現,CPU 通過對這些操作信號的控制來完成指令的功能;時間控制才是對各種操作實施時間上的控制。?
B 解析:程序計數器(PC)存放當前欲執行指令的地址,具有自動加 1 的功能,以保證程序的順序執行。?
C 解析:單總線結構的優點是結構簡單、成本低;缺點是數據傳送效率低,同一時間只能進行一次數據傳送,不適用于高速 CPU。?
B 解析:微指令的操作控制字段用于發出各種微操作控制信號,控制數據通路中各部件的操作;順序控制字段用于指出下一條微指令的地址。?
B 解析:結構相關是指多條指令在同一時間爭用同一資源而產生的沖突;A 選項是數據相關;C 選項是控制相關;D 選項與結構相關無關。?
7.2 填空題答案?
運算器、控制器?
指令寄存器(IR)、指令譯碼器(ID)?
操作控制字段、順序控制字段?
吞吐率、加速比?
寫后讀(RAW)、讀后寫(WAR)?
7.3 簡答題答案?
CPU 的基本功能包括指令控制、操作控制、時間控制、數據加工和中斷處理。指令控制是指程序的順序執行;操作控制是指對實現指令功能的操作信號進行控制;時間控制是指對各種操作實施時間上的控制;數據加工是指對數據進行算術運算和邏輯運算處理;中斷處理是指處理計算機運行過程中出現的異常情況和特殊請求。?
數據通路是 CPU 內部各功能部件之間傳送信息的通路,由一組總線和有關的邏輯電路組成。數據通路的類型主要有單總線結構、雙總線結構和多總線結構。單總線結構所有功能部件都連接在一條公共總線上;雙總線結構將 CPU 內部的總線分為兩條,一條用于數據傳送,另一條用于地址傳送;多總線結構設置多條總線,不同類型的信息在不同的總線上傳送。?
微程序控制器主要由控制存儲器(CM)、微指令寄存器(IR)、微地址形成電路和微地址寄存器(MAR)等組成。其工作過程是:將指令系統中的每條指令編寫成一個微程序,這些微程序存放在控制存儲器中。當執行一條指令時,從控制存儲器中取出相應的微程序,逐條執行微指令,產生各種控制信號,控制計算機各部件的操作。具體步驟為:根據微地址寄存器中的地址從控制存儲器中取出微指令,存入微指令寄存器;微指令的操作控制字段發出控制信號,控制各部件操作;微地址形成電路根據相關信息形成下一條微指令的地址,存入微地址寄存器,重復上述過程,直到微程序執行完畢。?
指令流水線是指將指令的執行過程分解為若干個階段,每個階段由專門的硬件部件完成,不同的指令可以在不同的階段同時執行,從而提高 CPU 的指令執行效率。流水線的相關問題主要有結構相關、數據相關和控制相關。結構相關的解決方法主要有資源重復配置、時間錯開使用等;數據相關的解決方法主要有定向技術、暫停流水線、編譯器優化等;控制相關的解決方法主要有分支預測、延遲分支、循環展開等。?
CPU 執行一條指令的基本過程如下:①取指令階段:根據 PC 中的地址從主存取出指令存入 IR,PC 自動加 1;②指令譯碼階段:對 IR 中的指令進行譯碼,得到操作碼和操作數地址;③取操作數階段:根據操作數地址從主存或寄存器取出操作數;④執行指令階段:在 ALU 中執行指令規定的操作,?