自从苹果在iPhone 5s上使用了64位的A7处理器后,手机处理器的位数也就自然而然的成为了人们关注的焦点,那到底64位处理器和32位处理器有什么区别呢?本文将重点介绍一番。
CPU的位是指一次性可处理的数据量是多少,1字节=8位,32位处理器可以一次性处理4个字节的数据量。依次类推,64位处理器可以一次性处理8个字节的数据量,比32位处理器的处理速率加快一倍。
为什么64位会比32位的快,那是因为如果一个机器指令是32位的,那么寄存器是64位就可以一次取两个指令,也就相当于一个小孩和一个大人抢东西吃,小孩一次只能拿四个,而大人则可以拿8个。
换一种说法,32位跟64位就好比四车道和八车道的区别,只有你堵成晚高峰的北京才能感受得到。你要是四车道都没开满,上了八车道也感觉不到区别。一般来说跑计算密集型并且为64位优化过的程序才能感受到区别。
如果说频率的提升是把一条4车道高速公路的时速限制从120公里提升到了360公里的话,那么从32位到64位的提升就是将这条提升了3倍时速限制的高速公路从4车道拓宽到了8车道,也就是说,这条公路的运力提升了一倍,这可是质的飞跃。
不过计算机内部表示的数值是有范围的,决定性因素在于CPU的寄存器。它是计算机处理数值的最小单元,如果寄存器是32位的,那么他所能表示的数的范围最大是2的32次方,即表示的范围是32个0到32个1,(这里不计较原码还是补码或是移码),如果寄存器是64位的话,显而易见,表示的范围是64个0到64个。
数的表示范围大了,那么其计算的精确度就提高了。当然这要操作系统的支持才行,就像有辆跑车能跑300公里每小时,但是驾驶员只会开低档,好的资源被浪费了。
另外,相信大家都知道32位系统只能识别4g内存而64位系统可以识别4g以上内存。那是因为内存是由很多小的单元组成,为了能取得内存里面的数据,需要给把每个单元编号,就像家庭住址一样。而作为内存的单元编号是有专门的寄存器存储(专业名词是mar)的,32位系统可以表示的最大地址是2的32次方,一般来说一个单元是8位的,也就是一个字节。合起来就是4g的存储空间,同样的64位系统可以表示的单元地址的总数是2的64方。
64位操作系统跟32位操作系统又有什么区别?
操作系统其实也是程序,64位的操作系统使用的是64位的指令,不能安装在32位机器上。两者最大的区别在于:
1、设计初衷不同
64位操作系统的设计初衷是为了满足需要大量内存和复杂浮点数运算的需求,一般用在科学计算、人工智能、平面设计、视频处理、3D动画和游戏数据库以及各种网络服务器等领域中。
2、安装环境不同
64位操作系统只能安装在64位CPU的机器上,同时需要配合64位的程序才能发挥最佳性能,32位操作系统既可以安装在32位CPU的机器上,也可以安装在64位CPU的机器上,但没啥意义,64位的性能会被大打折扣。
3、寻址能力不同
32位操作系统最多可以寻址2的32次方即4,294,967,296字节,约4GB内存,4GB的内存就现在而言在很多服务端程序上都是不够用的,而64位操作系统理论上可以寻址2的64次方即18,446,744,073,709,551,616字节超过1亿GB内存,但这只是理论上,由于不同架构的CPU设计不同,所以寻址能力也有错差别。
32位操作系统和64位操作系统下数据类型对应的字节大小也是不同的,正常数据类型对应的字节数应该是CPU位数决定的,但实际上貌似是由编译器决定的,看下表:
小结
32位处理器的优点唯一值得一提就是它可以与20世纪末和21世纪初开发的所有旧程序兼容。64位处理器可以提升程序的性能,更好的利用64位操作系统的特性。64位的处理器有256TB的虚拟内存,其中128TB分配给了用户空间,另外128TB分配给了内核空间(不同架构的CPU虚拟内存的设计大小不同,AMD的x86-64架构的CPU只有最低48位才会在地址转换时被使用,所以总的虚拟地址空间为2的48次方即256TB,这里涉及到多级页表中的四级页表,后续程序喵会介绍)。
要实现真正意义上的64位计算,光有64位的处理器是不行的,还必须得有64位的操作系统以及64位的应用软件才行,三者缺一不可,缺少其中任何一种要素都是无法实现64位计算的。在64位处理器方面,Intel和AMD两大处理器厂商都发布了多个系列多种规格的64位处理器。
全部0条评论
快来发表一下你的评论吧 !