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