
第二点,应该是执行一条指令需要多少个时钟周期,对于老一点的51单片机执行一条指令需要12个时钟周期,但现在大多数单片机执行一条指令仅需1个时钟周期(STC的 1 T 单片机),这样速度一下子就提高12倍。
第三点,就是常说的几位机,最初接触的51大多为8位机,而后来随着技术的发展有了16位机(飞思卡尔、AVR等)、32位机(stm32)。我们都知道所有的指令最后执行的都是一连串的2进制数,对于8位机一次可以执行8位,而16位机可以执行16位,32位机可以执行32位,这样32位的明显比8位的快。
最后一点也是比较难理解的一点,就是单片机的内部结构,正常情况下一条执行完成需要经过取指令、解密寻址、执行指令三个步骤,比较老的单片机在执行这三个步骤时需要按照执行顺序依次执行,而高级的单片机(stm32)具有三级流水线,通俗的理解就是可以同时执行三个步骤,这样也大大的增加了单片机的执行速度。
特别注意的是:所有的速度并不是成线性关系的,即在相同条件下,不是32位机的执行速度就是8位机的4倍,更不是具有三级流水线的单片机的执行速度是普通单片机的3倍。具体原因与其内部设计的局限性有关系,这里我也不太清楚,不做太多介绍了。