DE102019215455A1 - KONFIGURATIONS-CACHE FÜR DIE ARM SMMUv3 - Google Patents

KONFIGURATIONS-CACHE FÜR DIE ARM SMMUv3 Download PDF

Info

Publication number
DE102019215455A1
DE102019215455A1 DE102019215455.7A DE102019215455A DE102019215455A1 DE 102019215455 A1 DE102019215455 A1 DE 102019215455A1 DE 102019215455 A DE102019215455 A DE 102019215455A DE 102019215455 A1 DE102019215455 A1 DE 102019215455A1
Authority
DE
Germany
Prior art keywords
tag
field
configuration cache
mapping
fields
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
DE102019215455.7A
Other languages
English (en)
Inventor
Manan Salvi
Albert Ma
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.)
Marvell Asia Pte Ltd
Original Assignee
Marvell World Trade 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
Application filed by Marvell World Trade Ltd filed Critical Marvell World Trade Ltd
Publication of DE102019215455A1 publication Critical patent/DE102019215455A1/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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • 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
    • G06F2212/1024Latency reduction
    • 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/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/651Multi-level translation tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

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

Abstract

Verfahren zum Abbilden einer virtuellen Adresse auf eine physikalische Speicheradresse in einem ARM SMMUv3-System, umfassend, beim Empfangen der virtuellen Adresse und eines zugehörigen Tags, das Durchsuchen eines Konfigurations-Cache-Speichers nach einem passenden Tag, das mit dem zugehörigen Tag übereinstimmt, und das Extrahieren eines dem passenden Tag zugeordneten passenden Datenfeldes in einem einzigen Speichernachschlagezyklus, wenn der passende Tag im Konfigurations-Cache-Speicher gefunden wird. Das passende Datenfeld des Konfigurations-Cache kann einen passenden Stream Table Entry (STE) und einen passenden Context Descriptor (CD) umfassen, die beide dem passenden Tag zugeordnet sind. Der Konfigurations-Cache kann als inhaltsadressierbarer Speicher konfiguriert werden. Das Verfahren kann ferner das Speichern von Einträgen, die mit einer Abbildung von virtueller Adresse auf physikalische Adresse verknüpft sind, in den Konfigurations-Cache-Speicher umfassen, wobei jeder der Einträge einen Tag, einen zugehörigen STE und einen zugehörigen CD umfasst.

Description

  • HINTERGRUND DER ERFINDUNG
  • Eine Systemspeicherverwaltungseinheit (SMMU) bildet virtuelle Speicheradressen auf physikalische Speicheradressen für Eingabe-/Ausgabevorrichtungen (I/O) ab. Im Allgemeinen kann der Abbildungsprozess mehrere Schritte erfordern, wobei sich jeder Schritt auf Tabellen, die im Speicher gespeichert sind, stützt. Da der Zugriff auf den Speicher relativ langsam ist, ist es von Vorteil, die Ergebnisse der Abbildung, sowie alle Zwischenschritte zwischenzuspeichern, damit darauffolgende Zugriffe auf ähnliche Speicherorte die Speicherzugriffe überspringen können, wodurch der Abbildungsprozess beschleunigt wird. Eine SMMU weist das zusätzliche Problem auf, für mehrere Geräte eine Abbildung durchzuführen, die jeweils einem anderen Gast zugordnet sein können, und somit muss sie möglicherweise für jedes Gerät eine andere Abbildung durchführen.
  • Die ARM SMMUv3-Abbildungsumgebung unterstützt eine große Anzahl von Geräten und eine zweistufige Abbildung. Geräte stellen Speicheranforderungen an die SMMU vierfach dar:
    • • StreamID (SID) - identifiziert das bestimmte Gerät (oder das virtuelle Gerät), das die Anforderung einleitet.
    • • Substream-gültig (SSV) - gibt an, ob ein gültiger SubstreamID mit dieser Abbildung verknüpft ist.
    • • SubstreamID (SSID) - identifiziert den Prozess weiter, falls das Gerät pro Prozessebene virtualisiert wird.
    • • Virtuelle Adresse - Die virtuelle Adresse des Speichers, auf den das Gerät zugreifen möchte. Diese Adresse muss auf eine physikalische Speicheradresse abgebildet werden.
  • Die SMMU definiert zwei Gruppen von Strukturen - einen Stream Table und einen Context Descriptor Table. Der Stream Table konfiguriert die zwei Stufen der Abbildung und verweist optional auf den Context Descriptor Table, der die erste Stufe der Abbildung bildet. Ein Stream Table Entry (STE) wird auf der Grundlage von SID aus dem Stream Table ausgewählt, so dass eine Eins-zu-Eins-Abbildung von SID auf STE erfolgt. Ein Context Descriptor (CD) wird aus dem Context Descriptor Table auf der Grundlage von SSID ausgewählt. Da der Speicherort des Context Descriptor Tables selbst aus dem Stream Table Entry stammt, erfolgt eine Viele-zu-Eins-Abbildung von SID/SSID auf CD.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die beschriebenen Ausführungsformen betreffen einen Cache, der im Nachfolgenden als ein Konfigurations-Cache bezeichnet wird, zur Verwendung von einer Systemspeicherverwaltungseinheit (SMMU) in einer ARM-Verarbeitungsumgebung. Die hierin beschriebenen beispielhaften Ausführungsformen beziehen sich auf eine ARM SMMUv3. Wie hierin verwendet, bezieht sich ein ARM auf eine Familie von RISC-Architekturen (Reduced Instruction Set Computing Architectures), die aus dem Stand der Technik bekannt sind.
  • Die SMMU bildet virtuelle Speicheradressen auf physikalische Speicheradressen für eine oder mehrere Client-Vorrichtungen ab. In den beschriebenen Ausführungsformen speichert der Konfigurations-Cache für jede Adressabbildung den Stream Table Entry (STE) und den Context Descriptor (CD) auf der Grundlage der Kombination der dazu gehörigen StreamID (SID) und SubstreamID zusammen. Der Konfigurations-Cache speichert den STE und den CD zusammen mit den passenden Tags für Abbildungen, die unter Verwendung eines Standard-Mehrfachzyklus- (Mehrfachspeicher-Nachschlagezyklus-) Abbildungsprozesses gemäß der ARM SMMUv3-Spezifikation durchgeführt wurden. Die beschriebenen Ausführungsformen ermöglichen die Verwendung eines einzelnen Cache für den STE und den CD anstatt einen separaten Cache für jeweils den STE und den CD zu verwenden.
  • Wenn eine virtuelle Adresse abgebildet werden soll, empfängt die SMMU einen Abfrage-Tag, der der virtuellen Adresse zugeordnet ist. Die SMMU durchsucht den Konfigurations-Cache nach einem gespeicherten Tag, der mit dem Abfrage-Tag übereinstimmt. Wurde eine Übereinstimmung gefunden, verwendet die SMMU den STE und den CD für die Abbildung, anstatt den Standard-Mehrfachzyklus-Abbildungsprozess durchzuführen. Dadurch verringert sich die Anzahl der Zyklen (und folglich der Zeitaufwand), die erforderlich ist, um die Abbildung durchzuführen. Die beschriebenen Ausführungsformen führen somit die zwei verschachtelten Nachschlagetabellen, die in der ARM SMMUv3-Spezifikation beschrieben sind, zu einer einzelnen Nachfrage-Tabelle zusammen.
  • Gemäß einem Aspekt betrifft die Erfindung ein Verfahren zum Abbilden einer virtuellen Adresse auf eine physikalische Speicheradresse in einem ARM SMMUv3-Speicherverwaltungssystem sein. Das Verfahren umfasst nach Empfangen der virtuellen Adresse und eines zugeordneten Tags, das Durchsuchen eines Konfigurations-Cache-Speichers nach einem passenden Tag, der mit dem zugehörigen Tag übereinstimmt. Das Verfahren umfasst ferner das Extrahieren eines dem passenden Tag zugeordneten passenden Datenfeldes in einem einzigen Speichernachschlagezyklus, wenn der passende Tag im Konfigurations-Cache-Speicher gefunden wird. Das passende Datenfeld im Konfigurations-Cache kann einen passenden Stream Table Entry (STE) und einen passenden Context Descriptor (CD) umfassen, die jeweils dem passenden Tag zugeordnet sind.
  • Das Verfahren umfasst ferner das Organisieren des Konfigurations-Cache als Inhalts-adressierbaren Speicher (CAM). Das Verfahren kann ferner das Speichern eines oder mehrerer Einträge, die einer Abbildung mit mehreren Speichernachschlagezyklen von virtueller Adresse auf physikalische Adresse zugeordnet sind, in dem Konfigurations-Cache umfassen, wobei jeder der einen oder mehreren Einträge einen Tag, einen zugehörigen STE und einen zugehörigen CD umfasst. Jeder Tag im Konfigurations-Cache-Speicher kann ein gültiges Feld, ein StreamID- (SID-) Feld, ein Substream-gültiges- (SSV-) Feld und ein SubstreamlD- (SSID-) Feld umfassen, und wobei 15 Bits mit der niedrigsten Signifikanz des SID-Feldes ternäre Bits sind.
  • Das Verfahren kann ferner das Durchführen einer Abbildung von virtueller Adresse auf physikalische Speicheradresse unter Verwendung des passenden STE und des passenden CD umfassen. Das Verfahren kann ferner eine Systemspeicherverwaltungseinheit (SMMU) umfassen, die einen Abfrage-Tag basierend auf dem zugehörigen Tag an den Konfigurations-Cache-Speicher für die Suche sendet. Das Verfahren kann ferner das Durchführen eines Abbildungszyklus von virtueller Adresse auf physikalische Adresse mit mehreren Speichernachschlagezyklen, wenn kein passender Tag im Konfigurations-Cache-Speicher gefunden wird, und das Speichern eines entsprechenden Eintrags im Konfigurations-Cache-Speicher umfassen. Der entsprechende Eintrag kann einen Abbildungs-Tag, der ein gültiges Abbildungsfeld, ein Abbildungs-SID-Feld, ein Abbildungs-SSV-Feld und ein Abbildungs-SSID-Feld umfasst, und ein Abbildungsdatenfeld mit einem Abbildungs-STE und einem Abbildungs-CD umfassen.
  • Das Verfahren kann ferner das Durchführen einer STE-Invalidierungsoperation durch Identifizieren von Einträgen mit identischen Werten in ihren jeweiligen SID-Feldern und entsprechenden gültigen Feldern, die auf einen Wert von 1 gesetzt sind, und Zurücksetzen der entsprechenden gültigen Felder der identifizierten Einträge auf einen Wert von 0 umfassen. Das Verfahren kann ferner das Durchführen einer CD-Invalidierungsoperation durch Identifizieren von Einträgen mit identischen Werten in ihren jeweiligen SID-Feldern, identischen Werten in ihren jeweiligen SSID-Feldern, entsprechenden gültigen Feldern, die auf einen Wert von 1 eingestellt sind, und entsprechenden SSV-Feldern, die auf einen Wert von 1 eingestellt sind, und Zurücksetzen der entsprechenden gültigen Felder der identifizierten Einträge auf einen Wert von 0 umfassen. Das Verfahren kann ferner (i) wenn ein im Konfigurations-Cache zu speichernder Eintrag sein SSV-Feld auf 0 gesetzt hat, das Speichern des Eintrags mit seinem auf 0 gesetzten SSV-Feld und seinem auf 0 gesetzten SSID-Feld, und (ii) während der Durchführung der CD-Invalidierungsoperation, das Ignorieren der entsprechenden SSV-Felder für Einträge mit auf 0 gesetzten SSID-Feldern umfassen.
  • Gemäß einem anderen Aspekt kann die Erfindung ein System zum Abbilden einer virtuellen Adresse von einer Client-Vorrichtung in eine physikalische Speicheradresse zum Adressieren einer physikalischen Speichervorrichtung sein. Das System kann einen Konfigurations-Cache-Speicher, eine Systemspeicherverwaltungseinheit (SMMU), die mit der Client-Vorrichtung, der physikalischen Speichervorrichtung und dem Konfigurations-Cache-Speicher wirkverbunden ist, umfassen. Die SMMU kann konfiguriert sein, um beim Empfangen der virtuellen Adresse und eines zugehörigen Tags den Konfigurations-Cache-Speicher nach einem passenden Tag zu durchsuchen. Die SMMU kann ferner konfiguriert sein, um in einem einzelnen Speichernachschlagezyklus ein Datenfeld zu extrahieren, das mit dem passenden Tag verknüpft ist, wenn der passende Tag im Konfigurations-Cache-Speicher gefunden wird. Jedes Datenfeld des Konfigurations-Cache kann einen Stream Table Entry (STE) und einen Context Descriptor (CD) umfassen, die dem passenden Tag zugeordnet sind.
  • Die SMMU kann ferner konfiguriert sein, um den Konfigurations-Cache als Inhalts-adressierbaren Speicher (CAM) zu organisieren. Die SMMU kann ferner konfiguriert sein, um mindestens einen Eintrag, der einer Abbildung mit mehreren Speichernachschlagezyklen von virtueller Adresse auf physikalische Adresse zugeordnet ist, in einem Konfigurations-Cache-Speicher zu speichern, wobei der mindestens eine Eintrag einen Tag, einen zugehörigen STE und einen zugehörigen CD umfasst. Die SMMU kann ferner konfiguriert sein, um eine Abbildung der virtuellen Adresse auf die physikalische Speicheradresse durchzuführen, indem der STE und der CD, die dem passenden Tag zugeordnet sind, verwendet werden.
  • Die SMMU kann ferner konfiguriert sein, um einen Abfrage-Tag auf der Grundlage des zugeordneten Tags an den Konfigurations-Cache-Speicher für die Suche zu übermitteln.
  • Die SMMU kann ferner konfiguriert sein, um eine Abbildung mit mehreren Speichernachschlagezyklen von virtueller Adresse auf physikalische Adresse durchzuführen, wenn kein passender Tag im Konfigurations-Cache-Speicher gefunden wird, um einen entsprechenden Eintrag im Konfigurations-Cache-Speicher zu speichern. Der entsprechende Eintrag kann (i) ein Abbildungs-Tag mit einem gültigen Abbildungsfeld, einem Abbildungs-SID-Feld, einem Abbildungs-SSV-Feld und einem Abbildungs-SSID-Feld und (ii) ein Abbildungsdatenfeld mit einem Abbildungs-STE und einem Abbildungs-CD umfassen.
  • Die SMMU kann ferner konfiguriert sein, um eine STE-Invalidierungsoperation durchzuführen, indem Einträge mit identischen Werten in ihren jeweiligen SID-Feldern und entsprechenden gültigen Feldern, die auf einen Wert von 1 eingestellt sind, identifiziert werden und die entsprechenden gültigen Felder der identifizierten Einträge auf einen Wert von 0 zurückgesetzt werden.
  • Die SMMU kann ferner konfiguriert sein, um eine CD- Invalidierungsoperation durchzuführen, indem Einträge mit identischen Werten in ihren jeweiligen SID-Feldern, identischen Werten in ihren jeweiligen SSID-Feldern, entsprechenden gültigen Feldern, die auf einen Wert von 1 eingestellt sind, und entsprechenden SSV-Feldern, die auf einen Wert von 1 eingestellt sind, identifiziert werden und die entsprechenden gültigen Felder der identifizierten Einträge auf einen Wert von 0 zurückgesetzt werden.
  • Die SMMU kann ferner konfiguriert sein, um (i) wenn ein im Konfigurations-Cache zu speichernder Eintrag sein SSV-Feld auf 0 gesetzt hat, den Eintrag mit einem auf 0 gesetzten SSV-Feld und seinem auf 0 gesetzten SSID-Feld zu speichern, und (ii) während der Durchführung des CD- Invalidierungsoperation die entsprechenden SSV-Felder für Einträge mit auf 0 gesetzten SSID-Feldern zu ignorieren.
  • Gemäß einer Ausführungsform kann jeder Tag im Konfigurations-Cache-Speicher ein StreamID- (SID-) Feld umfassen, wobei 15 Bits mit der niedrigsten Signifikanz des SID-Feldes ternäre Bits sind.
  • Figurenliste
  • Das Vorstehende wird aus der nachfolgenden genaueren Beschreibung der beispielhaften Ausführungsformen ersichtlich, wie in den begleitenden Zeichnungen dargestellt, wobei sich gleiche Bezugszeichen in den verschiedenen Ansichten auf gleiche Teile beziehen. Die Zeichnungen sind nicht unbedingt maßstabsgetreu, sondern legen den Schwerpunkt auf die Veranschaulichung der Ausführungsformen.
    • 1 zeigt ein Blockdiagramm einer beispielhaften Architektur, die eine SMMU gemäß der Erfindung umfasst.
    • 2 zeigt einen beispielhaften Konfigurations-Cache und seine Struktur gemäß der Erfindung.
    • 3 zeigt ein Diagramm einer beispielhaften inneren Struktur eines Verarbeitungssystems, das zur Realisierung einer oder mehrerer der hierin enthaltenen Ausführungsformen verwendet werden kann.
    • 4 zeigt ein beispielhaftes Verfahren zum Abbilden einer virtuellen Adresse auf eine physikalische Speicheradresse in einem ARM SMMUv3 Speicherverwaltungssystem gemäß der Erfindung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Im Nachfolgenden erfolgt eine Beschreibung der beispielhaften Ausführungsformen.
  • Die Lehren aller hierin genannten Patente, veröffentlichten Anmeldungen und Referenzen sind hierin durch Bezugnahme in ihrer Gesamtheit aufgenommen.
  • Die beschriebenen Ausführungsformen sind auf einen Cache, der im Nachfolgenden als ein Konfigurations-Cache bezeichnet wird, zur Verwendung durch eine Systemspeicherverwaltungseinheit (SMMU) in einer ARM-Verarbeitungsumgebung gerichtet. Die hierin beschriebenen beispielhaften Ausführungsformen beziehen sich auf eine ARM SMMUv3. Wie hierin verwendet, betrifft die ARM eine Familie von RISC-Architekturen (Reduced Instruction Set Computing Architectures), die sie aus dem Stand der Technik bekannt sind.
  • 1 zeigt ein Blockdiagramm einer beispielhaften Architektur, die eine SMMU umfasst. Die Architektur zeigt eine ganze Zahl N an Client-Vorrichtungen 102a bis 102d, eine SMMU 104 und eine physikalische Speichervorrichtung 106. Wie hierin beschrieben, kann die SMMU virtuelle Speicheradressen 108 auf physikalische Speicheradressen 110 für die Client-Vorrichtungen 102a bis 102d abbilden. Die SMMU 104 kann den Konfigurations-Cache 112 verwenden, um die Abbildung zu erleichtern. Obwohl der Konfigurations-Cache 112 in diesem Beispiel als ein Teil der SMMU 104 dargestellt ist, versteht sich, dass der Konfigurations-Cache 112 eine Komponente sein kann, die von der SMMU 104 getrennt ist. Alternativ kann ein erster Abschnitt des Konfigurations-Cache 112 ein Teil der SMMU 104 sein, während ein verbleibender Abschnitt des Konfigurations-Cache 112 getrennt von der SMMU 104 sein kann.
  • Der Konfigurations-Cache wird verwendet, um die Stream Table Entries (STEs) und Context Descriptors (CDs) zu speichern, die von der SMMU 104 verwendet werden, um die virtuellen Adressen von der Client-Vorrichtung (den Client-Vorrichtungen) in physikalische Adressen zur Verwendung von einer physikalischen Speichervorrichtung abzubilden. 2 zeigt einen beispielhaften Konfigurations-Cache 112 und seine Struktur. Der Konfigurations-Cache 112 ist als ein Inhalts-adressierbarer Speicher (CAM) organisiert, wobei jeder Eintrag 202 ein Tag-Feld 204 und ein Datenfeld 206 umfasst. Das Tag-Feld 204 umfasst ein gültiges Feld 208, ein StreamID- (SID-) Feld 210, ein Substream-gültiges- (SSV-) Feld) 212 und ein SubstreamID- (SSID-) Feld 214. Das Datenfeld 206 umfasst ein Stream-Table-Entry (STE-) Feld 216 und ein Context-Descriptor- (CD-) Feld 218.
  • Die SMMU 104 kann einen Abfrage-Tag als eine Eingabe an den Konfigurations-Cache 112 übermitteln. Der Konfigurations-Cache 112 durchsucht seine Inhalte für einen Eintrag mit einem Tag, der mit dem Abfrage-Tag übereinstimmt, und führt die Daten 206, die dem passenden Tag zugeordnet sind, zurück. Das gültige Feld 208 unterscheidet einen gültigen Eintrag im Konfigurations-Cache 112 von einem ungültigen Eintrag. Beim Zurücksetzen werden alle gültigen Bits gelöscht (das heißt, auf 0 gesetzt, wodurch kein ungültiger Eintrag bestimmt wird). Dementsprechend erzeugt der Konfigurations-Cache 112 bei jedem Zyklus (Speichernachschlagezyklus) ein latenzarmes STE/CD-Paar.
  • Im Betrieb wird jede eingehende Abbildungsanfrage an den Konfigurations-Speicher 112 gesendet. Eine Abbildungsanfrage umfasst einen Abfrage-Tag, der mit der virtuellen Adresse, die abgebildet werden soll, verknüpft ist. Wenn eine Suche des Konfigurations-Cache 112 zu einem übereinstimmenden Eintrag führt (in Bezug auf das gültige Feld 208, das SID-Feld 210, das SSV-Feld 212 und das SSID-Feld 214), der im Konfigurations-Cache 112 vorhanden ist, erzeugt der Konfigurations-Cache 112 das zugehörige Datenfeld 206 (das den STE 216 und den CD 218 umfasst) und verwendet anschließend die Informationen aus dem Datenfeld 206 zur Abbildung der virtuellen Adresse.
  • Wird kein passender Eintrag gefunden, werden der STE und der CD für den Abfrage-Tag unter Verwendung des mehrstufigen Verfahrens, wie es in der Architekturspezifikation ARM SMMUv3 festgelegt ist, aus dem Speicher abgerufen. Das Abrufen des STE aus dem Speicher erfordert bis zu zwei sequentielle Speicherzugriffe, und das Abrufen des CD erfordert bis zu 10 weitere sequentielle Speicherzugriffe. Der STE und der CD werden dann im Konfigurations-Cache 112 zur späteren Wiederverwendung gespeichert.
  • Die ARM SMMUv3 benötigt keine Hardwareunterstützung für die Kohärenz der Konfigurationsstruktur-Caches. Vielmehr definiert sie Invalidierungsoperationen, die ein Software ausgegeben können, um die Kohärenz aufrechtzuerhalten.
  • Im Falle einer STE-Invalidierungsoperation kann der Konfigurations-Cache 112 für Einträge mit dem gleichen Wert in ihren SID-Feldern 210 und den entsprechenden auf einen Wert von 1 gesetzten gültigen Feldern 208 durchsucht werden. Die gültigen Felder 208 können dann für alle diese übereinstimmenden Einträge auf einen Wert von 0 gesetzt werden.
  • Im Fall einer CD- Invalidierungsoperation wird der Konfigurations-Cache 112 für Einträge mit dem gleichen Wert in ihren SID-Feldern 210, dem gleichen Wert in ihren SSID-Feldern 214 und den entsprechenden gültigen Feldern 208, die auf einen Wert von 1 eingestellt sind, und den entsprechenden SSV-Feldern 212, die auf einen Wert von 1 eingestellt sind, durchsucht. Die gültigen Felder werden dann für alle diese übereinstimmenden Einträge auf einen Wert von 0 gesetzt.
  • Es können Komplikationen auftreten, da eine Durchführung mit dem auf einen Wert von 0 gesetzten SSV-Feld 212 in einigen Fällen den CD, der SSID = 0 entspricht, abrufen kann. In den beschriebenen Ausführungsform führt eine CD-Invalidierungsoperation dazu, dass jeder Eintrag, bei dem das SSID-Feld aufgrund von zwei Faktoren auf einen Wert von 0 gesetzt ist, ungültig wird. Zunächst werden in den beschriebenen Ausführungsformen solche Einträge im Konfigurations-Cache 112 gespeichert, wobei das SSV-Feld 212 auf einen Wert von 0 und das SSID-Feld 214 auf einen Wert von 0 gesetzt werden, unabhängig davon, welche SSV- und SSID-Werte an die SMMU übergeben wurden. Zweitens ignorieren die CD-Invalidierungen für Einträge mit dem auf einen Wert von 0 gesetzten SSID während der Invalidierungsoperation das SSV-Feld in dem Tag.
  • Die Verwendung des Konfigurations-Cache 112 verbessert die Leistung der SMMU. Der Durchsatz verbessert sich, da die SMMU nun in der Lage ist, eine Anforderung pro Zyklus zu verarbeiten. Ohne den Konfigurations-Cache 112 würde das Speichersystem im Vergleich zum Betrieb mit dem Konfigurations-Cache 112 bis zu dem 12-fachen der Roundtrip-Speicherlatenzzeit in der Anzahl der ausstehenden Anforderungen benötigen, um diesen Durchsatz zu erreichen. Eine solche Latenzzeit ist nicht praktikabel. Darüber hinaus sinkt die Abbildungslatenzzeit um das bis zu 12-fache der Roundtrip-Speicherlatenzzeit.
  • Die beschriebenen Ausführungsformen sind alternativen Cache-Organisationen überlegen. Eine alternative Organisation wäre beispielsweise die Verwendung von zwei unabhängigen Inhalts-adressierbaren Speichern (CAMs), auf die parallel zugegriffen wird, von denen einer die STE-Einträge und einer die CD-Einträge enthält. Im Falle von prozessvirtualisierten Geräten hätte diese Alternative den Vorteil, dass insgesamt nur eine Kopie des STE anstatt eine Kopie pro Prozess gespeichert wird. Der Nachteil ist, dass die SID-Felder im Tag repliziert werden. Darüber hinaus gibt es einen zusätzlichen Area Overhead durch eine zusätzliche CAM-Struktur. Da erwartet wird, dass die Prozessvirtualisierung im allgemeinen Fall wenig genutzt wird, sind die replizierten SID-Felder und der zusätzliche Area Overhead nicht gerechtfertigt.
  • Die ARM SMMUv3 ermöglicht es, dass mehrere Geräte (bis zu 32.768 Geräte), die einen SID-Bereich abdecken, identische STE-Konfigurationen gemeinsam nutzen können, wodurch es möglich ist, Platz im Cache zu sparen. Dies kann im Konfigurations-Cache 112 realisiert werden, indem die unteren 15 Bits des SID-Feldes 210 im Tag 204 zu ternären CAM-Bits gemacht werden. Ein ternärer CAM-Bit kann die Zustände 1, 0 und X codieren, wobei X anzeigt, dass das betreffende Bit immer zu einer Übereinstimmung führt, unabhängig vom zugehörigen Bit im Abfrage-Tag (mit anderen Worten wird dieses Bit ignoriert). Der Wert des Feldes CONT in dem STE kann verwendet werden, um die Anzahl der Bits niedriger Ordnung im SID anzuzeigen, die ignoriert werden sollen. Diese Bits werden beim Speichern des STE als X geschrieben. Bei einem Nachschlage- oder Invalidierungsvorgang stimmt jeder SID im Bereich des ignorierten Bits überein.
  • 3 zeigt ein Diagramm einer beispielhaften inneren Struktur eines Verarbeitungssystems 300, das in Verbindung mit einer oder mehreren der hierin enthaltenen Ausführungsformen verwendet werden kann. Jedes Verarbeitungssystem 300 enthält einen Systembus 302, wobei ein Bus ein Satz von Hardwareleitungen ist, die zur Datenübertragung zwischen den Komponenten eines Computers oder Verarbeitungssystems verwendet werden. Der Systembus 302 ist im Wesentlichen eine gemeinsame Leitung, die unterschiedliche Komponenten eines Bearbeitungssystems (zum Beispiel einen Prozessor, einen Festplattenspeicher, einen Speicher, Eingabe-/Ausgabeschnittstellen, Netzwerkschnittstellen usw.) verbindet, die die Übertragung von Informationen zwischen den Komponenten ermöglichen.
  • Am Systembus 302 I/O-Geräte-Benutzerschnittstelle 304 zum Anschluss verschiedener Ein- und Ausgabegeräte (zum Beispiel Tastatur, Maus, Displays, Drucker, Lautsprecher usw.) mit dem Verarbeitungssystem 300 verbunden. Eine Netzwerkschnittstelle 306 ermöglicht es dem Computer, sich mit verschiedenen anderen Geräten zu verbinden, die an ein Netzwerk 308 angeschlossen sind. Der Speicher 310 bildet einen flüchtigen und einen nicht-flüchtigen Speicher für Informationen, wie beispielsweise Computer-Softwarebefehle, die verwendet werden, um eine oder mehrere der Ausführungsformen der vorliegenden Erfindung, die hierin beschrieben ist, über intern erzeugte Daten und Daten, die von Quellen außerhalb des Verarbeitungssystems 300 empfangen werden, zu realisieren.
  • Eine zentrale Recheneinheit 312 ist ebenfalls mit dem Systembus 302 verbunden und ermöglicht die Ausführung von im Speicher 310 gespeicherten Computerbefehlen. Das System kann auch Hilfselektronik/Logik 314 und eine Kommunikationsschnittstelle 316 umfassen. Die Kommunikationsschnittstelle kann die Schnittstelle zu den Client-Vorrichtungen 102a bis 102d umfassen, die mit Bezug auf 1 beschrieben werden.
  • Gemäß einer Ausführungsform können die im Speicher 310 gespeicherten Information ein Computerprogrammprodukt umfassen, so dass der Speicher 310 ein nichttransitorisches computerlesbares Medium (zum Beispiel, ein Wechselspeichermedium, wie eine oder mehrere DVD-ROMs, CD-ROMs, Disketten, Bänder usw.) umfassen kann, das wenigstens einen Teil der Softwarebefehle für das erfinderische System bildet. Das Computerprogrammprodukt kann durch jedes geeignete Softwareinstallationsverfahren installiert werden, wie es aus dem Stand der Technik bekannt ist. In einer weiteren Ausführungsform kann wenigstens ein Abschnitt der Softwarebefehle über Kabelverbindung und/oder eine drahtlose Verbindung heruntergeladen werden.
  • Gemäß einer Ausführungsform kann die hierin beschriebene SMMU als Teil eines oder in Verbindung mit einem Systembus 302 realisiert werden. Jeder Zugriff auf den Speicher 310, mit Ausnahme derjenigen, die von der zentralen Recheneinheit 312 (die eine Einrichtung mit ähnlicher Funktionsweise wie die SMMU umfasst) initiiert werden, wird von der SMMU abgebildet.
  • 4 zeigt ein beispielhaftes Verfahren 400 zum Abbilden von virtueller Adresse auf physikalische Speicheradresse in einem ARM SMMUv3-Speicherverwaltungssystem gemäß der vorliegenden Erfindung. Das beispielhafte Verfahren umfasst das Organisieren 402 eines Konfigurations-Caches als einen Inhalts-adressierbaren Speicher (CAM). Das Verfahren umfasst ferner das Speichern 404 eines oder mehrerer Einträge, die einer Abbildung mit einem mit einem Mehrfachspeichernachschlagezyklus von virtueller Adresse auf physikalische Adresse zugeordnet sind, in den Konfigurations-Cache-Speicher, wobei jeder des einen oder der mehreren Einträge einen Tag, einen zugehörigen STE und einen zugehörigen CD umfasst. Das Verfahren umfasst ferner, beim Empfangen der virtuellen Adresse und eines zugehörigen Tags, das Durchsuchen 406 des Konfigurations-Cache-Speichers nach einem passenden Tag, der mit dem zugehörigen Tag übereinstimmt. Das Verfahren umfasst ferner das Extrahieren 408 eines passenden Datenfelds, das dem passenden Tag zugeordnet ist, in einem einzigen Speichernachschlagezyklus, wenn der passende Tag in dem Konfigurations-Cache-Speicher gefunden wird, wobei das passende Datenfeld des Konfigurations-Cache einen passenden Stream Table Entry (STE) und einen passenden Context Descriptor (CD) umfasst, die beide dem passenden Tag zugeordnet sind.
  • Es versteht sich, dass eine oder mehrere der hierin beschriebenen Ausführungsformen in vielen verschiedenen Software- und Hardwareformen implementiert sein können. Softwarecodes und/oder bestimmte Hardware, die zur Realisierung der hierin beschriebenen Ausführungsformen verwendet werden, sind nicht auf die Ausführungsformen der beschriebenen Erfindung beschränkt. Somit werden die Funktionsweise und die Art der Ausführungsformen ohne Bezug auf bestimmten Softwarecodes und/oder bestimmte Hardware beschrieben - es versteht sich, dass der Fachmann in der Lage ist, Software und/oder Hardware der Ausführungsformen auf der Grundlage der vorliegenden Beschreibung zu implementieren.
  • Ferner können bestimmte Ausführungsformen der hierin beschriebenen beispielhaften Ausführungsformen als Logik realisiert werden, die eine oder mehrere Funktionen ausführt. Diese Logik kann hardwarebasiert, softwarebasiert oder eine Kombination aus hardwarebasiert und softwarebasiert sein. Ein Teil oder die gesamte Logik kann auf einem oder mehreren körperlichen, nicht-transitorischen, computerlesbaren Speichermedien gespeichert werden und kann computerausführbare Anweisungen umfassen, die von einer Steuerung oder einem Prozessor ausgeführt werden können. Die computerausführbaren Anweisungen können Befehle umfassen, die eine oder mehrere Ausführungsformen der Erfindung umsetzen. Die körperlichen, nicht-transitorischen, computerlesbare Speichermedien können flüchtig oder nicht-flüchtig sein und beispielsweise Flash-Speicher, dynamische Speicher, Wechselplatten und nicht entfernbare Festplatten umfassen.
  • Obwohl beispielhafte Ausführungsformen speziell gezeigt und beschrieben wurden, versteht der Fachmann, dass verschiedene Änderungen hinsichtlich der Form und der Details vorgenommen werden können, ohne vom Umfang der Ausführungsformen abzuweichen, die von den beigefügten Ansprüchen umfasst sind.

Claims (20)

  1. Verfahren zum Abbilden einer virtuellen Adresse auf eine physikalische Speicheradresse in einem ARM SMMUv3 Speicherverwaltungssystem, umfassend: beim Empfangen der virtuellen Adresse und eines zugehörigen Tags, Durchsuchen eines Konfigurations-Cache-Speichers nach einem passenden Tag, der mit dem zugehörigen Tag übereinstimmt; Extrahieren eines dem passenden Tag zugeordneten passenden Datenfeldes in einem einzigen Speichernachschlagezyklus, wenn der passende Tag im Konfigurations-Cache-Speicher gefunden wird, wobei das übereinstimmende Datenfeld des Konfigurations-Cache einen passenden Stream Table Entry (STE) und einen passenden Context Descriptor (CD) umfasst, die beide dem passenden Tag zugeordnet sind.
  2. Verfahren nach Anspruch 1, ferner umfassend das Organisieren des Konfigurations-Caches als Inhalts-adressierbaren Speicher (CAM).
  3. Verfahren nach Anspruch 1, das ferner das Speichern eines oder mehrerer Einträge, die einer Abbildung mit mehreren Speichernachschlagezyklen von virtueller Adresse auf physikalische Adresse zugeordnet sind, in den Konfigurations-Cache-Speicher umfasst, wobei jeder der einen oder mehreren Einträge einen Tag, einen zugehörigen STE und einen zugehörigen CD umfasst.
  4. Verfahren nach Anspruch 3, wobei jeder Tag im Konfigurations-Cache-Speicher ein gültiges Feld, ein StreamID (SID)-Feld, ein Substream-gültiges (SSV)-Feld und ein SubstreamID (SSID)-Feld umfasst, und wobei 15 Bits mit der niedrigsten Signifikanz des SID-Feldes ternäre Bits sind.
  5. Verfahren nach Anspruch 1, ferner umfassend das Durchführen einer Abbildung von virtueller Adresse auf physikalische Speicheradresse unter Verwendung des passenden STE und des passenden CD.
  6. Verfahren nach Anspruch 1, ferner umfassend eine Systemspeicherverwaltungseinheit (SMMU), die einen Abfrage-Tag basierend auf dem zugehörigen Tag an den Konfigurations-Cache-Speicher für die Suche sendet.
  7. Verfahren nach Anspruch 1, ferner umfassend das Durchführen eines Abbildungszyklus von virtueller Adresse auf physikalische Adresse mit mehreren Speichernachschlagezyklen, wenn kein passender Tag im Konfigurations-Cache-Speicher gefunden wird, und das Speichern eines entsprechenden Eintrags im Konfigurations-Cache-Speicher, wobei der entsprechende Eintrag (i) einen Abbildungs-Tag mit einem gültigen Abbildungsfeld, einem Abbildungs-SID-Feld, einem Abbildungs-SSV-Feld und einem Abbildungs-SSID-Feld und (ii) ein Abbildungsdatenfeld mit einem Abbildungs-STE und einem Abbildungs-CD umfasst.
  8. Verfahren nach Anspruch 1, ferner umfassend das Durchführen einer STE-Invalidierungsoperation durch Identifizieren von Einträgen mit identischen Werten in ihren jeweiligen SID-Feldern und entsprechenden gültigen Feldern, die auf einen Wert von 1 gesetzt sind, und Zurücksetzen der entsprechenden gültigen Felder der identifizierten Einträge auf einen Wert von 0.
  9. Verfahren nach Anspruch 1, ferner umfassend ferner das Durchführen einer CD-Invalidierungsoperation durch Identifizieren von Einträgen mit identischen Werten in ihren jeweiligen SID-Feldern, identischen Werten in ihren jeweiligen SSID-Feldern, entsprechenden gültigen Feldern, die auf einen Wert von 1 eingestellt sind, und entsprechenden SSV-Feldern, die auf einen Wert von 1 eingestellt sind, und Zurücksetzen der entsprechenden gültigen Felder der identifizierten Einträge auf einen Wert von 0.
  10. Verfahren nach Anspruch 9, ferner umfassend (i) wenn ein im Konfigurations-Cache zu speichernder Eintrag sein SSV-Feld auf 0 gesetzt hat, Speichern des Eintrags mit seinem auf 0 gesetzten SSV-Feld und seinem auf 0 gesetzten SSID-Feld, und (ii) während der Durchführung der CD-Invalidierungsoperation, Ignorieren der entsprechenden SSV-Felder für Einträge mit auf 0 gesetzten SSID-Feldern.
  11. System zum Abbilden einer virtuellen Adresse von einer Client-Vorrichtung auf eine physikalische Speicheradresse zum Adressieren einer physikalischen Speichervorrichtung, umfassend einen Konfigurations-Cache-Speicher; eine Systemspeicherverwaltungseinheit (SMMU), die mit der Client-Vorrichtung, der physikalischen Speichervorrichtung und dem Konfigurations-Cache-Speicher wirkverbunden ist, wobei die SMMU konfiguriert ist, um nach dem Empfangen der virtuellen Adresse und eines zugehörigen Tags den Konfigurations-Cache-Speicher nach einem passenden Tag zu durchsuchen; in einem einzigen Speichernachschlagezyklus, ein Datenfeld, das dem übereinstimmenden Tag zugeordnet ist, zu extrahieren, wenn ein passender Tag im Konfigurations-Cache-Speicher gefunden wird, wobei jedes Datenfeld des Konfigurations-Cache einen Stream Table Entry (STE) und einen Context Descriptor (CD) umfasst, die dem passenden Tag zugeordnet sind.
  12. System nach Anspruch 11, wobei die SMMU ferner konfiguriert ist, um den Konfigurations-Cache als Inhalts-adressierbaren Speicher (CAM) zu organisieren.
  13. System nach Anspruch 11, wobei die SMMU ferner konfiguriert ist, um mindestens einen Eintrag, der einer Abbildung mit mehreren Speichernachschlagezyklen von virtueller Adresse auf physikalische Adresse ist, in einem Konfigurations-Cache-Speicher zu speichern, wobei der mindestens eine Eintrag einen Tag, einen zugehörigen STE und einen zugehörige CD umfasst.
  14. System nach Anspruch 11, wobei die SMMU ferner konfiguriert ist, um eine Abbildung von virtueller Adresse auf physikalische Speicheradresse unter Verwendung des STE und des CD, die dem passenden Tag zugeordnet sind, durchzuführen.
  15. System nach Anspruch 11, wobei die SMMU ferner konfiguriert ist, um einen Abfrage-Tag, basierend auf dem zugehörigen Tag, an den Konfigurations-Cache-Speicher für die Suche zu übermitteln.
  16. System nach Anspruch 11, wobei die SMMU ferner konfiguriert ist, um eine Abbildung von virtueller Adresse auf physikalische Adresse mit mehreren Speichernachschlagezyklen durchzuführen, wenn kein passender Tag im Konfigurations-Cache-Speicher gefunden wird, und einen entsprechenden Eintrag im Konfigurations-Cache-Speicher zu speichern, wobei der entsprechende Eintrag (i) einen Abbildungs-Tag mit einem gültigen Abbildungsfeld, einem Abbildungs-SID-Feld, einem Abbildungs-SSV-Feld und einem Abbildungs-SSID-Feld und (ii) ein Abbildungsdatenfeld mit einem Abbildungs-STE und einem Abbildungs-CD umfasst.
  17. System nach Anspruch 11, wobei die SMMU ferner konfiguriert ist, um eine Invalidierungsoperation durchzuführen, indem Einträge mit identischen Werten in ihren jeweiligen SID-Feldern und entsprechenden gültigen Feldern, die auf einen Wert von 1 eingestellt sind, identifiziert werden und die entsprechenden gültigen Felder der identifizierten Einträge auf einen Wert von 0 zurückgesetzt werden.
  18. System nach Anspruch 11, wobei die SMMU ferner konfiguriert ist, um eine CD- Invalidierungsoperation durchzuführen, indem Einträge mit identischen Werten in ihren jeweiligen SID-Feldern, identischen Werten in ihren jeweiligen SSID-Feldern, entsprechenden gültigen Feldern, die auf einen Wert von 1 eingestellt sind, und entsprechenden SSV-Feldern, die auf einen Wert von 1 eingestellt sind, identifiziert werden und die entsprechenden gültigen Felder der identifizierten Einträge auf einen Wert von 0 zurückgesetzt werden.
  19. System nach Anspruch 11, wobei die SMMU ferner konfiguriert ist, um (i) wenn ein im Konfigurations-Cache zu speichernder Eintrag sein SSV-Feld auf 0 gesetzt hat, den Eintrag mit seinem auf 0 gesetzten SSV-Feld und seinem auf 0 gesetzten SSID-Feld zu speichern, und (ii) während der Durchführung des CD-Invalidierungsvorgangs die entsprechenden SSV-Felder für Einträge mit auf 0 gesetzten SSID-Feldern zu ignorieren.
  20. System nach Anspruch 11, wobei jeder Tag im Konfigurations-Cache-Speicher ein StreamID-(SID)-Feld umfasst, und wobei 15 Bits mit der niedrigsten Signifikanz des SID-Feldes ternäre Bits sind.
DE102019215455.7A 2018-10-12 2019-10-09 KONFIGURATIONS-CACHE FÜR DIE ARM SMMUv3 Pending DE102019215455A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/158,443 US11474953B2 (en) 2018-10-12 2018-10-12 Configuration cache for the ARM SMMUv3
US16/158,443 2018-10-12

Publications (1)

Publication Number Publication Date
DE102019215455A1 true DE102019215455A1 (de) 2020-04-16

Family

ID=69954781

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019215455.7A Pending DE102019215455A1 (de) 2018-10-12 2019-10-09 KONFIGURATIONS-CACHE FÜR DIE ARM SMMUv3

Country Status (2)

Country Link
US (1) US11474953B2 (de)
DE (1) DE102019215455A1 (de)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7181568B2 (en) * 2004-03-25 2007-02-20 Intel Corporation Content addressable memory to identify subtag matches
US10210096B2 (en) * 2013-10-01 2019-02-19 Ampere Computing Llc Multi-stage address translation for a computing device
WO2015061731A1 (en) * 2013-10-27 2015-04-30 Advanced Micro Devices, Inc. Input/output memory map unit and northbridge
US9824021B2 (en) * 2014-03-31 2017-11-21 International Business Machines Corporation Address translation structures to provide separate translations for instruction fetches and data accesses
US10469389B1 (en) * 2015-04-23 2019-11-05 Cisco Technology, Inc. TCAM-based load balancing on a switch
WO2018081051A1 (en) * 2016-10-25 2018-05-03 Redberry Systems, Inc. Real-time malware detection
US10664400B2 (en) * 2017-07-11 2020-05-26 Arm Limited Address translation cache partitioning

Also Published As

Publication number Publication date
US20200117613A1 (en) 2020-04-16
US11474953B2 (en) 2022-10-18

Similar Documents

Publication Publication Date Title
DE2226382C3 (de) Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern
DE112017002941B4 (de) Arbeitslastoptimierte Datendeduplizierung mittels Phantomfingerabdrücken
DE4410060B4 (de) Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse
DE69030945T2 (de) Zweistufiger Adressübersetzungspufferspeicher mit partiellen Adressen zur Geschwindigkeitserhöhung
DE68923437T2 (de) Adressenübersetzung für Seiten mehrfacher Grösse.
DE102020104701B4 (de) System zur Lokalisierung von Cachedaten
DE2227882C2 (de) Virtuelle Speicheranordnung
DE68924206T2 (de) Verfahren und Einrichtung zum Filtern von Ungültigkeitserklärungsanforderungen.
DE2459006C2 (de) Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage
DE3587960T2 (de) Datenverarbeitungsanlage mit einem Speicherzugriffssteuergerät.
DE112017001027B4 (de) Seitenfehlerbehebung
DE112005002405B4 (de) Fehlerverarbeitung für Direktspeicherzugriffs-Adreßübersetzung
DE10262164B4 (de) Computersystem mit einer hierarchischen Cacheanordnung
DE2807476C2 (de) Speichereinrichtung mit mehreren virtuellen Adreßräumen
DE112013002934T5 (de) Verwalten eines Zugreifens auf Seitentabelleneinträge
DE102011076894B9 (de) Persistenter Speicher für einen Hauptspeicher eines Prozessors
DE112004000464T5 (de) Ungültigmachen von Speichereinträgen, Löschen von Pufferspeicher-Einträgen
DE112013001751T5 (de) Hybride Adressumsetzung
DE112013002938T5 (de) Übersetzen der Basistabelle von Speichern
DE112016000726T5 (de) Transparente hardwareunterstützte speicherdekompression
DE102013017509A1 (de) Effiziente Speichervirtualisierung in mehrsträngigen Verarbeitungseinheiten
DE2154106A1 (de) Arbeitsspeicherwerk
DE112018002028T5 (de) Umsetzungsunterstützung für einen virtuellen cache
DE112018003032T5 (de) Cachestruktur, die ein logisches verzeichnis verwendet
DE102010053282A1 (de) Modifizierter B+ Baum zum Speichern von Nand-Speicher Umleitungszuordnungen

Legal Events

Date Code Title Description
R081 Change of applicant/patentee

Owner name: MARVELL ASIA PTE, LTD., SG

Free format text: FORMER OWNER: MARVELL WORLD TRADE LTD., ST. MICHAEL, BB

R082 Change of representative

Representative=s name: GRUENECKER PATENT- UND RECHTSANWAELTE PARTG MB, DE