




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第八章中央處理單元計算機組成原理2009年2月6日8.1CPU的功能和結構8.1.1CPU的結構CPU可以自動完成取出指令和執行指令的任務。
CPU結構框圖PCIR指令控制操作控制時間控制數據加工處理中斷ALU寄存器中斷系統1.CPU與系統總線CU時序電路寄存器ALU
中斷
系統CUCPU控制總線數據總線地址總線2.CPU的內部結構
算術和布爾邏輯取反移位狀態標志內部數據總線CPU寄存器CU中斷系統ALU控制信號…8.1.2CPU的功能
當代主流計算機所遵循的仍然是馮.諾依曼的“存儲程序”思想,即:當用計算機解決某個問題時,首先必須為它編寫程序。
由第七章的討論已知,程序實質上是一個指令序列,這個序列將明確地告訴計算機:應該逐步地執行什么操作;在什么地方找到用來操作的數據,結果存到何處等。
一旦把程序裝入內存儲器,就可以由計算機來自動完成取出指令和執行指令的任務。專門用來完成此項工作的計算機部件稱為中央處理單元,通常簡稱:CPU。顯然,CPU對整個計算機系統的運行是極其重要的。CPU具有如下四方面的基本功能:★指令控制
程序的順序控制稱為指令控制。用于控制指令嚴格地按程序規定的順序,逐條取出并加以執行。
★操作控制
一條指令的功能往往是由若干個操作信號的組合來實現的,因此,CPU負責管理并產生每條指令所對應的操作信號,并把各種操作信號送往相應的部件,從而控制這些部件按指令的要求進行動作。ADDR1,R0★時間控制
對各種操作的實施時間進行定時,稱為時間控制。在計算機中,各種指令的操作信號以及一條指令的整個執行過程都嚴格的時間要求,需要CPU設定規定的時序關系。★數據加工
數據加工就是對數據進行算術運算和邏輯運算處理,這是CPU的核心功能之一。ADDR1,R08.1.3CPU的基本組成
CPU的基本部分由運算器、cache和控制器三大部分組成。
CPU模型參看CAI演示
運算部件寄存器寄存器控制部件運算器控制器運算器:
由算術邏輯運算單元(ALU)、累加寄存器、數據緩沖寄存器和狀態條件寄存器組成,它是數據加工處理部件。相對控制器而言,運算器是一種執行部件,它是接受控制器的命令而進行動作,即:運算器所進行的全部操作都是由控制器發出的控制信號來指揮的。
運算器的主要功能:
(1)執行所有的算術運算;
(2)執行所有的邏輯運算,并進行邏輯測試(如零值測試或兩個值的比較等)。控制器:
由程序計數器PC、指令寄存器IR、指令譯碼器ID、時序產生器和操作控制器等組成,它是發布命令的“決策機構”,即完成對整個計算機系統操作的協調與指揮。控制器的主要功能:
(1)控制機器從內存中取出一條指令,并指出下一條指令在內存中的位置;
(2)對指令進行譯碼或測試,并產生相應的操作控制信號,送往相應的部件,啟動規定的動作;
(3)指揮并控制CPU、內存與輸入/輸出(I/O)設備之間數據流動的方向。8.1.4
CPU中的主要寄存器
在CPU中至少要有六類寄存器:數據緩沖寄存器(DR)、指令寄存器(IR)、程序計數器(PC)、地址寄存器(AR)、累加寄存器(AC)、狀態條件寄存器(PSW),并且根據需要,可以擴充其數目。1.存儲器數據緩沖寄存器(MDR)
存儲器數據緩沖寄存器MDR用來暫時存放由內存讀出的一條指令或一個數據字;反之,當向內存存入一條指令或一個數據字時,也先將它們送到存儲器數據緩沖寄存器MDR中,然后再寫入內存。存儲器緩沖寄存器MDR的作用是:
(1)作為CPU和內存及外部I/O設備之間信息傳送的中轉站;
(2)用于補償CPU與內存及外圍設備之間在操作速度上的差別;
(3)在單累加器結構的運算器中,存儲器數據緩沖寄存器還可兼作為操作數寄存器。2.指令寄存器(IR)
指令寄存器IR用來保存當前正在執行的一條指令。當執行一條指令時,先把它從內存取到緩沖寄存器中,然后再傳送至指令寄存器。指令分為操作碼和地址碼字段,由二進制數字組成。為了執行任何給定的指令,必須對操作碼進行測試,以便識別所要求的操作,指令譯碼器就是完成這項工作的。指令寄存器中的操作碼字段被送入指令譯碼器中,操作碼一經譯碼后,即可向操作控制器發出具體操作的特定信號。3.程序計數器(PC)
為了保證程序能夠連續地執行下去,CPU必須具有某些手段來自動確定下一條指令的地址。而程序計數器PC正是起到這種作用的,所以PC通常又稱為指令計數器。在程序開始執行前,必須將該程序在內存單元的起始地址,即第一條指令的地址送入PC。當執行指令時,CPU將自動修改PC的內容,使其保持的總是將下一條要執行的指令的地址。由于大多數指令都是按順序來執行的,所以修改的過程通常只是簡單的對PC自增即可。當遇到轉移指令(如JMP指令)時,由于后繼指令的地址(即PC的內容)必須從指令的地址段取得。在這種情況下,下一條指令的地址將由轉移指令來規定,而不是像通常一樣按順序來取得。因此程序計數器PC的結構,應當是具有信息寄存和計數兩種功能的結構。4.地址寄存器(MAR)
地址寄存器AR用來保存當前CPU所訪問的內存單元的地址。由于在內存和CPU之間存在著操作速度上的差別,所以必須使用地址寄存器來保持地址信息,直到對內存的讀/寫操作完成為止。當CPU和內存進行信息交換,即CPU向內存存/取數據或指令時,都要使用地址寄存器AR和數據緩沖寄存器DR。此外,我們可以把外圍I/O設備的設備地址作為像內存的地址單元那樣來進行訪問,那么可知,當CPU和外圍設備交換信息時,同樣需要使用地址寄存器和數據緩沖寄存器。地址寄存器的結構和數據緩沖寄存器、指令寄存器一樣,通常使用單純的寄存器結構。信息的存入一般采用電位-脈沖方式,即電位輸入端對應數據信息位,脈沖輸入端對應控制信號,在控制信號clk的作用下,瞬時地將信息打入寄存器5.累加寄存器(AC)
累加寄存器AC通常簡稱為累加器,它是一個通用寄存器。其功能是:當運算器需執行算術或邏輯運算時,為ALU提供一個工作區,它可暫時存放ALU運算的結果信息。顯然,運算器中至少要有一個累加寄存器。目前CPU中的累加寄存器,多達16個,32個,甚至更多。當使用多個累加器時,就變成通用寄存器堆結構,其中任何一個可存放源操作數,也可存放結果操作數。在這種情況下,需要在指令格式中對寄存器號加以編址。6.狀態條件寄存器(PSW)
狀態條件寄存器保存由算術指令和邏輯指令運行或測試的結果建立的各種條件碼內容,如運算結果進位標志(C),運算結果溢出標志(V),運算結果為零標志(Z),運算結果為負標志(N)等等。這些標志位通常分別由1位觸發器保存。除此之外,狀態條件寄存器還保存中斷和系統工作狀態等信息,因此,狀態條件寄存器是一個由各種狀態條件標志拼湊而成的寄存器。其作用是使CPU和系統能及時了解機器運行狀態和程序運行狀態。
8.2操作控制器與時序產生器
數據通路:是指寄存器之間傳送信息的通路。信息從什么地方開始,中間經過哪個寄存器或多路開關,最后傳送到哪個寄存器,都要加以控制。在各寄存器之間建立數據通路的任務,是由稱為操作控制器的部件來完成的。
時序產生器:產生并發出計算機所需要的時序控制信號。
操作控制器的功能:就是根據指令操作碼和時序信號,產生各種操作控制信號,以便正確地建立數據通路,從而完成取指令和執行指令的控制。
根據設計方法不同,操作控制器可分為時序邏輯型、存儲邏輯型、時序邏輯與存儲邏輯結合型三種類型。1.硬布線控制器是采用時序邏輯技術來實現的控制器,屬于時序邏輯型;2.微程序控制器是采用存儲邏輯來實現的控制器,屬于存儲邏輯型;3.前兩種方式的組合
(時序+存儲)的方法構成。8.3指令周期
8.3.1指令周期的基本概念
計算機所以能自動地工作,是因為CPU能從存放程序的內存里取出一條指令并執行這條指令;緊接著又是取指令,執行指令……,如此周而復始,構成了一個封閉的循環。除非遇到停機指令,否則這個循環將一直繼續下去。
CAI演示[名詞概念]:指令周期
:
CPU從內存取出一條指令并執行完這條指令的時間總和。
CPU周期
:
又稱機器周期,CPU訪問內存所花的時間較長,因此用CPU從內存讀取一條指令字的所需的最短時間來定義。時鐘周期
:
通常稱為節拍脈沖或T周期。一個CPU周期包含若干個時鐘周期T。
相互關系:
1個指令周期=若干個CPU周期;
1個CPU周期=若干T周期
取指時間+執行指令時間
下圖示出了采用定長CPU周期的指令周期示意圖。
[例]:為了分析不同類型的指令所對應的指令周期的情況,后面分析由5條典型指令構成的簡單程序的執行特征,以加深對指令周期及指令執行過程的理解。
020
CLA
;累加器清0
(非訪內指令)
021
ADD30;(AC)+(30)→AC
(訪內指令)
022
STA40
;(AC)→(40)
(訪內指令)
023
NOP
;空操作
(非訪內指令)
024
JMP21
;21→PC
(非訪內指令)可見:程序中有兩大類指令,即:非訪內型指令和訪內型指令。8.3.2指令周期1.一個指令周期包括如下周期:取指:將下一條指令由存儲器讀入中央處理器。執行:解釋操作碼并完成指定的操作。中斷:若中斷是允許的并且已出現,則保存當前進程的狀態并為此中斷服務。開始取下一條指令執行指令檢查中斷處理中斷停機圖8-4有中斷的指令周期2.間址周期指令的執行可能涉及到一個或多個存儲器中的操作數,它們每個都要求一次存儲器訪問,而且,若使用間接尋址,則還需要另外的存儲器訪問。我們可把間接地址的取看成是一個額外的指令子周期,如下圖所示。動作的主線由交替的取指令和指令執行動作組成。取來一條指令之后,要對它進行檢查以確定是否需要間接尋址。若是,則所要求的操作數使用間接尋址方式取來。在執行之后,可能有一個中斷在取下一條指令之前被處理。
取指令執行間接中斷圖8-5指令周期具有間接尋址的指令周期帶有中斷周期的指令周期取指周期間址周期指令周期執行周期取指周期間址周期指令周期執行周期中斷周期3.指令周期流程取指周期執行周期有間址嗎?有中斷嗎?間址周期中斷周期是是否否圖8-6準確地說明了指令周期的本質。一旦取來一條指令,它的操作數指定器必須證實。然后取每個存儲器中的操作數,這個過程可能要求間接尋址。寄存器操作數不需要取,一旦操作碼被執行,可能需要一個類似的過程將結果存入主存。指令地址計算指令操作譯碼操作數地址計算數據操作操作數地址計算中斷檢查中斷取指令取操作數存操作數間接間接下一條指令字符串或向量無中斷圖8-6指令周期狀態圖4.CPU工作周期的標志CPU訪存有4種性質取指令取地址取操作數存程序斷點取指周期間址周期執行周期中斷周期FEDINDDINTDCLK1FE1IND1EX1INTEXDCPU的4個工作周期5.三類指令的指令周期取指周期執行周期取指周期執行周期取指周期執行周期取指周期間址周期執行周期(1)非訪存指令周期(2)直接訪存指令周期(3)間接訪存指令周期(4)轉移指令周期
(1)非訪存指令的指令周期
CLA是一條非訪內指令,它需要兩個CPU周期,其中:取指令階段需要一個CPU周期,執行指令階段需要一個CPU周期。其指令周期請參看CAI演示①取指令階段
(a)程序計數器PC的內容20(八進制)被裝入地址寄存器AR;
(b)程序計數器內容加1,變成21,為取下一條指令做好準備;
(c)地址寄存器的內容被放到地址總線上;
(d)所選存儲器單元20的內容經過數據總線,傳送到數據緩沖寄存器DR;
(e)緩沖寄存器的內容傳送到指令寄存器IR;
(f)指令寄存器中的操作碼被譯碼或測試;
(g)CPU識別出是指令CLA,至此,取指令階段即告結束。
②執行指令階段
(a)操作控制器送一控制信號給算術邏輯運算單元ALU;
(b)ALU響應該控制信號,將累加寄存器AC的內容全部清零,從而執行了CLA指令。
(2)取數(訪存)指令的指令周期
顯然,本程序中的ADD指令是一條訪存型指令,本指令的指令周期由三個CPU周期組成,1個CPU周期用于取出指令,2個CPU周期用于指令的執行。
請參看CAI演示。①.送操作數地址
第二個CPU周期主要完成送操作數地址。在此階段,CPU的動作只有一個,那就是把指令寄存器中的地址碼部分(30)裝入地址寄存器,其中30為內存中存放操作數的地址。
把指令寄存器中的地址碼部分(30)裝入地址寄存器第三個CPU周期主要完成取操作數并執行加法操作中。在此階段,CPU完成如下動作:
(AC)+(30)→AC
(2)由存儲器單元30中讀出操作數(6),并經過數據總線傳送到緩沖寄存器。
(3)存數指令的指令周期
本例中,STA指令也是一條訪內型指令,對應的指令周期由三個CPU周期組成。也是:1個CPU周期用于取出指令,2個CPU周期用于指令的執行。
請參看CAI演示。在執行階段的第一個CPU周期中,CPU完成的動作是把指令寄存器中地址碼部分的形式地址40裝到地址寄存器。其中數字40是操作數地址。①.送操作數地址執行階段的第二個CPU周期中,累加寄存器的內容傳送到緩沖寄存器,然后再存入到所選定的存儲單元(40)中。CPU完成如下動作:
(a)累加器的內容(6)被傳送到數據緩沖寄存器DR;
(b)把地址寄存器的內容(40)發送到地址總線上,40即為將要存入的數據6的內存單元號;
(c)把緩沖寄存器的內容(6)發送到數據總線上;
(d)數據總線上的數寫入到所選中的存儲器單元中,即將數6寫入到存儲器40號單元中。
注意:
在這個操作之后,累加器中仍然保留和數6,而存儲器40號單元中原先的內容被沖掉。
(4)空操作指令和轉移指令的指令周期第四條指令即“NOP”指令,這是一條空操作指令。其中第一個CPU周期中取指令,CPU把23號單元的“NOP”指令取出放到指令寄存器;第二個CPU周期中執行該指令。
因譯碼器譯出是“NOP”指令,第二個CPU周期中操作控制器不發出任何控制信號,機器空等一個CPU周期。JMP指令的指令周期由兩個CPU周期組成,請參看CAI演示。①.第一個CPU周期(取指令階段)
CPU把24號單元的“JMP21”指令取出放至指令寄存器,同時程序計數器內容加1,變為25,從而取下一條指令做好準備。(24)→IR(PC)+1→PC②.第二個CPU周期(執行階段)
CPU把指令寄存器中地址碼部分21送到程序計數器,從而用新內容21代替PC原先的內容25。這樣,下一條指令將不從25單元讀出,而是從內存21單元開始讀出并執行,從而改變了程序原先的執行順序。
五條指令的取指和執行過程
我們把前面的五條典型指令加以歸納,其取指和執行過程請見CAI演示。2.數據流指令周期期間,嚴格的事件序列取決于中央處理器的設計,然而我們能以通常的方式取出什么事件必定發生。先假定一個中央處理器,它有存儲器地址寄存器(MAR)一個存儲器緩沖寄存器(MDR),一個程序計數器(PC),一個指令寄存器(IR)。在取指令周期期間,一條指令由存儲器讀入,圖8-6表示此期間的數據流動。開始時PC內容有待取的下一條指令的地址。這個地址被傳送到并放在地址總線上。控制器發生一次存儲讀,其結果放到數據總線上并被復制到MBR,然后傳送到IR。在此期間PC增1,為下次取指做好準備。
1.取指周期數據流指令周期的數據流MDRCUMARPCIR存儲器CPU地址總線數據總線控制總線IR+1
一旦經歷取指周期,控制器檢查IR的內容,以確定是否有一個使用間接尋址的操作數指定器。若是一個間址周期完成,如圖8-8所示,這是一個簡單周期。MDR最右的N位是一個地址引用,被傳送到MAR。然后,控制器發一個存儲器讀信號,得到所要求的操作數地址并送入MDR。像取指和間址周期一樣,中斷周期是可預期的。圖8-9。PC的當前內容必須保存,以便在中斷之后中央處理器能恢復正常的工作。于是,PC的內容傳送到MBR,將被寫入存儲器。為此目的,一個專門的存儲器位置內控制器裝入,例如它可能是一個堆棧指針。年三月中斷子程序的地址裝入PC。結果是,下一指令周期將以取此相應的指令而開始。
間址周期數據流MDRCUMARCPU地址總線數據總線控制總線PCIR存儲器MDR執行周期數據流中斷周期數據流不同指令的執行周期數據流不同MDRCUMARCPU地址總線數據總線控制總線PC存儲器程序計數器運算器控制器控制存儲器用于運算器輸入/出設備主存儲器控制總線041278BD2090CZVS接口.PCMARIR數據總線地址總線ALU乘商寄存器66881234R9操作數地址操作碼寄存器組映射地址寄存器指令寄存器微程序定序器主振脈沖微指令寄存器下地址字段內容80034090807A48098FBAC003041800807800801
0401
0401
4275
4275
MARPC讀內存,IR讀出內容R0
R0+R1PCPC+1+ADDR0,R18.3.3用指令流程圖表示指令周期上述典型指令用指令流程圖描述
·公操作:指每一條指今執行完畢后,CPU所進行的一些操作,這些操作包括CPU對外設請求的處理,如中斷處理、通道處理等。
·方框圖語言描述方法是較為重要的內容,應掌握。例題1:某計算機的數據通路如下圖所示,其中M—主存,MBR—主存數據寄存器,MAR—主存地址寄存器,R0-R3—通用寄存器,IR—指令寄存器,PC—程序計數器(具有自增能力),C、D--暫存器,ALU—算術邏輯單元(此處做加法器看待),移位器—左移、右移、直通傳送。所有雙向箭頭表示信息可以雙向傳送。
請按數據通路圖畫出“ADD(R1),(R2)+”指令的指令周期流程圖。該指令的含義是兩個數進行求和操作。其中源操作地址在寄存器R1中,目的操作數尋址方式為自增型寄存器間接尋址(先取地址后加1)。解:“ADD(R1),(R2)+”指令是SS型指令,兩個操作數均在主存中。其中源操作數地址在R1中,所以是R1間接尋址。目的操作數地址在R2中,由R2間接尋址,但R2的內容在取出操作數以后要加1進行修改。指令周期流程圖如圖所示:例題2:某計算機有如下部件:ALU,移位器,主存M,主存數據寄存器MDR,主存地址寄存器MAR,指令寄存器IR,通用寄存器R0——R3
,暫存器C和D。見下圖所示(1)請將各邏輯部件組成一個數據通路,并標明數據流向。(2)畫出“ADDR1,(R2)”指令的指令周期流程圖,指令功能是(R1)+((R2))→R1。解:(1)各功能部件聯結成如圖所示數據通路。(2)此指令為RS型指令,一個操作數在R1中,另一個操作數在R2為地址的內存單元中,相加結果放在R1中。送當前指令地址到MAR取當前指令到IR,PC+1,為取下條指令做好準備①取R1操作數→C暫存器。②R2中的內容是內存地址③從內存取出數→D暫存器④暫存器C和D中的數相加后送R1
8.4時序產生器和控制方式1.時序信號的作用計算機的操作控制器發出的各種控制信號是時間因素和空間因素的函數,以保證機器有條不紊地工作。2.時序信號組成時序系統最基本體制:電位-脈沖制,即脈沖到達之前,電平信號必須要穩定。以操作控制信號控制數據通路。以時序信號保證各操作信號執行的先后次序。
1)硬布線控制器時序
采用三級體制:主狀態周期--節拍電位--節拍脈沖
(指令周期)(CPU周期)(時鐘周期)
·主狀態周期可包含若干個節拍電位,為最大的時間單位;
·-個節拍電位表示一個CPU周期的時間,它表示了一個較大的時間單位;
·在一個節拍電位中又包含若干個節拍脈沖,表示較小的時間單位。
2)微程序控制器時序
采用二級體制:節拍電位--節拍脈沖
8.4.1時序信號產生器
微程序控制器中使用的時序信號產生器由時鐘源、環形脈沖發生器、節拍脈沖和讀寫時序譯碼邏輯、啟停控制邏輯等部分組成。1.時鐘源時鐘源用來為環形脈沖發生器提供頻率穩定、且電平匹配的方波時鐘脈沖信號。它通常由石英晶體振蕩器和與非門組成的正反饋振蕩電路組成,其輸出送至環形脈沖發生器。2.環形脈沖發生器
環形脈沖發生器的作用:是產生一組有序的、間隔相等或不等的脈沖序列,以便通過譯碼電路來產生最后所需的節拍脈沖。
123456789101112131415ΦΦC4C1C2C32.節拍脈沖和存儲器讀/寫時序譯碼
環形脈沖發生器的作用:是產生一組有序的、間隔相等或不等的脈沖序列,以便通過譯碼電路來產生最后所需的節拍脈沖。T1O=C1?C2T2O=C2?C3T3O=C3T4O=C1RDO=C2?RD’WEO=C3?WE’
123456789101112131415ΦΦC4C1C2C3RD’RDWE’WET1T2T3T4CPU周期CPU周期CPU周期T4O=C1T1O=C1?C2T2O=C2?C3T3O=C3RDO=C2?RD’WEO=C3?WE’T40的下降沿采樣啟/停信號的狀態8.4.2控制方式
控制方式:即控制不同操作序列時序信號的方法。常用的有同步控制、異步控制、聯合控制三種方式,其實質反映了時序信號的定時方式。
1.同步控制方式在任何情況下,已定的指令在執行時所需的CPU周期(機器周期)數和時鐘周期數都固定不變。根據不同情況,同步控制方式可選取如下方案:(1)采用完全統一的機器周期執行各種不同的指令。(2)采用不定長機器周期。(3)中央控制與局部控制結合。
產生不同微操作命令序列所用的時序控制方式
同步控制方式任一微操作均由統一基準時標的時序信號控制CLK機器周期機器周期機器周期(取指令)(取有效地址)(執行指令)指令周期T0T1T2T3T0T1T2T3T0T1T2T3(1)采用完全統一的機器周期和節拍以最長的微操作序列和最繁的微操作作為標準(2)采用不同節拍的機器周期機器周期機器周期(取指令)(執行指令)指令周期T0T1T2T3T0T1T2
節拍(狀態)機器周期機器周期(取指令)(執行指令)T0T1T2T3T0T1T2T3TT延長(3)采用中央控制和局部控制相結合的方法T0T1T2T3T0T1T2中央控制節拍T*T*T*局部控制節拍
T3T0T1中央控制節拍機器周期執行周期指令周期取指周期T0T1T2T3局部控制的節拍寬度與中央控制的節拍寬度一致2.異步控制方式
其特點是:每條指令、每個操作控制信號需要多少時間就占用多少時間。這意味著每條指令的指令周期可由多少不等的機器周期數組成;也可以是當控制器發出某一操作控制信號后,等待執行部件完成操作后發“回答”信號,再開始新的操作。顯然,用這種方式形成的操作控制序列沒有固定的CPU周期數(節拍電位)或嚴格的時鐘周期(節拍脈沖)與之同步。
3.聯合控制方式
此為同步控制和異步控制相結合的方式。
情況(1):大部分操作序列安排在固定的機器周期中,對某些時間難以確定的操作則以執行部件的“回答”信號作為本次操作的結束;
情況(2):機器周期的節拍脈沖數固定,但是各條指令周期的機器周期數不固定。8.4.3中央處理器控制流程計算機對信息進行處理是通過不斷執行程序來實現的。程序是能完成某個確定算法的指令序列,所以計算機進行信息處理的過程就是不斷地取指令,分析指令和執行指令這樣一個周而復始的過程。由以下幾步完成:
啟動程序執行完?取出指令分析指令執行指令是否有中斷?轉中斷處理程序YNNY圖8-3CPU控制流程1.取指令:由程序計數器(PC)指出當前指令地址,通過執行“(MAR←(PC)”和“讀”命令,從主存中取出指令。2.分析指令:或稱解釋指令,指令譯碼等。對取出的指令進行分析,指出它執行什么操作產生相應的操作控制信號。如果參與操作的數據在主存中,則還要形成操作數地址。3.執行指令:根據指令分析得到的“操作命令”和“操作數地址”,按一定的算法形成相應的操作控制命令序列,通過運算器、存儲器及外部設備的具體執行,實現每條指令的功能。響應該請求,中止當前執行的程序,轉去執行中斷服務程序,處理完畢,返回原程序繼續執行。
8.4.4控制單元CU
控制單元產生中央處理器所有的微操作控制信號。所謂微操作,即計算機中最簡單不能再分解的操作,如打開某一個控制門,寄存器的清除脈沖等。復雜操作是通過執行一系列微操作實現的。根據指令譯碼器產生的操作控制信號,時序部件產生的時序信號以及其他控制條件可以產生整個機器所需要的全部微操作控制信號。這些控制信號引向計算機各個部件,以控制指令的執行。此部件可由硬連線方式或微程序方式實現。除上述的主要組成部件外,一般還應包括指令譯碼器,對指令寄存器中的操作碼(有時也包括尋址等)進行譯碼,產生相應的控制信號。而且中央處理器中的這些組成部件一般通過中央處理器內部總線將各部件連接在一起。
控制單元的外特性指令寄存器控制單元
CU…時鐘標志CPU內部的控制信號到系統總線的控制信號來自系統總線的控制信號系統總線8.5指令流水線8.5.1如何提高機器速度1.提高訪存速度2.提高I/O和主機之間的傳送速度4.提高整機處理能力高速芯片Cache多體并行多總線DMAI/O處理機通道高速器件改進系統結構,開發系統的并行性中斷3.提高運算器速度高速芯片改進算法快速進位鏈8.5.2系統的并行性時間上互相重疊2.并行性的等級指令級(指令之間)過程級(程序、進程)兩個或兩個以上事件在同一時刻發生兩個或兩個以上事件在同一時間段發生并行1.并行的概念粗粒度軟件實現細粒度硬件實現并發同時取指令3執行指令38.5.3指令流水原理2.指令的二級流水1.指令的串行執行取指令
取指令部件完成總有一個部件空閑指令預取若取指和執行階段時間上完全重疊指令周期減半速度提高1倍…執行指令
執行指令部件完成取指令1執行指令1取指令2執行指令2取指令3執行指令3取指令2執行指令2取指令1執行指令18.5.4流水線策略指令流水類似于工廠的裝配線的使用。即一個產品要通過幾個制作步驟。通過把制作過程安排在一條裝配線上,產品能在各個階段同時被加工。這種過程被稱為流水處理,因為作為一條流水線,在先前接收的輸入已成為加工的結果出現在另一端時,新的輸入又在一端被接收進來。將這種概念施加到指令的執行上,事實上一條指令的執行也是分成幾個步驟。作為一個簡化的方法,將指令處理分成兩個階段:取指令和執行指令。在一條指令執行期間,有主存未被存取的時間。這個時間能用于取下一條指令,從而這個取與當前指令的執行并行工作。圖8-9(一)描述了這種方法。此流水線有兩個獨立的階段。第一個階段取一條指令并緩存它。當第二個階段空閑時,第一個階段將緩存的指令輸送給它。當第二個階段正在執行此指令時,第一個階段利用未使用的存儲器周期來取下一條指令并緩存它。這稱為指令預取或取交迭。8.6中斷系統8.6.1概述1.引起中斷的各種因素(1)人為設置的中斷(2)程序性事故如轉管指令溢出、操作碼不能識別、除法非法(5)外部事件(4)I/O設備(3)硬件故障用鍵盤中斷現行程序轉管指令………管理程序2.中斷系統需解決的問題(1)各中斷源如何向CPU提出請求?(2)各中斷源同時提出請求怎么辦?(5)如何尋找入口地址?(4)如何保護現場?(3)CPU什么條件、什么時間、以什么方式
響應中斷?(6)如何恢復現場,如何返回?(7)處理中斷的過程中又出現新的中斷怎么辦?硬件
+軟件8.6.2中斷和異常有兩類事件能引起PII掛起當前指令流的執行并響應事件;中斷和異常。兩種情況下處理器都要保存當前進程的上下文,并將轉至一個預先定義的子程序來執行特殊的服務。中斷通常是由硬件信號產生的,并可出現在程序執行期間內的任何時刻。異常是由軟件產生的,是由執行指令所引發的。有兩類中斷源和兩類異常源:1.中斷1)可屏蔽中斷:由處理器的INTR引腳接收此信號。除非中斷允許標志(IF)被置位,否則處理器不響應可屏蔽中斷。2)不可屏蔽中斷:由處理器的NMI引腳接收其信號。這類中斷的響應不能不響應。
2.異常1)處理器確定的異常:當試圖執行一條指令而處理器遇到一個錯誤時此異常發生。2)程序異常:有些指令(INTO,INT3,INT等)能產生異常。8.6.3中斷請求標記和中斷判優邏輯1.中斷請求標記INTR一個請求源
一個INTR
中斷請求標記觸發器多個INTR
組成中斷請求標記寄存器INTR
分散在各個中斷源的接口電路中INTR集中在CPU
的中斷系統內12345n掉電過熱階上溢內存讀寫校驗錯非法除法鍵盤打印機2.中斷判優邏輯①
分散在各個中斷源的接口電路中鏈式排隊器②集中在CPU
內(1)硬件實現(排隊器)
1
1
1
&
1
&
1
&INTR1INTR2INTR3INTR4INTR1
、
INTR2、
INTR3、
INTR4
優先級按降序排列INTP1INTP2INTP3INTP4A、B、C
優先級按降序排列(2)軟件實現(程序查詢)否……是否A請求?是B
請求?是否C請求?轉A
的服務程序入口地址轉B
的服務程序入口地址轉C
的服務程序入口地址是是是否否8.6.4中斷服務程序入口地址的尋找1.硬件向量法入口地址200入口地址300入口地址40012H13H14H主存12H13H14HJMP200JMP300JMP400主存向量地址形成部件…………中斷向量排隊器輸出向量地址
12H、13H、14H入口地址
200、300、4002.軟件查詢法中斷識別程序(入口地址M)地址說明指令
M
JMP1#SR1#D=1轉1#服務程序
SKPDZ2#
JMP2#SR2#D=0跳2#D=1轉2#服務程序
SKPDZ8#
JMP8#SR8#D=0跳8#D=1轉8#服務程序八個中斷源1、2、8按降序排列…………
SKPDZ1#1#D=0跳(D為完成觸發器)8.6.5中斷響應1.響應中斷的條件允許中斷觸發器EINT=12.響應中斷的時間指令執行周期結束時刻由CPU發查詢信號
CPU中斷查詢INTR1DQINTR2DQINTRnDQ中斷源1中斷源2中斷源n……至排隊器3.中斷隱指令(1)保護程序斷點(2)尋找服務程序入口地址(3)硬件關中斷向量地址形成部件INTSQREINTSQRPC
1
&≥1排隊器……斷點存于特定地址(0號地址)內斷點進棧INT中斷標記EINT允許中斷R–S
觸發器向量地址PC(硬件向量法)中斷識別程序入口地址MPC(軟件查詢法)8.6.6保護現場和恢復現場1.保護現場2.恢復現場寄存器內容斷點保護現場其他服務程序恢復現場中斷返回PUSH視不同請求源而定POP中斷服務程序完成中斷服務程序中斷隱指令完成中斷服務程序完成IRET1.多重中斷的概念klmk
+1l
+1m
+1第一次中斷第二次中斷第三次中斷程序斷點k+1,l+1,m+18.6.7中斷屏蔽技術2.實現多重中斷的條件B,CA中斷請求主程序(2)優先級別高的中斷源有權中斷優先級別低的中斷源(1)提前設置開中斷指令ABCD中斷服務程序(A、B、C、D優先級按降序排列)D
&3.屏蔽技術(1)屏蔽觸發器的作用MASK=0(未屏蔽)INTR能被置“1”
1
&
&
&
1
1
1
1INTP1INTP2INTP3INTP4INTR1INTR2INTR3INTR4MASK1MASK2MASK3MASK4DQ
1
DINTR
MASKQCPU查詢MASKi
=1(屏蔽)INTPi
=0(不能被排隊選中)(2)屏蔽字優先級屏蔽字111111111111111101111111111111110011111111111111000111111111111100001111111111110000011111111111……000000000000001100000000000000011234561516……16個中斷源1、2、3……
16按降序排列(1)斷點進棧(2)斷點存入“0”地址中斷隱指令完成中斷周期命令存儲器寫0MARPCMDR(MDR)存入存儲器三次中斷,三個斷點都存入“0”地址4.多重中斷的斷點保護斷點MDR?如何保證斷點不丟失?中斷隱指令完成(3)程序斷點存入“0”地址的斷點保護
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家具小門店轉讓合同協議
- 智商書單測試題及答案
- 護理領域質控要求與考核試題及答案
- 刑警內勤考試題及答案
- 光電工程師考試提升信心的試題及答案
- 2025年鄉村助理醫師考試公共衛生危機應對試題及答案
- 人類語音測試題及答案
- 臨床能力驗證的試題及答案
- 2024年衛生管理考試綜合分析試題及答案
- 提高光電工程師考試現場應變能力試題及答案
- 酶免疫技術(免疫學檢驗課件)
- 教育經濟與管理院校排名
- 基本農田劃定技術規程(TDT1032-2011)
- 圍術期支氣管痙攣
- 高新區市政道路可行性研究報告
- 產品零部件防銹規定
- 籍貫對照表完整版
- AGC 系統安全事故應急處置程序
- 變位齒輪與變位齒輪傳動
- 二級精神病醫院評價細則
- TGIA 004-2020 垃圾填埋場地下水污染防治技術指南
評論
0/150
提交評論