Address translation mechanism for shared memory based inter-domain communication
First Claim
1. A method, comprising:
- creating a first address translation table hierarchy for a first virtual address domain of a plurality of virtual address domains of a processing system;
creating a second address translation table hierarchy for the first virtual address domain, for use when a second virtual address domain is a target of data communication from the first virtual address domain, the second address translation table hierarchy incorporating part of the first address translation table hierarchy; and
using the second address translation table hierarchy to communicate data between the first and second virtual address domains,wherein the first address translation table hierarchy provides read-write permission to access a corresponding memory space, and the second address translation table hierarchy provides read-only permission to access the corresponding memory space;
wherein the first address translation hierarchy includes a first to level, and first lower levels include at least a page directory level and a page table level, the page directory level including page directories comprising pointers to page tables of the page table level, the page tables comprising pointers to memory pages;
wherein the first top level includes an access permission indicator for the corresponding memory space, the access permission indicator governing access to the corresponding memory space regardless of permission indicators of the first lower levels;
wherein the second address translation hierarchy includes a second to level that has at least one directory entry pointing to directories of the first lower levels of the first address translation hierarchy, the second address translation hierarchy including levels of the first address translation hierarchy below the first to level;
wherein the second to level of the second address translation hierarchy includes an access permission indicator that is set differently from the access permission indicator in the first to level of the first translation hierarchy.
1 Assignment
0 Petitions
Accused Products
Abstract
A technique for “zero copy” transitive communication of data between virtual address domains maintains a translation table hierarchy for each domain. The hierarchy of each domain includes a portion corresponding to every other domain in the system, where the portion for any particular domain begins at the same offset in the virtual address space of every domain. For each domain, there is a source hierarchy used only by the domain itself, which provides read/write access to the addresses in that domain; and a target hierarchy which provides read-only access to that domain, for use only when another domain is the target of IDC from that domain. Only one instance of the target hierarchy of each domain is provided, for all other domains as targets of IDC from that domain. For further space savings the source and target translation table hierarchies can be combined at all but the top hierarchy level.
17 Citations
15 Claims
-
1. A method, comprising:
-
creating a first address translation table hierarchy for a first virtual address domain of a plurality of virtual address domains of a processing system; creating a second address translation table hierarchy for the first virtual address domain, for use when a second virtual address domain is a target of data communication from the first virtual address domain, the second address translation table hierarchy incorporating part of the first address translation table hierarchy; and using the second address translation table hierarchy to communicate data between the first and second virtual address domains, wherein the first address translation table hierarchy provides read-write permission to access a corresponding memory space, and the second address translation table hierarchy provides read-only permission to access the corresponding memory space; wherein the first address translation hierarchy includes a first to level, and first lower levels include at least a page directory level and a page table level, the page directory level including page directories comprising pointers to page tables of the page table level, the page tables comprising pointers to memory pages;
wherein the first top level includes an access permission indicator for the corresponding memory space, the access permission indicator governing access to the corresponding memory space regardless of permission indicators of the first lower levels;wherein the second address translation hierarchy includes a second to level that has at least one directory entry pointing to directories of the first lower levels of the first address translation hierarchy, the second address translation hierarchy including levels of the first address translation hierarchy below the first to level;
wherein the second to level of the second address translation hierarchy includes an access permission indicator that is set differently from the access permission indicator in the first to level of the first translation hierarchy. - View Dependent Claims (2, 3)
-
-
4. A method comprising:
-
operating a plurality of processing entities in a processing system, each of the processing entities having a separate virtual address domain of a plurality of virtual address domains; and maintaining a translation table hierarchy for each of the plurality of virtual address domains, for mapping between virtual addresses and physical addresses, wherein the translation table hierarchy of each domain includes a portion corresponding to every other domain of the plurality of virtual address domains, and wherein the portion corresponding to any given domain begins at the same offset in the virtual address space of each domain of the plurality of virtual address domains; wherein the translation table hierarchy for each of the domains includes; a source address translation table hierarchy for said domain that provides read-write permission to access a corresponding memory space, for use only by the corresponding processing entity; and a separate target address translation table hierarchy for said domain that provides read-only permission to access the corresponding memory space, for use by the processing entity of any other domain which is a target of communication from said processing entity; wherein the source address translation hierarchy includes a first to level, and first lower levels include at least a page directory level and a page table level, the page directory level including page directories comprising pointers to page tables of the page table level, the page tables comprising pointers to memory pages;
wherein the first top level includes an access permission indicator for the corresponding memory space, the access permission indicator governing access to the corresponding memory space regardless of permission indicators of the first lower levels;wherein the target address translation hierarchy includes a second to level that has at least one directory entry pointing to directories of the first lower levels of the source address translation hierarchy, the target address translation hierarchy including levels of the source address translation hierarchy below the first to level;
wherein the second to level of the target address translation hierarchy includes an access permission indicator that is set differently from the access permission indicator in the first to level of the source translation hierarchy. - View Dependent Claims (5)
-
-
6. A method comprising:
-
creating a plurality of virtual machines in a processing system, the plurality of virtual machines including a first virtual machine and a second virtual machine; creating a plurality of address translation table hierarchies for use in performing virtual address to physical address translation during communications between the first and second virtual machines, including creating a first address translation table hierarchy and a second address translation table hierarchy for the first virtual machine, for mapping between virtual addresses and physical addresses, wherein a portion of the first address translation table hierarchy is incorporated into the second address translation table hierarchy; and communicating data from the first virtual machine to the second virtual machine without copying the data, wherein said communicating includes determining a first virtual address of the data in a domain of the first virtual machine, modifying the first virtual address according to an offset of the second translation table hierarchy in a domain of the second virtual machine, to form a modified virtual address, passing the modified virtual address to the second virtual machine, and using the second address translation table hierarchy of the first virtual machine to map the modified virtual address to a physical address; wherein; the first address translation table hierarchy of the first virtual machine corresponds to the virtual address space of the first virtual machine with read-write permission; and the second address translation table hierarchy of the first virtual machine corresponds to the virtual address space of the first virtual machine with read-only permission; wherein the first address translation hierarchy includes a first to level, and first lower levels include at least a page directory level and a page table level, the page directory level including page directories comprising pointers to page tables of the page table level, the page tables comprising pointers to memory pages;
wherein the first top level includes an access permission indicator for the corresponding address space, the access permission indicator governing access to the corresponding address space regardless of permission indicators of the first lower levels;wherein the second address translation hierarchy includes a second to level that has at least one directory entry pointing to directories of the first lower levels of the first address translation hierarchy, the second address translation hierarchy including all levels of the first address translation hierarchy below the first to level;
wherein the second to level of the second address translation hierarchy includes an access permission indicator that is set differently from the access permission indicator in the first to level of the first translation hierarchy. - View Dependent Claims (7, 8)
-
-
9. A processing system comprising:
-
a processor; a plurality of processing entities, each of the processing entities having a separate one of a plurality of virtual address domains; and a storage medium storing code which, when executed by the processor, causes the processing system to perform operations including creating a source address translation table hierarchy corresponding to a virtual address space of a first virtual address domain, for use by the first virtual address domain, creating a target address translation table hierarchy corresponding to a virtual address space of the first virtual address domain, the target address translation table hierarchy for use by a second virtual address domain when the second virtual address domain is a target of communication from the first virtual address domain, the target address translation table hierarchy incorporating part of the source address translation table hierarchy; and using the target address translation table hierarchy to communicate data between the first and second virtual address domains; wherein; the source address translation table hierarchy of the first virtual address domain provides read-write permission to access a memory space of the first virtual address domain; and the target address translation table hierarchy of the first virtual address domain provides read-only permission to access the memory space of the first virtual address domain; wherein the source address translation hierarchy includes a first to level, and first lower levels including at least a page directory level and a page table level, the page directory level including page directories comprising pointers to page tables of the page table level, the page tables comprising pointers to memory pages;
wherein the first to level includes an access permission indicator for the corresponding memory space, the access permission indicator governing access to the corresponding memory space regardless of permission indicators of the first lower levels;wherein the target address translation hierarchy includes a second to level that has at least one directory entry pointing to directories of the first lower levels of the source address translation hierarchy, so that the target address translation hierarchy including all levels of the source address translation hierarchy below the first to level;
wherein the second to level of the target address translation hierarchy includes an access permission indicator that is set differently from the access permission indicator in the first to level of the source translation hierarchy. - View Dependent Claims (10, 11, 12)
-
-
13. A network storage server comprising:
-
a processor; a network interface through which to receive a data access request from a client; a storage interface through which to access a mass storage facility in response to the data access request; a plurality of processing entities, each having a separate one of a plurality of virtual address domains, collectively to implement network storage functions of the network storage server, each of the virtual address domains corresponding to a separate portion of a pseudo-global virtual address space; for each said virtual address domain, a source address translation table hierarchy for use by the corresponding processing entity, and a target address translation table hierarchy for use by another processing entity which is a communication target, the target address translation table hierarchy incorporating part of the source address translation table hierarchy; and code which when executed by the processor causes the target address translation table hierarchy of one of the domains to be used to translate a virtual address for communication of data between domains; wherein; the source address translation table hierarchy of each domain provides the corresponding processing entity with read-write permission to access a memory space of the domain; and the target address translation table hierarchy of each domain provides read-only permission to access the memory space of the domain; wherein the source address translation hierarchy includes a first to level, and first lower levels include at least a page directory level and a page table level, the page directory level including page directories comprising pointers to page tables of the page table level, the page tables comprising pointers to memory pages;
wherein the top level includes an access permission indicator for the corresponding memory space, the access permission indicator governing access to the corresponding memory space regardless of permission indicators of the first lower levels;wherein the target address translation hierarchy includes a second to level that has at least one directory entry pointing to directories of the first lower levels of the source address translation hierarchy, so that the target address translation hierarchy including all levels of the source address translation hierarchy below the first to level;
wherein the second to level of the target address translation hierarchy includes an access permission indicator that is set differently from the access permission indicator in the first to level of the source translation hierarchy. - View Dependent Claims (14, 15)
-
Specification