<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

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

3天內不再提示

寄存器由什么組成

工程師 ? 來源:未知 ? 作者:姚遠香 ? 2018-08-21 18:33 ? 次閱讀

寄存器概述

寄存器是中央處理器內的組成部分。寄存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、數據和地址。在中央處理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序計數器(PC)。在中央處理器的算術及邏輯部件中,存器有累加器(ACC)。

寄存器的原理組成

寄存器的基本單元是D觸發器,按照其用途分為基本寄存器和移位寄存器。

基本寄存器是由D觸發器組成,在CP脈沖作用下,每個D觸發器能夠寄存一位二進制碼。在D=0時,寄存器儲存為0,在D=1時,寄存器儲存為1。

在低電平為0、高電平為1時,需將信號源與D間連接一反相器,這樣就可以完成對數據的儲存。

移位寄存器按照移位方向可以分為單向移位寄存器和雙向移位寄存器。

單向移位寄存器是由多個D觸發器串接而成。在串口Di輸入需要儲存的數據,觸發器FF0就能夠儲存當前需要儲存數據,在CP發出一次時鐘控制脈沖時,串口Di同時輸入第二個需要儲存是的數據,而第一個數據則儲存到觸發器FF1中。

雙向移位寄存器排列,調換連接端順序,可以控制寄存器向左移位,增加控制電路可以使寄存器右移,這樣構成雙向移位寄存器。

ARM寄存器組成

在ARM狀態,16個通用寄存器(R0-R15)和一個狀態寄存器在任意時刻都可見。在特權(非用戶)模式下,將切換到指定模式的分組(banked)寄存器。(PS.分組寄存器的概念下文可見)

ARM狀態時寄存器被設為包含16個直接可以訪問的寄存器:R0到R15。除了R15,其他全部寄存器都為通用寄存器,如可能用于保存數據或地址值。除此之外,還有第17個寄存器用于存儲狀態信息。

R8~R14、SPSR寄存器則被切換到各個模式下的私有寄存器組上,不同的模式下可以訪問相應的私有寄存器。表1顯示了在每種模式下,哪些寄存器是有效的(陰影部分的寄存器都是私有寄存器)。

表1 ARM狀態下的寄存器組織結構

從表1中我們可以看出:

☆ R0~R7、R15、CPSR寄存器組在任何模式下都是共用的,可訪問的;

☆ R8~R12寄存器組在快中斷模式下(fiq)對應一套私有寄存器組R8_fiq~R12_fiq,在其他模式下共用另一套寄存器組;

☆ R13、R14寄存器在用戶(user)和系統(sys)模式下共用一套;其他模式(管理(svc)、中止(abt)、未定義(und)、中斷(irq)、快中斷(fiq)模式)下都具有兩個私有寄存器R13和R14。這就使得這些模式中的每一種模式都具有各自的堆棧寄存器指針R13和鏈接寄存器R14,分別用于堆棧處理和異常退出;

☆ SPSR寄存器可用于保存CPSR的值,在用戶和系統模式下不能訪問,在其他模式下都有私有的SPSR寄存器。

表1中第二列列舉了寄存器在匯編語言中的名稱,其中括號中的內容是別稱。下面我們對這些寄存器的功能進行介紹。

1、一般通用寄存器 R0~R12

寄存器R0~R12為保存數據或地址值的一般通用寄存器。其中寄存器R0~R7為未分組的寄存器,R8~R12為分組寄存器。

未分組的寄存器意味著對于任何處理器模式,他們中的每一個都對應于相同的32位物理寄存器。他們是完全通用的寄存器,

分組寄存器意味著同一個寄存器名對應多個物理寄存器,具體所對應的物理寄存器取決于當前的處理器模式。參照表1,寄存器R8~R12有兩個分組物理寄存器。一組用于除FIQ模式之外的所有寄存器模式(R8~R12),另一組用于FIQ模式(R8_fiq~R12_fiq)。、

寄存器R8~R12在ARM體系結構中沒有特定的用途。不過對于那些只使用R8~R14來說就足夠處理的簡單的中斷,FIQ所單獨使用的這些寄存器可實現快速的中斷處理。

2、堆棧指針 R13

