操作微程序控制器的組成:
1、控制存儲器(Control Memory)用來存放各機器指令對應(yīng)的微程序。譯碼器用來形成機器指令對應(yīng)的微程序的入口地址。當將一條機器指令對應(yīng)的微程序的各條微指令逐條取出,并送到微指令寄存器時,其微操作命令也就按事先的設(shè)計發(fā)出,因而也就完成了一條機器指令的功能。對每一條機器指令都是如此。
2、微指令的寬度直接決定了微程序控制器的寬度。為了簡化控制存儲器,可采取一些措施來縮短微指令的寬度。如采用字段譯碼法一級分段譯碼。顯然,微指令的控制字段將大大縮短。,一些要同時產(chǎn)生的微操作命令不能安排在同一個字段中。為了進一步縮短控制字段,還可以將字段譯碼設(shè)計成兩級或多級。
CPU
控制器是指揮計算機的各個部件按照指令的功能要求協(xié)調(diào)工作的部件,是計算機的神經(jīng)中樞和指揮中心,由指令寄存器IR(InstructionRegister)、程序計數(shù)器PC(ProgramCounter)和操作控制器OC(OperationController)三個部件組成,對協(xié)調(diào)整個電腦有序工作極為重要。
指令寄存器:用以保存當前執(zhí)行或即將執(zhí)行的指令的一種寄存器。指令內(nèi)包含有確定操作類型的操作碼和指出操作數(shù)來源或去向的地址。指令長度隨不同計算機而異,指令寄存器的長度也隨之而異。計算機的所有操作都是通過分析存放在指令寄存器中的指令后再執(zhí)行的。指令寄存器的輸人端接收來自存儲器的指令,指令寄存器的輸出端分為兩部分。操作碼部分送到譯碼電路進行分析,指出本指令該執(zhí)行何種類型的操作;地址部分送到地址加法器生成有效地址后再送到存儲器,作為取數(shù)或存數(shù)的地址。
存儲器可以指主存、高速緩存或寄存器棧等用來保存當前正在執(zhí)行的一條指令。當執(zhí)行一條指令時,先把它從內(nèi)存取到數(shù)據(jù)寄存器(DR)中,然后再傳送至IR。指令劃分為操作碼和地址碼字段,由二進制數(shù)字組成。為了執(zhí)行任何給定的指令,必須對操作碼進行測試,以便識別所要求的操作。指令譯碼器就是做這項工作的。指令寄存器中操作碼字段的輸出就是指令譯碼器的輸入。操作碼一經(jīng)譯碼后,即可向操作控制器發(fā)出具體操作的特定信號。
程序計數(shù)器:指明程序中下一次要執(zhí)行的指令地址的一種計數(shù)器,又稱指令計數(shù)器。它兼有指令地址寄存器和計數(shù)器的功能。當一條指令執(zhí)行完畢的時候,程序計數(shù)器作為指令地址寄存器,其內(nèi)容必須已經(jīng)改變成下一條指令的地址,從而使程序得以持續(xù)運行。
為此可采取以下兩種辦法:
*種辦法是在指令中包含了下一條指令的地址。在指令執(zhí)行過程中將這個地址送人指令地址寄存器即可達到程序持續(xù)運行的目的。這個方法適用于早期以磁鼓、延遲線等串行裝置作為主存儲器的計算機。根據(jù)本條指令的執(zhí)行時間恰當?shù)貨Q定下一條指令的地址就可以縮短讀取下一條指令的等待時間,從而收到提高程序運行速度的效果。
第二種辦法是順序執(zhí)行指令。一個程序由若干個程序段組成,每個程序段的指令可以設(shè)計成順序地存放在存儲器之中,所以只要指令地址寄存器兼有計數(shù)功能,在執(zhí)行指令的過程中進行計數(shù),自動加一個增量,就可以形成下一條指令的地址,從而達到順序執(zhí)行指令的目的。這個辦法適用于以隨機存儲器作為主存儲器的計算機。當程序的運行需要從一個程序段轉(zhuǎn)向另一個程序段時,可以利用轉(zhuǎn)移指令來實現(xiàn)。轉(zhuǎn)移指令中包含了即將轉(zhuǎn)去的程序段入口指令的地址。執(zhí)行轉(zhuǎn)移指令時將這個地址送人程序計數(shù)器(此時只作為指令地址寄存器,不計數(shù))作為下一條指令的地址,從而達到轉(zhuǎn)移程序段的目的。子程序的調(diào)用、中斷和陷阱的處理等都用類似的方法。在隨機存取存儲器普及以后,第二種辦法的整體運行效果大大地優(yōu)于*種辦法,因而順序執(zhí)行指令已經(jīng)成為主流計算機普遍采用的辦法,程序計數(shù)器就成為中央處理器不可或缺的一個控制部件。