IP Library Granted Patent US 7,739,455
Granted Patent B2
US 7,739,455 · App. 11/767,247 · Granted Jun 15, 2010

Avoiding livelock using a cache manager in multiple core processors

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,739,455
App. No.
11/767,247
Granted
Jun 15, 2010
Kind
B2
Abstract

Livelocks are prevented in multiple core processors by verifying that a data access request is still valid before sending messages to processor cores that may cause other data access requests to fail. A cache coherency manager receives data access requests from multiple processor cores. Upon receiving a data access request that may cause a livelock, the cache coherency manager first sends an intervention message back to the requesting processor core to confirm that this data access request will succeed. If the requesting processor core determines that the data access request is still valid, it directs the cache coherency manager to proceed with the data access request. The cache coherency manager may then send intervention messages to other processor cores to complete the data access request. If the requesting processor core determines that the data access request is invalid, it directs the cache coherency manager to abandon the data access request.

Claims (49)

1. A method of handling data access requests from multiple processor cores by a microprocessor, the method comprising:

receiving at a cache coherency manager unit a first data access request from a first processor core;

providing an intervention message from the cache coherency manager unit to the first processor core in response to the first data access request;

receiving at the cache coherency manager unit an intervention message response from the first processor core, wherein the intervention message response includes an indicator of a validity of the first data access request;

determining from the intervention message response if the first data access request is valid; and

in response to the determination that the first data access request is valid, providing at least one additional intervention message from the cache coherency manager unit to an additional processor core and fulfilling the first data access request.

2. The method of claim 1 , further comprising:

in response to the determination that the first data access request is invalid, inhibiting the provision of the additional intervention message to the additional processor core and canceling the first data access request.

3. The method of claim 1 , wherein the indicator of the validity of the first data access request is based on a cache coherency state value of a cache line associated with the first data access request.

4. The method of claim 3 , wherein the cache coherency state value indicates whether the additional processor core has attempted to access a memory location associated with the cache line.

5. The method of claim 1 , wherein the first data access request includes a request for exclusive access to data at a memory location represented in a cache memory associated with the first processor core.

6. The method of claim 5 , wherein the first data access request is associated with an upgrade request associated with a SC instruction executed by the first processor core.

7. A method of handling data access requests from multiple processor cores by a microprocessor, the method comprising:

receiving at a cache coherency manager unit a first data access request from a first processor core;

determining by the cache coherency manager unit if a livelock situation is likely to result from the first data access request;

in response to the determination that the livelock situation is not likely to result from the first data access request, providing an intervention message from the cache coherency manager unit to the first processor core and at least one additional processor core in response to the first data access request and fulfilling the first data access request; and

in response to the determination that the livelock situation is likely to result from the first data access request:

providing the intervention message from the cache coherency manager unit to the first processor core;

receiving at the cache coherency manager unit an intervention message response from the first processor core, wherein the intervention message response includes an indicator of a validity of the first data access request;

determining by the cache coherency manager unit from the intervention message response if the first data access request is valid; and

in response to the determination that the first data access request is valid, providing at least one additional intervention message from the cache coherency manager unit to an additional processor core and fulfilling the first data access request.

8. The method of claim 7 , further comprising:

in response to the determination that the first data access request is invalid, inhibiting the provision of the additional intervention message to the additional processor core and canceling the first data access request.

9. The method of claim 7 , wherein the indicator of the validity of the first data access request is based on a cache coherency state value of a cache line associated with the first data access request.

10. The method of claim 9 , wherein the cache coherency state value indicates whether the additional processor core has attempted to access a memory location associated with the cache line.

11. The method of claim 7 , wherein the first data access request includes a request for exclusive access to data at a memory location represented in a cache memory associated with the first processor core.

12. The method of claim 11 , wherein the first data access request is associated with an upgrade request associated with a SC instruction executed by the first processor core.

13. The method of claim 7 , wherein determining if a livelock situation is likely to result from the first data access request includes:

determining a rate of data access request failures; and

setting a livelock indicator in response to the rate of data access request failures exceeding a threshold.