寄存器R13(也稱為堆棧指針或SP)有6個分組的物理寄存器,見表2-1。一個用于用戶和系統模式,其余5個分別用于5種異常模式。

寄存器R13通常作為堆棧指針SP。在ARM指令集中,R13大都用在對各個模式下的堆棧操作。每個異常模式都具備私有的R13寄存器,它通常指向由異常模式所專用的堆棧。在入口處,通常將寄存器值保存到這個堆棧。在模式轉換前將當前寄存器的值保存到堆棧中,然后從將要切換的模式堆棧中將這些值從堆棧重裝到已切換的模式寄存器中,這種處理方法可確保異常發生時的程序狀態不會被破壞。

3、鏈接寄存器 R14

寄存器R14(也稱為鏈接寄存器或LR)有6個分組的物理寄存器,見表2-1。一個用于用戶和系統模式,其余5個分別用于5種異常模式,對應的私有寄存器有R14_svc,R14_irq,R14_fiq,R14_abt和R14_und。寄存器R14有三種用途:

☆ 當發生異常時,它被設置為該異常返回地址;

☆ 在執行分支和鏈接(BL)指令時,它用于保存子程序的返回地址;

☆ 而在其他時候,可以作為一個通用寄存器來對待。

4、程序計數器 R15

寄存器R15(也稱為程序計數器或PC)總是用于特殊用途,它總是指向下一條要讀取指令的地址。你可以把R15當作通用寄存器使用,但使用時還有與指令有關的限制或特殊情況。如果R15使用的方式超過了這些限制,那么指令將是不可預測的。

由于ARM7采用3級流水線結構,在ARM狀態下,讀取R15的值是當前執行指令地址 + 8。ARM指令以字為單位,讀取R15結果的bit[1:0]總是為0b00。

對R15進行寫時,如果這條寫指令沒有超過對R15使用的限制,那么寫入R15的正常結果值被當成一個指令地址,程序會從這個地址處繼續執行(相當于執行無條件跳轉指令)。因為ARM指令以字為邊界,所以寫入R15值的bit[1:0]通常為0b00。

5、CPSR和SPSR

所有模式共享一個程序狀態寄存器CPSR。在異常模式中,程序狀態保存寄存器SPSR可以被訪問,每種異常具有自己私有的SPSR。在進入異常時,它保存CPSR的當前值;在異常退出時,可通過它(SPSR)恢復CPSR。

寄存器的用途

1.可將寄存器內的數據執行算術及邏輯運算。

2.存于寄存器內的地址可用來指向內存的某個位置,即尋址。

3.可以用來讀寫數據到電腦的周邊設備。

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

    關注

    30

    文章

    5113

    瀏覽量

    118012
  • D觸發器
    +關注

    關注

    2

    文章

    147

    瀏覽量

    47437
