计算机原理及系统结构第二十三讲主讲教师:赵宏伟学时:64第6章计算机的控制器部件本章主要内容控制器的功能组成与指令执行步骤组合逻辑控制器部件微程序控制器部件控制器的功能与组成1.控制器的功能:控制执行指令控制各部件协调运行,即为各部件提供控制信号。2.控制器的组成:程序计数器指令寄存器指令步骤标记线路提供控制信号的部件分类:微程序的控制器硬布线的控制器控制器的功能计算机的功能是执行程序程序是依次排列起来的指令代码控制器的功能就在于:正确地分步完成每一条指令规定的功能,正确且自动地连续执行指令;再进一步说,就是向计算机各功能部件提供协调运行每一个步骤所需要的控制信号。P153控制器的组成①程序计数器PC:存放指令地址,有+1或接收新值功能。②指令寄存器IR:存放指令内容:操作码与操作数地址。主脉冲源与启停控制线路,按需要给出主脉冲信号。③指令执行步骤标记线路:指明每条指令的执行步骤。④控制信号记忆或产生线路:给出计算机各功能部件部件协同运行所需要的控制信号。运算器部件主存储器部件总线及输入/输出接口(输入/输出设备)控制器部件各部件包括也包括设计中的难点,在于解决对运算器、控制器的控制P154控制器的组成控制信号提供方法•生成法–将操作码和微操作序号作为输入,写出控制信号和下一微操作序号的逻辑表达式,然后,用相应的逻辑器件实现。–组合逻辑控制器,也称硬布线控制器•查表法–将每一操作码的每个微操作对应的全部控制信号和下一操作步骤事先存储在控制存储器中,需要的时候从控存中读出。–微程序控制器时序控制信号形成部件译码IRPC输出设备输入设备主存运算器部件时序启停地址寄存器械数据总线地址总线控制总线….控制条件控制器信号主振组合逻辑方案的控制器控制存储器映射IRPC输出设备输入设备主存运算器部件下地址启停地址寄存器械数据总线地址总线控制总线….控制条件微指令寄存器主振微程序方案的控制器微程序控制器基本原理…转取操作数或执行指令取指令微程序段…转执行指令取操作数微程序段…转取指令中断处理微程序段开始执行指令…转取执行指令或中断AND指令微程序段…转取执行指令或中断ADD指令微程序段…微程序控制器指令执行流程•读当前指令到IR,且PC=PC+1;•根据指令的操作码,得到该指令的微程序入口地址;•读取该指令的微指令,并送到相应的计算机部件,完成微操作,同时,得到下一微指令的地址;•重复上一步,直到本条指令执行完毕;•判中断标志,如有,则进行中断处理;•转取指令,执行下一条指令微程序控制器的运行原理•每条指令一个执行步骤用到的全体控制信号组成一微指令•每条指令可以包括一到多个微操作•用多条微指令解释每条指令的整个执行过程•全部微指令的集合叫做微程序•执行一条微指令所用的时间被称为一个微周期。•微指令的格式和内容:–下地址字段控制命令字段P180微程序控制器组成clockP181微程序控制器设计•定序器–根据指令操作码、指令当前步骤以及条件码,确定下一步骤的微程序地址•微指令–给出当前指令的当前步骤要完成指令规定的功能,各功能部件所需要的控制信号。对控制器本身而言,则是要给出下一步骤的微程序地址。定序器组成下地址•顺序执行下一条微指令•无条件转移到某条微指令•根据微指令的某一状态结果,选择顺序执行或转向某一地址•微子程序调用,要使用到微堆栈•多路转移•根据指令操作码,转移到指令的入口地址P182计算机原理及系统结构第二十四讲主讲教师:赵宏伟学时:64微指令设计•微指令字长–缩短控制存储器的字长•微程序的长度–控制存储器的容量•提高性能–提高整个计算机指令执行性能微指令设计•直接控制法–直接给出各部件需要的控制信号(0或1)•字段直接编译法–将某些互斥信号进行编码,由译码器给出这些信号,可缩短微指令字长•垂直型微指令–采用对微操作码译码的方式给出控制信号,可进一步缩短微指令字长微程序控制器特点•采用ROM存储控制信号的方式,可扩展性好•兼容性实现比较容易•容易实现复杂的指令系统•性能比较低•并行性不好•主要用在CISC中组合逻辑控制器•采用逻辑电路直接提供全部控制信号•输入–操作码–指令状态字–指令步骤编码(节拍)–外部信号(Reset等)•输出–全部控制信号•主要解决的问题–节拍转换–控制信号生成节拍发生器•控制每条指令的执行步骤•用触发器实现•有限状态自动机•用触发器状态表示当前执行步骤•状态自动机自动转入下一状态节拍发生器设计举例我们假定某机器的指令系统有两条指令A和B,其中A指令需要4个步骤完成,而B指令只需要3个步骤。为此,节拍发生器需要有2个触发器,用它形成的4个状态来标记不同的步骤。如给A指令分配的节拍状态是00→01→10→11,B指令分配的节拍状态为00→10→11。T0T1ABT0’T1’001001000110011010101011100111111000110100T0’=/T0*/T1*/A*B+/T0*T1*A*/B+T0*/T1T1’=/T0*/T1*A*/B+T0*/T1控制信号生成•直接利用逻辑电路生成控制信号–大规模集成电路–现场可编程器件•输入–节拍状态–条件码–指令操作码•输出–控制信号组合逻辑控制器特点•直接用逻辑电路实现,用节拍标记指令步骤,性能良好•可扩展性差,兼容性不好•适合实现比较精简的指令系统•较容易实现并行•常用于实现RISC指令的执行过程冯.诺依曼结构的计算机即存储程序的计算机,设置内存,存放程序和数据,在程序运行之前存入。执行程序:正确从程序首地址开始;正确分步执行每一条指令,并形成下条待执行指令的地址;正确并自动地连续执行指令,直到程序的最后一条指令。P155典型指令的执行过程举例20000001ADDr0,r1;加法指令20010790MVRRr9,r0;传送指令2002E709STRA[2007],r9;写内存指令,这是一条双字指令,2007;第二个字中的807是直接地址20048280IN80;读串行口数据到R0低8位200544FAJRC2000;若C为1转移到2000,否则顺序执行20068F00RET;子程序返回指令其他一些指令与这里的几条指令有相当多的共同特性,属于同一组的指令的执行步骤非常类似。P156计算机原理及系统结构第二十五讲主讲教师:赵宏伟学时:64每条指令的执行步骤—读取指令指令地址送入主存地址寄存器读主存,读出内容送入指定的寄存器—分析指令—按指令规定内容执行指令不同指令的操作步骤数,和具体操作内容差异很大,—检查有无中断请求若有,则响应中断并转中断处理若无,则转入下一条指令的执行过程形成下一条指令地址R_R类型指令读写内存类型指令输入输出类型指令其他类型指令可能执行一次或多次是一次读内存操作公共操作公共操作是每一条指令的特定操作P156读取指令①ARPC(注)②读主存,IR读出内容PCPC+1执行指令③ALUR0ALUR1执行+R0ALU,记忆结果特征结束,判中断指令执行步骤简单的文字描述加法指令ADDR0,R1形成下条指令地址寄存器内容传送指令MVRRR9,R0读取指令①ARPC(注)②读主存,IR读出内容PCPC+1执行指令③ALU0ALUR0执行+R9ALU结束,判中断形成下条指令地址写寄存器内容到主存STRA[2007],R9读取指令①ARPC②读主存,IR读出内容PCPC+1执行指令③ARPC,PCPC+1④读主存,AR读出内容⑤ALU0,ALUR9,+写主存,总线ALU,结束,判中断(地址2007存在指令的第二个字中)形成下条指令地址输入指令IN80形成下条指令地址读取指令①ARPC(注)②读主存,IR读出内容PCPC+1执行指令③ARI/OPort④读外设,ALU读出数据ALU0执行+R0ALU结束,判中断形成下条指令地址相对转移指令JRC2000读取指令①ARPC(注)②读主存,IR读出内容PCPC+1执行指令③若c=1则:ALUPCALUoffset(IR低字节)二者相加,结果送PC否则,PC不接收二者之和结束,判中断形成下条指令地址子程序返回指令RET读取指令①ARPC②读主存,IR读出内容PCPC+1执行指令③ARSPSPSP+1④读主存,PC读出内容结束,判中断形成下条指令地址计算机原理及系统结构第二十六讲主讲教师:赵宏伟学时:64PC0ARPCPCPC+1IR(AR)寄存器之间运算与传送读、写内存AR地址AR地址读、写内存或I/O接口读、写内存PC地址16位机的基本指令、扩展指令执行流程图A组B组C组D组/ResetB、C、D组TEC-2000教学机系统的组成计算机终端PC机微程序控制器运算器(8/16位)主存储器(8/16位)按键开关指示灯串行接口接口实验中断实验内存扩展实验电源+5V硬布线控制器条件码微指令下地址部件微指令地址映射部件晶振启停控制节拍发生器时序控制信号形成部件移位信号进位信号状态位触发器8位运算器部件8位运算器部件8位内存储器部件8位内存储器部件高位地址寄存器程序计数器指令寄存器8位8位微指令寄存器控制存储器2片译码器(在运算器芯片内)3片译码器电平转换线路时钟分频线路扩展实验串行接口芯片串行接口Intel8251芯片中断实验线路+5V直流电源其他通用I/O接口扩展实验低位地址寄存器CKIRPC转移地址+1送地址寄存器Cout移位信号Cin移位信号/OECZVSSSTCyZrOvF移位信号SCISSHCin移位信号几个寄存器的接收允许送内部总线的选择控制内存与I/O片选信号及读写命令送入/出设备移位信号Cin8位内部总线IB来自八位开关来自八位开关片选读写命令/OE8位数据总线高位地址总线8位数据总线3548低8位地址总线送译码电路并行数据入/出C_/DI/O读写命令片选片选读写命令/OE/OE(接地)8位内部总线IB串行入/出时钟信号CLKDC23~20DC13~10/MIOREQ/WEA3~A0B3~B0I8~I0SST2~SST0SCI1~SCI0SSH1~SSH0/OE内存3位地址I/O端口高位地址343个无锁按键(中断源)/INT/OE{下地址字段控制命令字段...............INTSINTPReset3SCC16寄存器当前微指令地址/CC2串行入/出2.ARLARH/OECLKTEC2000总体框架控制器应提供的控制信号Y15~Y0用16个指示灯显示结果D15~D0RAM15Q15RAM0Q0CinCyF=0OverF15运算器部件(4片Am2901)A3~0B3~0I8~6用16个数据开关提供输入数据CZVSSSHSSTSCII5~3I2~0SCISSHA口B口I8~6I5~3I2~0SST通过24位微型开关提供控制信号各用四个指示灯显示状态Gal20V8Gal20V8(1)对运算器的控制24位控制信号,同24位微型开关内容,A3~A0,B3~B0,I8~I6,I5~I3,I2~I0SST2~0,SSH1~0,SCI1~0寄存器分配:R4:SPR5:PC约定用法:R0:I/O指令约定使用,也是通用累加器(2)读写主存储器或I/O接口从学习指令执行步骤考虑,理解对主存储器读写的控制,分成两步:1.传送主存地址,以选择被读写的存储单元;2.给出读写命令,读操作时,把读出数据保存起来,写操作时,还要给出写入的数据。从学习指令执行步骤考虑,理解对接口电路读写的控制,分成两步:1.传送IO端口地址,以选择被读写的芯片;2.给出读写命令,读操作时,把读出数据保存起来,写操作时,还要给出写入的数据。对内存和I/O接口的读写/MIO(0:有内存或串口读写,1:无)REQ(0:读写内存,1:读写串行口)/WE(0:写操作,1:读操作)000写内存001读内存010写串口011读串口1XX无内存和串口的读写操作(3)对总线的控制总线是用于连接计算机各个功能部件的线路和连接线,通常由具有三态输出功能的器件构成,以便用分时地方式,在不同时刻把不同的数据发送到总线上,任何时刻仅能有一个数据发送到总线上;总