指令周期 您所在的位置:网站首页 时钟周期指令周期cpu周期 指令周期

指令周期

2023-10-30 08:22| 来源: 网络整理| 查看: 265

指令周期的基本概念

指令周期:CPU从主存中每取出并执行一条指令所需的全部时间。

指令周期常常用若干个机器周期来表示,机器周期又叫CPU周期。

一个机器周期又包含若干个时钟周期(也称为节拍、T周期或CPU时钟周期,它是CPU操作的最基本单位)。

每个指令周期内机器周期数可以不等,每个机器周期内的节拍数也可以不等。

指令周期_通用寄存器

指令周期_通用寄存器_02

指令周期流程

指令周期_通用寄存器_03

MOV指令(RR型指令)的指令周期取指周期

指令周期_数据_04

(1)程序计数器PC中装入第一条指令地址101;

(2)PC的内容被放到指令总线ABUS(I)上,对指令进行译码,并启动读命令;

(3)从101号地址读出的MOV指令通过指令总线IBUS装入指令寄存器IR;

(4)程序计数器PC内容+1,变成102,为取下一条指令做好准备;

(5)指令寄存器中的操作码OP被译码;

(6)CPU识别出是MOV指令。至此,取指周期结束。

执行周期

指令周期_寄存器_05

(1)操作控制器OC送出控制信号到通用寄存器,选择R1(10)作为源寄存器,选择R0作目标寄存器。

(2)OC送出控制信号到ALU,指定ALU做传送操作;

(3)OC送出控制信号,打开ALU输出三态门,将ALU输出送到数据总线DBUS上。注意,任何时候DBUS上只能有一个数据;

(4)OC送出控制信号,将DBUS上的数据打入到数据缓冲寄存器DR(10);

(5)OC送出控制信号,将DR中的数据10打入到目标寄存器R0,R0的内容由00变为10。

三条总线:ABUS(指令地址总线)、IBUS(指令总线)、DBUS(数据总线)

执行周期中的每一个操作都由操作控制器OC送出控制信号来执行。

LAD指令的指令周期

LAD 指令是 RS 型指令,它先从指令存储器取出指令,然后从数据存储器 6 号单元取 出数据 100 装入通用寄存器 R1,原来 R1 中存放的数据 10 被更换成 100。由于一次访问指存,一次访问数存,LAD 指令的指令周期需要 3 个 CPU 周期。

指令周期_通用寄存器_06

取指周期

(1)程序计数器PC中装入第一条指令地址102;

(2)PC的内容被放到指令总线ABUS(I)上,对指令进行译码,并启动读命令;

(3)从102号地址读出的LAD指令通过指令总线IBUS装入指令寄存器IR;

(4)程序计数器PC内容+1,变成103,为取下一条指令做好准备;

(5)指令寄存器中的操作码OP被译码;

(6)CPU识别出是LAD指令。至此,取指周期结束。

执行周期

指令周期_数据_07

(1)操作控制器OC发出控制命令打开IR输出三态门,将指令中的直接地址码6放到数据总线DBUS上;

(2)OC发出操作命令,将地址码6装入数存地址寄存器AR;

(3)OC发出读命令,将数存6号单元中的数100读出到DBUS上;

(4)OC发出命令,将DBUS上的数据100装入缓冲寄存器DR;

(5)OC发出命令,将DR中的数100装入通用寄存器R1,原来R1中的数10被冲掉。至此,LAD指令执行周期结束。

注意,数据总线DBUS上分时进行了地址传送和数据传送,所以需要2个CPU周期。

RS型指令有三个CPU周期,一次访问指存,一次访问数存,还有一次执行;

取指周期都一样,具体差别在执行周期上。

ADD指令的指令周期

ADD 指令是 RR 型指令,在运算器中用两个寄存器 R1 和 R2的数据进行加法运算。指 令周期只需两个 CPU 周期,其中一个是取指周期,另一个是执行周期。

取指周期

(1)程序计数器PC中装入第一条指令地址103;

