捷斯曼GESSMANN控制器設(shè)計(jì)步驟
捷斯曼GESSMANN控制器設(shè)計(jì)步驟
1、設(shè)計(jì)機(jī)器的指令系統(tǒng):規(guī)定指令的種類、指令的條數(shù)以及每一條指令的格式和功能;
2、初步的總體設(shè)計(jì):如寄存器設(shè)置、總線安排、運(yùn)算器設(shè)計(jì)、部件間的連接關(guān)系等;
3、繪制指令流程圖:標(biāo)出每一條指令在什么時(shí)間、什么部件進(jìn)行何種操作;
4、編排操作時(shí)間表:即根據(jù)指令流程圖分解各操作為微操作,按時(shí)間段列出機(jī)器應(yīng)進(jìn)行的微操作;
5、列出微操作信號(hào)表達(dá)式,化簡(jiǎn),電路實(shí)現(xiàn)。
基本組成:
1、指令寄存器用來(lái)存放正在執(zhí)行的指令。指令分成兩部分:操作碼和地址碼。操作碼用來(lái)指示指令的操作性質(zhì),如加法、減法等;地址碼給出本條指令的操作數(shù)地址或形成操作數(shù)地址的有關(guān)信息(這時(shí)通過(guò)地址形成電路來(lái)形成操作數(shù)地址)。有一種指令稱為轉(zhuǎn)移指令,它用來(lái)改變指令的正常執(zhí)行順序,這種指令的地址碼部分給出的是要轉(zhuǎn)去執(zhí)行的指令的地址。
2、操作碼譯碼器:用來(lái)對(duì)指令的操作碼進(jìn)行譯碼,產(chǎn)生相應(yīng)的控制電平,完成分析指令的功能。
3、時(shí)序電路:用來(lái)產(chǎn)生時(shí)間標(biāo)志信號(hào)。在微型計(jì)算機(jī)中,時(shí)間標(biāo)志信號(hào)一般為三級(jí):指令周期、總線周期和時(shí)鐘周期。微操作命令產(chǎn)生電路產(chǎn)生完成指令規(guī)定操作的各種微操作命令。這些命令產(chǎn)生的主要依據(jù)是時(shí)間標(biāo)志和指令的操作性質(zhì)。該電路實(shí)際是各微操作控制信號(hào)表達(dá)式(如上面的A→L表達(dá)式)的電路實(shí)現(xiàn),它是組合邏輯控制器中最為復(fù)雜的部分。
4、指令計(jì)數(shù)器:用來(lái)形成下一條要執(zhí)行的指令的地址。通常,指令是順序執(zhí)行的,而指令在存儲(chǔ)器中是順序存放的。所以,一般情況下下一條要執(zhí)行的指令的地址可通過(guò)將現(xiàn)行地址加1形成,微操作命令"1"就用于這個(gè)目的。如果執(zhí)行的是轉(zhuǎn)移指令,則下一條要執(zhí)行的指令的地址是要轉(zhuǎn)移到的地址。該地址就在本轉(zhuǎn)移指令的地址碼字段,將其直接送往指令計(jì)數(shù)器。
捷斯曼GESSMANN控制器微程序控制器的提出是因?yàn)榻M合邏輯設(shè)計(jì)存在不便于設(shè)計(jì)、不靈活、不易修改和擴(kuò)充等缺點(diǎn)。
控制器是指揮計(jì)算機(jī)的各個(gè)部件按照指令的功能要求協(xié)調(diào)工作的部件,是計(jì)算機(jī)的神經(jīng)中樞和指揮中心,由指令寄存器IR(InstructionRegister)、程序計(jì)數(shù)器PC(ProgramCounter)和操作控制器OC(OperationController)三個(gè)部件組成,對(duì)協(xié)調(diào)整個(gè)電腦有序工作極為重要。
指令寄存器:用以保存當(dāng)前執(zhí)行或即將執(zhí)行的指令的一種寄存器。指令內(nèi)包含有確定操作類型的操作碼和指出操作數(shù)來(lái)源或去向的地址。指令長(zhǎng)度隨不同計(jì)算機(jī)而異,指令寄存器的長(zhǎng)度也隨之而異。計(jì)算機(jī)的所有操作都是通過(guò)分析存放在指令寄存器中的指令后再執(zhí)行的。指令寄存器的輸人端接收來(lái)自存儲(chǔ)器的指令,指令寄存器的輸出端分為兩部分。操作碼部分送到譯碼電路進(jìn)行分析,指出本指令該執(zhí)行何種類型的操作;地址部分送到地址加法器生成有效地址后再送到存儲(chǔ)器,作為取數(shù)或存數(shù)的地址。
存儲(chǔ)器可以指主存、高速緩存或寄存器棧等用來(lái)保存當(dāng)前正在執(zhí)行的一條指令。當(dāng)執(zhí)行一條指令時(shí),先把它從內(nèi)存取到數(shù)據(jù)寄存器(DR)中,然后再傳送至IR。指令劃分為操作碼和地址碼字段,由二進(jìn)制數(shù)字組成。為了執(zhí)行任何給定的指令,必須對(duì)操作碼進(jìn)行測(cè)試,以便識(shí)別所要求的操作。指令譯碼器就是做這項(xiàng)工作的。指令寄存器中操作碼字段的輸出就是指令譯碼器的輸入。操作碼一經(jīng)譯碼后,即可向操作控制器發(fā)出具體操作的特定信號(hào)。
程序計(jì)數(shù)器:指明程序中下一次要執(zhí)行的指令地址的一種計(jì)數(shù)器,又稱指令計(jì)數(shù)器。它兼有指令地址寄存器和計(jì)數(shù)器的功能。當(dāng)一條指令執(zhí)行完畢的時(shí)候,程序計(jì)數(shù)器作為指令地址寄存器,其內(nèi)容必須已經(jīng)改變成下一條指令的地址,從而使程序得以持續(xù)運(yùn)行。
為此可采取以下兩種辦法:
第一種辦法是在指令中包含了下一條指令的地址。在指令執(zhí)行過(guò)程中將這個(gè)地址送人指令地址寄存器即可達(dá)到程序持續(xù)運(yùn)行的目的。這個(gè)方法適用于早期以磁鼓、延遲線等串行裝置作為主存儲(chǔ)器的計(jì)算機(jī)。根據(jù)本條指令的執(zhí)行時(shí)間恰當(dāng)?shù)貨Q定下一條指令的地址就可以縮短讀取下一條指令的等待時(shí)間,從而收到提高程序運(yùn)行速度的效果。
第二種辦法是順序執(zhí)行指令。一個(gè)程序由若干個(gè)程序段組成,每個(gè)程序段的指令可以設(shè)計(jì)成順序地存放在存儲(chǔ)器之中,所以只要指令地址寄存器兼有計(jì)數(shù)功能,在執(zhí)行指令的過(guò)程中進(jìn)行計(jì)數(shù),自動(dòng)加一個(gè)增量,就可以形成下一條指令的地址,從而達(dá)到順序執(zhí)行指令的目的。這個(gè)辦法適用于以隨機(jī)存儲(chǔ)器作為主存儲(chǔ)器的計(jì)算機(jī)。當(dāng)程序的運(yùn)行需要從一個(gè)程序段轉(zhuǎn)向另一個(gè)程序段時(shí),可以利用轉(zhuǎn)移指令來(lái)實(shí)現(xiàn)。轉(zhuǎn)移指令中包含了即將轉(zhuǎn)去的程序段入口指令的地址。執(zhí)行轉(zhuǎn)移指令時(shí)將這個(gè)地址送人程序計(jì)數(shù)器(此時(shí)只作為指令地址寄存器,不計(jì)數(shù))作為下一條指令的地址,從而達(dá)到轉(zhuǎn)移程序段的目的。子程序的調(diào)用、中斷和陷阱的處理等都用類似的方法。在隨機(jī)存取存儲(chǔ)器普及以后,第二種辦法的整體運(yùn)行效果大大地優(yōu)于第一種辦法,因而順序執(zhí)行指令已經(jīng)成為主流計(jì)算機(jī)普遍采用的辦法,程序計(jì)數(shù)器就成為中央處理器的一個(gè)控制部件。
CPU內(nèi)的每個(gè)功能部件都完成一定的特定功能。信息在各部件之間傳送及數(shù)據(jù)的流動(dòng)控制部件的實(shí)現(xiàn)。通常把許多數(shù)字部件之間傳送信息的通路稱為"數(shù)據(jù)通路"。信息從什么地方開(kāi)始,中間經(jīng)過(guò)哪個(gè)寄存器或多路開(kāi)關(guān),最后傳到哪個(gè)寄存器,都要加以控制。在各寄存器之間建立數(shù)據(jù)通路的任務(wù),是由稱為"操作控制器"的部件來(lái)完成的。
操作控制器的功能就是根據(jù)指令操作碼和時(shí)序信號(hào),產(chǎn)生各種操作控制信號(hào),以便正確地建立數(shù)據(jù)通路,從而完成取指令和執(zhí)行指令的控制。