程序員火花塞 2021-09-18 07:54:53 阅读数:866
1.3 CPU中的主要寄存器
在CPU中至少要有六類寄存器。這些寄存器用來暫存一個計算機字。根據需要,可以擴充其數目。下面詳細介紹這些寄存器的功能與結構:
①:數據緩沖寄存器(DR:Data Register)
②:指令寄存器(IR:Instruction Register)
③:程序計數器(PC:Program Counter)
④:地址寄存器(AR:Data Register)
⑤:累加寄存器(AC:Accumulate Count)
⑥:狀態條件寄存器(PSW:Program Status Word)
1. 數據緩沖寄存器(DR)
數據緩沖寄存器用來暫時存放由內存讀出的一條指令或一個數據字;反之,當向內存存入一條指令或一個數據字時,暫時將它們存放在數據緩沖寄存器中。
緩沖寄存器的作用是:
(1)作為CPU和內存、外部設備之間信息傳送的中轉站
(2)補償CPU和內存/外圍設備之間操作速度上的差別
(3)在單累加器結構的運箅器中,數據緩沖寄存器還可兼作為操作數寄存器。
2. 指令寄存器(IR)
指令寄存器用來保存當前正在執行的一條指令,
當取出一條指令時:
指令從內存→緩沖寄存器DR→指令寄存器IR指令寄存器中的操作碼字段從指令寄存器IR→指令譯碼器操作控制器
指令譯碼器對操作碼進行測試,以便識別所要求的操作。操作控制器:發出具體操作的特定信號,控制各個部件的操作。
3. 程序字計數器(PC)
程序計數器用來存放當前要執行的指令的地址(下一條指令的地址)。
程序計數器的結構應當是具有奇存信息和邊數兩種功能的結構。
(1)在程序開始執行前,必須將它的起始地址,即程序的第條指令所在的內存單元地址送入PC,因此PC的內容即是從內存提取的第一條指令的地址。
(2)當執行指令時,CPU將自動修改PC的內容,以便使其保持的總是將要執行的下一條指令的地址。由於大多數指令都是按順序來執行的,所以修改的過程通常只是簡單的對PC加1
(3)當遇到轉移指令如JMP指令時,那麼後繼指令的地址(即PC的內容)必須從指令的地址段取得。在這種情况下,下一條從內存取出的指令將由轉移指令來規定,而不是像通常一樣按順序來取得。
4. 地址寄存器(AR)
地址寄存器用來保存當前CPU所訪問的內存單元的地址。由於在內存和CPU之間存在著操作速度上的差別,所以必須使用地址寄存器來保持地址信息,直到內存的讀/寫操作完成為止。
地址寄存器的結構和數據緩沖寄存器、指令寄存器一樣,通常使用單純的寄存器結構。信息的存入一般采用電比特脈沖方式,即電比特輸入端對應數據信息比特,脈沖輸入端對應控制信號,在控制信號作用下,瞬時地將信息打入寄存器
5. 累加寄存器(AC)
累加寄存器AC通常簡稱為累加器,它是一個通用寄存器。
其功能是:當運算器的算術邏輯單元ALU執行算術或邏輯運算時,為ALU提供一個工作區。累加寄存器暫時存放ALU運算的結果信息。顯然,運算器中至少要有一個累加寄存器。
目前CPU中的累加寄存器,多達16個,32個,甚至更多。當使用多個累加器時,就變成通用寄存器堆結構,其中任何一個可存放源操作數,也可存放結果操作數。在這種情况下,需要在指令格式中對寄存器號加以編址。
6. 狀態條件寄存器(PSW)
狀態條件寄存器保存由算術指令和邏輯指令運行或測試的結果建立的各種條件碼內容。
如運算結果進比特標志( C ),運算結果溢出標志(V),運算結果為零標志(Z),運算結果為負標志(N)等等。這些標志比特通常分別由1比特觸發器保存。
除此之外,狀態條件寄存器還保存中斷和系統工作狀態等信息,以便使CPU和系統能及時了解機器運行狀態和程序運行狀態。因此,狀態條件寄存器是一個由各種狀態條件標志拼凑而成的寄存器。
1.4 操作控制器與的序產生器操作控制器的功能:
根據指令操作碼和時序信號,產生各種操作控制信號,以便正確地建立數據通路,從而完成取指令和執行指令的控制。
數據通路是許多寄存器之間傳送信息的通路,信息從什麼地方開始,中間經過哪個寄存器或多路開關,最後傳送到哪個寄存器,都要加以控制。在各寄存器之間建立數據通路的任務,是由稱為操作控制器的部件來完成的
操作控制器的類型可分為:
① 硬布線控制器
是采用時序邏輯技術來實現的;
② 微程序控制器
是采用存儲邏輯來實現的;
③ 前兩種方式的組合,根據設計方法不同,操作控制器的設計方法可分為時序邏輯型、存儲邏輯型、時序邏輯與存儲邏輯結合型
三種。
)2.指令周期和時序發生器
2.1 指令周期
1.基本概念
(1)指令周期:取出並執行一條指令所需的時間通常指令周期的長短與指令的複雜程度有關。
取指令-執行指令序列:
(2)CPU周期:內存中讀取一個指令字的最短時間,指令周期常用若幹個CPU周期數來錶示
(3)時鐘周期:節拍脈沖。處理操作的最基本單比特CPU周期包括若幹個時鐘周期,
在定長CPU周期中,每個CPU周期含有相同的時鐘周期數。
在不定長CPU周期中,CPU周期含有不同的時鐘周期數。
2.2 MOV指令的指令周期
MOV R0,R1指令功能:將寄存器R0的內容送到R1
MOV指令的指令周期:
①取指周期
(1)程序計數器PC的內容101被放到指令地址總線;
(2)101號地址讀出的MOⅤ指令通過指令總線IBUS裝入指令寄存器IR
(3)程序計數器內容加1,變成102,為取下一條指令做好准備
(4)指令寄存器中的操作碼被譯碼或測試
(5)CPU識別出是指令MOV,至此,取指令階段即告結束。
②MOV指令的執行周期
(1)操作控制器送出控制信號到通用寄存器,選擇R作源寄存器,選擇R0作目標寄存器;
(2)操作控制器送出控制信號到ALU,指定ALU做傳送操作
(3)操作控制器送出控制信號,打開ALU的三態門,將ALU輸出送到數據總線DBUS上
(4)操作控制器送出控制信號,將DBUS上的數據打入到數據緩沖寄存器DR(10)
(5)操作控制器送出控制信號,將DR中的數據10打入到目標寄存器R0,R0的內容由00變為10
2.3 LDA指令的指令周期
LDA R1,6 指令的功能:(6)→R1
LDA指令的指令周期:
①取指周期(與MOVE相同)
②LDA指令的執行周期
(1)操作控制器發出控制命令,打開IR輸出三態門,將指令中的直接地址碼6放到數據總線DBUS上
(2)操作控制器發出控制命令,將地址碼6裝入到數據存儲器的地址寄存器AR
(3)操作控制器發出讀命令,將數存6號單元中的數100讀出到DBUS上
(4)操作控制器發出控制命令,將DBUS上的數據100裝入緩沖寄存器DR
(5)操作控制器發出控制命令,將D中的數據100裝入到通用寄存器R1,原來R1中的數10被沖掉
2.4 ADD指令的指令周期
ADD R1,R2;功能:R1+R2→R2
ADD指令的指令周期:
①取指周期(與MOVE相同)
②ADD指令的執行周期
學習技術一定要制定一個明確的學習路線,這樣才能高效的學習,不必要做無效功,既浪費時間又得不到什麼效率,大家不妨按照我這份路線來學習。
大家不妨直接在牛客和力扣上多刷題,同時,我也拿了一些面試題跟大家分享,也是從一些大佬那裏獲得的,大家不妨多刷刷題,為金九銀十沖一波!
版权声明:本文为[程序員火花塞]所创,转载请带上原文链接,感谢。 https://gsmany.com/2021/09/20210918075452386U.html