IP Library Granted Patent US 7,822,943
Granted Patent B2
US 7,822,943 · App. 12/185,587 · Granted Oct 26, 2010

Microprocessor with improved data stream prefetching using multiple transaction look-aside buffers (TLBs)

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,822,943
App. No.
12/185,587
Granted
Oct 26, 2010
Kind
B2
Abstract

Systems, methods and computer program products for improving data stream prefetching in a microprocessor are described herein. The method includes the steps of: 1) translating an address associated with a first type of memory access request in a first translation look-aside buffer (TLB) to provide an address translation associated with only a first type of memory access request; 2) translating an address associated with a second type or memory access request in a second translation look-aside buffer a second TLB to provide an address translation associated with only a second type of memory access request, wherein the first and second types are different; 3) receiving first status information from the first TLB; 4) receiving second status information from the second TLB; 5) providing a control signal to a selector based on the received first and second status information, the control signal indicating whether to use the address translation from the first TLB or the second TLB; and 6) selecting whether to use the address translation from the first TLB or second TLB in according with the control signal.

Claims (37)

1. A microprocessor, comprising:

a first translation look-aside buffer (TLB) that is configured to provide an address translation associated with only a first type of memory access request, and to output first status information related to the operation of the first TLB;

a second TLB that is configured to provide an address translation associated with only a second type of memory access request, and to output second status information related to the operation of the second TLB, wherein the second type of memory access request is a stream prefetch request, and the first and second types are different;

control logic to receive first status information and second status information and to provide a control signal indicating whether to use the address translation from the first TLB or the second TLB; and

a selector to receive the control signal to select whether to use the address translation from the first TLB or second TLB.

2. The microprocessor of claim 1 having a plurality of stream prefetch units, further comprising a second selector configured to select one of the plurality of stream prefetch units from which to obtain address translation information associated with only the second type of memory access request.

3. The microprocessor of claim 1 , wherein the first status information includes a first miss signal indicating whether an address hits in the first TLB, and the second status information includes a second miss signal indicating whether an address hits in the second TLB.

4. The microprocessor of claim 1 , further comprising a plurality of second TLBs associated with the second type of memory request.

5. The microprocessor of claim 1 , wherein the control logic outputs a first update signal, corresponding to the first TLB, to update TLB information for the first TLB and outputs a second update signal, corresponding to the second TLB, to update TLB information for the second TLB.

6. The microprocessor of claim 1 , further comprising:

a third translation look-aside buffer (TLB) configured to provide an address translation associated with the first type of memory access request or the second type of memory request, and to output first status information related to the operation of the first TLB; and

a third selector to select a first type of memory access request or a second type of memory access request as input to the third TLB.

7. A method for improving data stream prefetching in a microprocessor, comprising:

translating an address associated with a first type of memory access request in a first translation look-aside buffer (TLB) that is configured to provide an address translation associated with only a first type of memory access request;

translating an address associated with a second type or memory access request in a second translation look-aside buffer a second TLB that is configured to provide an address translation associated with only a second type of memory access request, wherein the second type of memory access request is a stream prefetch request, and the first and second types are different;

receiving first status information from the first TLB;

receiving second status information from the second TLB;

providing a control signal to a selector based on the received first and second status information, the control signal indicating whether to use the address translation from the first TLB or the second TLB; and

selecting whether to use the address translation from the first TLB or second TLB in according with the control signal.

8. The method of claim 7 , wherein the microprocessor has a plurality of stream prefetch units, further comprising selecting a one of the plurality of stream prefetch units from which to obtain address translation information associated with only the second type of memory access request.

9. The method of claim 7 , wherein the first status information includes a first miss signal indicating whether an address hits in the first TLB, and the second status information includes a second miss signal indicating whether an address hits in the second TLB.

10. The method of claim 7 , furthering comprising updating information in the first and second TLBs.

11. The method of claim 7 , further comprising:

translating an address associated with the first type of memory access request or the second type of memory request in a third TLB, the third TLB associated with memory accesses of the first or second types; and

selecting a first type of memory access request or a second type of memory access request as input to the third TLB.

12. A computer readable storage medium having thereon computer readable program code to generate a processor, the computer-readable program code comprising:

computer-readable program code to generate a first translation look-aside buffer (TLB) that is configured to provide an address translation associated with only a first type of memory access request, and to output first status information related to the operation of the first TLB;

computer-readable program code to generate a second TLB that is configured to provide an address translation associated with only a second type of memory access request, and to output second status information related to the operation of the second TLB, wherein the second type of memory access request is a stream prefetch request, and the first and second types are different;

computer-readable program code to generate control logic to receive first status information and second status information and to provide a control signal indicating whether to use the address translation from the first TLB or the second TLB; and

computer-readable program code to generate a selector to receive the control signal to select whether to use the address translation from the first TLB or second TLB.

13. The computer-readable storage medium of claim 12 , wherein the processor has a plurality of stream prefetch units, further comprising computer-readable program code to generate a second selector to determine a one of the plurality of stream prefetch units from which to obtain address translation information associated with only the second type of memory access request.

14. The computer-readable storage medium of claim 12 , wherein the first status information includes a first miss signal indicating whether an address hits in the first TLB, and the second status information includes a second miss signal indicating whether an address hits in the second TLB.

15. The computer-readable storage medium of claim 12 , further comprising computer-readable program code to generate a plurality of second TLBs associated with the second type of memory request.

16. The computer-readable storage medium of claim 12 , wherein the control logic outputs a first update signal, corresponding to the first TLB, to update TLB information for the first TLB and outputs a second update signal, corresponding to the second TLB, to update TLB information for the second TLB.

17. The computer-readable storage medium of claim 12 , further comprising:

computer-readable program code to generate a third TLB to translate an address associated with the first type of memory access request or the second type of memory request in a third TLB, the third TLB associated with memory accesses of the first or second types; and

computer-readable program code to generate a third selector to select a first type of memory access request or a second type of memory access request as input to the third TLB.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2014
From: BRIDGE CROSSING, LLC
To: ARM FINANCE OVERSEAS LIMITED
Reel/Frame 033074/0058 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 12, 2013
From: MIPS TECHNOLOGIES, INC.
To: BRIDGE CROSSING, LLC
Reel/Frame 030202/0440 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2010
From: DIEFENDORFF, KEITH E.
To: MIPS TECHNOLOGIES, INC.
Reel/Frame 024983/0825 →