IP Library Granted Patent US 7,937,556
Granted Patent B2
US 7,937,556 · App. 12/112,150 · Granted May 3, 2011

Minimizing TLB comparison size

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,937,556
App. No.
12/112,150
Granted
May 3, 2011
Kind
B2
Abstract

In one embodiment, a system comprises one or more registers configured to store a plurality of values that identify a virtual address space (collectively a tag), a translation lookaside buffer (TLB), and a control unit coupled to the TLB and the one or more registers. The control unit is configured to detect whether or not the tag has changed and in response to a change in the tag, map the changed tag to an identifier having fewer bits than the total number of bits in the tag, and provide the current identifier to the TLB. The TLB is configured to detect a hit/miss in response to the identifier. A similar method is also contemplated.

Claims (37)

1. A system, comprising:

one or more registers configured to store a plurality of values that identify a virtual address space;

a translation lookaside buffer (TLB);

a control unit coupled to the TLB and the one or more registers, wherein the control unit is configured to:

detect whether or not the values have changed; and

in response to a change in the values, map the changed values to an identifier having fewer bits than the total number of bits in the changed values, and provide the identifier to the TLB, wherein the TLB is configured to detect a hit/miss in response to the identifier.

2. The system of claim 1 , further comprising a memory associating different ones of the changed values to identifiers, and wherein the control unit is further configured to determining whether the changed values are present in the memory.

3. The system of claim 2 , wherein, if the changed values are not present, the control unit is further configured to associate, in the memory, the changed values to the identifier and select the identifier to provide to the TLB.

4. The system of claim 3 , wherein the control unit is further configured to invalidate TLB entries that store the identifier to which the changed values are being associated.

5. The system of claim 4 , wherein the control unit is configured to invalidate all the TLB entries.

6. The system of claim 1 , wherein a hit in the TLB occurs if the identifier matches a stored identifier in a TLB entry and a virtual page number of a translation request matches a stored virtual page number in the TLB entry, and wherein, in response to a miss, a new translation is loaded into the TLB that includes the identifier.

7. The system of claim 1 , wherein the values include a partition identifier.

8. The system of claim 1 , wherein the values include a context identifier.

9. The system of claim 1 , wherein the identifier includes at least enough bits to represent each process executing on a processor.

10. The system of claim 1 , wherein the identifier includes at least enough bits to represent each entry in the TLB.

11. The system of claim 2 , wherein the memory is content-addressable memory and a hit in a given entry results in an identifier equal to the entry number.

12. A method, comprising:

storing, in one or more registers, a plurality of values that identify a virtual address space;

detecting whether or not the values have changed; and

in response to a change in the values, mapping the changed values to an identifier having fewer bits than the total number of bits in the changed values, and

providing the current identifier to a TLB, wherein the TLB is configured to detect a hit/miss in response to the identifier.

13. The method of claim 12 , further comprising:

associating in a memory different ones of the changed values to identifiers; and

determining whether the changed values are present in the memory.

14. The method of claim 13 , further comprising:

if the changed values are not present, associating, in the memory, the changed values to the identifier; and

selecting the identifier to provide to the TLB.

15. The method of claim 12 , wherein a hit in the TLB occurs if the identifier matches a stored identifier in a TLB entry and a virtual page number of a translation request matches a stored virtual page number in the TLB entry, and wherein, in response to a miss, a new translation is loaded into the TLB that includes the identifier.

16. The method of claim 12 , wherein the values include a partition identifier.

17. The method of claim 12 , wherein the values include a context identifier.

18. The system of claim 13 , wherein the memory is content-addressable memory and a hit in a given entry results in an identifier equal to the entry number.

19. A processor comprising:

one or more registers configured to store a plurality of values that identify a virtual address space; and

a translation lookaside buffer (TLB) unit that is coupled to the one or more registers and is configured to:

detect whether or not the values have changed; and

map the changed values to a current identifier having fewer bits than a total number of bits in the changed values, and wherein the TLB unit comprises a TLB that is configured to map the current identifier and a virtual address input to a corresponding physical address.

20. The processor of claim 19 , wherein the TLB unit comprises a memory associating different ones of the values to identifiers, and wherein the TLB unit is further configured to determining whether the changed values are present in the memory.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037311/0101 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2008
From: JORDAN, PAUL J.; SHAH, MANISH K.; GROHOSKI, GREGORY F.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 020878/0140 →