绝大部分人都没有意识到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位系统出现?相关推荐

  1. 128位加密SSL证书

    SGC超真SSL(SGC ZhenSSL)属于 SGC Enabled High Assurance SSL, 是 WoSign 的增强型 SSL证书产品,支持 SGC 强制128位加密技术,即使用户 ...

  2. 【GNU笔记】【C扩展系列】128位整数 128-bit Integers

    [GNU笔记][C扩展系列]128位整数 128-bit Integers 128位整数 128-bit Integers 作为扩展,整数标量类型__int128支持用于整数模式宽度足以容纳 128 ...

  3. 16位模式/32位模式下PUSH指令探究——《x86汇编语言:从实模式到保护模式》读书笔记16...

    一.Intel 32 位处理器的工作模式 如上图所示,Intel 32 位处理器有3种工作模式. (1)实模式:工作方式相当于一个8086 (2)保护模式:提供支持多任务环境的工作方式,建立保护机制 ...

  4. 16位模式/32位模式下PUSH指令探究——《x86汇编语言:从实模式到保护模式》读书笔记16

    一.Intel 32 位处理器的工作模式 如上图所示,Intel 32 位处理器有3种工作模式. (1)实模式:工作方式相当于一个8086 (2)保护模式:提供支持多任务环境的工作方式,建立保护机制 ...

  5. C语言编程中的8位、16位、32位整数的分解与合并

    在单片机的编程中对于8位.16位.32位整数的分解与合并用的比较多,今天做了简要学习,后面还需要加以总结. 练习在VC++6.0编程环境中进行,源程序: #include <stdio.h> ...

  6. 8位、16位、32位操作系统的区别

    简单的说32位的CPU的数据线.地址线.控制线都是32位的,即CPU一次能够传送.处理32位的二进制数,所以理论上它能够寻址的范围是2的32次方,即4个GB,所以即使你的电脑能够安装8个GB的内存,系 ...

  7. C语言:8位、16位、32位数据转换

    先看一下测试代码 #include <stdio.h>int main() {/* Write C code in this online editor and run it. */int ...

  8. 关于单片机位数的思考(8位、16位、32位)

    ================================ 关于单片机位数的思考(8位.16位.32位) ================================ 8位.16位.32位是 ...

  9. admin及admin888 经过 md5加密后16位和32位代码

    下面是 admin 的加密代码: 16位加密:7a57a5a743894a0e 32位加密:21232f297a57a5a743894a0e4a801fc3 admin888的MD5加密码 16位:4 ...

最新文章

  1. 模拟播放器倒计时效果
  2. View和View的参数传递
  3. linux改英语环境,CentOS6.8中/英文环境切换教程图解
  4. HihoCode1721删除一个字符之后是回文字符串
  5. Python 面向对象之双下方法,内置函数
  6. C语言 数组排序 – 快速法排序 - C语言零基础入门教程
  7. 测试工程师在软件测试阶段依据,北京软件测试工程师建立软件测试管理与评判体系...
  8. 新应用从哪几个方面开展ASO优化工作,aso优化内容
  9. 修改DNS服务器的作用,请问修改DNS服务器会有什么后果
  10. UESTC 1593 老司机破阵 优先队列+双端链表
  11. 【形式化学习笔记】1:Event-B相继式(Sequent)和推理规则(Inference Rule)
  12. 以太坊区块链积分系统示例讲解
  13. RecyclerView之使用ItemTouchHelper实现交互动画
  14. 可行性、易用性性与用户体验的区别
  15. 免费的java开发工具_Java那些最常用的免费开放工具,分享这15个!
  16. [信息化]企业信息化规划建设中需要注意的点
  17. 华为虚拟home键关闭_实体按键将全面消失?手机、耳机相继使用虚拟按键
  18. 肯德尔系数怎么分析_Kendall Rank(肯德尔等级)相关系数
  19. js判断数组类型的方法总结
  20. 怎么有效锻炼自己的记忆力?

热门文章

  1. css3 翻转和旋转的区别
  2. LINUX下的流量监控shell脚本
  3. 演示:思科交换机的Telnet管理与SSH管理
  4. 移植性问题のLPTSTR、LPCSTR、LPCTSTR、LPSTR之间的转换 转
  5. Excel文字输入技巧
  6. linux 网络协议栈参数设置,linux 调整tcp/ip协议栈内核参数支持高负载的web
  7. 启动go服务_go微服务框架go-micro深度学习 rpc方法调用过程详解
  8. 离线安装wxpython_windows离线状态下源码安装Robotframework 环境及其依赖包
  9. Windows下使用pthread
  10. php音频格式 操作,php操作视频音频类-ffmpeg-php