砍掉 16 位、32 位,英特尔提出 x86-S ,直接支持 64 位架构!

389f9e0a0d263aab960c55bbd2cf7c22.gif

整理 | 屠敏,郑丽媛

出品 | CSDN(ID:CSDNnews)

落后了自然要被淘汰,曾经的经典因此也正在逐步消失。

随着 64 位操作系统的普及以及现代软件对更多内存需求的不断增长,很多用户选择更为先进的 64 位操作系统也就不足为奇了。然而,尽管各方想方设法地逐步淘汰掉,但是仍然有很多硬件保留对旧系统的传统 32 位、16 位模式的支持。

认识到简化其架构和优化性能的机会,近日,芯片巨头英特尔提出一个设想与提议:直接取消传统 32 位和 16 位的支持,建议转向仅 64 位的架构,并将最新的架构称之为 x86-S,旨在消除不必要的遗留模式,为未来更快的系统铺平道路。

a5f6d65864f045ff84ffaa677d7c2ae6.png

淘汰掉 16 位、32 位已迫在眉睫

事实上,全线下架 16 位、32 位应用早已是业界共识:

▶ 2018 年 iOS 11 发布的时候,苹果已全面淘汰 32 位的应用 APP。

▶ 2019 年谷歌曾公开提醒开发者,停止开发新的 32 位 APP 或为其提供更新。不过 Android 毕竟是一个开源项目,难以强制推行淘汰 32 位程序,所以这项计划并没有被严格执行。

▶ 2022 年,国内小米、OPPO、Vivo、腾讯应用宝、百度手机助手联合宣布,在应用商店发布的所有应用必须支持 64 位架构。

▶ ……

在此趋势下,英特尔最新公开发布《构想简化的英特尔架构》白皮书,宣布纯 64 位模式架构的 Intel x86-S 架构,亦是一种顺势而为。

正如白皮书中所说,Intel 64 位架构已经有 20 多年历史,但随着微软在 Windows 11 中放弃 32 位架构,英特尔固件也已不再原生支持非 UEFI64 操作系统。如今,64 位操作系统是计算机的标准,它们还保留了运行 32 位应用的能力(目前 32 位应用仍占据着较高份额),但已不再支持 16 位应用。

随着时代发展,英特尔认为:“我们的硬件和软件生态系统存在简化的机会。”简单来说,x86S 将取消所有以前对 16 位和 32 位的遗留支持,成为一个全新的 64 位模式架构。

181f4b7a12c8d031bee486b1fa8cae3e.png

(x86S 架构,旨在完成向 64 位架构的过渡,取消一些遗留模式)


bc2f0011777a85ef8c441aaf30f9a849.png

采用纯 64 位模式架构的好处

纯 64 位架构的 x86-S,会删除一些旧架构的附属模块,以此降低软件和硬件体系结构的整体复杂性。不仅如此,通过探索纯 64 位模式架构,还可以进行与现代软件部署一致的其他更改,包括:

▶ 使用 64 位简化分段模型,为 32 位应用提供分段支持,与现代操作系统已使用的内容相匹配。

▶ 删除现代软件不使用的 Ring 1 和 Ring 2,以及过时的分段功能。

▶ 删除 16 位寻址支持。

▶ 取消对 Ring 3 I/O 端口访问的支持。

▶ 取消字符串端口 I/O,因为它支持过时的 CPU 驱动的 I/O 模型。

▶ 将本地中断控制器(APIC)的使用限制改为 X2APIC,并删除对旧版 8259 的支持。

▶ 删除一些未使用的操作系统模式位。


7a4e7e09bbe12a1e2fe9d7ff263d8109.png

英特尔对 x86S 的设想:纯 64 位模式如何工作?

据白皮书介绍,Intel 64 架构设计在复位时与最初的 16 位微处理器“8086”处于相同状态,都需要进行一系列代码转换才能进入 64 位模式。一旦运行,这些模式就很少在现代应用或操作系统中使用。

539a21091f04c3c88522af5a27308ec5.png

(X86S 中支持和不支持的模式)

而 x86-S 作为一个全新的 64 位模式架构,可在真实模式或保护模式下运行 64 位等效技术,例如:

▶ 目前以实地址模式启动 CPU(SIPI)时,需要一个 64 位的替代。但直接处于 64 位复位状态的话,就可以跳过多个跳板代码阶段,直接进入 64 位操作状态。

▶ 使用 5 级页需要禁用分页,这意味着需要回到无分页的传统模式。但在如今提议的 x86S 架构中,我们可以在不离开分页模式的情况下切换到 5 级分页。

同时,英特尔补充:这些修改可通过对系统架构进行简单增强来实现,即只影响操作系统本身。

81ad6c263276f72814f8f5bf3fc438d9.png

x86-S 还不会很快出现

尽管对于 x86-S 的整体构想已大致成型,甚至英特尔架构的软件生态系统已经有了足够成熟的虚拟化产品,但英特尔还是表示,宣告这个消息只是“为了征求生态系统的反馈意见,同时探索将 ISA 过渡扩展到纯 64 位模式的好处”。

因此,至少就目前来看,我们还不会很快看到 x86-S,这次英特尔发布的白皮书更像是一种面向业内专业人士和开发人员的预告。

不过就算如此,英特尔这番公告还是引起了许多用户的关注和讨论:

▶ “英特尔是时候面对事实了,即 8086 架构根本不够优雅,无法像 IBM 360 架构那样保持各个时代的兼容性,所以放手吧。”

▶ “现代管理程序技术意味着,现在可能确实是 32 位原生硬件该被淘汰的时候了。”

那么,你见过多少 16 位、32 位应用,对于英特尔的这个预告又有什么看法呢?

参考链接:

https://www.intel.cn/content/www/cn/zh/developer/articles/technical/envisioning-future-simplified-architecture.html

https://forums.theregister.com/forum/all/2023/05/25/intel_proposes_dropping_16_bit_mode/

推荐阅读:

▶CentOS停服倒计时,如何打造安全好用的Linux系统?

▶首个国人主导的 Apache 数据集成顶级项目 SeaTunnel 毕业!

▶李彦宏宣布设立10亿创投基金促进大模型生态发展;Kindle中国电子书店停止运营;Bootstrap 5.3发布|极客头条

53520d5f1dfb9611d39dd515f6348b84.jpeg

将一个80的数右移8后存入一个8寄存器中,实际上是从原数值的第8(从最低有效LSB算起)开始截取连续的8,并将其存储到目标寄存器中。下面详细解释这一过程并提供具体示例。 --- ### **一、问题分析** 1. 假设原始数据为`data[79:0]`,这是一个宽度为80比特的值。 2. 右移8意味着丢弃最右边的8(最低有效),并将剩余部分向右侧移动。 3. 移动后的结果最高有效会被填充为原来次高的值(如果是无符号数则填0,如果是有符号数取决于具体的编码规则)。 4. 最终,选取移动后结果的最低有效的8存储进8-bit寄存器中。 例如,给定一个初始值为十六进制形式的80bit整数: ``` data = 0xDEADBEEFCAFEBABEFEEDDADDEADFACADE ``` 我们需要计算出它右移8之后的结果,并从中提取出低8bits放入我们的8bit-reg里。 #### 示例转换流程: - 初始状态下整个数据看起来像这样(简化版仅展示部分): ``` DE AD BE EF CA FE BA BE FE ED DA DD EA DF AC AD E_ ``` - 如果我们把上述数据整体往右挪八格,则相当于砍掉了最后边的一小块“_”代表的内容同时前面补零形成新的序列; - 接下来只需关注新产生的这个长串里的末尾那单独八个字符即可获得最终想要的答案——也就是刚才提到过的目标区域内容。 --- ### **二、代码实现** 以下是基于Verilog硬件描述语言的一个简单模型来完成此任务: ```verilog module right_shift_example ( input [79:0] data_in, // Input: 80 bits wide number. output reg [7:0] data_out // Output: Only the last 8-bits after shifting. ); always @* begin data_out <= data_in >> 8; // Shift operation and assign to lower 8-bits of 'data_out'. end endmodule ``` 在这个模块定义里面,“<<”运算符用于执行左移操作相反地“>>”完成了相应的右置换工作。“<=”表达式表示非阻塞赋值语句,在组合逻辑上下文中使用允许当前线程继续运行直到所有相关的变量都被更新完毕才停止进一步处理动作发生改变之前的状态信息传递下去。 注意这里的输入端口是一个完整的八十长度信号源;而输出仅仅接收到了经过处理过后剩下的最后一个字节而已! --- ### **三、特殊情况讨论** 1. **溢出情况**: 因为我们只是单纯做了简单的右转移并且忽略了超出边界之外的部分所以我们不用担心关于越界之类的错误异常状况出现。 2. **负数处理**: 对于带符号类型的数字而言如果它们处于负区间内的话可能会涉及到额外的一些细节比如是否有符号扩展等问题在此不做深入探讨除非特别指明我们要考虑这些因素影响结果准确性的可能性存在与否以及程度大小如何衡量等等复杂度较高的层面去了…… ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CSDN资讯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值