DE112017003822T5 - Automatische hardware-zlw-einführung für ipu-bildströme - Google Patents

Automatische hardware-zlw-einführung für ipu-bildströme Download PDF

Info

Publication number
DE112017003822T5
DE112017003822T5 DE112017003822.7T DE112017003822T DE112017003822T5 DE 112017003822 T5 DE112017003822 T5 DE 112017003822T5 DE 112017003822 T DE112017003822 T DE 112017003822T DE 112017003822 T5 DE112017003822 T5 DE 112017003822T5
Authority
DE
Germany
Prior art keywords
zlw
image stream
page
stream request
instruction
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
DE112017003822.7T
Other languages
English (en)
Inventor
Mauro Cocco
Randy B. Osborne
Alessandro Paschina
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE112017003822T5 publication Critical patent/DE112017003822T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

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

Abstract

Ein System zur automatischen Hardware-ZLW-Einfügung für IPU-Bildströme wird hierin beschrieben. Das System enthält einen Speicher und einen Prozessor. Der Speicher soll Bildgebungsdaten speichern. Der Prozessor ist mit dem Speicher verbunden. Der Prozessor soll eine Bildstromanfrage empfangen und einen Datentransfertyp bestimmen. Der Prozessor soll auch eine „Zero Length Write‟ (ZLW)-Anweisung in Reaktion darauf, dass die Bildstromanfrage im Vergleich zu der aktuellen Seite in einem Seitenverlauf auf einer anderen Seite startet, vor der Bildstromanfrage einfügen. Weiterhin soll der Prozessor eine ZLW-Anweisung in Reaktion darauf, dass die Bildstromanfrage eine Seitengrenze überquert, vor der Bildstromanfrage einfügen.

