单片机中的机器周期、指令周期、总线周期的联系和区别
目录
一、核心概念速览
二、详细分解说明
1. 总线周期
2. 机器周期
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个时钟周期。