第五章 中央處理器#
5.1 CPU 功能和組成#
5.1.1 CPU 的功能#
中央處理器是控制計算機自動完成取指令和執行指令任務的部件;它是計算機的核心部件,通常簡稱為 CPU。它的功能如下:
- 指令控制:程序是指令的有序集合,保證機器按規定的順序執行程序。
- 操作控制:CPU 管理並產生由內存取出的每條指令的操作信號,並把各種操作信號送往相應的部件,從而控制這些部件按指令的要求進行動作。
- 時間控制:對各種操作實施時間上的控制,計算機中各種指令的操作信號均受到時間的嚴格控制。
- 數據加工:對數據進行算術運算和邏輯運算處理。完成數據的加工處理,這是 CPU 的根本任務。
5.1.2 CPU 的基本組成 (重點)#
(1)中央處理器 CPU = 運算器 + cache + 控制器
(2)運算器
- 算術邏輯單元 (ALU)
- 通用寄存器:R0~R3
- 數據緩衝寄存器:DR
- 狀態字寄存器:PSW
- 接受控制器的命令而進行操作。
- 算術運算、邏輯運算
(3)控制器
- 控制器組成
- 程序計數器(PC)
- 指令寄存器(IR)
- 地址寄存器(AR)
- 指令譯碼器(ID)
- 時序發生器
- 操作控制器
- 決策機構:完成協調和指揮整個計算機系統的操作。
- 主要功能:
- 從指令 cache 中取出一條指令,並指出下一條指令在指令 cache 中的位置。
- 對指令進行譯碼或測試,並產生相應的操作控制信號,以便啟動規定的動作。
- 指揮並控制 CPU、數據 cache 和輸入 / 輸出設備之間數據流動的方向。
- 存儲器與控制器之間流動的信息 ——指令流
- 存儲器與運算器之間流動的信息 ——數據流
5.1.3 CPU 中的主要寄存器 (重點)#
數據緩衝寄存器 (DR)#
- 用來暫時存放 ALU 的運算結果,或由數據存儲器讀出的一个數據字,或來自外部接口的一個數據字。
- 作用
- 作為 ALU 運算結果和通用寄存器之間信息傳送中時間上的緩衝
- 補償CPU 和內存、外圍設備之間在速度上的差別
指令寄存器 (IR)#
- 用來保存當前正在執行的一條指令
- 指令譯碼器 ID (Instruction Decoder)
- 暫存在指令寄存器中的指令只有在其操作碼部分經譯碼後才能識別出是一條什麼樣的指令。
- 譯碼器經過對指令進行分析和解釋,產生相應的控制信號。
程序計數器 (PC)#
- 程序計數器 PC (Programming Counter) 用來存放正在執行的指令的地址或接著將要執行的下一條指令的地址。
- 若程序順序執行,每執行一條指令,PC 的值應加 1,即 PC ← PC+1
- 若程序有跳轉:PC ← PC + 偏移地址
- 具有寄存器和計數兩種功能
數據地址寄存器 (AR)#
- 用來保存當前 CPU 所訪問的內存單元的地址。由於內存和 CPU 之間存在著操作速度上的差別,所以必須使用地址寄存器來保存地址信息,直到一次讀 / 寫操作完成為止
通用寄存器 (R0~R3)#
- 用於傳送和暫存數據
- 也可參與算術邏輯運算並保存運算結果
- 累加寄存器 (AC)
- 通用的寄存器
- 為 ALU 提供一個工作區
- 暫時存放 ALU 運算的結果信息
狀態字寄存器 (PSW)#
- 用來保存由算術指令和邏輯指令運算或測試結果建立的各種條件代碼
- 如:進位標誌 (C)、零標誌 (Z)、保存中斷和系統工作狀態等信息
- 是一個由各種狀態條件標誌拼湊而成的寄存器
5.1.4 操作控制器與時序產生器#
- (1)數據通路:寄存器之間傳送信息的通路。
- (2)操作控制器:為數據通路的建立提供各種操作信號,以便正確地選擇數據通路,把有關數據打入到一個寄存器,從而完成取指令和執行指令的控制。
- 根據設計方法不同,可分為時序邏輯型和存儲邏輯型:
- 硬布線控制器:採用時序邏輯技術實現
- 微程序控制器:採用存儲邏輯來實現。
- (3)時序產生器:提供定時和時序信號對各種操作信號實施時間上的控制 CPU 還有中斷系統、總線接口等其它功能部件
5.2 指令週期#
5.2.1 指令週期的基本概念(重點)#
程序的執行過程#
馮。諾依曼結構的計算機執行程序的順序:
- 從程序首地址開始
- 分步執行每一條指令,並形成下條待執行指令的地址
- 自動地連續執行指令,直到程序的最後一條指令
指令的執行過程#
- 讀取指令
- 指令地址送入主存地址寄存器
- 讀主存,讀出內容送入指定的寄存器
- 分析指令
- 按指令規定內容執行指令
- 不同指令的操作步驟數和具體操作內容差異很大
- 檢查有無中斷請求,若無,則轉入下一條指令的執行過程
指令週期#
CPU 每取出並執行一條指令,都要完成一系列的操作,這一系列操作所需用的時間通常叫做一個指令週期
機器週期#
機器週期也稱為 CPU 週期。通常用內存中讀取一個指令字的最短時間來規定 CPU 週期。指令週期常常用若干個 CPU 週期數來表示
時鐘週期#
一個 CPU 週期時間又包含有若干個時鐘週期(通常稱為節拍脈衝或 T 週期,它是處理操作的最基本單位)。這些時鐘週期的總和則規定了一個 CPU 週期的時間寬度
- 單週期、多週期:單週期就是在一個 CPU 週期中完成取指和執行操作。大多數指令需要在多個 CPU 週期內完成指令週期的全部操作
5.2.2 MOV 指令的指令週期#
- 在進行計算機設計時,可以採用方框語言來表示一條指令的指令週期
- 方法:
- 方框——CPU 週期
- 方框內容—— 數據通路的操作或某種控制操作
- 菱形符號—— 判別或測試(在時間上它依附於緊接它的前面一個方框的 CPU 週期,而不單獨占用一個 CPU 週期)
- ~ —— 公操作一條指令執行完後,CPU 所進行的一些操作,這些操作主要是 CPU 對外圍設備請求的處理,如中斷處理若無外設請求的處理,CPU 則轉而取下條指令。取指令是每條指令都有的,因此,取指令也是公操作。
總結
- 一條指令包括一個取指令週期和一個以上的執行週期組成
- 在每個 CPU 週期中數據通路是明確的
- 數據通路的建立及操作受到操作控制器的控制,當然決定於是什麼指令
5.3 時序產生器和控制方式#
5.3.1 時序產生器作用和體制#
作用#
- CPU 中的控制器用它指揮機器的工作
- CPU 可以用時序信號 / 週期信息來辨認從內存中取出的是指令(取指)還是數據(執行)
- 一個 CPU 週期中時鐘脈衝對 CPU 的動作有嚴格的約束
- 操作控制器發出的各種信號是時間(時序信號)和空間(部件操作信號)的函數。
體制#
-
組成計算機硬件的器件特性決定了時序信號最基本的體制是電位 - 脈衝制。(以 D 觸發器為例)
-
D 為電位輸入端,CP (Clock Pulse) 為脈衝輸入端
-
S 為置位端,R 為復位端
-
特性方程如下
- D=0 時,CP 上升沿到來時,D 觸發器狀態置 0
- D=1 時,CP 上升沿到來時,D 觸發器狀態置 1
-
當實現寄存器之間的數據傳送時,數據加在觸發器的電位輸入端,而打入數據的控制信號加在觸發器的時鐘輸入端,電位的高低,表示數據是 1 還是 0,而且要求打入數據的控制信號到來之前,電位信號必須已穩定。
-
根據設計方法不同,操作控制器可分為時序邏輯型和存儲邏輯型:
- 硬布線控制器:採用時序邏輯技術實現
- 微程序控制器:採用存儲邏輯來實現。
-
硬布線控制器:
- 時序信號採用主狀態週期 ---- 節拍電位 ---- 節拍脈衝三級體制
- 一個節拍電位表示一個 CPU 週期的時間,表示一個較大的時間單位;
- 在一個節拍電位中又包含若干個節拍脈衝,以表示較小的時間單位。
- 主狀態週期包含若干個節拍電位,是最大的時間單位
-
微程序控制器:
- 時序信號採用節拍電位 ---- 節拍脈衝二級體制
5.3.2 時序信號產生器#
- 功能:
- 產生時序信號各型計算機產生時序電路不相同
- 大、中型計算機的時序電路複雜,微型計算機的時序電路簡單
- 構成:
- 時鐘源
- 環形脈衝發生器
- 節拍脈衝和讀寫時序譯碼邏輯
- 啟停控制邏輯
5.3.3 控制方式#
- 機器指令所包含的 CPU 週期數反映了指令的複雜程度,不同 CPU 週期的操作信號的數目和出現的先後次序也不相同。
- 控制方式:形成控制不同操作序列的時序信號的方法。三種基本控制方式:
- 同步控制方式
- 異步控制方式
- 聯合控制方式
同步控制方式(指令的機器週期數和時鐘週期數不變)#
- 完全統一的機器週期執行各種不同的指令
- 採用不定長機器週期
- 中央控制與局部控制的結合
異步控制方式#
- 每條指令需要多長時間就占多長時間
- 由前一微操作執行完畢時產生的 “結束” 信號,作為下一微操作的 “起始” 信號
聯合控制方式(微程序控制器採用)#
- 大部分指令在固定的週期內完成,少數難以確定的操作採用異步方式
- 機器週期的節拍脈衝固定,但是各指令的機器週期數不固定
5.4 微程序控制器#
- 發展
- 微程序的概念和原理是由英國劍橋大學的 M・V・Wilkes 教授於 1951 年在曼徹斯特大學計算機會議上首先提出來的,當時還沒有合適的存放微程序的控制存儲器的元件。
- 到 1964 年,IBM 公司在 IBM 360 系列機上成功地採用了微程序設計技術。
- 20 世紀 70 年代以來,由於 VLSI 技術的發展,推動了微程序設計技術的發展和應用。
- 目前,從大型機到小型機、微型機都普遍採用了微程序設計技術。
- 基本思想:
- 仿照解題的方法,把操作控制信號編制成微指令,存放到控制存儲器裡,運行時,從控存中取出微指令,產生指令運行所需的操作控制信號,使相應部件執行所規定的操作。
- 從上述可以看出,微程序設計技術是利用軟件方法來設計硬件的一種技術。
5.4.1 微程序控制原理#
1、微命令和微操作#
- 微命令:控制部件通過控制線向執行部件發出的各種控制命令。
- 微命令是控制信號最小、最基本的單位。
- 微操作:是執行部件接受微命令後所進行的操作。
- 微命令和微操作是一一對應的。微命令是微操作的控制信號,微操作是微命令的操作過程。微操作是執行部件中最基本的操作。
- 由於數據通路的結構關係,微操作可分為相容性和互斥性兩種
- 互斥性微操作:指不能同時或不能在同一個節拍內並行執行的微操作。
- 相容性微操作:指能夠同時或在同一個節拍內並行執行的微操作。
2、微指令和微程序#
- 微指令:把在同一 CPU 週期內並行執行的微命令,存儲在控制存儲器裡,稱為一條微指令。
- 微程序:由若干條微指令組成的、用以實現指令功能的程序。
- 每一條機器指令都對應於一段微程序,通過解釋執行這段微程序,完成指令所規定的操作。
3、機器指令和微程序的關係(重點)#
- 一條機器指令對應一個微程序,而這個微程序是由若干條微指令序列組成的。
- 機器指令與內存儲器有關,微指令與控制存儲器有關。
5.4.2 微程序設計技術#
1、微命令編碼#
微命令編碼是對微指令中的操作控制字段採用的表示方法。
編碼有三種方法:直接表示法 / 編碼表示法 / 混合表示法
直接表示法#
- 微指令中操作控制字段中的每一位代表一個微命令。每一位分別可以直接控制計算機,不需要進行譯碼。
- 例如,操作控制字段的每一個獨立的二進制位代表一個微命令,該位為 “1” 表示這個微命令有效,為 “0” 表示這個微命令無效
- 特點:
- 這種方法結構簡單,並行性強,操作速度快,但是微指令字太長,若微命令的總數為 N 個,則微指令字的操作控制字段就要有 N 位。
- 另外,在 N 個微命令中,有許多是互斥的,不允許並行操作,將它們安排在一條微指令中是毫無意義的,只會使信息的利用率下降。
編碼表示法#
- 把一組互斥性的微命令信號組成一個字段,通過字段譯碼器對每一個微命令信號進行譯碼,譯碼輸出作為操作控制信號。
- 編碼表示法特點:
- 可以避免互斥,使指令字大大縮短
- 但增加了譯碼電路,使微程序的執行速度減慢
混合表示法#
- 將前兩種結合在一起,兼顧兩者特點。
- 一個字段的某些編碼不能獨立地定義某些微命令,而需要與其他字段的編碼來聯合定義
- 編碼注意幾點:字段編碼法中操作控制字段並非是任意的,必須要遵循如下的原則:
- ① 把互斥性的微命令分在同一段內,相容性的微命令分在不同段內。這樣不僅有助於提高信息的利用率,縮短微指令字長,而且有助於充分利用硬件所具有的並行性,加快執行的速度。
- ② 應與數據通路結構相適應。
- ③ 每個小段中包含的信息位不能太多,否則將增加譯碼線路的複雜性和譯碼時間。
- ④ 一般每個小段還要留出一個狀態,表示本字段不發出任何微命令。因此當某字段的長度為三位時,最多只能表示七個互斥的微命令,通常用 000 表示不操作。下面舉例說明
2、微地址的形成方法#
- 微指令執行的順序控制問題,實際上是如何確定下一條微指令的的地址問題
- 入口地址:每條機器指令對應一段微程序,當公用的取指微程序從主存中取出機器指令之後,根據機器指令操作碼字段找到機器指令所對應的微程序的入口地址。
- 後繼微地址的產生方式主要有兩種:
- 計數器方式
- 多路轉移方式
計數器方式#
- 方法:
- 在順序執行微指令時,其後繼微地址由現行微地址加上一個增量來產生;
- 在非順序執行微指令時,必須通過轉移方式,現行微指令執行後,轉去執行指定後繼微地址的下一條微指令。在這種方法中,微地址寄存器通常改為計數器。
- 優點:微指令的順序控制字段較短,微地址產生機構簡單
- 缺點:多路並行轉移功能較弱,速度較慢,靈活性較差。
多路轉移方式#
- 多路轉移:
- 一條微指令具有多個轉移分支的能力
- 當微程序不產生分支時,後繼微地址直接由微指令的順序控制字段給出
- 當微程序出現分支時,有多個 “後選” 微地址可供選擇
- 按順序控制字段的 “判別測試” 標誌和 “狀態條件” 信息來選擇其中一個微地址
3、微指令格式(重點)#
分為兩類:水平型微指令和垂直型微指令
(1)水平型微指令
- 水平型微指令是指一次能定義並能並行執行多個微命令的微指令。格式如下
控制字段 | 判別測試字段 | 下地址字段 |
---|
(2)垂直型微指令
- 在微指令中設置微操作碼字段,採用微操作碼編譯法,由微操作碼規定微指令的功能。類似於機器指令的結構
水平型微指令和垂直型微指令的比較
- 水平型微指令並行操作能力強,效率高,靈活性強,垂直型微指令則較差。
- 水平型微指令執行一條指令的時間短,垂直型微指令執行時間長。
- 由水平型微指令解釋指令的微程序,有微指令字較長而微程序短的特點。垂直型微指令則相反。
- 水平型微指令用戶難以掌握,而垂直型微指令與指令比較相似,相對來說,比較容易掌握。
5.5 硬連線控制器(略)#
5.6 流水 CPU#
5.6.1 並行處理技術#
并行性(Parrelism)概念#
- 問題中具有可以同時進行運算或操作的特性
- 例:在相同時延的條件下,用 n 位運算器進行 n 位並行運算速度幾乎是一位運算器進行 n 位串行運算的 n 倍(狹義)(廣義)含義只要在同一時刻(同時性)或在同一時間間隔內(並發性)完成兩種或兩種以上性質相同或不同的工作,他們在時間上相互重疊,都體現了並行性
- 只要在同一時刻(同時性)或在同一時間間隔內(並發性)完成兩種或兩種以上性質相同或不同的工作,他們在時間上相互重疊,都體現了並行性
- 三種形式
- 時間並行(重疊):讓多個處理過程在時間上相互錯開,輪流使用同一套硬件設備的各個部件,以加快硬件周轉而贏得速度,實現方式就是採用流水處理部件
- 空間並行(資源重複):以數量取勝
- 它能真正的體現同時性
- LSI (大規模集成電路) 和 VLSI (超大規模集成電路) 為其提供了技術保證
- 時間 + 空間並行:Pentium 中採用了超標量流水線技術
5.6.2 流水 CPU 的結構#
- 流水計算機的系統組成
- 存儲器體系:主存採用多體交叉存儲器;Cache
- 流水方式 CPU:指令部件、指令隊列、執行部件
- 指令流水線
- 指令隊列:FIFO
- 執行部件:可以有多個採用流水線方式構成的算術邏輯部件構成,可以將定點運算部件和浮點運算部件分開。
- 為了實現流水,首先把輸入的任務(或過程)分割為一系列子任務,並使各子任務能在流水線的各個階段並發地執行。
- 當任務連續不斷地輸入流水線時,在流水線的輸出端便連續不斷地吐出執行結果,從而實現了任務級的並行性。
5.6.3 流水線中的主要問題 (重點)#
瓶頸問題#
- 流水線中有速度慢的段
- 解決方法:
- 再分成幾個段
- 用資源重複的方法
斷流問題 (三個相關)#
- 因為出現了相關衝突
- 資源相關、數據相關、控制相關
- 資源相關:多條指令進入流水線後在同一時鐘周期內爭用同一功能部件。
- 解決辦法:後邊指令拖一拍再推進;增設一個功能部件
- 數據相關:在一個程序中,如果必須等前一條指令執行完畢後,才能執行后一條指令,那麼這兩條指令就是數據相關的
- RAW(Read After Write)
- 後面指令用到前面指令所寫的數據
- WAW(Write After Write)
- 兩條指令寫同一個單元
- WAR(Write After Read)
- 後面指令覆蓋前面指令所讀的單元
- 解決辦法:
- 可以推後後繼指令對相關單元的讀操作
- 設置相關的直接通路(Forwarding)
- RAW(Read After Write)
- 控制相關
- 引起原因:轉移指令當執行轉移指令時,依據轉移條件的產生結果,可能為順序取下條指令,也可能轉移到新的目標地址取指令,從而使流水線發生斷流。
- 解決辦法
- 延遲轉移法:讓跳轉的指令接在最後流水入口
- 轉移預測法:用硬件預測將來的行為,提前讓轉移指令進流水
本章小結#
- CPU 是計算機的中央處理部件,具有指令控制、操作控制、時間控制、數據加工等基本功能。早期的 CPU 由運算器和控制器兩大部分組成。隨著高密度集成電路技術的發展,當今的 CPU 芯片變成運算器、cache 和控制器三大部分,其中還包括浮點運算器、存儲管理部件等。CPU 中至少要有如下六類寄存器:指令寄存器、程序計數器、地址寄存器、數據緩衝寄存器、通用寄存器、狀態條件寄存器。 CPU 從存儲器取出一條指令並執行這條指令的時間和稱為指令週期。CISC 中,由於各種指令的操作功能不同,各種指令的指令週期是不盡相同的。劃分指令週期,是設計操作控制器的重要依據。
- 時序信號產生器提供 CPU 週期(也稱機器週期)所需的時序信號。 操作控制器利用這些時序信號進行定時,有條不紊地取出一條指令並執行這條指令。微程序設計技術是利用軟件方法設計操作控制器的一門技術,具有規整性、靈活性、可維護性等一系列優點,因而在計算機設計中得到了廣泛應用。但是隨著 ULSI 技術的發展和對機器速度的要求,硬連線邏輯設計思想又得到了重視。硬連線控制器的基本思想是:某一微操作控制信號是指令操作碼譯碼輸出、時序信號和狀態條件信號的邏輯函數,即用布爾代數寫出邏輯表達式,然後用門電路、觸發器等器件實現。
- 並行處理技術可貫穿於信息加工的各個步驟和階段。概括起來,主要有三種形式:①時間並行;②空間並行;③時間並行 + 空間並行。流水 CPU 是以時間並行性為原理構造的處理機,是一種非常經濟而實用的並行技術。目前的高性能微處理器幾乎無一例外地使用了流水技術。流水技術中的主要問題是資源相關、數據相關和控制相關,為此需要採取相應的技術對策,才能保證流水線暢通而不斷流。