IP Library Granted Patent US 7,472,253
Granted Patent B1
US 7,472,253 · App. 11/525,669 · Granted Dec 30, 2008

System and method for managing table lookaside buffer performance

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,472,253
App. No.
11/525,669
Granted
Dec 30, 2008
Kind
B1
Abstract

A computer system comprising a main memory and a processor die coupled to the main memory by a first bus. The processor die includes a processor core coupled to a first cache memory and multiple base and bounds registers (BBRS). Each of BBRs have a base virtual address field, an ending virtual address field and a base physical address field. The first cache memory has a table lookaside buffer (TLB) entry stored therein.

Claims (47)

1. A computer system comprising:

a main memory; and

a processor die coupled to the main memory by a first bus, the processor die including a processor core coupled to a first cache memory and a plurality of base and bounds registers, each one of the plurality of base and bounds registers having a base virtual address field, an ending virtual address field and a base physical address field, the first cache memory having a table lookaside buffer entry stored therein.

2. The computer system of claim 1 , wherein the base virtual address field for each one of the plurality of base and bounds registers includes a first virtual address for a corresponding page of main memory, wherein the ending virtual address field for each one of the plurality of base and bounds registers includes a size of the corresponding page of main memory, and wherein the base physical address field for each one of the plurality of base and bounds registers includes a first physical address of the corresponding page of main memory.

3. The computer system of claim 1 , wherein each one of the plurality of base and bounds registers includes a flags field.

4. The computer system of claim 3 , wherein the flags field includes a status of the corresponding page of main memory.

5. The computer system of claim 1 , further comprising:

logic for determining the selected virtual address is not within a reach of a table lookaside buffer entry that is currently loaded in the table lookaside buffer;

logic for identifying one of the plurality of the base and bounds register entries that includes the selected virtual address if one of a plurality of base and bounds register entries includes the selected virtual address;

logic for calculating a new table lookaside buffer entry that includes the selected virtual address; and

logic for loading the new table lookaside buffer entry in the table lookaside buffer.

6. The computer system of claim 1 , wherein the processor die includes:

logic for determining the selected virtual address is not within a reach of a table lookaside buffer entry that is currently loaded in the table lookaside buffer;

logic for identifying one of the plurality of the base and bounds register entries that includes the selected virtual address if one of a plurality of base and bounds register entries includes the selected virtual address;

logic for calculating a new table lookaside buffer entry that includes the selected virtual address; and

logic for loading the new table lookaside buffer entry in the table lookaside buffer.

7. The computer system of claim 1 , further comprising a second cache memory.

8. The computer system of claim 7 , wherein the second cache memory includes at least one additional entry of the table lookaside buffer.

9. The computer system of claim 1 , wherein the main memory includes at least one additional entry of the table lookaside buffer.

10. A method of translating a selected virtual address in a memory reference comprising:

determining the selected virtual address is not within a reach of a table lookaside buffer entry that is currently loaded in the table lookaside buffer;

if one of a plurality of base and bounds register entries includes the selected virtual address, then identifying one of the plurality of the base and bounds register entries that includes the selected virtual address;

calculating a new table lookaside buffer entry that includes the selected virtual address; and

loading the new table lookaside buffer entry in the table lookaside buffer.

11. The method of claim 10 , wherein if the selected virtual address is within a reach of a table lookaside buffer entry that is currently loaded in the table lookaside buffer, then:

translating the selected virtual address to a corresponding physical address; and

accessing the memory location at the corresponding physical address.

12. The method of claim 10 , wherein if none of the plurality of base and bounds register entries includes the selected virtual address, then:

loading a next table look aside buffer entry in the table lookaside buffer; and

examining the table lookaside buffer to determine if the selected virtual address is within a reach of the table lookaside buffer entry that is currently loaded in the table lookaside buffer.

13. The method of claim 10 , wherein each one of the plurality of base and bounds registers includes a base virtual address field, an ending virtual address field and a base physical address field.

14. The method of claim 13 , wherein the base virtual address field for each one of the plurality of base and bounds registers includes a first virtual address for a corresponding page of main memory, wherein the ending virtual address field, for each one of the plurality of base and bounds registers includes a size of the corresponding page of main memory, and wherein the base physical address field for each one of the plurality of base and bounds registers includes a first physical address of the corresponding page of main memory.

15. The method of claim 10 , wherein each one of the plurality of base and bounds register entries includes a flags field.

16. The method of claim 15 , wherein the flags field includes at least one status of the corresponding base and bounds entry.

17. The method of claim 16 , wherein the at least one status of the corresponding base and bounds entry includes at least one of a read status, and write status, and read-only status, a read-write status, a referenced status or a modified status.

18. A method for processing an instruction comprising:

determining the selected virtual address is not within a reach of a table lookaside buffer entry that is currently loaded in the table lookaside buffer;

if one of a plurality of base and bounds register entries includes the selected virtual address, then:

identifying one of the plurality of the base and bounds register entries that includes the selected virtual address;

calculating a new table lookaside buffer entry that includes the selected virtual address; and

loading the new table lookaside buffer entry in the table lookaside buffer;

if the selected virtual address is within a reach of a table lookaside buffer entry that is currently loaded in the table lookaside buffer, then:

translating the selected virtual address to a corresponding physical address; and

accessing the memory location at the corresponding physical address;

if none of the plurality of base and bounds register entries includes the selected virtual address, then:

loading a next table look aside buffer entry in the table lookaside buffer; and

examining the table lookaside buffer to determine if the selected virtual address is within a reach of the table lookaside buffer entry that is currently loaded in the table lookaside buffer.

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 037303/0926 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 16, 2006
From: CAMERON, GEORGE; JONES, BLAKE; BONWICK, JEFFREY
To: SUN MICROSYSTEMS, INC.
Reel/Frame 018600/0645 →