stm32 执行一条机器语言的指令周期是多久
时钟每跳1兆次,可以执行1.25兆条指令。指令周期=时钟周期*1.25,时钟周期是1/72mhz,故指令周期是(1.25/72mhz)约是0.0174us。
stm32 属于ARM CortexM3,多数指令是单周期的。
cortex-m3是三级流水线,同时执行3条指令,指令周期不定,分支指令也可能清空流水线,导致预先执行的指令失效。
ARM官方的数字是1.25MIPS/MHz,我的理解就是每个周期平均执行1.25条指令。
扩展资料:
计算机之所以能自动地工作,是因为CPU能从存放程序的内存里取出一条指令并执行这条指令;紧接着又是取指令,执行指令,如此周而复始,构成了一个封闭的循环。除非遇到停机指令,否则这个循环将一直继续下去。
指令周期 :CPU从内存取出一条指令并执行这条指令的时间总和。
CPU周期 :又称机器周期,CPU访问一次内存所花的时间较长,因此用从内存读取一条指令字的最短时间来定义。
时钟周期: 通常称为节拍脉冲或T周期。一个CPU周期包含若干个时钟周期。
参考资料来源:百度百科-指令周期
指令周期是单周期。一个机器周期=一个时钟周期,即430每个动作都能完成一个基本操作;一个指令周期=1~6个机器周期,具体根据具体指令而定。
stm32属于ARMCortexM3,多数指令是单周期的,同时执行3条指令,指令周期不定,分支指令也可能清空流水线,导致预先执行的指令失效。
扩展资料:
在STM32F105和STM32F107互连型系列微控制器之前,意法半导体已经推出STM32基本型系列、增强型系列、USB基本型系列、互补型系列;新系列产品沿用增强型系列的72MHz处理频率。内存包括64KB到256KB闪存和20KB到64KB嵌入式SRAM。
新系列采用LQFP64、LQFP100和LFBGA100三种封装,不同的封装保持引脚排列一致性,结合STM32平台的设计理念,开发人员通过选择产品可重新优化功能、存储器、性能和引脚数量,以最小的硬件变化来满足个性化的应用需求。
cortex-m3是三级流水线,同时执行3条指令,指令周期不定,分支指令也可能清空流水线,导致预先执行的指令失效。
ARM官方的数字是1.25MIPS/MHz,我的理解就是每个周期平均执行1.25条指令。
即,stm32f103配置为72MHz的话,一个指令周期是1.25/(1.25*72*10^6) ≈ 0.01736us (微秒)≈ 17ns(纳秒)
影响指令执行速度的因素很多,包括核心频率,存储器频率,外设频率,电压,代码位置,指令功能,总线冲突,资源冲突,预取指,指令缓存,数据缓存,分支预测等等。文本中,研究某个因素时,都有一个默认的前提,就是其他因素保持不变。
另外预取指,指令缓存,数据缓存,分支预测属于芯片内部的实现,只要开启就肯定能加速,并没有什么可研究的。