0

SMPシステムでカーネルを起動すると、CPU0はカーネルコードを起動します。メインメモリでは、CPUxがWFI状態のときに、CPU0に固有のキャッシュとMMUが初期化されます。cpu_up(x)がCPU0から送信されると、各CPUxが初期化され、secondary_startupが呼び出されます。ここで、CPUxに固有のメインメモリ、キャッシュ、およびMMUが再び初期化されます。

これで、コアごとに異なる可能性のあるアバットキャッシュがわかりましたが、コアごとにメインメモリとMMUもありますか?聞いたことがない。ここで正確に何が起こり、メインメモリとMMUの分割はCPU間でどのように行われますか?

4

1 に答える 1

2

SMPシステム(または今日のx86 CPUのようなNUMAシステム)では、すべてのメモリにすべてのCPUがアクセスできます。したがって、CPU0はすべてのメモリを初期化できます。

CPU固有の初期化の余地はまだあります。

  1. 各CPUは、効率的な割り当てのために、それ自体に小さなメモリプールを割り当てる場合があります。
  2. ハードウェアをページングテーブルに転送する制御レジスタは、各CPUに設定する必要があります。
  3. TLB(ハードウェアのアドレス変換キャッシュ)のセットアップまたはフラッシュが必要になる場合があります。
于 2012-09-21T20:52:25.250 に答える