版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系我們

[科普中國(guó)]-內(nèi)存資料寄存器

科學(xué)百科
原創(chuàng)
科學(xué)百科為用戶提供權(quán)威科普內(nèi)容,打造知識(shí)科普陣地
收藏

內(nèi)存資料寄存器(Memory Data Register,MDR),又稱(chēng)數(shù)據(jù)寄存器、緩沖寄存器,是計(jì)算機(jī)控制單元中的寄存器,寄存了將要寫(xiě)入到計(jì)算機(jī)主存儲(chǔ)器(例如:RAM)的數(shù)據(jù),或由計(jì)算機(jī)主存儲(chǔ)器讀取后的數(shù)據(jù)。它就像緩沖器,持有從內(nèi)存復(fù)制的數(shù)據(jù),以準(zhǔn)備給處理器使用。內(nèi)存資料寄存器是微程序與計(jì)算機(jī)數(shù)據(jù)儲(chǔ)存(computer data storage)之間的一個(gè)微小界面的其中一半,而另一半則是內(nèi)存地址寄存器(memory address register)。

定義內(nèi)存資料寄存器是指用于存放欲寫(xiě)入存儲(chǔ)體中的數(shù)據(jù),或暫存從存儲(chǔ)體中讀出的數(shù)據(jù),準(zhǔn)備讓處理器處理的寄存器,即用來(lái)暫時(shí)存放處理器計(jì)算過(guò)程中所用到的操作數(shù)、結(jié)果和信息。數(shù)據(jù)寄存器用來(lái)暫時(shí)存放由主存儲(chǔ)器讀出的一條指令或一個(gè)數(shù)據(jù)字;反之,當(dāng)向主存存入一條指令或一個(gè)數(shù)據(jù)字時(shí),也將它們暫時(shí)存放在數(shù)據(jù)寄存器中。在單累加器結(jié)構(gòu)的運(yùn)算器中,數(shù)據(jù)寄存器還可兼作操作數(shù)寄存器1。數(shù)據(jù)寄存器訪問(wèn)速度最快,完全能與 CPU 協(xié)調(diào)工作。

類(lèi)別AX、BX、CX、DX可以稱(chēng)為數(shù)據(jù)寄存器,這4個(gè)16位寄存器又可分別分成高8位(AH、BH、CH、DH)和低8位(AL、BL、CL、DL)。因此它們既可作為4個(gè)16位數(shù)據(jù)寄存器使用,也可作為8個(gè)8位數(shù)據(jù)寄存器使用,在編程時(shí)可存放源操作數(shù)、目的操作數(shù)或運(yùn)算結(jié)果。數(shù)據(jù)寄存器是存放操作數(shù)、運(yùn)算結(jié)果和運(yùn)算的中間結(jié)果,以減少訪問(wèn)存儲(chǔ)器的次數(shù),或者存放從存儲(chǔ)器讀取的數(shù)據(jù)以及寫(xiě)入存儲(chǔ)器的數(shù)據(jù)的寄存器。

AX(accumulator)累加器。作為累加器使用。是算術(shù)運(yùn)算的主要寄存器。在乘、除等指令中指定用來(lái)存放操作數(shù)。以及所有的 I/O指令都使用這一寄存器與外部設(shè)備傳送信息。

BX(base)基址??梢宰鳛橥ㄓ眉拇嫫魇褂?。此外在計(jì)算機(jī)存儲(chǔ)地址時(shí),它經(jīng)常用作基址寄存器。

CX(count)計(jì)數(shù)??梢宰鳛橥ㄓ眉拇嫫魇褂谩3S脕?lái)保存計(jì)數(shù)值,如在循環(huán)、位移和串處理指令中作隱含計(jì)數(shù)器。

