AMD 在 2020 年期间为 Linux 内核提供了补丁,以使其能够在 ryzen 5000 系列处理器上运行。 ryzen 5000系列处理器不是实现x64 ISA吗?锐龙 5000 处理器与英特尔处理器和锐龙 3000 系列处理器有何不同?为了在实现相同 ISA 的所有这些处理器上正确运行,操作系统需要了解哪些特定于平台的行为?为了支持 ryzen 5000 处理器,AMD 对 Linux 内核做出了哪些改变?
答案1
Ryzen 确实实现了 x86-64 ISA,但它引入了一些对于 Linux 等内核很重要的变化。
Ryzen 5000 是 Ryzen Gen 3 的一部分,它使用新的“系列”标识符 19h(上一代 Ryzen 是系列 17h)。许多补丁都涉及添加对此的支持,即使这只涉及告诉内核系列 19h 的行为与 17h 类似:
- 系列 19h PCI id
- Zen 风格的初始化
- IBS 获取修复
- EDAC支持
- _PSD表支持(这涉及禁用不再需要的怪癖)
- RAPL 支持
- 更多 RAPL 支持
- 能源报告
许多补丁涉及托管在内核中但不是内核一部分的代码,主要围绕性能事件:
到目前为止,Ryzen Gen 3 上确实没有太多特定于平台的行为;init_amd_zn
,Zen 初始化函数,主要任务是设置一个功能标志,该标志仅用于旁道缓解。
更一般地说,CPU 支持往往更多地涉及平台支持,而不是新的“核心”CPU 功能:处理新标识符、支持新电源管理功能、错误检测和纠正功能等。某些平台将涉及更复杂的支持,例如在具有新的集成 GPU 的 CPU 上,或者在具有新的核心分割的 CPU 上,需要在内核本身中进行更多的架构改造(例如支持小核和大核)。