系统启动时哪个核心首先初始化?

2023-12-30

我想知道CPU启动时多核处理器的哪个核心首先初始化? (我的意思是在引导加载程序级别)是第一个核心?还是随机核心?


您想要阅读本地 apic,您可以在“卷 2a”中阅读:

http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html

每个处理器都有一个相应的本地 apic,在每个本地 apic 中都有一个 apic ID 寄存器,它在系统初始化时被分配一个唯一的值。

上线的初始核心称为引导处理器 (BSP),实际上可以是芯片上的任何物理核心。更多信息位于“第 3a 卷”中,其中讨论了引导处理器选择过程。

以下是 vol3a 的摘录:

8.4.1 BSP 和 AP 处理器

MP 初始化协议定义了两类处理器:引导处理器 (BSP) 和应用处理器 (AP)。 MP 系统上电或复位后,系统硬件会动态选择系统总线上的处理器之一作为 BSP。其余处理器被指定为 AP。

作为 BSP 选择机制的一部分,BSP 标志在 BSP 的 IA32_APIC_BASE MSR(见图 10-5)中设置,表明它是 BSP。对于所有其他处理器,该标志被清除。

BSP 执行 BIOS 的引导代码来配置 APIC 环境、设置系统范围的数据结构以及启动和初始化 AP。当 BSP 和 AP 初始化时,BSP 然后开始执行操作系统初始化代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

系统启动时哪个核心首先初始化? 的相关文章

  • 不使用预定义函数在汇编中打印字符串

    我必须在汇编中定义一个函数 该函数允许我循环遍历声明的字节字符串并使用 BIOS 中断打印它们 我处于 16 位实模式 这是一个根据教科书编写一个小引导加载程序的练习 但看起来这只是一个草稿 并且缺少一些东西 我得到了以下代码 org 0x
  • 编译器实际上会生成机器代码吗?

    我一直在读到 在大多数情况下 如 gcc 编译器以高级语言读取源代码并吐出相应的机器代码 现在 机器代码的定义是处理器可以直接理解的代码 因此 机器代码应该仅依赖于机器 处理器 且独立于操作系统 但这种情况并非如此 即使 2 个不同的操作系
  • Android:您的CPU不支持VT-x

    您的 CPU 不支持 VT x 运行此 AVD 需要 Intel HAXM 您的 CPU 不支持 VT x 不幸的是 您的计算机不支持硬件加速虚拟化 以下是您的一些选择 1 使用物理设备进行测试 2 在具有支持VT x和NX的Intel处理
  • 使用javascript检测设备CPU/GPU性能?

    这个问题并不特定于 Three js 但我会用它作为例子 我最近一直在使用 Three js 开发 Web 应用程序界面 并在 WebGL 和 Canvas 渲染器 针对桌面浏览器 之间编写了一些不错的后备程序 但现在的问题变成了如何正确检
  • FreeBSD v8.1 上的 /proc/cpuinfo 相当于什么?

    相当于Linux的什么 proc cpuinfo在 FreeBSD v8 1 上 我的应用程序读取 proc cpuinfo并将信息保存在日志文件中 我该怎么做才能在 FreeBSD 上记录类似的信息 一个样品 proc cpuinfo看起
  • 执行长字传输到 CPU 需要多少个周期和大小

    该任务针对架构 ColdFire 处理器 MCF5271 我不明白执行到 CPU 的长字传输或字传输需要多少个周期以及什么大小的周期 我正在阅读图表 但不明白其中有何联系 非常感谢任何评论 我附上了两个例子和答案 数据总线大小 https
  • 为什么CPU负载的变化不会超过百分之几?

    我正在运行这个命令 grep cpu proc stat awk usage 2 4 100 2 4 5 END print usage 但它只输出 0 99xxxx 之类的东西 如果我进行 apt get 升级或任何过程 我想它会超过 1
  • 使用 int 13h 读取的扇区数量多于磁道上的扇区数量

    顺序是什么int 13h with ah 02h会读19部门起始于 C H S 0 0 1 提供了 2 个磁头 每磁道 18 个扇区 每面 80 个磁道的 软盘 磁盘几何结构 或者 更一般地说 当它到达磁道 0 的末尾 磁头 0 时会发生什
  • 检索 Windows Vista 及更高版本上 BootMgr 的分区号

    我需要将启动管理器映射到分区号 Manufacturer Recovery partition Partition 0 Boot manager Partition 1 C Partition 2 D Partition 3 对于已安装的分
  • Tensorflow 相同的代码,但从 CPU 设备到 GPU 设备得到不同的结果

    我正在尝试实现一个程序来测试 GPU 设备上的 Tensorflow 性能 数据测试是MNIST数据 使用多层感知器 神经网络 进行监督训练 我跟着这个简单的例子 http gist github com nishidy 8176548ec
  • 多处理和并行处理之间的比较

    有人能告诉我多处理和并行处理之间的确切区别吗 我有点困惑 感谢您的帮助 多重处理 多重处理是使用两个或多个中央处理单元 单个计算机系统中的 CPU 该术语还指 系统支持多个处理器和 或的能力 在他们之间分配任务的能力 并行处理 在计算机中
  • 哪个更快:x<<1 或 x<<10?

    我不想优化任何东西 我发誓 我只是出于好奇而想问这个问题 我知道在大多数硬件上都有位移位的汇编命令 例如shl shr 这是一个单一命令 但移位多少位 从纳秒角度或从 CPU 角度角度 是否重要 换句话说 以下任一选项在任何 CPU 上都更
  • 单核上的多线程有什么意义?

    我最近一直在研究 Linux 内核 并回顾了大学操作系统课程的时代 就像那时一样 我正在玩线程之类的东西 一直以来我一直假设线程是自动在多个核心上同时运行但我最近发现您实际上必须显式编写代码来处理多个核心 那么单核上的多线程有什么意义呢 我
  • java中获取某些进程的cpu使用率的正确命令行是什么

    给定进程 ID 在 Java 中从进程获取当前 cpu 使用情况的正确命令是什么 命令 typeperf Memory Available bytes processor total process time 不适用于特定进程 并且任何第
  • 如何获取 Java7 应用程序的 CPU、RAM 和网络使用情况

    我找到了这篇旧文章如何在 Java 中监控计算机的 cpu 内存和磁盘使用情况 https stackoverflow com questions 47177 how to monitor the computers cpu memory
  • 增加 C++ 程序 CPU 使用率

    我有一个用 C 编写的程序 每秒运行多个 for 循环 而不使用任何会使其因任何原因等待的东西 它始终使用 2 10 的 CPU 有没有什么方法可以强制它使用更多的CPU并进行更多的计算而不使程序变得更复杂 此外 我在 Windows 计算
  • 大师系统要求

    我们将使用 Virtuoso 来存储 RDF 三重计数一开始将为 1 亿 我需要知道典型的 RAM CPU 磁盘等应该是什么 查询将使用 SPARQL 并且查询会有点复杂 请提供您的意见 Virtuoso 版本 6 x 三元组 四元组 的平
  • 普通的 x86 或 AMD PC 是直接从 ROM 运行启动/BIOS 代码,还是先将其复制到 RAM? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我知道现代计算机已经修改了哈佛架构 它们可以从保存数据的地方以外的地方读取指令 这一事实是否允许它们直接从 ROM 芯片获取指令 他们是先
  • 获取总体 CPU 百分比使用率的可能性有哪些

    我有以下问题 在UWP中 我们如何获取总体CPU使用率 RAM使用率 可用RAM 正在运行的进程等 UWP 中的任务管理器需要它 您好 经过一番查看后 您似乎无法获得设备 CPU RAM 和可用 RAM 或正在运行的进程 您可以获得 CPU
  • C#中为线程指定特殊的cpu

    我有 2 个线程 我想告诉其中一个在第一个 cpu 上运行 第二个在第二个 cpu 上运行 例如在具有两个 cpu 的机器中 我怎样才能做到这一点 这是我的代码 UCI UCIMain new UCI Thread UCIThread ne

随机推荐