AMD与英特尔联手,Zen 6架构引入FRED技术
4 小时前 / 阅读约9分钟
来源:Tomshardware
AMD在Zen6芯片中引入FRED指令集,替代沿用40余年的IDT机制,简化系统事件处理流程,提升系统稳定性与性能,减少CPU资源占用,降低事件处理延迟。

(图片来源:Getty Images)

分享方式:
  • Facebook
  • X
  • Whatsapp
  • Reddit
  • Pinterest
  • Flipboard
  • Email
分享本文
参与讨论
关注我们
将我们添加为Google新闻的优选来源

AMD似乎正对即将推出的Zen 6芯片的CPU架构进行根本性重新设计,而非将其作为Zen 5的一个简单延伸。据X平台用户InstLatX64爆料,作为改进的一部分,AMD终于在新芯片中采用了英特尔的FRED指令,同时还引入了全新的矩阵乘法和位反转指令。

FRED指令是对已有40多年历史的80286时代中断描述符表(IDT)机制的全面革新。目前,IDT是处理系统事件(如网络数据包到达或鼠标输入)并将其数据传递给驱动程序或应用程序的标准方式。

AMD采用FRED指令,是两家公司共同创建x86生态系统咨询小组,以协调新指令集开发工作的成果。去年10月,在该联盟成立一年后,AMD同意在其即将推出的芯片中实现FRED指令。目前,两家公司均未推出支持FRED指令的量产芯片,但预计英特尔的Nova和Panther Lake,以及AMD的Zen 6将成为首批支持该技术的产品线。

在互操作性方面,情况一度不明朗,因为AMD有其自己的监督入口扩展(SEE)。虽然英特尔的FRED指令是IDT的完整替代方案,但AMD的SEE更像是一种折中方案,它对遗留软件的改动要求最小。

Linus Torvalds本人在论坛帖子中明确表达了他的看法,他希望两家厂商都能实现这两种方案,但他称赞英特尔的方法是一个更完整的独立解决方案,能够彻底摆脱遗留问题。

在软件支持方面,Linux内核自6.9版本起就提供了对FRED指令的临时支持。同样,我们有理由期待,下一版桌面或服务器版Windows也将启用该功能。需要注意的是,只有操作系统和驱动程序等底层软件才能直接使用该功能,对于实际应用软件来说,这并不会构成问题。

那么,FRED指令究竟是什么呢?我们可以做一个简化的解释。系统事件(比如接收到一个传入网络数据包)被称为中断,而处理这些事件所需的数据和/或代码传输涉及环转换。这种情况在任何操作系统中都会不断发生,从存储I/O(写入完成)到鼠标输入(比如简单的点击)。

到目前为止,程序员不得不依赖IDT,而准确的技术形容词来形容它就是“笨拙”和“不完美”。IDT只能实现从内核代码到应用程序代码的部分转换,这意味着程序员必须手动执行许多其他操作,小心处理边界情况,考虑多个环级别,并绕过潜在的竞争条件(即两个系统事件同时发生并相互干扰)。

FRED指令在所有方面都有所改进,它提供了一次性指令,以确保从内核到应用程序以及返回的干净转换,并带有一致的堆栈(关于事件的信息以及继续执行的位置)。主要的FRED指令是原子的,这意味着它们要么全部执行,要么完全不执行,因此程序员在处理中断时不必担心状态不一致的问题。而且,需要思考的内容也大大减少了,心理负担也减轻了很多。甚至旧的环级别也被简化了,只剩下0(内核)和3(用户)两个级别。

总而言之,这意味着开发人员只需调用FRED指令,它就能一次性完成所有必要的工作,而无需再为许多边界情况和理论问题编写代码。这应该能使内核、系统驱动程序、引导加载程序和其他底层软件更加稳定。

至少在理论上,FRED指令也必将提高整体系统性能,因为它消耗的CPU周期更少,导致事件延迟更低。在高负载场景下,如处理大型网络传输,甚至可能在高刷新率游戏和音频工作中,这些改进都能累积起来——尽管每种工作负载的潜在提升幅度会有所不同。

对于需要多层事件处理的虚拟化场景来说,FRED指令无疑将带来性能上的飞跃。x86架构长期以来一直因保留过多遗留特性而受到批评,因此FRED指令的即将到来无疑是个好消息。

在Google新闻上关注Tom's Hardware,或将我们添加为优选来源,以获取我们最新的新闻、分析和评测。