-
Gebiet der Erfindung
-
Die vorliegende Erfindung bezieht sich auf das Lesen von Kerndaten in einem Mehrkernsystem des Ringbustyps, in dem eine Arbeitsspeicherschnittstelle gemeinsam von mehreren CPU-Kernen (auch einfach als CPUs, Prozessoren oder Kerne bezeichnet) genutzt wird.
-
Hintergrund
-
In einer Mehrkern-CPU des Ringbustyps zum gemeinsamen Nutzen einer Arbeitsspeicherschnittstelle durch mehrere Kerne werden die Zugriffe auf einen Hauptarbeitsspeicher konzentriert. Im Normalbetrieb weist jeder CPU-Kern jeweils einen Cachespeicher auf, um Daten tatsächlich aus einem gemeinsam genutzten Hauptarbeitsspeicher zu lesen. Statt Daten aus einem Hauptarbeitsspeicher zu lesen, wird ein Verfahren zum Lesen von Daten aus Cachespeicherdaten, die in jedem CPU-Kern gespeichert sind, in Betracht gezogen.
-
Beispielsweise wird eine Leseanforderung von einem bestimmten CPU-Kern (der als „anfordernder Kern” (requester core) bezeichnet wird) ausgegeben. In einer herkömmlichen Mehrkernstruktur führt eine Hauptarbeitsspeicher-Steuereinheit Abfragen an die anderen CPU-Kerne über das Vorhandensein oder Nichtvorhandensein von Cachespeicherdaten durch, statt die Daten aus dem Hauptarbeitsspeicher zu lesen. Die CPU-Kerne, die die Abfragen empfangen, durchsuchen ihre Cachespeicher nach den Daten.
-
In einer Mehrkern-Betriebsumgebung ist es oft der Fall, dass ein beliebiger der CPU-Kerne in seinem Cachespeicher Daten derselben Adresse wie der Hauptarbeitsspeicher (als Adressdaten bezeichnet) enthält. In diesem Fall gibt es ein herkömmliches Verfahren, bei dem die Hauptarbeitsspeicher-Steuereinheit eine Anweisung an einen anfordernden Kern ausgibt, den Cachespeicherinhalt zu übertragen, sodass die Daten gesendet werden. Dieses Verfahren nimmt jedoch Zeit im Verhältnis zur Anzahl der gepackten Kerne in Anspruch, weil Abfragen an jeweilige Kerne der Reihe nach erfolgen müssen. Außerdem leiden die Abfragen an die jeweiligen CPU-Kerne unter einer hohen Belastung der Hauptarbeitsspeicher-Steuereinheit.
-
Nachfolgend wird ein Snooping nach Kohärenz beschrieben, um die Kohärenz von Daten sicherzustellen, die in jedem Cachespeicher in einer Struktur mit mehreren CPU-Kernen gehalten werden. In einem mit Cachespeichern ausgestatteten Mehrfachprozessor muss die Kohärenz von Daten aufrechterhalten werden, die beim Verarbeiten zwischen mehreren Prozessoren verwendet werden. Bus-Snooping wird oft verwendet, um die Kohärenz von Daten in herkömmlichen Prozessoren aufrechtzuerhalten. Beim Bus-Snooping handelt es sich um eine Funktion zum Überwachen von Transaktionen an einem Arbeitsspeicherschnittstellenbus, der gemeinsam von den jeweiligen Prozessoren genutzt wird, und zum Erkennen, ob eine Transaktion im Zusammenhang mit Daten in einem Cachespeicher stattfindet, der jedem Prozessor zugeordnet ist.
-
Wenn eine Transaktion im Zusammenhang mit Daten in dem Cachespeicher stattfindet, der einem bestimmten Prozessor zugeordnet ist, aktualisiert der Prozessor einen entsprechenden Eintrag in dem Cachespeicher. Jeder der anderen Prozessoren wird von dieser Aktualisierung durch Snooping benachrichtigt, für die in seinem Cachespeicher gespeicherten Daten einen Merker „verändert” (ein „dirty flag”) zu setzen, sodass die Daten nicht verwendet werden, wodurch Daten in dem gesamten Mehrfachprozessorsystem verwaltet werden.
-
Das Patentdokument 1 stellt einen mit einem Cachespeicher ausgestatteten Prozessor bereit, der in der Lage ist, die Kohärenz von Daten zwischen Prozessoren mit hervorragender betrieblicher Leistungsfähigkeit in einem Mehrfachprozessorsystem zu erhalten. Das Patentdokument beschreibt jedoch ein Modell, bei dem mehrere Prozessorkerne einen einzigen Cachespeicher aufweisen, was sich von einem Modell unterscheidet, bei dem die jeweiligen Prozessorkerne jeweilige Cachespeicher aufweisen.
-
Das Patentdokument 2 offenbart eine Technik, die mehrere Prozessorkerne verwendet, die jeweilige Cachespeicher aufweisen, um die in den jeweiligen Prozessorkernen enthaltenen Cachespeicherdaten wirksam zu nutzen. Diese Technik stellt ein Verarbeitungsverfahren dar, das verwendet wird, wenn ein Prozessorkern Daten von einem Hauptarbeitsspeicher abruft und ein anderer Prozessorkern dieselben Arbeitsspeicherdaten abruft.
-
Stand der Technik mit Fundstellen
-
Patentdokumente
-
-
Japanische Patentanmeldung, Veröffentlichungsnummer 2006-244460
-
Japanische Patentanmeldung, Veröffentlichungsnummer 2009-176179
-
Zusammenfassung der Erfindung
-
Von der Erfindung zu lösendes Problem
-
Patentdokumente oder dergleichen offenbaren, dass Snooping verwendet wird, um eine Aktualisierung für die Kohärenz von Adressdaten auszuführen. Beim Lesen mehrerer, in der Form eines Ringbus verbundener CPU-Kerne wird jedoch nicht jeder Kern für eine Bustransaktionsreferenz verwendet. Mit anderen Worten: Keine herkömmlichen Techniken erwähnen, dass beim Lesen von Adressdaten auf mehreren in Form eines Ringbus verbundenen CPU-Kernen jeder Kern Bustransaktionen „belauscht” (snoops).
-
Deshalb besteht eine Aufgabe der vorliegenden Erfindung darin, ein Mehrkernsystem des Ringbustyps zum gemeinsamen Nutzen einer Arbeitsspeicherschnittstelle durch mehrere Kerne sowie ein Datenleseverfahren durch jeden Kern bereitzustellen.
-
Mittel zum Lösen der Probleme
-
Um die obige Aufgabe zu lösen, stellt die vorliegende Erfindung ein Mehrkernsystem des Ringbustyps bereit, bei dem eine Arbeitsspeicherschnittstelle von mehreren Kernen gemeinsam genutzt wird und ein Kern (anfordernder Kern) eine Leseanforderung für in dem Arbeitsspeicher vorhandene Daten ausführt. Dieses Mehrkernsystem des Ringbustyps enthält einen Arbeitsspeicher, eine Hauptarbeitsspeicher-Steuereinheit zum Verbinden des Arbeitsspeichers mit einem Ringbus und mehrere Kerne, die in Form des Ringbus verbunden sind, wobei jeder der Kerne weiterhin eine Cachespeicher-Schnittstelle und eine Cachespeicher-Steuereinheit zum Steuern oder Verwalten der Schnittstelle aufweist und die Cachespeicher-Steuereinheit jeder der in Form des Ringbus verbundenen Kerne ausführt:
- (1) einen Schritt des Snoopings von Daten in der Anforderung über die Cachespeicher-Schnittstelle; und
- (2) wenn der Cachespeicher des Kerns die Daten enthält, einen Schritt des Steuerns des Kerns, um die Anforderung zu empfangen und die Daten an den anfordernden Kern zurückzusenden; oder
- (3) wenn der Cachespeicher des Kerns die Daten nicht enthält, führt die Hauptarbeitsspeicher-Steuereinheit einen Schritt des Lesens der Daten aus dem Arbeitsspeicher und des Sendens der Daten an den anfordernden Kern aus.
-
Um die obige Aufgabe zu lösen, stellt die vorliegende Erfindung ein Mehrkernsystem des Ringbustyps bereit, bei dem eine Arbeitsspeicherschnittstelle von mehreren Kernen gemeinsam genutzt wird und ein Kern (anfordernder Kern) eine Leseanforderung für in dem Arbeitsspeicher vorhandene Daten ausführt. Dieses Mehrkernsystem des Ringbustyps enthält einen Arbeitsspeicher, eine Hauptarbeitsspeicher-Steuereinheit zum Verbinden des Arbeitsspeichers mit einem Ringbus sowie mehrere in Form des Ringbus verbundene Kerne, wobei jeder der Kerne weiterhin eine Cachespeicher-Schnittstelle und eine Cachespeicher-Steuereinheit zum Steuern der Schnittstelle beinhaltet und die Hauptarbeitsspeicher-Steuereinheit weiterhin ein Verlaufsprotokoll der Daten beinhaltet, die in den Cachespeichern aller Kerne gehalten werden, und wobei als Antwort auf die Anforderung, die in einer vorgegebenen Pfadrichtung von dem anfordernden Kern zur Hauptarbeitsspeicher-Steuereinheit fließt, die Cachespeicher-Steuereinheit jedes der in der Form des Ringbus verbundenen Kerne ausführt:
- (1) einen Schritt des Snoopings von Daten in der Anforderung über die Cachespeicher-Schnittstelle; und
- (2) wenn der Cachespeicher des in der vorgegebenen Pfadrichtung verbundenen Kerns die Daten enthält, einen Schritt des Steuerns des Kerns, um die Anforderung zu empfangen und die Daten an den anfordernden Kern zurückzusenden; oder
- (3) wenn der Cachespeicher des in der vorgegebenen Pfadrichtung verbundenen Kerns die Daten nicht enthält, führt die Hauptarbeitsspeicher-Steuereinheit aus:
(a) sie nimmt auf das Verlaufsprotokoll jedes Kerns Bezug, und
(b) wenn ein beliebiger Kern, der in der Form des Ringbus in einer zur vorgegebenen Pfadrichtung entgegengesetzten Pfadrichtung verbunden ist, entsprechende Daten enthält, führt sie aus: einen Schritt des Sendens der Anforderung an den Kern und des Veranlassens der Cachespeicher-Steuereinheit des Kerns, die in dem Cachespeicher gehaltenen Daten an den anfordernden Kern zu senden; oder
(c) wenn kein Kern, der mit dem Ringbus in der zur vorgegebenen Pfadrichtung entgegengesetzten Pfadrichtung verbunden ist, entsprechende Daten enthält, einen Schritt des Lesens der Daten aus dem Speicher und des Sendens der Daten an den anfordernden Kern.
-
Ein Merkmal dieses Mehrkernsystems des Ringbustyps ist dergestalt, dass das Verlaufsprotokoll für jeden der Kerne einen Merker beinhaltet, der das Halten von Daten an der Adresse (Adressdaten) des Speichers anzeigt, sowie einen Schreibmerker in einen weiteren Kern.
-
Ein weiteres Merkmal dieses Mehrkernsystems des Ringbustyps ist dergestalt, dass die Cachespeicher-Steuereinheit als vorgegebene Pfadrichtung eine Pfadrichtung mit einer größeren Zahl von Kernen auswählt, die in zwei Pfadrichtungen vom anfordernden Kern aus mit der Hauptspeicher-Steuereinheit verbunden sind.
-
Noch ein weiteres Merkmal dieses Mehrkernsystems des Ringbustyps ist dergestalt, dass die Cachespeicher-Steuereinheit auf das Verlaufsprotokoll Bezug nimmt, um einen Verkehr des Ringbus anhand des Merkers für gehaltene Daten zu berechnen und eine Pfadrichtung mit weniger Verkehr als in der vorgegebenen Datenrichtung auszuwählen.
-
Noch ein weiteres Merkmal dieses Mehrkernsystems des Ringbustyps ist dergestalt, dass die Cachespeicher-Steuereinheit auf das Verlaufsprotokoll Bezug nimmt, um das Vorhandensein der Daten in einem Kern zu prüfen, der mit einem Pfad entgegengesetzt zu dem in der vorgegebenen Pfadrichtung verbunden ist.
-
Weiterhin stellt die vorliegende Erfindung zur Lösung der obigen Aufgabe ein Verfahren bereit, das einen Kern (anfordernder Kern) veranlasst, Daten zu lesen, die in einem Speicher einer Mehrkern-CPU des Ringbustyps vorhanden sind, um eine Arbeitsspeicherschnittstelle mit mehreren Kernen gemeinsam zu nutzen. In diesem Verfahren beinhaltet die Mehrkern-CPU einen Arbeitsspeicher, eine Hauptarbeitsspeicher-Steuereinheit zum Verbinden des Arbeitsspeichers mit einem Ringbus und den mehreren in der Form des Ringbus verbundenen Kernen, und jeder der Kerne beinhaltet ferner eine Cachespeicher-Schnittstelle und eine Cachespeicher-Steuereinheit zum Steuern oder Verwalten der Schnittstelle, und die Hauptarbeitsspeicher-Steuereinheit beinhaltet ferner ein Verlaufsprotokoll der in allen Kernen enthaltenen Daten, und als Antwort auf die Anforderung, die in einer vorgegebenen Pfadrichtung von dem anfordernden Kern zu der Steuereinheit fließt, beinhaltet die Cachespeicher-Steuereinheit jedes in der Form des Ringbus verbundenen Kerns:
- (1) einen Schritt des Snoopings von Daten in der Anforderung über die Cachespeicher-Schnittstelle; und
- (2) wenn der Cachespeicher des in der Pfadrichtung verbundenen Kerns die Daten enthält, einen Schritt des Steuerns des Kerns, um die Anforderung zu empfangen und die Daten an den anfordernden Kern zurückzusenden, oder
- (3) wenn der Cachespeicher des in der Pfadrichtung verbundenen Kerns die Daten nicht enthält, führt die Hauptarbeitsspeicher-Steuereinheit aus:
(a) sie nimmt auf das Verlaufsprotokoll jedes Kerns Bezug, und
(b) wenn ein beliebiger Kern, der in der Form des Ringbus in einer zur Pfadrichtung entgegengesetzten Pfadrichtung verbunden ist, entsprechende Daten enthält, führt sie aus: einen Schritt des Sendens der Anforderung an den Kern und des Veranlassens der Cachespeicher-Steuereinheit des Kerns, die in dem Cachespeicher gehaltenen Daten an den anfordernden Kern zu senden; oder
(c) wenn kein Kern, der in der Form des Ringbus in der zur Pfadrichtung entgegengesetzten Pfadrichtung verbunden ist, entsprechende Daten enthält, einen Schritt des Lesens der Daten aus dem Arbeitsspeicher und des Sendens der Daten an den anfordernden Kern.
-
Vorteile der Erfindung
-
Wie oben beschrieben, können gemäß der vorliegenden Erfindung die Belastung der Hauptarbeitsspeicher-Steuereinheit und die für alle Arbeitsspeicherzugriffe erforderliche Gesamtzeit in dem Mehrkernsystem des Ringbustyps zum gemeinsamen Nutzen eines Hauptarbeitsspeichers verringert werden.
-
Kurzbeschreibung der Zeichnungen
-
1 zeigt die allgemeine Struktur eines Mehrkernsystems des Ringbustyps zum gemeinsamen Nutzen einer Arbeitsspeicherschnittstelle durch mehrere Kerne;
-
2 zeigt eine Cachespeicher-Schnittstelle 2 in jedem CPU-Kern und eine Lese-/Schreibanforderungs-Schnittstelle 3 zum Hauptarbeitsspeicher;
-
3 gibt durch die Pfeile der Schritte (1) bis (5) einen Fluss von Datenlesetransaktionen in der allgemeinen Struktur des Mehrkernsystems des Ringbustyps an;
-
4 ist ein Ablaufplan, der die Datenleseschritte (1) bis (5) der vorliegenden Erfindung darstellt; und
-
5 zeigt den Inhalt eines Zugriffsverlaufsprotokolls jedes Kerns, das in einer Hauptarbeitsspeicher-Steuereinheit gehalten wird.
-
Ausführungsform der Erfindung
-
Beschrieben wird ein Lesen von Daten in einem Mehrkernsystem des Ringbustyps zum gemeinsamen Nutzen einer Arbeitsspeicherschnittstelle durch mehrere CPU-Kerne gemäß einer bevorzugten Ausführungsform (nachfolgend einfach die „Ausführungsform” genannt) der vorliegenden Erfindung. Zu beachten ist, dass es sich bei der folgenden Ausführungsform um ein veranschaulichendes Beispiel handelt, das den Inhalt der vorliegenden Erfindung nicht einschränken soll.
-
Ein Chip mit einem darauf gepackten Mehrkernsystem des Ringbussystems beinhaltet das Folgende:
- 1. Jeder CPU-Kern ist mit einer Cachespeicher-Schnittstelle ausgestattet. Diese Schnittstelle ermöglicht es einer Steuereinheit auf der Seite des Hauptarbeitsspeichers und jedem Kern, den Inhalt eines Cachespeichers in einem anderen Kern direkt zu lesen. Bei dem Inhalt eines Cachespeichers handelt es sich um Daten fester Länge, die durch eine Adresse des Hauptarbeitsspeichers (als Adressdaten bezeichnet) festgelegt sind.
- 2. Die Hauptarbeitsspeicher-Steuereinheit enthält den Inhalt der Cachespeicher aller CPU-Kerne als Verlaufsprotokoll (als Adressenverlaufsprotokoll bezeichnet). Wie in 5 gezeigt, speichert das Adressenverlaufsprotokoll das Vorhandensein oder Nichtvorhandensein von Cachespeicher-Adressdaten in jedem Kern.
-
1 zeigt die allgemeine Struktur eines Mehrkernsystems des Ringbustyps zum gemeinsamen Nutzen einer Arbeitsspeicherschnittstelle durch mehrere Kerne.
- 1. Eine Hauptarbeitsspeicher-Steuereinheit 7 verwaltet in einem Zugriffsverlaufsprotokoll ein Protokoll von Speicherzugriffs-Statuswerten von jedem Kern 6. Das Zugriffsverlaufsprotokoll belegt, welcher CPU-Kern welche Adressdaten in seinem Cachespeicher aufweist.
- 2. Jeder CPU-Kern 6 ist mit einer Cachespeicher-Steuereinheit ausgestattet, um es der Hauptarbeitsspeicher-Steuereinheit 7 zu ermöglichen, den Inhalt eines Cachespeichers 11 zu lesen.
-
Ein bestimmter CPU-Kern gibt eine Anforderung an die Hauptarbeitsspeicher-Steuereinheit zum Lesen bestimmter Adressdaten aus. Dieser CPU-Kern wird als anfordernder Kern bezeichnet. Die Cachespeicher-Steuereinheit 11 jedes der Kerne, die bis zur Hauptarbeitsspeicher-Steuereinheit 7 mit dem Ringbus verbunden sind, „lauscht” an dem Inhalt der ankommenden Leseanforderung. Wenn er entsprechende Daten in seinem Cachespeicher 11 aufweist, nimmt jeder Kern die Anforderung auf und sendet die Daten an den anfordernden Kern zurück.
-
Als Erstes sei angenommen, dass kein CPU-Kern 6 auf dem Weg (erster Pfad) zu einem Hauptarbeitsspeicher 10 entsprechende Daten aufweist. In diesem Fall empfängt die Hauptarbeitsspeicher-Steuereinheit 7 die Anforderung und nimmt auf ein Zugriffsverlaufsprotokoll 8 jedes Kerns Bezug. Als Nächstes sei angenommen, dass ein CPU-Kern 6, der an einer Seite des Rings (zweiter Pfad) entgegengesetzt zu der Richtung, aus der die Anforderung kommt, verbunden ist, die entsprechenden Daten aufweist. In diesem Fall wird die Leseanforderung an einen Cachespeicher 11 an den CPU-Kern 6, der die Adressdaten aufweist, statt an den Hauptarbeitsspeicher 10 ausgegeben.
-
Auf dem ersten Pfad sendet die Cachespeicher-Steuereinheit die Adressdaten aus dem Cachespeicher 11 des CPU-Kerns über eine Cachespeicher-Schnittstelle 2. Ein Snooping durch diese Steuereinheit bewirkt, dass der anfordernde Kern 6 so aussieht, als ob er die Leseanforderung an den Kern ausgegeben habe, der die Adressdaten aufweist. In diesem Fall können die Leseadressdaten an den anfordernden Kern gesendet werden, ohne über die Hauptarbeitsspeicher-Steuereinheit 7 zu gehen.
-
Auf dem zweiten Pfad gibt die Hauptarbeitsspeicher-Steuereinheit vor, der anfordernde Kern zu sein, um die Leseanforderung direkt an den Cachespeicher jedes Kerns auszugeben. In diesem Fall wird jedem der CPU-Kerne (dem anfordernden Kern und den Kernen, die zu lesende Cachespeicher aufweisen) keine zusätzliche Belastung auferlegt. Das Verfahren der vorliegenden Erfindung ist wirksam im Hinblick auf die Verringerung bei der Belastung der Hauptarbeitsspeicher-Steuereinheit (die Wirkung des Verringerns der Belastung des Hauptarbeitsspeichers auf dem ersten Pfad) und der Verringerung bei der Zeit, die für Arbeitsspeicherzugriffe in allen Kernen erforderlich ist (die Wirkung des Verringerns der Belastung jedes Kerns auf dem zweiten Pfad).
-
2 zeigt eine Cachespeicher-Schnittstelle 2 in jedem CPU-Kern und eine Lese-/Schreibanforderungs-Schnittstelle 3 zum Hauptarbeitsspeicher. Diese Idee wird auf der Grundlage einer Struktur betrachtet, in der mehrere CPU-Kerne auf einem Chip gepackt sind und ein Arbeitsspeicher über die Hauptarbeitsspeicher-Steuereinheit verbunden ist. Jeder CPU-Kern und die Hauptarbeitsspeicher-Steuereinheit sind durch einen Kohärenz aufweisenden Ringbus verbunden. Jeder CPU-Kern ist mit der Cachespeicher-Schnittstelle 2 und der Schnittstelle 3 ausgestattet, über die der CPU-Kern auf den Hauptarbeitsspeicher zugreift. Zu beachten ist, dass die beiden Schnittstellen 2 und 3 nicht notwendigerweise getrennt bereitgestellt werden. Beispielsweise kann die Schnittstelle 3 als die beiden Schnittstellen dienen. Die Trennung der Schnittstellen für jeden Kern, um an einer Spur des Ringbus zu „lauschen” und den Hauptarbeitsspeicher aufzufordern, Daten zu lesen/schreiben, kann eine Verzögerung in jedem Prozess vermeiden.
-
3 gibt durch die Pfeile der Schritte (1) bis (5) die Reihenfolge von Flüssen von Datenlesetransaktionen in der allgemeinen Struktur des Mehrkernsystems des Ringbustyps an. 4 ist ein Ablaufplan, der die Datenleseschritte (1) bis (5) als typisches Beispiel der vorliegenden Erfindung darstellt.
- (1) Ein CPU-Kern X gibt einen Lesebefehl an die Hauptarbeitsspeicher-Steuereinheit aus. Es wird angenommen, dass ein naher Pfad als der erste Pfad ausgewählt wird. In diesem Fall wird die Auswahl entweder des nahen Pfades oder des fernen Pfades als Abstand zur Hauptarbeitsspeicher-Steuereinheit von der Cachespeicher-Steuereinheit des anfordernden Kerns unter Berücksichtigung von Faktoren entschieden, zu denen der Verkehr und dergleichen gehören:
– Ein kurzer Abstand führt zu weniger CPU-Kernen, durch die der Pfad zur Hauptarbeitsspeicher-Steuereinheit gelenkt wird.
– Ein langer Abstand führt zu mehr CPU-Kernen, durch die der Pfad gelenkt wird und von denen der Pfad „abgelauscht” wird, wodurch die Wahrscheinlichkeit von Übereinstimmungen erhöht wird.
- (2) Der CPU-Kern Y und der CPU-Kern Z „lauschen” Zugriffe ab. Wenn einer der CPU-Kerne entsprechende Daten aufweist, empfängt der CPU-Kern die Anforderung und sendet die Daten an den CPU-Kern X zurück, und danach sendet die Hauptarbeitsspeicher-Steuereinheit den Inhalt der Anforderung mit einem daran angebrachten Merker zurück, um anzuzeigen, dass der CPU-Kern selbst wünscht, die Verarbeitung auszuführen. Nach dem Empfang aktualisiert die Hauptarbeitsspeicher-Steuereinheit das Zugriffsverlaufsprotokoll des Cachespeichers. Wenn beispielsweise der CPU-Kern Z die entsprechenden Daten aufweist, sendet der CPU-Kern Z die Daten an die CPU X zurück.
- (3) Wenn der CPU-Kern Y und der CPU-Kern Z die angeforderten entsprechenden Daten nicht aufweisen, empfängt die Hauptarbeitsspeicher-Steuereinheit die Anforderung. Die Hauptarbeitsspeicher-Steuereinheit nimmt Bezug auf das Zugriffsverlaufsprotokoll, d. h., sie nimmt Bezug auf ein Protokoll der Arbeitsspeicherzugriffe jedes CPU-Kerns, um zu überprüfen, ob die CPU-Kerne A bis W an gegenüberliegenden Busseiten (zweiter Pfad) entsprechende Adressdaten in ihren Cachespeichern aufweisen.
- (4) Beispielsweise sei angenommen, dass das Zugriffsverlaufsprotokoll angibt, dass der CPU-Kern B entsprechende Daten in seinem Cachespeicher aufweist. In diesem Fall sendet die Hauptarbeitsspeicher-Steuereinheit den Lesebefehl an die Cachespeicher-Steuereinheit von CPU-Kern B anstelle der Leseanforderung von CPU-Kern X. Von der Cachespeicher-Schnittstelle von CPU-Kern B aus betrachtet sieht das so aus, als ob der CPU-Kern B die Leseanforderung direkt vom CPU-Kern X empfangen habe.
- (5) Die Cachespeicher-Steuereinheit von CPU-Kern B sendet die Adressdaten an CPU-Kern X. Der CPU-Kern X empfängt Informationen vom CPU-Kern B als Daten als Antwort auf den Lesebefehl, der an die Hauptarbeitsspeicher-Steuereinheit ausgegeben wurde.
-
5 zeigt den Inhalt des Zugriffsverlaufsprotokolls jedes Kerns, das in einer Hauptarbeitsspeicher-Steuereinheit gehalten wird. Dieses Verlaufsprotokoll wird von der Hauptarbeitsspeicher-Steuereinheit gehalten, um aufzuzeichnen, ob jeder der Kerne A bis Z Daten an der Adresse des Hauptarbeitsspeichers (Adressdaten) in seinem Cachespeicher enthält. Die Adressdaten weisen normalerweise eine feste Länge auf. Wenn ein Schreibmerker gleich „Y” („Ja”) ist, bedeutet dies, dass Anforderungsdaten in den anfordernden Kern X geschrieben wurden. Zu dieser Zeit „lauscht” die Cachespeicher-Schnittstelle von Kern B die Transaktionen auf dem Ringbus ab, um zu bestätigen, dass Kern B selbst die Adressdaten von Kern X enthält. Da Kern B direkt auf die Leseanforderung von Kern X antwortet, kann der Eingriff der Hauptarbeitsspeicher-Steuereinheit entfallen, wodurch die Leseleistung verbessert wird. Nachdem Kern B das Verarbeiten zum Senden von Daten an den anfordernden Kern X abgeschlossen hat, aktualisiert die Hauptarbeitsspeicher-Steuereinheit das Zugriffsverlaufsprotokoll.
-
In Schritt 3 von 4 prüft die Hauptarbeitsspeicher-Steuereinheit in einer Zugriffsverlaufstabelle, ob ein beliebiger der Cachespeicher der Kerne A bis W auf der gegenüberliegenden Seite des Bus die angeforderten Daten enthält. Durch Bezugnahme auf die Zugriffsverlaufstabelle kann die Hauptarbeitsspeicher-Steuereinheit früher in der Mitte des zweiten Pfads bestätigen, dass der Cachespeicher von Kern B Adressdaten 01 enthält. Die Steuereinheit sendet die Leseanforderung und einen Befehl an Kern B, Daten an Kern X zu senden.
-
Die Merkmale der vorliegenden Erfindung sind wie folgt: Zunächst wird, da das direkte Lesen in jedem Cachespeicher selbst statt in jedem CPU-Kern ermöglicht wird, keine Belastung auf jede CPU ausgeübt. Da jeder Kern an dem Bus zum Hauptarbeitsspeicher „lauscht” und direkt Daten zurücksendet, können durch den Ringbus fließende Transaktionen entfallen, wodurch eine Verkehrsüberlastung vermieden wird. Weiterhin kann, wenn die Hauptarbeitsspeicher-Steuereinheit ein Lesen im Cachespeicher eines anderen Kerns ausführt, da die Antwort direkt an den anfordernden Kern übergeben wird, sogar die Anzahl der Transaktionen über die Hauptarbeitsspeicher-Steuereinheit verringert werden. Mit anderen Worten: Die Anzahl der Transaktionen ist kleiner als diejenige durch ein Verfahren, bei dem die Seite der Hauptarbeitsspeicher-Steuereinheit einmalig ein Lesen aus dem Cachespeicher jedes CPU-Kerns ausführt und nach dem Empfangen von Daten die gelesenen Daten an die CPU zurücksendet.
-
In einem Mehrkern-CPU-System der vorliegenden Erfindung kann die Überlastung des Verkehrs zur Hauptarbeitsspeicher-Steuereinheit, auf der die Anzahl der Zugriffe als hoch vorausgesehen wird, vermieden werden. Es ist vorgesehen, dass, je höher die Anzahl von CPU-Kernen ist, desto größer die Wirkung der vorliegenden Erfindung ist. Beispielsweise wird ein CPU-Gestaltungsplan als Mehrkern-CPU mit 128 Kernen oder dergleichen als Power-PC-Architektur vorgeschlagen. Gemäß der vorliegenden Erfindung wird die Wirkung in einer Mehrkernarchitektur angewendet, in der die Anzahl der Kerne besonders groß ist.
-
Bezugszeichenliste
-
- 1
- Cachespeicher-Schnittstelle
- 2
- Lese-/Schreibschnittstelle zum Hauptarbeitsspeicher
- 5
- Ringbus
- 6
- CPU-Kern
- 7
- Hauptarbeitsspeicher-Steuereinheit
- 8
- Zugriffsverlaufsprotokoll
- 9
- Logik
- 10
- Hauptarbeitsspeicher (Realspeicher)
- 11
- Cachespeicher oder Cachespeicher-Steuereinheit
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- JP 2006-244460 [0009]
- JP 2009-176179 [0009]