IP Library Granted Patent US 8,041,899
Granted Patent B2
US 8,041,899 · App. 12/181,701 · Granted Oct 18, 2011

System and method for fetching information to a cache module using a write back allocate algorithm

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 8,041,899
App. No.
12/181,701
Granted
Oct 18, 2011
Kind
B2
Abstract

A write back allocate system that includes: (i) a store request circuit; (ii) a processor, adapted to generate a store request that comprises an information unit and an information unit address; and (iii) a cache module, connected to the store request circuit and to a high level memory unit. A single cache module line includes multiple segments, each segment is adapted to store a single information unit. A content of a cache module line is retrieved from the high level memory unit by generating a fetch burst that includes multiple segment fetch operations. The store request circuit includes a snooper and a controller. The snooper detects a portion of an address of a cache segment of a cache line that is being fetched during a fetch burst. The controller is adapted to request from the cache module to receive the information unit before a completion of the fetch burst if the portion of the address of the cache segment matches a corresponding portion of the information unit address.

Claims (32)

1. A write back allocate system, comprising:

a store request circuit;

a processor to generate a store request that comprises an information unit and an information unit address; and

a cache module, coupled to the store request circuit and to a high level memory unit; wherein a single cache module line comprises multiple segments, each segment to store a single information unit; wherein a content of a cache module line is retrieved from the high level memory unit by generating a fetch burst that comprises multiple segment fetch operations; and

wherein the store request circuit comprises a snooper and a controller;

wherein the snooper detects a portion of an address of a cache segment of a cache line that is being fetched during a fetch burst; and

wherein the controller is to request from the cache module to receive the information unit before a completion of the fetch burst if the portion of the address of the cache segment matches a corresponding portion of the information unit address and if the cache module declined a previous request to receive the information unit.

2. The write back allocate system according to claim 1 wherein the snooper detects a cache segment indicator that indicates which segment of the cache line is being fetched.

3. The write back allocate system according to claim 1 wherein the store request circuit comprises:

a declined buffer that stores store requests that are temporarily prevented from being written to the cache module; and

a pending buffer that stores store request before their eligibility to be written to the cache module is determined.

4. The write back allocate system according to claim 1 wherein the controller is to request from the cache module to receive, before the completion of the fetch burst, each store request that is stored in the store request module that has an information unit address portion that matches the portion of the address of the cache segment.

5. The write back allocate system according to claim 1 wherein the controller is to request from the cache module to receive, before the completion of the fetch burst, each head of buffer store request that has an information unit address portion that matches the portion of the address of the cache segment.

6. The write back allocate system according to claim 1 wherein the snooper detects a cache segment indicator that indicates which segment of the cache line is being fetched and wherein the controller is to request from the cache module to receive, before the completion of the fetch burst, each head of buffer store request that has an information unit address portion that matches the cache segment indicator.

7. The write back allocate system according to claim 1 wherein the snooper detects a cache segment indicator that indicates which segment of the cache line is being fetched and wherein the controller is to request from the cache module to receive, before the completion of the fetch burst, a head of pending buffer store request that has an information unit address portion that matches the cache segment indicator.

8. The write back allocate system according to claim 1 wherein the snooper detects a cache segment indicator that indicates which segment of the cache line is being fetched and wherein the controller is to request from the cache module to receive, before the completion of the fetch burst, a head of declined buffer store request that has an information unit address portion that matches the cache segment indicator.

9. The write back allocate system according to claim 1 wherein the controller is to request from the cache module to receive the information unit before the completion of the fetch burst if the portion of the address of the cache segment matches the corresponding portion of the information unit address, if the cache module declined the previous request to receive the information unit and if an address bus and a data bus of the cache module are idle.

10. A method for writing information units to a cache module, the method comprises:

storing, in an store request circuit, a store request that is generated by a processor, the store request comprises an information unit and an information unit address;

snooping, by the store request circuit, address lines that are coupled between a cache module and a high level memory to obtain a portion of an address of a cache segment of a cache line that is being retrieved during a burst of segment fetch operations; wherein each cache module line comprises multiple segments, each segment to store a single information unit; and

requesting from the cache module to receive the information unit before a completion of the fetch burst if the portion of the address of the cache segment matches a corresponding portion of the information unit address and if the cache declined a previous request to receive the information unit.

11. The method according to claim 10 comprising snooping address lines that convey a cache segment indicator that indicates which segment of the cache line is being fetched.

12. The method according to claim 10 comprising:

storing store requests that are temporarily prevented from being written to the cache module at a declined store request buffer; and

storing store request before their eligibility to be written to the cache module is determined, at a pending store request buffer.

13. The method according to claim 10 comprising requesting from the cache module to receive, before the completion of the fetch burst, each store request that is stored in the store request module that has an information unit address portion that matches the portion of the address of the cache segment.

14. The method according to claim 10 comprising requesting from the cache module to receive, before the completion of the fetch burst, each head of buffer store request that has an information unit address portion that matches the portion of the address of the cache segment.

15. The method according to claim 10 comprising detecting a cache segment indicator that indicates which segment of the cache line is being fetched and requesting from the cache module to receive, before the completion of the fetch burst, each head of buffer store request that has an information unit address portion that matches the cache segment indicator.

16. The method according to claim 10 comprising detecting a cache segment indicator that indicates which segment of the cache line is being fetched and requesting from the cache module to receive, before the completion of the fetch burst, a head of pending buffer store request that has an information unit address portion that matches the cache segment indicator.

17. The method according to claim 10 comprising detecting a cache segment indicator that indicates which segment of the cache line is being fetched and requesting from the cache module to receive, before the completion of the fetch burst, a head of declined buffer store request that has an information unit address portion that matches the cache segment indicator.

18. The method according to claim 10 comprising requesting from the cache module to receive the information unit before the completion of the fetch burst if the portion of the address of the cache segment matches the corresponding portion of the information unit address, if the cache declined the previous request to receive the information unit and if a cache module address bus and a cache module data bus are idle.

19. The method according to claim 10 comprising sending to a snooper a portion of the information unit address of a received store request circuit.

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 NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040632 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Sep 21, 2017
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 044209/0047 →
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 →
CHANGE OF NAME Recorded Nov 8, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 040632/0001 →
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 037356/0553 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0143 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037354/0757 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →