8、16、32位单片机概念与寻址空间

2019-04-15 18:30发布

        玩了接近三年的单片机,8位、16位、32位的都玩过,突然间一个问题就让我发现我就是一个渣!!! 8位、16位、32位都代表什么意思呢?我就根据搜集的知识,简单的对自己科普一下:       1)、 从CPU的发展史来看,从以前的8位到现在的64位,8位也就是CPU在一个时钟周期内可并行处理8位二进字符0或是1,那么16就以此类推是64位就64位二进制。       2)、8位、16位、32位单片机的区别还有就是寄存器位数的区别,8位的单片机其寄存器也是8位,以此类推32位的MCU也就是有32位的寄存器(当然他也可以有16或者是8位的寄存器)。         还有在学习ARM里遇到的一个问题:寻址空间的问题。         寻址空间一般指的是CPU对于内存寻址的能力。Intel公司早期的CPU产品的地址总线和地址寄存器的宽度为20位,即CPU的寻址能力为2^20=1024*1024字节=1024K字节 =1M字节;286的地址总线和地址寄存器的宽度为24位,CPU的寻址能力为2^24=1024*4*1024*4B=4*1024*4KB=16M;386及386以上的地址总线和地址寄存器的宽度为32位, CPU的寻址能力为2^32=4096M字节=4G字节。 也就是说,如果机器的CPU过早,即使有很大的内存也不能得到利用,而对于现在的PⅡ级的CPU,其寻址能力已远远超过目前的 内存容量。
        在这里有一个很重要的概念:CPU的寻址能力以字节为单位 。以32位的单片机为例(最近在上手K60),对地址0x4000 0001进行赋值也就是对一个字节进行操作,32位的寄 存器就需要占用4个地址(8*4=32),那它占有的地址就为0x4000 0000----0x4000 0003。32位就代表了2^32的寻址空间也就是4G。         一些简单的问题写出来,有什么不对之处,烦请各位过路的朋友指正!