cpu时钟频率和MIPS

首先,了解下晶振的作用。没有晶振,就没有时钟周期,没有时钟周期,就无法执行程序代码,单片机就无法工作。 单片机工作时,是一条一条地从RoM中取指令,然后一步一步地执行。单片机访问一次存储器的时间,称之为一个机器周期,这是一个时间基准。—个机器周期包括12个时钟周期。如果一个单片机选择了12MHz晶振,它的时钟周期是1/12us,它的一个机器周期是12×(1/12)us,也就是1us。 MCS—51单片机的所有指令中,有一些完成得比较快,只要一个机器周期就行了,有一些完成得比较馒,得要2个机器周期,还有两条指令要4个机器周期才行。为了衡量指令执行时间的长短,又引入一个新的概念:指令周期。所谓指令周期就是指执行一条指令的时间。例如,当需要计算DJNZ指令完成所需要的时间时,首先必须要知道晶振的频率,设所用晶振为120MHz,则一个机器周期就是0.1us。而DJNZ指令是双周期指令,所以执行一次的指令周期为0.2us,每秒执行指令次数为5百万,即5mips。



首先,mips是理论值,理论上CPU每秒处理的万条指令数,实际数量小于这个值。
mips有很多东西决定,当然包括流水线,时钟频率等等。
大多数处理器都是一条指令只做一个操作,mips往往等于ALU的时钟周期的万分之一。
不过,有的处理器支持SIMD 单指令多数据流,也就是一条指令可以同时完成多个操作,这时候一条指令就不光是一条指令了。
所以,两个处理器有相同的核心频率,却可以有不同的mips。

另外,由于流水线的存在,现在的CPU的实际处理速度远小于他的mips。大量的跳转指令频繁的刷新流水线,导致一条指令往往花了多个周期才能执行。
同时,主页取决于内存和其它设备的速度。
比如两个操作序列
(1)
c=a+b
f=c+n
(2)
c=a+b
f=d+n
有流水线的情况下,(2)要明显快于(1)。(1)中的第二条指令要等待地一条指令的运行结果,而这个结果会导致流水线停滞。

现在的CPU为了防止流水线被频繁的刷新和停止,采用了指令级的乱序处理,超标量和分支提前预测等等技术,也导致了CPU体积不断变大,越来越复杂。




你可能感兴趣的:(Vxworks,arm)