DE102016211986A1 - Cache-kohärentes System, das master-seitigen Filter umfasst und Datenverarbeitungssystem, das diesen umfasst - Google Patents

Cache-kohärentes System, das master-seitigen Filter umfasst und Datenverarbeitungssystem, das diesen umfasst Download PDF

Info

Publication number
DE102016211986A1
DE102016211986A1 DE102016211986.9A DE102016211986A DE102016211986A1 DE 102016211986 A1 DE102016211986 A1 DE 102016211986A1 DE 102016211986 A DE102016211986 A DE 102016211986A DE 102016211986 A1 DE102016211986 A1 DE 102016211986A1
Authority
DE
Germany
Prior art keywords
security feature
master
address
master device
snoop
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102016211986.9A
Other languages
English (en)
Inventor
Woo Hyung CHUN
Sik Kim
Seong Min Jo
Jae Young Hur
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020160021651A external-priority patent/KR102485999B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102016211986A1 publication Critical patent/DE102016211986A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1433Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Abstract

Ein Anwendungsprozessor ist vorgesehen. Der Anwendungsprozessor umfasst eine cache-kohärente Verbindung, ein erstes Master-Gerät, das mit der cache-kohärenten Verbindung verbunden ist, ein zweites Master-Gerät und einen master-seitigen Filter, der zwischen die cache-kohärente Verbindung und das zweiten Master-Gerät verbunden ist. Der master-seitige Filter empfängt von dem ersten Master-Gerät durch die cache-kohärente Verbindung eine Snoop-Anfrage, vergleicht ein zweites Sicherheitsmerkmal des zweiten Master-Geräts mit einem ersten Sicherheitsmerkmal des ersten Master-Geräts, das in der Snoop-Anfrage enthalten ist, und bestimmt, ob eine Adresse, die in der Snoop-Anfrage enthalten ist, an das zweiten Master-Gerät gemäß einem Vergleichsergebnis zu übertragen ist.

Description

  • 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]

