【问题标题】:How can we use multi core and cpu on Assembly boot loader x86我们如何在 Assembly 引导加载程序 x86 上使用多核和 cpu
【发布时间】:2014-10-19 15:57:20
【问题描述】:

我正在阅读制作您的新操作系统文档,如下所示: http://joelgompert.com/OS/TableOfContents.htm

这些示例展示了如何为 x86 制作引导加载程序。 但我不知道如何使它并发? 是否有任何文件解释如何运行所有核心? 我怎样才能激活所有的核心并运行 asm 将它们分开。

也有 ARM CPU 的文档吗? 或者有人可以在这里详细解释一下吗?

【问题讨论】:

标签: assembly operating-system bootloader


【解决方案1】:

并非所有 CPU 类型都完全一样(即使只是在 x86 中,当然在不同架构上更根本不同)。

忽略古老的硬件,x86上的程序粗略:

  • 准备系统以启动其他 cpu(一开始只有 1 个内核处于活动状态)(解析 MP 表,初始化 APIC,做一些你需要的事情)
  • 发送 SIPI
  • 等一下
  • 发送第二个 SIPI(也许,不确定它的必要性)
  • 等一下
  • 让其他 AP 增加一个计数器,这样您就知道有多少人醒来了
  • 等到启动的 AP 数量达到您的预期(基于 MP 表中找到的核心数量)

请参阅英特尔系统编程指南第 8 章(多处理器管理)以获得更彻底和正确的过程。

【讨论】:

    【解决方案2】:

    这是来自“ALLAN CRUSE”的一个示例,它展示了如何启动 x86 内核:http://www.cs.usfca.edu/~cruse/cs630/mphello.s

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-12
      • 2016-12-02
      • 2012-03-02
      • 2016-02-09
      相关资源
      最近更新 更多