当我们在SMP系统上启动内核时,CPU0启动内核代码,在CPUx处于WFI状态时,主内存,缓存和CPU0特定的MMU被硝化。当从CPU0发送cpu_up(x)时,每个CPUx然后被初始化并调用secondary_startup,其中再次初始化特定于CPUx的主存储器,高速缓存和MMU。
现在我知道对于不同的核心可以有不同的高速缓存但我们有不同核心的主存和MMU吗?我从来没听说过。这里究竟发生了什么以及如何在CPU之间发生主存和MMU的划分?
答案 0 :(得分:2)
在SMP系统(或像今天的x86 CPU这样的NUMA系统)中,所有CPU都可以访问所有内存。所以CPU0可以初始化所有内存。
仍有进行CPU特定初始化的空间: