System and method for providing efficient shared memory in a virtual memory system
First Claim
1. A method of sharing a virtual address space by multiple tasks in a computer memory management system, comprising the steps of:
- associating a virtual segment ID with an independent address space within said virtual address space shared by more than one of a plurality of tasks;
mapping said independent address space at an offset into an address space of each of said more than one of a plurality of tasks, wherein said offset is selectable and unique for each of said more than one of said plurality of tasks;
maintaining a data structure for said independent address space comprising said associated virtual segment ID, a control privilege parameter, and a location for each instance said independent address space was mapped into an address space of a task; and
translating a virtual address generated by a task to a physical address utilizing only said maintained data structure.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for allowing multiple tasks to share virtual memory areas, in a memory management system for a computer, uses an independent address space created such that it can be "attached" to multiple address spaces. Any change to the shared address space is reflected in all attached address spaces with just one operation to the shared address space. Entities in the shared address space require only one set of system resources. Since the same powerPC virtual segment ID is used for all attached address spaces, only one set of powerPC page table entries is needed. A feature is attaching shared memory with and without control privileges to provide protection; tasks with privilege can manipulate the address space using the same operations and base addresses as in the non-shared normal address space, and tasks with normal attachment can only reference the memory objects in the overlaid shared address space--memory objects can not be created or destroyed.
22 Citations
8 Claims
-
1. A method of sharing a virtual address space by multiple tasks in a computer memory management system, comprising the steps of:
-
associating a virtual segment ID with an independent address space within said virtual address space shared by more than one of a plurality of tasks; mapping said independent address space at an offset into an address space of each of said more than one of a plurality of tasks, wherein said offset is selectable and unique for each of said more than one of said plurality of tasks; maintaining a data structure for said independent address space comprising said associated virtual segment ID, a control privilege parameter, and a location for each instance said independent address space was mapped into an address space of a task; and translating a virtual address generated by a task to a physical address utilizing only said maintained data structure. - View Dependent Claims (2, 5, 6)
-
-
3. A computer system having a virtual address space shared by multiple tasks utilizing a computer memory management system, comprising:
-
means for associating a virtual segment ID with an independent address space within said virtual address space shared by more than one of a plurality of tasks; means for mapping said independent address space at an offset into an address space of each of said more than one of a plurality of tasks, wherein said offset is selectable and unique for each of said more than one of a plurality of tasks; means for maintaining a data structure for said independent address space comprising said associated virtual segment ID, a control privilege parameter, and a location for each instance said independent address space was mapped into an address space of a task; and means for translating a virtual address generated by a task to a physical address utilizing only said maintained data structure. - View Dependent Claims (4, 7, 8)
-
Specification