收藏 人收藏

    評論

    相關推薦

    寄存器和內存的區別

    在計算機體系結構中,寄存器和內存是兩個至關重要的組成部分。它們各自承擔著不同的角色,共同確保計算機系統的正常運行。本文將對寄存器和內存進行詳細的介紹,包括它們的定義、功能以及二者之間的主要區別。
    的頭像 發表于 05-12 17:11 ?191次閱讀

    存儲器和寄存器的區別

    在計算機系統中,存儲器和寄存器是兩個至關重要的組成部分,它們各自承擔著不同的功能和角色。存儲器用于存放程序和數據,是計算機系統的記憶設備;而寄存器則是CPU(中央處理器)內的高速存儲區域,用于臨時
    的頭像 發表于 05-12 16:55 ?270次閱讀

    干貨滿滿:ARM的內核寄存器講解

    內核寄存器與外設寄存器: 內核寄存器與外設寄存器是完全不同的概念。內核寄存器是指 CPU 內部的寄存器
    發表于 04-17 11:47 ?354次閱讀
    干貨滿滿:ARM的內核<b class='flag-5'>寄存器</b>講解

    AFE模擬前端寄存器讀取操作

    AFE模擬前端寄存器讀取操作是電子系統設計和調試中不可或缺的一環。寄存器作為AFE模擬前端中的重要組成部分,存儲著各種配置參數和狀態信息,通過讀取這些寄存器,工程師可以了解AFE的工作
    的頭像 發表于 03-15 15:50 ?205次閱讀

    CPU的6個主要寄存器

    CPU寄存器是中央處理器內的組成部分,是有限存貯容量的高速存貯部件。寄存器是CPU內部的元件,包括通用寄存器、專用寄存器和控制
    的頭像 發表于 02-03 15:15 ?1298次閱讀

    寄存器的主要組成部分及分類

    通用寄存器是計算機處理器中最常見的寄存器類型之一。它們通常用于存儲臨時數據、中間結果和計算過程中的變量。通用寄存器具有廣泛的用途,可以存儲不同類型的數據(如整數、小數、地址等),并被處理器的指令集使用。
    的頭像 發表于 02-03 15:08 ?893次閱讀

    移位寄存器的工作原理 移位寄存器左移和右移怎么算

    移位寄存器是一種用于在數字電路中實現數據移位操作的基本電路元件。它由多個觸發器以及相關控制電路組成,具有存儲、接受和移動數據的功能。移位寄存器可以分為兩種類型:串行移位寄存器和并行移位
    的頭像 發表于 01-18 10:52 ?2746次閱讀

    UVM寄存器模型的常規方法有哪些呢?

    在應用寄存器模型時, 除了利用它的寄存器信息, 還可以利用它來跟蹤寄存器的值。
    的頭像 發表于 11-25 09:27 ?852次閱讀
    UVM<b class='flag-5'>寄存器</b>模型的常規方法有哪些呢?

    芯片DFX:Coresight的寄存器一覽

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

    CPSR寄存器和APSR寄存器組成

    程序狀態寄存器的作用就是反映處理器的狀態信息。在程序運行期間我們可以通過查看程序狀態寄存器的狀態位來進行程序的分支跳轉處理,或者我們可以設置程序狀態寄存器的模式位來改變處理器的運行模式,或者我們可以設置程序狀態
    的頭像 發表于 10-20 11:38 ?2004次閱讀
    CPSR<b class='flag-5'>寄存器</b>和APSR<b class='flag-5'>寄存器</b>的<b class='flag-5'>組成</b>

    什么是移位寄存器?數字電路中的寄存器類型有哪些呢?

    移位寄存器是一種時序邏輯電路,能夠存儲和傳輸數據。它們由觸發器組成,這些觸發器的連接方式使得一個觸發器的輸出可以作為另一個觸發器的輸入,具體取決于所創建的移位寄存器的類型。
    的頭像 發表于 09-20 10:44 ?5303次閱讀
    什么是移位<b class='flag-5'>寄存器</b>?數字電路中的<b class='flag-5'>寄存器</b>類型有哪些呢?

    寄存器是什么?怎么操作寄存器點亮LED燈?

    寄存器,是集成電路中非常重要的一種存儲單元,通常由觸發器組成。在集成電路設計中,寄存器可分為電路內部使用的寄存器和充當內外部接口的寄存器這兩
    的頭像 發表于 07-21 16:59 ?3085次閱讀
    <b class='flag-5'>寄存器</b>是什么?怎么操作<b class='flag-5'>寄存器</b>點亮LED燈?

    寄存器是什么 掌握使用寄存器做設計需要注意的事項

    既然RTL是以寄存器行為為基礎,那么就必須先了解寄存器是什么,并且掌握使用寄存器做設計需要注意的事項。
    的頭像 發表于 07-13 15:38 ?940次閱讀
    <b class='flag-5'>寄存器</b>是什么 掌握使用<b class='flag-5'>寄存器</b>做設計需要注意的事項

    RAL寄存器模型操作指南

    寄存器模型操作,指的是通過寄存器模型對RTL中寄存器進行讀寫訪問,或者同步寄存器模型與RTL中寄存器的值。
    的頭像 發表于 07-12 09:37 ?741次閱讀
    RAL<b class='flag-5'>寄存器</b>模型操作指南

    以太網時鐘的PPM頻率偏差的解決方案(下)

    圖是深度(depth)為8的異步FIFO的示意圖。其中,0~7代表8個寄存器,他們組成了一個環。
    的頭像 發表于 06-23 17:55 ?1826次閱讀
    以太網時鐘的PPM頻率偏差的解決方案(下)
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>