14. The method of claim 13 , wherein determining the rate of data access request failures includes:

incrementing a counter in response to each data access request failure; and

decrementing the counter in response to each data access request success.

15. A processor comprising:

at least two processor core units, wherein at least a portion of the processor core units each comprise:

a processor core adapted to execute program instructions;

a cache memory including cache lines adapted to store cache data; and

cache memory control logic; and

a cache coherency manager unit adapted to coordinate communications between the processor core units and memory, wherein the cache coherency manager unit comprises logic adapted to:

provide an intervention message from the cache coherency manager unit to a first processor core unit in response to receiving a first data access request potentially triggering a livelock from the first processor core unit;

receive at the cache coherency manager unit an intervention message response from the first processor core, wherein the intervention message response includes an indicator of a validity of the first data access request;

determine by the cache coherency manager unit from the intervention message response if the first data access request is valid; and

provide at least one additional intervention message from the cache coherency manager unit to an additional processor core unit and fulfill the first data access request in response to the determination that the first data access request is valid.

16. The processor of claim 15 , wherein the cache coherency manager unit includes logic further adapted to inhibit the provision of the additional intervention message to the additional processor core unit and cancel the first data access request in response to the determination that the first data access request is invalid.

17. The processor of claim 15 , wherein the indicator of the validity of the first data access request is based on a cache coherency state value of a cache line in the cache memory of the first processor core unit associated with the first data access request.

18. The processor of claim 15 , wherein the first data access request potentially triggering a livelock includes a request for exclusive access to data at a memory location represented in the cache memory associated with the first processor core.

19. The processor of claim 18 , wherein the first data access request is associated with an upgrade request associated with a SC instruction executed by the first processor core.

20. The processor of claim 15 , further comprising logic adapted to determine if the first data access request potentially triggers a livelock, wherein the logic adapted to determine if the first data access request potentially triggers a livelock is adapted to determine a rate of data access request failures and set a livelock indicator in response to the rate of data access request failures exceeding a threshold.

21. The processor of claim 20 , wherein the logic adapted to determine determining the rate of data access request failures includes logic adapted to increment a counter in response to each data access request failure and to decrement the counter in response to each data access request success.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Dec 29, 2022
From: CAPITAL FINANCE ADMINISTRATION, LLC, AS ADMINISTRATIVE AGENT
To: MIPS TECH, LLC; WAVE COMPUTING INC.
Reel/Frame 062251/0251 →
SECURITY INTEREST Recorded Jun 14, 2021
From: MIPS TECH, LLC; WAVE COMPUTING, INC.
To: CAPITAL FINANCE ADMINISTRATION, LLC
Reel/Frame 056558/0903 →
RELEASE OF SECURITY INTEREST Recorded Jun 14, 2021
From: WAVE COMPUTING LIQUIDATING TRUST
To: MIPS TECH, INC.; HELLOSOFT, INC.; WAVE COMPUTING (UK) LIMITED; IMAGINATION TECHNOLOGIES, INC.; CAUSTIC GRAPHICS, INC.; MIPS TECH, LLC; WAVE COMPUTING, INC.
Reel/Frame 056589/0606 →
SECURITY INTEREST Recorded Feb 26, 2021
From: WAVE COMPUTING, INC.; MIPS TECH, LLC; MIPS TECH, INC.; HELLOSOFT, INC.; WAVE COMPUTING (UK) LIMITED; IMAGINATION TECHNOLOGIES, INC.; CAUSTIC GRAPHICS, INC.
To: WAVE COMPUTING LIQUIDATING TRUST
Reel/Frame 055429/0532 →
CHANGE OF NAME Recorded Feb 28, 2018
From: IMAGINATION TECHNOLOGIES, LLC
To: MIPS TECH, LLC
Reel/Frame 045471/0829 →
CHANGE OF NAME Recorded May 1, 2017
From: MIPS TECHNOLOGIES, INC.
To: IMAGINATION TECHNOLOGIES, LLC
Reel/Frame 042375/0221 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2008
From: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
To: MIPS TECHNOLOGIES, INC.
Reel/Frame 021985/0015 →