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

[科普中國]-指令寄存器

科學百科
原創(chuàng)
科學百科為用戶提供權威科普內容,打造知識科普陣地
收藏

指令寄存器(IR,Instruction Register),是臨時放置從內存里面取得的程序指令的寄存器,用于存放當前從主存儲器讀出的正在執(zhí)行的一條指令。1

當執(zhí)行一條指令時,先把它從內存取到數據寄存器(DR,Data Register)中,然后再傳送至IR。指令劃分為操作碼和地址碼字段,由二進制數字組成。為了執(zhí)行任何給定的指令,必須對操作碼進行測試,以便識別所要求的操作。指令譯碼器就是做這項工作的。指令寄存器中操作碼字段的輸出就是指令譯碼器的輸入。操作碼一經譯碼后,即可向操作控制器發(fā)出具體操作的特定信號。2

基本信息在計算機控制器中存放將要執(zhí)行的指令的寄存器。當計算機的某一計算循環(huán)開始時,先根據地址寄存器的地址,從內存儲器中讀出一條指令,存入指令寄存器中。指令寄存器的相應位送入指令譯碼器(操作碼譯碼、變址譯碼等)。根據譯碼結果產生相應的控制信號,完成指令規(guī)定的運算、傳送數據等動作。2

在計算機的中央處理機中,一般都有專用的指令寄存器,其長度等于指令長度,即一般是計算機字長。指令寄存器通常與內存儲器的緩沖寄存器相連。3

取指過程取指令階段完成的任務是將現(xiàn)行指令從主存中取出來并送至指令寄存器中,具體的操作如下:2

現(xiàn)行指令地址送至存儲器地址寄存器,記作PC→MAR3

向主存發(fā)送讀命令,啟動主存作讀操作,記作1→R1

將MAR(通過地址總線)所指的主存單元中的內容(指令)井數據總線讀至MDR內,記作M(MAR)→MDR1

將MDR的內容送至IR,記作MDR→IR1

指令的操作碼送至CU譯碼,記作OP(IR)→CU2

形成下一條指令的地址,記作(PC)+1→PC3

工作原理指令寄存器就是用來存放從當前的計算機狀態(tài)的內存中讀取出的計算機操作指令,比如,我們此時對計算機的桌面進行了鼠標右鍵的操作,這時候這個鼠標硬件操作的指令就會被指令寄存器讀取存放,然后再進行執(zhí)行。3

指令寄存器的具體工作方式是當計算機正在執(zhí)行一條指令時,計算機首先會將數據傳送至內存,然后數據存儲器會從內存中讀取這個指令數據,并傳送給指令寄存器。一般來說,一段指令是由操作碼和地址碼字段組成的,基本構成方式就是計算機最本質的二進制數碼。3此外,為了能夠正確執(zhí)行指令,計算機還會對指令進行檢測,完成這項工作的就是指令譯碼器。當計算機的相關指令構成的操作碼一經計算機正確譯碼后,操作控制器就會接收到來自計算機中央處理器的相關處理信號,進而完成對指令的執(zhí)行。1

區(qū)別與指令指針寄存器區(qū)別

指令指針寄存器用英文簡稱為IP,它雖然也是一種指令寄存器,但是嚴格意義上和傳統(tǒng)的指令寄存器有很大的區(qū)別。比如,指令指針寄存器內部放置的不會是指令,而是一個內存地址,這個內存地址從一個指令指向另一個指令,用計算機科學的語言來描述,它就是一個指針。2在計算機工作的時候,CPU會從IP中獲得關于指令的相關內存地址,然后按照正確的方式取出指令,并將指令放置到原來的指令寄存器中。完成這一項工作之后,指令指針寄存器會給自己進行加一的操作,即將工作指向下一步的操作,完成自己指針的效果。3

因此,指令寄存器就是存放計算機操作指令的一種寄存器,計算機科學中尤其是在使用匯編語言的時候,指令寄存器和其他各種寄存器經常會被使用,它們是對計算機工作的一個直觀表現(xiàn),傳送信號也基本是二進制或十六進制。1

本詞條內容貢獻者為:

尚軼倫 - 副教授 - 同濟大學數學科學學院