System and method for sharing physical memory among distinct computer environments
First Claim
1. A computer system comprising:
- a bus including address and data bus portions;
first and second operating systems resident within said computer system and using respective first and second virtual memory maps;
first and second page tables for translating virtual addresses of said first and second virtual memory maps into physical addresses of first and second physical memory maps, respectively;
a memory unit for physically storing information according to a third physical memory map wherein said first and second operating systems share said memory unit;
a detector circuit for detecting a memory access request and for reporting an indication of the operating system for which said memory access request is directed; and
an address translator circuit coupled to receive said indication from said detector circuit, coupled to receive physical addresses over said bus from said first and second operating systems and coupled to address said memory unit, said address translator in response to said indication for translating a physical address of said first physical memory map when said memory access request is performed on behalf of said first operating system and for passing through a physical address of said second physical memory map when said memory access request is performed on behalf of said second operating system.
11 Assignments
0 Petitions
Accused Products
Abstract
Two or more operating systems to share a same physical memory while operating simultaneously within a hybrid computer system, without requiring modifications to the program code of the operating systems or application programs. One embodiment of the present invention contains circuitry that is located between the operating systems and the physical memory within the hybrid computer system. In operation, these circuits receive a memory request for one of the operating systems together with the specific memory address requested and a signal indicating which operating system originated the memory access request. The circuit determines which operating system the memory access request is performed on behalf of. If the memory request is performed on behalf of predetermined first operating system, the received memory address is translated and sent to the physical memory of the computer system. This translation of the physical address is transparent to the first operating system. If a memory access request is detected for the second operating system, the present invention does not perform any address translation and the original memory address is forwarded to the physical memory. The present invention is able to detect memory access requests that are for a particular operating system by: 1) accesses that originate from the CPU where the operating system is running; and 2) accesses that originate from a peripheral or other external device but are performed on behalf of the particular operating system.
-
Citations
22 Claims
-
1. A computer system comprising:
-
a bus including address and data bus portions; first and second operating systems resident within said computer system and using respective first and second virtual memory maps; first and second page tables for translating virtual addresses of said first and second virtual memory maps into physical addresses of first and second physical memory maps, respectively; a memory unit for physically storing information according to a third physical memory map wherein said first and second operating systems share said memory unit; a detector circuit for detecting a memory access request and for reporting an indication of the operating system for which said memory access request is directed; and an address translator circuit coupled to receive said indication from said detector circuit, coupled to receive physical addresses over said bus from said first and second operating systems and coupled to address said memory unit, said address translator in response to said indication for translating a physical address of said first physical memory map when said memory access request is performed on behalf of said first operating system and for passing through a physical address of said second physical memory map when said memory access request is performed on behalf of said second operating system. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. In a computer system having a first processor and a second processor coupled to a bus including address and data bus portions, and first and second operating systems using respective first and second virtual memory maps, a circuit for sharing memory between said first and second operating systems comprising:
-
first and second page tables for translating virtual addresses of said first and second virtual memory maps into physical addresses of first and second physical memory maps, respectively; a memory unit for physically storing information according to a third physical memory map wherein said first and second operating systems share said memory unit; a detector circuit for detecting a memory access request and for reporting an indication of the operating system for which said memory access request is to be performed; and an address translator circuit coupled to receive said indication from said detector circuit, coupled to receive physical addresses over said bus from said first and second operating systems and coupled to address said memory unit, said address translator in response to said indication for translating a physical address of said first physical memory map when said memory access request is performed on behalf of said first operating system and for passing through a physical address of said second physical memory map when said memory access request is performed on behalf of said second operating system. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
-
16. In a computer system having a first processor and a second processor coupled to a bus, a memory unit coupled to bus, and first and second operating systems, a method for sharing said memory unit between said first and second operating systems comprising the steps of:
-
a) executing said first operating system on said first processor, said first operating system using a first virtual memory map and executing said second operating system on said second processor, said second operating system using a second virtual memory map; b) translating, respectively, virtual addresses of said first and second virtual memory maps into physical addresses of first and second physical memory maps; c) detecting a memory access request and reporting an indication of the operating system for which said memory access request is to be performed; and d) generating physical addresses of a third physical memory map with which to access said memory unit, step d) comprising the steps of; d1) responsive to said indication, translating a physical address of said first physical memory map when said memory access request is performed on behalf of said first operating system; and d2) responsive to said indication, passing through a physical address of said second physical memory map when said memory access request is performed on behalf of said second operating system; and e) responsive to step d), physically storing information into said memory unit according to physical addresses of said third physical memory map allowing said first and second operating systems to share said memory unit. - View Dependent Claims (17, 18, 19, 20, 21, 22)
-
Specification