-2

我正在尝试编写一个支持多处理器的操作系统,但是我不知道如何为 AMD 引导多处理器,我已经搜索了 AMD 主页以找到 MP 规范,但没有找到,谁能告诉我链接地址?

4

2 回答 2

0

似乎没有特定于 AMD 的版本。我认为这是合理的,因为 AMD 的 x86 CPU 应该与 Intel x86 CPU 大部分兼容。

引用自维基百科

x86 架构的多处理器规范 (MPS) 是一个开放标准,描述了对操作系统和固件的增强,这将允许它们在多处理器配置中与 x86 兼容处理器一起工作。

使用来自英特尔的那个。

于 2012-08-19T08:48:49.073 回答
0

有两个标准允许您获取有关系统中逻辑处理器的信息。首先是英特尔多处理器规范 (MP),其次是高级配置和电源接口 (ACPI)。

MP 较旧,现在已弃用。虽然它仍然可以在不存在 ACPI 表的旧机器上使用,但不应依赖于较新的机器。事实上,当 ACPI 表存在时,MP 表不需要是健全的并且很可能包含垃圾;这可能是您的代码在 32 位机器上工作的原因,而不是在 64 位机器上工作的原因。

在编写(S)MP代码时,首先要检查是否有ACPI表可用(查找RSDP,如果存在XSDT,则使用它,否则使用RSDT;接下来,查找MADT并解析表的LAPIC条目以查找LAPIC ID存在逻辑核心),并且仅当它们不存在时才回退到 MP。


所讨论的 CPU 是 AMD 还是 Intel 并不重要。它们大多是兼容的,除了少数极端情况下不兼容的指令实现或解释。不同 CPU 型号之间唯一可以改变的是 AP 启动顺序,但在这方面微架构之间的差异在 Intel 和 AMD 手册中有描述。

于 2012-10-31T13:18:08.797 回答