单片机的系统指令周期根据不同的内核架构各有区别。
8051系列单片机采用的是同步式的顺序逻辑系统,整个系统的工作完全是依赖系统内部的时脉信号。它的指令周期、机器周期等也是根据时钟脉冲信号来确定。下面说明机器周期、指令周期等的关系。
时钟周期:又叫时钟振荡周期,指晶振振荡产生的脉冲,一个脉冲表示一个时钟周期。
状态周期:在8051单片机中把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。一个状态周期等于两个时钟周期。
机器周期:一般也叫CPU周期,表示从内存读取一条指令字的最短时间,它是指令周期的最小单位。它等于单指令的周期长度。一个机器周期等于6个状态周期。
指令周期:一条指令包括1个或多个机器周期。所有的C语言代码最后都会编译成汇编代码来执行,而执行一条汇编指令需要的机器周期就叫做指令周期。
不用的指令的时钟周期不一样,同意8051内核,同一指令的时钟周期也不一样,由下图就可以知道,MOV指令将寄存器值放入累加器需要一个机器周期,MOV指令将直接地址中的值放入累加器需要两个周期;同一指令,8051和90系列单片机的指令周期也不同,8051系列执行单指令需要12个时钟周期,90系列执行单指令需要6个周期,他们都是需要一个机器周期,但是90系列一个机器周期只需要6个时钟周期。
我们常用的NOP指令就是一个单指令,需要一个机器周期,8051需要晶振产生12个脉冲。
8051百度百科:8051是一种8位元的单芯片微控制器,属于MCS-51单芯片的一种,由英特尔公司于1981年制造。INTEL公司将MCS51的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核心的单片机,如Atmel、飞利浦、深联华等公司,相继开发了功能更多、更强大的兼容产品。
CORTEX-M0 M3 M4等,采用的是ARMv6-M、ARMv7-M、ARMv8-M Thumb指令集,采用的是三级流水线工艺,M3具有分支预测功能,可以预取分支目标地址的指令,使分支延迟减少到一个时钟周期。
CORTEX-M系列的指令周期是不确定的,一方面MCU从Flash取指是有延时的,另一方面Cortex的指令集不是固定周期的,特别从M3加入分支预测后,分支指令在Cortex-M不同型号上的结果都不相同。
完。