当我们在SMP系统上启动内核时,CPU0启动内核代码,在主内存中,特定于CPU0的缓存和内存管理单元被初始化,而CPUx处于WFI状态。当从CPU0发送cpu_up(x)时,然后初始化每个CPUx,并调用secondary_startup,在此再次初始化CPUx专用的主存储器、高速缓存和MMU。
现在我知道缓存对于不同的内核可能是不同的,但是我们是否也有用于不同内核的主内存和MMU?我从来没有听说过它。这里到底发生了什么,CPU之间如何划分主内存和MMU?
发布于 2012-09-22 04:52:25
在SMP系统(或者像今天的x86 CPU这样的NUMA系统)中,所有的内存都可以被所有的CPU访问。所以CPU0可以初始化所有的内存。
CPU特定的初始化仍有空间:
https://stackoverflow.com/questions/12536051
复制相似问题