计组面试题—指令周期与机器周期的区别是什么?

198 阅读3分钟

Author : Cyan_RA9
Source : 【卡码笔记】网站
Question : 指令周期与机器周期的区别是什么?

【简要回答】

指令周期与机器周期的概念:

  • 指令周期:CPU执行一条指令所需的完整时间,包括取指、译码、执行等阶段。
  • 机器周期:CPU完成一个基本操作(如取指、访存)所需的时间,通常由多个时钟周期组成。

指令周期与机器周期的对比:

  • 如下表所示:

    对比项指令周期(Instruction Cycle)机器周期(Machine Cycle)
    定义CPU执行一条指令所需的完整时间。CPU完成一个基本操作(如取指、访存)所需的时间。
    包含的阶段取指、译码、执行、写回等。一个工作周期(如取指周期、访存周期)通常由一个或多个机器周期组成。
    时间长度通常较长,涵盖一条指令的完整执行过程。通常较短,是工作周期的组成部分。
    组成关系包含多个工作周期(如取指周期、访存周期、执行周期等)。是工作周期的组成部分。

【详细回答】

  • 指令周期
    将一条指令从 取出 到 执行完成 所需的时间称为指令周期,指令周期又可进一步划分为若干个机器周期(也称为CPU周期)。
  • 机器周期
    是指令周期中一步相对完整的操作所用的时间,通常定义为CPU从主存中取出一个存储字所需的最短时间,因为CPU的速度比主存快,所以机器周期一般设置为存取周期(存取周期 = 存储周期 = 存取时间 + 恢复时间)。
    而每个机器周期又包含多个时钟周期,时钟周期是CPU处理的最基本单位,其数值为时钟频率的倒数,也可称为节拍脉冲或T周期。
  • 通常可以将指令周期划分为取指周期间址周期 / 译码周期执行周期中断周期这4个工作周期。一般情况下,每个工作周期至少对应一个机器周期,即一个工作周期可能需要一个或多个机器周期完成,注意——此处的工作周期是一个更偏向功能角度的逻辑概念,而机器周期是时间概念。(不过也有些教材将工作周期当作是机器周期的另一种表述,请大家具体问题具体分析)

【知识拓展】

  • 传统指令周期的划分将指令周期划分为4个工作周期。

    1. 指令执行时,首先进入取指周期,CPU 以 PC 为地址访问主存取指令,同时更新 PC 的值作为后续指令的地址,注意,如果当前指令为分支指令,且分支条件满足,那么在 PC + "1" 后会重新对 PC 的值进行修改;
    2. 然后判断是否存在间址周期,如果存在,就进入间址周期获取操作数的有效地址,随后进入执行周期;
    3. 否则,直接进入执行周期,在执行周期中,需要完成取操作数、执行运算和存操作数的任务。
    4. 在执行周期结束后,如果控制器检测到中断请求,处理器会进入中断周期,此时需要关中断、保存断点、修改 PC 值为 中断服务程序的入口地址,然后转向中断服务程序。(也就是说,中断周期只完成“中断响应”的任务,至于“中断处理”,即中断服务程序的执行,并不算在中断周期里面)
  • 每个工作周期都可能有访存操作,但访存的目的不同,具体的访存目的见下表:

    CPU工作周期访存目的
    取指周期取指令
    间址周期取操作数的有效地址
    执行周期取 / 存操作数
    中断周期保存断点、执行中段服务程序、恢复断点