DE102017104839B4 - Buffer mapping scheme that involves pre-allocation of memory - Google Patents
Buffer mapping scheme that involves pre-allocation of memoryInfo
- Publication number
- DE102017104839B4 DE102017104839B4 DE102017104839.1A DE102017104839A DE102017104839B4 DE 102017104839 B4 DE102017104839 B4 DE 102017104839B4 DE 102017104839 A DE102017104839 A DE 102017104839A DE 102017104839 B4 DE102017104839 B4 DE 102017104839B4
- Authority
- DE
- Germany
- Prior art keywords
- application
- physical address
- address
- operating system
- virtual
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
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)
- Bus Control (AREA)
Abstract
Computerimplementiertes Verfahren, durch welches ein Betriebssystem (200) mit einer ersten Anwendung (102) und einer zweiten Anwendung (104) kommuniziert, wobei das Verfahren Folgendes aufweist:
Empfangen einer ersten physikalischen Adresse von der ersten Anwendung (102), wobei die erste Anwendung (102) eine erste Seitentabelle (110) hat und die erste physikalische Adresse durch Abbilden virtueller Seiten der ersten Anwendung in physikalische Seiten eines Speichers unter Verwendung der ersten Seitentabelle (110) bestimmt wird, und Verwenden einer ersten physikalischen Seitenrahmennummer und eines ersten Offsets, um die erste physikalische Adresse zu bestimmen, die der ersten Anwendung entspricht;
Kommunizieren der zweiten Anwendung mit der ersten Anwendung unter Verwendung eines Anwendungsoffsets (106), wobei der Anwendungsoffset (106) auf die erste physikalische Adresse angewendet wird, um eine zweite physikalische Adresse zu bestimmen, die der zweiten Anwendung entspricht; und
Bestimmen einer virtuellen Betriebssystemebenen (OS-Ebenen)-Adresse basierend auf der ersten physikalischen Adresse, um eine Datenübertragung zu erreichen, wobei die virtuelle Betriebssystemebenen (OS-Ebenen)-Adresse durch eine Kernel-Übersetzungstabelle (210) nur auf der Grundlage der ersten physikalischen Adresse bestimmt wird, und wobei das Betriebssystem (200) mit der ersten Anwendung (102) und der zweiten Anwendung (104) nur über die erste physikalische Adresse kommuniziert.
A computer-implemented method by which an operating system (200) communicates with a first application (102) and a second application (104), the method comprising:
Receiving a first physical address from the first application (102), wherein the first application (102) has a first page table (110) and the first physical address is determined by mapping virtual pages of the first application into physical pages of a memory using the first page table (110), and using a first physical page frame number and a first offset to determine the first physical address corresponding to the first application;
communicating the second application with the first application using an application offset (106), wherein the application offset (106) is applied to the first physical address to determine a second physical address corresponding to the second application; and
Determining a virtual operating system (OS) level address based on the first physical address to achieve data transfer, wherein the virtual operating system (OS) level address is determined by a kernel translation table (210) based only on the first physical address, and wherein the operating system (200) communicates with the first application (102) and the second application (104) only via the first physical address.
Description
HINTERGRUNDBACKGROUND
Die vorliegende Offenbarung bezieht sich allgemein auf einen Speicherpuffer und genauer auf ein Puffermappingschema, welches eine Vor-Zuordnung von Speicher beinhaltet.The present disclosure relates generally to a memory buffer and more particularly to a buffer mapping scheme that includes pre-allocation of memory.
In einem UNIX-basierten Speicher-/Server-System gibt es verschiedene Anwendungen und Vorrichtungstreiber, wovon jeder einen spezifischen Task durchführt. Dass die Anwendungen, das Betriebssystem (OS)/Kernel und die Hardware effektiv kommunizieren, reichen sie oftmals einen Speicherpuffer herum. Typischerweise kommuniziert während dieser Kommunikationen eine Anwendung ihre virtuelle Anwendungsebenenadresse zu dem Betriebssystem/Kernel. Der Speicherpuffer ruft den Treiber unter Verwendung der virtuellen Anwendungsebenenadresse, und der Treiber mappt die virtuelle Anwendungsebenenadresse auf die virtuelle Betriebssystem-/ Kernel-Ebenenadresse.In a UNIX-based storage/server system, there are various applications and device drivers, each performing a specific task. To ensure effective communication between the applications, the operating system (OS)/kernel, and the hardware, they often pass a memory buffer. Typically, during these communications, an application communicates its application-level virtual address to the operating system/kernel. The memory buffer calls the driver using the application-level virtual address, and the driver maps the application-level virtual address to the operating system/kernel-level virtual address.
Um diese Übersetzung einfacher zu machen, sind virtueller und physikalischer Speicher in Stücke handlicher Größe unterteilt, genannt Seiten. In diesem Seitenmodell (paged model) ist eine virtuelle Adresse aus einem Offset und einer virtuellen Seitenrahmennummer aufgebaut. Jedes Mal, wenn der Prozessor auf eine virtuelle Adresse trifft, extrahiert der Prozessor den Offset und die virtuelle Seitenrahmennummer aus der virtuellen Adresse. Der Prozessor übersetzt dann die virtuelle Seitenrahmennummer in eine physikalische Seitenrahmennummer, um auf den Ort bei dem korrekten Offset in diese physikalische Seite zuzugreifen. Um eine virtuelle Adresse in eine physikalische Adresse zu übersetzen, arbeitet der Prozessor zuerst die virtuelle Adressseitenrahmennummer und den Offset innerhalb der virtuellen Seite aus. Der Prozessor verwendet die virtuelle Seitenrahmennummer als einen Index in die Prozessseitentabelle, um ihren Seitentabelleneintrag abzurufen. Wenn der Seitentabelleneintrag bei diesem Offset gültig ist, nimmt der Prozessor die physikalische Seitenzahlnummer von diesem Eintrag. Die Tabellen, die der Prozessor verwendet, um die virtuelle Seitenrahmennummer in eine physikalische Rahmennummer umzuwandeln, werden Seitentabellen genannt.To simplify this translation, virtual and physical memory are divided into manageable-sized pieces called pages. In this paged model, a virtual address is made up of an offset and a virtual page frame number. Each time the processor encounters a virtual address, the processor extracts the offset and virtual page frame number from the virtual address. The processor then translates the virtual page frame number to a physical page frame number to access the location at the correct offset within that physical page. To translate a virtual address to a physical address, the processor first works out the virtual address page frame number and the offset within the virtual page. The processor uses the virtual page frame number as an index into the process page table to retrieve its page table entry. If the page table entry at that offset is valid, the processor takes the physical page frame number from that entry. The tables the processor uses to convert the virtual page frame number to a physical frame number are called page tables.
Eine virtuelle Adresse wird durch ein Hinzufügen eines Offset zu der virtuellen Seitennummer berechnet. Um den Schutz weiter durchzuführen, gibt es getrennte Seitentabellen für eine Nutzerraumanwendung und einen Kernel. Um auf eine virtuelle Nutzerraumadresse zuzugreifen, mappt Kernel-Ebenen-Software die Nutzerraumadresse auf einen Kernel-Adressraum. Dieser Vorgang beinhaltet ein Erzeugen von Kernel-Seitentabelleneinträgen für die Nutzerraumadresse.A virtual address is calculated by adding an offset to the virtual page number. To further protect the application, separate page tables exist for the user-space application and the kernel. To access a virtual user-space address, kernel-level software maps the user-space address to a kernel address space. This process involves creating kernel page table entries for the user-space address.
Wie für die Hardware tritt die Verbindung zwischen dem OS/Kernel und der Hardware mittels eines direkten Speicherzugriffs (DMA = Direct Memory Access = Direkter Speicherzugriff) auf. Durch ein Verwenden von DMA kann eine Hardwarevorrichtung Daten von/zu einem Hauptspeicher eines Computers übertragen, ohne eine CPU zu involvieren. Dass der DMA arbeitet, werden Speicherpuffer häufig auf einen Adressbereich gemappt, welcher für die Hardwarevorrichtung sichtbar ist. Dieser Adressbereich wird eine virtuelle IO-Adresse genannt. Abhängig von der Architektur kann dies ein Einrichten einer Übersetzung zwischen einer virtuellen IO-Adresse und einer physikalischen Adresse eines Computerhauptspeichers involvieren. Gewöhnlicherweise geschieht dies unter Verwendung einer IOMMU-Hardware. Auf einigen Architekturen kann die virtuelle IO-Adresse dieselbe sein wie die physikalische Adresse des Computerhauptspeichers.As for the hardware, the connection between the OS/kernel and the hardware occurs via direct memory access (DMA). By using DMA, a hardware device can transfer data to/from a computer's main memory without involving a CPU. For DMA to work, memory buffers are often mapped to an address range visible to the hardware device. This address range is called a virtual IO address. Depending on the architecture, this may involve establishing a translation between a virtual IO address and a physical address of the computer's main memory. Typically, this is done using an IOMMU hardware. On some architectures, the virtual IO address may be the same as the physical address of the computer's main memory.
Das oben beschriebene Mappingschema lädt eine schwere Last auf das OS/den Kernel, welches/welcher zuerst die virtuelle Anwendungsebenenadresse in eine virtuelle OS-Ebenenadresse durch ein Einrichten von Seitentabelleneinträgen übersetzen muss. Ähnlich sollte ein DMA-Mapping für jede DMA-Übertragung etabliert werden. Ein effizienteres Verfahren für das OS, Anwendungen und Hardware zum Kommunizieren ist erwünscht.The mapping scheme described above places a heavy burden on the OS/kernel, which must first translate the application-level virtual address into an OS-level virtual address by setting up page table entries. Similarly, a DMA mapping should be established for each DMA transfer. A more efficient method for the OS, applications, and hardware to communicate is desired.
Aus der Druckschrift
Aus der Druckschrift
KURZFASSUNGSUMMARY
Aufgabe der Erfindung ist es, ein computerimplementiertes Verfahren, durch welches ein Betriebssystem mit einer ersten Anwendung und einer zweiten Anwendung kommuniziert, ein computerimplementiertes Verfahren, durch welches eine erste Anwendung, eine zweite Anwendung, ein Betriebssystem und Hardware in einem einzelnen Knoten miteinander durch Verwenden eines Puffers kommunizieren, sowie eine Vorrichtung zum Steuern einer Datenübertragung bereitzustellen, mit denen eine Effizienzsteigerung gegenüber den oben beschriebenen bekannten Verfahren und Vorrichtungen erzielt wird. Die Aufgabe der Erfindung wird gelöst durch ein computerimplementiertes Verfahren nach dem Hauptanspruch. Die Aufgabe wird auch gelöst durch ein computerimplementiertes Verfahren nach dem Nebenanspruch 4 und durch eine Vorrichtung nach dem Nebenanspruch 9. Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.The object of the invention is to provide a computer-implemented method by which an operating system communicates with a first application and a second application, a computer-implemented method by which a first application, a second application, an operating system, and hardware in a single node communicate with each other using a buffer, and a device for controlling data transmission, with which an increase in efficiency is achieved compared to the known methods and devices described above. The object of the invention is achieved by a computer-implemented method according to the main claim. The object is also achieved by a computer-implemented method according to the independent claim 4 and by a device according to the independent claim 9. Further developments of the invention are specified in the subclaims.
KURZE BESCHREIBUNG DER ZEICHNUNGENBRIEF DESCRIPTION OF THE DRAWINGS
-
1 ist eine Konzeptveranschaulichung des Nutzerraums, Kernel-Raums und Hardware in einem einzelnen Knoten, welche eine mögliche Umgebung gemäß einer Ausführungsform vorsehen.1 is a conceptual illustration of user space, kernel space, and hardware in a single node, providing a possible environment according to one embodiment. -
2A ist ein schematisches Diagramm, welches eine Kommunikation zwischen Anwendungen, einem Betriebssystem und Hardware gemäß einer Ausführungsform zeigt.2A is a schematic diagram illustrating communication between applications, an operating system, and hardware according to one embodiment. -
2B ist ein anderes schematisches Diagramm, welches die mehreren Anwendungen in dem Nutzerraum und verschiedene virtuelle Adressen in dem Kernel, welche auf eine gemeinsame physikalische Adresse zeigen, zeigt, die eine gemeinsame Verwendung des Puffers gemäß einer Ausführungsform ermöglichen.2B is another schematic diagram showing the multiple applications in user space and various virtual addresses in the kernel pointing to a common physical address that enable buffer sharing according to one embodiment. -
3 ist ein Diagramm, welches Kommunikationsverfahren zwischen einer Anwendung, einem Betriebssystem und Hardware gemäß einer Ausführungsform veranschaulicht.3 is a diagram illustrating communication methods between an application, an operating system, and hardware according to one embodiment.
DETAILLIERTE BESCHREIBUNGDETAILED DESCRIPTION
Das vorliegende System erspart es dem OS, dass es Kernel-Ebenen-Seitentabellenbasierte Übersetzungen einrichten muss, jedes Mal, wenn der Speicherpuffer verbreitet wird. In der Offenbarung kommuniziert die Anwendung die physikalische Adresse zu dem Kernel. Gemäß einer Ausführungsform hat der Kernel das benötigte Mapping für diesen Puffer. Demnach kann der Kernel die virtuelle Adresse berechnen und muss nicht jedes Mal eine Mappingoperation durchführen. Da alle Kernel-Module denselben virtuellen Adressraum gemeinsam verwenden, kann jedes beliebige OS-Modul (nicht nur das OS-Modul, welches den Speicher zuordnete) die virtuelle Adresse unter Verwendung der physikalischen Adresse erlangen und auf dem Puffer arbeiten.The present system eliminates the need for the OS to perform kernel-level page table-based translations each time the memory buffer is allocated. In the disclosure, the application communicates the physical address to the kernel. According to one embodiment, the kernel has the required mapping for this buffer. Thus, the kernel can calculate the virtual address and does not need to perform a mapping operation each time. Since all kernel modules share the same virtual address space, any OS module (not just the OS module that allocated the memory) can obtain the virtual address using the physical address and operate on the buffer.
Zwischen unterschiedlichen Anwendungen geschieht eine Kommunikation unter Verwendung eines Puffer-Offsets. Eine Anwendung verwendet eine virtuelle Adresse, um auf dem Puffer zu arbeiten. Die Anwendung kann ihre eigene virtuelle Adresse durch ein einfaches Addieren des Offsets zu der virtuellen Adresse des Starts des Puffers berechnen.Communication between different applications occurs using a buffer offset. An application uses a virtual address to operate on the buffer. The application can calculate its own virtual address by simply adding the offset to the virtual address of the buffer's start.
Eine Anwendung kann die DMA-Adresse eines Offsets durch einfach ein Hinzufügen des Offsets zu einer DMA-Adresse an dem Start des Puffers bestimmen. Anwendungen können die Pufferadresse direkt zu einer Hardwarevorrichtung ohne Involvierung des Kernels verbreiten.An application can determine the DMA address of an offset by simply adding the offset to a DMA address at the start of the buffer. Applications can propagate the buffer address directly to a hardware device without kernel involvement.
Während die Offenbarung in dem Kontext eines einzelnen Knoten geschrieben ist, ist dies nicht eine Beschränkung der vorliegenden Offenbarung.While the disclosure is written in the context of a single node, this is not a limitation of the present disclosure.
Auf die Seitentabelle 110 wird unter Verwendung der virtuellen Seitenrahmennummer als einem Offset zugegriffen. Um eine virtuelle Adresse in eine physikalische Adresse zu übersetzen, werden zuerst die virtuelle Adressseitenrahmennummer und der Offset innerhalb dieser virtuellen Seite bestimmt. Wenn eine virtuelle Speicheradresse gültig ist und der Tabelleneintrag gültig ist, nimmt der Prozessor die physikalische Seitenrahmennummer und multipliziert sie mit der Seitengröße, um die Adresse der Basis der Seite im physikalischen Speicher zu erhalten. Dann wird der Offset hinzugefügt.The page table 110 is accessed using the virtual page frame number as an offset. To translate a virtual address into a physical address, the virtual address page frame number and the offset within that virtual page are first determined. If a virtual memory address is valid and the table entry is valid, the processor takes the physical page frame number and multiplies it by the page size to obtain the address of the page's base in physical memory. The offset is then added.
Es sei beispielsweise in dem Fall, welcher in
Gemäß einer Ausführungsform ist der Speicher vor-zugeordnet und mit den Anwendungen 100 geteilt, so dass die Anwendungen 100 und das Betriebssystem 200 beide auf die physikalische Adresstabelle zugreifen können. „Vor-Zuordnung“ wenn hierein verwendet, bedeutet eine Zuordnung vor einer beliebigen Nutzung des Puffers, um Daten zwischen Anwendung/Kernel/Hardware-Domains zu übertragen. Darüber hinaus wandeln unterschiedliche Module in dem Betriebssystem 200, wobei alle Module denselben virtuellen Adressraum gemeinsam nutzen, eine physikalische Adresse in ihre eigene virtuelle OS-Ebenenadresse um. Das Verfahren, welches jedes OS nutzt, um eine physikalische Adresse in eine virtuelle Adresse umzuwandeln, hängt von der Architektur jedes OS ab. Beispielsweise kann das Linux-OS eine physikalische Adresse in eine virtuelle Adresse unter Verwendung einer einfachen Arithmetik für einen bestimmten Bereich von Adressen übersetzen. Wenn in Linux implementiert, fallen die vorzugeordneten Puffer des vorliegenden Systems in diesen Bereich von Adressen, wo eine einfache Arithmetik genutzt wird, um bei einer physikalischen Adresse anzukommen. Einige andere OS können einen unterschiedlichen Mechanismus haben, um dies zu tun.According to one embodiment, the memory is pre-allocated and shared with applications 100 so that applications 100 and operating system 200 can both access the physical address table. "Pre-allocation," as used herein, means allocation prior to any use of the buffer to transfer data between application/kernel/hardware domains. Furthermore, different modules in operating system 200, all of which share the same virtual address space, convert a physical address into their own OS-level virtual address. The method each OS uses to convert a physical address to a virtual address depends on the architecture of each OS. For example, the Linux OS may translate a physical address to a virtual address using simple arithmetic for a specific range of addresses. When implemented in Linux, the present system's pre-allocated buffers fall within this range of addresses, where simple arithmetic is used to arrive at a physical address. Some other OS may have a different mechanism to do this.
Eine Anwendung kann die DMA-Adresse eines Offset durch einfach ein Hinzufügen des Offsets zu der DMA-Adresse des Starts des Puffers berechnen. Auf diese Art und Weise kann eine Anwendung die Pufferadresse direkt zu einer Hardware 300-Vorrichtung ohne eine Involvierung des Betriebssystems 200 verbreiten. An application can calculate the DMA address of an offset by simply adding the offset to the DMA address of the buffer's start point. In this way, an application can propagate the buffer address directly to a hardware 300 device without involving the operating system 200.
Gemäß einer Ausführungsform weist das vorliegende System einen maschinenlesbaren Speicher auf, welcher darauf ein Computerprogramm gespeichert hat, welches wenigstens eine Codesektion hat, welche durch eine Maschine ausführbar ist, wodurch die Maschine veranlasst wird, die Schritte wie obenstehend beschrieben durchzuführen.According to one embodiment, the present system comprises a machine-readable memory having stored thereon a computer program having at least one section of code executable by a machine, causing the machine to perform the steps as described above.
Gemäß einer Ausführungsform kann das vorliegende System in Hardware, Software oder einer Kombination von Software und Software realisiert sein. Während die Offenbarung sich auf eine Einzelknotenimplementierung, welche ein Computersystem involviert, fokussiert, kann sie für eine Verwendung in einer verteilten Art und Weise angepasst werden, wo unterschiedliche Elemente über verschiedene verbundene Computersysteme verteilt sind. Eine beliebige Art von Computersystem oder Vorrichtung, welche angepasst ist zum Ausführen der Verfahren, welche hierin beschrieben sind, ist geeignet. Eine typische Kombination von Hardware und Software kann ein Allgemeinzweck-Computersystem mit einem Computerprogramm sein, das, wenn es geladen und ausgeführt wird, das Computersystem derart steuert, dass es die Verfahren, welche hierin beschrieben sind, ausführt.According to one embodiment, the present system may be implemented in hardware, software, or a combination of software and software. While the disclosure focuses on a single-node implementation involving a computer system, it may be adapted for use in a distributed manner where different elements are distributed across various connected computer systems. Any type of computer system or device adapted to perform the methods described herein is suitable. A typical combination of hardware and software may be a general-purpose computer system with a computer program that, when loaded and executed, controls the computer system to perform the methods described herein.
Das vorliegende System kann in einem Computerprogrammprodukt eingebettet sein, welches all die Merkmale aufweist, welche die Implementierung der Verfahren, welche obenstehend beschrieben sind, ermöglicht, und welche, wenn sie in ein Computersystem geladen sind, in der Lage sind, diese Verfahren auszuführen. „Computerprogramm“ bedeutet in dem vorliegenden Zusammenhang einen beliebigen Ausdruck in einer beliebigen Sprache, Code oder Notifizierung eines Satzes von Befehlen, welcher vorgesehen ist, um ein System zu veranlassen, eine Informationsverarbeitungsfähigkeit zu haben, um eine bestimmte Funktion entweder direkt oder nach einem oder beiden der folgenden durchzuführen: Umwandlung in eine andere Sprache, Code oder Notation; Reproduktion in einer unterschiedlichen Materialform.The present system may be embedded in a computer program product having all the features enabling the implementation of the methods described above, and which, when loaded into a computer system, is capable of executing those methods. "Computer program" in the present context means any expression in any language, code, or notation of a set of instructions intended to cause a system to have information processing capability to perform a particular function, either directly or after one or both of the following: conversion into another language, code, or notation; reproduction in a different material form.
Claims (10)
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201662326537P | 2016-04-22 | 2016-04-22 | |
| US62/326,537 | 2016-04-22 | ||
| US15/333,010 US10380012B2 (en) | 2016-04-22 | 2016-10-24 | Buffer mapping scheme involving pre-allocation of memory |
| US15/333,010 | 2016-10-24 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE102017104839A1 DE102017104839A1 (en) | 2017-10-26 |
| DE102017104839B4 true DE102017104839B4 (en) | 2025-10-16 |
Family
ID=60020917
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE102017104839.1A Active DE102017104839B4 (en) | 2016-04-22 | 2017-03-08 | Buffer mapping scheme that involves pre-allocation of memory |
Country Status (1)
| Country | Link |
|---|---|
| DE (1) | DE102017104839B4 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118035992B (en) * | 2024-04-12 | 2024-07-23 | 浪潮云信息技术股份公司 | Memory security scanning method based on credit operation system, electronic equipment and storage medium |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150095610A1 (en) | 2013-10-01 | 2015-04-02 | Applied Micro Circuits Corporation | Multi-stage address translation for a computing device |
| US9092426B1 (en) | 2011-01-03 | 2015-07-28 | Applied Micro Circuts Corporation | Zero-copy direct memory access (DMA) network-attached storage (NAS) file system block writing |
-
2017
- 2017-03-08 DE DE102017104839.1A patent/DE102017104839B4/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9092426B1 (en) | 2011-01-03 | 2015-07-28 | Applied Micro Circuts Corporation | Zero-copy direct memory access (DMA) network-attached storage (NAS) file system block writing |
| US20150095610A1 (en) | 2013-10-01 | 2015-04-02 | Applied Micro Circuits Corporation | Multi-stage address translation for a computing device |
Also Published As
| Publication number | Publication date |
|---|---|
| DE102017104839A1 (en) | 2017-10-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE112012004550B4 (en) | State migration method, system and apparatus for a remote direct memory access adapter in a virtual environment | |
| DE112005002405B4 (en) | Error processing for direct memory access address translation | |
| DE69526751T2 (en) | Multiprocessor system for the local administration of address translation tables | |
| DE3586389T2 (en) | DYNAMICALLY ASSIGNED LOCAL / GLOBAL STORAGE ARRANGEMENT. | |
| DE112005002298B4 (en) | Increasing the performance of an address translation using translation tables comprising large address spaces | |
| DE112010003554B4 (en) | Symmetrical direct migration of virtual machines | |
| DE69701078T2 (en) | Microprocessor architecture with the ability to support multiple different processors | |
| DE602004012106T2 (en) | Multi-channel DMA with shared FIFO buffer | |
| DE112010001467B4 (en) | Control of blocks of an on-die-system structure | |
| DE202013012483U1 (en) | Use of a table to convert virtual memory addresses into physical memory addresses for direct user-space communication with a data carrier | |
| DE69524916T2 (en) | Method and device for data transmission in the field of computer systems | |
| DE202013012484U1 (en) | Use of a logical-to-physical card for direct user-space communication with a data storage device | |
| DE202014011596U1 (en) | System for extending peripheral component interconnect express fabrics | |
| DE112020005106B4 (en) | METHOD AND SYSTEMS FOR IMPLEMENTING VIRTUAL ADDRESSES IN A VIRTUAL STORAGE-BASED SYSTEM | |
| WO2008006622A1 (en) | Network system and method for controlling address spaces existing in parallel | |
| DE112008002019T5 (en) | Offload input / output (I / O) virtualization operations to a processor | |
| DE112012006665T5 (en) | Selectable graphics controller for output display | |
| DE102018209205A1 (en) | Data storage with intelligent storage or charging method and device | |
| DE112018006068B4 (en) | DYNAMIC ADDRESS TRANSLATION FOR A VIRTUAL MACHINE | |
| DE102022204514A1 (en) | MULTI-SOCKET NETWORK INTERFACE CONTROLLER WITH CONSISTENT ORDER OF TRANSACTIONS | |
| DE112017001654B4 (en) | TECHNOLOGIES FOR REGION-BASED CACHING MANAGEMENT | |
| DE102013209643A1 (en) | Mechanism for optimized message exchange data transfer between nodelets within a tile | |
| DE112012004926B4 (en) | Memory sharing among processors | |
| DE112011100825B4 (en) | Assigning memory to on-chip coherence domains | |
| DE102017124078B4 (en) | ORDINAL MODIFICATION OF SERVICE QUALITY |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R012 | Request for examination validly filed | ||
| R016 | Response to examination communication | ||
| R018 | Grant decision by examination section/examining division |