IP Library Granted Patent US 9,081,689
Granted Patent B2
US 9,081,689 · App. 13/740,404 · Granted Jul 14, 2015

Methods and systems for pushing dirty linefill buffer contents to external bus upon linefill request failures

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,081,689
App. No.
13/740,404
Granted
Jul 14, 2015
Kind
B2
Abstract

Methods and systems are disclosed for recovering dirty linefill buffer data upon linefill request failures. When a linefill request failure occurs and the linefill buffer has been marked as dirty, such as due to a system bus failure, the contents of the linefill buffer are pushed back to the system bus. The dirty data within the linefill buffer can then be used to update the external memory. The disclosed embodiments are useful for a wide variety of applications, including those requiring low data failure rates.

Claims (37)

1. A cache system, comprising:

a cache configured to store a plurality of cache lines;

a linefill buffer configured to store at least one cache line;

a load/store unit configured to store data within the linefill buffer during a linefill request for the cache, the stored data being received from a system bus; and

a cache controller configured to mark the stored data as dirty if updated within the linefill buffer during the linefill request and to push the dirty data from the linefill buffer to the system bus if the linefill request fails.

2. The cache system of claim 1 , wherein the linefill buffer is configured to store data in the form of a plurality of double-word bytes.

3. The cache system of claim 1 , wherein the linefill buffer is configured to have at least one write request bit that indicates whether data is to be written to the system bus upon a linefill request failure.

4. The cache system of claim 1 , wherein the cache system further comprises a bus interface unit configured to be coupled to a system bus, and wherein the cache controller is configured to push the dirty data from the linefill buffer to the system bus through the bus interface unit.

5. The cache system of claim 1 , wherein the cache system further comprises a bus interface unit configured to be coupled to a system bus and a store buffer configured to store data to be written to external memory, and wherein the cache controller is configured to push the dirty data from the linefill buffer to the system bus through the store buffer and the bus interface unit.

6. The cache system of claim 1 , wherein the cache controller is further configured to discard the data in the linefill buffer if the data is not marked as dirty and the linefill request fails.

7. The cache system of claim 1 , wherein the cache controller is configured to utilize a plurality of write requests to a bus interface controller to push the dirty data from the linefill buffer to the system bus.

8. The cache system of claim 1 , wherein the linefill buffer is configured to have at least one dirty bit that indicates whether data within the linefill buffer is dirty.

9. The cache system of claim 1 , wherein the dirty data pushed to the system bus is available for an update to a memory.

10. A processor system, comprising:

a processor coupled to a system bus;

a memory coupled to the system bus; and

a cache system coupled to the system bus and configured to store cache lines from the memory and to communicate cache lines to the processor through the system bus, the cache system comprising:

a cache configured to store a plurality of cache lines;

a linefill buffer configured to store at least one cache line; and

a load/store unit configured to store data within the linefill buffer during a linefill request for the cache system, the stored data being received from the system bus; and

a cache controller configured to mark the stored data as dirty if updated within the linefill buffer during the linefill request and to push the dirty data from the linefill buffer to the system bus if the linefill request fails.

11. The processor system of claim 10 , wherein the cache system further comprises a bus interface unit coupled to the system bus, and wherein the cache controller is configured to push the dirty data from the linefill buffer to the system bus through the bus interface unit.

12. The processor system of claim 10 , wherein the cache system further comprises a store buffer configured to be used to store data to be written to the memory, and wherein the cache controller is configured to push the dirty data from the linefill buffer to the system bus through the store buffer and the bus interface unit.

13. The processor system of claim 10 , wherein the linefill buffer is configured to have at least one dirty bit that indicates whether data within the linefill buffer is dirty and to have at least one write request bit that indicates whether data is to be written to the system bus upon a linefill request failure.

14. The processor system of claim 10 , wherein the dirty data pushed to the system bus is available for an update to the memory.

15. A method for recovering dirty linefill buffer data after linefill request failures, comprising:

receiving data from a system bus for a linefill request for a cache within a cache system;

storing the data within a linefill buffer during the linefill request;

marking the stored data as dirty if updated while within the linefill buffer; and

pushing the dirty data from the linefill buffer to the system bus if the linefill request fails.

16. The method of claim 15 , further comprising updating data within a main memory using the dirty data pushed to the system bus.

17. The method of claim 15 , further comprising setting at least one write request bit within the linefill buffer to indicate whether data is to be written to the system bus upon a linefill request failure.

18. The method of claim 15 , wherein the pushing step comprises pushing the dirty data from the linefill buffer through a bus interface unit to the system bus.

19. The method of claim 15 , wherein the pushing step comprises pushing the dirty data from the linefill buffer to a store buffer and from the store buffer through a bus interface unit to the system bus.

20. The method of claim 15 , further comprising discarding the data in the linefill buffer if the data is not marked as dirty and the linefill request fails.

21. The method of claim 15 , wherein the pushing step comprises utilizing a plurality of write requests to a bus interface controller to push the dirty data from the linefill buffer to the system bus.

22. The method of claim 15 , further comprising setting at least one bit in the linefill buffer to indicate whether data within the linefill buffer is dirty.

Assignments (17)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 037486 FRAME 0517. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Dec 10, 2019
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 053547/0421 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS.. Recorded Feb 20, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SHENZHEN XINGUODU TECHNOLOGY CO., LTD.
Reel/Frame 048734/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 1, 2017
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041703/0536 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040652 FRAME: 0241. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Jan 5, 2017
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 041260/0850 →
MERGER Recorded Nov 8, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 040652/0241 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 13, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037518/0292 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 12, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037486/0517 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0744 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0704 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0725 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →