UNIFIED KERNEL VIRTUAL ADDRESS SPACE FOR HETEROGENEOUS COMPUTING

Systems, apparatuses, and methods for implementing a unified kernel virtual address space for heterogeneous computing are disclosed. A system includes at least a first subsystem running a first kernel, an input/output memory management unit (IOMMU), and a second subsystem running a second kernel. In...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: ATKINSON, William Lloyd, CHAN, Benjamin Koon Pan, KWONG, Tung Chuen
Format: Patent
Sprache:eng ; fre
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:Systems, apparatuses, and methods for implementing a unified kernel virtual address space for heterogeneous computing are disclosed. A system includes at least a first subsystem running a first kernel, an input/output memory management unit (IOMMU), and a second subsystem running a second kernel. In order to share a memory buffer between the two subsystems, the first subsystem allocates a block of memory in part of the system memory controlled by the first subsystem. A first mapping is created from a first logical address of the kernel address space of the first subsystem to the block of memory. Then, the IOMMU creates a second mapping to map the physical address of that block of memory from a second logical address of the kernel address space of the second subsystem. These mappings allow the first and second subsystems to share buffer pointers which reference the block of memory. La présente invention concerne des systèmes, des appareils et des procédés permettant de mettre en œuvre un espace d'adresse virtuelle de noyau unifié pour une informatique hétérogène. Un système comprend au moins un premier sous-système exécutant un premier noyau, une unité de gestion de mémoire d'entrée/sortie (IOMMU) et un second sous-système exécutant un second noyau. Afin de partager un tampon de mémoire entre les deux sous-systèmes, le premier sous-système attribue un bloc de mémoire dans une partie de la mémoire système commandée par le premier sous-système. Un premier mappage est créé entre une première adresse logique de l'espace d'adresse de noyau du premier sous-système et le bloc de mémoire. Ensuite, l'IOMMU crée un second mappage pour mapper l'adresse physique de ce bloc de mémoire à une seconde adresse logique de l'espace d'adresse de noyau du second sous-système. Ces mappages permettent aux premier et second sous-systèmes de partager des pointeurs de tampon qui font référence au bloc de mémoire.