IP Library Granted Patent US 12,585,593
Granted Patent B2
US 12,585,593 · App. 17/934,731 · Granted Mar 24, 2026

Processor cross-core cache line contention management

Inventors: Michael Joseph Cadigan, Jr. (Poughkeepsie, NY); Gregory William Alexander (Pflugerville, TX); Deanna Postles Dunn Berger (Hyde Park, NY); Timothy Bronson (Round Rock, TX); Chung-Lung K. Shum (Wappingers Falls, NY); Aaron Tsai (Hyde Park, NY)
Assignee: International Business Machines Corporation
G06F12/0891G06F12/0811
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 12,585,593
App. No.
17/934,731
Granted
Mar 24, 2026
Kind
B2
Abstract

Embodiments are for processor cross-core cache line contention management. A computer-implemented method includes sending a cross-invalidate command to one or more caches based on receiving a cache state change request for a cache line in a symmetric multiprocessing system and determining a retry delay based on receiving a cross-invalidate reject response from at least one of the one or more caches. The computer-implemented method also includes waiting until a retry delay period associated with the retry delay has elapsed to resend the cross-invalidate command to the one or more caches and granting the cache state change request for the cache line based on receiving a cross-invalidate accept response from the one or more caches.

Claims (48)

1 . A computer-implemented method comprising:

sending a cross-invalidate command to one or more caches based on receiving a cache state change request for a cache line in a symmetric multiprocessing system;

determining a retry delay based on receiving a cross-invalidate reject response from at least one of the one or more caches;

waiting until a retry delay period associated with the retry delay has elapsed to resend the cross-invalidate command to the one or more caches; and

granting the cache state change request for the cache line based on receiving a cross-invalidate accept response from the one or more caches.

2 . The computer-implemented method of claim 1 , wherein the cache state change request is received from a higher-level cache of a core of the symmetric multiprocessing system, the at least one of the one or more caches comprises one or more higher-level caches of other cores of the symmetric multiprocessing system, and the cache line is managed by a lower-level cache of the symmetric multiprocessing system.

3 . The computer-implemented method of claim 1 , wherein the cross-invalidate reject response is sent by a core of the symmetric multiprocessing system performing an operation on the cache line.

4 . The computer-implemented method of claim 3 , wherein the core determines the retry delay period based on a predicted amount of time to complete an update of the cache line.

5 . The computer-implemented method of claim 4 , further comprising:

mapping a retry indicator encoded in the cross-invalidate reject response to a retry threshold that defines the retry delay period;

loading a delay counter with the retry delay period; and

running the delay counter until the retry delay period has elapsed.

6 . The computer-implemented method of claim 1 , further comprising:

receiving an early restart command; and

resending the cross-invalidate command prior to the retry delay period elapsing based on the early restart command.

7 . The computer-implemented method of claim 1 , wherein a shorter retry delay value is set based on determining that the cache line is being written, and a longer retry delay value is set based on determining that the cache line is in a locked and protected state.

8 . A system comprising:

a plurality of processors each comprising two or more cores forming a symmetric multiprocessing system;

a cache system; and

a controller coupled to the cache system, the controller configured to:

send a cross-invalidate command to one or more caches of the cache system based on receiving a cache state change request for a cache line;

determine a retry delay based on receiving a cross-invalidate reject response from at least one of the one or more caches;

wait until a retry delay period associated with the retry delay has elapsed to resend the cross-invalidate command to the one or more caches; and

grant the cache state change request for the cache line based on receiving a cross-invalidate accept response from the one or more caches.

9 . The system of claim 8 , wherein the cache state change request is received from a higher-level cache of a core of the symmetric multiprocessing system, the at least one of the one or more caches comprises one or more higher-level caches of other cores of the symmetric multiprocessing system, and the cache line is managed by a lower-level cache of the symmetric multiprocessing system.

10 . The system of claim 8 , wherein the cross-invalidate reject response is sent by a core of the symmetric multiprocessing system performing an operation on the cache line.

11 . The system of claim 10 , wherein the core determines the retry delay period based on a predicted amount of time to complete an update of the cache line.

12 . The system of claim 11 , wherein the controller is further configured to:

map a retry indicator encoded in the cross-invalidate reject response to a retry threshold that defines the retry delay period;

load a delay counter with the retry delay period; and

run the delay counter until the retry delay period has elapsed.

13 . The system of claim 8 , wherein the controller is further configured to:

receive an early restart command; and

resend the cross-invalidate command prior to the retry delay period elapsing based on the early restart command.