Description

  • Querverweis auf verwandte Anmeldung
  • Die vorliegende Anmeldung beansprucht die Priorität des Einreichungsdatums der US-Patentanmeldung mit Seriennr. 15/280,772 , von Mauro Cocco et al., mit dem Titel „AUTOMATIC HARDWARE ZLW INSERTION FOR IPU IMAGE STRÖME,“ eingereicht am 29. September 2016 und die hierin durch Verweis eingeschlossen ist.
  • Stand der Technik
  • Eine Bildverarbeitungseinheit (IPU) kann dazu verwendet werden, mehrere Ströme von Ein-/Ausgabe(E/A)-Datentransfers zu verarbeiten. Beispielsweise gibt es in einem typischen Videoanwendungsfall mehr als 25 verschiedene aktive Ströme, da die IPU Bildgebungsdaten empfängt und/oder überträgt. Eine Eingabe-/Ausgabe-Speichermanagementeinheit (IOMMU) ist eine Speichermanagementeinheit (MMU) kann einen Direktspeicherzugang (DMA) verbinden, der in der Lage ist, den E/A-Bus mit dem Hauptspeicher zu verbinden. Die IOMMU kann virtuellen Adressen physische Adressen zuordnen und die IOMMU kann außerdem Übersetzungsseiten, die mit einer Transition-Look-Aside-Pufferidentifizierung (TLB_ID) assoziiert sind, über einen Satz von Transition-Look-Aside Puffer (TLBs) cachen.
  • Figurenliste
    • 1 ist ein Blockdiagramm einer elektronischen Vorrichtung, die die automatische Hardware-ZLW-Einfügung für IPU-Bildströme erlaubt;
    • 2 ist ein Blockdiagramm, das eine IPU-DMA-Anfrageübersetzung illustriert;
    • 3 ist eine Illustration einer Übersetzung von einer virtuellen Adresse an eine physische Gastadresse, an eine physische Hostadresse;
    • 4A ist eine Illustration eines Gehbefehls in einer linearen Burstanfrage in einem Frame von Daten
    • 4B ist eine Illustration eines Gehbefehls in einer Block-Burstanfrage in einem Frame von Daten
    • 5 ist eine Illustration der ZLW-Einfügung für verschiedene lineare 1D-Burstfälle;
    • 6A ist eine Illustration der ZLW-Einfügung für einen 2D-Blockburst, beginnend auf derselben 4KB-Seite, wie die Verlaufsseite;
    • 6B ist eine Illustration der ZLW-Einfügung für einen 2D-Blockburst, beginnend auf einer anderen 4KB-Seite als Verlaufsseite;
    • 6C ist eine Illustration der ZLW-Einfügung für 2D-Blockburst, beginnend auf derselben 4KB-Seite, wie die Verlaufsseite und wobei die 4KB-Seite auf einigen Zeilen übergreift;
    • 7 ist ein Ablaufdiagramm eines Verfahrens zur automatischen Hardware-ZLW-Einfügung für IPU-Bildströme; und
    • 8 ist ein Blockdiagramm, das Medien anzeigt, die eine Logik zur automatischen Hardware-ZLW-Einfügung für IPU-Bildströme enthält.
  • Dieselben Zahlen werden in der gesamten Offenbarung und den Figuren verwendet, um auf gleiche Komponenten und Merkmale zu verweisen. Zahlen in der 100-Reihe beziehen sich auf Merkmale, die ursprünglich in 1 gefunden wurden; Zahlen in der 200-Reihe beziehen sich auf Merkmale, die ursprünglich in 2 gefunden wurden; und so weiter.
  • Beschreibung der Ausführungsformen
  • Um Leistungsverlust durch IOMMU-Seitenverfehlungen zu eliminieren, kann die IPU die Seitenadressübersetzung vorabrufen, indem sie „Zero Length Write‟ (ZLW)-Anweisungen an eine Adresse ausgibt, die in eine Seitenübersetzung fällt, um sie vor der tatsächlichen Anfrage abzurufen, um den Abrufabzug zu verbergen. Eine ZLW-Anweisung ist eine Schreibanweisung, die keine Daten trägt, und wird damit fallengelassen, nachdem ihre Adresse durch die IOMMU übersetzt wird und den Systemspeicher nicht erreichen. Dementsprechend ruft das ZLW, wenn die IPU den Vorabruf der Seitenadressübersetzung durchführt, indem sie ZLW-Anweisungen an eine Adresse ausgibt, die in eine Seitenübersetzung fällt, um vor der tatsächlichen Anfrage vorabzurufen, die Daten in einer Seite nicht ab.
  • Hierin beschriebene Ausführungsformen ermöglichen die automatische Hardware-ZLW-Einfügung für IPU-Bildströme. In Ausführungsformen wird eine Bildstromanfrage empfangen und verwendet, um einen Datentransfertyp zu bestimmen. Eine „Zero Length Write‟ (ZLW)-Anweisung wird, in Reaktion darauf, dass die Bildstromanfrage auf einer anderen Seite als der aktuellen Seite in einem Seitenverlauf beginnt, vor der Bildstromanfrage eingefügt. Weiterhin wird eine ZLW-Anweisung in Reaktion darauf, dass die Bildstromanfrage eine Seitengrenze überquert, vor der Bildstromanfrage eingefügt.
  • Einige Ausführungsformen können in einem oder einer Kombination von Hardware, Firmware und Software umgesetzt werden. Ferner können auch einige Ausführungsformen als Anweisungen umgesetzt sein, die auf einem maschinenlesbaren Medium gespeichert sind, das durch eine Rechnerplattform gelesen und ausgeführt werden kann, um die hierin beschriebenen Funktionen auszuführen. Ein maschinenlesbares Medium kann jeden Mechanismus zum Speichern oder Übertragen von Informationen in einer Form enthalten, die durch eine Maschine lesbar ist, z. B. durch einen Computer. Beispielsweise kann unter anderem ein maschinenlesbares Medium Nurlesespeicher (ROM); Direktzugriffsspeicher (RAM); Magnetscheibenspeichermedien; optische Speichermedien; Flashspeichervorrichtungen; oder elektrische, optische, akustische oder andere Formen von weitergeleiteten Signalen, z. B. Trägerwellen, Infrarotsignale, digitale Signale oder die Schnittstellen, die Signale übertragen und/oder empfangen, enthalten.
  • Eine Ausführungsform ist eine Umsetzung oder ein Beispiel. Ein Verweis in der Spezifikation auf „eine Ausführungsform“, „einige Ausführungsformen“, „verschiedene Ausführungsformen“ oder „andere Ausführungsformen“ bedeutet, dass ein bestimmtes Merkmal, eine Struktur oder Eigenschaft, die in Zusammenhang mit den Ausführungsformen beschrieben ist, in mindestens einigen Ausführungsformen der vorliegenden Techniken, aber nicht unbedingt in allen Ausführungsformen, enthalten ist. Die verschiedenen Vorkommen von „einer Ausführungsform“ oder „einige Ausführungsformen“ beziehen sich nicht notwendigerweise alle auf dieselben Ausführungsformen. Elemente oder Aspekte von einer Ausführungsform können mit Elementen oder Aspekten einer anderen Ausführungsform kombiniert sein.
  • Nicht alle Komponenten, Merkmale, Strukturen, Eigenschaften usw., die hierin beschrieben und illustriert sind müssen in einer bestimmten Ausführungsform oder Ausführungsformen enthalten sein. Wenn die Beschreibung beispielsweise vorgibt, dass eine Komponente, Merkmal, Struktur oder Eigenschaft enthalten sein „darf“, „kann“ oder „könnte“, muss diese jeweilige Komponente, Merkmal, Struktur oder Eigenschaft nicht enthalten sein. Wenn die Beschreibung oder der Anspruch sich auf „ein“ Element bezieht, bedeutet dies nicht, dass das Element nur einmal vorliegt. Wenn die Beschreibung oder Ansprüche sich auf „ein weiteres“ Element bezieht, verhindert dies nicht, dass mehr als ein weiteres Element vorliegt.
  • Es ist anzumerken, dass, auch wenn einige Ausführungsformen mit Verweisen auf bestimmte Umsetzungen beschrieben wurden, andere Umsetzungen nach einigen Ausführungsformen möglich sind. Weiterhin muss die Anordnung und/oder Reihenfolge von Schaltelementen oder anderen Merkmalen, die in den Zeichnungen illustriert und/oder hierin beschrieben sind, nicht in der bestimmten Weise angeordnet sein, die illustriert und beschrieben ist. Viele andere Anordnungen sind nach einigen Ausführungsformen möglich.
  • In jedem in einer Figur dargestellten System können die Elemente in einigen Fällen jeweils die gleiche Referenzzahl oder eine unterschiedliche Referenzzahl aufweisen, um anzuzeigen, dass die dargestellten Elemente unterschiedlich und/oder gleich sein könnten. Ein Element kann jedoch flexibel genug sein, verschiedene Umsetzungen aufzuweisen und mit einigen oder allen hierin beschriebenen Systemen zu funktionieren. Die verschiedenen dargestellten Elemente, die in den Figuren dargestellt sind, können gleich oder unterschiedlich sein. Welches als ein erstes Element bezeichnet wird und welches als ein zweites Element bezeichnet wird, ist beliebig.
  • 1 ist ein Blockdiagramm einer elektronischen Vorrichtung, die die automatische Hardware-ZLW-Einfügung für IPU-Bildströme erlaubt. Die elektronische Vorrichtung 100 kann beispielsweise unter anderem ein Laptopcomputer, Tabletcomputer, Mobiltelefon, Smartphone oder eine tragbare Vorrichtung sein. Die elektronische Vorrichtung 100 kann eine zentrale Prozessoreinheit (CPU) 102, die konfiguriert ist, gespeicherte Anweisungen auszuführen, sowie eine Speichervorrichtung 104, die Anweisungen speichert, die durch die CPU 102 ausführbar sind, enthalten. Die CPU kann durch einen Bus 106 mit der Speichervorrichtung 104 gekoppelt sein. Weiterhin kann die CPU 102 ein Einkernprozessor, ein Mehrkernprozessor, ein Rechnercluster oder eine beliebige Anzahl anderer Konfigurationen sein. Weiter kann die elektronische Vorrichtung 100 mehr als eine CPU 102 enthalten. Die Speichervorrichtung 104 kann Direktzugriffsspeicher (RAM), Nurlesespeicher (ROM), Flashspeicher oder andere geeignete Speichersysteme enthalten. Beispielsweise kann die Speichervorrichtung 104 einen dynamischen Direktzugriffsspeicher (DRAM) enthalten.
  • Die elektronische Vorrichtung 100 enthält auch eine Grafikverarbeitungseinheit (GPU) 108. Wie dargestellt, kann die CPU 102 durch den Bus 106 mit der GPU 108 verbunden sein. Die GPU 108 kann konfiguriert sein, eine beliebige Anzahl von Grafikfunktionen innerhalb der elektronischen Vorrichtung 100 auszuführen. Beispielsweise kann die GPU 108 konfiguriert sein, Grafikbilder, Grafikrahmen, Videos oder dergleichen zu rendern oder manipulieren, die einem Benutzer der elektronischen Vorrichtung 100 angezeigt werden sollen. In einigen Ausführungsformen enthält die GPU 108 eine Anzahl von Grafik-Engines, wobei jede Grafik-Engine konfiguriert ist, spezifische Grafikaufgaben auszuführen oder spezifische Arten von Workloads auszuführen. Beispielsweise kann die GPU 108 eine Engine enthalten, die Videodaten verarbeitet. In Ausführungsformen kann die GPU 108 eine IPU sein.
  • Die CPU 102 kann durch den Bus 106 mit einer Anzeigeschnittstelle 110 verbunden sein, die konfiguriert ist, die elektronische Vorrichtung 100 mit einer Anzeigevorrichtung 112 zu verbinden. Die Anzeigevorrichtung 112 kann eine Displayanzeige enthalten, die eine eingebaute Komponente der elektronischen Vorrichtung 100 ist. Die Anzeigevorrichtung 112 kann auch unter anderem einen Computermonitor, Fernseher oder Projektor enthalten, der extern mit der elektronischen Vorrichtung 100 verbunden ist.
  • Die CPU 102 kann außerdem durch den Bus 106 mit einer Eingabe-/Ausgabe(E/A)-Vorrichtungsschnittstelle 114 verbunden sein, die konfiguriert ist, die elektronische Vorrichtung 100 mit einer oder mehreren E/A-Vorrichtungen 116 zu verbinden. Die E/A-Vorrichtungen 116 können beispielsweise eine Tastatur und eine Zeigervorrichtung enthalten, wobei die Zeigervorrichtung unter anderem ein Touchpad oder einen Touchscreen enthalten kann. Die E/A-Vorrichtungen 116 können eingebaute Komponenten der elektronischen Vorrichtung 100 sein, oder können Vorrichtungen sein, die extern mit der elektronischen Vorrichtung 100 verbunden sind.
  • Die elektronische Vorrichtung 100 enthält auch eine Hardware-ZLW-Einfügungseinheit 118 zum Einfügen von ZLW-Anweisungen in IPU E/A-Datenströme. Die Hardware 118 fügt autonom ZLW-Anweisung(en) N Seiten vorher ein, um Seitenadressübersetzungen durch Kontrolle, wann eine eindimensionale (1D) oder zweidimensionale (2D) Blockdatenanfrage sich auf einer anderen Seitenadresse als die vorherige Anfrage befindet und/oder wann eine Burstanfrage eine Seitengrenze überschreitet, vorabzurufen. In Ausführungsformen, in denen Bedingungen wie nachfolgend beschrieben erfüllt sind, kann die Hardware-ZLW-Einfügungseinheit 118 eine ZLW-Anweisung vor einer Adressanfrage einfügen. Während die ZLW-Einfügungseinheit 118 als eine separate Komponente der elektronischen Vorrichtung 100 illustriert ist, sind mehrere verschiedene Konfigurationen möglich. Beispielsweise kann die ZLW-Einfügungseinheit 118 Teil der GPU/IPU-Vorrichtung sein und/oder könnte auch Teil anderer Vorrichtungen sein. Weiterhin kann die ZLW-Einfügungseinheit 118 so gesehen werden, dass sie die Transaktionserzeugung durch die IPU/GPU erschnüffelt und die ZLW-Anfrage einfügt, wenn dies den beschriebenen Techniken entsprechend erforderlich ist.
  • Die elektronische Vorrichtung 100 kann auch eine Speichervorrichtung 124 enthalten. Die Speichervorrichtung 124 ist ein physischer Speicher wie eine Festplatte, ein optisches Laufwerk, ein Flashlaufwerk, ein Array von Laufwerken oder beliebige Kombinationen davon. Die Speichervorrichtung 124 kann unter anderem Benutzerdaten wie Audiodateien, Videodateien, Audio-/Videodateien und Bilddateien speichern. Die Speichervorrichtung 124 kann auch Programmiercode wie Vorrichtungstreiber, Softwareanwendungen, Betriebssysteme und dergleichen speichern. Der Programmiercode, der in der Speichervorrichtung 124 gespeichert ist, kann durch die CPU 102, GPU 108, oder andere Prozessoren ausgeführt werden, die in der elektronischen Vorrichtung 100 enthalten sein können.
  • Die CPU 102 kann durch den Bus 106 mit der Mobilfunkhardware 126 verbunden sein. Die Mobilfunkhardware 126 kann jede Mobilfunktechnologie sein, beispielsweise der 4G-Standard (International Mobile Telecommunications-Advanced (IMT-Advanced), der durch die International Telecommunications Union - Radio Communication Sector (ITU-R)) veröffentlicht wird. In dieser Weise kann der PC 100 auf jedes Netz 132 zugreifen, ohne mit einer anderen Vorrichtung getethert oder gepairt zu sein, wobei das Netz 132 ein Mobilfunknetz ist.
  • Die CPU 102 kann ebenfalls durch den Bus 106 mit WiFi-Hardware 128 verbunden sein. Die WiFi-Hardware ist eine Hardware nach den WiFi-Standards (Standards, die als die Institute of Electrical and Electronics Engineers' (IEEE) 802.11 Standards veröffentlicht wurden). Die WiFi-Hardware 128 ermöglicht es der elektronischen Vorrichtung 100, sich mit dem Internet unter Verwendung des Transmission Control Protocol und des Internet Protocol (TCP/IP) zu verbinden, wenn das Netz 132 das Internet ist. Dementsprechend kann die elektronische Vorrichtung 100 End-to-End-Konnektivität mit dem Internet durch Adressierung, Routing, Übertragung und Empfang von Daten nach dem TCP/IP-Protokoll ohne Verwendung einer anderen Vorrichtung aktivieren. Weiterhin kann eine Bluetooth-Schnittstelle 130 mit der CPU 102 über den Bus 106 verbunden sein. Die Bluetooth-Schnittstelle 130 ist eine Schnittstelle den Bluetooth-Netzen entsprechend (basierend auf dem Bluetooth-Standard, der von der Bluetooth Special Interest Group veröffentlicht wurde). Die Bluetooth-Schnittstelle 130 ermöglicht der elektronischen Vorrichtung 100 das Pairing mit anderen Bluetooth-fähigen Vorrichtungen durch ein persönliches Bereichsnetz (PAN). Dementsprechend kann das Netz 132 ein PAN sein. Beispiele für Bluetooth-fähige Vorrichtungen enthalten unter anderem einen Laptopcomputer, einen Desktopcomputer, ein Ultrabook, einen Tabletcomputer, eine mobile Vorrichtung oder einen Server.
  • Das Blockdiagramm aus 1 soll nicht anzeigen, dass die elektronische Vorrichtung 100 alle der in 1 dargestellten Komponenten enthalten soll. Stattdessen kann das Rechnersystem 100 weniger oder Zusätzliche Komponenten enthalten, die in 1 nicht illustriert sind (z. B. Sensoren, leistungsmanagementintegrierte Schaltkreise, zusätzliche Netzschnittstellen usw.). Die elektronische Vorrichtung 100 kann eine beliebige Anzahl zusätzlicher Komponenten enthalten, die in 1 nicht gezeigt sind, abhängig von den Einzelheiten der spezifischen Umsetzung. Weiterhin kann jede der Funktionen der CPU 102 teilweise oder vollständig in Hardware und/oder in einem Prozessor umgesetzt sein. Beispielsweise kann die Funktion mit einem anwendungsspezifisch integrierten Schaltkreis, in Logik, die in einem Prozessor umgesetzt ist, in Logik, die in einer spezialisierten Grafikverarbeitungseinheit umgesetzt ist, oder in jeder anderen Vorrichtung umgesetzt sein.
  • Eine IPU kann verwendet werden, um effiziente Bilddatenübertragung und -empfang sicherzustellen. Die IPU kann eine Konnektivität für verschiedene Grafikvorrichtungen und assoziierte Speicher bereitstellen. In Ausführungsformen kann die IPU auch für die Bildverarbeitung und Manipulation nach verschiedenen Stromsparplänen zuständig sein. Die Bildverarbeitung kann mehrere Ströme von E/A-Datentransfers enthalten. Beispielsweise können in einem typischen Videoverwendungsfall mehr als fünfundzwanzig verschiedene Bildgebungsströme aktiv sein.
  • 2 ist ein Blockdiagramm, das eine IPU-DMA-Anfrageübersetzung illustriert. Während der Bildverarbeitung können Daten für die Verarbeitung in einem Hauptspeicher gespeichert sein. Eine IPU-DMA-Einheit 202 kann verwendet werden, um auf Daten zuzugreifen, die in dem Hauptspeicher gespeichert sind. IPU-Bildstromanfragen werden an einen „Virtual Address‟ (VA)-Raum 204 ausgegeben und gehen durch einen „Address Translator“ (AT) 206, um sie durch eine interne IPU MMU 208 in eine „Guest Physical Address“ (GPA) 210 umzuwandeln. Jede Strömeanfrage gehört zu einem Ströme und hat eine assoziierte TLB_ID. Bei Systemen ohne Speichervirtualisierung ist eine GPA-Adresse die reale physische Adresse. Bei Systemen mit Speichervirtualisierung wird eine Anfrage an der GPA dann durch IOMMU 212 in die Host Physical Address (HPA) 214 übersetzt. Eine HPA- 214 Adresse ist die reale physische Adresse.
  • 3 ist eine Illustration einer Übersetzung 300 von einer virtuellen Adresse an eine physische Gastadresse, an eine physische Hostadresse. In 3 kann bei einer Seitengröße wie 4KB eine Anfrageadresse in 2 Felder aufgeteilt sein - einen Seitenabstand und eine Seitenadresse. Der Seitenabstand kann für eine 4KB-Seite in Bits [11,...,0] gespeichert sein. Die Seitenadresse kann für die 4KB-Seite in den Bits [31,...,12] gespeichert werden, mit einer VA-Kapazität von 4GB. Die virtuelle Adresse 302 kann zwanzig Bits einer virtuellen Seitenadresse 304 und zwölf Bits eines Seitenabstands 306 sein. Die physische Gastadresse 308 kann siebenundzwanzig Bits einer physischen Gastseitenadresse 310 und zwölf Bits eines Seitenabstands 312 sein. Die physische Hostadresse 314 kann siebenundzwanzig Bits einer physischen Hostseitenadresse 316 und zwölf Bits eines Seitenabstands 318 sein. Eine Übersetzung einer Anfrage von einem Adressraum 302, 308 oder 314 auf einen andren ist eine Lookup-Tabelle (LUT)/Umwandlung des Seitenadressfelds. Insbesondere VA 304 in GPA 310 für MMU und GPA 310 in HPA 314 für die IOMMU.
  • Die vollständigen Seitenadressübersetzungstabellen werden im Systemspeicher gespeichert und sind teilweise nach Bedarf in der MMU und IOMMU gecacht. Wenn eine andere Anfrage auf derselben Seitenadresse empfangen wird, wird sie im Cache getroffen. Wenn eine Anfrage auf einer neuen Seite empfangen wird, die nicht gecacht ist, verfehlt die IOMMU die Seite und ruft die Übersetzungsseite ab und cacht die Übersetzungsseite.
  • Die IOMMU besitzt einen Satz TLBs, die dem Cachen von Übersetzungsseiten dient, die mit einer TLB_ ID assoziiert sind. Um Leistungsverlust durch IOMMU-Seitenverfehlungen zu eliminieren, führt die IPU einen Vorabruf der Seitenadressübersetzung durch (aber nicht der Daten in einer Seite), die ZLW-Anweisungen an eine Adresse ausgibt, die in eine Seitenübersetzung fällt, um sie vor der tatsächlichen Anfrage abzurufen, um den Abrufabzug zu verbergen. In Ausführungsformen ist die ZLW-Anweisung eine Schreibanweisung, die keine Daten trägt, und wird damit fallengelassen, nachdem ihre Adresse durch die IOMMU übersetzt wird und den Systemspeicher nicht erreichen.
  • In Ausführungsformen fügt dediziete IPU-Hardware autonom ZLW-Anweisungen für Bildpuffer ein, um einen Leistungsverlust bei Systemen mit einem virtualisierten Speicher aufgrund der IOMMU-Seitenverfehlungen zu vermeiden. Diese Hardware führt autonom ZLW-Anweisung (en) N Seiten vorher ein, um die Seitenadressübersetzung vorabzurufen (aber nicht die Daten), indem kontrolliert wird, wann eine 1D- oder 2D-Blockdatenanfrage auf einer unterschiedlichen Seitenadresse steht (z. B: auf eine andere 4KB-Seite fällt) als die vorherige Anfrage und/oder wann die Burst-Anfrage eine Seitengrenze überquert. In Ausführungsformen ist die Hardware ein Controller, der für die ZLW-Einfügung fest verkabelt ist. Wie hierin verwendet, bezieht sich fest verkabelt darauf, dass der Controller für einen einzigen Zweck verkabelt ist, und Logikschaltkreise des Controllers für diesen einzelnen Zweck angepasst sind.
  • Traditionelle Lösungen verlangen einen Firmwareeingriff, um ZLW interleavt mit einer DMA-Anfrage einzuführen. Durch die hohe Bandbreite und mehreren Ströme, die während der Bildverarbeitung aktiv sind, ist die Synchronisierung der Firmware-ZLW-Einfügung mit DMA-pipelined Befehlen nicht möglich, ohne DMA-Übertragungen schrittzusperren und die Firmware schwer zu beladen. Wie hierin verwendet, bezieht sich Schrittsperrung darauf, die Ausführung weiterer Anweisungen zu verhindern, bis eine aktuelle Anweisung abgeschlossen ist. Eine schwere Belastung der Firmware bezieht sich darauf, dass die Ausführung einer großen Anzahl verschiedener Aufgaben durch die Firmware veranlasst wird, wodurch aufgrund der reinen Anzahl von Anweisungen die Rate verlangsamt wird, mit der die Anweisungen verarbeitet werden können. Die traditionelle firmwarebasierte Lösung verringert so die IPU-Leistung und verringert wesentliche Leistungsindikatoren.
  • Die Arten der Datenübertragung, die durch die IPU-DMA ausgeführt werden, können als ein 1D-linearer Burst oder ein 2D-Blockburst bezeichnet werden. 4A ist eine Illustration eines Datenanfrage-Gehbefehls in einer linearen Burstanfrage 400A in einem Frame von Daten. Die angeforderten Daten sind speicherzugeordnet, sodass die Datenanfrage (lesen oder schreiben) sich an einer spezifischen Adresse befindet. Wie hierin verwendet, bezieht sich der Gehbefehl auf einen Pfad, der über Daten im Speicher gegangen wird, um die Daten abzurufen und zu übertragen. Wie durch den Pfad 402 illustriert, wird auf Datenblocks 404 in linearer Weise zugegriffen. Wie hierin verwendet, bezieht sich die Burstanfrage auf den Zugriff auf die Daten in einer sequenziellen Datenübertragung mit einem maximalen Durchsatz. In Ausführungsformen greift der lineare 1D-Burst auf Daten in einer Rasterscannerreihenfolge zu. 4B ist eine Illustration eines Gehbefehls in einer 2D-Block-Burstanfrage 400B in einem Frame von Daten. Wie durch den Pfad 410 illustriert, wird auf Datenblocks 412 in Blockweise zugegriffen.
  • Für den linearen 1D-Burst 400A erkennt der AT während der VA-in-GPA-Umwandlung die TLB_ID und kontrolliert zwei Bedingungen. Erst wird, wenn die Adressanfrage auf derselben Seite wie die vorherige Anfrage beginnt, die auf derselben TLB_ID ausgegeben wird, ein Vergleich mit dem Seitenverlauf ausgeführt. Der Seitenverlauf wird mit der letzten Seitenanfrage für jeden Ströme aktualisiert, der mit einer TLB_ID assoziiert ist. Zweitens bestimmt der AT, ob die aktuelle Anfrage eine Burstanfrage ist, die eine Seitengrenze überquert. Wenn mindestens eine der beiden Bedingungen oben erfüllt ist, fügt der AT eine ZLW ein, bevor die Anfrage übergangen wird.
  • Um effektiv zu sein, wird eine ZLW-Anweisung bei N Seiten vor der aktuellen Anfrage ausgegeben. Der Wert N hängt von dem Strömedurchsatz und der IOMMU-TLB-Satzkonfiguration und IOMMU-Ersatzrichtlinie ab. Die allgemeine Formel zur Berechnung von N beim Teilen eines TLB für M Ströme, die mit derselben Geschwindigkeit gehen, ist: TLB ID M ( 2N + 1 )
    Figure DE112017003822T5_0001
  • Beispielsweise wird für einen Satz (8 Seiten) pro TLB für den Y-Stream, N zwischen 2 und 3 gesetzt; für die U- und V-Ströme wird N auf 1 gesetzt. 5 illustriert ob, wann und wie der AT ZLW für die fünf möglichen Kombinationen des Seitenverlaufs und der linearen 1D-Streamanfragen einfügt.
  • 5 ist eine Illustration der ZLW-Einfügung für verschiedene lineare 1D-Burstfälle. Im Fall 502 startet eine lineare 1D-Anfrage auf derselben Seite der vorherigen Anfrage. Die Anfrage überquert keine Seitengrenze. Im Fall 502 ist keine ZLW-Einfügung erforderlich. Im Fall 504 startet eine lineare 1D-Anfrage auf derselben Seite der vorherigen Anfrage. Die Anfrage überquert die Seitengrenze (P0 nach P1). Eine ZLW wird N Seiten vor der überquerten Seite (P1) eingefügt. Im Fall 506 startet eine lineare 1D-Anfrage auf einer anderen Seite der vorherigen Anfrage. Die Anfrage überquert keine Seitengrenze. Hier wird eine ZLW N Seiten vor der Seite der Anfrage (P2) eingefügt. Im Fall 508 startet eine lineare 1D-Anfrage auf der anderen Seite der vorherigen Anfrage. Die Anfrage überquert eine Seitengrenze (P2 nach P3). Eine ZLW wird N Seiten vor der überquerten Seite (P3) eingefügt. Schließlich startet eine lineare 1D-Anfrage auf der anderen Seite der vorherigen Anfrage. Die Anfrage überquert die Seitengrenze (P4 nach P5). Eine ZLW wird N Seiten vor der Seite der Anfrage (P4) 1 ZLW N Seiten vor der überquerten Seite (P5) eingefügt, eingefügt. In Ausführungsformen sind eine lineare 1D-Stream-Einwortanfrage spezielle Fälle von Fall 502 und Fall 506, wie oben beschrieben. In diesem Szenario würde die ZLW nur für Fall 506 eingefügt.
  • Für den 2D-Blockburst erkennt der AT während der VA-in-GPA-Umwandlung die TLB_ID und kontrolliert zwei Bedingungen. Erst wird, wenn die Anfrage auf derselben Seite wie die vorherige Anfrage beginnt, die auf derselben TLB_ID ausgegeben wird, ein Vergleich mit dem Seitenverlauf ausgeführt. Der Seitenverlauf wird mit der letzten Seitenanfrage für jeden Stream aktualisiert, der mit einer TLB_ID assoziiert ist. Zweitens bestimmt der AT, ob die aktuelle Anfrage eine Seitengrenze überquert. Wenn mindestens eine der 2 Bedingungen oben erfüllt ist, fügt der AT eine oder mehrere ZLW-Anweisung(en) ein, bevor eine Datenanfrage wie in 6A bis 6C für eine 2D-Anfrage von fünf Zeilen mit verschiedenen Startseitenwerten und Überquerungsseiten gezeigt übergangen wird. Weiterhin interleavt der AT die ZLW und Datenanfrage entsprechend in eine konfigurierbare maximale Back-to-Back-ZLW-Anfrage. Dies darf jedoch nicht alle IOMMU-Seite-Walkers belegen, um ZLW-Anweisungen zu versorgen. Um die Hardwareumsetzung zu vereinfachen, könnte die konfigurierbare maximale Anzahl von Back-to-Back-ZLW-Einsätzen um +1/2 Extra-ZLW erweitert werden, wenn eine Zeile 2 oder mehr Seiten überquert. Das heißt, die maximale ZLW Back-to-Back-ZLW-Einfügung ist keine Hard-Fix-Grenze.
  • 6A ist eine Illustration der ZLW-Einfügung für 2D-Blockburst, beginnend auf derselben 4KB-Seite wie die Verlaufsseite. Ein maximaler Back-to-Back-ZLW-Anfragewert ist auf drei gesetzt. In 6A wird die 2D-Blockburstanfrage auf Adressen geleitet, die auf derselben Seite wie die aktuelle Seite in dem Seitenverlauf 602 beginnen. Der Seitenverlauf 602 wird automatisch mit der letzten Seitenanfragen für jeden Stream aktualisiert. Die Seitenanfragen 604 können eine Anzahl von Adressanfragen 604A...604E enthalten. In 6A tritt die ZLW-Einfügung aufgrund der maximalen Back-to-Back-ZLW-Anfragewerte auf. Es werden in den Anfragen 604 keine Seiten überquert, sodass keine Vorabrufe durchgeführt werden, aufgrund möglisher Seitenverfehlungen. Stattdessen ist hier die ZLW-Einfügung ein Ergebnis der maximalen Back-to-Back ZLW-Anfrage, die in dem Beispiel aus 6A auf drei gesetzt ist. Wie in 6A illustriert, sind die Anfragen 604 modifiziert, wie durch die Anfragen 606 illustriert. Die Anfragen 606 enthalten ZLW-Einfügungen 608 und ZLW-Einfügungen 610. Die ZLW-Einfügungen 608 enthalten eine ZLW 608A und eine ZLW 608B. Die ZLW-Einfügungen 610 enthalten eine ZLW 610A und eine ZLW 610B.
  • Wie in 6A illustriert, veranlasst die ZLW 608A den Vorabruf einer Seite P1+N und die ZLW 608B veranlasst den Vorabruf einer Seite P2+N. Hier hat der AT die ZLWs 608A und 608B interleavt, um die maximale Back-to-Back-ZLW-Anfrage zu erfüllen. Ebenso veranlasst die ZLW 610A den Vorabruf einer Seite P3+N und die ZLW 610B veranlasst den Vorabruf einer Seite P4+N. Erneut hat der AT die ZLWs 610A und 610B interleavt, um die maximale Back-to-Back-ZLW-Anfrage zu erfüllen.
  • 6B ist eine Illustration der ZLW-Einfügung für einen 2D-Blockburst, beginnend auf einer anderen 4KB-Seite als der Verlaufsseite. Ein maximaler Back-to-Back-ZLW-Anfragewert ist auf drei gesetzt. In 6B wird die 2D-Blockburstanfrage auf Adressen geleitet, die auf einer anderen Seite als der aktuellen Seite in dem Seitenverlauf 612 beginnen. Der Seitenverlauf 612 wird automatisch mit der letzten Seitenanfrage für jeden Stream aktualisiert. Die Seitenanfragen 614 können eine Anzahl von Adressanfragen 614A...614E enthalten. In 6B tritt die ZLW-Einfügung aufgrund der neuen Startseite sowie der maximalen Back-to-Back-ZLW-Anfragewerte auf. Es werden durch die Anfragen 614 keine Seiten überquert. Stattdessen ist hier die ZLW-Einfügung ein Ergebnis der neuen Seite und der maximalen Back-to-Back-ZLW-Anfrage, die in dem Beispiel von 6B auf drei gesetzt ist. Wie in 6B illustriert, sind die Anfragen 614 modifiziert, wie durch die Anfragen 616 illustriert. Die Anfragen 616 enthalten ZLW-Einfügungen 618 und ZLW-Einfügungen 620. Die ZLW-Einfügungen 618 enthalten eine ZLW 618A, ZLW 618B und eine ZLW 618C. Die ZLW-Einfügungen 620 enthalten eine ZLW 620A und eine ZLW 620B.
  • Wie in 6B illustriert, veranlasst die ZLW 618A den Vorabruf einer Seite P0+N und die ZLW 618B veranlasst den Vorabruf einer Seite P1+N. Die ZLW 618C veranlasst den Vorabruf einer Seite P2+N. Hier hat der AT die ZLWs 618B und 618C interleavt, um die maximale Back-to-Back-ZLW-Anfrage zu erfüllen. Die ZLW 618A liegt daran, dass die Anfragen 614A auf einer vollkommen anderen Seite als der aktuellen Seiteanfrage in dem Seitenverlauf beginnen. Ebenso veranlasst die ZLW 620A den Vorabruf einer Seite P3+N und die ZLW 620B veranlasst den Vorabruf einer Seite P4+N. Bei ZLW 620 hat der AT die ZLWs 620A und 620B interleavt, um die maximale Back-to-Back-ZLW-Anfrage zu erfüllen.
  • 6C ist eine Illustration der ZLW-Einfügung für 2D-Blockburst, beginnend auf derselben 4KB-Seite wie die Verlaufsseite und wobei die 4KB-Seite auf einigen Zeilen übergreift. Ein maximaler Back-to-Back-ZLW-Anfragewert ist auf drei gesetzt. In 6C wird die 2D-Blockburstanfrage auf Adressen geleitet, die auf derselben Seite wie die aktuelle Seite in dem Seitenverlauf 622 beginnen. Einige Seitenanfragen kreuzen jedoch in den Seitenanfragen 624 auf eine andere Seite. Der Seitenverlauf 622 wird automatisch mit der letzten Seitenanfrage für jeden Stream aktualisiert. Die Seitenanfragen 624 können eine Anzahl von Adressanfragen 624A...624E enthalten. In 6C tritt die ZLW-Einfügung aufgrund der neuen Startseite für einige Zeilen sowie der maximalenn Back-to-Back-ZLW-Anfragewerte auf. Dementsprechend ist die ZLW-Einfügungssequenz ein Ergebnis der neuen Seite und der maximalen Back-to-Back-ZLW-Anfrage, die in dem Beispiel aus 6C auf drei gesetzt ist. Wie in 6A illustriert, sind die Anfragen 624 modifiziert, wie durch die Anfragen 626 illustriert. Die Anfragen 626 enthalten ZLW-Einfügungen 628, ZLW-Einfügungen 630, Vorabruf 626A, und Vorabruf 626B. Die ZLW-Einfügungen 628 enthalten eine ZLW 628A, ZLW 628B, ZLW 628C und ZLW 628D. Die ZLW-Einfügungen 630 enthalten eine ZLW 630A, ZLW 630B und ZLW 630C.
  • Wie in 6C illustriert, veranlasst die ZLW 628A den Vorabruf einer Seite P0+N und die ZLW 628B veranlasst den Vorabruf einer Seite P1+N. Die ZLW 628C veranlasst den Vorabruf einer Seite P2+N und die ZLW 628D veranlasst den Vorabruf einer Seite P3+N. Ebenso veranlasst die ZLW 630A den Vorabruf einer Seite P4+N, die ZLW 630B veranlasst den Vorabruf einer Seite P5+N und die ZLW 630C veranlasst den Vorabruf einer Seite P6+N. Wie dargestellt, hat der AT die Datenanfrage 626A und 626B mit ZLW-Einfügung (630A, 630B und 630C) interleavt, um die maximale Back-to-Back-ZLW-Anfragekonfiguration zu erfüllen. Um die HW-Umsetzung zu vereinfachen, könnte die konfigurierbare maximale Anzahl von Back-to-Back-ZLW-Einsätzen um +1/2 Extra-ZLW erweitert werden, wenn eine Zeile 2 oder mehr Seiten überquert. Das heißt, die maximale ZLW Back-to-Back-ZLW-Einfügung ist keine Hard-Fix-Grenze. In 6C enthält die erste Sequenz der ZLW-Einfügung tatsächlich vier ZLW Anfragen (628A, 628B, 628C und 628D), obwohl die maximale Back-to-Back-ZLW-Anfrage auf 3 gesetzt wurde.
  • 7 ist ein Ablaufdiagramm eines Verfahrens zur automatischen Hardware-ZLW-Einfügung für IPU-Bildströme. Bei Block 702 wird eine Bildstromanfrage empfangen. Bei Block 704 wird ein Datentransfertyp basierend auf der Bildstromanfrage empfangen. Bei Block 706 wird in Reaktion darauf, dass die Bildstromanfrage auf einer anderen Seite beginnt, als eine vorherige Anfrage in einem Seitenverlauf, eine Hardware-ZLW-Einfügung vor der Bildstromanfrage ausgegeben. In Ausführungsformen wird die Hardware-ZLW-Einfügung N Seiten vor der Bildstromanfrage ausgegeben. Bei Block 708 wird in Reaktion darauf, dass die Bildstromanfrage eine Seitengrenze überquert, wenn sie mit einer vorherigen Anfrage in einem Seitenverlauf verglichen wird, eine Hardware-ZLW-Einfügung vor der Bildstromanfrage ausgegeben.
  • 8 ist ein Blockdiagramm, das Medien 800 zeigt, die eine Logik zur automatischen Hardware-ZLW-Einfügung für IPU-Bildströme enthält. Die Medien 800 können ein computerlesbares Medium sein, einschließlich eines nicht transitorischen Mediums, das Code speichert, auf den durch einen Prozessor 802 über einen Computerbus 804 zugegriffen werden kann. Beispielsweise können die computerlesbaren Medium 800 flüchtige oder nichtflüchtige Datenspeichervorrichtungen sein. Die Medien 800 können auch eine Logikeinheit sein, wie etwa ein Application Specific Integrated Circuit (ASIC), ein Field Programmable Gate Array (FPGA), oder eine Anordnung von Logikgates, die beispielsweise in einem oder mehreren integrierten Schaltkreisen umgesetzt sind.
  • Die Medien 800 können Module 806 bis 810 enthalten, die konfiguriert sind, die hierin beschriebenen Techniken durchzuführen. Beispielsweise kann ein Streamingmodul 806 konfiguriert sein, eine Bildstromanfrage zu empfangen. Ein Grenzmodul 808 kann konfiguriert sein, zu bestimmen, ob die Bildstromanfrage, die auf einer anderen Seite als eine vorherige Anfrage in einem Seitenverlauf beginnt, oder ob die Bildstromanfrage, die auf einer selben Seite wie eine vorherige Anfrage in einem Seitenverlauf beginnt, eine Seitengrenze überquert. Ein Einfügungsmodul 810 kann konfiguriert sein, eine Hardware-ZLW-Anweisung basierend auf Ergebnissen von dem Grenzmodul 808 einzufügen. In einigen Ausführungsformen können die Module 806 bis 810 Module von Computercode sein, die konfiguriert sind, die Funktionen des Prozessors 802 zu lenken.
  • Das Blockdiagramm aus 8 soll nicht anzeigen, dass die Medien 800 alle die in 8 dargestellten Komponenten enthalten soll. Ferner können die Medien 800 eine beliebige Anzahl weiterer Komponenten enthalten, die in 8 nicht gezeigt sind, abhängig von den Einzelheiten der spezifischen Umsetzung.
  • Beispiel 1 ist ein System. Das System enthält einen Speicher, der konfiguriert ist, Bildgebungsdaten zu speichern; und einen Prozessor, der mit dem Speicher verbunden ist, wobei der Prozessor: eine Bildstromanfrage empfangen; einen Datentransfertyp bestimmen; in Reaktion darauf, dass die Bildstromanfrage auf einer andren Seite im Vergleich mit der aktuellen Seite in einem Seitenverlauf beginnt, eine „Zero Length Write‟ (ZLW)-Anweisung vor der Bildstromanfrage, die auf dem Datentransfertyp basiert einfügen; und in Reaktion darauf, dass die Bildstromanfrage eine Seitengrenze überquert, eine ZLW-Anweisung vor der Bildstromanfrage basierend auf dem Datentransfertype einfügen soll.
  • Beispiel 2 enthält das System aus Beispiel 1, einschließlich oder ausschließlich optionaler Merkmale. In diesem Beispiel soll die ZLW-Anweisung eine Seitenadressenübersetzung vorabrufen lassen.
  • Beispiel 3 enthält das System aus einem der Beispiele 1 bis 2, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel soll die ZLW-Anweisung eine Seitenadressenübersetzung vorabrufen lassen, wobei die ZLW-Anweisung durch Hardware eingefügt wird.
  • Beispiel 4 enthält das System aus einem der Beispiele 1 bis 3, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel wird die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben.
  • Beispiel 5 enthält das System aus einem der Beispiele 1 bis 4, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel wird die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben, wobei der Wert N auf einem Bildstromdurchsatz basiert.
  • Beispiel 6 enthält das System aus einem der Beispiele 1 bis 5, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel wird die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben, wobei der Wert N auf einer Lookaside-Pufferkonfiguration basiert.
  • Beispiel 7 enthält das System aus einem der Beispiele 1 bis 6, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel wird die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben, wobei der Wert N auf einer IOMMU-Ersatzrichtlinie basiert.
  • Beispiel 8 enthält das System aus einem der Beispiele 1 bis 7, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel ist der Datentransfertyp ein linearer 1D-Burst.
  • Beispiel 9 enthält das System aus einem der Beispiele 1 bis 8, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel ist der Datentransfertyp ein 2D-Blockburst.
  • Beispiel 10 enthält das System aus einem der Beispiele 1 bis 9, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel ist die ZLW-Anweisung eine Schreibanfrage, die keine Daten trägt.
  • Beispiel 11 ist ein Verfahren. Das Verfahren enthält das Empfangen einer Bildstromanfrage; das Bestimmen eines Datentransfertyps; das Einfügen einer „Zero Length Write“ (ZLW)-Anweisung vor der Bildstromanfrage in Reaktion darauf, dass die Bildstromanfrage auf einer anderen Seite als der aktuellen Seite in einem Seitenverlauf basierend auf dem Datentransfertyp beginnt; und das Einfügen einer ZLW-Anweisung vor der Bildstromanfrage in Reaktion darauf, dass die Bildstromanfrage eine Seitengrenze basierend auf dem Datentransfertyp überquert.
  • Beispiel 12 enthält das Verfahren aus Beispiel 11, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel soll die ZLW-Anweisung eine Seitenadressenübersetzung vorabrufen lassen.
  • Beispiel 13 enthält das Verfahren aus einem der Beispiele 11 bis 12, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel soll die ZLW-Anweisung eine Seitenadressenübersetzung vorabrufen lassen, wobei die ZLW-Anweisung durch Hardware eingefügt wird.
  • Beispiel 14 enthält das Verfahren aus einem der Beispiele 11 bis 13, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel wird die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben.
  • Beispiel 15 enthält das Verfahren aus einem der Beispiele 11 bis 14, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel wird die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben, wobei der Wert N auf einem Bildstromdurchsatz basiert.
  • Beispiel 16 enthält das Verfahren aus einem der Beispiele 11 bis 15, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel wird die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben, wobei der Wert N auf einer Lookaside-Pufferkonfiguration basiert.
  • Beispiel 17 enthält das Verfahren aus einem der Beispiele 11 bis 16, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel wird die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben, wobei der Wert N auf einer IOMMU-Ersatzrichtlinie basiert.
  • Beispiel 18 enthält das Verfahren aus einem der Beispiele 11 bis 17, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel ist der Datentransfertyp ein linearer 1D-Burst.
  • Beispiel 19 enthält das Verfahren aus einem der Beispiele 11 bis 18, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel ist der Datentransfertyp ein 2D-Blockburst.
  • Beispiel 20 enthält das Verfahren aus einem der Beispiele 11 bis 19, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel ist die ZLW-Anweisung eine Schreibanfrage, die keine Daten trägt.
  • Beispiel 21 ist eine Vorrichtung. Die Vorrichtung enthält einen Controller zum Empfangen einer Bildstromanfrage; eine ZLW-Einfügungseinheit zum Bestimmen eines Datentransfertyps, und in Reaktion darauf, dass die Bildstromanfrage auf einer anderen Seite als der aktuellen Seite in einem Seitenverlauf beginnt, Einfügen einer „Zero Length Write‟ (ZLW)-Anweisung vor der Bildstromanfrage basierend auf dem Datentransfertyp, und in Reaktion darauf, dass die Bildstromanfrage eine Seitengrenze überquert, Einfügen einer ZLW-Anweisung vor der Bildstromanfrage basierend auf dem Datentransfertyp.
  • Beispiel 22 enthält die Vorrichtung aus Beispiel 21, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel soll die ZLW-Anweisung eine Seitenadressenübersetzung vorabrufen lassen.
  • Beispiel 23 enthält die Vorrichtung aus einem der Beispiele 21 bis 22, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel soll die ZLW-Anweisung eine Seitenadressenübersetzung vorabrufen lassen, wobei die ZLW-Anweisung durch Hardware eingefügt wird.
  • Beispiel 24 enthält die Vorrichtung aus einem der Beispiele 21 bis 23, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel wird die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben.
  • Beispiel 25 enthält die Vorrichtung aus einem der Beispiele 21 bis 24, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel wird die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben, wobei der Wert N auf einem Bildstromdurchsatz basiert.
  • Beispiel 26 enthält die Vorrichtung aus einem der Beispiele 21 bis 25, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel wird die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben, wobei der Wert N auf einer Lookaside-Pufferkonfiguration basiert.
  • Beispiel 27 enthält die Vorrichtung aus einem der Beispiele 21 bis 26, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel wird die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben, wobei der Wert N auf einer IOMMU-Ersatzrichtlinie basiert.
  • Beispiel 28 enthält die Vorrichtung aus einem der Beispiele 21 bis 27, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel ist der Datentransfertyp ein linearer 1D-Burst.
  • Beispiel 29 enthält die Vorrichtung aus einem der Beispiele 21 bis 28, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel ist der Datentransfertyp ein 2D-Blockburst.
  • Beispiel 30 enthält die Vorrichtung aus einem der Beispiele 21 bis 29, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel ist die ZLW-Anweisung eine Schreibanfrage, die keine Daten trägt.
  • Beispiel 31 ist mindestens ein maschinenlesbares Medium, das mehrere Anweisungen umfasst, die. Das Computerlesbare Medium enthält Anweisungen, die den Prozessor anweisen, eine Bildstromanfrage zu empfangen; einen Datentransfertyp zu bestimmen; eine „Zero Length Write‟ (ZLW)-Anweisung vor der Bildstromanfrage in Reaktion darauf, dass die Bildstromanfrage auf einer anderen Seite als der aktuellen Seite in einem Seitenverlauf basierend auf dem Datentransfertyp beginnt, einzufügen; und eine ZLW-Anweisung vor der Bildstromanfrage in Reaktion darauf, dass die Bildstromanfrage eine Seitengrenze basierend auf dem Datentransfertyp überquert, einzufügen.
  • Beispiel 32 enthält das computerlesbare Medium aus Beispiel 31, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel soll die ZLW-Anweisung eine Seitenadressenübersetzung vorabrufen lassen.
  • Beispiel 33 enthält das computerlesbare Medium aus einem der Beispiele 31 bis 32, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel soll die ZLW-Anweisung eine Seitenadressenübersetzung vorabrufen lassen, wobei die ZLW-Anweisung durch Hardware eingefügt wird.
  • Beispiel 34 enthält das computerlesbare Medium aus einem der Beispiele 31 bis 33, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel wird die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben.
  • Beispiel 35 enthält das computerlesbare Medium aus einem der Beispiele 31 bis 34, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel wird die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben, wobei der Wert N auf einem Bildstromdurchsatz basiert.
  • Beispiel 36 enthält das computerlesbare Medium aus einem der Beispiele 31 bis 35, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel wird die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben, wobei der Wert N auf einer Lookaside-Pufferkonfiguration basiert.
  • Beispiel 37 enthält das computerlesbare Medium aus einem der Beispiele 31 bis 36, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel wird die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben, wobei der Wert N auf einer IOMMU-Ersatzrichtlinie basiert.
  • Beispiel 38 enthält das computerlesbare Medium aus einem der Beispiele 31 bis 37, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel ist der Datentransfertyp ein linearer 1D-Burst.
  • Beispiel 39 enthält das computerlesbare Medium aus einem der Beispiele 31 bis 38, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel ist der Datentransfertyp ein 2D-Blockburst.
  • Beispiel 40 enthält das computerlesbare Medium aus einem der Beispiele 31 bis 39, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel ist die ZLW-Anweisung eine Schreibanfrage, die keine Daten trägt.
  • Beispiel 41 ist eine Vorrichtung. Die Vorrichtung enthält Anweisungen, die den Prozessor an einen Controller verweisen, um eine Bildstromanfrage zu empfangen; ein Mittel zum Bestimmen eines Datentransfertyps, und in Reaktion darauf, dass die Bildstromanfrage auf einer anderen Seite als der aktuellen Seite in einem Seitenverlauf beginnt, Einfügen einer „Zero Length Write‟ (ZLW)-Anweisung vor der Bildstromanfrage basierend auf dem Datentransfertyp, und in Reaktion darauf, dass die Bildstromanfrage eine Seitengrenze überquert, Einfügen einer ZLW-Anweisung vor der Bildstromanfrage basierend auf dem Datentransfertyp.
  • Beispiel 42 enthält die Vorrichtung aus Beispiel 41, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel soll die ZLW-Anweisung eine Seitenadressenübersetzung vorabrufen lassen.
  • Beispiel 43 enthält die Vorrichtung aus einem der Beispiele 41 bis 42, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel soll die ZLW-Anweisung eine Seitenadressenübersetzung vorabrufen lassen, wobei die ZLW-Anweisung durch Hardware eingefügt wird.
  • Beispiel 44 enthält die Vorrichtung aus einem der Beispiele 41 bis 43, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel wird die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben.
  • Beispiel 45 enthält die Vorrichtung aus einem der Beispiele 41 bis 44, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel wird die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben, wobei der Wert N auf einem Bildstromdurchsatz basiert.
  • Beispiel 46 enthält die Vorrichtung aus einem der Beispiele 41 bis 45, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel wird die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben, wobei der Wert N auf einer Lookaside-Pufferkonfiguration basiert.
  • Beispiel 47 enthält die Vorrichtung aus einem der Beispiele 41 bis 46, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel wird die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben, wobei der Wert N auf einer IOMMU-Ersatzrichtlinie basiert.
  • Beispiel 48 enthält die Vorrichtung aus einem der Beispiele 41 bis 47, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel ist der Datentransfertyp ein linearer 1D-Burst.
  • Beispiel 49 enthält die Vorrichtung aus einem der Beispiele 41 bis 48, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel ist der Datentransfertyp ein 2D-Blockburst.
  • Beispiel 50 enthält die Vorrichtung aus einem der Beispiele 41 bis 49, einschließlich oder ausschließlich optionaler Funktionen. In diesem Beispiel ist die ZLW-Anweisung eine Schreibanfrage, die keine Daten trägt.
  • Es versteht sich, dass die Einzelheiten in den obigen Beispielen überall in einer oder mehreren Ausführungsformen verwendet werden können. Beispielsweise können alle optionalen Funktionen der oben beschriebenen Rechnervorrichtung auch bezüglich eines der Verfahren oder der computerlesbaren Medien umgesetzt sein, die hierin beschrieben sind. Weiterhin können zwar Ablaufdiagramme und/oder Statusdiagramme hierin verwendet worden sein, um Ausführungsformen zu beschreiben, die Techniken sind jedoch nicht auf diese Diagramme oder die entsprechenden Beschreibungen hierin beschränkt. Beispielsweise muss der Ablauf nicht durch jeden illustrierten Kasten oder Status laufen, oder dies in genau derselben Reihenfolge wie hierin illustriert und beschrieben tun.
  • Die vorliegenden Techniken sind nicht auf die bestimmten Details beschränkt, die hierin aufgeführt sind. Fachleute mit dem Vorteil dieser Offenbarung verstehen, dass viele andere Variationen der obigen Beschreibung und Zeichnungen innerhalb des Umfangs der vorliegenden Techniken ausgeführt werden können. Dementsprechend sind es die folgenden Ansprüche und alle Ergänzungen davon, die den Umfang der vorliegenden Techniken definieren.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 15/280772 [0001]

Claims (25)

  1. System, umfassend: einen Speicher, konfiguriert, Bildgebungsdaten zu speichern; und einen Prozessor, der mit dem Speicher verbunden ist, wobei der Prozessor: eine Bildstromanfrage empfangen soll; einen Datentransfertyp bestimmen soll; in Reaktion darauf, dass die Bildstromanfrage auf einer anderen Seite als der aktuellen Seite in einem Seitenverlauf beginnt, eine „Zero Length Write“- (ZLW) Anweisung vor der Bildstromanfrage basierend auf dem Datentransfertyp einfügen soll; und in Reaktion darauf, dass die Bildstromanfrage eine Seitengrenze überquert, eine ZLW-Anweisung vor der Bildstromanfrage basierend auf dem Datentransfertyp einfügen soll.
  2. System nach Anspruch 1, wobei die ZLW-Anweisung eine Seitenadressenübersetzung vorabrufen lassen soll.
  3. System nach Anspruch 1, wobei die ZLW-Anweisung eine Seitenadressenübersetzung vorabrufen lassen soll, wobei die ZLW-Anweisung durch Hardware eingefügt wird.
  4. System nach Anspruch 1, wobei die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben wird.
  5. System nach Anspruch 1, wobei die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben wird, wobei der Wert von N auf einem Bildstromdurchsatz basiert.
  6. Verfahren, umfassend: Empfangen einer Bildstromanfrage; Bestimmen eines Datentransfertyps; Einfügen einer „Zero Length Write“- (ZLW) Anweisung in Reaktion darauf, dass die Bildstromanfrage auf einer anderen Seite als der aktuellen Seite in einem Seitenverlauf beginnt, vor der Bildstromanfrage auf Grundlage des Datentransfertyps; und Einfügen einer ZLW-Anweisung in Reaktion darauf, dass die Bildstromanfrage eine Seitengrenze überquert, vor der Bildstromanfrage auf Grundlage des Datentransfertyps.
  7. Verfahren nach Anspruch 6, wobei die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben wird, wobei der Wert von N auf einer Look-Aside-PufferKonfiguration basiert.
  8. Verfahren nach Anspruch 6, wobei die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben wird, wobei der Wert von N auf einer IOMMU-Ersatzrichtlinie basiert.
  9. Verfahren nach Anspruch 6, wobei der Datentransfertyp ein linearer 1D-Burst ist.
  10. Verfahren nach Anspruch 6, wobei der Datentransfertyp ein 2D-Blockburst ist.
  11. Vorrichtung, umfassend: einen Controller zum Empfangen einer Bildstromanfrage; eine ZLW-Einfügungseinheit zum Bestimmen eines Datentransfertyps, und in Reaktion darauf, dass die Bildstromanfrage auf einer anderen Seite als der aktuellen Seite in einem Seitenverlauf beginnt, Einfügen einer „Zero Length Write“- (ZLW) Anweisung vor der Bildstromanfrage basierend auf dem Datentransfertyp, und in Reaktion darauf, dass die Bildstromanfrage eine Seitengrenze überquert, Einfügen einer ZLW-Anweisung vor der Bildstromanfrage basierend auf dem Datentransfertyp.
  12. Vorrichtung nach Anspruch 11, wobei die ZLW-Anweisung eine Seitenadressenübersetzung vorabrufen lassen soll.
  13. Vorrichtung nach Anspruch 11, wobei die ZLW-Anweisung eine Seitenadressenübersetzung vorabrufen lassen soll, wobei die ZLW-Anweisung durch Hardware eingefügt wird.
  14. Vorrichtung nach Anspruch 11, wobei die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben wird.
  15. Vorrichtung nach Anspruch 11, wobei die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben wird, wobei der Wert N auf einem Bildstromdurchsatz basiert.
  16. Maschinenlesbares Medium bzw. maschinenlesbare Medien, umfassend mehrere Anweisungen, die, in Reaktion darauf, dass sie auf einer Rechnervorrichtung ausgeführt werden, die Rechnervorrichtung veranlassen: eine Bildstromanfrage zu empfangen; einen Datentransfertyp zu bestimmen; eine „Zero Length Write“- (ZLW) Anweisung, in Reaktion darauf, dass die Bildstromanfrage auf einer anderen Seite als der aktuellen Seite in einem Seitenverlauf beginnt, vor der Bildstromanfrage auf Grundlage des Datentransfertyps einzufügen; und eine ZLW-Anweisung in Reaktion darauf, dass die Bildstromanfrage eine Seitengrenze überquert, vor der Bildstromanfrage auf Grundlage des Datentransfertyps einzufügen.
  17. Computerlesbares Medium nach Anspruch 16, wobei die ZLW-Anweisung eine Seitenadressenübersetzung vorabrufen lassen soll.
  18. Computerlesbares Medium nach Anspruch 16, wobei die ZLW-Anweisung eine Seitenadressenübersetzung vorabrufen lassen soll, wobei die ZLW-Anweisung durch Hardware eingefügt wird.
  19. Computerlesbares Medium nach Anspruch 16, wobei die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben wird.
  20. Computerlesbares Medium nach Anspruch 16, wobei die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben wird, wobei der Wert N auf einem Bildstromdurchsatz basiert.
  21. Vorrichtung, umfassend: einen Controller zum Empfangen einer Bildstromanfrage; ein Mittel zum Bestimmen eines Datentransfertyps, und in Reaktion darauf, dass die Bildstromanfrage auf einer anderen Seite als der aktuellen Seite in einem Seitenverlauf beginnt, Einfügen einer „Zero Length Write“- (ZLW) Anweisung vor der Bildstromanfrage basierend auf dem Datentransfertyp, und in Reaktion darauf, dass die Bildstromanfrage eine Seitengrenze überquert, Einfügen einer ZLW-Anweisung vor der Bildstromanfrage basierend auf dem Datentransfertyp.
  22. Vorrichtung nach Anspruch 21, wobei die ZLW-Anweisung eine Seitenadressenübersetzung vorabrufen lassen soll.
  23. Vorrichtung nach Anspruch 21, wobei die ZLW-Anweisung eine Seitenadressenübersetzung vorabrufen lassen soll, wobei die ZLW-Anweisung durch Hardware eingefügt wird.
  24. Vorrichtung nach Anspruch 21, wobei die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben wird.
  25. Vorrichtung nach Anspruch 21, wobei die ZLW-Anweisung N Seiten vor der Bildstromanfrage ausgegeben wird, wobei der Wert N auf einem Bildstromdurchsatz basiert.
DE112017003822.7T 2016-09-29 2017-08-24 Automatische hardware-zlw-einführung für ipu-bildströme Pending DE112017003822T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/280,772 2016-09-29
US15/280,772 US9983877B2 (en) 2016-09-29 2016-09-29 Automatic hardware ZLW insertion for IPU image streams
PCT/US2017/048376 WO2018063607A1 (en) 2016-09-29 2017-08-24 Automatic hardware zlw insertion for ipu image streams

Publications (1)

Publication Number Publication Date
DE112017003822T5 true DE112017003822T5 (de) 2019-04-18

Family

ID=61685364

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017003822.7T Pending DE112017003822T5 (de) 2016-09-29 2017-08-24 Automatische hardware-zlw-einführung für ipu-bildströme

Country Status (3)

Country Link
US (2) US9983877B2 (de)
DE (1) DE112017003822T5 (de)
WO (1) WO2018063607A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9983877B2 (en) * 2016-09-29 2018-05-29 Intel Corporation Automatic hardware ZLW insertion for IPU image streams
JP7324282B2 (ja) * 2019-01-31 2023-08-09 インターナショナル・ビジネス・マシーンズ・コーポレーション 入出力ストア命令をハンドリングする方法、システム、およびプログラム
US20230091167A1 (en) * 2021-09-23 2023-03-23 Intel Corporation Core-based speculative page fault list

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434677B1 (en) 1999-06-01 2002-08-13 Intel Corporation Method and apparatus for altering data length to zero to maintain cache coherency
US6640233B1 (en) 2000-08-18 2003-10-28 Network Appliance, Inc. Reserving file system blocks
US20050071570A1 (en) 2003-09-26 2005-03-31 Takasugl Robin Alexis Prefetch controller for controlling retrieval of data from a data storage device
US20060248279A1 (en) 2005-05-02 2006-11-02 Al-Sukhni Hassan F Prefetching across a page boundary
US7752350B2 (en) 2007-02-23 2010-07-06 International Business Machines Corporation System and method for efficient implementation of software-managed cache
US9652402B2 (en) 2014-12-23 2017-05-16 Texas Instruments Incorporated Hiding page translation miss latency in program memory controller by next page prefetch on crossing page boundary
US9983877B2 (en) * 2016-09-29 2018-05-29 Intel Corporation Automatic hardware ZLW insertion for IPU image streams

Also Published As

Publication number Publication date
US20180239605A1 (en) 2018-08-23
US9983877B2 (en) 2018-05-29
WO2018063607A1 (en) 2018-04-05
US10580107B2 (en) 2020-03-03
US20180088952A1 (en) 2018-03-29

Similar Documents

Publication Publication Date Title
DE112013007658B4 (de) Gemeinsame Speichernutzung über eine vereinheitlichte Speicherarchitektur
DE102013016993B4 (de) Embedded Multimedia Card (eMMC), einen Host steuernde eMMC und Verfahren zum Betreiben eines eMMC-Systems
DE102007006190B4 (de) Techniken zur Verwendung von Speicher-Attributen
DE112017001808T5 (de) Technologien für einen verteilten hardwarewarteschlangenmanager
DE102018213430A1 (de) Beschleuniger mit geringer Latenzzeit
DE112010001467B4 (de) Steuerung von Blöcken einer On-Die-System-Struktur
DE102013017509A1 (de) Effiziente Speichervirtualisierung in mehrsträngigen Verarbeitungseinheiten
DE202013012483U1 (de) Verwendung einer Tabelle zur Umrechnung virtueller Speicheradressen in physikalische Speicheradressen zur direkten Userspace-Kommunikation mit einem Datenträger
DE102013017510A1 (de) Effiziente Speichervirtualisierung in mehrsträngigen Verarbeitungseinheiten
DE202013012484U1 (de) Verwendung einer logisch-zu-physisch-Karte für direkte Benutzerraumkommunikation mit einer Datenspeichervorrichtung
DE112012005222T5 (de) Halbleiter-Datenspeicherverwaltung
DE102013017511A1 (de) Effiziente speichervirtualisierung in mehrsträngigen verarbeitungseinheiten
DE102014100031A1 (de) Ein-Chip-System mit Speicherverwaltungseinheit und Speicheradressen-Übersetzungsverfahren hiervon
DE112012006665T5 (de) Wählbare Grafik-Controller zur Ausgabenanzeige
WO2013110736A1 (de) Speichercontroller zur bereitstellung mehrerer definierter bereiche eines massenspeichermediums als unabhängige massenspeicher an einen master-betriebssystem - kern zur exklusiven bereitstellung an virutelle maschinen
DE112017005063T5 (de) Verwalten eines Speichers mit niedrigstem Kohärenzpunkt (LPC) mithilfe eines Dienstschichtadapters
DE102018123669A1 (de) Host-Computer-Anordnung, Remote-Server-Anordnung, Speicherungssystem und Verfahren davon
DE112020004181T5 (de) Bereitstellen eines direkten datenzugriffs zwischen beschleunigern und speicher in einer datenverarbeitungsumgebung
DE202010018020U1 (de) Opportunistische Verbesserung einer MMIO-Anfrageabwicklung aufgrund eines Zielberichts von Raumerfordernissen
DE112017003822T5 (de) Automatische hardware-zlw-einführung für ipu-bildströme
DE102017124078A1 (de) Ordinale modifikation der dienstgüte
DE102006036837A1 (de) Datenspeicherverwaltungsverfahren und -system
DE112010005609T5 (de) Speichern von Daten in einem einer Mehrzahl von Puffern in einer Speichersteuerung
DE112018006068T5 (de) Dynamische adressübersetzung für eine virtuelle maschine
DE112005000996T5 (de) Mechanismus zum Annullieren von Dateneinträgen eines Umsetzungspuffers in einem Mehrprozessorsystem

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: HGF EUROPE LLP, DE

Representative=s name: HGF EUROPE LP, DE