IP Library Granted Patent US 7,302,619
Granted Patent B1
US 7,302,619 · App. 10/885,356 · Granted Nov 27, 2007

Error correction in a cache memory

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,302,619
App. No.
10/885,356
Granted
Nov 27, 2007
Kind
B1
Abstract

Various systems and methods for error correction of instructions in an instruction cache coupled to a processor are provided. In one embodiment, a plurality of instructions stored in the instruction cache are fetched for execution by the processor, each of the instructions being fetched during a respective one of a plurality of instruction cycles of the processor. Error detection is performed for each of the instructions concurrently with the fetching of a respective one of the instructions.

Claims (48)

1. A method for error correction in an instruction cache that is operatively coupled to a processor, comprising the steps of:

fetching a plurality of instructions stored in the instruction cache for execution by the processor, each of the instructions being fetched during a respective one of a plurality of instruction cycles; and

performing error detection for each of the instructions concurrently with the fetching of a respective one of the instructions.

2. The method of claim 1 , wherein:

a first one of the instructions is fetched during a first one of the instruction cycles; and

the error detection is performed for the first one of the instructions during a second one of the instruction cycles that is subsequent to the first one of the instruction cycles.

3. The method of claim 2 , further comprising the step of generating a corrected instruction if the error is detected in the instruction, the corrected instruction being a corrected version of the instruction.

4. The method of claim 3 , wherein the step of generating the corrected instruction is performed during a third one of the instruction cycles, the third one of the instruction cycles being subsequent to the second one of the instruction cycles.

5. The method of claim 3 , further comprising the step of stalling the processor during the generation of the corrected instruction.

6. The method of claim 3 , further comprising the step of writing the corrected instruction back to the instruction cache.

7. The method of claim 6 , wherein:

the step of generating the corrected instruction is performed during a third one of the instruction cycles, the third one of the instruction cycles being subsequent to the second one of the instruction cycles; and

the step of writing the corrected instruction back to the instruction cache is performed during a fourth one of the instruction cycles, the fourth one of the instruction cycles being subsequent to the third one of the instruction cycles.

8. The method of claim 6 , wherein the step of writing the corrected instruction back to the instruction cache further comprises the step of writing the corrected instruction to the instruction cache over the instruction stored in the instruction cache.

9. The method of claim 6 , further comprising the step of stalling the processor while the corrected instruction is written back to the instruction cache.

10. The method of claim 1 , wherein the step of performing error detection for each of the instructions concurrently with the fetching of a respective one of the instructions further comprises the step of detecting an uncorrectable error in the instruction.

11. The method of claim 10 , further comprising the step of replacing the instruction in the instruction cache with a correct version of the instruction obtained from a random access memory.

12. The method of claim 10 , wherein the step of replacing the instruction in the instruction cache with the correct version of the instruction obtained from the random access memory is initiated by mimicking a cache miss condition.

13. The method of claim 1 , wherein:

a first one of the instructions is fetched during a first one of the instruction cycles; and

the error detection is performed for the first one of the instructions during the first one of the instruction cycles.

14. The method of claim 13 , further comprising the step of generating a corrected instruction if the error is detected in the instruction, the corrected instruction being a corrected version of the instruction.

15. The method of claim 14 , wherein the step of generating the corrected instruction is performed during a second one of the instruction cycles, the second one of the instruction cycles being subsequent to the first one of the instruction cycles.

16. The method of claim 14 , further comprising the step of stalling the processor during the generation of the corrected instruction.

17. The method of claim 14 , further comprising the step of writing the corrected instruction back to the instruction cache.

18. The method of claim 17 , wherein:

the step of generating the corrected instruction is performed during a second one of the instruction cycles, the second one of the instruction cycles being subsequent to the first one of the instruction cycles; and

the step of writing the corrected instruction back to the instruction cache is performed during a third one of the instruction cycles, the third one of the instruction cycles being subsequent to the second one of the instruction cycles.

19. The method of claim 17 , wherein the step of writing the corrected instruction back to the instruction cache further comprises the step of writing the corrected instruction to the instruction cache over the instruction stored in the instruction cache.

20. The method of claim 17 , further comprising the step of stalling the processor while the corrected instruction is written back to the instruction cache.

21. A system for instruction error correction, comprising:

an instruction cache;

a processor operatively coupled to the instruction cache, the processor being configured to fetch a plurality of instructions stored in the instruction cache, each of the instructions being fetched during a respective one of a plurality of instruction cycles; and

circuitry configured to detect an error in each of the instructions concurrently with the fetching of a respective one of the instructions.

22. The system of claim 21 , wherein the circuitry is further configured to generate a corrected instruction if the error is detected in the instruction, the corrected instruction being a corrected version of the instruction.

23. The system of claim 22 , wherein the circuitry stalls the processor during the generation of the corrected instruction.

24. The system of claim 22 , wherein the circuitry is further configured to write the corrected instruction back to the instruction cache.

25. The system of claim 24 , wherein the circuitry stalls the processor while the corrected instruction is written back to the instruction cache.

26. The system of claim 21 , wherein the circuitry is further configured to determine whether the error in the instruction is correctable.

27. The system of claim 26 , wherein the circuitry is further configured to replace the instruction in the instruction cache with a correct version of the instruction obtained from a random access memory if the error is determined not to be correctable.

28. The system of claim 26 , wherein the operation of the portion of the circuitry that replaces the instruction in the instruction cache with a correct version of the instruction obtained from a random access memory if the error is determined not to be correctable is initiated by mimicking a cache miss condition.

29. A system for instruction error correction, comprising:

an instruction cache;

a processor operatively coupled to the instruction cache, the processor being configured to fetch a plurality of instructions stored in the instruction cache, each of the instructions being fetched during a respective one of a plurality of instruction cycles; and

means for detecting an error in each of the instructions concurrently with the fetching of a respective one of the instructions.

30. The system of claim 29 , further comprising means for generating a corrected instruction if the error is detected in the instruction, the corrected instruction being a corrected version of the instruction.

31. The system of claim 30 , further comprising means for writing the corrected instruction back to the instruction cache.

32. The system of claim 31 , further comprising means for stalling the processor during the generation of the corrected instruction and during the writing of the corrected instruction back to the instruction cache.

Assignments (5)
CHANGE OF NAME Recorded Jan 14, 2021
From: INNOVATIVE SILICON SOLUTIONS LLC
To: HD SILICON SOLUTIONS LLC
Reel/Frame 054993/0795 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ADDRESS OF RECEIVING PARTY. PREVIOUSLY RECORDED AT REEL: 052199 FRAME: 0838. ASSIGNOR(S) HEREBY CONFIRMS THE NUNC-PRO TUNC ASSIGNMENT . Recorded Mar 28, 2020
From: INTELLECTUAL VENTURES ASSETS 156 LLC
To: INNOVATIVE SILICON SOLUTIONS, LLC
Reel/Frame 052253/0751 →
NUNC PRO TUNC ASSIGNMENT Recorded Mar 23, 2020
From: INTELLECTUAL VENTURES ASSETS 156 LLC
To: INNOVATIVE SILICON SOLUTIONS, LLC
Reel/Frame 052199/0838 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2020
From: CALLAHAN CELLULAR L.L.C.
To: INTELLECTUAL VENTURES ASSETS 156 LLC
Reel/Frame 051550/0682 →
MERGER Recorded Jan 11, 2016
From: SCHULKORT TRIO LIMITED LIABILITY COMPANY
To: CALLAHAN CELLULAR L.L.C.
Reel/Frame 037471/0710 →