中央處理器
5.1 CPU的功能和組成
1.CPU的功能
控制程序按設定的方式執行的計算機部件成為中央處理器,簡稱CPU
具有一下四方面的基本功能:
a.指令控制 程序的順序控制,稱為指令控制。
b.操作控制 一條指令的功能往往是由若干個操作信號的組合實現的,CPU管理並產生由內存取出的每條指令的操作信.號,把各種信號送往相應的部件,從而控制這些部件按照指令的要求進行動作
c.時間控制 對各種操作實施時間上的定時
d.數據加工 對數據進行算術運算和邏輯運算處理(由ALU完成,算術邏輯單元)
2.CPU的基本組成
早期的CPU由運算器和控制器兩大部分組成。后來CPU的基本部分變成運算器、cache、控制器三大部分
控制器 由程序計數器(PC)、指令寄存器(IR)、指令譯碼器、時序產生器 和 操作控制器(OC) 組成,主要功能有:
(1)從指令cache中取出一條指令,並指出下一條指令在指令cache中的位置
(2)對指令進行譯碼和測試,並產生相應的操作控制信號
(3)指揮並控制CPU、數據cache和輸入/輸出設備之間數據流動的方向
運算器 由算術邏輯單元(ALU)、通用寄存器、數據緩沖寄存器(DR)和狀態條件寄存器(PSW)組成。運算器接受控制器的命令而進行動作,是執行部件。主要有兩個功能:
(1)執行所有的算術運算
(2)執行所有的邏輯運算
3.CPU中的主要寄存器
CPU中至少有六類寄存器:指令寄存器(IR)、程序計數器(PC)、數據地址寄存器(AR)、緩沖寄存器(DR)、通用寄存器、狀態字寄存器(PSW)
(1)DR 暫時存放CPU與外界傳送的數據,可以是指令字或者數據字,作用是 1)作為ALU運算結果和通用寄存器之間信息傳送時間上的緩沖 2)補償CPU和內存、外圍設備之間在操作速度上的差別
(2)IR 用來保存當前正在執行的一條指令。當執行一條指令時,先把它從指令cache存儲器(指存)中讀出,然后再傳送至IR 。指令划分為操作碼和地址碼字段;一個叫指令譯碼器 的部件可以譯碼,然后向操作控制器發出具體操作的特定信號。IR 中的操作碼字段的輸出就是指令譯碼器的輸入
(3)PC 兩種情況:順序執行--> pc+1->pc ; 轉移執行-->JMP 指令
(4)AR 主要用於解決主存/外設和CPU之間的速度差異。使地址信息可以保持到主存/外設的讀寫操作完成為止
(5)通用寄存器 當ALU執行運算時,為ALU提供一個工作區。例如,執行一次加法運算,選擇兩個操作數相加(假設存放在通用寄存器R0,R1),放到其中一個寄存器中(如R1)
(6)PSW 保存由ALU運算或測試結果的各種條件代碼。如運算結果進位標志(C)、運算結果溢出標志(V)等等
4.操作控制器與時序產生器
寄存器之間傳送信息的通路,稱為數據通路 。操作控制器的部件需要完成的任務就是,在各寄存器之間建立數據通路。根據指令譯碼器傳過來的指令操作碼和時序信號,產生各種操作控制信號,然后正確的選擇數據通路,將有關數據打入到一個寄存器,從而完成取指令和執行指令的控制。
5.2 指令周期
1.指令周期基本概念 取出一條指令並執行這條指令總共需要的時間。指令周期通常由若干個CPU周期(又稱機器周期或者時鍾周期)數來表示。取指階段需要一個CPU周期時間
2.MOV指令的指令周期,MOV R0,R1 RR型指令,需要兩個CPU周期,取指周期需要一個,執行周期需要一個。
取指周期中CPU完成三件事:從指存中取出指令;對PC加1;將指令操作碼輸出到指令譯碼器進行譯碼或測試,以便進一步確定進行什么操作。
取指周期:
(1)PC-->AR
(2)M-->DR
(3)DR-->IR
(4)PC + 1--> PC
(5)指令寄存器中的操作碼(OP)傳入指令譯碼器譯碼
(6)CPU識別出MOV指令,取指周期結束
執行周期:
(1)OC送出控制信號到通用寄存器,選擇R1(10)作為源寄存器,選擇R0作目標寄存器
(2)OC送出控制信號到ALU,指定ALU做傳送操作
(3)OC送出控制信號,打開ALU輸出三態門,將ALU輸出送到數據總線DBUS上,注意:任何時候DBUS上只能有一個數據
(4)OC送出控制信號,將DR中的數據10打入到目標寄存器R0,R0的內容由00變成10
3.LAD指令的指令周期,LAD R1,6 RS型指令。先從指令寄存器(IR)取指,然后從數據存儲器6號單元取出數據裝入通用寄存器R1。由於一次訪問指存,一次訪問數存,需要3個CPU周期
取指周期:同上
執行周期:
(1)OC發出控制命令打開IR輸出三態門,將指令中的直接地址碼6放到數據總線DBUS
(2)OC發出操作命令,將地址碼6裝入數存地址寄存器AR
(3)OC發出讀命令,將數存6號單元中的數100讀入DBUS
(4)OC發出命令,將DBUS上的數據100裝入DR
(5)OC發出命令,將DR中的數據100裝入R1,LAD指令執行周期結束
4.ADD指令的指令周期,ADD R1,R2 RR型指令,取指訪問、執行周期,一共需要兩個CPU周期
取指周期:同上
執行周期:
(1)OC送出控制命令到通用寄存器,選擇R1做源寄存器,R2做目標寄存器
(2)OC送出控制命令到ALU,指定ALU做R1和R2的加法操作
(3)OC送出控制命令,打開ALU輸出三態門,運算結果放到DBUS上
(4)OC送出控制命令,將DBUS上數據打入DR;ALU產生的進位信號保存到PSW中
(5)OC送出控制命令,將DR裝入R2,至此ADD指令執行周期結束
5.STO指令的指令周期,STO R2,(R3) RS型指令,先訪問指存取出STO指令,然后按(R3)=30地址訪問數存(訪問30號地址單元),將(R2)=120寫入到30號地址單元。一次訪問指存,一次訪問數存,所以需要3個CPU周期
取指周期:同上
執行周期:
(1)OC送出操作命令到通用寄存器,選擇(R3)=30做數據存儲器的地址單元
(2)OC送出操作命令,打開通用寄存器輸出三態門,將30放到DBUS上
(3)OC發出操作命令,將地址30打入AR,並進行數存地址譯碼,地址30是從DBUS上得到(這里就是訪問數存)
(4)OC發出操作命令到通用寄存器,選擇(R2)=120,作為數存的寫入數據
(5)OC發出操作命令,打開通用寄存器輸出三態門,將數據120放到DBUS上
(6)OC發出操作命令,將數據120寫入數存30號單元。STO指令執行周期結束
6.JMP指令的指令周期,JMP 101 JMP是一條無條件轉移指令,用來改變程序的執行順序。指令周期為2個CPU周期,取指是一個CPU周期,執行周期是一個CPU周期
取指周期:同上
執行周期:
(1)OC發出操作控制指令,打開IR輸出三態門,將IR中的地址碼101發送到DBUS上
(2)OC發出操作控制指令,將DBUS上的地址碼101打入到程序計數器PC中。JMP指令執行周期結束
7.用方框圖語言表示指令周期
一個方框表示一個CPU周期,方框中內容表示數據通路的操作或者某種控制操作。一個菱形通常表示某種判別或者測試,不單獨占用一個CPU周期
5.4微程序控制器
利用軟件方法設計硬件的一門技術。
把操作控制信號,編成所謂的“微指令”,存放到一個只讀存儲器里。機器運行時,一條條讀出這些微指令,從而產生全機所需要的各種操作控制信號,是相應部件執行所規定的操作
1.微命令和微操作
一台數字計算機基本可以划分為兩部分——控制部件和執行部件。
控制部件,向執行部件發出控制信息;
執行部件,向控制部件返回狀態信息。
控制部件和執行部件的一種聯系,就是通過控制線。控制部件通過控制線向執行部件發出各種控制命令,通常這種控制命令就稱作微命令;執行部件接收微命令后進行的操作,叫做微操做。
另一種聯系是反饋信息,執行部件通過控制線向控制部件反映操作情況,也叫做“狀態測試”。
微操作分為相容性和相斥性;相容性的微操做指可以在同時或同一個CPU周期內並行執行的微操做。例如ALU的+,-就是相斥性操作,ADD R1,R2,獲取R1,R2就是相容性微操做。
2.微指令和微程序
在機器的一個CPU周期內,一組實現一定操作功能的微命令的組合是微指令。
微指令一般由操作控制和順序控制兩部分組成。
(1)操作控制部分用來發出控制信號,每一位都表示一個微指令,位信息為“1”表示發出微指令,“0”表示不發出。
(2)順序控制部分用來決定產生下一條微指令的地址
微程序就是微指令構成的序列,每條機器指令都對應着一段微程序
3.微程序控制器原理
由控制存儲器、微指令寄存器和地址轉移邏輯三大部分組成。微指令寄存器分為微地址寄存器和微命令寄存器
(1)控制存儲器:存放實現全部指令系統的微程序,只讀。要求速度快,讀出周期短
(2)微指令寄存器:微命令寄存器存放控制存儲器讀出的一條微指令信息。微地址寄存器決定下一條微指令的地址
(3)地址轉移邏輯:用於跳躍尋址微指令時,承擔自動完成修改微地址的任務
4.微程序實例
見書 P 159-160
5.CPU周期與微指令周期的關系
串行方式的微程序控制器中,一個微指令周期等於一個CPU周期
6.機器指令與微指令的關系
(1)一條機器指令對應一個微程序,這個微程序是由若干微指令序列組成。
(2)指令與微指令、程序與微程序、地址與微地址一一對應。前者都是與內存儲器有關,后者與控制存儲器有關。
(3)一個CPU周期對應一條微指令
7.微程序設計技術
微指令編碼
對微指令中的操作控制字段采用的表示方法
(1)直接表示法:操作字段中的每一位代表一個微指令。優點是簡單直觀;缺點是微指令字較長,因而使控制存儲器容量較大
(2)編碼表示法:把一組相斥性微指令信號組成一個字段,然后通過字段譯碼器對每一個微指令信號進行譯碼,譯碼輸出作為操作控制信號。優點是,采用較小的二進制信息表示較多的微命令信號,縮短微指令字長度;缺點是減緩微指令執行速度
(3)混合表示法:(1)(2)混合使用
微地址形成方法
微指令執行的順序控制問題,是如何確定下一條微指令的地址問題,一般有兩種產生后繼地址的方法:
(1)計數器方式:同用程序計數器來產生機器指令地址的方法相似
(2)多路轉移方式:一條微指令具有多個轉移分支的能力稱為多路轉移。當微程序不產生分支時,后繼微地址直接由微指令的順序控制字段給出;當微程序出現分支時,有若干后繼微地址可供選擇:即按順序控制字段的“判別測試”標志和“狀態條件”信息來選擇其中一個微地址。
微指令格式
分為水平型微指令和垂直型微指令
(1)水平型微指令:一次能定義並執行多個並行操作微命令的微指令,一般格式:控制字段、判別測試字段、下地址字段
(2)垂直型微指令:微指令中設置微操作碼字段,采用微操作碼編譯法,由微操作碼規定微指令的功能。垂直型微指令的結構類似與機器指令的結構,它有操作碼。書P 164
5.5硬連線控制器
暫略
5.6流水線CPU
暫略
5.7 RISC CPU
基本特點:
(1)使用等長指令,目前典型長度為4B
(2)尋址方式少且簡單,絕不出現存儲器間接尋址方式
(3)只有取數指令、存數指令訪問存儲器。最多出現RS型指令,不會出現SS型指令
(4)指令集中的指令數目一般少於100,指令格式一般少於4種
(5)指令功能簡單,控制器多采用硬布線方式
(6)平均而言,所有指令的執行時間為一個處理時鍾周期
(7)指令格式中,用於指派整數寄存器的個數不少於32個,用於指派浮點數寄存器的個數不少於16個
(8)強調通用寄存器資源的優化使用
(9)支持指令流水並強調指令流水的優化使用
(10)RISC技術的復雜性在於它的編譯程序,因此軟件系統開發時間比CISC機器長