(2)PC的内容被放到指令总线ABUS(I)上,对指令进行译码,并启动读命令;

(3)从103号地址读出的LAD指令通过指令总线IBUS装入指令寄存器IR;

(4)程序计数器PC内容+1,变成104,为取下一条指令做好准备;

(5)指令寄存器中的操作码OP被译码;

(6)CPU识别出是ADD指令。至此,取指周期结束。

执行周期

指令周期_通用寄存器_08

(1)操作控制器OC送出控制命令到通用寄存器,选择R1做源寄存器,R2做目标寄存器;

(2)OC送出控制命令到ALU,指定ALU做R1(100)和R2(20)的加法操作;

(3)OC送出控制命令,打开ALU输出三态门,运算结果120放到DBUS上;

(4)OC送出控制命令,将DBUS上数据打入缓冲寄存器DR;ALU产生的进位信号保存在状态字寄存器PSWR中;

(5)OC送出控制命令,将DR(120)装入R2,R2中原来的内容20被冲掉。至此,ADD指令执行周期结束。

STO指令的指令周期

STO 指令是 RS 型指令,它先访问指存取出 STO 指令,然后按(R3)=30 地址访问数存,

将(R2)=120 写入到 30 号单元。由于一次访问指存,一次访问数存,因此指令周期需 3 个

CPU 周期,其中执行周期为 2 个 CPU 周期。

指令周期_寄存器_09

取指周期

(1)程序计数器PC中装入第一条指令地址104;

(2)PC的内容被放到指令总线ABUS(I)上,对指令进行译码,并启动读命令;

(3)从104号地址读出的LAD指令通过指令总线IBUS装入指令寄存器IR;

(4)程序计数器PC内容+1,变成105,为取下一条指令做好准备;

(5)指令寄存器中的操作码OP被译码;

(6)CPU识别出是STO指令。至此,取指周期结束。

执行周期

指令周期_通用寄存器_10

(1)操作控制器OC送出操作命令到通用寄存器,选择(R3)=30做数据存储器的地址单元;

(2)OC发出操作命令,打开通用寄存器输出三态门(不经过ALU以节省时间),将地址30放到DBUS上;

(3)OC发出操作命令,将地址30打入AR,并进行数存地址译码;

(4)OC发出操作命令到通用寄存器,选择(R2)=120,作为数存的写入数据;

(5)OC发出操作指令,打开通用寄存器输出三态门,将数据120放到DBUS上;

(6)OC发出操作命令,将数据120写入数存30单元,它原先的数据40被冲掉。至此,STO指令执行周期结束。

注意,DBUS是单总线结构,先送地址(30),后送数据(120),必须分时传送。

总结

MOV指令 和 ADD指令 都是RR指令;类型相同,执行周期过程也相同

操作流程:

到通用寄存器中找到目标寄存器和源寄存器地址

告诉ALU它要做什么运算(加法还是传送)

将处理好的数据通过ALU三态门输出到DBUS总线上

将数据打入到DR(数据缓冲寄存器)

将数据覆盖掉目标寄存器中原有的数据

结束

LAD指令和STO指令都是RS指令,之所以相较于RR多了一个周期,是因为要访问cache。

LAD指令操作流程:

打开IR(指令寄存器)输出三态门,将直接地址打入到DBUS总线。

将数据打入到AR(数据地址寄存器)中去。

找到数存直接地址(6)对应的那个寄存器,将里面的数(100)放入到DBUS总线上。

打入到DR(数据缓冲寄存器)。

覆盖掉通用寄存器R1原有的数据。

结束。

STO指令操作流程:

打开IR输出三态门,将R3传送到DBUS上面

将R3打入到通用寄存器中,取出里面的数据

打开通用寄存器三态门,将数据打入到DBUS总线上

传入到AR,找到30对应的那个寄存器

打开IR输出三态门,将R2传送到DBUS上面

将R2打入到通用寄存器中,取出里面的数据

打开通用寄存器三态门,将数据打入到DBUS上

传入AR,将数据写入30对应寄存器中,原有的数据(40)被覆盖了

结束。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有