IP Library Granted Patent US 6,944,718
Granted Patent B2
US 6,944,718 · App. 10/693,303 · Granted Sep 13, 2005

Apparatus and method for speculative prefetching after data cache misses

Assignee: Hewlett-Packard Development Company, L.P.
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 6,944,718
App. No.
10/693,303
Granted
Sep 13, 2005
Kind
B2
Abstract

A microprocessor is configured to continue execution in a special Speculative Prefetching After Data Cache Miss (SPAM) mode after a data cache miss is encountered. The microprocessor includes additional registers and program counter, and optionally additional cache memory for use during the special SPAM mode. By continuing execution during the SPAM mode, multiple outstanding and overlapping cache fill requests may be issued, thus improving performance of the microprocessor.

Claims (37)

1. A processor having a normal mode and a speculative prefetching mode, the processor operable in the speculative prefetching mode after a data cache miss, comprising:

a first data cache for storing data when the processor operates in the normal mode;

a second data cache for storing data in response to a store instruction when the processor operates in the speculative prefetching mode;

a first program counter for use when the processor operates in the normal mode; and

a second program counter for use only when the processor operates in the speculative prefetching mode, wherein the first program counter is configured to remain unchanged during operation of the processor in the speculative prefetching mode.

2. The processor of claim 1 , wherein the second data cache comprises:

an entry for storing data; and

a trash bit associated with the entry, wherein the trash bit indicates whether the entry contains arbitrary data.

3. The processor of claim 1 , including logic for continuing to execute a program after a data cache miss, in the speculative prefetching mode, using the second program counter and the second data cache, leaving the first data cache and the first program counter unchanged during execution of the program in the speculative prefetching mode.

4. The processor of claim 1 , wherein the first data cache comprises a direct-mapped cache and where the second data cache comprises an associative cache.

5. A processor having a normal mode and a speculative prefetching mode, the processor operable in the speculative prefetching mode after a data cache miss, comprising:

a first register for storing data during the normal mode;

a second register for storing data during the speculative prefetching mode, the second register comprising a first trash bit that indicates whether the second register contains arbitrary data;

a first program counter for use when the processor operates in the normal mode;

a second program counter for use only when the processor operates in the speculative prefetching mode, wherein the first program counter is configured to remain unchanged during operation of the processor in the speculative prefetching mode;

an instruction bus for receiving a stream of instructions including a first instruction and a second instruction;

control logic for executing the first instruction;

control logic for initiating a cache fill request provided execution of the first instruction encounters a data cache miss;

control logic for setting the trash bit of the second register in to the first instruction and the data cache miss; and

control logic for executing the second instruction in the speculative prefetching mode using the second register in place of the first register.

6. The processor of claim 5 , further comprising:

a first data cache for storing data during the normal model; and

a second data cache for storing data in response to a store instruction during the speculative prefetching mode.

7. The processor of claim 6 , wherein the second data cache comprises:

an entry for storing data; and

a second trash bit associated with the entry, the second trash bit for whether the entry contains arbitrary data.

8. The processor of claim 5 , wherein the first data cache is a direct-mapped cache and the second data cache is an associative cache.

9. A processor having a normal mode and a speculative prefetching mode, the processor operable in the speculative prefetching mode after a data cache miss, comprising:

a first register for storing data during the normal mode;

a second register for storing data during the speculative prefetching mode, the second register comprising a first trash bit that indicates whether the second register contains arbitrary data and a first valid bit that indicates whether the second register is in use.

a first program counter for use when the processor operates in the normal mode;

a second program counter for use only when the processor operates in the speculative prefetching mode, wherein the first program counter is configured to remain unchanged during operation of the processor in the speculative prefetching mode;

an instruction bus for receiving a stream of instructions including a fist instruction and a second instruction;

control logic for executing the first instruction;

control logic for initiating a cache fill request provided execution of the first instruction encounters a data cache miss;

control logic for setting the trash bit of the second register in to the first instruction and the data cache miss; and

control logic for executing the second instruction in the speculative prefetching mode using the second register in place of the first register.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
Continuity (2)
Continuation 0975571900 · Jan 4, 2001
Related Publication 20040088491A1 · May 6, 2004