首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SMP系统的内核初始化

SMP系统的内核初始化
EN

Stack Overflow用户
提问于 2012-09-22 02:20:31
回答 1查看 1K关注 0票数 0

当我们在SMP系统上启动内核时,CPU0启动内核代码,在主内存中,特定于CPU0的缓存和内存管理单元被初始化,而CPUx处于WFI状态。当从CPU0发送cpu_up(x)时,然后初始化每个CPUx,并调用secondary_startup,在此再次初始化CPUx专用的主存储器、高速缓存和MMU。

现在我知道缓存对于不同的内核可能是不同的,但是我们是否也有用于不同内核的主内存和MMU?我从来没有听说过它。这里到底发生了什么,CPU之间如何划分主内存和MMU?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-22 04:52:25

在SMP系统(或者像今天的x86 CPU这样的NUMA系统)中,所有的内存都可以被所有的CPU访问。所以CPU0可以初始化所有的内存。

CPU特定的初始化仍有空间:

  1. 每个CPU可以为它自己分配一个小的内存池,以便有效地将硬件引导到分页表。
  2. 可能需要设置或刷新TLB(硬件的地址转换缓存)。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12536051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档