14 . The system of claim 8 , wherein a shorter retry delay value is set based on determining that the cache line is being written, and a longer retry delay value is set based on determining that the cache line is in a locked and protected state.

15 . A computer-implemented method comprising:

sending a cross-invalidate command to one or more caches based on receiving a cache state change request for a cache line in a symmetric multiprocessing system;

determining a ticket identifier based on receiving a cross-invalidate reject response with a ticket code from at least one of the one or more caches;

waiting until a wakeup message associated with the ticket identifier has been received to resend the cross-invalidate command to the one or more caches; and

granting the cache state change request for the cache line based on receiving a cross-invalidate accept response from the one or more caches.

16 . The computer-implemented method of claim 15 , wherein the cache state change request is received from a higher-level cache of a core of the symmetric multiprocessing system, the at least one of the one or more caches comprises one or more higher-level caches of other cores of the symmetric multiprocessing system, and the cache line is managed by a lower-level cache of the symmetric multiprocessing system.

17 . The computer-implemented method of claim 15 , wherein the cross-invalidate reject response is sent by a core of the symmetric multiprocessing system performing an operation on the cache line and the core is configured to generate the ticket code and the wakeup message.

18 . The computer-implemented method of claim 17 , wherein the core is configured to send the wakeup message one or more cycles prior to completion of the operation on the cache line.

19 . The computer-implemented method of claim 17 , wherein the wakeup message is sent a number of cycles early to align with an expected processing delay of the wakeup message.

20 . The computer-implemented method of claim 15 , further comprising:

setting a delay counter to a default value based on receiving the cross-invalidate reject response;

resetting the delay counter based on receiving the wakeup message; and

resending the cross-invalidate command to the one or more caches based on the delay counter reaching a limit prior to receiving the wakeup message.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2022
From: CADIGAN, MICHAEL JOSEPH, JR.; ALEXANDER, GREGORY WILLIAM; BERGER, DEANNA POSTLES DUNN; BRONSON, TIMOTHY; SHUM, CHUNG-LUNG K.; TSAI, AARON
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 061194/0632 →
Continuity (1)
Related Publication 20240104021A1 · Mar 28, 2024
References Cited (25)
US 7366847B2 · Kruckemyer · 2008 [cited by examiner]
US 8195892B2 · Kornegay et al. · 2012 [cited by applicant]
US 8209490B2 · Mattina · 2012 [cited by examiner]
US 8285926B2 · Karlsson · 2012 [cited by examiner]
US 8812793B2 · Kornegay et al. · 2014 [cited by applicant]
US 9311238B2 · Shum et al. · 2016 [cited by applicant]
US 9563467B1 · Gschwind et al. · 2017 [cited by applicant]
US 9921964B2 · Shum et al. · 2018 [cited by applicant]
US 9921965B2 · Shum et al. · 2018 [cited by applicant]
US 9971629B2 · Bradbury et al. · 2018 [cited by applicant]
US 10795824B2 · Berger et al. · 2020 [cited by applicant]
US 10970215B1 · Williams · 2021 [cited by examiner]
US 20020083271A1 · Mounes-Toussi · 2002 [cited by examiner]
US 20090240889A1 · Choy · 2009 [cited by examiner]
US 20180067856A1 · Walker · 2018 [cited by examiner]
US 20180365164A1 · Helms · 2018 [cited by examiner]
US 20190108126A1 · Bartik · 2019 [cited by examiner]
US 20190146916A1 · Matsakis · 2019 [cited by examiner]
US 20230161703A1 · Wang · 2023 [cited by examiner]
Honarmand, N.; Beyond ILP—In Search of More Parallelism, 2016, 78 pages. [cited by applicant]
Lemeire, J.; Practical Parallel Programming—Shared Memory Systems, 2019-2020, 128 pages. [cited by applicant]
Moshovos, A. et al.; Jetty: Filtering Snoops for Reduced Energy Consumption in SMP Servers, 2001, 12 pages. [cited by applicant]
Anonymous. “Implementing locks in a shared-memory multiprocessor using a simplified coherence protocol.” Published Sep. 24, 2010 by IP.com. 6 pages. [cited by applicant]
Anonymous. “Speculative Cache Data Read.” Published Jun. 19, 2012 by IP.com. 3 pages. [cited by applicant]
Anonymous, “Recovery of core in case of persistent cache error,” An IP.com Prior Art Database Technical Disclosure, IP.com No. IPCOM000240409D, Jan. 29, 2015 (4 pages). [cited by applicant]