Multicore und Synchronisation
Warum wird in Systemen mit vielen Kernen statt des Snooping-Verfahrens Kohärenz nach dem Directory-Verfahren verwendet?
- AWeil sich die Kommunikation verringern lässt, indem festgehalten wird, welcher Kern welche Zeile besitzt, und nur die betroffenen Kerne benachrichtigt werden
- BWeil beim Directory-Verfahren kein Cache nötig ist
- CWeil beim Directory-Verfahren bei jedem Schreiben alle Kerne benachrichtigt werden können
Antwort und Erläuterung anzeigen
Antwort: A. Weil sich die Kommunikation verringern lässt, indem festgehalten wird, welcher Kern welche Zeile besitzt, und nur die betroffenen Kerne benachrichtigt werden
Beim Directory-Verfahren wird für jede Zeile eine Tabelle (Directory) geführt, in der festgehalten ist, welche Kerne Kopien besitzen und in welchem Zustand. Bei einem Schreibvorgang werden anhand des Directory Invalidierungsanforderungen nur an die Kerne mit Kopien gesendet. Da dies weniger Kommunikation erfordert als Snooping, bei dem alle Caches gleichzeitig informiert werden, wird es z. B. bei Server-CPUs mit mehreren zehn und mehr Kernen verwendet.