RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

解析一些常見的寄存器

jf_78858299 ? 來源:小牛呼嚕嚕 ? 作者:小牛呼嚕嚕 ? 2023-02-09 14:47 ? 次閱讀

現(xiàn)代CPU內部除了 運算器和控制器 還有一個常見的組件: 寄存器 ,是CPU內部用來存放數據的一些小型的存儲區(qū)域,用來暫時存放參與運算的數據以及運算結果。我們了解了計算機各個硬件讀寫速度的差異,其中從存儲器速度、容量和價格的關系金字塔圖發(fā)現(xiàn):最上層的寄存器速度最快,容量最小,價格也最昂貴

下面我們來看看幾個常見寄存器:

數據寄存器(DR)

數據寄存器(Data Register,DR)又稱數據緩沖寄存器,數據寄存器用于存放操作數,其位數應滿足多數數據類型的數值范圍,其主要功能是作為CPU和主存、外設之間信息傳輸的中轉站,用以彌補CPU和主存、外設之間操作速度上的差異。

數據寄存器用來暫時存放由主存儲器讀出的一條指令或一個數據字;反之,當向主存存入一條指令或一個數據字時,也將它們暫時存放在數據寄存器中。

數據寄存器的作用是 :

  1. 作為CPU和主存、外圍設備之間信息傳送的中轉站;
  2. 彌補CPU和主存、外圍設備之間在操作速度上的差異;
  3. 在單累加器結構的運算器中,數據寄存器還可兼作操作數寄存器。

地址寄存器(AR)

地址寄存器(Address Register,AR)用來保存CPU當前所訪問的主存單元的地址。其本身可以具有通用性,也可用于特殊的尋址方式,如用于基址尋址的段指針(存放基地址)、用于變址尋址的變址寄存器和用于堆棧尋址的棧指針。地址寄存器的位數必須足夠長,以滿足最大的地址范圍。

由于在主存和CPU之間存在操作速度上的差異,所以必須使用地址寄存器來暫時保存主存的地址信息,直到主存的存取操作完成為止。

程序狀態(tài)寄存器(PSW)

程序狀態(tài)寄存器(PSW),用來保存各類運算指令或測試指令的結果的各種狀態(tài)信息 除此之外,程序狀態(tài)字寄存器還用來保存中斷和系統(tǒng)工作狀態(tài)等信息,以便CPU和系統(tǒng)及時了解機器運行狀態(tài)和程序運行狀態(tài)。程序狀態(tài)寄存器 是構成 運算器的重要組成部分

累加寄存器(AC)

累加寄存器通常簡稱累加器(AC),是一個通用寄存器。

累加器的功能是:當運算器的算術邏輯單元ALU執(zhí)行算術或邏輯運算時,為ALU提供一個工作區(qū),可以為ALU暫時保存一個操作數或運算結果。顯然,運算器中至少要有一個累加寄存器。

乘商寄存器(MQ)

在運算器中,乘商寄存器主要負責數據的乘法與除法運算并可保存運算結果,是運算器的基本組成部分,是運算器三個基本寄存器之一。

程序計數器(PC)

程序計數器(PC),具有寄存信息計數兩種功能,一般用來 存放下一條指令在主存儲器中的地址

在程序執(zhí)行之前,首先必須將程序的首地址,即程序第一條指令所在主存單元的地址送入PC,因此PC的內容即是從主存提取的第一條指令的地址。

當執(zhí)行指令時,CPU能自動遞增PC的內容,使其始終保存將要執(zhí)行的下一條指令的主存地址,為取下一條指令做好準備。但是,當遇到轉移指令時,下一條指令的地址將由轉移指令的地址碼字段來指定,而不是像通常的那樣通過順序遞增PC的內容來取得。

指令寄存器(IR)

指令寄存器(Instruction Register,IR), 用來保存當前欲執(zhí)行的指令 。

當執(zhí)行一條指令時,首先把該指令從主存讀取到數據寄存器中,然后再傳送至指令寄存器。

指令包括操作碼和地址碼兩個字段,為了執(zhí)行指令,必須對操作碼進行測試,識別出所要求的操作,指令譯碼器 就是完成這項工作的。指令譯碼器對指令寄存器的操作碼部分進行譯碼,以產生指令所要求操作的控制電位,并將其送到微操作控制線路上,在時序部件定時信號的作用下,產生具體的操作控制信號。

指令寄存器中操作碼字段的輸出就是指令譯碼器的輸入。操作碼一經譯碼,即可向操作控制器發(fā)出具體操作的特定信號。

MAR、MDR

另外寄存器不只存在CPU中,存儲器中也存在寄存器,比如MAR、MDR

  • MAR:存儲器地址寄存器,用于存放將被訪問的存儲單元的地址。作用和AR類似
  • MDR:存儲器數據寄存器,用于存放欲存入存儲器中的數據或最近從存儲器中讀出的數據。作用和DR類似

其中MAR位數反映儲存單元的個數,即最多能表示多少個不同的狀態(tài);MDR位數=儲存字長=每個儲存單元的大小

小結

將上面各個寄存器組合起來,我們可以畫出一幅計算機更細化的組成圖:

當存儲器開始讀操作的時候,存儲器將指定地址單元內的指令讀至MDR,再由MDR送至IR。IR將指令中的操作碼送到CU中,用來分析指令并發(fā)出各種微操作命令序列。再加指令中地址碼送到MAR,用來去操作數

在CPU內部必須給ALU提供數據,因此ALU必須可直接訪問MDR,ALU的外圍還可以有另一些寄存器AC、MQ、X,這些寄存器用于ALU的輸入、輸出以及用于和MDR及用戶可見寄存器交換數據。

