从16位到32位再到64位,为何16年过去,依然没有128位系统出现?

106 篇文章 4 订阅
61 篇文章 0 订阅

绝大部分人都没有意识到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位对于大多数用户来说已经足够用了,操作系统的更高位深度并不直接意味着它会有更高的速度,反而需要处理更长的地址,寻址也会变得异常困难,同理需要更换的不仅仅是操作系统,更换的还有软件代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值