指令周期5.2指令周期CPU的功能:取指令和执行指令◊指令周期:取出一条指令并执行这条指令的时间。◊各种指令的指令周期相同吗?为什么?5.2指令周期CPU周期(机器周期):定义为:在内存(Cache)中读取指令字的最短时间(因为访存耗时较长)取指阶段需要一个CPU周期5.2指令周期一个指令周期中:一条指令耗时一个指令周期一个指令周期包括一个取指令周期和一个或一个以上的CPU执行周期在每个CPU周期中数据通路是确定的指令决定了数据通路的建立及操作具体内容与实现方式。勘误:P142:最后一段第一句改为:指令周期常常用若干个CPU周期数来表示,CPU周期又称为机器周期,(删除“又称时钟周期,”)CPU访问一次内存……5.2指令周期时钟周期:节拍脉冲、T周期处理操作的最基本单位,与CPU主频成倒数可代表一次微操作,如ALU的一次运算、寄存器间的一次数据传送Eg.某CPU的主频为8MHz,若已知每个机器周期平均含有4个时钟周期,且该机的平均指令速度为0.8MIPS,则该机的平均指令周期为___________,每个指令周期平均含有___________个机器周期。解答指令周期:1◊时钟周期:◊指令周期含有时钟周期个数:◊指令周期含有机器周期个数:0.8MS=1.25uS18MS=0.125uS102.55.2指令执行过程详解指令存储器八进制地址指令助记符100101102103104105106MOVR0,R1LADR1,6ADDR1,R2STOR2,(R3)JMP101ANDR1,R3数据存储器八进制地址八进制数据56710…30701006677…40(120)5.2.2MOV指令执行过程详解5.2.2MOV指令执行过程详解取指令:取出指令:从存储器取出要执行的指令送到指令寄存器暂存;PC+1;指令译码:确定要进行的操作;执行指令:根据指令译码器向各个部件发出相应控制信号,完成指令规定的操作与冯·诺依曼存储程序思想的印证5.2.2MOV指令执行过程详解-取指令取指令过程详解5.6MOV指令执行过程详解-取指令②PC的内容被放到指令地址总线ABUS(I)上,对指存进行译码,并启动读命令;③从101号地址读出的MOV指令通过指令总线IBUS装入指令寄存器IR;④程序计数器内容加1,变成102,为取下一条指令做好准备;⑤指令寄存器中的操作码(OP)被译码;⑥CPU识别出是MOV指令,至此,取指周期即告结束。①程序计数器PC中装入第一条指令地址101(八进制);101102MOVR0,R15.2.2MOV指令执行过程详解-执行指令执行指令过程详解5.6MOV指令执行过程详解-取指令②OC送出控制信号到ALU,指定ALU做传送操作;③OC送出控制信号,打开ALU输出三态门,将ALU输出送到数据总线DBUS上。注意,任何时候DBUS上只能有一个数据。④OC送出控制信号,将DBUS上的数据打入到数据缓冲寄存器DR(10);⑤OC送出控制信号,将DR中的数据10打入到目标寄存器R0,R0的内容由00变为10。至此,MOV指令执行结束。①操作控制器(OC)送出控制信号到通用寄存器,选择R1(10)作源寄存器,选择R0作目标寄存器;源目标105.2.3LAD指令执行过程详解指令存储器八进制地址指令助记符100101102103104105106MOVRO,R1LADR1,6ADDR1,R2STOR2,(R3)JMP101ANDR1,R3数据存储器八进制地址八进制数据56710…30701006677…40(120)5.2.3LAD指令执行过程详解取指令过程与MOV指令相同下面讲解执行指令过程②PC的内容被放到指令地址总线ABUS(I)上,对指存进行译码,并启动读命令;③从102号地址读出的LAD指令通过指令总线IBUS装入指令寄存器IR;④程序计数器内容加1,变成103,为取下一条指令做好准备;⑤指令寄存器中的操作码(OP)被译码;⑥CPU识别出是LAD指令,至此,取指周期即告结束。①程序计数器PC中的值为102(八进制);②OC发出操作命令,将地址码6装入数据地址寄存器AR;③OC发出读命令,将数存6号单元中的数100读出到DBUS上;④OC发出命令,将DBUS上的数据100装入缓冲寄存器DR;⑤OC发出命令,将DR中的数100装入通用寄存器R1,原来R1中的数10被冲掉。至此,LAD指令执行周期结束。①操作控制器OC发出控制命令打开IR输出三态门,将指令中的直接地址码6放到数据总线DBUS上;5.2.3LAD指令执行过程详解分析:为什么LAD指令周期包含三个CPU周期?◊答:DBUS上分时进行地址传送和数据传送,一个数据通路占用一个CPU周期。5.2.4ADD指令的指令周期只讲ADD指令的执行过程5.2.5ADD指令的执行周期①操作控制器OC送出控制命令到通用寄存器,选择R1做源寄存器,R2做目标寄存器;②OC送出控制命令到ALU,指定ALU做R1(100)和R2(20)的加法操作;③OC送出控制命令,打开ALU输出三态门,运算结果120放到DBUS上;④OC送出控制命令,将DBUS上数据打入缓冲寄存器DR;ALU产生的进位信号保存状态字寄存器在PSW中。⑤OC送出控制命令,将DR(120)装入R2,R2中原来的内容20被冲掉。至此ADD指令执行周期结束。5.2.5STO指令的指令周期STOR2,(R3)--将R2内容写到(R3)5.2.5STO指令的指令周期①操作控制器OC送出操作命令到通用寄存器,选择R3=30做数据存储器的地址单元;②OC发出操作命令,打开通用寄存器输出三态门,将地址30放到DBUS上;③OC发出操作命令,将地址30打入AR,并进行数存地址译码;④OC发出操作命令到通用寄存器,选择R2=120,作为数存的写入数据;⑤OC发出操作命令,打开通用寄存器输出三态门,将数据120放到DBUS上。⑥OC发出操作命令,将数据120写入数存30号单元,它原先的数据40被冲掉。至此,STO指令执行周期结束。5.2.6JMP指令的指令周期5.2.6JMP指令的指令周期①OC发生操作控制命令,打开指令寄存器IR的输出三态门,将IR中的地址码101发送到DBUS上;②OC发出操作控制命令,将DBUS上的地址码101打入到程序计数器PC中,PC中的原先内容106被更换。于是下一条指令不是从106号单元取出,而是转移到101号单元取出。至此JMP指令执行周期结束。5.2.7用方框图语言表示的指令周期绘制指令周期流程图目的:控制器设计回想算法流程图用于算法设计具体实现方法:方框——CPU周期(机器周期)方框内容——数据通路操作或控制操作菱形符号——判别或测试(不独占cpu周期,依附于上个方框的CPU周期)~——公操作(处理外设,后续章节学习)5.2.7用方框图语言表示的指令周期上一节的程序执行图:学习讲解需要画方框图:取指过程相同执行过程各异5.2.7方框图表示指令周期取指执行一个CPU周期5.2.7方框图表示指令周期P151例1:双总线结构机器的数据通路图分析ADDR2,R0(R0=R0+R2)分析SUBR1,R3(R3=R3-R1)微操作控制信号微操作控制信号注意微操作控制信号,脚标i表示写入,o表示读出桥耗费时间,使得寄存器传递数据占据了一个CPU周期ALU0ALU0ALU0R3iALU0注意红色勘误思考:为了缩短ADDR2,R0指令的取指周期,修改该双总线数据通路图,画出指令周期流程图。