64位和32位芯片有什么区别?

judy的头像

据记载,CPU的位是指一次性可处理的数据量是多少,1字节=8位,32位处理器可以一次性处理4个字节的数据量。依次类推,64位处理器可以一次性处理8个字节的数据量,比32位处理器的处理速率加快一倍。

自从苹果在iPhone5s上使用了64位的A7处理器后,手机处理器的位数也就自然而然的成为了人们关注的焦点,那到底64位处理器和32位处理器有什么区别呢?

64位和32位芯片有什么区别?

其实手机处理器和PC处理器对于位数的概念是相同的,这里我就用PC的处理器来说明了。对CPU有些了解的人大概都知道Pentium3和Pentium4,了解更深的,还会知道是i386处理器在20几年前把处理器从16位带入32位时代。

处理器经过了近30多年的考验后,到现在已经跃升到64位,这可不同1GHz到3GHz的频率提升。如果说频率的提升是把一条4车道高速公路的时速限制从120公里提升到了360公里的话,那么从32位到64位的提升就是将这条提升了3倍时速限制的高速公路从4车道拓宽到了8车道,也就是说,这条公路的运力提升了一倍,这可是质的飞跃。

64位和32位芯片有什么区别?

其实,计算机内部表示的数值是有范围的,决定性因素在于CPU的寄存器。它是计算机处理数值的最小单元,如果寄存器是32位的,那么他所能表示的数的范围最大是2的32次方,即表示的范围是32个0到32个1,(这里不计较原码还是补码或是移码),如果寄存器是64位的话,显而易见,表示的范围是64个0到64个。
  
数的表示范围大了,那么其计算的精确度就提高了。当然这要操作系统的支持才行,就像有辆跑车能跑300公里每小时,但是驾驶员只会开低档,好的资源被浪费了。
64位和32位芯片有什么区别?

另外,相信大家都知道32位系统只能识别4g内存而64位系统可以识别4g以上内存。那是因为内存是由很多小的单元组成,为了能取得内存里面的数据,需要给把每个单元编号,就像家庭住址一样。而作为内存的单元编号是有专门的寄存器存储(专业名词是mar)的,32位系统可以表示的最大地址是2的32次方,一般来说一个单元是8位的,也就是一个字节。合起来就是4g的存储空间,同样的64位系统可以表示的单元地址的总数是2的64方。
  
现在又有一个问题产生了,那就是为什么我的电脑是4g内存,而计算机却显示3.xxG。其实由于其他的存储设备也需要空间地址,所以一部分地址被分给其他的存储设备了,那么给内存的地址就减少了,识别的内存自然就小于4g。这跟硬盘是不一样的,硬盘实际容量少于标定容量是由于方便工业生产,厂家的标准是1GB=1000MB而科学标准是1GB=1024MB。
64位和32位芯片有什么区别?

至于为什么64位会比32位的快,那是因为如果一个机器指令是32位的,那么寄存器是64位就可以一次取两个指令,也就相当于一个小孩和一个大人抢东西吃,小孩一次只能拿四个,而大人则可以拿8个。
 
因此iPhone5s的运行与此相似,它从内存获得数据,一个时钟周期内32位只能处理32位的数据,64位就可以取得64位的数据,如此一来速度、性能、效率就提高了。而现在最主要的问题就是加快对64位软件的开发,这样才能发挥出64位处理器的最大效能。

转自: 玩转单片机