Claims (23)

  1. 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.
  2. Anwendungsprozessor nach Anspruch 1, wobei das erste Sicherheitsmerkmal entweder einen sicheren Modus oder einen nicht-sicheren Modus für das erste Master-Gerät anzeigt, und das zweite Sicherheitsmerkmal entweder den sicheren Modus oder den nicht-sicheren Modus für das zweite Master-Gerät anzeigt.
  3. Anwendungsprozessor nach Anspruch 2, wobei bei dem Bestimmen, dass die erste Snoop-Adresse nicht an das zweite Master-Gerät kommuniziert werden soll, der master-seitige Filter des Weiteren konfiguriert ist zum Kommunizieren eines ersten Cache-Fehlt an das erste Master-Gerät über die cache-kohärente Verbindung.
  4. Anwendungsprozessor nach Anspruch 3, wobei das zweite Master-Gerät umfasst: ein Cache, der konfiguriert ist zum Speichern von wenigstens einer Adresse und Daten, die jeweils einer der wenigstens einen Adresse entsprechen; und eine Cache-Steuerung, die konfiguriert ist zum Vergleichen von jeder der wenigstens einen Adresse mit der ersten Snoop-Adresse, wenn von dem master-seitigen Filter kommuniziert, und bei dem Identifizieren einer passenden Adresse für die erste Snoop-Adresse unter der wenigstens einen Adresse, Kommunizieren von Daten entsprechend der passenden Adresse an den master-seitigen Filter, ansonsten Kommunizieren eines zweiten Cache-Fehlt an den master-seitigen Filter.
  5. Anwendungsprozessor nach Anspruch 4, wobei der master-seitige Filter des Weiteren konfiguriert ist zum Kommunizieren eines der ersten Cache-Fehlt, der entsprechenden Daten, oder des zweiten Cache-Fehlt an das erste Master-Gerät über die cache-kohärente Verbindung.
  6. Anwendungsprozessor nach Anspruch 1, der des Weiteren umfasst: eine Steuerung, die konfiguriert ist zum Bestimmen des zweiten Sicherheitsmerkmals in Reaktion auf ein Steuersignal, das von dem ersten Master-Gerät kommuniziert wird, wobei die Steuerung konfiguriert ist zum Kommunizieren des zweiten Sicherheitsmerkmals an den master-seitigen Filter mittels einer zugeordneten Übertragungsleitung.
  7. Anwendungsprozessor nach Anspruch 1, wobei der master-seitige Filter umfasst: eine Speichervorrichtung, die konfiguriert ist zum Speichern von wenigstens einer Adresse und für jeder der wenigstens einen Adresse, einen entsprechenden Speicherbereich; und eine Entscheidungs-Logikschaltung, die mit der Speichervorrichtung verbunden ist und konfiguriert ist zum Vergleichen des ersten Sicherheitsmerkmals mit dem zweiten Sicherheitsmerkmal, und zum Vergleichen der ersten Snoop-Adresse mit jeder der wenigstens einen Adresse.
  8. Anwendungsprozessor nach Anspruch 7, wobei bei der Bestimmung, dass das erste Sicherheitsmerkmal das gleiche ist wie das zweite Sicherheitsmerkmal und beim Feststellen, dass die erste Snoop-Adresse die gleiche wie eine passende Adresse unter der wenigstens einen Adresse ist, die Entscheidungs-Logikschaltung des Weiteren konfiguriert ist zum kommunizieren der ersten Snoop-Adresse an das zweite Master-Gerät, und beim Bestimmen, dass das erste Sicherheitsmerkmal sich von dem zweiten Sicherheitsmerkmal unterscheidet oder beim Bestimmen, dass die erste Snoop-Adresse sich von jeder der wenigstens einen Adresse unterscheidet, die Entscheidungs-Logikschaltung des Weiteren konfiguriert ist zum Kommunizieren eines Cache-Fehlt an den ersten Master über die cache-kohärente Verbindung.
  9. Anwendungsprozessor nach Anspruch 7, wobei die Speichervorrichtung des Weiteren konfiguriert ist zum Speichern eines entsprechenden Sicherheitsmerkmals für jeden Speicherbereich; die Entscheidungs-Logikschaltung des Weiteren konfiguriert ist zum Bestimmen, ob das erste Sicherheitsmerkmal das gleiche wie ein zweites Sicherheitsmerkmal ist, und ob ein erstes Sicherheitsmerkmal entsprechend einem Speicherbereich, das durch die erste Snoop-Adresse angezeigt wird, das gleiche ist wie ein zweites Sicherheitsmerkmal entsprechend einem Speicherbereich, der durch eine passende Adresse unter der wenigstens einen Adresse angezeigt wird, und die Entscheidungs-Logikschaltung nur dann bestimmt, dass die erste Snoop-Adresse an das zweite Master-Gerät kommuniziert wird, falls das erste Sicherheitsmerkmal das gleiche wie das zweite Sicherheitsmerkmal ist.
  10. Anwendungsprozessor nach Anspruch 2, wobei das erste Master-Gerät des Weiteren konfiguriert ist zum Steuern einer Operation des zweiten Master-Geräts so, dass alle sicheren Daten, die in einem Cache des zweiten Master-Geräts während Sicherheitsmodusbetrieb gespeichert werden, gelöscht werden, wenn das zweite Master-Gerät den Sicherheitsmodus beendet und in den nicht-sicheren Modus eintritt.
  11. Anwendungsprozessor nach Anspruch 1, der des Weiteren einen slave-seitigen Filter umfasst, der mit der cache-kohärenten Verbindung verbunden ist und konfiguriert ist zum Zugreifen auf eine Hauptspeichervorrichtung in Reaktion auf eine Speicherzugriffsanfrage, die von dem ersten Master-Gerät empfangen wird, wobei der slave-seitige Filter die Snoop-Operation nicht durchführen kann, die von dem master-seitigen Filter ausgeführt wird.
  12. Anwendungsprozessor nach Anspruch 1, wobei das erste Master-Gerät eine zentrale Verarbeitungsschaltung (CPU) ist, und das zweite Master-Gerät eines aus einer Grafikverarbeitungseinheitt (GPU), einer Allzweck-Computing-auf-Grafikverarbeitungseinheit (GPGPU), und einem digitalen Signalprozessor (DSP) ist.
  13. Datenverarbeitungssystem, das umfasst: eine Steuerung, die mit einer Hauptspeichervorrichtung verbunden ist, die extern zu der Steuerung angeordnet ist, 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.
  14. Datenverarbeitungssystem nach Anspruch 13, wobei das erste Sicherheitsmerkmal entweder einen sicheren Modus oder einen nicht-sicheren Modus für das erste Master-Gerät anzeigt, das zweite Sicherheitsmerkmal entweder den sicheren Modus oder den nicht-sicheren Modus für das zweite Master-Gerät anzeigt, und bei dem Bestimmen, dass die erste Snoop-Adresse nicht an das zweite Master-Gerät kommuniziert werden soll, der master-seitige Filter des Weiteren konfiguriert ist zum Kommunizieren eines ersten Cache-Fehlt an das erste Master-Gerät über die cache-kohärente Verbindung.
  15. Datenverarbeitungssystem nach Anspruch 14, wobei das zweite Master-Gerät umfasst: ein Cache, der konfiguriert ist zum Speichern von wenigstens einer Adresse und Daten, die jeweils einer der wenigstens einen Adresse entsprechen; und eine Cache-Steuerung, die konfiguriert ist zum Vergleichen von jeder der wenigstens einen Adresse mit der ersten Snoop-Adresse, wenn von dem master-seitigen Filter kommuniziert, und bei dem Identifizieren einer passenden Adresse für die erste Snoop-Adresse unter der wenigstens einen Adresse, Kommunizieren von Daten entsprechend der passenden Adresse an den master-seitigen Filter, ansonsten Kommunizieren eines zweiten Cache-Fehlt an den master-seitigen Filter.
  16. Datenverarbeitungssystem nach Anspruch 15, wobei der master-seitige Filter des Weiteren konfiguriert ist zum Kommunizieren eines der ersten Cache-Fehlt, der entsprechenden Daten, oder des zweiten Cache-Fehlt an das erste Master-Gerät über die cache-kohärente Verbindung.
  17. Datenverarbeitungssystem nach Anspruch 13, das des Weiteren umfasst: eine Steuerung, die konfiguriert ist zum Bestimmen des zweiten Sicherheitsmerkmals in Reaktion auf ein Steuersignal, das von dem ersten Master-Gerät kommuniziert wird, wobei die Steuerung konfiguriert ist zum Kommunizieren des zweiten Sicherheitsmerkmals an den master-seitigen Filter mittels einer zugeordneten Übertragungsleitung.
  18. Datenverarbeitungssystem nach Anspruch 13, wobei die der master-seitige Filter umfasst: eine Speichervorrichtung, die konfiguriert ist zum Speichern von wenigstens einer Adresse und für jeder der wenigstens einen Adresse, einen entsprechenden Speicherbereich; und eine Entscheidungs-Logikschaltung, die mit der Speichervorrichtung verbunden ist und konfiguriert ist zum Vergleichen des ersten Sicherheitsmerkmals mit dem zweiten Sicherheitsmerkmal, und zum Vergleichen der ersten Snoop-Adresse mit jeder der wenigstens einen Adresse.
  19. Datenverarbeitungssystem nach Anspruch 14, wobei das erste Master-Gerät des Weiteren konfiguriert ist zum Steuern einer Operation des zweiten Master-Geräts so, dass alle sicheren Daten, die in einem Cache des zweiten Master-Geräts während Sicherheitsmodusbetrieb gespeichert werden, gelöscht werden, wenn das zweite Master-Gerät den Sicherheitsmodus beendet und in den nicht-sicheren Modus eintritt.
  20. 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, wobei 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.
  21. Verfahren nach Anspruch 20, wobei das erste Sicherheitsmerkmal entweder einen sicheren Modus oder einen nicht-sicheren Modus für das erste Master-Gerät anzeigt, und das zweite Sicherheitsmerkmal entweder den sicheren Modus oder den nicht-sicheren Modus für das zweite Master-Gerät anzeigt.
  22. 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, wobei 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.
  23. Verfahren nach Anspruch 22, wobei die Bestimmung, ob der Sicherheitsmodus für den wenigstens einen des Anforderers und/oder des Steuerungsprogramms angezeigt wird, eine erste Bestimmung umfasst, ob der Sicherheitsmodus für den Anforderer angezeigt wird, eine zweite Bestimmung umfasst, ob der Sicherheitsmodus für das Steuerungsprogramm angezeigt wird.
DE102016211986.9A 2015-07-01 2016-07-01 Cache-kohärentes System, das master-seitigen Filter umfasst und Datenverarbeitungssystem, das diesen umfasst Pending DE102016211986A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562187365P 2015-07-01 2015-07-01
US62/187,365 2015-07-01
KR1020160021651A KR102485999B1 (ko) 2015-07-01 2016-02-24 마스터-사이드 필터를 포함하는 캐시 코히런트 시스템과 이를 포함하는 데이터 처리 시스템
KR10-2016-0021651 2016-02-24

Publications (1)

Publication Number Publication Date
DE102016211986A1 true DE102016211986A1 (de) 2017-01-05

Family

ID=57582850

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016211986.9A Pending DE102016211986A1 (de) 2015-07-01 2016-07-01 Cache-kohärentes System, das master-seitigen Filter umfasst und Datenverarbeitungssystem, das diesen umfasst

Country Status (4)

Country Link
US (1) US9864687B2 (de)
JP (1) JP6739253B2 (de)
CN (1) CN106326148B (de)
DE (1) DE102016211986A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10628611B2 (en) * 2016-11-04 2020-04-21 Qualcomm Incorporated Exclusive execution environment within a system-on-a-chip computing system
CN108805276B (zh) * 2017-06-16 2020-09-22 上海兆芯集成电路有限公司 处理器、用于操作处理器的方法和计算机可用介质
JP6776292B2 (ja) * 2018-03-20 2020-10-28 株式会社東芝 情報処理装置、情報処理方法、およびプログラム
US10521236B2 (en) * 2018-03-29 2019-12-31 Intel Corporation Branch prediction based on coherence operations in processors
CN112612726B (zh) * 2020-12-08 2022-09-27 海光信息技术股份有限公司 基于缓存一致性的数据存储方法、装置、处理芯片及服务器
US11044256B1 (en) * 2020-12-22 2021-06-22 AppOmni, Inc. Classification management
US11874783B2 (en) 2021-12-21 2024-01-16 Advanced Micro Devices, Inc. Coherent block read fulfillment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160021651A (ko) 2014-08-18 2016-02-26 정형진 멸치 자숙장치

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5680577A (en) 1995-04-27 1997-10-21 International Business Machines Corporation Method and system for processing multiple requests for data residing at the same memory address
US5966729A (en) * 1997-06-30 1999-10-12 Sun Microsystems, Inc. Snoop filter for use in multiprocessor computer systems
US6412047B2 (en) * 1999-10-01 2002-06-25 Stmicroelectronics, Inc. Coherency protocol
US6526430B1 (en) * 1999-10-04 2003-02-25 Texas Instruments Incorporated Reconfigurable SIMD coprocessor architecture for sum of absolute differences and symmetric filtering (scalable MAC engine for image processing)
CN1291747A (zh) * 2000-11-24 2001-04-18 李楠甍 高速缓存设备及其使用方法
US6839808B2 (en) 2001-07-06 2005-01-04 Juniper Networks, Inc. Processing cluster having multiple compute engines and shared tier one caches
US6842828B2 (en) 2002-04-30 2005-01-11 Intel Corporation Methods and arrangements to enhance an upbound path
EP1870814B1 (de) 2006-06-19 2014-08-13 Texas Instruments France Verfahren und Vorrichtung für sicheren, nachfragebasierten Seitenabruf für Prozessorvorrichtungen
US7434008B2 (en) * 2004-04-23 2008-10-07 Hewlett-Packard Development Company, L.P. System and method for coherency filtering
US7373462B2 (en) 2005-03-29 2008-05-13 International Business Machines Corporation Snoop filter for filtering snoop requests
US7650479B2 (en) 2006-09-20 2010-01-19 Arm Limited Maintaining cache coherency for secure and non-secure data access requests
US20110153944A1 (en) 2009-12-22 2011-06-23 Klaus Kursawe Secure Cache Memory Architecture
US8612516B2 (en) * 2011-11-28 2013-12-17 Wyse Technology Inc. Deployment of a driver or an application on a client device having a write-filter
US20130318308A1 (en) * 2012-05-24 2013-11-28 Sonics, Inc. Scalable cache coherence for a network on a chip
US9129071B2 (en) 2012-10-24 2015-09-08 Texas Instruments Incorporated Coherence controller slot architecture allowing zero latency write commit
US8930638B2 (en) 2012-11-27 2015-01-06 Qualcomm Technologies, Inc. Method and apparatus for supporting target-side security in a cache coherent system
CN104462007B (zh) * 2013-09-22 2018-10-02 南京中兴新软件有限责任公司 实现多核间缓存一致性的方法及装置
US10078589B2 (en) * 2015-04-30 2018-09-18 Arm Limited Enforcing data protection in an interconnect

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160021651A (ko) 2014-08-18 2016-02-26 정형진 멸치 자숙장치

Also Published As

Publication number Publication date
CN106326148B (zh) 2020-06-23
JP6739253B2 (ja) 2020-08-12
US9864687B2 (en) 2018-01-09
CN106326148A (zh) 2017-01-11
JP2017016660A (ja) 2017-01-19
US20170004084A1 (en) 2017-01-05

Similar Documents

Publication Publication Date Title
DE102016211986A1 (de) Cache-kohärentes System, das master-seitigen Filter umfasst und Datenverarbeitungssystem, das diesen umfasst
DE102007030116B4 (de) Snoop-Filter mit ausschließlicher Inhaberschaft
DE112005002672B4 (de) Dynamische Neukonfiguration eines Cache-Speichers
DE112008002018B4 (de) Bereitstellen eines gemeinsam genutzten Inklusiv-Cache bei Mehrkern-Cache-Clustern
DE102013114256B4 (de) Systeme und Verfahren zur Beibehaltung der Informationskohärenz
DE102007006190B4 (de) Techniken zur Verwendung von Speicher-Attributen
DE112013000889B4 (de) Weiterleitungsfortschritts-Mechanismus für Speichervorgänge bei Vorhandensein von Ladekonflikten in einem Ladevorgänge begünstigenden System
DE112012005210B4 (de) Bereitstellen eines gemeinsamen Caching-Agenten für ein Kern- und integriertes Ein-/Ausgabe-(IO)-Modul
DE102021121062A1 (de) System, vorrichtung und verfahren zur dynamischen bereitstellung kohärenter speicherdomänen
DE112010001467B4 (de) Steuerung von Blöcken einer On-Die-System-Struktur
DE102019105879A1 (de) Verwaltung von kohärenten Verknüpfungen und Mehr-Ebenen-Speicher
DE102010053097A1 (de) Memory-Controller-Funktionalitäten zur Unterstützung von Daten-Swizzling
DE112011105901B4 (de) Verfahren und Vorrichtung zur Energieeinsparung für First In First Out (FIF0)-Speicher
DE112017001020T5 (de) Unterstützung einer vielzahl von speichertypen in einem speichersteckplatz
DE102007032307A1 (de) Dedizierter Mechanismus zur Seitenabbildung in einer GPU
DE112009000373T5 (de) Technik, um Information zwischen unterschiedlichen Kohärenz-Domains von Caches zu nutzen
DE112008001679T5 (de) Cache-Speicher mit konfigurierbarer Assoziativität
DE112008002019T5 (de) Auslagern von Eingabe/Ausgabe (I/O)-Virtualisierungsarbeitsgängen an einem Prozessor
DE202010018020U1 (de) Opportunistische Verbesserung einer MMIO-Anfrageabwicklung aufgrund eines Zielberichts von Raumerfordernissen
DE102007018033A1 (de) Kohärenzverzeichnisaktualisierung
DE102021121105A1 (de) Intelligente ablagespeichervorrichtung
DE102014100031A1 (de) Ein-Chip-System mit Speicherverwaltungseinheit und Speicheradressen-Übersetzungsverfahren hiervon
DE112012004926B4 (de) Gemeinsame Speichernutzung durch Prozessoren
DE112012003462T5 (de) Durchführung einer atomaren Operation ohne Stilllegung einer Verbindungsstruktur
DE112010002777T5 (de) Verzeichnis-Cache-Allokation basierend auf Snoop-Antwort-Informationen

Legal Events

Date Code Title Description
R012 Request for examination validly filed