IP Library Granted Patent US 8,832,378
Granted Patent B2
US 8,832,378 · App. 12/934,275 · Granted Sep 9, 2014

System and a method for selecting a cache way

Inventors: Rotem Porat (Kfar Saba, IL); Moshe Anschel (Kfar Saba, IL); Alon Eldar (Ra'anana, IL); Amit Gur (Eyn Vered, IL); Shai Koren (Ra'anana, IL); Itay Peled (Beer-Shev A, IL)
Assignee: Freescale Semiconductor, Inc.
G06F12/0864G06F12/126
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,832,378
App. No.
12/934,275
Granted
Sep 9, 2014
Kind
B2
Abstract

A method for selecting a cache way, the method includes: selecting an initially selected cache way out of multiple cache ways of a cache module for receiving a data unit; the method being characterized by including: searching, if the initially selected cache way is locked, for an unlocked cache way, out of at least one group of cache ways that are located at predefined offsets from the first cache way.

Claims (38)

1. A method for selecting a cache way, the method comprising:

determining an initial cache identifier;

selecting an initial cache way, out of multiple cache ways of a cache

module, for receiving a data unit based upon the initial cache identifier;

adding, in response to the initial cache way being locked, an offset to the initial cache identifier to determine an updated cache identifier, wherein the updated cache identifier is less than the initial cache way identifier in response to the offset being a negative offset;

selecting a next cache way based on the updated identifier;

determining, if the next cache way is locked; and

selecting the offset from a first group of predefined offsets that comprises positive offsets so as to define a first group of cache ways, and a second group of predefined offsets that comprises negative offsets so as to define a second group of cache ways.

2. The method according to claim 1 wherein selecting the offset further includes utilizing a third group of predefined offsets that comprises at least one positive offset and at least one negative offset so as to define a third group of cache ways.

3. The method according to claim 1 further comprising:

selecting the offset from a group of predefined offsets out of multiple groups of predefined offsets.

4. The method according to claim 1 further comprising:

writing information to the next cache way in response to the next cache way being unlocked.

5. The method according to claim 1 further comprising:

applying a searching scheme with a uniform distribution among unlocked cache ways.

6. The method according to claim 1 further comprising:

utilizing multiple groups of predefined offsets that are defined so as to increase a uniformity of distribution among unlocked cache ways.

7. A system comprising:

multiple cache ways;

a cache controller that is adapted to determine an initial cache identifier, to select an initial cache way out of the multiple cache ways for receiving a data unit based upon the initial cache way identifier, to add, in response to the initial cache way being locked, an offset to the initial cache identifier, wherein the updated cache identifier is less than the initial cache way identifier in response to the offset being a negative offset, to select a next cache way out of the multiple cache ways based on the updated identifier, and to determine if the next cache way is locked; and

the cache controller to utilize a first group of predefined offsets that comprises positive offsets so as to define a first group of cache ways, and to utilize a second group of predefined offsets that comprises negative offsets so as to define a second group of cache ways.

8. The system according to claim 7 wherein the cache controller is adapted to utilize a third group of predefined offsets that comprises at least one positive offset and at least one negative offset so as to define a third group of cache ways.

9. The system according to claim 7 wherein the cache controller is adapted to select the offset from a group of predefined offsets out of multiple groups of predefined offsets.

10. The system according to claim 7 wherein the cache controller is adapted to: write information to the next cache way in response to the next cache way being unlocked.

11. The system according to claim 7 wherein the cache controller is adapted to apply a searching scheme with a uniform distribution among unlocked cache ways.

12. The system according to claim 7 wherein the cache controller is adapted to utilize multiple groups of predefined offsets that are defined so as to increase a uniformity of distribution among unlocked cache ways.

13. A non-transitory computer program product comprising a computer usable medium including a computer readable program, wherein the computer readable program when executed on a computer causes the computer to:

determine an initial cache identifier;

select an initial cache way, out of multiple cache ways of a cache module, for receiving a data unit based upon the initial cache identifier;

add, in response to the initial cache way being locked, an offset to the initial cache identifier to determine an updated cache identifier, wherein the updated cache identifier is less than the initial cache way identifier in response to the offset being a negative offset;

select a next cache way based on the updated identifier;

determine if the next cache way is locked; and

to utilize a first group of predefined offsets that comprises positive offsets so as to define a first group of cache ways; and utilize a second group of predefined offsets that comprises negative offsets so as to define a second group of cache ways.

14. The computer program product according to claim 13 , wherein the computer readable program when executed on a computer causes the computer to select the offset from a group of predefined offsets out of multiple groups of predefined offsets.

15. The computer program product according to claim 13 , wherein the computer readable program when executed on a computer causes the computer to:

write information to the next cache way in response to the next cache way being unlocked.

16. The computer program product according to claim 13 , wherein the computer readable program when executed on a computer causes the computer to apply a searching scheme with a uniform distribution among unlocked cache ways.

17. The computer program product according to claim 13 , wherein the computer readable program when executed on a computer causes the computer to utilize multiple groups of predefined offsets that are defined so as to increase a uniformity of distribution among unlocked cache ways.

Assignments (31)
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
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 APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/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 →
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
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/0387 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0285 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0334 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →
SECURITY AGREEMENT Recorded Jun 18, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030633/0424 →
SECURITY AGREEMENT Recorded Jan 31, 2012
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 027622/0477 →
SECURITY AGREEMENT Recorded Jan 31, 2012
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 027621/0928 →
SECURITY AGREEMENT Recorded Jan 31, 2012
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 027622/0075 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2010
From: PORAT, ROTEM; ANSCHEL, MOSHE; ELDAR, ALON; GUR, AMIT; KOREN, SHAI; PELED, ITAY
To: FREESCALE SEMICONDUCTOR INC.
Reel/Frame 025035/0913 →
Continuity (1)
Related Publication 20110022800A1 · Jan 27, 2011