汇编语言和多核CPU

9

如何启用/禁用其他核心/处理器以及使用哪些x86-64指令来执行代码?

操作系统在哪里有关于如何进行这些操作的文档?


1
重复问题,请参考 https://dev59.com/jXNA5IYBdhLWcg3wZ81R。 - Rom
2
你可能想看看Linux如何启动多个核心。http://lxr.linux.no/#linux+v2.6.31/arch/x86/kernel/smpboot.c - Tim Kryger
1
@Rom -- 不是重复的问题。那个问题是关于原子指令的。这个问题似乎是关于引导核心所涉及的硬件接口,即关于内核的问题。 - asveikau
3
可能是“多核”汇编语言是什么样子的?的重复问题。 - Ciro Santilli OurBigBook.com
最小示例:https://dev59.com/jXNA5IYBdhLWcg3wZ81R#33651438 - Ciro Santilli OurBigBook.com
4个回答

2
假设您是在谈论实现内核...
我的理解是,它主要基于这个文档:
Intel多处理器规范
如果我没记错的话(不是故意的),要检测多处理器支持,您需要扫描某些内存范围以查找固件为您设置的一组魔术字节。从那里,您可以遍历描述CPU的结构,并与APIC控制器通信,以在各种CPU上设置中断等。


0

让x86运行起来真是相当痛苦...问题不在于核心,而在于APIC系统。你需要查看芯片组的文档,可惜这些文档往往被隐藏得非常深。

你必须到内核级别去操作,这是肯定的。看看Linux似乎是个好主意。


-1

可能有来自Intel/AMD的文档,介绍了可以设置特定的模型专用寄存器来执行类似操作的内容。除非你正在编写位于内核级别的程序,否则我不确定你是否可以访问这些文档...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接