我需要为同一个 CPU 提供两个微码版本,以了解哪个较新(包括来自另一个的修复)。微码版本不是单调的,因此它可以随着更新而减少。
根据我所见,微码版本是一个小于 0x1000 的数字,但在某些情况下,它还设置了更高的位,例如 0x2000064
我的观察是微码版本仅通过将那些较高的部分归零而随着更新而降低,而较低的部分总是增长。
有没有人了解版本号是如何形成的:什么是在较高部分编码的,而低部分真的总是在增长吗?
谢谢你。
我需要为同一个 CPU 提供两个微码版本,以了解哪个较新(包括来自另一个的修复)。微码版本不是单调的,因此它可以随着更新而减少。
根据我所见,微码版本是一个小于 0x1000 的数字,但在某些情况下,它还设置了更高的位,例如 0x2000064
我的观察是微码版本仅通过将那些较高的部分归零而随着更新而降低,而较低的部分总是增长。
有没有人了解版本号是如何形成的:什么是在较高部分编码的,而低部分真的总是在增长吗?
谢谢你。
每个微码更新都有一个修订版。版本只能增加(由操作系统强制执行),但处理器本身不会强制执行。
(非古代英特尔处理器确实强制实施了一些不降级障碍,但它不是基于微码更新修订号。它查看微码更新本身内部的一些未记录字段)。
微码修订号是一个 32 位的有符号数字。它没有处理器强制结构。显然,一些使用特定微架构的英特尔微代码团队似乎已经对其进行了一些结构化以简化他们的工作。
供将来参考: https ://manpages.debian.org/unstable/iucode-tool/iucode_tool.8.en.html https://github.com/platomav/MCExtractor/wiki/Intel-Microcode-Extra-Undocumented-Header