-
QUERVERWEIS ZU VERWANDTEN ANMELDUNGEN
-
Diese Anmeldung beansprucht die Priorität nach 35 U.S.C. § 119(e) der U.S.-Provisional-Patentanmeldung Nr. 62/187,365, die am 1. Juli, 2015 eingereicht wurde und unter 35 U.S.C. § 119(a) die Priorität auf die
koreanische Patentanmeldung Nr. 10-2016-0021651 , die am 24. Februar 2016 eingereicht wurde, deren Inhalt hiermit durch Bezug hierin aufgenommen wird.
-
HINTERGRUND
-
Ausführungsformen des erfinderischen Konzepts betreffen cache-kohärente Systeme, und insbesondere cache-kohärente Systeme, die einen master-seitigen Filter umfassen, der in der Lage ist, eine Sicherheitsüberprüfung durchzuführen. Ausführungsformen des erfinderischen Konzepts betreffen auch Datenverarbeitungssysteme, die wenigstens ein cache-kohärentes System umfassen, die einen master-seitigen Filter umfassen, der in der Lage ist, eine Sicherheitsüberprüfung durchzuführen.
-
”Cache-Kohärenz” oder ”kohärente(r/s) Cache-...” ist ein Begriff, der verwendet wird, um eine Konsistenz von Daten und/oder Daten-Operationen zwischen zwei oder mehreren lokalen Caches zu beschreiben, die jeweils in Clients (oder Prozessoren) in einem geteilten Speichersystem enthalten sind. Wenn jeder der Clients seinen eigenen lokalen Cache umfasst und mehrere Clients sich einen oder mehrere Speicher teilen, kann das Problem der Cache-Kohärenz auftreten, da ein oder mehrere zugeordnete Cache-Speicher, die mit einem oder mehreren Clients zugeordnet sind, aktualisiert werden.
-
Zuvor, wenn ein Cache-Kohärenz-Probleme auftraten (oder auftreten könnten), kann das geteilte Speichersystem bestimmte Operationen ausführen zum Erreichen von Cache-Kohärenz oder zum Verhindern von Verlust von Cache-Kohärenz. Dementsprechend kann sich, wenn das gemeinsam genutzte Speichersystem Daten in eine gemeinsam genutzte Speicherressource schreibt (beispielsweise in einen Cache), die Gesamtlatenzzeit des Schreibvorgangs erhöhen.
-
Beispielhaft wird angenommen, dass ein System umfasst; eine cache-kohärente Schnittstelle, eine zentrale Verarbeitungseinheit (CPU), die mit der Cache-kohärenten Schnittstelle verbunden ist, und eine Graphikverarbeitungseinheit (GPU), die mit der Cache-kohärenten Schnittstelle verbunden. Es wird ferner angenommen, dass die CPU, die in einem nicht-sicheren Modus arbeitet, eine Snoop-Anfrage an die GPU ausgibt und ein Cache-Treffer für einen Cache der GPU auftritt. Als Ergebnis kann eine Cache-Zeile (d. h. Cache-Daten), die in dem Cache gespeichert ist, zurück an eine mit dem System verbundene externe Speichervorrichtung geschrieben werden. Nachdem die Rückschreiboperation abgeschlossen ist, kann die CPU einen Befehl kommunizieren, um die Cache-Zeile zu lesen, die zurück zu der externen Speichervorrichtung geschrieben wurde, an eine Steuerung, die die externe Speichervorrichtung steuert. Dementsprechend erhöht sich Write-Back-Traffic, der in der Write-Back- und Speicher-Lese-Anfrage-Traffic beteiligt ist, die in dem Lesen der Cache-Zeile beteiligt sind, die in der externen Speichervorrichtung gespeichert ist.
-
ZUSAMMENFASSUNG
-
Einige Ausführungsformen des erfinderischen Konzepts betreffen einen Anwendungsprozessor, der umfasst: ein erstes Master-Gerät, das ein erstes Sicherheitsmerkmal aufweist, ein zweites Master-Gerät, das ein zweites Sicherheitsmerkmal aufweist, und einen master-seitigen Filter, die jeweils miteinander über eine cache-kohärente Verbindung verbunden sind, wobei das erste Master-Gerät konfiguriert ist zum Kommunizieren einer Snoop-Anfrage, die eine erste Snoop-Adresse umfasst und einem Sicherheitsmerkmal-Indikator, der das erste Sicherheitsmerkmal anzeigt, und der master-seitige Filter konfiguriert ist zum Ausführen einer Snoop-Operation durch Empfangen der ersten Snoop-Anfrage von dem ersten Master-Gerät über die cache-kohärente Verbindung, Vergleichen des zweiten Sicherheitsmerkmals mit dem ersten Sicherheitsmerkmal, wie durch die Snoop-Anfrage angezeigt, Bestimmen, dass die erste Snoop-Adresse nicht an das zweite Master-Gerät kommuniziert werden soll, wenn das erste Sicherheitsmerkmal und das zweite Sicherheitsmerkmal unterschiedlich sind, und Bestimmen, dass die erste Snoop-Adresse an das zweite Master-Gerät kommuniziert werden soll, wenn das erste Sicherheitsmerkmal und das zweite Sicherheitsmerkmal gleich sind.
-
Einige Ausführungsformen des erfinderischen Konzepts betreffen ein Datenverarbeitungssystem, das eine Steuerung, die mit einer Hauptspeichervorrichtung verbunden ist, die extern zu der Steuerung angeordnet ist umfasst, wobei die Steuerung umfasst: ein erstes Master-Gerät, das ein erstes Sicherheitsmerkmal aufweist, ein zweites Master-Gerät, das ein zweites Sicherheitsmerkmal aufweist, einen master-seitigen Filter, und einen slave-seitigen Filter, die jeweils miteinander über eine cache-kohärente Verbindung verbunden sind, wobei das erste Master-Gerät konfiguriert ist zum Kommunizieren einer Snoop-Anfrage, die eine erste Snoop-Adresse umfasst und einem Sicherheitsmerkmal-Indikator, der das erste Sicherheitsmerkmal anzeigt, und der master-seitige Filter zwischen der cache-kohärenten Verbindung und dem zweiten Master-Gerät verbunden ist und konfiguriert ist zum Ausführen einer Snoop-Operation durch Empfangen der ersten Snoop-Anfrage von dem ersten Master-Gerät über die cache-kohärente Verbindung, Vergleichen des zweiten Sicherheitsmerkmals mit dem ersten Sicherheitsmerkmal, wie durch die Snoop-Anfrage angezeigt, Bestimmen, dass die erste Snoop-Adresse nicht an das zweite Master-Gerät kommuniziert werden soll, wenn das erste Sicherheitsmerkmal und das zweite Sicherheitsmerkmal unterschiedlich sind, und Bestimmen, dass die erste Snoop-Adresse an das zweite Master-Gerät kommuniziert werden soll, wenn das erste Sicherheitsmerkmal und das zweite Sicherheitsmerkmal gleich sind, und der slave-seitige Filter zwischen der cache-kohärenten Verbindung und der Hauptspeichervorrichtung verbunden ist und konfiguriert ist zum Durchführen einer Speicherzugriffs-Operation, die auf die Hauptspeichervorrichtung in Reaktion auf eine Speicherzugriffsanfrage gerichtet ist, die von dem ersten Master-Gerät über die cache-kohärente Verbindung empfangen wird.
-
Einige Ausführungsformen des erfinderischen Konzepts betreffen ein Verfahren zum Betreiben eines Anwendungsprozessors, der ein erstes Master-Gerät umfasst, das ein erstes Sicherheitsmerkmal aufweist, ein zweites Master-Gerät umfasst, das ein zweites Sicherheitsmerkmal aufweist, und einen master-seitigen Filter umfasst, die jeweils über eine cache-kohärente Verbindung miteinander verbunden sind. Das Verfahren umfasst; Kommunizieren einer Snoop-Anfrage, die eine erste Snoop-Adresse und einen Sicherheitsmerkmal-Indikator umfasst, der das erste Sicherheitsmerkmal anzeigt, von dem ersten Master-Gerät an den master-seitigen Filter über die cache-kohärente Verbindung, und Verwenden des master-seitigen Filters zum Ausführen einer Snoop-Operation in Reaktion auf die Snoop-Anfrage durch Vergleichen des zweiten Sicherheitsmerkmals mit dem ersten Sicherheitsmerkmal, und Kommunizieren der ersten Snoop-Adresse an das zweite Master-Gerät falls das erste Sicherheitsmerkmal und das zweite Sicherheitsmerkmal gleich sind, ansonsten Kommunizieren eines ersten Cache-Fehlt an das erste Master-Gerät über die cache-kohärente Verbindung.
-
Einige Ausführungsformen des erfinderischen Konzepts betreffen ein Verfahren zum Betreiben eines Datenverarbeitungssystems, das einen Anforderer umfasst, der ein erstes Sicherheitsmerkmal aufweist, das entweder einen Sicherheitsmodus oder einen nicht-sicheren Modus anzeigt, ein Steuerungsprogramm umfasst, das ein zweites Sicherheitsmerkmal aufweist, das entweder den Sicherheitsmodus oder den nicht-sicheren Modus anzeigt, und einen master-seitigen Filter umfasst, die jeweils über eine cache-kohärente Verbindung verbunden sind. Das Verfahren umfasst; Kommunizieren einer Snoop-Anfrage von dem Anforderer an das Steuerungsprogramm über die cache-kohärente Verbindung und den master-seitigen Filter, wobei die Snoop-Anfrage eine Zieladresse und entweder den Sicherheitsmodus oder den nicht-sicheren Modus für wenigstens den Anforderer und/oder das Steuerungsprogramm anzeigt, Bestimmen ob der Sicherheitsmodus für den wenigstens einen des Anforderers und/oder des Steuerungsprogramms angezeigt wird, bei Bestimmung, dass der Sicherheitsmodus für den wenigstens einen des Anforderers und/oder des Steuerungsprogramms angezeigt wird, Bestimmen ob die Zieladresse einem sicheren Speicherbereich entspricht, und falls die Zieladresse einem sicheren Speicherbereich entspricht, Erzeugen eines Snoop-Treffers, ansonsten Erzeugen eines Snoop-Fehlt in dem master-seitigen Filter, und bei Bestimmung, dass der Sicherheitsmodus für den wenigstens einen des Anforderers und/oder des Steuerungsprogramms angezeigt wird, Bestimmen ob die Zieladresse einem sicheren Speicherbereich entspricht, und falls die Zieladresse einem sicheren Speicherbereich entspricht, Erzeugen eines Snoop-Fehlt, ansonsten Erzeugen eines Snoop-Fehlt in dem master-seitigen Filter.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein Blockdiagramm eines Datenverarbeitungssystems, gemäß einiger Ausführungsformen des erfinderischen Konzepts;
-
2 ist ein Blockschaltbild eines master-seitigen Filters und eines zweiten Master-Geräts aus 1, gemäß einigen Ausführungsformen des erfinderischen Konzepts;
-
3 ist ein Flussdiagramm der Operation des master-seitigen Filters und des zweiten Master-Geräts, wie in 1 gezeigt, gemäß einigen Ausführungsformen des erfinderischen Konzepts;
-
4 ist eine erste Tabelle, die mögliche Operationsverhältnisse zwischen dem master-seitigen Filter und dem zweiten Master-Gerät aus 1 auflistet;
-
5 ist ein Diagramm zum Erläutern der Operationen des master-seitigen Filters, der auf eine Snoop-Anfrage reagiert, die von einem ersten Master aus 1 ausgegeben wird, gemäß einigen Ausführungsformen des erfinderischen Konzepts;
-
6 ist ein Blockschaltbild des master-seitigen Filters und des zweiten Master-Geräts aus 1, gemäß anderer Ausführungsformen des erfinderischen Konzepts;
-
7 ist ein Flussdiagramm der Operation des master-seitigen Filters und des zweiten Master-Geräts, wie in 6 gezeigt, gemäß einigen Ausführungsformen des erfinderischen Konzepts;
-
8 ist eine zweite Tabelle, die mögliche Operationsverhältnisse zwischen dem master-seitigen Filter und dem zweiten Master-Gerät aus 6 auflistet;
-
9 ist eine dritte Tabelle, die mögliche Operationsverhältnisse zwischen dem master-seitigen Filter und dem zweiten Master-Gerät aus 6 auflistet;
-
10 ist ein Diagramm zum Erläutern der Operationen des master-seitigen Filters, der auf eine Snoop-Anfrage reagiert, die von einem ersten Master aus 1 ausgegeben wird, gemäß weiterer Ausführungsformen des erfinderischen Konzepts;
-
11 ist ein Konzeptdiagramm der Betriebsarten des zweiten Master-Geräts aus 1 und der Software-Operation in jeder der Betriebsarten;
-
12 ist ein Flussdiagramm, das Verfahren wie das in Bezug auf 8 beschriebene zusammenfasst; und
-
13 ist ein Flussdiagramm, das Verfahren wie das in Bezug auf 9 zusammenfasst.
-
AUSFÜHRLICHE BESCHREIBUNG
-
1 ist ein Blockdiagramm eines Datenverarbeitungssystems 100, gemäß einigen Ausführungsformen des erfinderischen Konzepts. Bezugnehmend auf 1, kann das Datenverarbeitungssystem 100 eine Steuerung 200 und eine Hauptspeichervorrichtung 300 umfassen.
-
Das Datenverarbeitungssystem 100 kann als ein Personalcomputer (PC) oder als eine Mobilvorrichtung implementiert werden. Die Mobilvorrichtung kann beispielsweise ein Laptop-Computer, ein Mobiltelefon, ein Smartphone, einen Tablet-PC, ein persönlicher digitaler Assistenten (PDA), ein Unternehmens-Digital-Assistent (EDA), eine Digitalkamera, eine digitale Videokamera, ein tragbarer Multimedia-Player (PMP), ein persönliches Navigationsgerät oder ein tragbares Navigationsgerät (PND), eine Handheld-Konsole, ein mobiles Internetgerät (MID), ein tragbarer Computer, ein Internet-der-Dinge-(IoT-)Gerät, eine Internet-von-Allem-(IOE-)Vorrichtung, eine Drone, oder eine E-Buch sein. Das Datenverarbeitungssystem 100 kann auch in einem Smart-Auto oder einem Kraftsystem verwendet werden.
-
Die Steuerung 200 kann den Betrieb der Hauptspeichervorrichtung 300 steuern. Die Steuerung 200 kann verschiedentlich als cache-kohärentes System, ein cache-kohärentes Netzwerk oder eine cache-kohärente Steuerung bezeichnet werden. In bestimmten Konfigurationen kann die Steuerung 200 heterogene Kern-Cluster umfassen, wobei die heterogenen Kern-Cluster, ganz oder teilweise, eine zentrale Verarbeitungseinheit (CPU), eine Grafikverarbeitungseinheit (GPU), ein General-Purpose-Computation-on-Graphics-Processing-Unit (GPGPU) und/oder einen digitalen Signalprozessor (DSP) implementieren, die über eine cache-kohärente Verbindung 210 verbunden sind.
-
Die Steuerung 200 kann verschiedentlich als eine integrierte Schaltung (IC), ein Ein-Chip-System (SoC), ein Prozessor, ein Anwendungsprozessor, ein mobiler Anwendungsprozessor, ein Motherboard, ein Chipsatz, oder eine Reihe von Halbleiterchips realisiert werden. In bestimmten Ausführungsformen können die Steuereinheit 200 und die Hauptspeichervorrichtung 300 unter Verwendung einer Package-on-Package-(PoP-)Herstellungstechnik realisiert werden.
-
Im gezeigten Beispiel aus 1, kann die Steuerung 200 eine cache-kohärente Verbindung 210, ein erstes Master-Gerät (Master1) 220, eine zweite Steuerung (z. B. eine erste Sicherheitsattribut-Steuerung) 230, ein zweites Master-Gerät (Master2) 240, einen master-seitigen Filter 250 und einen slave-seitigen Filter 280 umfassen. In einigen Ausführungsformen kann die Steuerung 200 auch eine dritte Steuerung (z. B. eine zweite Sicherheitsattribut-Steuerung) 260 und ein drittes Master-Gerät (Master3) 270 umfassen.
-
Der master-seitige Filter 250 ist zwischen der cache-kohärenten Verbindung 210 und zweiten Master-Gerät 240 verbunden ist, um eine Sicherheitsüberprüfung durchzuführen (oder zu erzwingen). Die Bereitstellung des master-seitigen Filters 250 bei dieser Position neigt dazu, Snoop-Zeit oder Snoop-Latenz zu reduzieren. Die beispielhaften Systemelemente (oder Systemkomponenten) 220, 230, 250, 260, 270 und 280 können verschiedene Signale miteinander über die cache-kohärente Verbindung 210 kommunizieren (d. h. übertragen und/oder empfangen).
-
Das erste Master-Gerät 220 kann zu der zweiten Steuerung 230 über die cache-kohärente Verbindung 210, ein erstes Steuersignal CTR1 kommunizieren, das einen Betriebsmodus für das zweite Master-Gerät 240 einstellt (oder definiert). In einem Beispiel kann der Betriebsmodus entweder als ein sicherer Modus oder ein nicht-sicherer Modus festgelegt werden. Hier wird der Sicherheitsmodus verwendet, um ”sichere Daten” zu verarbeiten – oder Daten, die eine oder mehrere Sicherheitsverfahren erfordern, während der nicht-sichere Modus verwendet wird, um ”nicht-sichere Daten” zu verarbeiten – oder Daten, die entweder keine Sicherheitsverfahren oder ein geringeres Sicherheitsverfahren als Verfahren für sichere Daten erfordern.
-
Das erste Master-Gerät 220 kann als eine CPU implementiert werden. Zum Beispiel kann das erste Master-Gerät 220 eine CPU mit Sicherheits-Erkenntnis-Fähigkeiten sein. Das erste Master-Gerät 220 kann eine erste Snoop-Anfrage SREQ1 erzeugen, die ein erstes Sicherheitsmerkmal AT1 und eine ”Snoop-Adresse” ADD umfasst. Das erste Sicherheitsmerkmal AT1 kann Informationen (oder Daten) sein, die angeben, ob der Betriebsmodus für das erste Master-Gerät 220 entweder der Sicherheitsmodus oder der nicht-sichere Modus ist, und die Snoop-Adresse ADD kann zu einer Position in der Hauptspeichervorrichtung 300 zeigen (oder andeuten), auf die von dem ersten Master-Gerät 220 zugegriffen werden kann. In dieser Hinsicht kann das erste Master-Gerät 220 Software (SW) 222 ausführen, die eine Operation (und/oder Inter-Operationen) von wenigstens einem der anderen Master-Geräte steuert (beispielsweise der zweite Master 240 oder der dritte Master 270).
-
Die zweite Steuerung 230 kann den Betriebsmodus des zweiten Master-Geräts 240 auf den Sicherheitsmodus oder den nicht-sicheren Modus einstellen, unter Verwendung von (oder in Reaktion auf) das erste Steuersignal CTR1, das von dem ersten Master-Gerät 220 bereitgestellt wird. Steuerdaten, die mit dem ersten Steuersignal CTR1 assoziiert sind, können in einem Register 235 gespeichert werden, das in der zweiten Steuerung 230 enthalten ist. In bestimmten Ausführungsformen kann das Register 235 als ein Spezialfunktionsregister (SFR) realisiert werden.
-
Ein Sicherheitsmerkmal, das mit dem zweiten Master-Gerät 240 assoziiert ist (d. h. das zweite Sicherheitsmerkmal AT2) kann auch bestimmt werden, basierend auf (oder in Reaktion auf) das erste Steuersignal CTR1, oder ein Teil der Steuerdaten, die in dem SFR 235 gespeichert sind. Das zweite Sicherheitsmerkmal AT2 kann zu dem master-seitigen Filter 250 kommuniziert werden, beispielsweise über eine zugeordnete Übertragungsleitung TL. Das zweite Sicherheitsmerkmal AT2 kann Informationen (oder Daten) sein, die angeben, ob der Betriebsmodus des zweiten Master-Geräts 240 entweder der Sicherheitsmodus oder nicht-sichere Modus ist.
-
Somit kann der Betriebsmodus des zweiten Master-Geräts 240 in den Sicherheitsmodus oder den nicht-sicheren Modus eingestellt werden, basierend auf dem zweiten Sicherheitsmerkmal AT2, wie durch die Steuerdaten identifiziert, die in dem SFR 235 gespeichert sind. Das zweite Master-Gerät 240 kann verschiedenartig implementiert werden, wie als eine GPU, GPGPU, DSP, usw. Jedoch wird in Ausführungsformen des erfinderischen Konzepts, das zweite Master-Gerät 240 ein Meister sein, das einen Cache umfasst und konfiguriert ist zum Zugreifen auf die Hauptspeichervorrichtung und/oder einen Cache, das von einem anderen Master geteilt wird. In diesem Zusammenhang kann das zweite Master-Gerät 240 ein Master mit Nicht-Sicherheits-Erkenntnis oder ein Master mit fehlender Sicherheits-Erkenntnis sein.
-
Wie in 1 gezeigt, kann der master-seitige Filter 250 zwischen der cache-kohärenten Verbindung 210 und zweiten Master-Gerät 240 angeschlossen werden. Gemäß einigen Ausführungsformen des erfinderischen Konzepts kann ein master-seitiger Filter 250 (oder 250-1 in 6) verwendet werden, um eine Sicherheitsüberprüfung während einer Snoop-Operation oder einer Cache-Snoop-Operation auszuführen. Daher kann der master-seitige Filter 250 als master-seitiger Sicherheitsfilter bezeichnet werden.
-
Da der master-seitige Filter 250 eine Sicherheitsüberprüfung durchführt, während (oder als Reaktion auf) einer Snoop-Operation, eliminiert das Datenverarbeitungssystem 100, das den master-seitigen Filter 250 umfasst, weitgehend die Anforderungen, die mit Write-Back-Traffic und Speicher-Lese-Anfrage-Traffic verbunden sind, im Vergleich mit analogen, herkömmlichen Datenverarbeitungssystemen, die von einer Sicherheitsüberprüfung abhängig sind, die durchgeführt wird mittels dem slave-seitigen Filter 280 in Bezug auf alle Snoop-Treffer (oder alle Cache-Treffer).
-
Dementsprechend kann der master-seitige Filter 250 (1) die erste Snoop-Anfrage SREQ1 von dem ersten Master-Gerät 220 empfangen, wie über die cache-kohärente Verbindung 210 kommuniziert, (2) das zweite Sicherheitsmerkmal AT2 des zweiten Master-Geräts 240 mit dem ersten Sicherheitsmerkmal AT1 des ersten Master-Geräts 220 vergleichen, das in der ersten Snoop-Anfrage SREQ1 enthalten ist, und (3) bestimmen, ob die Snoop-Adresse ADD, die in der ersten Snoop-Anfrage SREQ1 enthalten ist, an das zweite Master-Gerät 240 kommuniziert werden soll, oder nicht.
-
Wenn das erste Sicherheitsmerkmal AT1 und zweite Sicherheitsmerkmal AT2 unterschiedlich sind, wird der master-seitige Filter 250 die Snoop-Adresse ADD, die in der ersten Snoop-Anfrage SREQ1 enthalten ist, nicht an das zweite Master-Gerät 240 kommunizieren, sondern kann eine ”Cache-Fehlt”-Anzeige an das erste Master-Gerät 220 über die cache-kohärente Verbindung 210 kommunizieren (oder zurückgeben). Wenn jedoch das erste Sicherheitsmerkmal AT1 und zweite Sicherheitsmerkmal AT2 die gleichen sind, kann der master-seitige Filter 250 die Snoop-Adresse an das zweiten Master-Gerät 240 ADD kommunizieren.
-
In Reaktion auf den Empfang der Snoop-Adresse ADD kann das zweite Master-Gerät 240 (1) bestimmen, ob eine Adresse, die passend zu der Snoop-Adresse ADD ist, in einem internen Cache des zweiten Master-Geräts 240 existiert, (2) entscheiden, ob ein Cache-Fehlt oder ein Cache-Treffer aufgetreten ist, auf der Grundlage des Adressen-Bestimmungsergebnisses, und (3) das Cache-Treffer/Fehlt-Ergebnis an den master-seitigen Filter 250 kommunizieren.
-
Der master-seitige Filter 250 kann eine primäre Sicherheitsüberprüfung während (oder als Teil von) der Snoop-Operation durchführen. Jedoch kann der slave-seitige Filter 280 eine Speicherzugriffsanfrage (z. B. eine Datenleseanfrage) für die Hauptspeichervorrichtung 300 verarbeiten, ohne notwendigerweise eine primäre Sicherheitsüberprüfung während einer entsprechenden Snoop-Operation durchzuführen. Beispielsweise kann eine Speicherzugriffsanfrage durch das erste Master-Gerät 220 als das Ergebnis einer Snoop-Operation (z. B. einem Cache-Fehlt-Ergebnis, das von dem master-seitigen Filter 250 kommuniziert wird) erzeugt werden. Obwohl das Datenverarbeitungssystem 100 aus 1 den slave-seitigen Filter 280 und Hauptspeichervorrichtung 300 zum Zwecke der Beschreibung möglicher Aspekte der Systemkonfiguration(en) und/oder Operation(en) enthält, die durch das erfinderische Konzept in Betracht gezogen werden, sind nur die cache-kohärente Verbindung 210 und master-seitige Filter 250 erforderlich, um die oben beschriebene sicherheitsbewusste Snoop-Operation zu implementieren.
-
Die dritte Steuerung 260 kann verwendet werden, um einen Betriebsmodus für das dritte Master-Gerät 270 auf entweder den sicheren Modus oder nicht-sicheren Modus in Reaktion auf ein zweites Steuersignal CTR2 einzustellen, das (z. B.) durch das erste Master-Gerät 220 bereitgestellt wird. Das zweite Steuersignal CTR2 kann in einem Register 265 gespeichert werden, das in der dritten Steuerung 260 enthalten ist. Jedes der Steuersignale CTR1 und CTR2 kann verschiedenartig implementiert werden, wie beispielsweise in Form einer Flagge oder eines digitalen Signals mit mindestens einem Bit.
-
Beispielsweise kann das Register 265 als ein SFR implementiert werden. Ein drittes Sicherheitsmerkmal AT3, das mit dem dritten Master-Gerät 270 assoziiert ist, kann gemäß dem zweiten Steuersignal CTR2 bestimmt werden, das in dem SFR 265 gespeichert ist. Das dritte Sicherheitsmerkmal AT2 kann Informationen (oder Daten) sein, die angeben, ob der Betriebsmodus des dritten Master-Geräts 270 der Sicherheitsmodus oder nicht-sichere Modus ist.
-
Somit kann das dritte Master-Gerät 270 seinen Betriebsmodus auf den Sicherheitsmodus oder den nicht-sicheren Modus einstellen, basierend auf dem dritten Sicherheitsmerkmal AT3, wie durch die Daten angezeigt, die in dem SFR 265 gespeichert sind. Die dritte Master-Gerät 270 kann als eine GPU, eine GPGPU, oder ein DSP implementiert werden. Zum Beispiel kann das dritte Master-Gerät 270 ein Master entweder mit oder ohne Sicherheits-Erkenntnis sein. Die dritte Master-Gerät 270 kann eine zweite Snoop-Anfrage SREQ2 erzeugen, die das dritte Sicherheitsmerkmal AT3 und eine entsprechende zweite Snoop-Adresse umfasst.
-
Dementsprechend kann der master-seitige Filter 250 (1) die zweite Snoop-Anfrage SREQ2 von dem dritten Master-Gerät 270 über die cache-kohärente Verbindung 210 empfangen, (2) das zweite Sicherheitsmerkmal AT2 des zweiten Master-Geräts 240 mit dem dritten Sicherheitsmerkmal AT3 des dritten Master-Geräts 270 vergleichen, das in der zweiten Snoop-Anfrage SREQ2 enthalten ist, und (3) bestimmen, ob die zweite Snoop-Adresse an das zweite Master-Gerät 240 kommuniziert werden soll, oder nicht.
-
Wenn beispielsweise das erste Sicherheitsmerkmal AT1 und dritte Sicherheitsmerkmal AT3 verschieden sind, muss der master-seitige Filter 250 die zweite Snoop-Adresse nicht an das zweite Master-Gerät 240 übertragen, sondern kann sofort ein Cache-Fehlt an das dritte Master-Gerät 270 über die cache-kohärente Verbindung 210 kommunizieren. Wenn jedoch das erste Sicherheitsmerkmal AT1 und dritte Sicherheitsmerkmal AT3 die gleichen sind, kann der master-seitige Filter 250 die zweite Snoop-Adresse, die in der zweiten Snoop-Anfrage SREQ2 enthalten ist, an das zweite Master-Gerät 240 übertragen.
-
Das zweite Master-Gerät 240 kann dann (1) bestimmen, ob eine Adresse, die passend zu der zweiten Snoop-Adresse ist, die von dem master-seitigen Filter 250 kommuniziert wurde, in dem internen Chache des zweiten Master-Geräts 240 existiert, (2) ein Cache-Fehlt oder ein Cache-Treffer, auf Grundlage des Adressen-Bestimmungsergebnisses entscheiden, und (3) das Cache-Treffer/Fehlt-Ergebnis an den master-seitigen Filter 250 kommunizieren.
-
Die Hauptspeichervorrichtung 300 kann benutzt werden, um Benutzerdaten oder Firmware zu speichern, die für die Operation der Steuerung 200 notwendig sind, und kann mittels dynamischen Direktzugriffsspeicher (DRAM) implementiert werden.
-
2 ist ein Blockdiagramm, das des Weiteren in einem Beispiel den master-seitigen Filter 250 und das zweite Master-Gerät 240 aus 1 veranschaulicht. 3 ist ein Flussdiagramm, das in einem Beispiel die Operation des master-seitigen Filters 250 und zweiten Master-Geräts 240 zusammenfasst, gemäß 1 und 2. 5 ist ein Diagramm, das bestimmte beispielhafte Operationen für den master-seitigen Filter 250 in Reaktion auf eine Snoop-Anfrage zeigt, die von dem ersten Master-Gerät 220 aus 1 empfangenen wird.
-
Es wird angenommen, dass das zweite Sicherheitsmerkmal AT2 des zweiten Master-Geräts 240 den Sicherheitsmodus anzeigt und ein Cache 244, der in dem zweiten Master-Gerät 240 enthalten ist, jeweils Daten DATA1, DATA3, DATA4 und Daten5 entsprechend wenigstens einer Adresse speichert (z. B. Adressen ADD1, ADD3, ADD4, und ADD5).
-
Unter kollektiver Bezugnahme auf 1, 2, 3 und 5, wird angenommen, dass das erste Master-Gerät 220 eine erste Snoop-Anfrage SREQ1 einschließlich des ersten Sicherheitsmerkmals AT1 und erster Snoop-Adresse ADD1 über die cache-kohärente Verbindung 210 an den master-seitigen Filter 250 kommuniziert (S110).
-
Der master-seitige Filter 250 kann das erste Sicherheitsmerkmal AT1 mit einem zweiten Sicherheitsmerkmal AT2 vergleichen (S120). Wenn das erste Sicherheitsmerkmal AT1 und zweite Sicherheitsmerkmal AT2 unterschiedlich sind (S120 = NEIN), muss der master-seitige Filter 250 die erste Snoop-Adresse ADD1 nicht an das zweite Master-Gerät 240 kommunizieren, sondern kommuniziert stattdessen einen Snoop-Fehlt an ein oder mehrere Elemente der Steuerung 200 über die cache-kohärente Verbindung 210 (S130). Hier kann sich das Snoop-Fehlt auf einen Cache-Fehlt beziehen.
-
Bezugnehmend auf den dritten Fall (FALL3) aus 5, kann angenommen werden, dass die erste Snoop-Anfrage SREQ1 ein drittes Indikator-Bit NSMB und die erste Snoop-Adresse umfasst. Es wird des Weiteren angenommen, dass das dritte Indikator-Bit NSMB anzeigt, dass der Betriebsmodus für das erste Master-Gerät 220 der nicht-sichere Modus ist und dem ersten Sicherheitsmerkmal AT1 entspricht. Mit anderen Worten, das erste Sicherheitsmerkmal AT1 des ersten Master-Geräts 220 zeigt den nicht-sicheren Modus an.
-
Da das erste Sicherheitsmerkmal AT1 des ersten Master-Geräts 220 den nicht-sicheren Modus anzeigt und das zweite Sicherheitsmerkmal AT2 des zweiten Master-Geräts 240 den sicheren Modus anzeigt, wird der master-seitige Filter 250 die erste Snoop-Adresse ADD1 nicht an das zweite Master-Gerät 240 kommunizieren, sondern wird stattdessen das Snoop-Fehlt kommunizieren (S130).
-
Wenn das erste Sicherheitsmerkmal AT1 und das zweite Sicherheitsmerkmal AT2 gleich sind (S120 = JA), kommuniziert der master-seitige Filter 250 die erste Snoop-Adresse ADD1 an eine Cache-Steuerung 242 des zweiten Master-Geräts 240. Die Cache-Steuerung 242 des zweiten Master-Geräts 240 kann eine Snoop-Operation für eine interne Cache-Zeile (cache line) durchführen (S140).
-
Beispielsweise unter Bezugnahme auf den ersten Fall (FALL1) in 5, kann die erste Snoop-Anfrage SREQ1 kann einen ersten Indikator-Bit SMB und die erste Snoop-Adresse ADD1 umfassen. Das erste Indikator-Bit SMB zeigt an, dass der Betriebsmodus des ersten Master-Geräts 220 der Sicherheitsmodus ist und dem ersten Sicherheitsmerkmal AT1 entspricht. Mit anderen Worten, das erste Sicherheitsmerkmal AT1 des ersten Master-Geräts 220 zeigt den Sicherheitsmodus an.
-
Die Cache-Steuerung 242 kann bestimmen, ob eine Adresse, die der ersten Snoop-Adresse ADD1 entspricht, in dem Cache 244 existiert (S150). Wenn eine Adresse, die der ersten Snoop-Adresse ADD1 entspricht, in dem Cache 244 existiert (d. h. ein ”Snoop-Treffer” oder ”Cache-Treffer” auftritt – S150 = JA), kann die Cache-Steuerung 242 die im Cache 244 gespeicherten Daten an den master-seitigen Filter 250 kommunizieren (oder übertragen), die der ersten Snoop-Adresse ADD1 entsprechen (d. h. DATA1 in dem Beispiel aus 2)(S160). So kann der master-seitige Filter 250 die Daten DATA1 entsprechend der ersten Snoop-Adresse ADD1 zu einem oder mehreren Elementen der Steuerung 200 über die cache-kohärente Verbindung 210 kommunizieren. Zum Beispiel können die Daten DATA1 von dem master-seitigen Filter 250 an das erste Master-Gerät 220 über die cache-kohärente Verbindung 210 kommuniziert werden.
-
Betrachtet man nun den zweiten Fall (FALL2) aus 5, kann die erste Snoop-Anfrage SREQ1 ein zweites Indikator-Bit SMB und irgendeine andere Adresse wie die erste Snoop-Adresse ADD2 umfassen (im Folgenden ”eine zweite Snoop-Adresse”). Das erste Sicherheitsmerkmal AT1 des ersten Master-Geräts 220 zeigt den Sicherheitsmodus an.
-
Die Cache-Steuerung 242 kann bestimmen, ob eine Adresse, die der zweiten Snoop-Adresse ADD2 entspricht, in dem Cache 244 existiert (S150). Wenn eine Adresse, die der zweiten Snoop-Adresse ADD2 entspricht, nicht im Cache 244 existiert (d. h. ein ”Snoop-Fehlt” oder ”Cache-Fehlt” tritt auf – S150 = NEIN), kann die Cache-Steuerung 242 das Snoop-Fehlt an (z. B.) den master-seitigen Filter 250 (S130) und/oder das erste Master-Gerät 220 über die cache-kohärente Verbindung 210 kommunizieren.
-
Wenn das Snoop-Fehlt in dem zweiten Fall aus 5 auftritt, kann das erste Master-Gerät 220 eine Speicherzugriffsanfrage (z. B. eine Datenleseanfrage) erzeugen, die die zweite Snoop-Adresse ADD2 umfasst. Die Speicherzugriffsanfrage kann dann an den slave-seitigen Filter 280 über die cache-kohärente Verbindung 210 kommuniziert werden. Und in Reaktion darauf kann der slave-seitige Filter 280 eine Sicherheitsüberprüfung der Speicherzugriffsanfrage ausführen und dann Daten aus einem Speicherbereich der Hauptspeichervorrichtung 300 lesen, die beispielsweise durch die zweite Snoop-Adresse ADD2 angegeben wird. Die Daten, die so gelesen werden, können dann zu dem ersten Master-Gerät 220 über die cache-kohärente Verbindung 210 kommuniziert werden.
-
4 ist eine erste Tabelle, die exemplarische Operationsverhältnisse auflistet, die zwischen dem master-seitigen Filter 250 und zweiten Master-Gerät 240 aus 1 existieren können. In Bezug auf 1, 2, 3 und 4, wenn der Betriebsmodus von einem Anforderer (z. B. einem des ersten Master-Geräts 220 oder dritten Master-Geräts 270) der gleiche wie der Betriebsmodus eines Steuerungsprogramms ist (z. B. des zweiten Master-Geräts 240) – das heißt, wenn ein Sicherheitsmerkmal des Anforderers das gleiche wie ein Sicherheitsmerkmal des Steuerungsprogramms ist – dann wird der master-seitige Filter 250 eine Snoop-Adresse entsprechend einer Snoop-Anfrage (z. B. SREQ1 oder SREQ2) an die Cache-Steuerung 242 kommunizieren, die von dem Anforderer empfangen wird, und eine entsprechende ”Umleitungs-Adresse” wird identifiziert.
-
Wenn sich jedoch der Betriebsmodus des Anforderers von dem Betriebsmodus des Steuerungsprogramms unterscheidet – das heißt, wenn das Sicherheitsmerkmal von dem Anforderer sich von dem Sicherheitsmerkmal von dem Steuerungsprogramm unterscheidet – dann wird der master-seitige Filter 250 nicht eine Snoop-Adresse an die Cache-Steuerung 242 kommunizieren, sondern stattdessen kann sofort eine Snoop-Fehlt-Anzeige über die cache-kohärente Verbindung 210 kommuniziert werden und eine entsprechende ”blockierte Adresse” kann identifiziert werden.
-
Wenn beispielsweise angenommen wird, dass die erste Snoop-Anfrage SREQ1 vom Anforderer erzeugt wird (z. B. dem ersten Master 220), werden zwei Bestimmungen nacheinander durchgeführt. Zuerst führt der master-seitige Filter 250 eine Sicherheitsüberprüfung (d. h. ein Vergleich zwischen den Sicherheitsmerkmalen AT1 und AT2) in Bezug auf die erste Snoop-Anfrage SREQ1 durch (S120). Zweitens, wenn kein Sicherheitsproblem angezeigt wird (d. h. die Sicherheitsmerkmale AT1 und AT2 sind gleich – S120 = JA), bestimmt die Cache-Steuerung 242 des Steuerungsprogramms (z. B. das zweite Master-Gerät 240) einen Cache-Treffer/Fehlt (S150).
-
6 ist ein Blockdiagramm, das des Weiteren in einem anderen Beispiel einen master-seitigen Filter 250-1 und ein zweites Master-Gerät 240 aus 1 zeigt und mit 2 verglichen werden kann. 7 ist ein Flussdiagramm, das in einem Beispiel die Operation des master-seitigen Filters 250-1 und des zweiten Master-Geräts 240 zusammenfasst, gemäß 6.
-
In Bezug auf 1, 6 und 7, kann der master-seitige Filter 250-1 kann eine Entscheidungs-Logikschaltung 252 und eine Speichervorrichtung 254 umfassen, die eine Sicherheitsmerkmal-Nachschlagetabelle speichert. Obwohl die Speichervorrichtung 254 intern zu dem master-seitigen Filter 250-1 aus 6 gezeigt ist, kann sie alternativ extern zu dem master-seitigen Filter 250-1 (z. B. an anderer Stelle in der Steuerung 200, wie beispielsweise dem zweiten Master-Gerät 240), in anderen Ausführungsformen implementiert werden. Die Speichervorrichtung 254 kann unter Verwendung von einem statischen Direktzugriffsspeicher (SRAM) implementiert werden.
-
Die Speichervorrichtung 254 kann zum Speichern von Daten (z. B. Flaggenzustände) verwendet werden, die ein Sicherheitsmerkmal (z. B. SM oder NSM) anzeigen, das jeweils mit einem ”Speicherbereich” assoziiert wird, das eine entsprechende Adresse (z. B. ADD1, ADD3, ADD4 und ADD5) umfasst (z. B. dort beginnt). Hier kann sich jeder Speicherbereich auf einige bezeichneten Abschnitt der Hauptspeichervorrichtung 300 (z. B. ein Block, Seite, Cache-Zeile, etc.) beziehen.
-
Im Beispiel aus 6, sind Speicherbereiche entsprechend den jeweiligen Adressen ADD1 und ADD3 im Sicherheitsmodus SM zugänglich. Mit anderen Worten, diese sind sichere Speicherbereiche. Im Gegensatz dazu können Speicherbereiche entsprechend den jeweiligen Adressen ADD4 und ADD5 in dem nicht-sicheren Modus NSM zugänglich sein. Mit anderen Worten, diese sind nicht-sichere Speicherbereiche.
-
Hier wird angenommen, dass das erste Master-Gerät 220 eine ersten Snoop-Anfrage SREQ1 einschließlich dem ersten Sicherheitsmerkmal AT1 und einer ersten Snoop-Adresse ADD1 über die cache-kohärente Verbindung 210 an die Entscheidungs-Logikschaltung 252 des master-seitigen Filters 250-1 kommuniziert (S210). Die Entscheidungs-Logikschaltung 252 vergleicht dann das erste Sicherheitsmerkmal AT1 und zweite Sicherheitsmerkmal AT2, um zu bestimmen, ob eine Adresse, die der ersten Adresse der ersten Snoop-Adresse ADD1 entspricht, in der Speichervorrichtung 254 existiert (S220). Diese beiden Vergleiche können sequentiell oder parallel erfolgen.
-
Wenn das erste Sicherheitsmerkmal AT1 und das zweite Sicherheitsmerkmal AT2 gleich sind, und eine Übereinstimmung für die erste Snoop-Adresse in der Speichervorrichtung 254 identifiziert wird (S220 = JA), kann die Entscheidungs-Logikschaltung 252 die erste Snoop-Adresse ADD1, die in der ersten Snoop-Anfrage SREQ1 enthalten ist, an das zweite Master-Gerät 240 kommunizieren. Die Cache-Steuerung 242 des zweiten Master-Geräts 240 kann die Daten DATA1, die in dem Cache 244 gespeichert wurden und der ersten Snoop-Adresse ADD1 entsprechen, zu dem master-seitigen Filter 250-1 kommunizieren (S240). Die Entscheidungs-Logikschaltung 252 des master-seitigen Filters 250-1 kann die Daten DATA1 beispielsweise über die cache-kohärente Verbindung 210 an das erste Master-Gerät 220 kommunizieren.
-
Unter Bezugnahme auf einen vierten Fall (FALL4) und einen fünften Fall (FALL5) aus 10 wird angenommen, dass das zweite Sicherheitsmerkmal AT2 des zweiten Master-Geräts 240 anzeigt, dass der Betriebsmodus für das zweite Master-Gerät 240 der Sicherheitsmodus (SMB) ist.
-
Unter Bezugnahme auf einen vierten Fall umfasst die erste Snoop-Anfrage SREQ1 ein viertes Indikator-Bit SMB und die erste Snoop-Adresse ADD1. Das vierte Indikator-Bit SMB zeigt an, dass der Betriebsmodus des ersten Master-Geräts 220 der Sicherheitsmodus ist und dem ersten Sicherheitsmerkmal AT1 entspricht. Dementsprechend ist ein Speicherbereich entsprechend der ersten Snoop-Adresse ADD1 ein sicherer Speicherbereich, der in dem sicheren Modus SM zugänglich ist.
-
Da das erste Sicherheitsmerkmal AT1 des ersten Master-Geräts 220 den Sicherheitsmodus anzeigt, das zweite Sicherheitsmerkmal AT2 des zweiten Master-Geräts 240 den Sicherheitsmodus anzeigt, der Speicherbereich entsprechend der ersten Snoop-Adresse ADD1 der sichere Speicherbereich ist, und der Speicherbereich entsprechend der ersten Snoop-Adresse ADD1, die in der Speichervorrichtung 254 gespeichert ist, der sichere Speicherbereich ist – kann die Entscheidungs-Logikschaltung 252 die erste Snoop-Adresse ADD1, die in der ersten Snoop-Anfrage SREQ1 enthalten ist, an die Cache-Steuerung 242 des zweiten Master-Geräts 240 kommunizieren (S220 = JA). Ein entsprechender Cache-Treffer (oder Snoop-Treffer) wird durch die Operation der Cache-Steuerung 242 (z. B. Operation S240) erzeugt.
-
Unter Bezugnahme auf einen fünften Fall umfasst die erste Snoop-Anfrage SREQ1 ein fünftes Indikator-Bit SMB und eine zweite Snoop-Adresse ADD2. Das fünfte Indikator-Bit SMB zeigt an, dass der Betriebsmodus des ersten Master-Geräts 220 der Sicherheitsmodus ist und dem ersten Sicherheitsmerkmal AT1 entspricht. Dementsprechend ist ein Speicherbereich entsprechend der zweiten Snoop-Adresse ADD2 ein nicht-sicherer Speicherbereich, der in dem nicht-sicheren Modus zugänglich ist.
-
Das erste Sicherheitsmerkmal AT1, das den Sicherheitsmodus anzeigt, ist das gleiche wie das zweite Sicherheitsmerkmal AT2, das den Sicherheitsmodus anzeigt. Da das erste Sicherheitsmerkmal AT1 des ersten Master-Geräts 220 den Sicherheitsmodus anzeigt, soll das erste Master-Gerät 220 eine Adresse ausgeben, die den Zugang zu einem sicheren Speicherbereich ermöglicht. Obwohl jedoch das erste Sicherheitsmerkmal AT1 des ersten Master-Geräts 220 den Sicherheitsmodus anzeigt, zeigt die zweite Snoop-Adresse ADD2, auf die von dem ersten Master-Gerät 220 zugegriffen werden soll, einen nicht-sicheren Speicherbereich an (also S220 = Nein). Dementsprechend kommuniziert die Entscheidungs-Logikschaltung 252 die zweite Snoop-Adresse ADD2 nicht an die Cache-Steuerung 242 des zweiten Master-Geräts 240, sondern kommuniziert direkt einen Snoop-Fehlt an eines oder mehrere Elemente der Steuerung 200 über die cache-kohärente Verbindung 210 (S230).
-
Bezugnehmend auf einem sechsten Fall (FALL6) und einen siebten Fall (FALL7), die auch in 10 gezeigt sind, wird angenommen, dass das zweite Sicherheitsmerkmal AT2 des zweiten Master-Geräts 240 den nicht-sicheren Modus (NSMB) anzeigt.
-
Unter Bezugnahme auf einen sechsten Fall umfasst die erste Snoop-Anfrage SREQ1 ein sechstes Indikator-Bit SMB und die zweite Snoop-Adresse ADD2. Das sechste Indikator-Bit SMB zeigt an, dass der Betriebsmodus des ersten Master-Geräts 220 der nicht-sichere Modus ist und dem ersten Sicherheitsmerkmal AT1 entspricht.
-
Das erste Sicherheitsmerkmal AT1, das den nicht-sicheren Modus anzeigt, ist das gleiche wie das zweite Sicherheitsmerkmal AT2, das den nicht-sicheren Modus anzeigt. Darüber hinaus verweist die zweite Snoop-Adresse ADD2, die in der ersten Snoop-Anfrage SREQ1 enthalten ist, auf einen nicht-sicheren Speicherbereich und die zweite Adresse ADD2, die in der Speichervorrichtung 254 gespeichert ist, verweist auf den nicht-sicheren Speicherbereich. Dementsprechend ist das Merkmal der zweiten Snoop-Adresse ADD2, die in der ersten Snoop-Anfrage SREQ1 enthalten ist, das gleiche wie das Merkmal der zweiten Adresse ADD2, die in der Speichervorrichtung 254 gespeichert ist.
-
Die Entscheidungs-Logikschaltung 252 kann die zweite Snoop-Adresse ADD2, die in der ersten Snoop-Anfrage SREQ1 enthalten ist, an die Cache-Steuerung 242 des zweiten Master-Geräts 240 kommunizieren. Mit anderen Worten, ein Cache-Treffer (oder Snoop-Treffer) wird entsprechend der Operation der Cache-Steuerung 242 erzeugt.
-
Unter Bezugnahme auf einen siebten Fall umfasst die erste Snoop-Anfrage SREQ1 ein siebtes Indikator-Bit SMB und die erste Snoop-Adresse ADD1. Das siebte Indikator-Bit SMB zeigt an, dass der Betriebsmodus des ersten Master-Geräts 220 der nicht-sichere Modus ist und das erste Sicherheitsmerkmal AT1 repräsentiert.
-
Das erste Sicherheitsmerkmal AT1, das den nicht-sicheren Modus anzeigt, ist das gleiche wie das zweite Sicherheitsmerkmal AT2, das den nicht-sicheren Modus anzeigt. Das erste Sicherheitsmerkmal AT1, das in der ersten Snoop-Anfrage SREQ1 enthalten ist, zeigt den nicht-sicheren Modus an und die erste Snoop-Adresse ADD1, die in der ersten Snoop-Anfrage enthalten ist, verweist auf den nicht-sicheren Speicherbereich, aber die erste Adresse ADD1, die in der Speichervorrichtung 254 gespeichert ist, verweist auf den sicheren Speicherbereich. Dementsprechend unterscheidet sich das Merkmal der ersten Snoop-Adresse ADD1, die in der ersten Snoop-Anfrage SREQ1 enthalten ist, von dem Merkmal der ersten Adresse ADD1, die in der Speichervorrichtung 254 gespeichert ist (daher S220 = Nein). Die Entscheidungs-Logikschaltung 252 kommuniziert nicht die erste Snoop-Adresse ADD1, die in der ersten Snoop-Anfrage SREQ1 enthalten ist, an die Cache-Steuerung 242 des zweiten Master-Geräts 240, sondern kommuniziert stattdessen einen Snoop-Fehlt über die cache-kohärente Verbindung 210 (S230).
-
8 ist eine zweite Tabelle TABELLE2, die mögliche Operationsverhältnisse zwischen dem master-seitigen Filter 250-1 und dem zweiten Master-Gerät 240 aus 6 auflistet. In Bezug auf 6, 7 und 8, wenn der Betriebsmodus des Anforderers 220 der gleiche ist wie der Betriebsmodus des Steuerungsprogramms 240 und eine Adresse entsprechend einer Snoop-Adresse, die in der ersten Snoop-Anfrage SREQ1 enthalten ist, in der Speichervorrichtung 254 existiert, wird ein Snoop-Treffer erzeugt. Der Snoop-Treffer kann die Cache-Steuerung 242 dazu veranlassen, Daten entsprechend der Adresse an eines oder mehrere Elemente der Steuerung 200 zu kommunizieren.
-
Wenn beispielsweise der Betriebsmodus des Anforderers 220 der Sicherheitsmodus SM ist, die erste Snoop-Adresse ADD1, die in der ersten Snoop-Anfrage SREQ1 enthalten ist, einen sicheren Speicherbereich anzeigt, der Betriebsmodus des Steuerungsprogramms 240 der Sicherheitsmodus ist, und eine Adresse, die der ersten Snoop-Adresse ADD1 entspricht, in der Speichervorrichtung 254 gespeichert wird und auf den sicheren Speicherbereich verweist, wird ein Snoop-Treffer erzeugt.
-
Wenn jedoch der Betriebsmodus des Anforderers 220 der Sicherheitsmodus SM ist, die erste Snoop-Adresse ADD1, die in der ersten Snoop-Anfrage SREQ1 enthalten ist, einen sicheren Speicherbereich anzeigt, der Betriebsmodus des Steuerungsprogramms 240 der Sicherheitsmodus ist, und eine Adresse, die der ersten Snoop-Adresse ADD1 entspricht, in der Speichervorrichtung 254 gespeichert wird aber auf den nicht-sicheren Speicherbereich verweist, wird ein Snoop-Fehlt erzeugt. Und wenn der Snoop-Fehlt erzeugt wird, kann die Entscheidungs-Logikschaltung 252 die Kommunikation der ersten Snoop-Adresse ADD, die in der ersten Snoop-Anfrage SREQ1 enthalten ist, an das zweiten Master-Gerät 240 blockieren. Mit anderen Worten, die Entscheidungs-Logikschaltung 252 wird die erste Snoop-Adresse ADD1, die in der ersten Snoop-Anfrage SREQ1 enthalten ist, nicht an das zweite Master-Gerät 240 kommunizieren.
-
In einigen Ausführungsformen kann die Entscheidungs-Logikschaltung 252 bestimmen, ob das Sicherheitsmerkmal des Anforderers 220 das gleiche ist wie das Sicherheitsmerkmal des Steuerungsprogramms 240 und kann ebenso bestimmen, ob eine Adresse (”passende Adresse”), die auf eine erste Snoop-Adresse ADD1 passt, die in der ersten Snoop-Anfrage SREQ1 enthalten ist, die von dem Anforderer 220 kommuniziert wird, in der Speichervorrichtung 254 vorhanden ist oder nicht, und die erste Snoop-Adresse ADD1 an das zweite Master-Gerät 240 kommunizieren, gemäß dem Bestimmungsergebnis.
-
In dieser Hinsicht berücksichtigt die Entscheidungs-Logikschaltung 252 nicht, ob das Sicherheitsmerkmal der ersten Snoop-Adresse ADD1 das gleiche ist, wie das Sicherheitsmerkmal der passenden Adresse. Mit anderen Worten, wenn das Sicherheitsmerkmal des Anforderers 220 das gleiche ist, wie das Sicherheitsmerkmal des Steuerungsprogramms 240 und die Adresse, die passend zu der ersten Snoop-Adresse ADD1, die in der ersten Snoop-Anfrage SREQ1 enthalten ist, die von dem Anforderer 220 kommuniziert wird, in der Speichervorrichtung vorhanden ist, kommuniziert die Entscheidungs-Logikschaltung 252 die erste Snoop-Adresse ADD1 an das zweite Master-Gerät 240.
-
In anderen Ausführungsformen kann die Entscheidungs-Logikschaltung 252 bestimmen, ob das Sicherheitsmerkmal des Anforderers 220 das gleiche ist, wie das Sicherheitsmerkmal des Steuerungsprogramms 240 ist, und ob das Sicherheitsmerkmal der ersten Snoop-Adresse ADD1 die gleiche ist, wie das Sicherheitsmerkmal einer passenden Adresse, die in der Speichervorrichtung 254 gespeichert ist. Und nur dann, wenn beide Konditionen erfüllt sind, wird die Entscheidungs-Logikschaltung 252 die erste Snoop-Adresse ADD1 an das zweite Master-Gerät 240 kommunizieren. Hier kann das Sicherheitsmerkmal einer Adresse (Snoop und/oder passend) Informationen oder Daten sein, die anzeigen, ob ein Speicherbereich entsprechend der Adresse ein sicherer Speicherbereich oder ein nicht-sicherer Speicherbereich ist.
-
9 ist eine dritte Tabelle TABELLE3, die mögliche Operationsverhältnisse auflistet, die zwischen dem master-seitigen Filter 250-1 und dem zweiten Master-Gerät 240 aus 6 existieren können. In Bezug auf 6, 7 und 9, wenn das zweite Sicherheitsmerkmal AT2 den Sicherheitsmodus anzeigt, und eine passende Adresse, die in der Speichervorrichtung 254 gespeichert ist, den sicheren Speicherbereich anzeigt, das erste Sicherheitsmerkmal AT1, das in der ersten Snoop-Anfrage SREQ1 enthalten ist, den Sicherheitsmodus anzeigt, und die erste Snoop-Adresse ADD, die in der ersten Snoop-Anfrage SREQ1 enthalten ist, den sicheren Speicherbereich anzeigt, wird ein Snoop-Treffer erzeugt. Hier wird angenommen, dass die erste Snoop-Adresse ADD1 die gleiche ist, wie die passende Adresse.
-
Wenn jedoch das zweite Sicherheitsmerkmal AT2 den Sicherheitsmodus anzeigt, die Adresse, die in der Speichervorrichtung 254 gespeichert ist, den sicheren Speicherbereich anzeigt, das erste Sicherheitsmerkmal AT1, das in der ersten Snoop-Anfrage SREQ1 enthalten ist, den Sicherheitsmodus anzeigt, und die erste Snoop-Adresse ADD, die in der ersten Snoop-Anfrage SREQ1 enthalten ist, den nicht-sicheren Speicherbereich anzeigt, wird ein Snoop-Fehlt erzeugt.
-
Wenn das zweite Sicherheitsmerkmal AT2 den nicht-sicheren Modus anzeigt, die zweite Adresse, die in der Speichervorrichtung 254 gespeichert ist, auf den nicht-sicheren Speicherbereich verweist, das erste Sicherheitsmerkmal AT1, das in der ersten Snoop-Anfrage SREQ1 enthalten ist, den nicht-sicheren Modus anzeigt, und die erste Snoop-Adresse ADD, die in der ersten Snoop-Anfrage SREQ1 enthalten ist, den nicht-sicheren Speicherbereich anzeigt, wird ein Snoop-Treffer erzeugt. Hier wird wieder angenommen, dass die erste Snoop-Adresse ADD1 die gleiche ist, wie die passende Adresse.
-
Wenn jedoch das zweite Sicherheitsmerkmal AT2 den nicht-sicheren Modus anzeigt, die passende Adresse, die in der Speichervorrichtung 254 gespeichert ist, den nicht-sicheren Speicherbereich anzeigt, das erste Sicherheitsmerkmal AT1, das in der ersten Snoop-Anfrage SREQ1 enthalten ist, den nicht-sicheren Modus anzeigt, und die erste Snoop-Adresse ADD, die in der ersten Snoop-Anfrage SREQ1 enthalten ist, den sicheren Speicherbereich anzeigt, wird ein Snoop-Fehlt erzeugt.
-
Die mit TABELLE2 assoziierten Ausführungsformen aus 8 betreffen ein Verfahren, das Sicherheitsmerkmale für den Anforderer 220 und Steuerungsprogramm 240 in Betracht ziehen, sowie das Sicherheitsmerkmal eines Speicherbereichs, das durch eine Adresse angezeigt wird, wobei die Ausführungsformen, die sich auf TABELLE3 aus 9 beziehen, ein Verfahren betreffen, das das Sicherheitsmerkmal des Anforderers 220 sowie das Sicherheitsmerkmal des/der Speicherbereich(s/e) in Betracht ziehen, die/das durch Adresse(n) angezeigt wird/werden.
-
12 ist ein Flussdiagramm, das Verfahren wie das vorher in Bezug auf 8 beschriebene zusammenfasst. Hier wird eine erste Bestimmung des Anforderer-Modus und Steuerungsprogramm-Modus durchgeführt (S1200). Dann wird eine zweite Bestimmung der sicheren oder nicht-sicheren Natur eines Zielbereichs durchgeführt (d. h. der Speicherbereich, der durch eine Snoop-Adresse oder eine passende Adresse in einem Cache angegeben wird) (S1210). Dann wird basierend auf diesen beiden beiden vorangegangenen Bestimmungen (S1200 und S1210), ein Snoop-Treffer/Fehlt gemacht (S1220).
-
Somit können die Snoop-Treffer/Fehlt-Bestimmungen verschiedentlich zwischen Anforderer, Steuerungsprogrammen und Speicherbereichen zugeschrieben werden, solange der Betriebsmodus für jeden Anforderer und Steuerungsprogramm, sowie die sichere/nicht-sichere Natur des Zielspeicherbereichs berücksichtigt werden.
-
Verglichen mit dem Verfahren aus 12, ist 13 ist ein Flussdiagramm, das Verfahren wie das vorher in Bezug auf 9 beschriebene zusammenfasst. Hier müssen der Betriebsmodus von sowohl Anforderer als auch Steuerungsprogramm nicht berücksichtigt werden. Stattdessen wird eine aktuelle Snoop-Anfrage betrachtet und eine Bestimmung wird vorgenommen, ob diese eine sicheren oder nicht-sichere Betriebsart angibt (beispielsweise durch Berücksichtigung von Daten, die ein Sicherheitsmerkmal angeben) (S1300). Falls ein Sicherheitsmodus durch die Snoop-Anfrage angezeigt wird (S1300 = JA), dann wird eine zweite Bestimmung gemacht, ob eine entsprechende Adresse (z. B. eine Snoop-Adresse) einen sicheren Speicherbereich anzeigt (S1310). Falls die Zieladresse einen sicheren Speicherbereich angibt, dann wird ein Snoop-Treffer erzeugt (S1330), sonst ein Snoop-Fehlt erzeugt (S1340).
-
Falls jedoch ein nicht-sicherer Modus durch die Snoop-Anfrage angezeigt wird (S1300 = NEIN), dann wird die zweite Bestimmung gemacht, ob eine entsprechende Adresse (z. B. eine Snoop-Adresse) einen sicheren Speicherbereich anzeigt (S1320). Falls die Zieladresse einen sicheren Speicherbereich angibt, dann wird ein Snoop-Fehlt erzeugt (S1340), sonst ein Snoop-Treffer erzeugt (S1330).
-
Die vorstehenden beispielhaften Verfahren und Ergebnis-Tabellen veranschaulichen, wie Betriebsmodi für verschiedene Elemente der Steuerung 200 aus 1, bereitgestellte Snoop-Adressen und zugehörige Sicherheitsmerkmale, und Zielspeicherbereiche und zugehörige Sicherheitsmerkmale unterschiedlich in Betracht gezogen werden können, um Snoop-Fehlt/Treffer-Ergebnisse anzuzeigen, die in Ausprägung und konstituierender Natur variieren.
-
11 ist ein konzeptionelles Diagramm, das Betriebsarten für ein oder mehrere Elemente der Steuerung 200 aus 1 zeigt in Bezug auf einen Firmware-Ausführung (eine ”Schalten-” oder ”SW-”Betrieb) in sowohl dem sichereren als auch dem nicht-sicheren Betriebsmodus. In Bezug auf 1 und 11, kann das erste Master-Gerät 220 SW ausführen, um in dem sicheren Modus zu arbeitet. Das SW, das von dem ersten Master-Gerät 220 ausgeführt wird, kann den Betrieb des zweiten Master-Geräts 240 steuern.
-
Das erste Master-Gerät 220 kann das erste Steuersignal CTR1 zum Einstellen des Betriebsmodus des zweiten Master-Gerät 240 in den sicheren Modus an die zweite Steuerung 230 kommunizieren. Die zweite Steuerung 230 kann das erste Steuersignal CTR1 im SFR 235 einstellen. Das zweite Sicherheitsmerkmal AT2 zeigt den sicheren Modus gemäß dem ersten Steuersignal CTR1 an, der in dem SFR 235 eingestellt ist.
-
Das SW kann die Cache-Steuerung 242 steuern, um alle Daten aus dem Cache 244 zu löschen. Wenn alle Daten aus dem Cache 244 gelöscht werden (CACHE FLUSH1), kann das zweite Master-Gerät 240 in dem sicheren Modus gemäß dem Steuerbefehl des SW operieren. Während das zweite Master-Gerät 240 ist in dem sicheren Modus arbeitet, können Daten in dem Cache 244 gespeichert werden.
-
Danach kann das erste Master-Gerät 220 an die zweiten Steuerung 230 das erste Steuersignal CTR1 zum Einstellen des Betriebsmodus des zweiten Master-Geräts 240 in den nicht-sicheren Modus senden. Die zweite Steuerung 230 kann das erste Steuersignal CTR1 im SFR 235 einstellen. Das zweite Sicherheitsmerkmal AT2 zeigt den nicht-sicheren Modus gemäß dem ersten Steuersignal CTR1 an, der in dem SFR 235 eingestellt ist.
-
Das SW kann die Cache-Steuerung 242 steuern, um alle Daten zu löschen, die in dem Cache 244 gespeichert sind, während das zweite Master-Gerät 240 in dem sicheren Modus betrieben wurde. Wenn alle Daten aus dem Cache 244 gelöscht werden (CACHE FLUSH2), kann das zweite Master-Gerät 240 in dem nicht-sicheren Modus gemäß dem Steuerbefehl des SW operieren. Da alle Daten, die in dem Cache 244 während des sicheren Modus gespeichert sind, vor oder unmittelbar vorher gelöscht werden, bevor das zweite Master-Gerät 240 beginnt in dem nicht-sicheren Modus zu operieren, wird die Sicherheit der Steuerung 200 erhöht.
-
Mit anderen Worten, die Cash-Entleer-Operationen CACHE FLUSH1 und CACHE FLUSH2 können jeweils bei Eintritt und Verlassen des Sicherheitsmodus durchgeführt werden. Als Ergebnis werden alle in dem Cache 244 gespeicherten Daten gelöscht.
-
Wenn zum Beispiel ein Sicherheitsmerkmal nicht für jede Adresse oder jede Cache-Zeile in dem Cache 244 unterstützt wird, oder wenn das Sicherheitsmerkmal nicht identifiziert werden kann, können alle in dem Cache 244 gespeicherten Daten gelöscht werden, wie oben beschrieben. Wenn jedoch ein Sicherheitsmerkmal für jede Adresse oder jede Cache-Zeile in dem Cache 244 unterstützt wird, oder wenn das Sicherheitsmerkmal identifiziert werden kann, müssen all die Daten, die in den Cache 244 gespeichert sind, nicht gelöscht werden.
-
Wie beschrieben wurde anhand der 1 bis 11, kann der master-seitige Filter 250 in der Steuerung 200 für Snoop-Steuerung implementiert werden und eine Snoop-Operation (oder eine primäre Sicherheitsüberprüfung während der Snoop-Operation) wird durch den master-seitigen Filter 250 durchgeführt, anstelle dem slave-seitigen Filter 280. Daher muss der Zugriff auf den slave-seitigen Filter 280 nicht für die Snoop-Operation erforderlich sein (oder die primäre Sicherheitsüberprüfung in der Snoop-Operation).
-
Snoop-Zeit oder Snoop-Latenz kann basierend auf nur einem Signal erkannt werden, das zwischen dem ersten Master-Gerät 220 und dem zweiten Master-Gerät 240 übertragen wird. Als Ergebnis wird überflüssiger Zeitaufwand für die Snoop-Operation in der Steuerung 200, einschließlich dem master-seitigen Filter 250 beseitigt.
-
Wie oben beschrieben, beseitigt gemäß einigen Ausführungsformen des erfinderischen Konzepts ein Anwendungsprozessor oder ein kohärentes Cache-System, das einem master-seitigen Filter umfasst, Write-Back-Traffic und Speicher-Lese-Anfrage-Traffic für eine Sicherheitsüberprüfung in einer Snoop-Operation in einem Datenverarbeitungssystem, das einen Sicherheitsmodus und einen nicht-sicheren Modus unterstützt. Der master-seitige Filter managet volle Cache-Kohärenz.
-
Wenn der Anwendungsprozessor oder das cache-kohärente System ein Master-Gerät umfasst, das einen internen Cache in einem cache-kohärenten Netzwerk aufweist, wird der Überschuss des Anwendungsprozessors oder des cache-kohärenten Systems verringert oder beseitigt. Der Anwendungsprozessor oder das cache-kohärente System, die den master-seitigen Filter umfassen, benötigen keine Änderung oder Modifikation der Hardware für eine cache-kohärente Verbindung. Zusätzlich benötigen der Anwendungsprozessor oder das cache-kohärente System, die den master-seitigen Filter umfassen, keine Änderung oder Modifikation der Hardware für ein Master-Gerät, das Nicht-Sicherheits-Erkenntnis oder Nicht-Vertrauens-Erkenntnis umfasst.
-
Im Vergleich mit konventionellen Lösungen verhindert der Anwendungsprozessor oder das cache-kohärente System, das den master-seitigen Filter umfasst, gemäß einigen Ausführungsformen des erfinderischen Konzepts, zeitlichen Überschuss für das cache-kohärente Netzwerk. Da der Anwendungsprozessor oder das cache-kohärente System SW zur Umwandlung (oder Umschaltung) zwischen dem sicheren Modus und dem nicht-sicheren Modus ausführt, wird Bereichs-Überschuss für eine Logik-Entscheidungs-Schaltung reduziert oder minimiert.
-
Während die erfinderischen Ideen gezeigt und geschrieben wurden, mit Bezug auf beispielhafte Ausführungsformen davon, versteht der Fachmann, dass vielerlei Veränderungen in der Form und den Details gemacht werden können, ohne von dem Geiste und dem Umfang der vorliegenden Erfindung abzuweichen, wie sie in den anhängigen Ansprüchen festgelegt ist.
-
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
-
- KR 10-2016-0021651 [0001]