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

Apparatus and method for efficient sharing of virtual memory translations

Assignee: Oracle America Inc
•
Filing: 1994-11-02
•
Granted: 1997-05-13
•
Expires: 2014-11-02
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus to share virtual memory translations in a computer is described. The apparatus includes an operating system that runs in conjunction with a central processing unit. The operating system is programmed to include an address identification routine to identify distinct virtual memory translation entries, associated with a plurality of distinct processes running on the computer, that map to one or more common physical memory page addresses. The operating system also includes a mask assignment routine to assign a first mask value to the distinct virtual memory translation entries, and a write routine to write, to a translation-lookaside buffer or a page table, the distinct virtual memory translation entries as a single address associated with the first mask value. A comparison mechanism is used to compare a second mask value of a translation-request virtual memory translation value to the first mask value to determine whether the second mask value corresponds to said first mask value. If the two mask values correspond, then the single address associated with the first mask value is used as a virtual memory translation address.

Inventors

  • 👤 Madhusudhan Talluri
  • 👤 Yousef A. Khalidi

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 23:02
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/10; G06F12/1027; G06F12/06; G06F9/00; G06F9/06; G06F9/22; G06F9/26

Claims Analysis

Total Claims: 21
Claim 1
Independent Claim 137 words
A method of sharing virtual memory translations, said method comprising the steps of: identifying a plurality of distinct virtual memory translation entries, associated with a plurality of distinct processes running on a computer, that map to a common physical memory page address; defining said plurality of distinct virtual memory translation entries as an equivalency class; assigning a first mask value to said plurality of distinct virtual memory translation entries; storing said plurality of distinct virtual memory translation entries as a single address associated with said first mask value; and comparing a second mask value of a translation-request virtual memory translation value to said first mask value to determine whether said second mask value corresponds to said first mask value and thereby determine whether said translation-request virtual memory translation value maps to said common physical memory page address.
Claim 2
Independent Claim 137 words
A method of sharing virtual memory translations, said method comprising the steps of: identifying a plurality of distinct virtual memory translation entries, associated with a plurality of distinct processes running on a computer, that map to a common physical memory page address; defining said plurality of distinct virtual memory translation entries as an equivalency class; assigning a first mask value to said plurality of distinct virtual memory translation entries; storing said plurality of distinct virtual memory translation entries as a single address associated with said first mask value; and comparing a second mask value of a translation-request virtual memory translation value to said first mask value to determine whether said second mask value corresponds to said first mask value and thereby determine whether said translation-request virtual memory translation value maps to said common physical memory page address.
Claim 3
Dependent Claim 44 words
The method of claim 1 wherein said identifying step includes the step of identifying a plurality of distinct virtual memory translation entries, associated with a plurality of distinct processes running on a computer, that map to a common set of physical memory page addresses.
Claim 4
Dependent Claim 19 words
The method of claim 1 further comprising the step of identifying said equivalency class with an equivalency class bit.
Claim 5
Dependent Claim 28 words
The method of claim 3 further comprising the step of combining said equivalency class bit with said first mask value to form a context memory translation entry word.
Claim 6
Dependent Claim 26 words
The method of claim 1 wherein said storing step includes the step of storing said single address and said first mask value in a translation-lookaside buffer.
Claim 7
Dependent Claim 15 words
The method of claim 1 wherein said comparing step is performed with a translation-lookaside buffer.
Claim 8
Dependent Claim 26 words
The method of claim 1 wherein said storing step includes the step of storing said single address and said first mask value in a page table.
Claim 9
Dependent Claim 17 words
The method of claim 1 wherein said comparing step is performed with a page table search program.
Claim 10
Dependent Claim 193 words
A computer that shares virtual memory translations, said computer comprising: a central processing unit; an operating system executing in conjunction with said central processing unit, said operating system being programmed to include an address identification routine to identify a plurality of distinct virtual memory translation entries, associated with a plurality of distinct processes running on said computer, that map to one or more common physical memory page addresses, said address identification routine defining said plurality of distinct virtual memory translation entries as an equivalency class, a mask assignment routine to assign a first mask value to said plurality of distinct virtual memory translation entries, and a write routine to write said plurality of distinct virtual memory translation entries as a single address associated with said first mask value; and a comparison mechanism, operating in conjunction with said central processing unit and said operating system, to compare a second mask value of a translation-request virtual memory translation value to said first mask value to determine whether said second mask value corresponds to said first mask value and thereby determine whether said translation-request virtual memory translation value corresponds to said common physical memory page address.
Claim 11
Dependent Claim 193 words
A computer that shares virtual memory translations, said computer comprising: a central processing unit; an operating system executing in conjunction with said central processing unit, said operating system being programmed to include an address identification routine to identify a plurality of distinct virtual memory translation entries, associated with a plurality of distinct processes running on said computer, that map to one or more common physical memory page addresses, said address identification routine defining said plurality of distinct virtual memory translation entries as an equivalency class, a mask assignment routine to assign a first mask value to said plurality of distinct virtual memory translation entries, and a write routine to write said plurality of distinct virtual memory translation entries as a single address associated with said first mask value; and a comparison mechanism, operating in conjunction with said central processing unit and said operating system, to compare a second mask value of a translation-request virtual memory translation value to said first mask value to determine whether said second mask value corresponds to said first mask value and thereby determine whether said translation-request virtual memory translation value corresponds to said common physical memory page address.
Claim 12
Dependent Claim 21 words
The computer of claim 9 wherein said operating system is programmed to identify said equivalency class with an equivalency class bit.
Claim 13
Dependent Claim 30 words
The computer of claim 10 wherein said operating system is programmed to combine said equivalency class bit with said first mask value to form a context memory translation entry word.
Claim 14
Dependent Claim 37 words
The computer of claim 10 wherein said operating system is programmed to combine said equivalency class bit with said first mask value to form a context memory translation entry word corresponding to a plurality of equivalency classes.
Claim 15
Dependent Claim 20 words
The computer of claim 11 wherein said single address and said first mask value are written to a translation-lookaside buffer.
Claim 16
Dependent Claim 15 words
The computer of claim 13 wherein said translation-lookaside buffer is a fully associative translation-lookaside buffer.
Claim 17
Dependent Claim 14 words
The computer of claim 13 wherein said translation-lookaside buffer is a set-associative translation-lookaside buffer.
Claim 18
Dependent Claim 35 words
The computer of claim 13 wherein said translation-lookaside buffer also stores a context identification value, a virtual address value, and a physical page value in addition to said single address and said first mask value.
Claim 19
Dependent Claim 13 words
The computer of claim 11 wherein said comparison mechanism is a translation-lookaside buffer.
Claim 20
Dependent Claim 20 words
The computer of claim 11 wherein said single address and said first mask value are written to a page table.
Claim 21
Dependent Claim 15 words
The computer of claim 11 wherein said comparison mechanism is a page table search program.

References Cited (Backward Citations)

US4654790A Cited
US4797814A Cited
US5440708A Cited
US5386527A Cited
US5437017A Cited
US5440710A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag