在非常低的级别谈话,核心是如何初始化的?多核处理器如何启动?
7
A
回答
6
你可以查看Intel specification中的所有血型细节。血淋淋的细节在第8.1章。
下面是一个摘录:
继上电或的 断言的RESET#引脚时, 系统总线上的每个处理器执行硬件 初始化处理器(称为 作为硬件的重置)以及可选的内置自测(BIST) 。 [剪断]在 这一点上,所采取的行动取决于 在处理器家族:
•P6系列处理器-所有的 系统总线(包括单处理器系统中的单个 处理器)上的处理器 执行所述多个处理器(MP) 初始化协议穿过 APIC总线。该处理器是 通过该协议作为 引导处理器(BSP)然后 立即开始在 当前代码段执行 软件初始化代码在 在EIP寄存器偏移量开始选择。
2
有引导多核SOC取决于架构,系统的多种方式 - AMP或SMP等 之一为双核SMP系统简单的方法是,在CPU0复位向量开始(例如00000000指向闪存启动监视程序存储在哪里)。在此期间,其他内核处于WFI(等待中断)或启动保持关闭状态。 CPU0启动并设置CPU1引导的接地。
进一步的细节 http://www.linux-arm.org/LinuxBootLoader/SMPBoot
freescale.com/files/32bit/doc/app_note/AN3542.pdf
相关问题
- 1. Python多处理启动比核心更多的进程
- 2. 有关多核处理器与单核多处理器的说明
- 3. 如何将代码分散到核心多核处理器
- 4. 多处理不启动
- 5. 多核处理器的多线程
- 6. Python:多核处理?
- 7. 多核心处理器中的线程
- 8. 多核处理器上的Android错误
- 9. python多处理,管理器启动进程spawn循环
- 10. 在处理器内核上如何执行多个线程
- 11. 如何在多核处理器上进行基准测试
- 12. TPL如何在多核处理器中工作
- 13. 用批处理启动多个mp3?
- 14. 如何使用织物启动处理
- 15. 具有单核处理器和多核处理器的单线程代码的多线程代码
- 16. 用于多个数据容器的多核处理器
- 17. 确定多核处理器中特定内核的负载
- 18. 多核处理器核心通信速度
- 19. 如何从批处理文件启动多个sqlcmd窗口?
- 20. 如何在python中使用多处理启动守护进程
- 21. 如何检测冷启动与ARM处理器上的热启动?
- 22. IgniteCheckedException:无法启动处理器:GridProcessorAdapter []
- 23. 如何在新的shell中启动多处理器中的每个worker?
- 24. Apache Camel Multicast CBR不能与多核处理器一起使用处理器
- 25. 多呼叫体多核处理python
- 26. 处理json比csv多核多慢
- 27. 容器在加载启动之前如何处理servlet请求?
- 28. Erlang会自动为多个核心和多个处理器分配线程吗?
- 29. 使用多核处理器需要多线程算法吗?
- 30. 获取GNU Octave以使用多核处理器。 (多线程)
我会位数的也知道最初的OS(在硬件级别)如何确定有多少核心/封装/逻辑处理器 – PhiS 2010-10-30 12:14:22
@PhiS:它只是问道。查看cpuid ... – Bahbar 2010-10-31 08:41:11
@Bahbar如果系统中存在多个物理包,则由于您只收到包级别的信息(包内有多少个核心/日志处理器),所以@Bahbar CPUID不提供所有必要的信息。 – PhiS 2010-10-31 10:59:12