← Back to Patent Explorer
US6314501B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory

Assignee: Unisys Corp
•
Filing: 1998-12-18
•
Granted: 2001-11-06
•
Expires: 2018-12-18
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A computer system comprises a plurality of processing modules that can be configured into different partitions within the computer system, and a main memory. Each partition operates under the control of a separate operating system. At least one shared memory window is defined within the main memory to which multiple partitions have shared access, and each partition may also be assigned an exclusive memory window. Program code executing on different partitions enables those partitions to communicate with each other through the shared memory window. Means are also provided for mapping the physical address space of the processors in each partition to the respective exclusive memory windows assigned to each partition, so that the exclusive memory windows assigned to each partition appear to the respective operating systems executing on those partitions as if they all start at the same base address.

Inventors

  • 👤 Robert C. Gulick
  • 👤 Douglas E. Morrissey
  • 👤 Charles Raymond Caldarale
  • 👤 Hans Christian Mikkelsen
  • 👤 Bruce Alan Vessey
  • 👤 Sharon M Mauer
  • 👤 Craig F. Russ
  • 👤 Eugene W. Troxell
  • 👤 Maureen P. Connell
  • 👤 James R. Hunter

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-24 02:05
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/54; G06F9/544

Claims Analysis

Total Claims: 32
Claim 1
Independent Claim 163 words
A computer system comprising: a plurality of processing modules, each processing module comprising a plurality of processors, groups of one or more processing modules being configured as separate partitions within the computer system, each partition operating under the control of a separate operating system; a main memory within which each partition is assigned an exclusive memory window to which only the processing modules of that partition have access and in which the operating system of that partition operates; each processing module further comprising: a register that holds an offset (R L OS ) from the base physical address of main memory to the start of the exclusive memory window assigned to the partition of which the processing module is a part; and an adder for adding the offset (R L OS ) to each reference by a processor of that processing module to a location within its physical address space, thereby relocating those references to their corresponding locations within the exclusive memory window.
Claim 2
Dependent Claim 163 words
A computer system comprising: a plurality of processing modules, each processing module comprising a plurality of processors, groups of one or more processing modules being configured as separate partitions within the computer system, each partition operating under the control of a separate operating system; a main memory within which each partition is assigned an exclusive memory window to which only the processing modules of that partition have access and in which the operating system of that partition operates; each processing module further comprising: a register that holds an offset (R L OS ) from the base physical address of main memory to the start of the exclusive memory window assigned to the partition of which the processing module is a part; and an adder for adding the offset (R L OS ) to each reference by a processor of that processing module to a location within its physical address space, thereby relocating those references to their corresponding locations within the exclusive memory window.
Claim 3
Dependent Claim 30 words
The computer system recited in claim 1 , wherein each exclusive memory window is made to appear to its respective operating systems as having a base physical address of zero.
Claim 4
Dependent Claim 88 words
The computer system recited in claim 1 , wherein the physical address space of the processors of a given partition may contain a range of addresses unavailable for memory storage, the unavailable range defining a memory hole, addresses above the memory hole defining a high memory range and addresses below the memory hole defining a low memory range, the computer system further comprising means for reclaiming for other uses that portion of the exclusive memory window of said given partition that would otherwise correspond to the memory hole.
Claim 5
Dependent Claim 160 words
The computer system recited in claim 3 , wherein said means for reclaiming comprises for each processing module of the partition, a register that holds a value (R C OS ) representing the size of the memory hole; and wherein said adder (i) adds the offset (R L OS ) to each reference by a processor in the partition to a location within the low memory range of its physical address space, thereby relocating those references to their corresponding locations within the exclusive memory window, and (ii) adds the offset minus the value representing the size of the memory hole (R L OS −R C OS ) to each reference by a processor in the partition to a location within the high memory range of its physical address space, thereby relocating those references to their corresponding locations within the exclusive memory window and reclaiming that portion of the exclusive memory window that would otherwise have corresponded to the memory hole.
Claim 6
Dependent Claim 164 words
The computer system recited in claim 1 , wherein the main memory further comprises a shared memory window separate from the exclusive memory windows, and wherein each processing module of a given partition further comprises: a register that holds an offset (S BASE OS ) from the base address of the physical address space of the processors in said given partition to the start of a designated portion of that physical address space to which the shared memory window is to be mapped; a register that holds an offset (S BASE MSU ) from the base address of the main memory to the start of the shared memory window within the main memory; and wherein said adder adds the difference between the offsets (S BASE MSU −S BASE OS ) to each reference by a processor in said given partition to a location within said designated portion, thereby relocating those references to their corresponding locations within the shared memory window of the main memory.
Claim 7
Dependent Claim 21 words
The computer system recited in claim 1 , wherein ones of the partitions operate under the control of different operating systems.
Claim 8
Dependent Claim 25 words
The computer system recited in claim 1 , wherein ones of the partitions operate under the control of different instances of a same operating system.
Claim 9
Dependent Claim 31 words
The computer system recited in claim 5 further comprising: program code, executing on said plurality of partitions, that enables those partitions to communicate with each other through the shared memory window.
Claim 10
Dependent Claim 21 words
The computer system recited in claim 8 , wherein ones of the partitions operate under the control of different operating systems.
Claim 11
Dependent Claim 25 words
The computer system recited in claim 8 , wherein ones of the partitions operate under the control of different instances of a same operating system.
Claim 12
Dependent Claim 45 words
The computer system recited in claim 8 , wherein said program code implements a process by which a sending partition generates an inter-processor interrupt on a receiving partition to signal the receiving partition that information is being transferred to it through the shared memory window.
Claim 13
Dependent Claim 47 words
The computer system recited in claim 11 , wherein the shared memory window comprises a set of input queues associated with each partition, each input queue of the set associated with a given partition corresponding to another partition and storing entries representing communications from that other partition.
Claim 14
Dependent Claim 37 words
The computer system recited in claim 12 , wherein the shared memory window further comprises a plurality of pages of memory that can be allocated to the partitions, as needed, to facilitate communication of information between them.
Claim 15
Dependent Claim 38 words
The computer system recited in claim 13 , wherein each partition may have ownership rights in a particular page, and wherein the page has a header containing information that specifies which partitions have ownership rights in the page.
Claim 16
Dependent Claim 56 words
The computer system recited in claim 14 , wherein the header of the page further comprises a lock field by which one partition may acquire exclusive access to a page in order to update ownership information in the header of the page, thereby providing a mechanism to synchronize multiple accesses to the page by different partitions.
Claim 17
Dependent Claim 58 words
The computer system recited in claim 15 , wherein the shared memory window has a system-wide lock field associated with it by which one partition may acquire exclusive access to the shared memory pages in order to allocate one or more pages, thereby providing a mechanism to synchronize multiple requests for allocation of memory pages by different partitions.
Claim 18
Dependent Claim 33 words
The computer system recited in claim 15 , wherein the ownership of a page can be updated by acquiring the lock field of that page, without having to acquire the system-wide lock field.
Claim 19
Dependent Claim 81 words
The computer system recited in claim 12 , wherein in order for one partition (a sending partition) to communicate with another partition (a receiving partition), the program code on the sending partition: (i) causes an entry to be created in the input queue of the receiving partition that corresponds to the sending partition; and (ii) causes an inter-processor interrupt to be generated on the receiving partition to signal the receiving partition that the entry has been created in that input queue.
Claim 20
Dependent Claim 66 words
The computer system recited in claim 18 , wherein when the inter-processor interrupt is detected on the receiving partition, the program code on the receiving partition: (i) causes each of its input queues to be examined to determine which of the input queues contain entries representing communications from other partitions; and (ii) causes any such entries to be extracted from the input queues that contain them.
Claim 21
Dependent Claim 58 words
The computer system recited in claim 12 , wherein each input queue is capable of storing a pre-defined number of entries and contains an overflow flag that is caused to be set by a sending partition whenever the input queue becomes full, and which is reset by a receiving partition whenever entries are extracted from the input queue.
Claim 22
Dependent Claim 47 words
The computer system recited in claim 8 , wherein the program code implements a polling process by which each partition polls an area within the shared memory window to determine whether any communications intended for it have been placed in the shared memory window by another partition.
Claim 23
Dependent Claim 76 words
The computer system recited in claim 21 , wherein the area comprises a plurality of output queues, one for each partition, the output queue for a given partition indicating whether that partition has placed in the shared memory window any communications intended for any of the other partitions, each partition polling the output queues of the other partitions to determine whether those other partitions have placed any communications intended for it in the shared memory window.
Claim 24
Dependent Claim 51 words
The computer system recited in claim 22 , wherein for any communications placed in the shared memory window by a sending partition and intended to be received by another partition, the output queue of the sending partition specifies the location within the shared memory window of a buffer containing that communication.
Claim 25
Dependent Claim 29 words
The computer system recited in claim 23 , wherein each partition is allocated a separate pool of message buffers in which it may place communications intended for other partitions.
Claim 26
Dependent Claim 181 words
In a computer system comprising (i) a plurality of processing modules, each processing module comprising a plurality of processors, groups of one or more processing modules being configured as separate partitions within the computer system, each partition operating under the control of a separate operating system, and (ii) a main memory within which each partition is assigned an exclusive memory window to which only that partition has access and in which the operating system of that partition operates, a method for making the exclusive memory windows of each partition appear to their respective operating systems as having a same base physical address in the main memory, said method comprising, for each partition: storing a value representing an offset (R L OS ) from the base physical address of the main memory to the start of the exclusive memory window assigned to that partition; and adding the offset (R L OS ) to each reference by a processor in that partition to a location within its physical address space, thereby relocating those references to their corresponding locations within the exclusive memory window.
Claim 27
Dependent Claim 181 words
In a computer system comprising (i) a plurality of processing modules, each processing module comprising a plurality of processors, groups of one or more processing modules being configured as separate partitions within the computer system, each partition operating under the control of a separate operating system, and (ii) a main memory within which each partition is assigned an exclusive memory window to which only that partition has access and in which the operating system of that partition operates, a method for making the exclusive memory windows of each partition appear to their respective operating systems as having a same base physical address in the main memory, said method comprising, for each partition: storing a value representing an offset (R L OS ) from the base physical address of the main memory to the start of the exclusive memory window assigned to that partition; and adding the offset (R L OS ) to each reference by a processor in that partition to a location within its physical address space, thereby relocating those references to their corresponding locations within the exclusive memory window.
Claim 28
Dependent Claim 91 words
The method recited in claim 25 , wherein the physical address space of the processors of a given partition may contain a range of addresses unavailable for memory storage, the unavailable range defining a memory hole, addresses above the memory hole defining a high memory range and addresses below the memory hole defining a low memory range, said method further comprising reclaiming for other uses that portion of the exclusive memory window of said given partition that would otherwise correspond to the memory hole as a result of said relocating step.
Claim 29
Dependent Claim 174 words
The method recited in claim 26 , wherein said relocating and reclaiming steps comprise, for each partition: storing a value representing an offset (R L OS ) from the base physical address of main memory to the start of the exclusive memory window assigned to that partition; storing a value (R C OS ) representing the size of the memory hole; adding the offset (R L OS ) to each reference by a processor in that partition to a location within the low memory range of its physical address space, thereby relocating those references to their corresponding locations within the exclusive memory window; and adding the offset minus the size of the memory hole (R L OS −R C OS ) to each reference by a processor in that partition to a location within the high memory range of its physical address space, thereby relocating those references to their corresponding locations within the exclusive memory window and reclaiming that portion of the exclusive memory window that would otherwise have corresponded to the memory hole.
Claim 30
Dependent Claim 92 words
The method recited in claim 25 , wherein the main memory further comprises a shared memory window separate from the exclusive memory windows, and wherein said method further comprises: designating, on each partition, a portion of the physical address space of the processors of that partition to correspond to the shared memory window within the main memory; and relocating any reference by a processor of a partition to a location within the designated portion of its physical address space to the corresponding location within the shared memory window within the main memory.
Claim 31
Dependent Claim 153 words
The method recited in claim 28 , wherein said step of relocating a reference by a processor on a partition to the designated portion of its physical address to the corresponding location in the shared memory window, comprises: storing a value representing an offset (S BASE OS ) from the base address of the physical address space of the processor on that partition to the start of said designated portion of that physical address space; storing a value representing an offset (S BASE MSU ) from the base address of the main memory to the start of the shared memory window within the main memory; and adding the difference between the stored offsets (S BASE MSU −S BASE OS ) to any reference by a processor in that partition to a location within the designated portion, thereby relocating those references to their corresponding locations within the shared memory window of the main memory.
Claim 32
Dependent Claim 29 words
The method recited in claim 25 , wherein each exclusive memory window is made to appear to its respective operating system as having a base physical address of zero.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-11-05 2005-05-07 2005-11-06 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-11-05 2009-05-07 2009-11-06 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-11-05 2013-05-07 2013-11-06 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag