第9章控制单元的功能9.1操作命令的分析9.2控制单元的功能取指令取地址取操作数存程序断点取指周期间址周期执行周期中断周期FEDINDDINTDCLK1FE1IND1EX1INTEXD在CPU内可分别设置标志触发器来区分:9.1操作命令的分析完成一条指令分4个工作周期3①现行指令地址送到存储器地址寄存器,并送上过地址总线②向主存储器发出读命令,启动主存作读操作,③将MAR(通过地址总线)所指的主存单元中的内容(指令)经数据总线读入MDR.④把指令送到指令寄存器IR。⑤形成下一条指令的地址,记作PC→MAR记作1→R记作M(MAR)→MDR记作MDR→IR记作(PC)+1→PC一、取指周期MDRCUMARPCIR存储器CPU地址总线数据总线控制总线IR+1PC→MAR→AB→M→DB→MDR→IR,PC+1→PC①将指令的地址码部分送到存储器地址寄存器,②向主存储器发出读命令R,启动主存的读操作,③将MAR(通过地址总线)所指的主存单元中的内容(有效地址)经数据总线读入MDR,④把操作数有效地址送到存储器地址寄存器,记作Ad(IR)→MAR记作1→R记作M(MAR)→MDR记作MDR→MAR二、间址周期除间指周期外,其它一些寻址方式如果操作数在主存储器,在形成操作数有效地址(并送到存储器地址寄存器中)后,也需要访问主存取数。操作如下:①向主存储器发出读命令R,启动主存作读操作,记作1→R②将MAR(通过地址总线)所指的主存单元中的内容(数据)经数据总线读入MDR,记作M(MAR)→MDRMDRCUMARCPU地址总线数据总线控制总线PCIR存储器MDRAd(MDR)→MAR→AB→M→DB(EA)→MDR形成地址Ad(MDR)不同指令在执行周期的微操作是不同的,下面分“非访存指令”,“访存指令”,“转移类指令”讨论:1.非访存指令(1)清除累加器指令CLA该指令完成累加器清零的操作,记作0→ACC(2)累加器取反指令COM该指令完成累加器内容取反的操作,记作ACC→ACC(3)累加器加1指令INC该指令完成累加器内容加1,结果送累加器的操作,记作(ACC)+1→ACC三、执行周期该指令完成累加器内容算术右移1位的操作,记作R(ACC)→ACC,ACC0→ACC0(5)循环左移1位指令CSL该指令完成累加器内容循环左移1位的操作,记作L(ACC)→ACC,ACC0→ACCn(6)停机指令STP该指令将运行标志触发器G置0,记作0→G(4)算术右移1位指令SHR(1)加法指令ADDX该指令完成累加器内容与主存X单元的内容相加,结果送累加器的操作,操作表达式(2)减法指令SUBX2.访存指令该指令完成累加器内容与主存X单元的内容相减,结果送累加器的操作,操作表达式(执行周期)(ACC)+(MDR)→ACC(ACC)-(MDR)→ACC(执行周期)M(MAR)→MDR(存储器读周期)X→MAR(形成操作数有效地址后)(4)取数指令LDAX该指令将一主存单元的内容取到累加器中,操作表达式(5)存数指令STAX该指令将累加器内容写入主存X单元中,操作表达式(MDR)→ACC(执行周期)(ACC)→MDR(3)与指令ANDX该指令完成累加器内容与一主存单元的内容相与,结果送累加器的操作,操作表达式(ACC)∧(MDR)→ACC(执行周期)3.转移类指令(1)无条件转移指令JMPX指令的地址码部分送PC,操作表达式(2)条件转移指令根据前面一条指令执行的结果(对标志寄存器的影响)决定是否转移。Ad(IR)→PC•进位转移指令JCX如果进位标志C=1,则指令的地址码部分送PC,否则顺序执行。操作表达式PCPCCIRAdC)())((•负转移指令JNX如果标志N=1,则指令的地址码部分送PC,否则顺序执行。操作表达式PCPCNIRAdN)())((•零转移指令JZX如果标志Z=1,则指令的地址码部分送PC,否则顺序执行。PCPCZIRAdZ)())((操作表达式4.三类指令的指令周期取指周期执行周期取指周期执行周期取指周期执行周期取指周期间址周期执行周期非访存指令周期直接访存指令周期间接访存指令周期转移指令周期取指周期间址周期执行周期间接转移指令周期四、中断周期程序断点存入“0”地址程序断点进栈0MAR1WPCMDRMDRM(MAR)向量地址PC0EINT(置“0”)0EINT(置“0”)向量地址PCMDRM(MAR)PCMDR1W中断识别程序入口地址MPC(SP)1MAR(关中断)(关中断)MDRCUMARCPU地址总线数据总线控制总线PC存储器SP→MAR→AB→M,PC→MDR→DB→M,入口地址→PC9.2控制单元的功能一、控制单元的外特性控制单元CU…时钟标志CPU内部的控制信号到系统总线的控制信号来自系统总线的控制信号系统总线指令寄存器(中断请求,DMA请求等)1.输入信号(1)时钟(2)指令寄存器(4)外来信号(3)标志CU受时钟控制控制信号与操作码有关OP(IR)CUCU受标志控制INTR中断请求HRQ总线请求每一个时钟脉冲使控制单元发一个操作命令或一组需同时执行的操作命令如2.输出信号(1)CPU内的各种控制信号(2)送至控制总线的信号RiRj(PC)+1PCINTAHLDA访存控制信号访IO/存储器的控制信号读命令写命令中断响应信号总线响应信号MREQIO/MRDWRALU+、-、与、或……PCIRACCU时钟ALUMDRMAR………控制信号标志控制信号取指周期以ADD@X为例1.不采用CPU内部总线的方式C0C1C2C3C4MDRPCMARIRCU二、控制信号举例PCIRACCU时钟ALUMDRMAR………控制信号标志控制信号C1C2C3C5ADD@X间址周期MDRMARMDRIRPCIRACCU时钟ALUMDRMAR………控制信号标志控制信号C1C2C5ADD@X执行周期C7C6C8MARACALUMDRMDR…控制信号MDRMDRCU(1)ADD@X取指周期•PC•CU发读命令1R•MDR•OP(IR)•(PC)+1PCIRPCMARACYALUZ…控制信号IRiIRiPCOPCOMARiMARiMDROMDRO…•数据线数据线控制信号CPU内部总线时钟地址线地址线MARMDRIRCUIRPCPCMDRMARCUIR2.采用CPU内部总线方式•MDR•1R•MDR有效地址Ad(IR)MDROMDRO•数据线数据线时钟CUIRPCMARMDRACYALUZ…控制信号…控制信号CPU内部总线MDRIRMARiMARi地址线地址线MARIRiIRiMARMDRIRMDRMDRMDROMDROMDROMDROMDRO形式地址MAR(2)ADD@X间址周期时钟CUIRPCMARMDRACYALUZ…控制信号CPU内部总线MDROMDRO•1R•MDR•Z•AC•(AC)+(Y)•MDR控制信号…MARMDR地址线地址线•数据线数据线MARMDRYMDRMDRMDROMDROMDROMDROMDROMDROMDROYiYiYALUACACOACOALUiALUiALUALUACZZZZOZOACiACiACACACACMARiMARiALUAC(3)ADD@X执行周期例9.1设CPU内部采用非总线结构,如图所示。(1)写出取指周期的全部微操作。(2)写出取数指令“LDAM”,存数指令“STAM”,加法指令“ADDM”(M均为主存地址)在执行阶段所需的全部微操作。(3)当上述指令均为间接寻址时,写出执行这些指令所需的全部微操作。(4)写出无条件转移指令“JMPY”和结果为零则转指令“BAZY”在执行阶段所需的全部微操作。MDRPCMARIRACCU时钟ALU………C1C2C5C9C0C10C3C7C4C6C12C11C8控制信号标志控制信号图9-2一个简单的数据通路C4对于图所示的数据通路结构,CU需发出下面的微操作控制信号来完成取指令工作。(1)打开PC各位与MAR各位之间的门C0。(2)一个开门信号以允许MAR的内容送到地址总线上—C1。(3)一个存储器的读控制信号送到控制总线上--CR。(4)一个允许数据总线上的内容被存入MDR的开门信号C2。(5)对PC内容加1,并返存PC控制信号-C10。(6)打开MDR和IR之间门的控制信号C3。CU是CPU中的最主要的组成部分,后面将讨论CU的组成和设计。取指周期的全部微操作如下:PC→MAR;现行指令地址→MAR1→R;命令存储器读M(MAR)→MDR;现行指令从存储器中读至MDRMDR→IR;现行指令→IROP(IR)→CU;指令的操作码→CU译码(PC)+1→PC;形成下一条指令的地址取数指令“LDAM”执行阶段所需的全部微操作如下:Ad(IR)→MAR;指令的地址码字段→MAR1→R;命令存储器读M(MAR)→MDR;操作数从存储器中读至MDRMDR→ACC;操作数→ACC存数指令“STAM”执行阶段所需的全部微操作如下:Ad(IR)→MAR;指令的地址码字段→MAR1→W;命令存储器写ACC→MDR;欲写入的数据→MDRMDR→M(MAR);数据写至存储器中加法指令“ADDM”执行阶段所需的全部微操作如下:Ad(IR)→MAR;指令的地址码字段→MAR1→R;命令存储器读M(MAR)→MDR;操作数从存储器中读至MDR(ACC)+(MDR)→ACC;两数相加结果送ACC当为间接寻址时,需增加间址周期的微操作。Ad(IR)→MAR;指令的地址码字段→MAR1→R;命令存储器读M(MAR)→MDR;有效地址从存储器中读至MDR①无条件转移指令“JMPY”执行阶段的微操作如下:Ad(IR)→PC;转移(目标)地址Y→PC②结果为零则转移指令”BAZY”执行阶段的微操作指令如下:Z·Ad(IR)→PC当Z=1时,转移(目标)地址Y→PC(Z为标记触发器,结果为0时Z=1)例9.2已知单总线计算机结构如图所示,其中M为主存,XR为变址寄存器,EAR为有效地址寄存器,LATCH为暂存器。图中各寄存器的输入和输出均受控制信号控制,如PCi表示PC的输入控制信号,又如MDRo表示MDR的输出控制信号。假设指令地址已存于PC中,画出“ADDX,D”(X为变址寄存器XR,D为形式地址)和“STA*D”(*表示相对寻址,D为相对位移量)两条指令的指令周期信息流程图,并列出相应的控制信号序列。PCo,MARiMARoR/W=RMDRiMDRo,IRi+1PCBusMARM(MAR)MDRPC+1PCMDRBusIR取指“ADDX,D”指令取指周期和执行周期的信息流程及相应的控制信号,如图所示,图中Ad(IR)为形式地址。XR0,Ad(IR)0,+,EARiEAR0,MARiMAR0,R/W=R,MDRiMDR0,XiACC0,X0,Ki=+,LATCHiLATCH0,ACCi(XR)+Ad(IR)EARMDRBusXEARBusMARM(MAR)MDR(ACC)+(X)LATCHLATCHBusACCADDX,D指令执行周期PCBusMARM(MAR)MDRPC+1PCMDRBusIR“STA*D”指令取指周期和执行周期的信息流程及相应的控制信号如图所示,图中Ad(IR)为相对位移量的机器代码。PCo,MARiMARoR/W=RMDRiMDRo,IRi+1取指STA指令就是把A寄存器的内容写入指定的内存单元(PC)+Ad(IR)EAREARBusMARACCBusMDRMDRM(MAR)PC0,Ad(IR)0,+,EARiEAR0,MARiACC0,MDRiMDR0,MAR0,R/W=WSTA*D指令执行周期三、多级时序系统1.机器周期(1)机器周期的概念(2)确定机器周期需考虑的因素(3)基准时间的确定所有指令执行过程中的一个基准时间每条指令的执行步骤每一步骤所需的时间•以完成最复杂指令功能的时间为准•以访问一次存储器的时间为基准若指令字长=存储字长取指周期=机器周期