单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,指令周期,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.8M,S=1.25,uS,1,8M,S=0.125,uS,10,2.5,5.2,指令执行过程详解,指令存储器,八进制地址,指令助记符,100,101,102,103,104,105,106,MOV R0,R1,LAD R1,6,ADD R1,R2,STO R2,(R3),JMP 101,AND R1,R3,数据存储器,八进制地址,八进制数据,5,6,7,10,30,70,100,66,77,40(120),5.2.2 MOV,指令执行过程详解,5.2.2 MOV,指令执行过程详解,取指令:,取出指令:从存储器取出要执行的指令送到 指令寄存器暂存;,PC+1,;,指令译码:确定要进行的操作;,执行指令:,根据指令译码器向各个部件发出相应控制信号,完成指令规定的操作,与冯,诺依曼存储程序思想的印证,5.2.2 MOV,指令执行过程详解,-,取指令,取指令过程详解,5.6 MOV,指令执行过程详解,-,取指令,PC,的内容被放到指令地址总线,ABUS(I),上,对指存进行译码,并启动读命令;,从,101,号地址读出的,MOV,指令通过指令总线,IBUS,装入指令寄存器,IR,;,程序计数器内容加,1,,变成,102,,为取下一条指令做好准备;,指令寄存器中的操作码(,OP,)被译码;,CPU,识别出是,MOV,指令,至此,取指周期即告结束。,程序计数器,PC,中装入第一条指令地址,101,(八进制);,101,102,MOV R0,R1,5.2.2 MOV,指令执行过程详解,-,执行指令,执行指令过程详解,5.6 MOV,指令执行过程详解,-,取指令,OC,送出控制信号到,ALU,,指定,ALU,做传送操作;,OC,送出控制信号,打开,ALU,输出三态门,将,ALU,输出送到数据总线,DBUS,上。注意,任何时候,DBUS,上只能有一个数据。,OC,送出控制信号,将,DBUS,上的数据打入到数据缓冲寄存器,DR,(,10,);,OC,送出控制信号,将,DR,中的数据,10,打入到目标寄存器,R0,,,R0,的内容由,00,变为,10,。至此,,MOV,指令执行结束。,操作控制器(,OC,)送出控制信号到通用寄存器,选择,R1,(,10,)作源寄存器,选择,R0,作目标寄存器;,源,目标,10,5.2.3 LAD,指令执行过程详解,指令存储器,八进制地址,指令助记符,100,101,102,103,104,105,106,MOV RO,R1,LAD R1,6,ADD R1,R2,STO R2,(R3),JMP 101,AND R1,R3,数据存储器,八进制地址,八进制数据,5,6,7,10,30,70,100,66,77,40(120),5.2.3 LAD,指令执行过程详解,取指令过程与,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.3 LAD,指令执行过程详解,分析:为什么,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,指令的指令周期,STO R2,(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,:双总线结构机器的数据通路图,分析,ADD R2,,,R0,(,R0=R0+R2,),分析,SUB R1,,,R3,(,R3=R3-R1,),微操作控制信号,微操作控制信号,注意微操作控制信号,脚标,i,表示写入,,o,表示读出,桥耗费时间,使得寄存器传递数据占据了一个,CPU,周期,ALU,0,ALU,0,ALU,0,R,3i,ALU,0,注意红色勘误,思考:为了缩短,ADD R2,R0,指令的取指周期,修改该双总线数据通路图,画出指令周期流程图。,