Apparatus and method for efficient sharing of virtual memory translations
First Claim
1. 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.
3 Assignments
0 Petitions
Accused Products
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.
-
Citations
19 Claims
-
1. 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. 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. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
Specification