DE102019117783A1 - Anwendungsprozessor und System-on-Chip - Google Patents

Anwendungsprozessor und System-on-Chip Download PDF

Info

Publication number
DE102019117783A1
DE102019117783A1 DE102019117783.9A DE102019117783A DE102019117783A1 DE 102019117783 A1 DE102019117783 A1 DE 102019117783A1 DE 102019117783 A DE102019117783 A DE 102019117783A DE 102019117783 A1 DE102019117783 A1 DE 102019117783A1
Authority
DE
Germany
Prior art keywords
context
cache
address
atm
entries
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
DE102019117783.9A
Other languages
English (en)
Inventor
Sung-Boem PARK
Moinul Syed
Ju-Hee Choi
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 US16/413,034 external-priority patent/US11216385B2/en
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102019117783A1 publication Critical patent/DE102019117783A1/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
    • 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/1009Address translation using page tables, e.g. page table structures
    • 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/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
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/683Invalidation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/684TLB miss handling

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

Speicherverwaltungseinheit (MMU) in einem Anwendungsprozessor reagiert auf eine Zugriffsanfrage, die einer Durchsuchungsanfrage entspricht, die einen Zielkontext und eine virtuelle Zieladresse umfasst, und der Durchsuchungsanfrage zur Umsetzung der virtuellen Zieladresse in eine erste physikalische Zieladresse dient. Die MMU umfasst Kontext-Cache, Umsetzungs-Cache, Invalidierungswarteschlange und Adressumsetzungsmanager (ATM). Der Kontext-Cache speichert Kontexte und Kontextidentifikatoren der gespeicherten Kontexte, während das Duplizieren von Kontexten vermieden wird. Der Umsetzungs-Cache speichert erste Adresse und erste Kontextidentifikatoren und zweite Adressen, wobei die erste Adresse einer virtuellen Adresse entspricht, die ersten Kontextidentifikatoren einem ersten Kontext entsprechen, und die zweiten Adressen der ersten Adresse und dem ersten Kontext entsprechen. Die Invalidierungswarteschlange speichert mindestens einen Kontextidentifikator, der invalidiert werden soll, von den Kontextidentifikatoren, die in dem Umsetzungs-Cache gespeichert sind. Der ATM steuert den Kontext-Cache, den Umsetzungs-Cache und die Invalidierungswarteschlange.

Description

  • TECHNISCHES GEBIET
  • Beispielhafte Ausführungsformen der erfinderischen Konzepte betreffen Prozessoren und insbesondere einen Anwendungsprozessor und ein System-on-Chip, das denselben umfasst.
  • BESCHREIBUNG DES VERWANDTEN STANDS DER TECHNICK
  • Eine Speicherverwaltungseinheit (MMU) ist eine Hardwarekomponente, die Speicherzugriffsanfragen verarbeitet, die von einer Einheit für direkten Speicherzugriff, wie beispielsweise einer zentralen Verarbeitungseinheit (CPU), ausgegeben werden. Die MMU kann auch als Paged MMU (PMMU) bezeichnet werden.
  • Im Allgemeinen versucht die MMU anfangs, einen assoziativen Cache zu verwenden, der Adressumsetzpuffer bzw. Translation Lookaside Buffer (TLB) genannt wird, um virtuelle Seitenadressen in physikalische Seitenadressen eines Speichers, wie eines Anweisungsspeichers, umzusetzen. Falls sich keine übereinstimmende physikalische Seitenadresse für eine virtuelle Seitenadresse in dem TLB befindet, führt der TLB einen langsameren Prozess aus, bei dem auf eine Seitentabelle Bezug genommen wird, um die erforderliche physikalische Seitenadresse zu bestimmen. Dies kann eine Kanalaktivität der MMU verzögern.
  • KURZFASSUNG
  • Gemäß einer beispielhaften Ausführungsform der erfinderischen Konzepte umfasst ein Anwendungsprozessor eine Speicherverwaltungseinheit (MMU). Die MMU antwortet auf eine Zugriffsanfrage, die sie von einem Master-Intellectual-Property (IP) erhält, und die Zugriffsanfrage umfasst einen Zielkontext und eine virtuelle Zieladresse. Die Zugriffsanfrage entspricht einer Durchsuchungsanfrage, die virtuelle Zieladresse in eine erste physikalische Zieladresse umzusetzen. Die MMU umfasst einen Kontext-Cache, einen Umsetzungs-Cache bzw. Übersetzungs-Cache, eine Invalidierungswarteschlange und einen Adressumsetzungsmanager (ATM). Der Kontext-Cache speichert Kontexte und Kontextidentifikatoren der gespeicherten Kontexte jeweils als erstes Tag und erste Daten, während das Duplizieren von Kontexten vermieden wird, und die Kontexte werden in der Durchsuchungsanfrage verwendet. Der Umsetzungs-Cache speichert eine erste Adresse und erste Kontextidentifikatoren als zweites Tag und speichert zweite Adressen als zweite Daten, wobei die erste Adresse einer virtuellen Adresse entspricht, die in der Durchsuchungsanfrage verwendet wird, die ersten Kontextidentifikatoren einem ersten Kontext entsprechen, der in der Durchsuchungsanfrage verwendet wird, und die zweiten Adressen der ersten Adresse und dem ersten Kontext entsprechen. Die Invalidierungswarteschlange speichert mindestens einen Kontextidentifikator, der invalidiert werden soll, von den Kontextidentifikatoren, die in dem Umsetzungs-Cache gespeichert sind. Der ATM steuert den Kontext-Cache, den Umsetzungs-Cache und die Invalidierungswarteschlange.
  • Gemäß einer beispielhaften Ausführungsform der erfinderischen Konzepte umfasst ein System-on-Chip einen Master-Intellectual-Property (IP), um eine Zugriffsanfrage auszugeben, einen Anwendungsprozessor und eine Speichervorrichtung. Der Anwendungsprozessor umfasst eine Speicherverwaltungseinheit (MMU) und die MMU setzt ansprechend auf die Zugriffsanfrage, die einen Zielkontext und die virtuelle Zieladresse umfasst, eine virtuelle Zieladresse in eine erste physikalische Zieladresse um. Die Speichervorrichtung ist mit der MMU gekoppelt und umfasst eine Seitentabelle, in der Kennfeldinformationen zwischen virtuellen Adressen und ersten physikalischen Adressen gespeichert sind. Die MMU umfasst einen Kontext-Cache, einen Umsetzungs-Cache bzw. Übersetzungs-Cache, eine Invalidierungswarteschlange und einen Adressumsetzungsmanager (ATM). Der Kontext-Cache speichert Kontexte und Kontextidentifikatoren der gespeicherten Kontexte jeweils als erstes Tag und erste Daten, während das Duplizieren von Kontexten vermieden wird, und die Kontexte werden in der Zugriffsanfrage verwendet, die einer Durchsuchungsanfrage entspricht. Der Umsetzungs-Cache speichert eine erste Adresse und erste Kontextidentifikatoren als zweites Tag und speichert zweite Adressen als zweite Daten, wobei die erste Adresse einer virtuellen Adresse entspricht, die in der Durchsuchungsanfrage verwendet wird, die ersten Kontextidentifikatoren einem ersten Kontext entsprechen, der in der Durchsuchungsanfrage verwendet wird, und die zweiten Adressen der ersten Adresse und dem ersten Kontext entsprechen. Die Invalidierungswarteschlange speichert mindestens einen Kontextidentifikator, der invalidiert werden soll, von den Kontextidentifikatoren, die in dem Umsetzungs-Cache gespeichert sind. Der ATM steuert den Kontext-Cache, den Umsetzungs-Cache und die Invalidierungswarteschlange.
  • Gemäß einer beispielhaften Ausführungsform der erfinderischen Konzepte wird bei einem Verfahren zum Betreiben einer Speicherverwaltungseinheit (MMU) eines Anwendungsprozessors eine Zugriffsanfrage, die einen Zielkontext und eine virtuelle Zieladresse umfasst, von einem Adressumsetzungsmanager (ATM) erhalten. Von dem ATM wird bestimmt, ob der Zielkontext mit mindestens einem ersten Eintrag in einem Kontext-Cache übereinstimmt, indem der Kontext-Cache durchsucht wird, und der Kontext-Cache speichert Kontexte und Kontextidentifikatoren der gespeicherten Kontexte jeweils als erstes Tag und erste Daten, während das Duplizieren von Kontexten vermieden wird. Von dem ATM wird bestimmt, ob ein Zielkontextidentifikator, der dem Zielkontext entspricht, mit mindestens einem von zweiten Einträgen in einem Umsetzungs-Cache übereinstimmt, indem selektiv der Umsetzungs-Cache basierend auf der Durchsuchung des Kontext-Caches durchsucht wird, und der Umsetzungs-Cache speichert die Kontextidentifikatoren und die virtuellen Adressen, die den Kontextidentifikatoren entsprechen, als zweites Tag und speichert physikalische Adressen, die den virtuellen Adressen entsprechen, als zweite Daten. Die virtuelle Zieladresse zu einer entsprechenden physikalischen Zieladresse wird basierend auf der selektiven Bestimmung in eine entsprechende physikalische Zieladresse umgesetzt.
  • Dementsprechend kann die MMU in dem Anwendungsprozessor gemäß beispielhafter Ausführungsformen eine virtuelle Adresse in eine physikalische Adresse umsetzen, indem primär der Kontext-Cache durchsucht wird, der Kontexte speichert, während das Duplizieren von Kontexten vermieden wird, und indem basierend auf einem Ergebnis der Durchsuchung des Kontext-Caches selektiv der Umsetzungs-Cache durchsucht wird. Daher kann eine Größe des Umsetzungs-Caches reduziert werden. Zudem kann eine Leistung des Anwendungsprozessors durch Verarbeiten einer Invalidierungsanfrage im Hintergrund verbessert werden, wenn der Umsetzungs-Cache nicht verwendet wird, wenn die Invalidierungsanfrage eine kontextbasierte Invalidierung bezeichnet.
  • Figurenliste
  • Die obigen und andere Merkmale der erfinderischen Konzepte sind klarer verständlich, wenn beispielhafte Ausführungsformen derselben unter Bezugnahme auf die beigefügten Zeichnungen beschrieben werden.
    • 1 ist ein Diagramm eines System-on-Chip (SoC), das eine Speicherverwaltungseinheit (MMU) gemäß beispielhafter Ausführungsformen umfasst.
    • 2 ist ein Blockschaltbild, das ein Beispiel des Anwendungsprozessors in 1 gemäß beispielhafter Ausführungsformen darstellt.
    • 3 ist ein Diagramm, das eine Zuordnung zwischen virtuellen Adressen und physikalischen Adressen zeigt.
    • 4A ist ein Diagramm zur Erläuterung eines Betriebs der MMU in 1 gemäß beispielhafter Ausführungsformen.
    • 4B stellt ein Beispiel des Umsetzungs-Caches in 4A gemäß beispielhafter Ausführungsformen dar.
    • 4C stellt ein Beispiel des Umsetzungs-Caches in 4B gemäß beispielhafter Ausführungsformen dar.
    • 4D stellt ein anderes Beispiel des Umsetzungs-Caches in 4B gemäß beispielhafter Ausführungsformen dar.
    • 5 ist ein Blockdiagramm, das eine MMU in dem SoC aus 1 gemäß beispielhafter Ausführungsformen darstellt.
    • 6A und 6B stellen jeweils einen Abschnitt der MMU in 5 gemäß beispielhafter Ausführungsformen dar.
    • 7 ist ein Flussdiagramm, das einen Beispielbetrieb der MMU in 5 gemäß beispielhafter Ausführungsformen darstellt.
    • 8 ist ein Diagramm zur Erläuterung eines Betriebs in 7.
    • 9A ist ein Flussdiagramm, das einen anderen Beispielbetrieb der MMU in 5 gemäß beispielhafter Ausführungsformen darstellt.
    • 9B ist ein Flussdiagramm, das einen anderen Beispielbetrieb der MMU in 5 gemäß beispielhafter Ausführungsformen darstellt.
    • 10 stellt dar, dass ein neuer Kontextidentifikator in 7 zugewiesen wird.
    • 11 ist ein Beispielbetrieb der MMU, die Vorgänge in 10 durchführt.
    • 12 stellt dar, dass ein neuer Kontextidentifikator in 7 gemäß beispielhafter Ausführungsformen zugewiesen wird.
    • 13A ist ein Flussdiagramm, das ein Beispielverfahren zur Invalidierung von Einträgen in dem Kontext-Cache in der MMU gemäß beispielhafter Ausführungsformen darstellt.
    • 13B ist ein Flussdiagramm, das ein Beispielverfahren zur Invalidierung von Einträgen in dem Umsetzungs-Cache in der MMU gemäß beispielhafter Ausführungsformen darstellt.
    • 14 ist ein Flussdiagramm, das ein anderes Beispielverfahren zur Invalidierung von Einträgen in dem Umsetzungs-Cache in der MMU gemäß beispielhafter Ausführungsformen darstellt.
    • 15 stellt ein anderes Beispiel des Anwendungsprozessors in dem SoC in 1 gemäß beispielhafter Ausführungsformen dar.
    • 16 ist ein Blockschaltbild, das ein Beispiel des MMU-Moduls in 15 gemäß beispielhaften Ausführungsformen darstellt.
    • 17 stellt ein Beispiel für den Adressverteiler in 16 gemäß beispielhafter Ausführungsformen dar.
    • 18 ist ein Konzeptdiagramm zur Erläuterung des Betriebs des MMU-Moduls in 16.
    • 19 ist ein Flussdiagramm, das ein Verfahren zum Betreiben einer MMU in einem Anwendungsprozessor gemäß beispielhafter Ausführungsformen darstellt.
    • 20 ist ein Blockschaltbild eines Mobilgeräts, das einen SoC gemäß beispielhafter Ausführungsformen umfasst.
  • DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Nachstehend werden Ausführungsbeispiele der erfinderischen Konzepte vollständiger mit Bezug auf die zugehörigen Zeichnungen beschrieben. Gleiche Bezugszeichen können sich in der gesamten Anmeldung auf gleiche Elemente beziehen.
  • 1 ist ein Diagramm eines System-on-Chip (SoC), das eine Speicherverwaltungseinheit (MMU) gemäß beispielhafter Ausführungsformen umfasst.
  • In 1 kann ein SoC 10 als eine beliebige Elektronikvorrichtung einer großen Auswahl implementiert sein; Beispiele umfassen einen Personalcomputer (PC), einen Tablet PC, ein Netbook, einen E-Reader, einen persönlichen digitalen Assistenten (PDA), einen tragbaren Multimedia-Player (PMP), einen MP3-Spieler und einen MP4-Speicher. Das SoC 10 kann einen Anwendungsprozessor 100 umfassen, der Programmanweisungen ausführt, um einen Gesamtbetrieb des SoC 10 zu steuern. Das SoC 10 kann ferner eine Anzeige 20, eine Speichervorrichtung 30 und eine Eingabevorrichtung 50 umfassen.
  • Zum Beispiel kann der Anwendungsprozessor 100 Programmanweisungen über die Eingabevorrichtung 50 erhalten. In einigen beispielhaften Ausführungsformen führt der Anwendungsprozessor 100 Programmanweisungen aus, indem er Daten aus der Speichervorrichtung 30 ausliest und die Daten auf der Anzeige 20 anzeigt. Die Eingabevorrichtung 50 kann eine Zehnertastatur, eine Tastatur und Point-and-Touch-Geräte wie ein Touchpad und eine Computermaus umfassen.
  • Die Speichervorrichtung 30 kann eine Seitentabelle 40 umfassen, in der Kennfeldinformationen zwischen virtuellen Adressen und physikalischen Adressen gespeichert sind.
  • 2 ist ein Blockschaltbild, das ein Beispiel des Anwendungsprozessors in 1 gemäß beispielhafter Ausführungsformen darstellt.
  • In 2 umfasst der Anwendungsprozessor 100 eine zentrale Verarbeitungseinheit (CPU) 110, einen Cache 170, die MMU 200, einen Systembus 180, eine Systemperipherieschaltung 120, einen Multimedia-Beschleuniger 130, eine Verbindungsschaltung 140, einen Anzeigencontroller 150 und/oder einen Speichercontroller 160.
  • Die CPU 110 führt erhaltene Programmanweisungen aus. Der Cache 170 ist ein schneller Speicher, der ausgewählte Daten speichert, z. B. Daten, auf die häufig zugegriffen wird, um eine durchschnittliche Verzögerung von Speicherzugriffsvorgängen durch die CPU 110 zu reduzieren. Die MMU 200 ist eine Hardwarekomponente, die eine Anforderung von der CPU 110 verarbeitet, um auf die Speichervorrichtung 30 zuzugreifen.
  • Eine Funktionalität der MMU 200 kann das Umsetzen von virtuellen Adressen in physikalische Adressen, Speicherschutz, Steuern des Cache 170, Bus-Vermittlung und/oder Bank-Wechsel umfassen.
  • Die Systemperipherieschaltung 120, der Multimedia-Beschleuniger 130, die Verbindungsschaltung 140, der Anzeigencontroller 150 und/oder der Speichercontroller 160 kommunizieren Daten oder Anweisungen miteinander über den Systembus 180.
  • Der Systembus 180 kann eine Mehrzahl von Kanälen umfassen, wie beispielsweise einen Lesedatenkanal bzw. Read Data Channel, einen Leseadresskanal bzw. Read Address Channel, einen Schreibadresskanal bzw. Write Address Channel und/oder einen Schreibdatenkanal bzw. Write Data Channel.
  • Die Systemperipherieschaltung 120 umfasst eine Echtzeituhr (RTC) 121, eine Phasenregelschleife (PLL) 123 und/oder einen Watchdog Timer 125.
  • Der Multimedia-Beschleuniger 130 umfasst eine Grafikengine 133. Der Multimedia-Beschleuniger 130 kann ferner eine Kameraschnittstelle 131, eine Grafikengine, die mit einem Frame- bzw. Rahmenpuffer integriert ist, die Grafikberechnungen durchführt, oder eine Videoanzeigeschaltung und/oder eine High-Definition Multimedia Interface (HDMI) 135, die eine Audio/Video-Schnittstelle zur Übertragung von nicht komprimierten digitalen Daten ist, umfassen. Es ist anzumerken, dass die MMU 200 verwendet werden kann, um eine virtuelle Adresse, die von der Grafikengine 133 ausgegeben wird, in eine physikalische Adresse umzusetzen.
  • Dementsprechend können die beispielhaften Ausführungsformen der erfinderischen Konzepte bei verschiedenen Speichervorrichtungen und verschiedenen Anwendungen angewandt werden, die eine Betriebsstabilität sicherstellen, während sie eine Betriebsleistung aufrechterhalten oder verbessern.
  • Die Verbindungsschaltung 140 kann eine Audioschnittstelle 141, eine Speicherschnittstelle 143, wie eine Advanced-Technology-Attachment(ATA)-Schnittstelle und/oder eine Verbindungsschnittstelle 145 umfassen. Die Verbindungsschaltung 140 kann mit der Eingabevorrichtung 50 kommunizieren.
  • Der Anzeigencontroller 150 steuert Daten, die auf der Anzeige 20 angezeigt werden sollen. Die MMU 200 kann verwendet werden, um eine virtuelle Adresse, die von dem Anzeigencontroller 150 ausgegeben wurde, in eine physikalische Adresse umzusetzen.
  • Die Speichercontroller 160 ermöglicht es der Speichervorrichtung 30, entsprechend dem Speichertypen zugänglich zu sein (z. B. Flash-Speicher oder dynamischer Direktzugriffsspeicher (DRAM)).
  • 3 ist ein Diagramm, das eine Zuordnung zwischen virtuellen Adressen und physikalischen Adressen zeigt.
  • In den 1 bis 3 kann ein virtueller Adressraum in eine Mehrzahl an Seiten PN0 bis PNn aufgeteilt, wobei n eine ganze Zahl größer als zwei ist.
  • Jede der Seiten PN0 bis PNn ist ein Block benachbarter virtueller Adressen. Jede der Seiten PN0 bis PNn weist eine gegebene Datengröße von, zum Beispiel, 4 KB auf. Allerdings ist die Größe der Seiten PN0 bis PNn nicht beschränkt und kann verändert werden.
  • Wie der virtuelle Adressraum kann ein physikalischer Adressraum in eine Mehrzahl an Rahmen FN0 bis FNn aufgeteilt sein. Jeder der Rahmen FN0 bis FNn weist eine fest eingestellte Größe auf.
  • Eine virtuelle Adresse, z. B. VA2 umfasst eine Seitenzahl, z. B. PN2, und einen Versatz bzw. Offset, z. B. OFF2 innerhalb einer Seite. Mit anderen Worten, die virtuelle Adresse kann durch folgende Gleichung 1 ausgedrückt werden: VAi = PNj + OFFx
    Figure DE102019117783A1_0001
    wobei „i“, „j“ und „x“ 1 sind oder eine natürliche Zahl größer als 1, VAi eine virtuelle Adresse ist, PNj eine Seitenzahl und OFFx ein Offset ist.
  • Die Seitenzahl PN2 wird als Index in der Seitentabelle 40 verwendet.
  • Der Offset OFF2 wird mit einer Rahmennummer, z.B. FN2, die eine physikalische Adresse, z. B. PA2, definiert, kombiniert. Die physikalische Adresse kann durch Gleichung 2 ausgedrückt werden: PAr = FNs + OFFx
    Figure DE102019117783A1_0002
    wobei „r“, „s“ und „x“ 1 oder eine natürliche Zahl größer als 1 ist, PAr eine physikalische Adresse ist, FNs eine Rahmennummer ist und OFFx ein Offset ist.
  • Die Seitenzahl PA2 kann als virtuelle Seitenzahl bezeichnet werden und die Rahmennummer FN2 kann als physikalische Seitenzahl bezeichnet werden.
  • Die Seitentabelle 40 weist eine Zuordnung zwischen einer virtuellen Adresse einer Seite und einer physikalischen Adresse eines Rahmens auf.
  • Für eine einfachere Erläuterung wird in der Beschreibung angenommen, dass Prozessoren wie die CPU 110, die Grafikengine 133 und der Anzeigencontroller 150, die Daten in jedem Arbeitssatz verarbeiten, jeweils als Master-Intellectual-Property (IP) bezeichnet werden. Das Master-IP kann für jeden Arbeitssatz betrieben werden und kann eine Mehrzahl von Arbeitssätzen gleichzeitig verarbeiten. Ein Arbeitssatz ist ein Datensatz, der in der Speichervorrichtung 30 gespeichert ist. Die Arbeitssätze bezeichnen einen Satz an Seiten, auf die häufig Bezug genommen wird, zum Beispiel über eine Referenzanzahl in einem Referenzzeitraum hinaus, in der Speichervorrichtung 30 durch den Master-IP, oder die Anzahl an Seiten, die aus dem Master-IP in die Speichervorrichtung 30 geladen werden kann. In beispielhaften Ausführungsformen wird das Master-IP jedes Arbeitssatzes unabhängig von anderen Arbeitssätzen verwaltet.
  • 4A ist ein Diagramm zur Erläuterung eines Betriebs der MMU in 1 gemäß beispielhafter Ausführungsformen.
  • In 1, 2 und 4A umfasst die MMU 200 einen Umsetzungs-Cache 218, einen Kontext-Cache 210 und/oder eine Invalidierungswarteschlange 230 und ist mit dem Master-IP 190 und der Speichervorrichtung 30 durch eine Mehrzahl von Kanälen verbunden.
  • Das Master-IP 190 verarbeitet einen Arbeitssatz. Das Master-IP 190 gibt eine Zugriffsanfrage, die dem Arbeitssatz entspricht, an die MMU 200 oder den Cache 170 aus. Die Zugriffsanfrage kann eine virtuelle Adresse VA zu dem Arbeitssatz in der Speichervorrichtung 30 und einen Kontext zu Attributen zu dem Arbeitssatz umfassen. Die Zugriffsanfrage kann eine Durchsuchungsanfrage oder eine Invalidierungsanfrage umfassen.
  • Die MMU 200 berechnet eine physikalische Adresse PA unter Verwendung der virtuellen Adresse VA basierend auf der Zugriffsanfrage des Master-IP 190. Alternativ kann die MMU 200 mindestens einen der Einträge in dem Umsetzungs-Cache 218 basierend auf der Zugriffsanfrage des Master-IP 190 invalidieren.
  • Der Kontext-Cache 210 speichert Kontexte, die mit Attributen der Zugriffsanfragen assoziiert sind, als erstes Tag, während das Duplizieren von Kontexten vermieden wird, und/oder speichert Kontextidentifikatoren der Kontexte als erste Daten. Wenn die Zugriffsanfrage der Durchsuchungsanfrage entspricht, kann der Kontext-Cache 210 Kontexte, die in der Durchsuchungsanfrage verwendet werden, als erstes Tag speichern, während das Duplizieren von Einträgen vermieden wird, und kann Kontextidentifikatoren der Kontexte als erste Daten speichern.
  • Der Umsetzungs-Cache 218 kann eine erste Adresse und erste Kontextidentifikatoren als zweiten Tag speichern und kann eine erste Adresse und erste Kontextidentifikatoren als zweiten Tag speichern und kann zweite Adressen als zweite Daten speichern. Die erste Adresse entspricht einer virtuellen Adresse, die in der Durchsuchungsanfrage verwendet wurde, und die ersten Kontextidentifikatoren entsprechen einem ersten Kontext, der in der Durchsuchungsanfrage verwendet wurde. Die zweiten Adressen entsprechen der ersten Adresse und dem ersten Kontext.
  • Der Umsetzungs-Cache 218 kann einen Translation Lookaside Buffer (TLB) oder einen Walk-Cache umfassen.
  • Der TLB ist eine Speicherverwaltungshardware, die verwendet wird, um die Umsetzungsgeschwindigkeit virtueller Adressen zu erhöhen. Der TLB speichert eine Zuordnung zwischen einer Seitenzahl PN und einer Rahmenzahl FN. Der TLB speichert Zuordnungsinformationen zwischen Kontextidentifikatoren, die virtuelle Adresse VA und die physikalische Adresse PA, die mit Seiten assoziiert ist, auf die sich das Master-IP 190 bezieht. Der TLB speichert die Kontextidentifikatoren und die virtuellen Adressen als zweites Tag und speichert die physikalischen Adressen, die den virtuellen Adressen entsprechen, als zweite Daten.
  • Der Walk-Cache speichert einen Abschnitt der virtuellen Adresse und speichert eine physikalische Adresse, die eine Position in der Seitentabelle angibt, die dem Abschnitt der virtuellen Adresse entspricht.
  • Wenn eine virtuelle Adresse in eine physikalische Adresse umgesetzt wird, überprüft die MMU 200 zuerst den Kontext-Cache 210. Falls der Kontext, der mit der virtuellen Adresse VA assoziiert ist, die der Anfrage des Master-IP 190 entspricht, mit mindestens einem der Einträge in dem Kontext-Cache 210 übereinstimmt (was als CC-Treffer bezeichnet wird), liefert der Kontext-Cache 210 dem Umsetzungs-Cache 218 einen Kontextidentifikator, der dem übereinstimmenden Kontext entspricht.
  • Falls Zuordnungsinformationen, die der virtuellen Adresse VA entsprechen, in dem Umsetzungs-Cache 218 sind (was als TC-Treffer bezeichnet wird), verarbeitet die MMU 200 direkt die Umsetzung, ohne auf die Speichervorrichtung 30 zuzugreifen und Zuordnungsinformationen aus der Speichervorrichtung 30 auszulesen.
  • Falls der Kontext, der mit der VA assoziiert ist, die der Anfrage des Master-IP 190 entspricht, mit keinem oder allen Einträgen in dem Kontext-Cache 210 übereinstimmt (was als CC-Fehler bezeichnet wird), oder falls keine Übereinstimmung in dem Umsetzungs-Cache 218 bezüglich dem übereinstimmenden Kontextidentifikator und der virtuellen Adresse VA gefunden wird (was als TC-Fehler bezeichnet wird), wird ein Page Table Walk durchgeführt.
  • Der Page Table Walk ist ein Prozess, um herauszufinden, ob es bei der Seitenzahl PN und der Rahmenzahl FN der virtuellen Adresse VA in der Seitentabelle 40, die in der Speichervorrichtung 30 gespeichert ist, eine Übereinstimmung gibt, wenn der Kontext, der mit der VA assoziiert ist, die der Anfrage des Master-IP 190 entspricht, mit keinem oder allen Einträgen des Kontext-Caches 210 übereinstimmt, oder wenn die Rahmenzahl FN der virtuellen Adresse VA nicht mit der Seitenzahl PN in dem Umsetzungs-Cache 218 übereinstimmt (das heißt, keine Zuordnungsinformation zwischen der virtuellen Adresse VA und der physikalischen Adresse PA in dem Umsetzungs-Cache 218 gefunden wird). Die Seitentabelle 40 speichert Zuordnungsinformationen zwischen einer virtuellen Adresse und einer physikalischen Adresse aller Daten in der Speichervorrichtung 30.
  • Wenn das Master-IP 190 versucht, eine Anweisung oder Daten unter Verwendung der physikalischen Adresse PA auszulesen, und die Anweisung oder die der physikalischen Adresse PA entsprechenden Daten in dem Cache 170 sind, kann der Cache 170 die Anweisung oder die Daten des Master-IP 190 direkt ausgeben, ohne auf die Speichervorrichtung 30 zuzugreifen (was als „Cachetreffer“ bezeichnet wird).
  • Wenn allerdings die Anweisung oder die Daten in dem Cache 170 nicht existieren, kann der Cache 170 auf einen Daten-/Anweisungsspeicherblock 45 in der Speichervorrichtung 30 zugreifen, um die Anweisung oder die Daten auszulesen (was als „Cachefehler“ bezeichnet wird). Der Daten-/Anweisungsspeicherblock 45 speichert Informationen über alle Daten/Anweisungen in der Speichervorrichtung 30.
  • Die Invalidierungswarteschlange 230 kann mindestens einen Kontextidentifikator speichern, der invalidiert werden soll, von den Kontextidentifikatoren, die in dem Umsetzungs-Cache 218 gespeichert sind.
  • 4B stellt ein Beispiel des Umsetzungs-Caches in 4A gemäß beispielhafter Ausführungsformen dar.
  • In 4B umfasst der Umsetzungs-Cache 218 ein Tagfeld 219a und ein Datenfeld 219b.
  • Das Tagfeld 219a kann einen Kontextidentifikator CID1 und eine virtuelle Adresse VA1 speichern und das Datenfeld 219b kann eine physikalische Adresse PA1 speichem, die der virtuellen Adresse VA1 entspricht.
  • Zum Beispiel wird angenommen, dass Kontextidentifikatoren CID1_a und CID1_b in der Durchsuchungsanfrage verwendet werden. In beispielhaften Ausführungsformen wird der Kontextidentifikator CID1_a und virtuelle Adressen VA1_a, VA1_b und VA1_c, die dem Kontextidentifikator CID1_a entsprechen, in dem Tagfeld 219a gespeichert, und der Kontextidentifikator CID1_b und eine virtuelle Adresse VA1_d werden in dem Tagfeld 219a gespeichert. Zudem sind die physikalischen Adressen PA1_a, PA1_b, PA1_c und PA1_d, die jeweils den virtuellen Adressen VA1_a, VA1_b, VA1_c und VA1_d entsprechen, in dem Datenfeld 291b gespeichert. Die virtuellen Adressen VA1_a, VA1_b, VA1_c und VA1_d, die in dem Tagfeld 219a gespeichert sind, können als erste Adressen und die physikalischen Adressen PA1_a, PA1_b bezeichnet werden. PA1_c und PA1_d, die in dem Datenfeld 219b gespeichert sind, können als zweite Adressen bezeichnet werden.
  • 4C stellt ein Beispiel des Umsetzungs-Caches in 4B gemäß beispielhafter Ausführungsformen dar.
  • In 4C kann ein Umsetzungs-Cache 218a einen TLB 220 umfassen. Konfiguration des TLB 220 wird unter Bezugnahme auf 6A beschrieben.
  • 4D stellt ein anderes Beispiel des Umsetzungs-Caches in 4B gemäß beispielhafter Ausführungsformen dar.
  • In 4D kann ein Umsetzungs-Cache 218b einen Walk-Cache 250 umfassen. Konfiguration des Walk-Cache 250 wird unter Bezugnahme auf 6B beschrieben.
  • 5 ist ein Blockdiagramm, das eine MMU in dem SoC aus 1 gemäß beispielhafter Ausführungsformen darstellt.
  • In 5 umfasst die MMU 200 eine erste Schnittstelle 261, eine zweite Schnittstelle 263, eine Speicherschnittstelle 267, einen Adressumsetzungsmanager (ATM) 260, den Kontext-Cache 210, den Umsetzungs-Cache 218, die Invalidierungswarteschlange 230, einen Page Table Walker 240 und/oder ein Steuerregister 265.
  • Die erste Schnittstelle 261 bietet eine Schnittstelle mit dem Master-IP 190. Die erste Schnittstelle 216 kann einer Schnittstellenstruktur gemäß, zum Beispiel, einem Advanced-eXtensible-Interface(AXI)-Protokoll entsprechen.
  • Das Master-IP 190 kann eine Zugriffsanfrage REQ an die MMU 200 durch die erste Schnittstelle 261 übertragen.
  • Die zweite Schnittstelle 263 ist eine separate Slave-Schnittstelle, um das Steuerregister 265 einzustellen. Zum Beispiel kann die CPU 110 (siehe 2) einen spezifischen Vorgang der MMU 200 durch die zweite Schnittstelle 263 steuern. Die zweite Schnittstelle 263 kann mit der CPU 110 gemäß, zum Beispiel, dem Advanced-Peripheral-Bus(APB)-Protokoll kommunizieren. Die MMU 200 kann ein Steuersignal CTL von der CPU 110 empfangen.
  • Der ATM 260 wird betrieben, um die Umsetzung einer virtuellen Adresse VA, die in der Zugriffsanfrage REQ umfasst ist, in eine physikalische Adresse durchzuführen.
  • Der ATM 260 durchsucht primär den Kontext-Cache 210 (sucht oder schlägt in diesem nach), um eine virtuelle Adresse VA, die von dem Master-IP 190 bereitgestellt wurde, durch Adresskanäle in eine physikalische Adresse PA umzusetzen.
  • Wenn ein mit der virtuellen Adresse VA assoziierter Kontext in dem Kontext-Cache 210 vorhanden ist (CC-Treffer), liefert der Kontext-Cache 210 dem ATM 260 einen Kontextidentifikator, der dem Kontext entspricht, der mit der virtuellen Adresse VA assoziiert ist. Der ATM 260 durchsucht den Umsetzungs-Cache 218 basierend auf dem Kontextidentifikator. Wenn der Kontextidentifikator, der von dem Kontext-Cache 210 geliefert wurde, in dem Umsetzungs-Cache 218 vorhanden ist (TC-Treffer, das heißt, falls der Kontextidentifikator, der von dem Kontext-Cache 210 geliefert wurde, mit mindestens einem Eintrag in dem Umsetzungs-Cache 218 übereinstimmt), kann der ATM 260 eine physikalische Adresse PA erzeugen, indem er sich auf den Kontextidentifikator und die virtuelle Adresse bezieht.
  • Falls der mit der virtuellen Adresse assoziierte Kontext nicht in dem Kontext-Cache 210 vorhanden ist (CC-Fehler), oder falls der Kontextidentifikator, der von dem Kontext-Cache 210 geliefert wird, mit keinem oder allen Einträgen in dem Umsetzungs-Cache 218 übereinstimmt (TC-Fehler), steuert der ATM 260 den Page Table Walker 240, um einen Page Table Walk in der Seitentabelle 40 durchzuführen.
  • Informationen, die verwendet werden, um den Betrieb der MMU 200 zu steuern, sind in dem Steuerregister 265 gespeichert. Der ATM 260 kann den Kontext-Cache 210, den Umsetzungs-Cache 218, die Invalidierungswarteschlange 230 und/oder den Page Table Walker 240 basierend auf den in dem Steuerregister 265 gespeicherten Informationen steuern.
  • Die Speicherschnittstelle 267 liefert eine Schnittstelle für die Kommunikation mit der Speichervorrichtung 30. Die MMU 200 kann die Seitentabelle 40 in der Speichervorrichtung 30 durch die Speicherschnittstelle 267 auslesen oder sie kann auf den Daten-/Anweisungsspeicherblock 45 in der Speichervorrichtung 30 über die Speicherschnittstelle 267 zugreifen.
  • 6A und 6B stellen jeweils einen Abschnitt der MMU in 5 gemäß beispielhafter Ausführungsformen dar.
  • 6A stellt dar, dass der Umsetzungs-Cache 218 in 5 mit dem TLB 220 implementiert ist, und 6B stellt dar, dass der Umsetzungs-Cache 218 in 5 mit dem Walk-Cache 250 implementiert ist.
  • In 6A sind der Kontext-Cache 210, der TLB 220 und die Invalidierungswarteschlange 230 dargestellt, und in 6B ist der Walk-Cache 250 dargestellt. Zudem ist ein herkömmlicher TLB 215 dargestellt, um den TLB 220 in 6A zu vergleichen.
  • In 6A umfasst der Kontext-Cache 210 ein Tagfeld 211 und ein Datenfeld 213. Das Tagfeld 211 speichert Kontexte als erstes Tag, die in der Durchsuchungsanfrage des Master-IP 190 verwendet werden, während ein Duplizieren von Kontexten vermieden wird. Jeder der Kontexte kann Validierungsinformationen (VALID) umfassen, einen Address Space Identifier (ASID), um einen Adressraum zu identifizieren, einen Virtual Maschine Identifier (VMID), um eine virtuelle Maschine zu identifizieren, ein nichtsicheres Feld NS, das damit assoziiert ist, ob abgesichert werden soll, und ein Exception-Level-Feld EL, das mit einem Exception-Feld assoziiert ist. Das Datenfeld 213 umfasst einen Kontextidentifikator CID von jedem der Kontexte.
  • Zum Beispiel kann ein Kontext CTX11 einen VALID von „Y“ aufweisen, einen ASID von „0xA“, einen VMID von „0xB“, einen NS von „1“, einen EL von „1“ und einen Kontextidentifikator CID11 von „0x4“. Zudem kann ein Kontext CTX12 einen VALID von „Y“ aufweisen, einen ASID von „0xC“, einen VMID von „0xB“, einen NS von „1“, einen EL von „1“ und einen Kontextidentifikator CID12 von „0x6“.
  • TLB 220 umfasst ein Tagfeld 221 und ein Datenfeld 223. Das Tagfeld 221 speichert Kontextidentifikator CID und eine virtuelle Adresse VA, die dem Kontextidentifikator CID entspricht, und das Datenfeld 223 speichert eine physikalische Adresse, die der virtuellen Adresse VA entspricht, und Berechtigungsinformationen AT, die damit assoziiert sind, ob ein Lese(R)-/Schreib(W)-Zugriff zugelassen werden soll. Jeder der Einträge in dem Tagfeld 221 des TLB 220 kann ferner eine gültige Information (VALID) umfassen. Das Tagfeld 221 des TLB 220 kann als zweites Tag virtuelle Adressen (erste Adressen) speichern, die in der Durchsuchungsanfrage verwendet wurden, und Kontextidentifikatoren der Kontexte, und das Datenfeld 223 des TLB 220 kann physikalische Adressen, die den ersten Adressen und den Kontextidentifikatoren entsprechen, als zweite Adressen speichern.
  • Zum Beispiel kann der Kontextidentifikator CID11 virtuelle Adressen „Ox1000“, „0x6000“ und „0x3000“ aufweisen. Der Kontextidentifikator CID12 kann eine virtuelle Adresse „0x8000“ aufweisen.
  • Die virtuelle Adresse „0x1000“ kann eine physikalische Adresse „0x9000“ und eine AT „R/W“ haben. Die virtuelle Adresse „0x6000“ kann eine physikalische Adresse „0A9000“ und eine AT „R/W“ haben. Die virtuelle Adresse „0x3000“ kann eine physikalische Adresse „0x0000“ und eine AT „R/W“ haben. Die virtuelle Adresse „0x8000“ kann eine physikalische Adresse „0x2000“ und eine AT „W“ haben.
  • Die Invalidierungswarteschlange 230 speichert Kontextidentifikatoren „0x7“ und „0x3“ als Invalidierungseinträge.
  • Der Walk-Cache 250 umfasst ein Tagfeld 251 und ein Datenfeld 253. Das Tagfeld 251 speichert Kontextidentifikator CID und eine virtuelle Teiladresse pVA, die dem Kontextidentifikator CID entspricht, und das Datenfeld 253 speichert eine zweite physikalische Adresse PA2, die eine Position in der Seitentabelle 40 angibt, die der virtuellen Teiladresse pVA entspricht. Jeder der Einträge in dem Tagfeld 251 des Walk-Cache 250 kann ferner eine gültige Information (VALID) umfassen.
  • Zum Beispiel kann der Kontextidentifikator CID11 virtuelle Teiladressen „pVA11“ und „pVA12“ aufweisen. Der Kontextidentifikator CID12 kann eine virtuelle Teiladresse „pVA13“ aufweisen. Die virtuellen Teiladressen „pVA11“, „pVA12“ und „pVA13“ bezeichnen Positionen in der Seitentabelle 40, die jeweils durch physikalische Adressen PA11, PA12 und PA13 spezifiziert werden.
  • Wie in 6A gezeigt, weist der Kontextidentifikator CID11 unterschiedliche virtuelle Adressen bezüglich eines Kontextidentifikators auf. Daher kann der ATM 260 eine virtuelle Adresse VA in eine physikalische Adresse PA umsetzen, indem primär der Kontext-Cache 210 durchsucht wird, um zu bestimmen, ob ein Zielkontext, der in der Zugriffsanfrage des Master-IP 190 umfasst ist, mit mindestens einem der Einträge des Tagfelds 211 in dem Kontext-Cache 210 übereinstimmt, und indem selektiv der TLB 220 basierend auf einem Durchsuchungsergebnis des Kontext-Caches 210 durchsucht wird.
  • Da der Kontext-Cache 210 die Kontexte speichert, während ein Duplizieren der Kontexte vermieden wird, kann ein belegter Bereich des Kontext-Caches 210 reduziert werden. Zudem speichert der TLB 220 nicht ASID und VMID, die relativ mehr Bits aufweisen, wodurch eine Konfiguration des TLB 220 vereinfacht werden kann.
  • Falls der Zielkontext mit keinem oder allen Einträgen des Tagfelds 211 des Kontext-Caches 210 übereinstimmt, wird ein Page Table Walk durchgeführt, ohne den TLB 220 zu durchsuchen, und daher kann eine Leistung der MMU 200 verbessert werden.
  • Da der herkömmliche TLB 215, der ein Tagfeld 217 und ein Datumsfeld 219 umfasst, ASID und VMID speichert, die relativ mehr Bits haben, wird eine Größe des TLB 215 dagegen erhöht und es ist mehr Zeit erforderlich, um den TLB 215 zu durchsuchen, um zu bestimmen, ob der Zielkontext mit Einträgen des TLB 215 übereinstimmt.
  • 7 ist ein Flussdiagramm, das einen Beispielbetrieb der MMU in 5 gemäß beispielhafter Ausführungsformen darstellt und 8 ist ein Diagramm zur Erläuterung eines Betriebs in 7.
  • In den 5 bis 8 durchsucht der ATM 260 den Kontext-Cache 210 (schlägt darin nach) basierend auf einem Zielkontext, der in der Zugriffsanfrage REQ umfasst ist (Vorgang S100), wenn der ATM 260 die Zugriffsanfrage REQ von dem Master-IP 190 erhält, und bestimmt, ob der Zielkontext mit mindestens einem der ersten Einträge in dem Kontext-Cache 210 übereinstimmt (CC-Tag-Treffer? in Vorgang S115).
  • Falls der Zielkontext nicht mit einem oder allen der ersten Einträge in dem Kontext-Cache 210 übereinstimmt (NEIN in S115), weist der ATM 260 den Zielkontext einem neuen Kontextidentifikator (ID) zu (Vorgang S200) und steuert den Page Table Walker 240, einen Page Table Walk in der Seitentabelle 40 durchzuführen (Vorgang S290).
  • Falls der Zielkontext mit einem (oder mindestens einem) der ersten Einträge in dem Kontext-Cache 210 übereinstimmt (JA in S115), erhält der ATM 260 einen Kontextidentifikator (Kontext-ID), der dem Zielkontext entspricht (S120). Der ATM 260 durchsucht den Umsetzungs-Cache (TC) 218 basierend auf dem erhaltenen Kontextidentifikator und der virtuellen Zieladresse (Vorgang S125) und bestimmt, ob der erhaltene Kontextidentifikator und die virtuelle Zieladresse mit einem von zweiten Einträgen in dem Umsetzungs-Cache 218 übereinstimmt (TC-Tag-Treffer? in Vorgang S130).
  • Falls der erhaltene Kontextidentifikator und die virtuelle Zieladresse mit allen der zweiten Einträge in dem Umsetzungs-Cache 218 übereinstimmt (NEIN in S130), steuert der ATM 260 den Page Table Walker 240, um einen Page Table Walk in der Seitentabelle 40 durchzuführen (Vorgang S290).
  • Falls der erhaltene Kontextidentifikator und die virtuelle Zieladresse mit einem der zweiten Einträge in dem Umsetzungs-Cache 218 übereinstimmt (JA in S130), erhält der ATM 260 eine physikalische Adresse PA entsprechend der virtuellen Zieladresse (Vorgang S 140) und führt eine Adressumsetzung durch, um die physikalische Adresse PA an das Master-IP 190 zu liefern (Vorgang S285).
  • 9A ist ein Flussdiagramm, das einen anderen Beispielbetrieb der MMU in 5 gemäß beispielhafter Ausführungsformen darstellt.
  • In 5 und 9A bestimmt der ATM 260, ob ein Kontext, der aktuell verwendet wird, geändert wurde (Vorgang S105).
  • Falls der Kontext, der aktuell verwendet wird, nicht geändert wurde (NEIN in S 105), führt der ATM 260 den Vorgang S105 durch.
  • Falls der Kontext, der aktuell verwendet wird, geändert wurde (JA in S 105), durchsucht der ATM 260 den Kontext-Cache 210 basierend auf dem geänderten Kontext (Vorgang S107).
  • Der ATM 260 bestimmt, dass der geänderte Kontext mit mindestens einem der ersten Einträge in dem Kontext-Cache 210 übereinstimmt (Vorgang S120). Falls der geänderte Kontext mit keinem oder allen der ersten Einträge in dem Kontext-Cache 210 übereinstimmt (NEIN in S120), weist der ATM 260 den geänderten Kontext einem neuen Kontextidentifikator (ID) zu (Vorgang S200) und speichert den geänderten Kontext in dem Kontext-Cache 210.
  • Falls der geänderte Kontext mit mindestens einem der ersten Einträge in dem Kontext-Cache 210 übereinstimmt (JA in S120), aktualisiert der ATM 260 den Kontext-Cache 210, indem er den übereinstimmenden Eintrag als ersten Kontextidentifikator zuweist (Vorgang S123).
  • Da die Änderung des Kontextes selten auftritt, können die Vorgänge S107, S120 und S123 ausgelassen werden.
  • 9B ist ein Flussdiagramm, das einen anderen Beispielbetrieb der MMU in 5 gemäß beispielhafter Ausführungsformen darstellt.
  • In den 5 und 9B bestimmt der ATM 260, ob eine neue Anfrage von dem Master-IP 190 erhalten wird (Vorgang S106). Falls die neue Anfrage nicht von dem Master-IP 190 erhalten wird (NEIN in S106), führt der ATM 260 den Vorgang S106 durch. Falls die neue Anfrage nicht von dem Master-IP 190 erhalten wird (JA in S106), durchsucht der ATM 260 den Umsetzungs-Cache 218 basierend auf dem zuletzt verwendeten Kontextidentifikator und einer virtuellen Adresse VA, die in der neuen Anfrage umfasst ist (Vorgang S125).
  • Der ATM 260 bestimmt, dass der zuletzt verwendete Kontextidentifikator und die virtuelle Adresse VA mit mindestens einem der zweiten Einträge in dem Umsetzungs-Cache 218 übereinstimmt (Vorgang S135). Falls der zuletzt verwendete Kontextidentifikator und die virtuelle Adresse VA nicht mit allen der zweiten Einträge in dem Umsetzungs-Cache 218 übereinstimmen (NEIN in S290), steuert der ATM 260 den Page Table Walker 240 derart, dass ein Page Table Walk in der Seitentabelle 40 durchgeführt wird (Vorgang S290). Die physikalische Adresse PA kann nach dem Page Table Walk erhalten werden (Vorgang S140). Falls der zuletzt verwendete Kontextidentifikator und die virtuelle Adresse VA mit einem (mindestens einem) der zweiten Einträge in dem Umsetzungs-Cache 218 übereinstimmen (JA in S290), erhält der ATM 260 die physikalische Adresse PA (Vorgang S140).
  • 10 stellt dar, dass ein neuer Kontextidentifikator in 7 zugewiesen wird, und 11 ist ein Beispielvorgang der MMU, die Vorgänge in 10 durchführt.
  • In den 5, 7, 10 und 11 zur Zuweisung eines neuen Kontextidentifikators an den Zielkontext (Vorgang S200a) bestimmt der ATM 260, ob der Kontext-Cache 210 verfügbaren Platz hat, z. B. ob der Kontext-Cache 210 voll ist (Vorgang S210).
  • Falls der Kontext-Cache 210 verfügbaren Platz hat (NEIN in S210), steuert der ATM 260 den Page Table Walker 240 derart, dass er einen Page Table Walk in der Seitentabelle 40 durchführt (Vorgang S290).
  • Falls der Kontext-Cache 210 keinen verfügbaren Platz hat (JA in S210) invalidiert der ATM 260 in dem Kontext-Cache 210 mindestens einen der Einträge (wählt diesen aus) basierend auf einem Nutzungsverlauf der ersten Einträge und platziert einen zu invalidierenden Kontextidentifikator des ausgewählten Eintrags (zeichnet diesen auf) in die Invalidierungswarteschlange 230 (S250). Das heißt, der ATM 260 ändert die Validierungsinformation eines Kontextidentifikators CID13 mit „0x8“, dessen Verwendung am weitesten zurückliegt, von „Y“ zu „N“ und zeichnet „0x8“ in die Invalidierungswarteschlange 230 auf.
  • Der ATM 260 speichert den Zielkontext an einer Position, an der der Kontextidentifikator CDI13 in dem Kontext-Cache 210 gespeichert wurde, und weist dem Zielkontext einen neuen Kontextidentifikator CID14 zu (Vorgang S280).
  • 12 stellt dar, dass ein neuer Kontextidentifikator in 7 gemäß beispielhafter Ausführungsformen zugewiesen wird.
  • In den 5, 7 und 12 zur Zuweisung eines neuen Kontextidentifikators an den Zielkontext (Vorgang S200b) bestimmt der ATM 260, ob der Kontext-Cache 210 verfügbaren Platz hat, z. B. ob der Kontext-Cache 210 voll ist (Vorgang S210).
  • Falls der Kontext-Cache 210 keinen verfügbaren Platz aufweist (JA in S210), bestimmt der ATM 260, ob die Invalidierungswarteschlange 230 verfügbaren Platz aufweist, z. B. ob die Invalidierungswarteschlange 230 voll ist (Vorgang S220). Falls die Invalidierungswarteschlange 230 verfügbaren Platz hat (NEIN in S220), invalidiert der ATM 260 in dem Kontext-Cache 210 mindestens einen der Einträge (wählt diesen aus) basierend auf einem Nutzungsverlauf der ersten Einträge und platziert einen zu invalidierenden Kontextidentifikator (zeichnet diesen auf) von dem ausgewählten Eintrag in der Invalidierungswarteschlange 230 (Vorgang S250).
  • Falls die Invalidierungswarteschlange 230 keinen verfügbaren Platz aufweist, z. B. falls die Invalidierungswarteschlange 230 voll ist (JA in S220), invalidiert der ATM 260 mindestens einige der Einträge in dem Umsetzungs-Cache 218 basierend auf der Invalidierungswarteschlange 230 und entfernt (löscht) mindestens einige Einträge in der Invalidierungswarteschlange 230, sodass die Invalidierungswarteschlange 230 verfügbaren Platz aufweist (Vorgang S230).
  • Der ATM 260 invalidiert in dem Kontext-Cache 210 mindestens einen der Einträge (wählt diesen aus) basierend auf einem Nutzungsverlauf der ersten Einträge und platziert einen zu invalidierenden Kontextidentifikator (zeichnet diesen auf) von dem ausgewählten Eintrag in der Invalidierungswarteschlange 230 (Vorgang S250). Der ATM 260 speichert den Zielkontext an einer Position, an der der Kontextidentifikator in dem Kontext-Cache 210 gespeichert wurde und weist dem Zielkontext einen neuen Kontextidentifikator zu (Vorgang S280).
  • 13A ist ein Flussdiagramm, das ein Beispielverfahren zur Invalidierung von Einträgen in dem Kontext-Cache in der MMU gemäß beispielhafter Ausführungsformen darstellt.
  • In den 5, 6A und 13B bestimmt der ATM 260, ob die Zugriffsanfrage von dem Master-IP 190 einer neuen Invalidierungsanfrage, mindestens einen der Einträge in dem Umsetzungs-Cache 118 zu invalidieren, entspricht (Vorgang S305).
  • Falls die Zugriffsanfrage von dem Master-IP 190 einer neuen, kontext-basierten Invalidierungsanfrage entspricht (JA in S305), durchsucht der ATM 260 den Kontext-Cache 210 basierend auf einem Zielkontext, der in der Invalidierungsanfrage umfasst ist (Vorgang S310) und bestimmt, ob der Zielkontext mit einem oder mehreren Einträge in dem Kontext-Cache 210 übereinstimmt (Vorgang S320). Falls der Zielkontext mit keinem oder allen der Einträge in dem Kontext-Cache 210 übereinstimmt (NEIN in S320), meldet der ATM 260 dem Master-IP 290 den Abschluss der Invalidierung (Vorgang S330).
  • Falls der Zielkontext mit einem oder mehreren der Einträge in dem Kontext-Cache 210 übereinstimmt (JA in S320), invalidiert der ATM 260 einen Eintrag, der dem Zielkontext entspricht, in dem Kontext-Cache 210, zeichnet einen Kontextidentifikator (platziert diesen) von dem invalidierten Eintrag auf (Vorgang S340) und meldet dem Master-IP 290 den Abschluss der Invalidierung (Vorgang S330).
  • 13B ist ein Flussdiagramm, das ein Beispielverfahren zur Invalidierung von Einträgen in dem Umsetzungs-Cache in der MMU gemäß beispielhafter Ausführungsformen darstellt.
  • In 13B bestimmt der ATM 260, ob die Invalidierungswarteschlange 230 verfügbaren Platz hat, z. B. bestimmt er, ob die Invalidierungswarteschlange 230 nicht leer ist (Vorgang S350). Falls die Invalidierungswarteschlange 230 nicht leer ist (JA in S350), bestimmt der ATM 260, ob der Umsetzungs-Cache 218 nicht verwendet wird, z. B., ob es keine Aktivität in dem Umsetzungs-Cache 218 gibt (Vorgang S355). Falls der Umsetzungs-Cache 218 nicht verwendet wird (JA in S355), entfernt (extrahiert) der ATM 260 den Kontextidentifikator aus der Invalidierungswarteschlange 230 und durchsucht den Umsetzungs-Cache 218 basierend auf dem aus der Warteschlange entfernten Kontextidentifikator (Vorgang S360).
  • Der ATM 260 bestimmt, ob der aus der Warteschlange entfernte Kontextidentifikator mit mindestens einem Eintrag in dem Umsetzungs-Cache 218 übereinstimmt (Vorgang S370). Falls der aus der Warteschlange entfernte Kontextidentifikator mit keinem oder allen Einträgen in dem Umsetzungs-Cache 218 übereinstimmt (NEIN in S370), endet der Prozess. Falls der aus der Warteschlange entfernte Kontextidentifikator mit mindestens einem der Einträge in dem Umsetzungs-Cache 218 übereinstimmt (JA in S370), ändert der ATM 260 Validierungsinformationen des übereinstimmenden Eintrags (z. B. des übereinstimmenden Kontextidentifikators) von „Y“ zu „N“ (Vorgang S380).
  • 13A und 13B stellen Invalidierungseinträge des Umsetzungs-Caches 218 basierend auf dem Kontext dar. Zudem stellt 13B Invalidierungseinträge des Umsetzungs-Caches 218 dar, die im Hintergrund durchgeführt wurden, wenn der Umsetzungs-Cache 218 nicht verwendet wird.
  • 14 ist ein Flussdiagramm, das ein anderes Beispielverfahren zur Invalidierung von Einträgen in dem Umsetzungs-Cache in der MMU gemäß beispielhafter Ausführungsformen darstellt.
  • In 5, 6A und 14 bestimmt der ATM 260, ob die Zugriffsanfrage von dem Master-IP 190 einer neuen Invalidierungsanfrage entspricht, um mindestens einen der Einträge in dem Umsetzungs-Cache 118 zu invalidieren (Vorgang S410). In beispielhaften Ausführungsformen kann die Zugriffsanfrage eine virtuelle Adresse VA umfassen.
  • Falls die Zugriffsanfrage von dem Master-IP 190 einer neuen Invalidierungsanfrage basierend auf einer virtuellen Adresse zur Invalidierung eines Eintrags mit einem spezifischen Kontext entspricht (JA in S410), durchsucht der ATM 260 den Kontext-Cache 210 basierend auf einem Zielkontext, der in der Invalidierungsanfrage umfasst ist (Vorgang S415) und bestimmt, ob der Zielkontext mit einem oder mehreren Einträgen in dem Kontext-Cache 210 übereinstimmt (Vorgang S420). Falls der Zielkontext mit keinem oder allen Einträgen in dem Kontext-Cache 210 übereinstimmt (NEIN in S420), meldet der ATM 260 dem Master-IP 290 den Abschluss der Invalidierung (Vorgang S470).
  • Falls der Zielkontext mit einem oder mehreren der Einträge in dem Kontext-Cache 210 übereinstimmt (JA in S420), erhält der ATM 260 einen Kontextidentifikator, der dem Zielkontext entspricht (Vorgang S430), und durchsucht den Umsetzungs-Cache 218 basierend auf dem erhaltenen Kontextidentifikator und der virtuellen Adresse (Vorgang S440). Der ATM bestimmt, ob der erhaltene Kontextidentifikator und die virtuelle Adresse mit mindestens einem der Einträge in dem Umsetzungs-Cache 118 übereinstimmt (Vorgang S450). Falls der erhaltene Kontextidentifikator und die virtuelle Adresse nicht mit allen Einträgen des Umsetzungs-Caches 118 übereinstimmt (NEIN in S450), meldet der ATM 260 dem Master-IP 290 den Abschluss der Invalidierung (Vorgang S470).
  • Falls der erhaltene Kontextidentifikator und die virtuelle Adresse mit mindestens einem der Einträge in dem Umsetzungs-Cache 118 übereinstimmen (JA in S450), ändert der ATM 260 Validierungsinformationen des übereinstimmenden Eintrags (z. B. des übereinstimmenden Kontextidentifikators) von „Y“ zu „N“ (Vorgang S460) und meldet dem Master-IP 290 den Abschluss der Invalidierung (Vorgang S470).
  • 14 stellt Invalidierungseinträge des Umsetzungs-Caches 218 basierend auf der virtuellen Adresse dar.
  • Die MMU 200 in dem Anwendungsprozessor 100 gemäß beispielhafter Ausführungsformen kann eine virtuelle Adresse in eine physikalische Adresse umsetzen, indem primär der Kontext-Cache durchsucht wird, der Kontexte speichert, während das Duplizieren von Kontexten vermieden wird, und indem basierend auf einem Ergebnis der Durchsuchung des Kontext-Caches selektiv der Umsetzungs-Cache durchsucht wird. Daher kann eine Größe des Umsetzungs-Caches reduziert werden. Zudem kann eine Leistung des Anwendungsprozessors 100 durch Verarbeiten einer Invalidierungsanfrage im Hintergrund verbessert werden, während der Umsetzungs-Cache 118 nicht verwendet wird, wenn die Invalidierungsanfrage eine kontextbasierte Invalidierung bezeichnet.
  • 15 stellt ein anderes Beispiel des Anwendungsprozessors in dem SoC in 1 gemäß beispielhafter Ausführungsformen dar.
  • In 15 kann ein Anwendungsprozessor 100a ein MMU-Modul 200a umfassen.
  • Das MMU-Modul 200a kann mindestens eine MMU umfassen und kann eine virtuelle Adresse, die in einer Anfrage von dem Master-IP 190 umfasst ist, in eine physikalische Adresse umsetzen.
  • 16 ist ein Blockschaltbild, das ein Beispiel des MMU-Moduls 200a in 15 gemäß beispielhaften Ausführungsformen darstellt.
  • In 16 sind das Master-IP 190 und die Speichervorrichtung 30 zum Zwecke einer einfacheren Erläuterung dargestellt.
  • In 16 umfasst das MMU-Modul 200a einen Adressverteiler 270, eine erste Bus-Schnittstelle 275, eine Mehrzahl von MMUs 281~28k und/oder eine zweite Bus-Schnittstelle 290. Obwohl nicht in 16 dargestellt, kann das MMU-Modul 200a ferner einen Cache umfassen, der Daten und/oder eine Anweisung speichert, die der physikalischen Adresse entsprechen.
  • Die MMU (MMU1) 281 umfasst einen Kontext-Cache CC1, einen Umsetzungs-Cache TC1 und/oder eine Invalidierungswarteschlange IQ1. Die MMU (MMU2) 282 umfasst einen Kontext-Cache CC2, einen Umsetzungs-Cache TC2 und/oder eine Invalidierungswarteschlange IQ2. Die MMU (MMUk) 28k umfasst einen Kontext-Cache CCk, einen Umsetzungs-Cache TCk und/oder eine Invalidierungswarteschlange IQk. Jeder der Umsetzungs-Caches TC1 -TCk kann einen TLB oder einen Walk-Cache umfassen.
  • Das Master-IP 190 kann für jeden Arbeitssatz betrieben werden und kann eine Mehrzahl an Arbeitssätzen gleichzeitig verarbeiten. Ein Arbeitssatz ist ein Datensatz, der in der Speichervorrichtung 30 gespeichert ist. Der Arbeitssatz gibt einen Satz an Seiten an, auf die das Master-IP 190 häufig zugreift, zum Beispiel über eine Referenzzahl in einem Referenzzeitraum hinweg, oder eine Anzahl an Seiten kann von dem Master-IP 190 in die Speichervorrichtung 30 geladen werden. Gemäß beispielhafter Ausführungsformen der erfinderischen Konzepte wird in dem Master-IP 190 jeder Arbeitssatz unabhängig von anderen Arbeitssätzen verwaltet.
  • Wenn das Master-IP 190 Vorgänge bezüglich einer Mehrzahl an Arbeitssätzen durchführt, kann der Adressverteiler 270 dynamisch eine MMU für jede der Arbeitssätze zuweisen. Der Adressverteiler 270 speichert MMU-Zuweisungsinformationen entsprechend jedem der Arbeitssätze.
  • Bei Erhalt einer Anforderung bezüglich eines Arbeitssatzes von dem Master-IP 190, kann der Adressverteiler 270 eine MMU-Identifikation MMU_ID einer MMU entsprechend der virtuellen Adresse VA, die in der Anfrage an die erste Bus-Schnittstelle 275 umfasst ist, basierend auf der MMU-Zuweisungsinformation ausgeben. Die erste Bus-Schnittstelle 275 kann die Anfrage und Daten an die MMU übertragen, die der MMU-Identifikation MMU_ID entspricht.
  • 17 stellt ein Beispiel für den Adressverteiler 270 in 16 gemäß beispielhafter Ausführungsformen dar.
  • In 17 umfasst der Adressverteiler 270 einen Registersatz 271 und/oder einen Adressenkomparator 273.
  • Der Registersatz 271 speichert die MMU-Zuweisungsinformation entsprechend jedem der Arbeitssätze. Mit anderen Worten, der Registersatz 271 speichert die MMU-Zuweisungsinformation, in der virtuelle Adressen VA, die jeweils einem Arbeitssatz entsprechen, einer MMU ID zugeordnet werden. Gemäß beispielhafter Ausführungsformen kann die MMU-Zuweisungsinformation Indikatorinformationen zur Unterscheidung der virtuellen Adressen VA für jeden Arbeitssatz umfassen. Die Indikatorinformation kann zum Beispiel ein Startpunkt und/oder ein Endpunkt für die konsekutiven virtuellen Adressen VA eines Arbeitssatzes sein.
  • Der Adressenkomparator 273 kann die virtuellen Adressen VA der Anfrage, die von dem Master-IP 190 erhalten wurde, mit der MMU-Zuweisungsinformation vergleichen. Der Adressenkomparator 273 kann eine MMU-Identifikation MMU_ID, die der Anfrage entspricht, als Ergebnis des Vergleichs ausgeben.
  • 18 ist ein Konzeptdiagramm zur Erläuterung des Betriebs des MMU-Moduls in 16.
  • Wie in 18 dargestellt, können erste bis n-te Arbeitssätze zum Beispiel eine Mehrzahl an Seiten umfassen, auf die in der Speichervorrichtung 30 durch das Master-IP 190 Häufig Bezug genommen wird, zum Beispiel über eine Referenzanzahl in einem Referenzzeitraum hinaus, das heißt, eine Mehrzahl benachbarter virtueller Adressen VA. Zum Beispiel umfasst der erste Arbeitssatz virtuelle Adresse VA0 bis VA2. Allerdings werden die Arbeitssätze unabhängig voneinander in dem Vorgang des Master-IP 190 verwaltet. Mit anderen Worten, eine einzige virtuelle Adresse VA gehört nicht zu zwei oder mehr Arbeitssätzen. Zum Beispiel können die virtuellen Adressen VA0 bis VAn konsekutiv für die Arbeitssätze angeordnet sein, wie in 18 gezeigt.
  • Jede MMU setzt die virtuelle Adresse VA eines Arbeitssatzes, der der MMU zugeordnet ist, in die physikalische Adresse PA um. Die Adressumsetzung kann basierend auf einem TLB innerhalb der MMU durchgeführt werden. Die physikalische Adresse PA, die von der MMU umgesetzt wird, kann sich von einer physikalischen Adresse, die von einer anderen MMU umgesetzt wurde, unterscheiden oder mit dieser gleich sein.
  • Wenn angenommen wird, dass ein Arbeitssatz an Daten, der von dem Master-IP 190 zu verarbeiten ist, der MMU1 281 zugeordnet wird, erhält die erste Bus-Schnittstelle 275 eine ID1 der MMU1 281 von dem Adressverteiler 270 und übermittelt eine Anfrage des Master-IP 190 und Daten an die MMU1 281.
  • Die MMU1 281 setzt die virtuelle Adresse VA für die Anfrage in die physikalische Adresse PA um. Wenn die MMU1 281 die virtuelle Adresse VA in die physikalische Adresse PA umsetzt, durchsucht die MMU1 281 primär den Kontext-Cache CC1, und durchsucht selektiv den Umsetzungs-Cache TC1 basierend auf einem Ergebnis der Durchsuchung des Kontext-Caches CC1 und überträgt die angeforderte, umgesetzte virtuelle Adresse VA in die physikalische Adresse PA an das Master-IP 190 über die erste Bus-Schnittstelle 275. Zudem überträgt die MMU1 281 die Anfrage und die Daten an die Speichervorrichtung 30 durch die zweite Bus-Schnittstelle 290. Die zweite Bus-Schnittstelle 290 greift auf die physikalische Adresse PA in der Speichervorrichtung 30 zu und führt einen Vorgang entsprechend der Anfrage bezüglich der Daten durch.
  • Wenn das Master-IP 190 einen Vorgang bezüglich eines anderen Arbeitssatzes startet, während es einen Vorgang bezüglich eines aktuellen Arbeitssatzes durchführt, wird eine der MMUs, die nicht dem aktuellen Arbeitssatz zugewiesen wurde, in dem MMU-Modul 200a für den neuen Arbeitssatz zugewiesen und unabhängig betrieben. Folglich wird ein TC-Fehler im Vergleich zu einem Fall reduziert, in dem nur eine MMU von allen Arbeitssätzen geteilt wird, die von dem Master-IP 190 verwendet wird. Dementsprechend wird das Trefferverhältnis während des Datenverarbeitungsvorgangs des Master-IP 190 erhöht, und die Betriebsgeschwindigkeit des SoC 10 wird ebenfalls erhöht, während eine gegenseitige Beeinflussung zwischen Arbeitssätzen minimiert oder reduziert wird. Da die MMU für jeden Arbeitssatz zugewiesen wird, wird die MMU zudem flexibel betrieben.
  • 19 ist ein Flussdiagramm, das ein Verfahren zum Betreiben einer MMU in einem Anwendungsprozessor gemäß beispielhafter Ausführungsformen darstellt.
  • In den 1 bis 14 und 19 erhält der ATM 260 in der MMU 200 in einem Verfahren zum Betreiben einer MMU 200 in einem Anwendungsprozessor 100 eine Zugriffsanfrage, die einen Zielkontext und eine virtuelle Zieladresse umfasst, von dem Master-IP 190 (Vorgang S510).
  • Der ATM 260 bestimmt, ob der Zielkontext mit mindestens einem der ersten Einträge in einem Kontext-Cache 210 übereinstimmt, indem er den Kontext-Cache 210 durchsucht (Vorgang S520). Der Kontext-Cache 210 speichert Kontexte und Kontextidentifikatoren der gespeicherten Kontexte jeweils als erstes Tag und erste Daten, während das Duplizieren von Kontexten vermieden wird.
  • Der ATM 260 bestimmt selektiv, ob ein Zielkontextidentifikator, der dem Zielkontext entspricht, mit mindestens einem der zweiten Einträge in einem Umsetzungs-Cache 218 übereinstimmt, indem selektiv er den Umsetzungs-Cache 218 basierend auf der Durchsuchung des Kontext-Caches 210 durchsucht (Vorgang S5 30). Der Umsetzungs-Cache 218 speichert die Kontextidentifikatoren und virtuellen Adressen, die den Kontextidentifikatoren entsprechen, als zweites Tag und speichert physikalische Adressen, die den virtuellen Adressen entsprechen, als zweite Daten.
  • Der ATM 260 setzt die physikalische Zieladresse in eine physikalische Zieladresse basierend auf der selektiven Bestimmung um (Vorgang S540) und gibt die physikalische Zieladresse an das Master-IP 190 aus.
  • 20 ist ein Blockschaltbild eines mobilen Geräts, das ein SoC gemäß beispielhafter Ausführungsformen umfasst.
  • In 20 umfasst ein mobiles Gerät 900 einen SoC 910, eine LPDDRx-Speichervorrichtung 940, einen Bildsensor 950 und/oder eine Anzeige 960. Der SoC 910 umfasst einen Anwendungsprozessor 920 und/oder einen WideIO-Speicher 930.
  • Daten, die auf dem WideIO-Speicher 930 oder der LPDDRx-Speichervorrichtung 940 gespeichert sind, können auf der Anzeige 960 gesteuert durch den SoC 910 angezeigt werden. Der SoC 910, insbesondere der Anwendungsprozessor 920, kann die MMU 200 in 5 oder das MMU-Modul 200a in 16 umfassen.
  • Daher kann die MMU des Anwendungsprozessors 920 einen Kontext-Cache, einen Umsetzungs-Cache, eine Invalidierungswarteschlange und/oder einen ATM umfassen. Der ATM kann eine virtuelle Adresse, die in einer Zugriffsanfrage von einem Master-IP umfasst ist, in eine physikalische Adresse umsetzen, indem primär der Kontext-Cache durchsucht wird, der Kontexte speichert, während das Duplizieren von Kontexten vermieden wird, und indem basierend auf der Durchsuchung des Kontext-Caches selektiv der Umsetzungs-Cache durchsucht wird. Daher kann eine Größe des Umsetzungs-Caches reduziert werden.
  • Ein SoC und eine Halbleitervorrichtung gemäß den erfinderischen Konzepten kann als eine von verschiedenen Typen verpackt werden, die anschließend eingebettet werden sollen. Zum Beispiel kann ein SoC gemäß der erfinderischen Konzepte durch PoP (Package on Package), Kugelgitteranordnungen (Ball Grid Array, BGA), Chip Scale Package (CSPs), Plastic Leaded Chip Carrier (PLCC), Plastic Dual In-Line Package (PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board (COB), Ceramic Dual In-Line Package (CERDIP), Plastic Metric Quad Flat Pack (MQFP), Thin Quad Flatpack (TQFP), Small Outline (SOIC), Shrink Small Outline Package (SSOP), Thin Small Outline (TSOP), Thin Quad Flatpack (TQFP), System In Package (SIP), Multi-Chip Package (MCP), Wafer-level Fabricated Package (WFP) oder Wafer-Level Processed Stack Package (WSP) verpackt sein.
  • Die oben beschriebenen Elemente der 1 bis 20 können in einer Verarbeitungsschaltung wie Hardware, die Logikschaltungen umfasst, einer Hardware-/Software-Kombination, wie beispielsweise einer prozessorausführenden Software, oder einer Kombination aus denselben und Speicher implementiert werden. Zum Beispiel kann die Verarbeitungsschaltung insbesondere eine zentrale Verarbeitungseinheit (CPU), eine arithmetisch-logische Einheit (ALU), einen Digitalsignalprozessor, einen Mikrocomputer, ein Field Programmable Gate Array (FPGA), eine programmierbare Logikeinheit, einen Mikroprozessor, eine anwendungsspezifische integrierte Schaltung (ASIC) usw. umfassen, sie ist aber nicht darauf beschränkt.
  • Das Vorstehende soll beispielhafte Ausführungsformen erläutern und soll nicht als dieselben einschränkend ausgelegt werden. Obwohl beispielhafte Ausführungsformen beschrieben wurden, wird der Fachmann verstehen, dass viele Modifikationen in den beispielhaften Ausführungsformen möglich sind, ohne wesentlich von der neuen Lehre und den Vorteilen der vorliegenden Offenbarung abzuweichen. Dementsprechend sollen alle derartigen Modifikationen in dem Umfang der vorliegenden Offenbarung enthalten sein, wie in den Ansprüchen definiert.

Claims (15)

  1. Anwendungsprozessor, der Folgendes aufweist: eine Speicherverwaltungseinheit (MMU), die eingerichtet ist, auf eine Zugriffsanfrage, die sie von einem Master-Intellectual-Property (IP) erhält, zu antworten, wobei die Zugriffsanfrage einen Zielkontext und eine virtuelle Zieladresse umfasst, wobei die Zugriffsanfrage einer Durchsuchungsanfrage entspricht, um die virtuelle Zieladresse in eine erste physikalische Zieladresse umzusetzen, und wobei die MMU Folgendes umfasst: einen Kontext-Cache, der eingerichtet ist, Kontexte und Kontextidentifikatoren der gespeicherten Kontexte jeweils als erstes Tag und erste Daten zu speichern, während das Duplizieren von Kontexten vermieden wird, wobei die Kontexte in der Durchsuchungsanfrage verwendet werden; einen Umsetzungs-Cache, der eingerichtet ist, eine erste Adresse und erste Kontextidentifikatoren als zweites Tag zu speichern, und eingerichtet ist, zweite Adressen als zweite Daten zu speichern, wobei die erste Adresse einer virtuellen Adresse entspricht, die in der Durchsuchungsanfrage verwendet wird, die ersten Kontextidentifikatoren einem ersten Kontext entsprechen, der in der Durchsuchungsanfrage verwendet wird, und die zweiten Adressen der ersten Adresse und dem ersten Kontext entsprechen; eine Invalidierungswarteschlange, die eingerichtet ist, mindestens einen Kontextidentifikator zu speichern, der invalidiert werden soll, von den Kontextidentifikatoren, die in dem Umsetzungs-Cache gespeichert sind; und einen Adressumsetzungsmanager (Address Translation Manager, ATM), der eingerichtet ist, den Kontext-Cache, den Umsetzungs-Cache und die Invalidierungswarteschlange zu steuern.
  2. Anwendungsprozessor nach Anspruch 1, wobei der ATM eingerichtet ist, die erste Adresse in die zweite Adresse umzusetzen, indem er den Kontext-Cache ansprechend auf die Durchsuchungsanfrage durchsucht und selektiv den Umsetzungs-Cache basierend auf einem Ergebnis der Durchsuchung des Kontext-Caches durchsucht.
  3. Anwendungsprozessor nach Anspruch 2, wobei der ATM, falls der Zielkontext mit mindestens einem der ersten Einträge in dem Kontext-Cache übereinstimmt, eingerichtet ist, einen dem Zielkontext entsprechenden Kontextidentifikator als Zielkontextidentifikator zu erhalten.
  4. Anwendungsprozessor nach Anspruch 3, wobei der Umsetzungs-Cache einen Adressumsetzpuffer (Translation Lookaside Buffer, TLB) umfasst, wobei der TLB eingerichtet ist, die virtuellen Adressen als erste Adressen zu speichem, und eingerichtet ist, physikalische Adressen, die den virtuellen Adressen entsprechen, als zweite Adressen zu speichern, und wobei der ATM, falls der Zielkontextidentifikator und die virtuelle Zieladresse mit einem der zweiten Einträge in dem TLB übereinstimmen, eingerichtet ist, den TLB derart zu steuern, dass er eine erste physikalische Adresse entsprechend der virtuellen Zieladresse als erste physikalische Zieladresse bereitzustellen.
  5. Anwendungsprozessor nach Anspruch 4, wobei die MMU ferner einen Page Table Walker umfasst, wobei der ATM, falls der Zielkontextidentifikator mit keinen oder allen der zweiten Einträge in dem TLB übereinstimmt, eingerichtet ist, den Page Table Walker zu steuern, einen Page Table Walk in einer Seitentabelle durchzuführen, die eine virtuelle Adresse einer entsprechenden physikalischen Adresse zuordnet, und der ATM, falls der Zielkontextidentifikator mit keinen oder allen der ersten Einträge in dem Kontext-Cache übereinstimmt, eingerichtet ist, den Page Table Walker zu steuern, einen Page Table Walk in einer Seitentabelle durchzuführen.
  6. Anwendungsprozessor nach Anspruch 3, wobei die MMU ferner einen Page Table Walker umfasst, wobei der Umsetzungs-Cache einen Walk-Cache umfasst, wobei der Walk-Cache eingerichtet ist, virtuelle Teiladressen der virtuellen Adressen als erste Adressen zu speichern, und eingerichtet ist, zweite physikalische Adressen zu speichern, um eine Position der Seitentabelle anzugeben, die der ersten Adresse entspricht, wobei der ATM eingerichtet ist, den Page Table Walker zu steuern, einen Page Table Walk in einer Seitentabelle durchzuführen, die eine virtuelle Zieladresse der ersten physikalischen Zieladresse zuordnet, und wobei der ATM, falls der Zielkontextidentifikator und die virtuelle Zieladresse einem der zweiten Einträge in dem Walk-Cache entsprechen, eingerichtet ist, den Walk-Cache derart zu steuern, dass er dem Page Table Walker eine zweite physikalische Adresse entsprechend der ersten Adresse bereitstellt.
  7. Anwendungsprozessor nach Anspruch 3, wobei der ATM, falls der Zielkontext mit keinem oder allen der ersten Einträgen in dem Kontext-Cache übereinstimmt, eingerichtet ist, dem Zielkontext einen neuen Kontextidentifikator zuzuweisen und den Zielkontext in dem Kontext-Cache zu speichern, wobei der ATM eingerichtet ist, zu bestimmen, ob der Kontext-Cache verfügbaren Speicherplatz aufweist, falls der Kontext-Cache keinen verfügbaren Speicherplatz aufweist, der ATM eingerichtet ist, in der Invalidierungswarteschlange einen Kontextidentifikator von mindestens einem der ersten Einträge, die in dem Kontext-Cache gespeichert sind, basierend auf einem Nutzungsverlauf der ersten Einträge aufzuzeichnen, und eingerichtet ist, den Zielkontext und den neuen Kontextidentifikator in dem Kontext-Cache zu speichern.
  8. Anwendungsprozessor nach Anspruch 3, wobei der ATM, falls der Zielkontext mit keinem oder allen der ersten Einträgen in dem Kontext-Cache übereinstimmt, eingerichtet ist, dem Zielkontext einen neuen Kontextidentifikator zuzuweisen und den Zielkontext in dem Kontext-Cache zu speichern, wobei der ATM eingerichtet ist, zu bestimmen, ob der Kontext-Cache einen ersten verfügbaren Speicherplatz aufweist, falls der Kontext-Cache keinen ersten verfügbaren Speicherplatz aufweist, der ATM eingerichtet ist, zu bestimmen, ob die Invalidierungswarteschlange einen zweiten verfügbaren Speicherplatz aufweist, falls die Invalidierungswarteschlange den zweiten verfügbaren Speicherplatz nicht aufweist, der ATM eingerichtet ist, mindestens einen der zu invalidierenden Kontextidentifikatoren aus der Invalidierungswarteschlange zu entfernen, eingerichtet ist, null oder mehr zweite Einträge in dem Umsetzungs-Cache basierend auf dem aus der Warteschlange entfernten Kontextidentifikator zu invalidieren, und eingerichtet ist, den Zielkontext und den neuen Kontextidentifikator in dem Kontext-Cache zu speichem.
  9. Anwendungsprozessor nach Anspruch 2, wobei der ATM eingerichtet ist: zu bestimmen, ob der Kontext geändert wurde, und den Kontext-Cache primär zu durchsuchen, ob der Kontext geändert wurde; falls der veränderte Kontext mit keinem oder allen ersten Einträgen des Kontext-Caches gemäß einem Ergebnis der Durchsuchung übereinstimmt, dem geänderten Kontext einen neuen Kontextidentifikator zuzuweisen und den neuen Kontextidentifikator in dem Kontext-Cache als ersten Kontextidentifikator zu speichern; und, falls der geänderte Kontext mit mindestens einem der ersten Einträge in dem Kontext-Cache gemäß dem Ergebnis der Durchsuchung übereinstimmt, den übereinstimmenden Kontext in dem Kontext-Cache als ersten Kontextidentifikator zu speichem, wobei der ATM ansprechend auf die Durchsuchungsanfrage eingerichtet ist: den Umsetzungs-Cache basierend auf dem ersten Kontextidentifikator und der virtuellen Adresse zu durchsuchen; und die zweite Adresse zu erhalten, falls mindestens einer der zweiten Einträge in dem Umsetzungs-Cache mit der ersten Adresse entsprechend dem ersten Kontextidentifikator und der virtuellen Adresse übereinstimmt.
  10. Anwendungsprozessor nach Anspruch 1, wobei die Zugriffsanfrage einer kontextbasierten Invalidierungsanfrage entspricht, um zweite Einträge in dem Umsetzungs-Cache zu invalidieren, und der Umsetzungs-Cache einen Kontextidentifikator entsprechend dem Zielkontext als zweiten Tag speichert, und wobei der ATM eingerichtet ist: den Kontext-Cache ansprechend auf der kontextbasierten Invalidierungsanfrage zu durchsuchen; selektiv den Umsetzungs-Cache basierend auf einem Ergebnis der Durchsuchung des Kontext-Caches zu durchsuchen; und den Abschluss einer Invalidierung der zweiten Einträge in dem Umsetzungs-Cache zu melden.
  11. Anwendungsprozessor nach Anspruch 10, wobei der ATM, falls der Zielkontext mindestens einem der ersten Einträge in dem Kontext-Cache entspricht, eingerichtet ist: einen Zielkontextidentifikator entsprechend dem Zielkontext zu invalidieren; und den invalidierten Zielkontextidentifikator in der Invalidierungswarteschlange aufzuzeichnen, und wobei der ATM, falls der Zielkontext mit keinen oder allen der ersten Einträge in dem Kontext-Cache übereinstimmt, eingerichtet ist, den Abschluss der Invalidierung zu melden.
  12. Anwendungsprozessor nach Anspruch 10, wobei der ATM eingerichtet ist, zu bestimmen, ob die Invalidierungswarteschlange verfügbaren Speicherplatz aufweist, falls die Invalidierungswarteschlange keinen verfügbaren Speicherplatz aufweist, der ATM eingerichtet ist, zu bestimmen, ob der Umsetzungs-Cache verwendet wird, der ATM, falls der Umsetzungs-Cache nicht verwendet wird, eingerichtet ist, einen in der Invalidierungswarteschlange aufgezeichneten Kontextidentifikator zu extrahieren, eingerichtet ist, den Umsetzungs-Cache basierend auf dem extrahierten Kontextidentifikator zu durchsuchen, und, falls der extrahierte Kontextidentifikator mit mindestens einem der Einträge in dem Umsetzungs-Cache übereinstimmt, eingerichtet ist, den übereinstimmenden Eintrag zu invalidieren.
  13. Anwendungsprozessor nach Anspruch 1, wobei die Zugriffsanfrage einer Invalidierungsanfrage basierend auf einer virtuellen Adresse entspricht, um zweite Einträge in dem Umsetzungs-Cache zu invalidieren, und der Umsetzungs-Cache einen Kontextidentifikator entsprechend dem Zielkontext als zweiten Tag speichert, und wobei der ATM eingerichtet ist: eine erste Durchsuchung in dem Kontext-Cache basierend auf dem Zielkontext durchzuführen; einen Zielkontextidentifikator zu erhalten, der einem Zielkontext entspricht, falls der Zielkontext mit mindestens einem der ersten Einträge des Kontext-Caches gemäß einem Ergebnis der ersten Durchsuchung übereinstimmt; eine zweite Durchsuchung in dem Umsetzungs-Cache basierend auf einer virtuellen Adresse und dem Zielkontextidentifikator durchzuführen; und falls die virtuelle Adresse und der Zielkontextidentifikator mit mindestens einem der zweiten Einträge in dem Umsetzungs-Cache gemäß einem Ergebnis der zweiten Durchsuchung übereinstimmt, den übereinstimmenden Eintrag zu invalidieren.
  14. Anwendungsprozessor nach Anspruch 1, wobei der ATM eingerichtet ist, wenn er einen Page Table Walk durchführt, die erste Adresse in die zweite Adresse umzusetzen, indem er den Kontext-Cache primär ansprechend auf die Durchsuchungsanfrage durchsucht und den Page Table Walk basierend auf einem Ergebnis der Durchsuchung des Kontext-Caches durchführt, wobei der ATM, falls der Zielkontext mindestens einem der ersten Einträge in dem Kontext-Cache entspricht, eingerichtet ist, einen dem Zielkontext entsprechenden Kontextidentifikator als Zielkontextidentifikator zu erhalten, und wobei der ATM, falls der Zielkontextidentifikator und die virtuelle Zieladresse mit mindestens einem der zweiten Einträge in dem Walk-Cache übereinstimmen, eingerichtet ist, den Walk-Cache derart zu steuern, dass er eine physikalische Adresse entsprechend der Adresse als physikalische Zieladresse bereitstellt.
  15. System-on-Chip, das Folgendes aufweist: ein Master-Intellectual-Property (IP), der eingerichtet ist, eine Zugriffsanfrage auszugeben; einen Anwendungsprozessor, der eine Speicherverwaltungseinheit (MMU) umfasst, die eingerichtet ist, eine virtuelle Zieladresse in eine erste physikalische Zieladresse ansprechend auf die Zugriffsanfrage umzusetzen, welche einen Zielkontext und die virtuelle Zieladresse umfasst; und eine Speichervorrichtung, die mit der MMU gekoppelt ist, die eine Seitentabelle umfasst, in der Kennfeldinformationen zwischen virtuellen Adressen und ersten physikalischen Adressen gespeichert sind, wobei die MMU Folgendes umfasst: einen Kontext-Cache, der eingerichtet ist, Kontexte und Kontextidentifikator der gespeicherten Kontexte jeweils als erstes Tag und erste Daten zu speichern, während das Duplizieren von Kontexten vermieden wird, wobei die Kontexte in einer Durchsuchungsanfrage entsprechend der Zugriffsanfrage verwendet werden; einen Umsetzungs-Cache, der eingerichtet ist, eine erste Adresse und erste Kontextidentifikatoren als zweites Tag zu speichern, und eingerichtet ist, zweite Adressen als zweite Daten zu speichern, wobei die erste Adresse einer virtuellen Adresse entspricht, die in der Durchsuchungsanfrage verwendet wird, die ersten Kontextidentifikatoren einem ersten Kontext entsprechen, die in der Durchsuchungsanfrage verwendet werden, und die zweiten Adressen der ersten Adresse und dem ersten Kontext entsprechen; eine Invalidierungswarteschlange, die eingerichtet ist, mindestens einen Kontextidentifikator zu speichern, der invalidiert werden soll, von den Kontextidentifikatoren, die in dem Umsetzungs-Cache gespeichert sind; und einen Adressumsetzungsmanager (Address Translation Manager, ATM), der eingerichtet ist, den Kontext-Cache, den Umsetzungs-Cache und die Invalidierungswarteschlange zu steuern.
DE102019117783.9A 2019-05-15 2019-07-02 Anwendungsprozessor und System-on-Chip Pending DE102019117783A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US16/413,034 2019-05-15
US16/413,034 US11216385B2 (en) 2019-05-15 2019-05-15 Application processor, system-on chip and method of operating memory management unit
KR1020190062943A KR20200133165A (ko) 2019-05-15 2019-05-29 어플리케이션 프로세서, 시스템-온 칩 및 메모리 관리 유닛의 동작 방법
KR10-2019-0062943 2019-05-29

Publications (1)

Publication Number Publication Date
DE102019117783A1 true DE102019117783A1 (de) 2020-11-19

Family

ID=73019033

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019117783.9A Pending DE102019117783A1 (de) 2019-05-15 2019-07-02 Anwendungsprozessor und System-on-Chip

Country Status (2)

Country Link
CN (1) CN111949562A (de)
DE (1) DE102019117783A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115460172A (zh) * 2022-08-22 2022-12-09 曙光信息产业股份有限公司 设备地址分配方法、装置、计算机设备、介质及程序产品

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114676071B (zh) * 2022-05-18 2022-08-19 飞腾信息技术有限公司 数据处理方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150055649A1 (en) * 2013-03-15 2015-02-26 International Business Machines Corporation Cell fabric hardware acceleration
US20180004664A1 (en) * 2016-06-29 2018-01-04 International Business Machines Corporation Computer system including synchronous input/output and hardware assisted purge of address translation cache entries of synchronous input/output transactions

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150055649A1 (en) * 2013-03-15 2015-02-26 International Business Machines Corporation Cell fabric hardware acceleration
US20180004664A1 (en) * 2016-06-29 2018-01-04 International Business Machines Corporation Computer system including synchronous input/output and hardware assisted purge of address translation cache entries of synchronous input/output transactions

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115460172A (zh) * 2022-08-22 2022-12-09 曙光信息产业股份有限公司 设备地址分配方法、装置、计算机设备、介质及程序产品
CN115460172B (zh) * 2022-08-22 2023-12-05 曙光信息产业股份有限公司 设备地址分配方法、装置、计算机设备、介质及程序产品

Also Published As

Publication number Publication date
CN111949562A (zh) 2020-11-17

Similar Documents

Publication Publication Date Title
DE60211076T2 (de) Datenübertragung zwischen virtuellen Adressen
DE112010001467B4 (de) Steuerung von Blöcken einer On-Die-System-Struktur
DE102015109124B4 (de) Cache-Wegvorhersage
DE102018213430A1 (de) Beschleuniger mit geringer Latenzzeit
EP2936322B1 (de) Verarbeitungsvorrichtung mit adressübersetzungssondierung und verfahren
DE102018125257A1 (de) Defragmentierter und effizienter mikrooperationscache
DE102010035603A1 (de) Bereitstellen von Hardwareunterstützung für gemeinsam benutzten virtuellen Speicher zwischen physischem Lokal- und Fernspeicher
DE102014103056A1 (de) Ein-Chip-System und Verfahren des Betreibens desselben
JP2019516179A (ja) タグ付きオブジェクトメモリのモニタリング方法及び処理装置
US10684957B2 (en) Apparatus and method for neighborhood-aware virtual to physical address translations
DE102014100031A1 (de) Ein-Chip-System mit Speicherverwaltungseinheit und Speicheradressen-Übersetzungsverfahren hiervon
DE102018001537A1 (de) System, vorrichtung und verfahren zum selektiven freigeben einer instruktionshandhabung auf lokalitäts-basis
DE112013001751T5 (de) Hybride Adressumsetzung
DE202010018020U1 (de) Opportunistische Verbesserung einer MMIO-Anfrageabwicklung aufgrund eines Zielberichts von Raumerfordernissen
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE102020117350A1 (de) Speichersystem einschliesslich heterogener speicher, computersystem mit dem speichersystem und datenverwaltungsverfahren dafür
DE102017124078A1 (de) Ordinale modifikation der dienstgüte
DE69815482T2 (de) Computer Anordnung mit Prozessor und Speicher-Hierarchie und sein Betriebsverfahren
DE102019117783A1 (de) Anwendungsprozessor und System-on-Chip
DE112021001345T5 (de) On-demand speicherzuweisung
DE112010002777T5 (de) Verzeichnis-Cache-Allokation basierend auf Snoop-Antwort-Informationen
DE102022104654A1 (de) Verfahren und einrichtung zum aktivieren eines cache (devpic) zum speichern von prozessspezifischen informationen innerhalb von vorrichtungen, die adressübersetzungsdienst (ats) unterstützen
DE102018002480A1 (de) System, einrichtung und verfahren zum ausserkraftsetzen der nichtlokalitätsbasierten befehlsbehandlung
DE112017002277T5 (de) Verbesserte Adressraum-Layoutrandomisierung
JPWO2008155849A1 (ja) 演算処理装置、tlb制御方法、tlb制御プログラムおよび情報処理装置

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication