IP Library Granted Patent US 9,547,593
Granted Patent B2
US 9,547,593 · App. 13/036,321 · Granted Jan 17, 2017

Systems and methods for reconfiguring 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 9,547,593
App. No.
13/036,321
Granted
Jan 17, 2017
Kind
B2
Abstract

A microprocessor system is disclosed that includes a first data cache that is shared by a first group of one or more program threads in a multi-thread mode and used by one program thread in a single-thread mode. A second data cache is shared by a second group of one or more program threads in the multi-thread mode and is used as a victim cache for the first data cache in the single-thread mode.

Claims (77)

1. A method comprising:

in a computer system executing multiple program threads in multi-thread mode in a processing unit:

accessing a first Level 1 (L1) data cache for a first subset of the threads;

accessing a second L1 data cache for a second subset of the threads;

in the computer system executing a single program thread in single thread mode in the processing unit:

configuring the second L1 data cache as a victim cache for the first L1 data cache upon switching to the single thread mode; and

accessing the first L1 data cache and the victim cache for the single program thread;

in the single thread mode, storing the same information in a first memory management unit (MMU) coupled between a first load/store execution unit and the first L1 data cache, and a second MMU coupled between a second load/store execution unit and the second L1 data cache.

2. The method of claim 1 wherein the first L1 data cache is a write-through cache, the method further comprising:

evicting a cache line from the first L1 cache to the victim cache by fetching a cache line with requested data from a Level 2 (L2) cache to the victim cache.

3. The method of claim 1 wherein the first L1 data cache is a write-through cache, the method further comprising:

moving a cache line from the victim cache to the L1 cache by fetching a cache line with requested data from a L2 cache to the victim cache.

4. The method of claim 1 further comprising:

in response to determining that a cache store miss for requested data occurred in the first L1 data cache:

writing the requested data into only the victim cache.

5. The method of claim 1 further comprising:

in response to determining that a cache store miss for requested data occurred in the first L1 data cache and the victim cache:

writing the requested data into a L2 cache only.

6. The method of claim 1 further comprising:

the victim cache is powered-off to conserve power until a predetermined threshold for cache line eviction is met.

7. The method of claim 1 further comprising:

writing requested data from a L2 cache to the L1 cache;

evicting a cache line from the L1 cache to the victim cache; and

if a dirty cache line is evicted from the victim cache, writing the dirty cache line to the L2 cache.

8. The method of claim 1 further comprising:

upon determining that a cache store miss for requested data occurred in the first L1 data cache, performing at least one of the group consisting of: writing the requested data into the L1 data cache and a L2 cache, writing the requested data into the victim cache and the L2 cache, and writing the requested data to the L2 cache.

9. A processing system comprising:

a first L1 data cache;

a second L1 data cache;

a first load/store execution unit configured to access the first L1 data cache; and

a second load/store execution unit configured to:

access the second L1 data cache in a multi-thread mode, and

in a single thread mode, access the first L1 data cache, wherein the second L1 data cache is configured as a victim cache for the first L1 data cache upon switching to the single-thread mode;

a first memory management unit (MMU) coupled between the first load/store execution unit and the first L1 data cache;

a second MMU coupled between the second load/store execution unit and the second L1 data cache; and

in the single thread mode, the first MMU and the second MMU include the same information.

10. The system of claim 9 further comprising:

in the single-thread mode,

a cache line evicted from the first L1 cache is moved to the victim cache by fetching a cache line with requested data from a Level 2 (L2) cache to the victim cache.

11. The system of claim 9 further comprising:

in the single thread mode,

a cache line is moved from the victim cache to the L1 cache by fetching a cache line with requested data from a L2 cache to the victim cache.

12. The system of claim 9 further comprising:

in the single thread mode, the requested data is written into only the victim cache in response to a cache store miss occurring for requested data in the first L1 data cache.

13. The system of claim 9 further comprising:

in the single thread mode, the requested data is written into a L2 cache only in response to determining that a cache store miss for requested data occurred in the first L1 data cache and the victim cache.

14. The system of claim 9 further comprising:

the victim cache is powered-off to conserve power until a predetermined threshold for cache line eviction is met.

15. The system of claim 9 further comprising:

in the single thread mode,

requested data is written from a L2 cache to the L1 cache;

a cache line is evicted from the L1 cache to the victim cache; and

if a dirty cache line is evicted from the victim cache, the dirty cache line is written into the L2 cache.

16. The system of claim 9 further comprising:

in the single thread mode, at least one of the group consisting of:

the requested data is written into the L1 data cache and a L2 cache,

the requested data is written into the victim cache and the L2 cache, and

the requested data is written into the L2 cache,

is performed for a cache store for the requested data.

17. A microprocessor system comprising:

a first data cache that is shared by a first group of one or more program threads in a multi-thread mode and used by one program thread in a single-thread mode; and

a second data cache that is shared by a second group of one or more program threads in the multi-thread mode and is configured as a victim cache for the first data cache upon switching to the single-thread mode;

a first memory management unit (MMU) coupled between a first load/store execution unit and the first L1 data cache;

a second MMU coupled between a second load/store execution unit and the second L1 data cache; and

in the single thread mode, the first MMU and the second MMU include the same information.

18. The system of claim 17 further comprising:

the first load/store execution unit configured to access the first data cache; and

the second load/store execution unit configured to:

access the second data cache in the multi-thread mode, and

access the first data cache in the single thread mode.

19. The system of claim 17 further comprising:

more than one decoder units;

a first set of execution queues; and

a second set of execution queues;

wherein

during the single-thread mode, the system is configured to allow a single thread to use more than half of the decoder units and the first and second sets of execution queues, and

during the multi-thread mode, the system is configured to allow at least one thread to use half of the decoder units and the first set of execution queues, and at least another thread to use the other half of the decoder units and the second set of execution queues.

Assignments (18)
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: 040626 FRAME: 0683. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME EFFECTIVE NOVEMBER 7, 2016. Recorded Jan 12, 2017
From: NXP SEMICONDUCTORS USA, INC. (MERGED INTO); FREESCALE SEMICONDUCTOR, INC. (UNDER)
To: NXP USA, INC.
Reel/Frame 041414/0883 →
CHANGE OF NAME Recorded Nov 16, 2016
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 040626/0683 →
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/0387 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0334 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0285 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2011
From: TRAN, THANG M.
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 025874/0825 →