从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位系统出现?相关推荐
- 128位加密SSL证书
SGC超真SSL(SGC ZhenSSL)属于 SGC Enabled High Assurance SSL, 是 WoSign 的增强型 SSL证书产品,支持 SGC 强制128位加密技术,即使用户 ...
- 【GNU笔记】【C扩展系列】128位整数 128-bit Integers
[GNU笔记][C扩展系列]128位整数 128-bit Integers 128位整数 128-bit Integers 作为扩展,整数标量类型__int128支持用于整数模式宽度足以容纳 128 ...
- 16位模式/32位模式下PUSH指令探究——《x86汇编语言:从实模式到保护模式》读书笔记16...
一.Intel 32 位处理器的工作模式 如上图所示,Intel 32 位处理器有3种工作模式. (1)实模式:工作方式相当于一个8086 (2)保护模式:提供支持多任务环境的工作方式,建立保护机制 ...
- 16位模式/32位模式下PUSH指令探究——《x86汇编语言:从实模式到保护模式》读书笔记16
一.Intel 32 位处理器的工作模式 如上图所示,Intel 32 位处理器有3种工作模式. (1)实模式:工作方式相当于一个8086 (2)保护模式:提供支持多任务环境的工作方式,建立保护机制 ...
- C语言编程中的8位、16位、32位整数的分解与合并
在单片机的编程中对于8位.16位.32位整数的分解与合并用的比较多,今天做了简要学习,后面还需要加以总结. 练习在VC++6.0编程环境中进行,源程序: #include <stdio.h> ...
- 8位、16位、32位操作系统的区别
简单的说32位的CPU的数据线.地址线.控制线都是32位的,即CPU一次能够传送.处理32位的二进制数,所以理论上它能够寻址的范围是2的32次方,即4个GB,所以即使你的电脑能够安装8个GB的内存,系 ...
- C语言:8位、16位、32位数据转换
先看一下测试代码 #include <stdio.h>int main() {/* Write C code in this online editor and run it. */int ...
- 关于单片机位数的思考(8位、16位、32位)
================================ 关于单片机位数的思考(8位.16位.32位) ================================ 8位.16位.32位是 ...
- admin及admin888 经过 md5加密后16位和32位代码
下面是 admin 的加密代码: 16位加密:7a57a5a743894a0e 32位加密:21232f297a57a5a743894a0e4a801fc3 admin888的MD5加密码 16位:4 ...
最新文章
- 模拟播放器倒计时效果
- View和View的参数传递
- linux改英语环境,CentOS6.8中/英文环境切换教程图解
- HihoCode1721删除一个字符之后是回文字符串
- Python 面向对象之双下方法,内置函数
- C语言 数组排序 – 快速法排序 - C语言零基础入门教程
- 测试工程师在软件测试阶段依据,北京软件测试工程师建立软件测试管理与评判体系...
- 新应用从哪几个方面开展ASO优化工作,aso优化内容
- 修改DNS服务器的作用,请问修改DNS服务器会有什么后果
- UESTC 1593 老司机破阵 优先队列+双端链表
- 【形式化学习笔记】1:Event-B相继式(Sequent)和推理规则(Inference Rule)
- 以太坊区块链积分系统示例讲解
- RecyclerView之使用ItemTouchHelper实现交互动画
- 可行性、易用性性与用户体验的区别
- 免费的java开发工具_Java那些最常用的免费开放工具,分享这15个!
- [信息化]企业信息化规划建设中需要注意的点
- 华为虚拟home键关闭_实体按键将全面消失?手机、耳机相继使用虚拟按键
- 肯德尔系数怎么分析_Kendall Rank(肯德尔等级)相关系数
- js判断数组类型的方法总结
- 怎么有效锻炼自己的记忆力?
热门文章
- css3 翻转和旋转的区别
- LINUX下的流量监控shell脚本
- 演示:思科交换机的Telnet管理与SSH管理
- 移植性问题のLPTSTR、LPCSTR、LPCTSTR、LPSTR之间的转换 转
- Excel文字输入技巧
- linux 网络协议栈参数设置,linux 调整tcp/ip协议栈内核参数支持高负载的web
- 启动go服务_go微服务框架go-micro深度学习 rpc方法调用过程详解
- 离线安装wxpython_windows离线状态下源码安装Robotframework 环境及其依赖包
- Windows下使用pthread
- php音频格式 操作,php操作视频音频类-ffmpeg-php