要理解这个问题需要几个比较基本的常识,
位数不代表技术水平,和指令集也完全没有关系
位数实际上的意义是【处理器一次处理的数据量】。
而处理器也并不是常规意义上一小颗处理器,而是更里面的逻辑处理单元。
首先从指令集说起,
如果按照指令集的标准,16位最多65536个指令,64位最多有二十位数这么多的指令,显然这太多了,我们根本用不到这么多的指令
曾经有一段时间,人们依靠吧软件指令设计成硬件指令来提高运算速度,但这会造成大量的又臭又长的垃圾指令,只为数亿次操作中的某一次而存在。但之后,人们逐渐的靠着算法的优化和功能的分立,吧这些复杂的设计分解开来。
然后就是技术水平
我们现在有声卡、显卡、网卡、计算卡,等等。
这些专有的卡拥有其专有的功能,一个16位的计算卡就可以存储六万多个常用公式,这些卡的存在极大的让趋向于全能的CPU拜托了许多负担,如果一个用户需要专业的数字运算,那么他只需要购买一张计算卡,就可以享受超多的专用指令集提高计算速度,而不需要这种服务的用户也不必为了这些额外的指令出价,也自此,人们不需要追求更高的位数,也能拥有足够强大的运算能力。
那么位数究竟是什么,之前答案贴出的一个讨论贴已经有人提到过这个原因了,但是还夹杂着一大堆错误讯息
现在电脑追求的位数,本质上是一种宽度,就像是一个人,他的嘴更大,就能一口吃下更多东西。
就像人们常说的,如果你想用超过4G内存,你就需要64位CPU
那么到底为什么是这样
首先,CPU与内存不是简单的连接起来,而是通过总线连接,CPU会踢一脚内存,并把一个地址放在内存的桌子上,内存会去那个地址找到对应的数据,然后会吧数据放在同一张桌子等待CPU拿走,那么显然,桌子的大小会同时限制单个数据大小,和可以找到数据的范围。
而我们真正需要吧32位变成64位的原因,就是要吧这个桌子变大。
接下来,为什么我们现在停在了64位
也很简单,因为这个64位的桌子太大了,到现在我们还没有什么运算可以放满他,单纯的扩大带宽真的没有意义,而且,相对于扩大位数,不断增加更多的CPU反而容易提高计算速度,而吧一个超级无敌大数字的操作,分拆成多个适合CPU带宽的操作并不需要很复杂的变换,这也是为什么超级电脑太湖之光也只是用了四万个64位CPU,而不是选择研发更高位数的数字操作。
在家用领域,同样也是这个道理,相对于一个诸葛亮,用户更希望八核臭皮匠。
就像之前的例子,如果想要快速吃掉更多的东西,相比于一个嘴超级大的人,选择多个嘴比较大的人同时吃或许会更好