版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第五章中央處理器要點:掌握CPU中控制器的工作過程,也就可以說掌握了計算機的全部工作過程。深入討論CPU的工作原理、基本功能和控制方式。難點:CPU中控制器的時序、設(shè)計方法。主要內(nèi)容:CPU的功能和組成(掌握)指令周期(掌握)時序產(chǎn)生器和控制方式(理解)微程序控制器(掌握)微程序設(shè)計技術(shù)(掌握)硬布線控制器(理解)CPU的新技術(shù)(理解)教學要求課堂上注意聽講、重要的是理解課堂外一定要看書復習或預習、完成作業(yè)5.1.1CPU的組成與功能一、
CPU的組成
CPU由控制器運算器兩個主要部件組成。邏輯結(jié)構(gòu)圖:主要內(nèi)容:中央處理器的硬件組成和中央處理器的功能。5.1CPU的總體結(jié)構(gòu)程序計數(shù)器PCALU操作控制器時序產(chǎn)生器指令譯碼器存儲器輸入/出數(shù)據(jù)總線DBUS地址總線ABUS地址寄存器ARCCC狀態(tài)條件寄存器CCC算術(shù)邏輯單元CPU取指控制執(zhí)行控制狀態(tài)反饋時鐘指令寄存器IR緩沖寄存器DRC累加器……累加器程序計數(shù)器PCALU操作控制器時序產(chǎn)生器指令譯碼器存儲器輸入/出數(shù)據(jù)總線DBUS地址總線ABUS地址寄存器ARCCC狀態(tài)條件寄存器CCC算術(shù)邏輯單元CPU取指控制執(zhí)行控制狀態(tài)反饋時鐘指令寄存器IR緩沖寄存器DRC……由程序計數(shù)器PC、指令寄存器IR、指令譯碼器ID、時序產(chǎn)生器和操作控制器組成,它是發(fā)布命令的“決策機構(gòu)”,即完成協(xié)調(diào)和指揮整個計算機系統(tǒng)的操作。1、控制器控制器內(nèi)的主要寄存器:程序計數(shù)器PC(ProgramCounter):存放指令的地址(當前指令或者下一條指令地址)當指令順序執(zhí)行時,由PC+1產(chǎn)生下一條指令的地址;當遇到轉(zhuǎn)移指令時,轉(zhuǎn)移地址PC作為下一條指令的地址。地址寄存器AR(AddressRegister):用來保存當前CPU所訪問的內(nèi)存單元的地址。
由于在內(nèi)存和CPU之間存在著操作速度上的差別,所以必須使用地址寄存器來保持地址信息,直到內(nèi)存的讀/寫操作完成為止。當CPU和內(nèi)存進行信息交換,即CPU向主存儲器存/取數(shù)據(jù)時,或者CPU從主存中讀出指令時,都要使用地址寄存器和緩沖寄存器。同樣若將外圍設(shè)備的設(shè)備地址作為像內(nèi)存的地址單元那樣來看待,則當CPU和外圍設(shè)備交換信息時可同樣使用地址寄存器和緩沖寄存器。指令寄存器IR(InstructionRegister):用來保存當前正在執(zhí)行的一條指令。當執(zhí)行一條指令時,先把它從內(nèi)存取到緩沖寄存器中,然后再傳送至指令寄存器。指令劃分為操作碼和地址碼字段,由二進制數(shù)字組成。指令譯碼器ID(InstructionDecoder):對指令寄存器中的指令操作碼字段進行譯碼。譯碼器的輸出信號送入操作控制信號形成部件,產(chǎn)生該指令所需要的有一定時序關(guān)系的操作控制信號序列。控制器主要功能:(1)取指令。從內(nèi)存中取出一條指令,并指出下一條指令在內(nèi)存中的位置;(2)指令譯碼。對指令進行譯碼或測試,并產(chǎn)生相應的操作控制信號,以便啟動規(guī)定的動作;(3)控制指令執(zhí)行。根據(jù)分析指令時產(chǎn)生的操作命令和操作數(shù)地址形成相應的操作控制信號序列,通過運算器、存儲器及輸入/輸出設(shè)備的執(zhí)行,實現(xiàn)每條指令的功能。不斷重復執(zhí)行取指、譯碼、執(zhí)行,直至遇到停機或外來的干預。
(4)控制程序和數(shù)據(jù)的輸入與結(jié)果輸出。根據(jù)程序的規(guī)定或人為干預,向輸入/輸出設(shè)備發(fā)出一些相應的命令來完成I/O功能。
(5)處理異常情況和請求。當計算機出現(xiàn)異常情況,如除數(shù)為零和數(shù)據(jù)傳送的奇偶錯等,或者出現(xiàn)外部中斷請求和DMA請求的時候,控制器可以中止當前執(zhí)行的程序,轉(zhuǎn)去執(zhí)行異常處理或者響應中斷和DMA請求并進行相關(guān)處理。由算術(shù)邏輯單元(ALU)、累加寄存器、數(shù)據(jù)緩沖寄存器和狀態(tài)條件寄存器組成,它是數(shù)據(jù)加工處理部件。相對控制器而言,運算器接受控制器的命令而進行動作,即運算器所進行的全部操作都是由控制器發(fā)出的控制信號來指揮的,所以它是執(zhí)行部件。2、運算器1)算術(shù)邏輯單元ALU(ArithmeticandLogicUnit)算術(shù)邏輯單元ALU是處理數(shù)據(jù)的部件,主要負責實現(xiàn)對數(shù)據(jù)的算術(shù)運算和邏輯運算。2)累加寄存器AC(Accumulator)累加器是暫時存放參加ALU運算的操作數(shù)據(jù)和結(jié)果的部件,是一個通用寄存器。運算器中通常至少要有一個累加器。由于運算器的結(jié)構(gòu)不同,可采用多個累加寄存器。
3)數(shù)據(jù)緩沖寄存器DR(DataBufferRegister)
緩沖寄存器用來暫時存放從主存儲器、輸入/輸出設(shè)備讀來的數(shù)據(jù)或者準備寫入主存儲器、輸入/輸出設(shè)備的數(shù)據(jù)。數(shù)據(jù)緩沖寄存器的作用是:(1)作為CPU和內(nèi)存、外部設(shè)備之間信息傳送的中轉(zhuǎn)站;(2)補償CPU和內(nèi)存、外圍設(shè)備之間在操作速度上的差別;(3)在單累加器結(jié)構(gòu)的運算器中,數(shù)據(jù)緩沖寄存器還可兼作為操作數(shù)寄存器。
4)狀態(tài)標志寄存器狀態(tài)標志寄存器用來保存由算術(shù)指令和邏輯指令運行或測試的結(jié)果而建立的各種條件碼內(nèi)容。如:運算結(jié)果進位標志(C),運算結(jié)果溢出標志(V),運算結(jié)果為零標志(Z),運算結(jié)果為負標志(N),等等。這些標志位通常分別由1位觸發(fā)器保存。
除此之外,狀態(tài)標志寄存器還用來保存中斷和系統(tǒng)工作狀態(tài)等信息,以便CPU和系統(tǒng)能及時了解機器運行狀態(tài)和程序運行狀態(tài)。(1)執(zhí)行所有的算術(shù)運算;(2)執(zhí)行所有的邏輯運算,并進行邏輯測試,如零值測試或兩個值的比較。運算器的主要功能:二、CPU的功能(4)數(shù)據(jù)加工:對數(shù)據(jù)進行算術(shù)運算和邏輯運算處理。完成數(shù)據(jù)的加工處理,這是CPU的根本的任務。(1)指令控制:程序是指令的有序集合,保證機器按規(guī)定的順序執(zhí)行程序。(2)操作控制:CPU管理并產(chǎn)生由內(nèi)存取出的每條指令的操作信號,并把各種操作信號送往相應的部件,從而控制這些部件按指令的要求進行動作。(3)時間控制:對各種操作實施時間上的控制,計算機中各種指令的操作信號均受到時間的嚴格控制。5.1.2操作控制器與時序產(chǎn)生器數(shù)據(jù)通路:寄存器之間傳送信息的通路。由操作控制器完成。操作控制器:根據(jù)指令操作碼和時序信號的要求,產(chǎn)生各種操作控制信號,以便正確地建立數(shù)據(jù)通路,從而完成取指令和執(zhí)行指令的控制的部件。時序產(chǎn)生器:是對各種操作實施時間上的嚴格控制的部件。操作控制器設(shè)計方法有:1)硬布線控制器:是采用組成邏輯技術(shù)來實現(xiàn)控制的操作控制器2)微程序控制器:是采用存儲邏輯技術(shù)來實現(xiàn)控制的操作控制器3)門陣列控制器:是采用邏輯技術(shù)和存儲邏輯技術(shù)相結(jié)合的操作控制器1)多個通用寄存器(用來保存CPU運行時所需要的各類數(shù)據(jù)信息或運行狀態(tài)信息)
2)邏輯運算單元(對寄存器中的數(shù)據(jù)進行加工處理)
3)操作控制器(對各種操作控制信號進行定時,以便在時間上的約束)一個典型CPU具有:5.2指令的執(zhí)行與時序產(chǎn)生器計算機是怎樣實現(xiàn)各條指令的功能,又如何保證逐條指令的連續(xù)執(zhí)行過程。計算機的工作過程可從計算機上電到停機的過程:加電產(chǎn)生Reset信號執(zhí)行程序停機斷電
馮.諾依曼結(jié)構(gòu)的計算機執(zhí)行程序的順序:1.從程序首地址開始。3.自動地連續(xù)執(zhí)行指令,直到程序的最后一條指令。2.分步執(zhí)行每一條指令,并形成下條待執(zhí)行指令的地址。5.2.1指令周期—讀取指令指令地址送入主存地址寄存器讀主存,讀出內(nèi)容送入指定的寄存器—分析指令—按指令規(guī)定內(nèi)容執(zhí)行指令不同指令的操作步驟數(shù)和具體操作內(nèi)容差異很大—檢查有無中斷請求若無,則轉(zhuǎn)入下一條指令的執(zhí)行過程形成下一條指令地址指令的執(zhí)行過程一、指令周期的基本概念1、指令周期:CPU每取出并執(zhí)行一條指令,都要完成一系列的操作,這一系列操作所需用的時間通常叫做一個指令周期。2、機器周期:機器周期也稱為CPU周期。通常用內(nèi)存中讀取一個指令字的最短時間來規(guī)定CPU周期。指令周期常常用若干個CPU周期數(shù)來表示,3、時鐘周期:一個CPU周期時間又包含有若干個時鐘周期(通常稱為節(jié)拍脈沖或T周期,它是處理操作的最基本單位)。這些時鐘周期的總和則規(guī)定了一個CPU周期的時間寬度。T周期T1T2T3T4T1T2T3T4指令周期CPU周期取指令CPU周期執(zhí)行指令定長的CPU周期,取出一條指令并執(zhí)行這條指令需要最少2個CPU周期,如下圖所示:不定長CPU周期如下圖:T周期T1T2T3T4T1T2T3T1指令周期CPU周期執(zhí)行指令CPU周期取指令八進制地址八進制內(nèi)容指令助記符典型指令020250000CLA清除累加器,為非法訪問內(nèi)存指令021030000
ADD30加法,為直接訪問內(nèi)存指令022021031
STAI31存數(shù),為間接訪問內(nèi)存指令023140021
JMP21轉(zhuǎn)移控制指令024000000HLT停機……030000006031000040……040存和數(shù)單元下面是一個4條典型指令組成的程序:1、非訪問主存取器指令的指令周期
CLA是一條非訪問內(nèi)存指令,它需要兩個CPU周期,其中:取指令階段需要一個CPU周期,執(zhí)行指令階段需要一個CPU周期。二、指令周期
在第一個CPU周期,即取指令階段,CPU完成三件事:(1)從內(nèi)存取出指令;(2)對程序計數(shù)器PC加1,以便為取下一條指令做好準備;(3)對指令操作碼進行譯碼或測試,以便確定進行什么操作。在第二個CPU周期,即執(zhí)行指令階段,將累加器Ac的內(nèi)容清零。
程序計數(shù)器PC的內(nèi)容20(八進制)被裝入地址寄存器AR;PC(內(nèi)容為020)→AR程序計數(shù)器內(nèi)容加1,變成21,為取下一條指令做好準備;PC+1→PC地址寄存器的內(nèi)容被放到地址總線上;AR→ABUS所選存儲器單元20的內(nèi)容經(jīng)過數(shù)據(jù)總線,傳送到數(shù)據(jù)緩沖寄存器DR;
M(在MEM中單元020的內(nèi)容)→DBUS→DR緩沖寄存器的內(nèi)容傳送到指令寄存器IR;
DR→IR指令寄存器中的操作碼被譯碼或測試;CPU識別出是指令CLA,至此,取指令階段即告結(jié)束。取指令階段(第一個CPU周期,如圖5-5)執(zhí)行指令階段(第二個CPU周期,如圖5-6)①操作控制器送一控制信號給算術(shù)邏輯運算單元ALU②ALU響應該控制信號,將AC的內(nèi)容全部清0,從而執(zhí)行了CLA指令(0→AC)指令周期算術(shù)邏輯單元狀態(tài)條件寄存器程序計數(shù)器PC地址寄存器AR地址總線ABUS數(shù)據(jù)總線DBUS累加器AC緩沖寄存器DRCPUALU指令寄存器IR指令譯碼器操作控制器時序產(chǎn)生器時鐘狀態(tài)反饋取指控制執(zhí)行控制cccc+10000202021222324303140CLAADD30STAI31JMP21000040000020CLACLA000021000006指令周期算術(shù)邏輯單元狀態(tài)條件寄存器程序計數(shù)器PC地址寄存器AR地址總線ABUS數(shù)據(jù)總線DBUS累加器AC緩沖寄存器DRCPUALU指令寄存器IR指令譯碼器操作控制器時序產(chǎn)生器時鐘狀態(tài)反饋取指控制執(zhí)行控制cccc+12021222324303140CLAADD30STAI31JMP21000040000020CLACLA0000210000062、直接訪問主存儲器指令的指令周期ADD30指令的指令周期由三個CPU周期組成:第一個CPU周期為取指令階段,其過程與CLA指令完全相同。執(zhí)行指令階段由2個CPU周期組成:在第二個CPU周期中將操作數(shù)的地址送往地址寄存器并完成地址譯碼;在第三個CPU周期中從內(nèi)存取出操作數(shù)并執(zhí)行相加的操作。圖5-7直接訪問內(nèi)存指令的指令周期(1)送操作數(shù)地址第二個CPU周期主要完成送操作數(shù)地址。在此階段,CPU的動作只有一個,那就是:把指令寄存器中的地址碼部分(30)裝入地址寄存器(IR→AR),其中30為內(nèi)存中存放操作數(shù)的地址。圖5-8(2)兩操作數(shù)相加第三個CPU周期主要完成取操作數(shù)并執(zhí)行加法的操作。在此階段,CPU完成如下動作(3個):(1)把地址寄存器中的操作數(shù)的地址(30)發(fā)送到地址總線上,即(AR→ABUS)(2)由存儲器單元30中讀出操作數(shù)(6),并經(jīng)過數(shù)據(jù)總線傳送到緩沖寄存器,即(M→DBUS→DR)(3)執(zhí)行加操作:由數(shù)據(jù)緩沖寄存器來的操作數(shù)(6)可送往ALU的一個輸入端,已等候在累加器內(nèi)的另一個操作數(shù)(因為CLA指令執(zhí)行結(jié)束后累加器內(nèi)容為零)送往ALU的另一輸入端,于是ALU將兩數(shù)相加,產(chǎn)生運算結(jié)果為0+6=6。這個結(jié)果放回累加器,替換了累加器中原先的數(shù)0。(AC+DR→AC)圖5-9算術(shù)邏輯單元狀態(tài)條件寄存器程序計數(shù)器PC地址寄存器AR地址總線ABUS數(shù)據(jù)總線DBUS累加器AC緩沖寄存器DRCPUALU指令寄存器IR指令譯碼器操作控制器時序產(chǎn)生器時鐘狀態(tài)反饋取指控制執(zhí)行控制cccc+12021222324303140CLAADD30STAI31JMP21000040000021ADDADD300000210000220000300000060+6=60000060000063、間接訪問主存儲器指令的指令周期STAI31指令的指令周期由4個CPU周期組成,如圖所示。其中,第一個CPU周期仍然是取指令階段,其過程和CLA指令、ADD指令完全一樣,只是此階段中程序計數(shù)器加1后變?yōu)?3,為取第四條指令做好了準備。下面仍不討論第一個CPU周期,而討論從第二個CPU周期開始的指令執(zhí)行階段的各個操作。假定第一個CPU周期結(jié)束后,“STAI31”指令已放入指令寄存器并完成譯碼分析。圖5-10間接訪問內(nèi)存指令的指令周期(1)送地址指示器在執(zhí)行階段的第一個CPU周期中,CPU完成的動作是:把指令寄存器中地址碼部分的形式地址(31)裝到地址寄存器中,即(IR→AR)。其中數(shù)字31不是操作數(shù)的地址,而是操作數(shù)地址的地址,或者說是操作數(shù)地址的指示器。其數(shù)據(jù)通路與圖5.5所示的完全一樣,不同的是數(shù)字31不是操作數(shù)地址。
(2)取操作數(shù)地址
CPU完成如下動作:①地址寄存器的內(nèi)容(31)發(fā)送到地址總線上,即(AR→ABUS)。②存儲單元(31)的內(nèi)容(40)讀出到數(shù)據(jù)總線上,即(M→DBUS)。③把數(shù)據(jù)總線上的數(shù)據(jù)(40)裝入地址寄存器,替代了原先的內(nèi)容(31),即(DBUS→AR)。至此,操作數(shù)地址40已取出,并放入到地址寄存器中。圖5-11
(3)存儲和數(shù)
CPU完成如下動作:①將累加器的內(nèi)容(6)傳送到數(shù)據(jù)緩沖寄存器DR中,即(AC→DR)。②將地址寄存器的內(nèi)容(40)發(fā)送到地址總線上,40就是要存入的數(shù)據(jù)6的內(nèi)存單元號,即(AR→ABUS)。③將緩沖寄存器的內(nèi)容(6)發(fā)送到數(shù)據(jù)總線上,即(DR→DBUS)。④將數(shù)據(jù)總線上的數(shù)據(jù)寫入所選的存儲器單元中,即將數(shù)據(jù)6寫入內(nèi)存的40號單元中,即(DBUS→M)。圖5-12算術(shù)邏輯單元狀態(tài)條件寄存器程序計數(shù)器PC地址寄存器AR地址總線ABUS數(shù)據(jù)總線DBUS累加器AC緩沖寄存器DRCPUALU指令寄存器IR指令譯碼器操作控制器時序產(chǎn)生器時鐘狀態(tài)反饋取指控制執(zhí)行控制cccc+120212223243040CLAADD30STAI31JMP21000040000022STASTA40000022000023000040000006000006310000064、程序控制指令的指令周期JMP21轉(zhuǎn)移類指令,可采用直接尋址和間接尋址,以直接尋址為例:JMP有兩個CPU周期組成,如下圖:取指令PC+1對指令譯碼送轉(zhuǎn)移地址開始取下條指令一個CPU周期一個CPU周期取指令階段執(zhí)行指令階段取指過程同CLA
執(zhí)行如下圖所示:圖5-12指令周期算術(shù)邏輯單元狀態(tài)條件寄存器程序計數(shù)器PC地址寄存器AR地址總線ABUS數(shù)據(jù)總線DBUS累加器AC緩沖寄存器DRALU指令寄存器IR指令譯碼器操作控制器時序產(chǎn)生器時鐘狀態(tài)反饋取指控制執(zhí)行控制cccc+120212223243040CLAADD30STA40JMP21000006000023JMP21JMP2100002300002100000600002400002131000040三、用方框圖語言表示指令周期采用方框圖表示:公共操作符號:公操作:一條指令執(zhí)行完畢后CPU所開始進行的操作。這些主要是CPU對外請求的管理,如中斷管理、通道管理等,若沒請求,CPU將轉(zhuǎn)向內(nèi)存取下一條指令。例:如圖所示為雙總線結(jié)構(gòu)機器的數(shù)據(jù)通路,IR為指令寄存器,PC為程序計數(shù)器(具有自增功能),M為主存(受R/W信號控制),AR為地址寄存器,DR為數(shù)據(jù)緩沖寄存器,ALU由加、減控制信號決定完成何種操作,控制信號G控制的是一個門電路。另外,線上標注有小圈表示有控制信號,例中yi表示y寄存器的輸入控制信號,R1o為寄存器R1的輸出控制信號,未標字符的線為直通線,不受控制。IRPCARDRR0R1R2R3MABALUIRiIRoPCiPCoARiDRiDRoR0iR0oR3iR3oXiYiA總線B總線G+-R/W1.“ADDR2,R0”指令完成(R0)+(R2)→R0功能操作。假設(shè)該指令的地址已放入PC中。2.“SUBR1,R3”指令完成(R3)-(R1)→R3的功能操作。PC→ARM→DRDR→IRR2→YR0→XR0+R2→R0~PC→ARM→DRDR→IRR3→YR1→XR3+R1→R3~PC0,G,ARiDR0,G,IRiR20,G,YiR00,G,Xi+,G,R0i
R/W=RR3o,G,YiR1o,G,Xi-,G,R3iIRPCARDRR0R1R2R3MABALUIRiIRoPCiPCoARiDRiDRoR0iR0oR3iR3oXiYiG+-R/W5.2.2
時序產(chǎn)生器一、時序信號的作用和體制二、時序信號產(chǎn)生器一、時序信號的作用和體制CPU中,時序信號使計算機可以準確、迅速、有條不紊地工作。當計算機加電啟動后,在時鐘脈沖作用下,CPU將根據(jù)當前正在執(zhí)行的指令的需要,產(chǎn)生時序控制信號,控制計算機各個部件有序地工作。1、時序信號的作用
機器一旦被啟動,即CPU開始取指令并執(zhí)行指令時,操作控制器就利用定時脈沖的順序和不同的脈沖間隔,有條理、有節(jié)奏地指揮機器的動作,規(guī)定在這個脈沖到來時做什么,在那個脈沖到來時又做什么,給計算機各部分提供工作所需的時間標志。[思考]
用二進制碼表示的指令和數(shù)據(jù)都放在內(nèi)存里,那么CPU是怎樣識別出它們是數(shù)據(jù)還是指令呢?[答案]CPU能很容易通過時序控制信號從時間和空間上識別出是數(shù)據(jù)還是指令。從時間上來說,取指令事件發(fā)生在指令周期的第一個CPU周期中,即發(fā)生在“取指令”階段,而取數(shù)據(jù)事件發(fā)生在指令周期的后面幾個CPU周期中,即發(fā)生在“執(zhí)行指令”階段。從空間上來說,如果取出的代碼是指令,那么一定送往指令寄存器,如果取出的代碼是數(shù)據(jù),那么一定送往運算器。不僅如此,在一個CPU周期中,又把時間分為若干個小段,以便規(guī)定CPU在每一小段時間里具體進行何種操作。這種嚴格的時間約束對CPU是非常必要的,時間進度既不能來得太早,也不能來得太晚,否則就可能造成丟失信息或?qū)е洛e誤的結(jié)果??傊嬎銠C的協(xié)調(diào)動作需要時間標志,而時間標志則是用時序信號來體現(xiàn)的。操作控制器發(fā)出的各種控制信號一般都是時間因素(時序信號)和空間因素(部件位置)的函數(shù)。計算機硬件的器件特性決定了:時序信號最基本的體制是電位—脈沖制。用這種體制進行寄存器之間的數(shù)據(jù)傳送時,具體如下:將數(shù)據(jù)加在觸發(fā)器的電位輸入端,將加入數(shù)據(jù)的控制信號加在觸發(fā)器的時鐘輸入端。電位的高低分別表示數(shù)據(jù)1、0。為保證加入到寄存器中的數(shù)據(jù)可靠,必須先建立電位信號,并且要求電位信號在加入數(shù)據(jù)的控制信號到來之前必須已經(jīng)穩(wěn)定。2、時序信號的體制
組合邏輯控制器(硬布線控制器)中,時序信號往往采用主狀態(tài)周期-節(jié)拍電位-節(jié)拍脈沖三級體制。主狀態(tài)周期:包含若干個節(jié)拍電位,可以用一個觸發(fā)器的狀態(tài)持續(xù)時間來表示,是最大的時間單位。節(jié)拍電位:一個節(jié)拍電位表示一個CPU周期時間,包含若干個節(jié)拍脈沖,較大的時間單位。節(jié)拍脈沖:把一個CPU周期劃分成幾個較小的時間間隔,這些間隔可以相等,也可以不等。在微程序控制器中,時序信號比較簡單,一般采用電位-節(jié)拍脈沖二級體制。一個節(jié)拍電位表示一個CPU周期,節(jié)拍脈沖就是時鐘周期。
二、時序信號產(chǎn)生器時序信號產(chǎn)生器:就是用邏輯電路實現(xiàn)上述控制時序,產(chǎn)生指令周期控制時序信號的部件
。從設(shè)計操作控制器的方法來講,組合邏輯控制器的時序電路比較復雜,而微程序控制器的時序電路比較簡單。時序信號產(chǎn)生器最基本的結(jié)構(gòu)是一樣的,都是由時鐘源、環(huán)形脈沖發(fā)生器、節(jié)拍脈沖和讀寫時序譯碼邏輯、啟停控制邏輯等部分組成。時鐘源:用來為環(huán)形脈沖發(fā)生器提供頻率穩(wěn)定且電平匹配的方波時鐘脈沖信號。它通常由石英晶體振蕩器和與非門組成的正反饋振蕩電路組成,其輸出送至環(huán)形脈沖發(fā)生器。1、時鐘源時序脈沖發(fā)生器和啟??刂茣r序脈沖發(fā)生器就是根據(jù)時鐘產(chǎn)生一定頻率的節(jié)拍脈沖信號作為整個機器工作的時序信號;啟??刂齐娐肥潜WC在適當?shù)臅r刻準確可靠地開啟或封鎖計算機工作時鐘,以控制微操作命令序列的產(chǎn)生或停止,從而啟動或停止計算機的運行。通常用訪問一次主存取指或取數(shù)據(jù)的時間來作為機器周期的基本時間。機器周期確定后,每一機器周期的節(jié)拍與時鐘數(shù)、機器的主頻也就基本確定了??刂破鞯臅r鐘輸入實際上是節(jié)拍脈沖序列,其頻率即為機器的主頻。環(huán)形脈沖發(fā)生器的作用:是產(chǎn)生一組有序的間隔相等或不等的脈沖序列,以便通過譯碼電路來產(chǎn)生最后所需的節(jié)拍脈沖。環(huán)形脈沖發(fā)生器有2種形式:一種是采用普通計數(shù)器構(gòu)成;另一種采用循環(huán)移位寄存器構(gòu)成。為了在節(jié)拍脈沖上不帶干擾毛刺,環(huán)形脈沖發(fā)生器通常采用循環(huán)移位寄存器形式2、環(huán)形脈沖發(fā)生器與時序信號譯碼環(huán)形脈沖發(fā)生器與譯碼邏輯12345678910Φc1c2c3c4MREQ’RD’WE’T1T2T3T4RDWECPU周期CPU周期MREQ’、RD’、WE’等取自微程序存儲器12345678910Φc1c2c3c4MREQ’RD’WE’T1T2T3T4RDWECPU周期CPU周期3、節(jié)拍脈沖和讀/寫時序的譯碼由圖5-18可知,一個CPU周期是由T01、T02、T03、T04順序組成的,下一個CPU周期又按固定的時間關(guān)系,重復T01、T02、T03、T04的先后次序,以供給機器工作時所需的原始節(jié)拍脈沖。讀/寫時序信號的譯碼邏輯表達式為:
RD0=C2﹒RD’
,WE0=C3﹒WE’MREQ0=C2﹒MREQ’
,IORQ0=C2﹒IORQ’
圖5.17的上半部示出了節(jié)拍脈沖和讀/寫時序的譯碼邏輯。假設(shè)在一個CPU周期中產(chǎn)生四個等間隔的節(jié)拍脈沖,那么其譯碼邏輯可表示為:T01=C1C2,T02=C2C3,T03=C3,T04=C1其中RD0、WE0和MREQ0信號配合后可進行存儲器的讀/寫操作;而RD0
、WE0和IORQ0信號配合后可進行外圍設(shè)備的讀/寫操作。表達式右邊帶撇號的RD’、WE’、MREQ’和IORQ’是來自微程序控制器的控制信號,它們都是持續(xù)時間為一個CPU周期的節(jié)拍電位信號。讀/寫時序信號RD0
、WE0
、MREQ0
、IORQ0是受到控制的,它們只有在等式右邊帶撇號的控制信號有效后才能產(chǎn)生,而不能像原始節(jié)拍脈沖T01~T04那樣,一旦加上電源后就會自動產(chǎn)生。機器一旦接通電源,就會自動產(chǎn)生原始的節(jié)拍脈沖信號T01~T04。但是只有在啟動機器運行的情況下,才允許時序產(chǎn)生器發(fā)出CPU工作時所需的節(jié)拍脈沖T1~T4。4、啟??刂七壿嫗榇诵枰蓡⑼?刂七壿媮砜刂圃夹盘朤01~T04的發(fā)送。同樣,對讀/寫時序信號也需要由啟??刂七壿嫾右钥刂啤⑼?刂七壿嫷暮诵氖且粋€運行標志觸發(fā)器(Cr),如圖5.19所示。當運行觸發(fā)器為“1”時,原始節(jié)拍脈沖T01~T04和讀/寫時序信號RD、WE、MREQ通過門電路發(fā)送出去,變成CPU真正需要的節(jié)拍脈沖信號T1~T4和讀/寫時序RD、WE、MREQ;當運行觸發(fā)器為“0”時,關(guān)閉時序產(chǎn)生器。圖5-19啟??刂七壿媹D5.19中,在Cr觸發(fā)器下面加上一個RS觸發(fā)器,而且用T04信號作為Cr觸發(fā)器的時鐘控制端,這樣就可以保證在T1的前沿開啟時序產(chǎn)生器,而在T4的后沿關(guān)閉時序產(chǎn)生器。5.2.3CPU的控制方式控制方式:形成控制不同操作序列的時序信號的方法。其實質(zhì)反映了時序信號的定時方式。常用的有同步控制、異步控制、聯(lián)合控制三種方式。所謂同步控制方式,是指在任何情況下,給定的指令在執(zhí)行時所需的機器周期數(shù)和時鐘周期數(shù)都固定不變的控制方式。一、同步控制方式根據(jù)不同情況,同步控制方式可選取如下方案:(1)采用完全統(tǒng)一的機器周期執(zhí)行各種不同的指令。這要求計算機系統(tǒng)所有指令的指令周期都具有相同的節(jié)拍電位數(shù)和相同的節(jié)拍脈沖數(shù)。這種方法對簡單指令和簡單的操作來講,必然造成時間浪費。(2)采用不定長機器周期。將大多數(shù)操作安排在一個較短的機器周期內(nèi)完成,對某些時間緊張的操作,則采取延長機器周期的辦法來解決。(3)中央控制與局部控制結(jié)合。將大部分指令安排在固定的機器周期內(nèi)完成,稱為中央控制;對少數(shù)復雜指令(乘、除、浮點運算等)采用另外的時序進行定時,稱為局部控制。其特點是:每條指令、每個操作控制信號需要多少時間就占用多少時間。這意味著每條指令的指令周期可由多少不等的機器周期數(shù)組成;也可以是當控制器發(fā)出某一操作控制信號后,等待執(zhí)行部件完成操作后發(fā)“回答”信號,再開始新的操作。顯然,用這種方式形成的操作控制序列沒有固定的CPU周期數(shù)(節(jié)拍電位)或嚴格的時鐘周期(節(jié)拍脈沖)與之同步。異步控制方式的優(yōu)點是運行速度快,其缺點是控制電路比較復雜。二、異步控制方式所謂聯(lián)合控制方式,就是指同步控制和異步控制相結(jié)合的方式。有2種實現(xiàn)方法:①大部分操作序列安排在固定的機器周期中,對某些時間難以確定的操作則以執(zhí)行部件的“回答”信號作為本次操作的結(jié)束。例如,CPU訪問主存或者I/O端口時,依靠主存或者I/O發(fā)回CPU的有效“READY”信號作為讀/寫周期的結(jié)束。②機器周期的節(jié)拍脈沖數(shù)是固定的,但是各條指令周期的機器周期數(shù)卻是不固定的。下一節(jié)要講到的微程序控制就是采用這種方法。聯(lián)合控制方式的優(yōu)點是能保證一定的運行速度,其缺點是控制電路設(shè)計相對比較復雜。三、聯(lián)合控制方式5.3微程序設(shè)計技術(shù)和微程序控制器微程序設(shè)計技術(shù)是利用軟件方法進行硬件設(shè)計的一門技術(shù)。采用微程序設(shè)計思想的微程序控制器,同組合邏輯控制器相比較,具有規(guī)整、靈活、易維護等一系列優(yōu)點。在計算機設(shè)計中,普遍采用微程序設(shè)計的控制器取代早期采用的組合邏輯控制器。微程序控制的基本思想1.若干微命令編制成一條微指令,控制實現(xiàn)一步操作;2.若干微指令組成一段微程序,解釋執(zhí)行一條機器指令;3.微程序事先存放在控制存儲器中,執(zhí)行機器指令時再取出。微程序控制的基本思想:就是按照設(shè)計解題程序的思路,把操作控制信號編成微指令,并將微指令代碼存放到只讀存儲器里;當機器運行時,一條一條地讀出這些微指令,產(chǎn)生計算機所需要的各種操作控制信號,使相應部件執(zhí)行規(guī)定的操作。5.3.1
微程序設(shè)計技術(shù)一條指令功能:是由控制部件通過控制線向執(zhí)行部件發(fā)出各種控制命令;執(zhí)行部件接受命令后,按一定次序執(zhí)行一系列最基本操作完成的。這些控制命令通常稱為微命令,而這些最基本的操作稱為微操作。1.微程序設(shè)計技術(shù)的基本概念微操作:指令執(zhí)行時必須完成的基本操作。例如,PC→AR,PC+1→PC,RAM→IR。微命令:是組成微指令的最小單位,也就是控制微操作實現(xiàn)的控制信號。一般用于控制數(shù)據(jù)通路上門的打開/關(guān)閉,或者功能選擇。微指令:是一組微命令的集合,用于完成一個功能相對完整的操作。微程序:微指令的有序集合,用于實現(xiàn)機器指令的功能??刂拼鎯ζ鳎菏谴娣盼⒊绦虻拇鎯ζ?。該存儲器主要存放控制命令和下一條執(zhí)行的微指令地址。1.主要部件(1)控制存儲器CM功能:微地址形成電路IRPSWPC微地址寄存器
μAR控制存儲器CM譯碼器微命令序列微命令字段微地址字段μIR存放微程序。CM屬于CPU,不屬于主存儲器??刂拼鎯ζ鰿M(2)微指令寄存器μIR功能:微地址形成電路IRPSWPC微地址寄存器
μAR控制存儲器CM譯碼器微命令序列微命令字段微地址字段μIR存放現(xiàn)行微指令。微命令字段:提供一步操作所需的微命令。微地址字段:指明后續(xù)微地址的形成方式。提供微地址的給定部分。(微操作控制字段)(順序控制字段)微命令字段微地址字段μIRa)操作控制部分:用來發(fā)出指揮計算機工作的控制信號??梢杂貌僮髯侄蔚拿恳晃槐硎疽粋€微命令,位信息為“1”表示發(fā)出微命令;位信息為“0”表示不發(fā)出微命令。微命令信號既不能來得太早,也不能來得太晚,為此要求這些微命令信號還要加入時間控制。2.微指令基本結(jié)構(gòu)(1)微指令的基本格式2.微指令基本結(jié)構(gòu)(1)微指令的基本格式b)順序控制部分:用來決定產(chǎn)生下一條微指令的地址。順序控制字段的若干位直接給出下一條微指令的地址,其余各位則做為判別測試狀態(tài)的標志,如標志為“0”表示不進行判別測試,直接按順序控制字段給出的地址取下一條微指令;若標志為“1”表示要進行判別測試,根據(jù)測試結(jié)果,按要求修改相應的地址位信息,并按修改后的地址取下一條微指令。微地址形成電路(3)微地址形成電路功能:IRPSWPC微地址寄存器
μAR控制存儲器CM譯碼器微命令序列微命令字段微地址字段μIR提供兩類微地址微程序入口地址:由機器指令操作碼形成。后續(xù)微地址:由微地址字段、現(xiàn)行微地址、運行狀態(tài)等形成。微地址形成電路微地址形成電路2.工作過程(1)取機器指令CM取指微指令μIR微命令字段譯碼器微命令主存機器指令I(lǐng)R微地址形成電路IRPSWPC微地址寄存器
μAR控制存儲器CM譯碼器微命令序列微命令字段微地址字段μIR取指微指令控制存儲器取指微指令微命令字段微地址字段譯碼器微命令序列控制存儲器微命令字段微地址字段譯碼器微命令序列(2)轉(zhuǎn)微程序入口IR操作碼微地址形成電路微程序入口μAR微命令字段CM首條微指令(3)執(zhí)行首條微指令μIRμIR譯碼器微地址形成電路IRPSWPC微地址寄存器
μAR控制存儲器CM譯碼器微命令序列微命令字段微地址字段μIR取指微指令控制存儲器取指微指令微命令字段微地址字段譯碼器微命令序列IR控制存儲器微命令字段微地址字段譯碼器微命令序列微地址形成電路IR微地址寄存器微地址形成電路控制存儲器微地址寄存器微命令字段微地址字段控制存儲器微命令字段微地址字段微命令操作部件(4)取后續(xù)微指令微地址字段現(xiàn)行微地址運行狀態(tài)微地址形成電路后續(xù)微地址μARCM后續(xù)微指令μIR微地址形成電路IRPSWPC微地址寄存器
μAR控制存儲器CM譯碼器微命令序列微命令字段微地址字段μIR微命令字段微地址字段PSW微地址寄存器微地址形成電路微命令字段微地址字段PSW微地址寄存器微地址寄存器微地址形成電路微地址寄存器(5)執(zhí)行后續(xù)微指令同(3)微地址形成電路IRPSWPC微地址寄存器
μAR控制存儲器CM譯碼器微命令序列微命令字段微地址字段μIR微命令字段微地址字段PSW微地址寄存器微地址形成電路微命令字段微地址字段PSW微地址寄存器微地址寄存器微地址形成電路微地址寄存器(6)返回微程序執(zhí)行完,返回CM中存放取指微指令的固定單元。在串行方式的微程序控制器中:微指令周期=讀出微指令的時間+執(zhí)行該條微指令的時間為保證整個機器控制信號的同步,可將一個微指令周期時間設(shè)計得恰好和一個CPU周期時間相等。圖5-21示出了某小型機中CPU周期與微指令周期的時間關(guān)系:(2)微指令周期與CPU周期的關(guān)系一個CPU周期包含四個等間隔的節(jié)拍脈沖T1~T4,每個脈沖寬度為200ns。用T4作為讀取微指令的時間,用T1+T2+T3時間作為執(zhí)行微指令的時間。分析:例如在前600ns時間內(nèi)運算器進行運算,600ns時間結(jié)束時運算器已運算完,用T4上升沿將運算結(jié)果送入寄存器,同時可用T4間隔讀取下條微指令,經(jīng)200ns的延遲,下條微指令又從控制存儲器讀出,并在T1上升沿輸入到微指令寄存器中。若忽略觸發(fā)器的翻轉(zhuǎn)延遲,則下條微指令的微命令信號就從T1上升沿起開始有效,直到下一條微指令讀出后并輸入到微指令寄存器為止,這樣一條微指令的時間恰好是800ns。因此,一條微指令的時間就是一個CPU周期的時間。分析①一條機器指令對應一個微程序,一個微程序?qū)舾蓷l微指令序列。②指令、程序和地址是與主存儲器有關(guān)微指令、微程序和微地址是與控制存儲器有關(guān)。③一個CPU周期對應一條微指令,上次所講的4條典型的指令的指令周期圖,也是微程序的流程圖。(3)微指令與機器指令的關(guān)系關(guān)系圖:3、微程序的設(shè)計技術(shù)
微程序設(shè)計的關(guān)鍵是微指令結(jié)構(gòu)的設(shè)計,所考慮的問題是:①如何縮短微指令字的長度②如何減小控制存儲器的容量③如何減少程序的長度④如何提高微程序的執(zhí)行速度⑤如何易于修改微指令⑥如何增加微程序設(shè)計的靈活性
(1)微指令的編碼譯碼控制方法微指令由控制字段和順序控制字段組成。微命令編碼、譯碼控制方法:就是對微指令中的操作控制字段進行編碼表示,并且給出操作控制信號的方法。通常有以下5種方法:1)位直接控制法采用位直接控制法的微指令結(jié)構(gòu)如圖所示。在微指令的控制字段中,每一位表示一個微命令。在設(shè)計微指令時,是否發(fā)出某個微命令,只要將微指令控制字段中相應位置成“1”或“0”,即打開對應控制門,便可發(fā)出或禁止某個微命令。優(yōu)點:是簡單直觀,其輸出直接用于控制。缺點:是微指令字較長,因而使控制存儲器容量較大。測試標志順序地址操作控制部分順序控制部分控制信號W/RS1-S0下一條微指令地址2)字段直接譯碼控制法如果在若干個(一組)微命令中,在選擇使用它們的微周期內(nèi),每次只能有一個微命令有效,則這一組微命令是互相排斥的。字段直接譯碼控制法就是把一組相斥性的微命令信號組成一個字段(一個小組),然后通過字段譯碼器對每一個微命令信號進行譯碼,譯碼輸出作為操作控制信號。采用該方法,可以用較小的二進制信息位表示較多的微命令信號。3)字段間接譯碼控制法是在字段直接譯碼控制法的基礎(chǔ)上,進一步縮短微指令字長的方法。若在字段直接譯碼控制法中規(guī)定一個字段的某些命令由另一個字段中的某些微命令來解釋,則這種方法稱為字段間接譯碼控制法,如圖所示。4)混合編碼譯碼控制法這種方法是將位直接控制法與字段譯碼控制法混合使用的方法,能綜合考慮微指令字長、靈活性和執(zhí)行微程序速度等方面的要求。5)常數(shù)字段控制法這種方法在微指令中附設(shè)一個常數(shù)字段,就象指令中的立即數(shù)一樣,用它來給某些執(zhí)行部件直接發(fā)送常數(shù)。該常數(shù)有時作為操作數(shù)送入ALU參加運算,有時也作為計數(shù)器的初值來控制微程序循環(huán)次數(shù)。例:某32位機共有微操作控制信號52個,構(gòu)成5個相斥類的微命令組,各組分別包含4個,5個,8個15個可20個微命令,已知可判定的外部條件有CY和ZF兩個,微指令字長29位。
(1)給出采用斷定方式的水平型微指令格式
(2)控制存儲器器的容量應為多少位?(2)控制存儲器器的容量為:28×29=256×29位D28~D26D25~D23D22~D19D18~D15D14~D10D9D8D7~D04個微命令5個微命令8個微命令15個微命令20個微命令條件測試字段下一地址字段3位3位4位4位5位2位8位
(2)微地址的產(chǎn)生及微程序流的控制當前正在執(zhí)行的微指令,稱為現(xiàn)行微指令。現(xiàn)行微指令所在的控制存儲器單元的地址稱為現(xiàn)行微地址?,F(xiàn)行微指令執(zhí)行完畢后,下一條要執(zhí)行的微指令稱為后繼微指令。后繼微指令所在的控制存儲器單元地址稱為后繼微地址。所謂微程序流的控制是當現(xiàn)行微指令執(zhí)行完畢后,控制產(chǎn)生后繼微指令的后繼微地址的過程。通常,產(chǎn)生后繼微地址有3種方法。1)計數(shù)器方式2)增量方式與斷定方式相結(jié)合的方法3)多路轉(zhuǎn)移方式1)計數(shù)器方式
與使用程序計數(shù)器產(chǎn)生機器指令地址的方法類似:在順序執(zhí)行微指令時,后繼微地址由現(xiàn)行微地址加上一個增量來產(chǎn)生;在非順序執(zhí)行微指令時,必須通過轉(zhuǎn)移方式,使現(xiàn)行微指令執(zhí)行后,轉(zhuǎn)去執(zhí)行指定的后繼微地址的下一條微指令。在這種方法中,微地址寄存器通常改為計數(shù)器,順序執(zhí)行的微指令序列必須安排在控制存儲器的連續(xù)單元中。計數(shù)器方式的基本特點是:微指令的順序控制字段較短,微地址產(chǎn)生機構(gòu)簡單。但是多路并行轉(zhuǎn)移功能較弱,速度較慢,靈活性較差。2)增量方式與斷定方式相結(jié)合的方法這種方法將微指令順序控制部分分成兩部分:條件選擇字段和轉(zhuǎn)移地址字段。當微程序轉(zhuǎn)移時,將轉(zhuǎn)移地址送微程序計數(shù)器(μPC),否則順序執(zhí)行下一條微指令(μPC加l)。圖5.25增量方式與斷定方式結(jié)合形成微地址的示意圖。3)多路轉(zhuǎn)移方式一條微指令具有多個轉(zhuǎn)移分支功能的情況稱為多路轉(zhuǎn)移。例如,“取指”微指令根據(jù)操作碼OP產(chǎn)生多路微程序分支而形成多個微地址。在多路轉(zhuǎn)移方式中,當微程序不產(chǎn)生分支時,后繼微地址直接由微指令的順序控制字段給出;當微程序出現(xiàn)分支時,將有若干個候選微地址可供選擇,按順序控制字段的“判別測試”標志和“狀態(tài)條件”信息來選擇其中一個微地址。3)多路轉(zhuǎn)移方式“判別測試”有n位標志,可實現(xiàn)微程序2的n次方路轉(zhuǎn)移,涉及微地址寄存器的n位。多路轉(zhuǎn)移方式的特點是:能以較短的順序控制字段配合,實現(xiàn)多路并行轉(zhuǎn)移,靈活性好,速度較快,但轉(zhuǎn)移地址邏輯需要用組合邏輯方法設(shè)計。大體分成兩類:水平型微指令和垂直型微指令。(3)微指令的格式1)水平型微指令:一次能定義并執(zhí)行多個并行操作微命令的微指令。采用直接控制法進行編碼的,屬于水平型微指令的典型例子。水平型微指令的一般格式如下:按照控制字段的編碼方法的不同,水平型微指令又分為三種:全水平型(不譯法)微指令、字段譯碼法水平型微指令、直接和譯碼相混合的水平型微指令。2)垂直型微指令:設(shè)置微操作碼字段時,采用微操作碼編譯法來規(guī)定微指令的功能的微指令。垂直型微指令的結(jié)構(gòu)類似于機器指令的結(jié)構(gòu),有操作碼,在一條微指令中只有1~2個微操作命令,每條微指令的功能簡單。因此,實現(xiàn)一條機器指令的微程序要比水平型微指令編寫的微程序長得多。它采用較長的微程序結(jié)構(gòu)來換取較短的微指令結(jié)構(gòu)。(教程P185)下面舉4條垂直型微指令的微指令格式加以說明。設(shè)微指令字長為16位,微操作碼3位。(1)寄存器-寄存器傳送型微指令功能:把源寄存器數(shù)據(jù)送目標寄存器。13—15位為微操作碼(下同),源寄存器和目標寄存器編址各5位,可指定31個寄存器。(2)運算控制型微指令功能:選擇ALU的左、右兩輸入源信息,按ALU字段所指定的運算功能(8種操作)進行處理,并將結(jié)果送入暫存器中。左、右輸入源編址可指定31種信息源之一。000源寄存器編址目標寄存器編址其他151312873200000右輸入源編址左輸入源編址AL能:根據(jù)測試對象的狀態(tài)決定是轉(zhuǎn)移到D所指定的微地址單元,還是順序執(zhí)行下一條微指令。9位D字段不足以表示一個完整的微地址,但可以用來替代現(xiàn)行μPC的低位地址。測試條件字段有4位,可規(guī)定16種測試條件。(3)訪問主存微指令功能:將主存中一個單元的信息送入寄存器或者將寄存器的數(shù)據(jù)送往主存。存儲器編址是指按規(guī)定的尋址方式進行編址。第1,2位指定讀操作或?qū)懖僮?取其之一)。(4)條件轉(zhuǎn)移微指令010寄存器編址存儲器編址其他1513128732210000D測試條件1513124303)水平型微指令與垂直型微指令的比較A.水平型微指令并行操作能力強而且高效靈活,而垂直型微指令并行操作能力低且效率低。水平型微指令中,設(shè)置有能控制信息傳送通路以及進行所有操作的微命令,在設(shè)計微程序時,可以同時定義比較多的并行操作的微命令,來控制盡可能多的并行信息傳送。因此,水平型微指令具有效率高及靈活性強的優(yōu)勢;而垂直型微指令一般只能完成一個操作,控制一兩個信息傳送通路,因此,微指令的并行操作能力低,效率也低。B.水平型微指令執(zhí)行時間短,垂直型微指令執(zhí)行時間長。由于水平型微指令的并行操作能力強,因此,可以用較少的微指令數(shù)來實現(xiàn)一條指令的功能,從而縮短了指令的執(zhí)行時間,而且執(zhí)行一條微指令時,水平型微指令的微命令一般能直接控制控制對象;垂直型微指令要經(jīng)過譯碼才能控制被控對象,這也會影響速度。C.由水平型微指令解釋指令的微程序,微指令字比較長,但微程序短;而垂直型微指令的微指令字比較短而微程序長。D.水平型微指令用戶難以掌握,而垂直型微指令與指令比較相似,用戶比較容易掌握。水平型微指令與機器指令差別很大,一般需要對機器的結(jié)構(gòu)、數(shù)據(jù)通路、時序系統(tǒng)以及微命令很精通才能設(shè)計。3)水平型微指令與垂直型微指令的比較串行微程序控制
(4)串行微程序控制和并行微程序控制方式①串行微程序控制方式在串行微程序控制方式中,執(zhí)行現(xiàn)行微指令的操作與取下一條微指令的操作在時間上是按順序進行的,所以微指令周期=取微指令的時間+執(zhí)行微操作的時間,即等于只讀存儲器的讀數(shù)周期。串行微程序控制的微指令周期較長,但控制簡單,形成微地址的硬部件比較少。并行微程序控制②并行微程序控制方式就是將取微指令和執(zhí)行微指令這兩類操作在時間上重疊并行進行的方式。由于取微指令和執(zhí)行微指令的操作是在兩個完全不同的部件中執(zhí)行的,因此,可以將這兩部分操作同時進行,以縮短微指令周期。并行微程序控制可以縮短微指令周期,但是為了不影響本條微指令的正確執(zhí)行,需要增加一個微指令寄存器,用以暫存下一條微指令。其次,當微程序出現(xiàn)轉(zhuǎn)移時,需要解決如何確定下一條微指令地址。微程序設(shè)計有靜態(tài)微程序設(shè)計和動態(tài)微程序設(shè)計之分。若計算機的機器指令只有一組微程序,而且這一組微程序設(shè)計好之后,一般無需改變而且也不易改變,那么這種微程序設(shè)計稱為靜態(tài)微程序設(shè)計。當采用EPROM作為控制存儲器時,可以通過改變微指令和微程序來改變機器的指令系統(tǒng),這種微程序設(shè)計稱為動態(tài)微程序設(shè)計。(5)動態(tài)微程序設(shè)計毫微程序是用以解釋微程序的一種微程序,因此組成毫微程序的毫微指令就可看作是解釋微指令的微指令。采用毫微程序設(shè)計的主要目的是減少控制存儲器的容量。采用的是兩級微程序設(shè)計方法。通常第一級采用垂直微程序,第二級采用水平微程序。(6)毫微程序設(shè)計
4.微程序設(shè)計語言所謂微程序設(shè)計語言就是設(shè)計者專門用來編制微程序的語言,用微程序設(shè)計語言編制的程序稱為源微程序。源微程序不能直接裝入控制存儲器,必須轉(zhuǎn)換成二進制代碼后才能裝入控制存儲器。將源微程序翻譯成二進制代碼的程序稱為微編譯程序。5.3.2微程序控制器主要三大塊組成:控制存儲器、微指令寄存器(微地址寄存器和微命令寄存器)和地址轉(zhuǎn)移邏輯。控制存儲器用來存放實現(xiàn)全部指令系統(tǒng)的微程序,它是一種只讀存儲器。一旦微程序固化,機器運行時則只讀不寫。(1)控制存儲器其工作過程是:每讀出一條微指令,則執(zhí)行這條微指令;接著又讀出下一條微指令,又執(zhí)行這一條微指令……。讀出一條微指令并執(zhí)行微指令的時間總和稱為一個微指令周期。通常,在串行方式的微程序控制器中,微指令周期就是只讀存儲器的工作周期。控制存儲器的字長就是微指令字的長度,其存儲容量視機器指令系統(tǒng)而定,即取決于微程序的數(shù)量。
(2)
微指令寄存器
微指令寄存器用來存放由控制存儲器讀出的一條微指令信息。其中微地址寄存器決定將要訪問的下一條微指令的地址,而微命令寄存器則保存一條微指令的操作控制字段和判別測試字段的信息。在一般情況下,微指令由控制存儲器讀出后直接給出下一條微指令的地址,通常簡稱微地址,這個微地址信息就存放在微地址寄存器中。(3)地址轉(zhuǎn)移邏輯如果微程序不出現(xiàn)分支,那么下一條微指令的地址就直接由微地址寄存器給出。當微程序出現(xiàn)分支時,意味著微程序出現(xiàn)條件轉(zhuǎn)移。在這種情況下,通過判別測試字段P和執(zhí)行部件的“狀態(tài)條件”反饋信息,去修改微地址寄存器的內(nèi)容,并按改好的內(nèi)容去讀下一條微指令。地址轉(zhuǎn)移邏輯就承擔自動完成修改微地址的任務。微程序控制器——微程序舉例ALUR1R2R3Cy+
-MDR468579123例:R1=3R2=5R1+R2->R31、控4=1,R1->多路開關(guān)->X
控7=1,R2->多路開關(guān)->Y2、控+=1,ALU完成3+53、控3=13+5->R3微指令的格式:.......................123
4
567891011121314151617181920212223LDR1’LDR2’LDR3’R1→YR2→XR2→YR1→XDR→XR3→Y+M-RD’LDDR’LDIR’LDAR’PC+1P1P2直接地址操作控制順序控制微程序控制器——微程序舉例舉例:“十進制加法”指令的微程序控制的過程。十進制加法”指令的功能是用BCD碼來完成十進制數(shù)的加法運算。在十進制運算時,當相加二數(shù)之和大于9時,便產(chǎn)生進位,要進行加6修正;當相加二數(shù)之和小于等于9時,結(jié)果是正確的。
假定數(shù)a和b已存放在R1和R2兩寄存器中,數(shù)6存放在R3寄存器中。算法要求先進行a+b+6運算,然后判斷結(jié)果有無進位;當進位標志Cy=1不減6,當Cy=0,減6,從而可以獲得正確的結(jié)果。用BCD碼完成A+B運算1、A=1000B=1001
1000+100110001有進位,修正為:
10001+
0110101112、A=0110B=1000A+B+6=10100有進位,正確3、A+B+6=1101無進位,錯誤,修正:
1101-01100111PC→AR→ABUSDBUS→DR→IR,PC+1P1R1+R2→R2R2+R3→R2R2-R3→R2P2RD0000000010101001000000010000Cy≠0Cy=0微程序流程圖~第一條微指令00000000000011111100000123
4
567891011121314151617181920212223LDR1’LDR2’LDR3’R1→YR2→XR2→YR1→XDR→XR3→Y+M-RD’LDDR’LDIR’LDAR’PC+1P1P2直接地址操作控制順序控制操作控制字段有五個微命令:第16位發(fā)出LDAR’,將PC內(nèi)容送到地址寄存器AR;第13位發(fā)出RD’,第14位發(fā)出LDDR’,于是內(nèi)存執(zhí)行讀操作,從內(nèi)存取出“十進制加法”指令放到DR中,第15位發(fā)出LDIR’,將DR中的指令再送到指令寄存器IR中,第17位發(fā)出PC+1微命令,是程序計數(shù)器加1,做好取下一條機器指令的準備。PC→AR→ABUSDBUS→DR→IR,PC+1P1R1+R2→R2R2+R3→R2R2-R3→R2P2RD0000000010101001000000010000Cy≠0Cy=0微程序流程圖~第二條微指令01010010010000000001001123
4
567891011121314151617181920212223LDR1’LDR2’LDR3’R1→YR2→XR2→YR1→XDR→XR3→Y+M-RD’LDDR’LDIR’LDAR’PC+1P1P2直接地址操作控制順序控制PC→AR→ABUSDBUS→DR→IR,PC+1P1R1+R2→R2R2+R3→R2R2-R3→R2P2RD0000000010101001000000010000Cy≠0Cy=0微程序流程圖~第三條微指令01000100110000000010000123
4
567891011121314151617181920212223LDR1’LDR2’LDR3’R1→YR2→XR2→YR1→XDR→XR3→Y+M-RD’LDDR’LDIR’LDAR’PC+1P1P2直接地址操作控制順序控制PC→AR→ABUSDBUS→DR→IR,PC+1P1R1+R2→R2R2+R3→R2R2-R3→R2P2RD0000000010101001000000010000Cy≠0Cy=0微程序流程圖~第四條微指令01000100100100000000000123
4
567891011121314151617181920212223LDR1’LDR2’LDR3’R1→YR2→XR2→YR1→XDR→XR3→Y+M-RD’LDDR’LDIR’LDAR’PC+1P1P2直接地址操作控制順序控制PC→AR→ABUSDBUS→DR→IR,PC+1P1R1+R2→R2R2+R3→R2R2-R3→R2P2RD0000000010101001000000010000Cy≠0Cy=0微程序流程圖~以上是由四條微指令序列組成的簡單微程序,從這個簡單的控制模型中,我們就可以看到為程序控制的主要思想及大概過程。2.微程序控制器AM2910位片式大規(guī)模集成電路芯片AM2910,就是微程序控制器的核心部件,主要功能是控制產(chǎn)生下一條微指令地址。命令譯碼器的輸出有三個使能控制信號(PL、MAP、VECT),用來確定直接輸入信號D的來源:①當PL為有效的低電平時,D來源于微指令的下地址字段,D用來實現(xiàn)微程序的轉(zhuǎn)移;②當MAP有效時,D來源于控制存儲器,D用于實現(xiàn)從機器指令到相應微程序的轉(zhuǎn)移;③當VECT有效時,D來源于中斷向量,用于向量中斷處理圖中其他各輸入輸出信號的含義如下:D11~D0:外部直接輸入的數(shù)據(jù),可作為寄存器/計數(shù)器的初值,也可直接經(jīng)地址多路開關(guān)從Y11~Y0輸出,作為下一條微指令的地址。Y11~Y0:下一條微指令地址,直接作為控制存儲器的地址。I3~I0:AM2910命令碼,來自微指令字有關(guān)字段,用于選擇AM2910的16條命令。16條命令則用來選擇下一條將要執(zhí)行的微指令地址。CC:條件輸入,若為低電平則表示測試成功,否則表示測試失效。CCEN:CC允許信號,若為低電平,則表示CC有效。RLD:寄存器/計數(shù)器的裝入信號,當為低電平時,不管AM2910所執(zhí)行的命令和測試條件如何,都會強行把直接輸入D11~D0裝入寄存器/計數(shù)器中。OE:地址多路開關(guān)輸出允許信號,當其為高電平時,Y輸出為高阻態(tài)。CP:時鐘脈沖信號,由低變高的上升沿觸發(fā)所有內(nèi)部寄存器發(fā)生變化。3.微程序控制計算機的工作過程-1機器加電后,首先由Reset信號將開機后執(zhí)行的第一條指令的地址送入PC內(nèi),同時將一條“取指”微指令送入微指令寄存器內(nèi),并將其他一些有關(guān)的狀態(tài)位或寄存器置于初始狀態(tài)。當電壓達到穩(wěn)定值后,自動啟動機器,產(chǎn)生節(jié)拍電位和工作脈沖。為保證計算機正常工作,電路必須保證開機工作后第一個機器周期信號的完整性,在該CPU周期末,產(chǎn)生開機后第一個工作脈沖。然后計算機開始執(zhí)行程序,不斷地取出指令、執(zhí)行指令。程序可以存放在固定存儲器中,也可以利用固化在ROM中的一小段引導程序,將要執(zhí)行的程序和數(shù)據(jù)從外部設(shè)備調(diào)入主存。3.微程序控制計算機的工作過程-2實現(xiàn)各條指令的微程序是存放在微程序控制器中的。當前正在執(zhí)行的微指令從微程序控制器中取出后放在微指令寄存器中,由微指令的控制字段中的各位直接控制信息和數(shù)據(jù)的傳送,并進行相應的處理。當遇到停機指令或外來停機命令時,應該待當前這條指令執(zhí)行完后再停機或至少在本機器周期結(jié)束時再停機。要保證停機后重新啟動時計算機能繼續(xù)工作而且不出現(xiàn)任何錯誤。一條機器指令由一段微程序來解釋實現(xiàn)。微程序控制的計算機工作過程:開機上電產(chǎn)生Reset信號置PC為第一條指令的地址置μPC為取指令微程序段的入口地址取指令分析指令執(zhí)行指令執(zhí)行取指令微程序段產(chǎn)生該指令的微程序入口地址執(zhí)行該指令的微程序段3.微程序控制計算機的工作過程-3
3、
微程序控制計算機的工作過程通過計算機啟動、執(zhí)行程序直到停機的過程說明微程序是如何控制計算機工作的加電后,產(chǎn)生REST信號第一條指令地址送PC,同時將一條“取指”微指令送入微指令寄存器內(nèi),并將有關(guān)信息置于初始狀態(tài)。電壓穩(wěn)定后,產(chǎn)生節(jié)拍電位和節(jié)拍脈沖第一機器周期信號要求完整。并在該周期末產(chǎn)生第一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年版離婚雙方撫養(yǎng)子女權(quán)益保障合同版B版
- 2024年種子包裝與運輸服務合同模板3篇
- 2024年石油產(chǎn)品國際貿(mào)易結(jié)算與支付合同范本3篇
- 2024-2025學年桂林市永??h數(shù)學三上期末學業(yè)水平測試試題含解析
- 2025中國鐵塔集團上海分公司招聘8人高頻重點提升(共500題)附帶答案詳解
- 2025中國葛洲壩集團股份限公司紀檢崗位招聘2人高頻重點提升(共500題)附帶答案詳解
- 2025中國移動廣西公司招聘高頻重點提升(共500題)附帶答案詳解
- 2025中國電信集團限公司政企信息服務事業(yè)群招聘高頻重點提升(共500題)附帶答案詳解
- 2025中國電信山東聊城分公司校園招聘高頻重點提升(共500題)附帶答案詳解
- 2025中國農(nóng)業(yè)科學院植物保護研究所農(nóng)藥應用風險控制團隊科研助理公開招聘3人高頻重點提升(共500題)附帶答案詳解
- 全廣東江門市蓬江區(qū)2022年九年級數(shù)學上學期期末試題含答案
- 國家文化安全戰(zhàn)略研究論文
- 中國傳統(tǒng)文化英語(課堂PPT)
- 二十五項反措檢查表優(yōu)質(zhì)資料
- GS020汽車發(fā)動機底蓋沖壓模具的設(shè)計與制造
- 《組織行為學》個案例及參考答案
- 山東省建筑消耗量定額
- 華西麻醉科麻醉記錄單填寫規(guī)范
- 教學案例 英語教學案例 市賽一等獎
- 四川省2023職教高考英語試題
- 2020年貴州專升本高等數(shù)學真題及答案
評論
0/150
提交評論