DX(data)數(shù)據(jù)??梢宰鳛橥ㄓ眉拇嫫魇褂?。一般在作雙字長(zhǎng)運(yùn)算時(shí)把DX和AX組合在一起存放一個(gè)雙字長(zhǎng)數(shù),DX用來(lái)存放高位數(shù)。對(duì)于某些I/O操作,DX可用來(lái)存放I/O的端口地址。

寄存器寄存器,是集成電路中非常重要的一種存儲(chǔ)單元,通常由觸發(fā)器組成。在集成電路設(shè)計(jì)中,寄存器可分為電路內(nèi)部使用的寄存器和充當(dāng)內(nèi)外部接口的寄存器這兩類(lèi)。內(nèi)部寄存器不能被外部電路或軟件訪問(wèn),只是為內(nèi)部電路的實(shí)現(xiàn)存儲(chǔ)功能或滿足電路的時(shí)序要求。而接口寄存器可以同時(shí)被內(nèi)部電路和外部電路或軟件訪問(wèn),CPU中的寄存器就是其中一種,作為軟硬件的接口,為廣泛的通用編程用戶所熟知。CPU中至少要有六類(lèi)寄存器:指令寄存器(IR)、程序計(jì)數(shù)器(PC)、地址寄存器(AR)、數(shù)據(jù)寄存器(DR)、累加寄存器(AC)、程序狀態(tài)字寄存器(PSW)。這些寄存器用來(lái)暫存一個(gè)計(jì)算機(jī)字,其數(shù)目可以根據(jù)需要進(jìn)行擴(kuò)充。

指令寄存器

指令寄存器(Instruction Register,IR)用來(lái)保存當(dāng)前正在執(zhí)行的一條指令。當(dāng)執(zhí)行一條指令時(shí),首先把該指令從主存讀取到數(shù)據(jù)寄存器中,然后再傳送至指令寄存器。

指令包括操作碼和地址碼兩個(gè)字段,為了執(zhí)行指令,必須對(duì)操作碼進(jìn)行測(cè)試,識(shí)別出所要求的操作,指令譯碼器(Instruction Decoder,ID)就是完成這項(xiàng)工作的。指令譯碼器對(duì)指令寄存器的操作碼部分進(jìn)行譯碼,以產(chǎn)生指令所要求操作的控制電位,并將其送到微操作控制線路上,在時(shí)序部件定時(shí)信號(hào)的作用下,產(chǎn)生具體的操作控制信號(hào)。指令寄存器中操作碼字段的輸出就是指令譯碼器的輸入。操作碼一經(jīng)譯碼,即可向操作控制器發(fā)出具體操作的特定信號(hào)。

程序計(jì)數(shù)器

程序計(jì)數(shù)器(Program Counter,PC)用來(lái)指出下一條指令在主存儲(chǔ)器中的地址。在程序執(zhí)行之前,首先必須將程序的首地址,即程序第一條指令所在主存單元的地址送入PC,因此PC的內(nèi)容即是從主存提取的第一條指令的地址。當(dāng)執(zhí)行指令時(shí),CPU能自動(dòng)遞增PC的內(nèi)容,使其始終保存將要執(zhí)行的下一條指令的主存地址,為取下一條指令做好準(zhǔn)備。若為單字長(zhǎng)指令,則(PC)+1àPC,若為雙字長(zhǎng)指令,則(PC)+2àPC,以此類(lèi)推。但是,當(dāng)遇到轉(zhuǎn)移指令時(shí),下一條指令的地址將由轉(zhuǎn)移指令的地址碼字段來(lái)指定,而不是像通常的那樣通過(guò)順序遞增PC的內(nèi)容來(lái)取得。因此,程序計(jì)數(shù)器的結(jié)構(gòu)應(yīng)當(dāng)是具有寄存信息和計(jì)數(shù)兩種功能的結(jié)構(gòu)。

地址寄存器

地址寄存器(Address Register,AR)用來(lái)保存CPU當(dāng)前所訪問(wèn)的主存單元的地址。由于在主存和CPU之間存在操作速度上的差異,所以必須使用地址寄存器來(lái)暫時(shí)保存主存的地址信息,直到主存的存取操作完成為止。當(dāng)CPU和主存進(jìn)行信息交換,即CPU向主存存入數(shù)據(jù)/指令或者從主存讀出數(shù)據(jù)/指令時(shí),都要使用地址寄存器和數(shù)據(jù)寄存器。如果我們把外圍設(shè)備與主存單元進(jìn)行統(tǒng)一編址,那么,當(dāng)CPU和外圍設(shè)備交換信息時(shí),我們同樣要使用地址寄存器和數(shù)據(jù)寄存器。

累加寄存器

累加寄存器通常簡(jiǎn)稱(chēng)累加器(Accumulator,AC),是一個(gè)通用寄存器。累加器的功能是:當(dāng)運(yùn)算器的算術(shù)邏輯單元ALU執(zhí)行算術(shù)或邏輯運(yùn)算時(shí),為ALU提供一個(gè)工作區(qū),可以為ALU暫時(shí)保存一個(gè)操作數(shù)或運(yùn)算結(jié)果。顯然,運(yùn)算器中至少要有一個(gè)累加寄存器。

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

程序狀態(tài)字(Program Status Word,PSW)用來(lái)表征當(dāng)前運(yùn)算的狀態(tài)及程序的工作方式。程序狀態(tài)字寄存器用來(lái)保存由算術(shù)/邏輯指令運(yùn)行或測(cè)試的結(jié)果所建立起來(lái)的各種條件碼內(nèi)容,如運(yùn)算結(jié)果進(jìn)/借位標(biāo)志(C)、運(yùn)算結(jié)果溢出標(biāo)志(O)、運(yùn)算結(jié)果為零標(biāo)志(Z)、運(yùn)算結(jié)果為負(fù)標(biāo)志(N)、運(yùn)算結(jié)果符號(hào)標(biāo)志(S)等,這些標(biāo)志位通常用1位觸發(fā)器來(lái)保存。除此之外,程序狀態(tài)字寄存器還用來(lái)保存中斷和系統(tǒng)工作狀態(tài)等信息,以便CPU和系統(tǒng)及時(shí)了解機(jī)器運(yùn)行狀態(tài)和程序運(yùn)行狀態(tài)。因此,程序狀態(tài)字寄存器是一個(gè)保存各種狀態(tài)條件標(biāo)志的寄存器。

主存儲(chǔ)器主存儲(chǔ)器(簡(jiǎn)稱(chēng)內(nèi)存或主存)是計(jì)算機(jī)系統(tǒng)中一個(gè)主要部件, 用于保存進(jìn)程運(yùn)行時(shí)的程序和數(shù)據(jù),也稱(chēng)可執(zhí)行存儲(chǔ)器,其容量對(duì)于當(dāng)前的微機(jī)系統(tǒng)和大中型機(jī),可能一般為數(shù)十 MB到數(shù) GB,而且容量還在不斷增加,而嵌入式計(jì)算機(jī)系統(tǒng)一般僅有幾十 KB 到幾 MB。CPU的控制部件只能從主存儲(chǔ)器中取得指令和數(shù)據(jù),數(shù)據(jù)能夠從主存儲(chǔ)器讀取并將它們裝入到寄存器中,或者從寄存器存入到主存儲(chǔ)器。CPU 與外圍設(shè)備交換的信息一般也依托于主存儲(chǔ)器地址空間。由于主存儲(chǔ)器的訪問(wèn)速度遠(yuǎn)低于 CPU 執(zhí)行指令的速度,為緩和這一矛盾,在計(jì)算機(jī)系統(tǒng)中引入了寄存器和高速緩存。

本詞條內(nèi)容貢獻(xiàn)者為:

劉軍 - 副研究員 - 中國(guó)科學(xué)院工程熱物理研究所