在CPU的控制和狀態(tài)寄存器中,還有用來存放程序狀態(tài)字PSW的寄存器,該寄存器用來存放條件碼和其他狀態(tài)信息。在具有中斷系統(tǒng)的機器中還有中斷標記寄存器等等。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10854

    瀏覽量

    211578
  • 緩沖
    +關注

    關注

    0

    文章

    52

    瀏覽量

    17819
  • 數據寄存器
    +關注

    關注

    0

    文章

    33

    瀏覽量

    7750
收藏 人收藏

    評論

    相關推薦

    解析CPU中的寄存器

    8位寄存器在16位寄存器中,而16位寄存器在32位寄存器中。
    發(fā)表于 09-19 10:10 ?4104次閱讀

    基于DWC2的USB驅動開發(fā)-DOEP接收相關的DMA寄存器詳解

    前面我們詳細介紹了發(fā)送即DIEP相關的一些寄存器,這篇我們來看看接收即DOEP相關的一些寄存器。形式上DOEP和DIEP
    的頭像 發(fā)表于 07-19 09:00 ?1280次閱讀
    基于DWC2的USB驅動開發(fā)-DOEP接收相關的DMA<b class='flag-5'>寄存器</b>詳解

    芯片DFX:Coresight的寄存器

    coresight對于每個coresight組件,規(guī)定了一些寄存器,這些寄存器的偏移是固定的,這些寄存器,是必須存在的。但是有的,可以不實現(xiàn)該寄存器
    的頭像 發(fā)表于 11-02 11:45 ?1115次閱讀
    芯片DFX:Coresight的<b class='flag-5'>寄存器</b><b class='flag-5'>一</b>覽

    寄存器組CM3擁有通用寄存器組和一些特殊寄存器

    寄存器組CM3擁有通用寄存器組R0~R15和一些特殊寄存器R13:SP堆棧指針寄存器功能:指向堆棧的棧頂詳解:1)異常模式發(fā)生時,程序把通用
    發(fā)表于 12-16 06:44

    寄存器,寄存器是什么意思

    寄存器,寄存器是什么意思 寄存器定義  寄存器是中央處理內的組成部分。寄存器是有限存貯容量
    發(fā)表于 03-08 14:26 ?2.2w次閱讀

    數據寄存器,數據寄存器是什么意思

    數據寄存器,數據寄存器是什么意思 數據寄存器數據寄存器包括累加AX、基址寄存器BX、計數
    發(fā)表于 03-08 14:38 ?1.3w次閱讀

    ARM寄存器詳解

    ARM有37個寄存器,其中31個通用寄存器,6個狀態(tài)寄存器。   這里尤其要注意區(qū)別的是ARM自身寄存器和它的一些外設的
    發(fā)表于 07-10 10:04 ?2956次閱讀

    CSD寄存器解析

    CSD寄存器解析,SD卡寄存器解說,值得學習。
    發(fā)表于 01-06 14:25 ?0次下載

    寄存器與移位寄存器

    寄存器與移位寄存器:介紹寄存器原理和移位寄存器的原理及實現(xiàn)。
    發(fā)表于 05-20 11:47 ?0次下載

    基于stm32的GPIO寄存器學習解析

    寄存器 GPIOx->IDR,GPIOx->ODR 個32位的 set/reset 寄存器 GPIOx->BSRR 位16位的 reset
    的頭像 發(fā)表于 01-11 09:03 ?1.3w次閱讀
    基于stm32的GPIO<b class='flag-5'>寄存器</b>學習<b class='flag-5'>解析</b>

    開發(fā)個Linux調試就必須要知道寄存器和內存!

    在我們正真的讀取寄存器前,調試需要知道一些關于x8664架構的相關知識。包括通用寄存器,專用寄存器以及浮點
    發(fā)表于 05-14 17:28 ?1479次閱讀

    51單片機的一些特殊寄存器資料說明

    本文檔的主要內容詳細介紹的是51單片機的一些特殊寄存器資料說明。包括了:中斷使能寄存器,中斷優(yōu)先級寄存器,電源控制PCON,PSW處理狀態(tài)
    發(fā)表于 07-26 17:36 ?2次下載
    51單片機的<b class='flag-5'>一些</b>特殊<b class='flag-5'>寄存器</b>資料說明

    寄存器、鎖存和觸發(fā)三者對比

    我們在微控制(MCU)等電子系統(tǒng)中存儲數據的方式之是在寄存器中。一些寄存器個位/比特組成
    發(fā)表于 04-14 14:55 ?3451次閱讀
    <b class='flag-5'>寄存器</b>、鎖存<b class='flag-5'>器</b>和觸發(fā)<b class='flag-5'>器</b>三者對比

    如何在VHDL中實現(xiàn)個簡單的寄存器

    寄存器是設備中用于存儲數據的常見電子元件。這些是最小的數據保存元素,用于存儲 CPU 正在處理的操作數或指令。有不同類型的寄存器,即指令寄存器、程序
    發(fā)表于 07-29 16:48 ?4625次閱讀
    如何在VHDL中實現(xiàn)<b class='flag-5'>一</b>個簡單的<b class='flag-5'>寄存器</b>

    labview讀取三菱plc寄存器內容

    如何使用LabVIEW讀取三菱PLC的寄存器內容,并提供一些實例代碼和注意事項。 首先,我們需要了解PLC寄存器的基本概念。PLC寄存器
    的頭像 發(fā)表于 12-27 16:31 ?2254次閱讀
    RM新时代网站-首页