从16位到32位再到64位,为何16年过去,依然没有128位系统出现?
Posted 绽放文化
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从16位到32位再到64位,为何16年过去,依然没有128位系统出现?相关的知识,希望对你有一定的参考价值。
绝大部分人都没有意识到128位的处理器早已经存在了,并且已经存在了几十年。这么多年过去了,不光是128位的处理器出现了,256位、512位的处理器也同样出现了,比如Nvidia GTX 280这样的显卡、AMD Radeon R9 290,以及Tesla产品使用的是512位内存总线的处理器。
既然硬件已经存在了,那么操作系统毫无疑问会支持它们的使用,比如AVX-512就是英特尔与2013年7月份提出用于X86指令集架构的256位高级矢量扩展SIMD指令的512位扩展。AVX-512也并不是英特尔第一个引入的512位SIMD指令集,在第一代志强中就出现类类似的512位SIMD指令。
理论上512位的操作系统已经存在,但实际却不存在
处理器的位数通常是指通用寄存器的宽度,比如16位的处理器有16位通用寄存器,32位的处理器有32位通用寄存器,64位的处理器有64位的通用寄存器。那么就会要求与之相对应数的数据线、地址线、控制线,比如16位的处理器一次传输16位的二进制数,那么它的数据线、地址线、控制线都是16位的。
这也就能解释为什么32位的系统最多只能使用4GB的内存了,因为32位系统所能寻址的范围是2的32次方,也就是4GB。所以32位的系统最多只能使用4GB的内存,而64位的处理器几十GB还不是它的极限,他的寻址范围在2的64次方,也就是18200000TB。
芯片产商乐此不彼的增加处理器的位数,是确实得到了好处,比如8位处理器一次处理8位数据或者8位指令。当8位处理器计算+1时,需要先接收8位加的指令,再接收1这个8位二进制数。如果采用16位CPU则可以一次性16位2个字节的数据,计算+1这个动作就可以同时接收加的指令和1这个8位二进制数了。而32位就可以直接实现一次处理a=a+b的动作。
如果处理的位数再往128位迈进,就会发现寻址这个动作变得异常困难起来。处理器和高速缓存的压力也会变得非常巨大。原本可以放两条、四条指令的高速缓存仅仅只能放下一条,甚至放一条都不够。
处理器位数的增加也会导致操作码的变长,比如在32位处理器中跳转这个动作需要5个字节,而64位处理则需要15个字节。
正可谓是牵一发而动全身,处理器的位数在某种程度上确实简化了软件设计的复杂度,但硬件反而更为复杂了,结果就是计算速度下降。从实用的角度出发增加到128位的意义并不大。
综上所述
128位、512位架构对于图形、密码学,以及复杂的系统建模等数学密集型操作非常有用,但并不适用于操作系统。64位对于大多数用户来说已经足够用了,操作系统的更高位深度并不直接意味着它会有更高的速度,反而需要处理更长的地址,寻址也会变得异常困难,同理需要更换的不仅仅是操作系统,更换的还有软件代码。
以上是关于从16位到32位再到64位,为何16年过去,依然没有128位系统出现?的主要内容,如果未能解决你的问题,请参考以下文章