目录
[1. 总线周期](#1. 总线周期)
[2. 机器周期](#2. 机器周期)
[3. 指令周期](#3. 指令周期)
[四、如果这篇文章能帮助到你,请点个赞鼓励一下吧ξ( ✿>◡❛)~](#四、如果这篇文章能帮助到你,请点个赞鼓励一下吧ξ( ✿>◡❛)~)
一、核心概念速览
首先,想象一个中央厨房(CPU) 为顾客(系统)准备菜肴(执行任务):
概念 | 类比 | 说明 |
---|---|---|
指令周期 | 完成一道菜的所有步骤 | CPU执行一条完整指令所需的时间 |
机器周期 | 完成一个特定步骤 | 完成一个基本操作(如取料、翻炒)的时间 |
总线周期 | 从仓库取送食材的过程 | CPU通过总线与内存/外设交换一次数据的时间 |
核心关系:指令周期 ≥ 机器周期 ≥ 总线周期≈时钟周期
二、详细分解说明
1. 总线周期
定义 :CPU通过系统总线(地址、数据、控制总线)与存储器或I/O端口进行一次数据读写所需的时间。
工作内容:完成一次物理上的数据传输。例如,从内存的某个地址读取一个字节的数据,或者将一个字节的数据写入某个端口。
特点:这是最底层的、硬件级别的操作周期,由系统时钟驱动。
举例 :在51单片机中,一个典型的总线周期 可能需要2个系统时钟周期。
2. 机器周期
定义 :CPU完成一个基本操作所需的时间。一个机器周期通常由若干个总线周期构成
工作内容 :一条指令的执行被分解为多个阶段,每个阶段就是一个机器周期。最常见的划分是取指、译码、执行 。
取指周期:将指令从内存读到指令寄存器。
译码周期:分析指令是什么操作。
执行周期:执行指令规定的操作(可能包含多个总线周期)。
特点:是衡量指令执行速度的一个传统单位(如老式51单片机的1个机器周期包含12个时钟周期)。
举例 :在经典的8051架构中,1个机器周期 = 12个时钟周期。
3. 指令周期
定义 :CPU取出并执行一条完整指令所需的全部时间。
工作内容:包括从内存中取出指令操作码、对指令译码、执行指令操作(可能包含多次内存读写),最后将结果写回。
特点 :时间不固定 :不同指令的复杂程度不同,其指令周期长度也不同。一条指令的指令周期由1个或多个机器周期组成。
举例 :短指令 :如NOP
(空操作)指令,可能只需要1个机器周期 。长指令 :如MUL
(乘法)指令,可能需要4个机器周期。
三、三者的联系与层级关系
包含关系 :指令周期 > 机器周期 > 总线周期 ≈ 时钟周期

现代架构的演变:
在现代的ARM Cortex-M等高级单片机中,这种严格的层级关系已经模糊,普遍采用流水线 和单周期指令技术。
流水线:在执行当前指令的同时,已经开始取下一条指令并译码,大大提高了吞吐率。
单周期指令 :很多简单指令可以在1个时钟周期 内完成,此时指令周期 = 机器周期 = 总线周期 = 1个时钟周期。