Klaus schrieb:
> Genau dafür brauche ich die Synchronisation. Das Problem so wie es sich
> für mich darstellt ist, dass sowohl globale wie "private" Komponenten
> initialisiert werden müssen.
Richtig.
> Globale Komponenten sind von allen Cores zugreifbar (z.B. der
> Interrupt-Controller), die privaten eben nur von
> dem jeweiligen Core (z.B. die MMU). Während beispielsweise der
> "Hauptprozessor" eine globale Komponente initialisiert, sollen die
> anderen Cores warten bis dies abgeschlossen ist.
CPU1-n: Initialisiert sich selbst und wartet dann auf Interrupt.
CPU0: Initialisiert sich selbst und das System. Sendet Interrupt wenn
fertig
Wenn man eine CPU designiert, die garantiert als letztes fertig wird,
dann ist die Synchronisation nicht so umständlich.
> Ich bin mir nicht sicher, ob das nötig ist, könnte mir aber gut vorstellen
> "wunderliche Effekte" zu bekommen wenn ein Core den globalen L2 Cache
> initialisiert während die anderen an ihrer MMU herumkonfigurieren.
Solange sie die MMU nicht einschalten, bzw. den Speicher als
non-cacheable markieren, sollte auch das kein Problem sein. In einem SMP
Verbund wird man typischerweise dieselben page tables verwenden, so dass
die MMU Konfiguration ebenfalls von einem einzigen Prozessor übernommen
wird.
Nur aus Neugier: Um was für einen Core handelt es sich?
Gruß
Marcus