1、5.2 指令周期 5.2.1 指令周期的基本概念 5.2.2 非访内指令的指令周期 5.2.3 取数指令的指令周期 5.2.4 存数指令的指令周期5.2.5 转移指令的指令周期5.2.6 用方框图语言表示指令周期上一页上一页返回返回下一页下一页5.2.1 指令周期的基本概念 前言:计算机所以能自动地工作,是因为CPU能从存放程序的内存里取出一条指令并执行这条指令;紧接着又是取指令,执行指令,如此周而复始,构成了一个封闭的循环。除非遇到停机指令,否则这个循环将一直继续下去。 具体参看下图: 下一页下一页返回返回上一页上一页5.2.1 指令周期的基本概念图5.21 取指令、执行指令周期序列上一页上
2、一页返回返回下一页下一页5.2.1 指令周期的基本概念指令周期 CPU从内存取出一条指令并执行这条指令的时间总和。CPU周期 又称机器周期,CPU访问一次内存所花的时间较长,因此用从内存读取一条指令字的最短时间来定义。 时钟周期 通常称为节拍脉冲或T周期。一个CPU周期包含若干个时钟周期。 下一页下一页返回返回上一页上一页5.2.1 指令周期的基本概念下图示出了采用定长CPU周期的指令周期示意图。图5.22 指令周期上一页上一页返回返回下一页下一页5.2.2 非访内指令的指令周期 CLA是一条非访内指令,它需要两个CPU 周期,其中取指令阶段需要一个CPU周期,执行指令阶段需要一个CPU周期。
3、 具体参看演示:下一页下一页返回返回上一页上一页5.2.2 非访内指令的指令周期1、取指令阶段 (1)程序计数器PC的内容20(八进制)被装 入地址寄存器AR;(2)程序计数器内容加1,变成21,为取 下一条指令做好准备;(3)地址寄存器的内容被放到地址总线上;上一页上一页返回返回下一页下一页5.2.2 非访内指令的指令周期(4)所选存储器单元20的内容经过数据总 线,传送到数据缓冲寄存器DR;(5)缓冲寄存器的内容传送到指令寄存器 IR; (6)指令寄存器中的操作码被译码或测试; (7)CPU识别出是指令CLA,至此,取指令 阶段即告结束。 下一页下一页返回返回上一页上一页5.2.2 非访内
4、指令的指令周期2、执行指令阶段(1)操作控制器送一控制信号给算术逻辑 运算单元ALU; (2)ALU响应该控制信号,将累加寄存AC 的内容全部清零,从而执行了CLA指令。上一页上一页返回返回下一页下一页5.2.3取数指令的指令周期 ADD指令的指令周期由三个CPU周期组成,请参看CAI演示。具体参看演示: 下一页下一页返回返回上一页上一页5.2.3取数指令的指令周期1.送操作数地址第二个CPU周期主要完成送操作数地址。在此阶段,CPU的动作只有一个,那就是把指令寄存器中的地址码部分(30)装入地址寄存器,其中30为内存中存放操作数的地址。 上一页上一页返回返回下一页下一页5.2.3取数指令的指
5、令周期2.两操作数相加 第三个CPU周期主要完成取操作数并执行加法操作中。在此阶段,CPU完成如下动作:(1)把地址寄存器中的操作数的地址(30)发送到地址总线上。 (2)由存储器单元30中读出操作数(6),并经过数据总线传送到缓冲寄存器。 下一页下一页返回返回上一页上一页5.2.3取数指令的指令周期(3)执行加操作:由数据缓冲寄存器来的操作数(6)可送往ALU 的一个输入端,已等候在累加器内的另 一个操作数(因为CLA指令执行结束后累加器内容为零)送往ALU的另一输入端,于是ALU将两数相加,产生运算结果为0+66。这个结果放回累加器,替换了累加器中原先的数0 。 上一页上一页返回返回下一页
6、下一页5.2.4存数指令的指令周期 STA指令的指令周期由三个CPU周期组成,请参看CAI演示。具体参看演示: 下一页下一页返回返回上一页上一页5.2.4存数指令的指令周期1.送操作数地址在执行阶段的第一个CPU周期中,CPU完成的动作是把指令寄存器中地址码部分的形式地址40装到地址寄存器。其中数字40是操作数地址。上一页上一页返回返回下一页下一页5.2.4存数指令的指令周期2.存储和数 执行阶段的第二个CPU周期中,累加寄存器的内容传送到缓冲寄存器,然后再存入到所选定的存储单元(40)中。CPU完成如下动作:(1)累加器的内容(6)被传送到数据缓冲寄存器DR; 下一页下一页返回返回上一页上一
7、页5.2.4存数指令的指令周期(2)把地址寄存器的内容(40)发送到地址总线上,40即为将要存入的数据6的内存单元号; (3)把缓冲寄存器的内容(6)发送到数据总线上; (4)数据总线上的数写入到所选中的存储器单元中,即将数6写入到存储器40号单元中。 上一页上一页返回返回下一页下一页5.2.5转移指令的指令周期JMP指令的指令周期由两个CPU周期组成具体参看演示:下一页下一页返回返回上一页上一页5.2.5转移指令的指令周期1.第一个CPU周期(取指令阶段) CPU把23号单元的“JMP 21”指令取出放至指令寄存器, 同时程序计数器内容加1,变为24,从而取下一条指令做好准备。上一页上一页返
8、回返回下一页下一页5.2.5转移指令的指令周期2.第二个CPU周期(执行阶段)CPU把指令寄存器中地址码部分21送到程序计数器,从而用新内容21代替PC原先的内容24。这样,下一条指令将不从24单元读出,而是从内存21单元开始读出并执行,从而改变了程序原先的执行顺序。 下一页下一页返回返回上一页上一页5.2.5转移指令的指令周期注意 :执行“JMP 21”指令时,我们此处所给的四条指令组成的程序进入了死循环,除非人为停机,否则这个程序将无休止地运行下去,因而内存单元40中的和数将一直不断地发生变化。当然,我们此处所举的转移地址21是随意的,仅仅用来说明转移指令能够改变程序的执行顺序而已。上一页
9、上一页返回返回下一页下一页5.2.6用方框图语言表示指令 周期 在进行计算机设计时,可以采用方框图语言来表示一条指令的指令周期。方框 代表一个CPU周期,方框中的内容表示数据通路的操作或某种控制操作。 菱形 通常用来表示某种判别或测试,不过时间上它依附于紧接它的前面一个方框的CPU周期,而不单独占用一个CPU周期。下一页下一页返回返回上一页上一页5.2.6用方框图语言表示指令 周期我们把前面的四条典型指令加以归纳,用方框图语言表示的指令周期具体请 参见CAI演示: 上一页上一页返回返回下一页下一页5.2.6用方框图语言表示指令 周期【例1】教材图5.15所示为双总线结构机器的数据通路,IR为指
10、令寄存器,PC为程序计数器(具有自增功能),M为主存(受R/W信号控制),AR为地址寄存器,DR为数据缓冲寄存器, ALU由加、减控制信号决定完成何种操作,控制信号G控制的是一个门电路。另外,线上标注有小圈表示有控制信号,例中yi表示y寄存器的输入控制信号,R1o为寄存器R1的输出控制信号,未标字符的线为直通线,不受控制。 下一页下一页返回返回上一页上一页5.2.6用方框图语言表示指令 周期(1)“ADD R2,R0”指令完成(R0)+(R2)R0的功能操作,画出其指令周期流程图,假设该指令的地址已放入PC中。并列出相应的微操作控制信号序列。 (2)“SUB R1,R3”指令完成 (R3)-(
11、R1)R3的功能操作,画出其指 令期流程图,并列出相应的微操作控 制信号序列。 上一页上一页返回返回下一页下一页5.2.6用方框图语言表示指令 周期【解】(1)“ADD R2,R0”指令是一条加法指令,参与运算的两个数放在寄存器R2和R0中,指令周期流程图包括取指令阶段和执行指令阶段两部分(为简单起见 ,省去了“” 号左边各寄存器代码上应加的括号)。根据给定的数据通路图,“ADD R2,R0”指令的详细指令周期流程图如图(a)所示,图的右边部分标注了每一个机器周期中用到的微操作控制信号序列。 下一页下一页返回返回上一页上一页5.2.6用方框图语言表示指令 周期(2)“SUB R2,R3”指令是一条减法指令,其指令周期流程图如图(b)所示。与ADD指令不同的是:在执行指令阶段,微操作控制信号序列有所不同。上一页上一页返回返回下一页下一页5.2.6用方框图语言表示指令 周期 图5.23 加法和减法指令周期流程图返回返回上一页上一页