IP Library Granted Patent US 9,348,754
Granted Patent B2
US 9,348,754 · App. 13/649,469 · Granted May 24, 2016

Systems and methods for implementing weak stream software data and instruction prefetching using a hardware data prefetcher

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 9,348,754
App. No.
13/649,469
Granted
May 24, 2016
Kind
B2
Abstract

A method for weak stream software data and instruction prefetching using a hardware data prefetcher is disclosed. A method includes, determining if software includes software prefetch instructions, using a hardware data prefetcher, and, accessing the software prefetch instructions if the software includes software prefetch instructions. Using the hardware data prefetcher, weak stream software data and instruction prefetching operations are executed based on the software prefetch instructions, free of training operations.

Claims (32)

1. A method for weak stream software data and instruction prefetching using a hardware data prefetcher, comprising:

using said hardware data prefetcher, determining if said software comprises software prefetch instructions;

if said software comprises software prefetch instructions, accessing said software prefetch instructions; and

using said hardware data prefetcher, executing weak stream software data and instruction prefetching operations based on said software prefetch instructions, wherein said weak stream software data and instruction prefetching operations comprise simultaneously prefetching for a plurality of streams and dropping prefetching for at least one stream to free up capacity for a new stream.

2. The method of claim 1 wherein said software prefetch instructions are located at a predetermined place in the software.

3. The method of claim 1 wherein said software prefetch instructions comprise a starting address, a stride and a number of accesses.

4. The method of claim 1 wherein said stream prefetching operations are performed free of a learning period.

5. The method of claim 1 wherein if said software does not comprise prefetch instructions stride based prefetching operations are executed as a part of a learning period.

6. The method of claim 1 wherein said number of accesses is greater than zero and less than 31.

7. A prefetcher, comprising:

a system for weak stream software data and instruction prefetching using a hardware data prefetcher comprising:

a determiner for determining if said software comprises software prefetch instructions;

an accessor for, if said software comprises software prefetch instructions, accessing said software prefetch instructions; and

an executor for executing weak stream software data and instruction prefetching operations based on said software prefetch instructions, wherein said weak stream software data and instruction prefetching operations comprise simultaneously prefetching for a plurality of streams and dropping prefetching for at least one stream to free up capacity for a new stream.

8. The prefetcher of claim 7 wherein said software prefetch instructions correspond to a data and/or instruction access pattern.

9. The prefetcher of claim 7 wherein said software prefetch instructions are located at a predetermined place in the software.

10. The prefetcher of claim 7 wherein said software prefetch instructions comprise a starting address, a stride and a access number.

11. The prefetcher of claim 7 wherein said weak stream prefetching operations are performed free of a learning period.

12. The prefetcher of claim 7 wherein if said software does not comprise prefetch instructions then stride based prefetching operations are executed as a part of a learning period.

13. The prefetcher of claim 7 wherein said endpoint is greater than zero and less than 31.

14. A processor comprising:

cache components; and

a prefetcher, comprising:

a system for weak stream software data and instruction prefetching using a hardware data prefetcher comprising:

a determiner for determining if said software comprises software prefetch instructions;

an accessor for, if said software comprises software prefetch instructions, accessing said software prefetch instructions; and

an executor for executing weak stream software data and instruction prefetching operations based on said software prefetch, wherein said weak stream software data and instruction prefetching operations comprise simultaneously prefetching for a plurality of streams and dropping prefetching for at least one stream to free up capacity for a new stream.

15. The processor of claim 14 wherein said software prefetch instructions correspond to a data and/or instruction access pattern.

16. The processor of claim 14 wherein said software prefetch instructions are located at a predetermined place in the software.

17. The processor of claim 14 wherein said software prefetch instructions comprise a starting address, a stride and a number of accesses.

18. The processor of claim 14 wherein said weak stream prefetching operations are performed free of a learning period.

19. The processor of claim 14 wherein if said software does not comprise software prefetch instructions, then stride based prefetching operations are executed as a part of a learning period.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2016
From: SOFT MACHINES, INC.
To: INTEL CORPORATION
Reel/Frame 040631/0915 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2012
From: AVUDAIYAPPAN, KARTHIKEYAN; ABDALLAH, MOHAMMAD
To: SOFT MACHINES, INC.
Reel/Frame 029112/0702 →