寄存器簡(jiǎn)介和結(jié)構(gòu)
寄存器的功能是存儲(chǔ)二進(jìn)制代碼,它是由具有存儲(chǔ)功能的觸發(fā)器組合起來(lái)構(gòu)成的。一個(gè)觸發(fā)器可以存儲(chǔ)1位二進(jìn)制代碼,故存放n位二進(jìn)制代碼的寄存器,需用n個(gè)觸發(fā)器來(lái)構(gòu)成。按照功能的不同,可將寄存器分為基本寄存器和移位寄存器兩大類?;炯拇嫫髦荒懿⑿兴腿霐?shù)據(jù),也只能并行輸出。移位寄存器中的數(shù)據(jù)可以在移位脈沖作用下依次逐位右移或左移,數(shù)據(jù)既可以并行輸入、并行輸出,也可以串行輸入、串行輸出,還可以并行輸入、串行輸出,或串行輸入、并行輸出,十分靈活,用途也很廣。
寄存器是CPU內(nèi)部用來(lái)存放數(shù)據(jù)的一些小型存儲(chǔ)區(qū)域,用來(lái)暫時(shí)存放參與運(yùn)算的數(shù)據(jù)和運(yùn)算結(jié)果。其實(shí)寄存器就是一種常用的時(shí)序邏輯電路,但這種時(shí)序邏輯電路只包含存儲(chǔ)電路。寄存器的存儲(chǔ)電路是由鎖存器或觸發(fā)器構(gòu)成的,因?yàn)橐粋€(gè)鎖存器或觸發(fā)器能存儲(chǔ)1位二進(jìn)制數(shù),所以由N個(gè)鎖存器或觸發(fā)器可以構(gòu)成N位寄存器。寄存器是中央處理器內(nèi)的組成部分。寄存器是有限存儲(chǔ)容量的高速存儲(chǔ)部件,它們可用來(lái)暫存指令、數(shù)據(jù)和位址。 [2] 在計(jì)算機(jī)領(lǐng)域,寄存器是CPU內(nèi)部的元件,包括通用寄存器、專用寄存器和控制寄存器。寄存器擁有非常高的讀寫速度,所以在寄存器之間的數(shù)據(jù)傳送非???。Cortex-M4總共有18個(gè)寄存器,相比傳統(tǒng)ARM(如ARM7/ARM9/Cortex-A系列)的38個(gè)寄存器已減少很多,減少了內(nèi)核核心面積(Die-size)。
對(duì)于編譯器非常友好易用,例如:包含靈活的寄存器配置,任意寄存器之間可實(shí)現(xiàn)單周期乘法,任意寄存器可以作為數(shù)據(jù)、結(jié)構(gòu)或數(shù)組的指針。此外,Cortex-M4還包含4個(gè)特殊功能寄存器PRIMASK、FAUI。TMASK、BASEPRI和CONTROL。
寄存器最起碼具備以下4種功能。①清除數(shù)碼:將寄存器里的原有數(shù)碼清除。 [3] ②接收數(shù)碼:在接收脈沖作用下,將外輸入數(shù)碼存入寄存器中。 [3] ③存儲(chǔ)數(shù)碼:在沒(méi)有新的寫入脈沖來(lái)之前,寄存器能保存原有數(shù)碼不變。 ④輸出數(shù)碼:在輸出脈沖作用下,才通過(guò)電路輸出數(shù)碼。 [3] 僅具有以上功能的寄存器稱為數(shù)碼寄存器;有的寄存器還具有移位功能,稱為移位寄存器。
寄存器有串行和并行兩種數(shù)碼存取方式。將n位二進(jìn)制數(shù)一次存入寄存器或從寄存器中讀出的方式稱為并行方式。將n位二進(jìn)制數(shù)以每次1位,分成n次存入寄存器并從寄存器讀出,這種方式稱為串行方式。并行方式只需一個(gè)時(shí)鐘脈沖就可以完成數(shù)據(jù)操作,工作速度快,但需要n根輸入和輸出數(shù)據(jù)線。串行方式要使用幾個(gè)時(shí)鐘脈沖完成輸入或輸出操作,工作速度慢,但只需要一根輸入或輸出數(shù)據(jù)線,傳輸線少,適用于遠(yuǎn)距離傳輸。
在數(shù)字電路中,用來(lái)存放二進(jìn)制數(shù)據(jù)或代碼的電路稱為寄存器。寄存器是由具有存儲(chǔ)功能的觸發(fā)器組合起來(lái)構(gòu)成的。一個(gè)觸發(fā)器可以存儲(chǔ)1位二進(jìn)制代碼,存放門位二進(jìn)制代碼的寄存器需用逐個(gè)觸發(fā)器來(lái)構(gòu)成。 [4] 對(duì)寄存器中的觸發(fā)器只要求它們具有置1,置0的功能即可,因而無(wú)論是用電平觸發(fā)的觸發(fā)器,還是用脈沖觸發(fā)或邊沿觸發(fā)的觸發(fā)器,都可以組成寄存器。 [4] 由電平觸發(fā)的動(dòng)作特點(diǎn)可知,在CLK高電平期間,Q端的狀態(tài)跟隨D端狀態(tài)的改變而改變;CLK變成低電平以后,Q端將保持CLK變?yōu)榈碗娖綍r(shí)刻D端的狀態(tài)。 [4] 74HC175則是用CMOS邊沿觸發(fā)器組成的4位寄存器,根據(jù)邊沿觸發(fā)的動(dòng)作特點(diǎn)可知,觸發(fā)器輸出端的狀態(tài)僅僅取決于CLK上升沿到達(dá)時(shí)刻D端的狀態(tài)??梢?jiàn),雖然74LS75和74HC175都是4位寄存器,但由于采用了不同結(jié)構(gòu)類型的觸發(fā)器,所以動(dòng)作特點(diǎn)是不同的。 [4] 為了增加使用的靈活性,在有些寄存器電路中還附加了一些控制電路,使寄存器又增添了異步置零、輸出三態(tài)控制和保持等功能。這里所說(shuō)的保持,是指CLK信號(hào)到達(dá)時(shí)觸發(fā)器不隨D端的輸入信號(hào)而改變狀態(tài),保持原來(lái)的狀態(tài)不變。 [4] 上面介紹的兩個(gè)寄存器電路中,接收數(shù)據(jù)時(shí)所有各位代碼都是同時(shí)輸入的,而且觸發(fā)器中的數(shù)據(jù)是并行地出現(xiàn)在輸出端的,因此將這種輸入、輸出方式稱為并行輸入、并行輸出方式。