IP Library › Granted Patent US 12,625,705
Granted Patent B1
US 12,625,705 · App. 18/979,915 · Granted May 12, 2026

Cache line hold state for multiprocessing computing systems

Inventors: Michael Fee (Cold Spring, NY); Deanna Postles Dunn Berger (Hyde Park, NY); Peter Kenneth Szwed (Rhinebeck, NY); Seth E. Lederer (Staatsburg, NY); Aaron Tsai (Hyde Park, NY); Timothy J Slegel (Staatsburg, NY); Jason D Kohl (Austin, TX); Robert J Sonnelitter, III (Bedford Hills, NY); Gregory William Alexander (Pflugerville, TX); Andrew Walter Piechowski (Lagrangeville, NY)
Assignee: International Business Machines Corporation
G06F9/30047G06F9/30043
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,625,705
App. No.
18/979,915
Granted
May 12, 2026
Kind
B1
Abstract

A present invention embodiment provides a cache line hold state that reduces cache contention. A first processor executes a store instruction to acquire a lock on a cache line in a shared memory system of a multiprocessor computing system. The first processor sets the cache line to an exclusive state in a local cache of the first processor upon successful acquisition of the lock. A lock state indicative of a windowed hold on the cache line is recorded by the first processor, wherein the windowed hold enables non-exclusive fetch requests from one or more other processors.

Claims (47)

1 . A computer-implemented method comprising:

executing, by a first processor, a store instruction to acquire a lock on a cache line in a shared memory system of a multiprocessor computing system;

setting, by the first processor, the cache line to an exclusive state in a local cache of the first processor upon successful acquisition of the lock; and

recording a lock state indicative of a windowed hold on the cache line by the first processor, wherein the windowed hold enables non-exclusive fetch requests from one or more other processors.

2 . The method of claim 1 , further comprising:

receiving a non-exclusive fetch request from a second processor;

in response to receiving the non-exclusive fetch request, demoting, by the first processor, the cache line to read-only; and

returning, by the first processor, data of the cache line to the second processor.

3 . The method of claim 2 , wherein the returning further comprises returning an indication that the cache line is held in the windowed hold by the first processor.

4 . The method of claim 1 , further comprising:

in response to receiving a non-exclusive fetch request from a second processor, setting, by the first processor, the cache line to a primed-for-long-hold state, wherein the primed-for-long-hold state causes an exclusive fetch request for the cache line by the one or more other processors to be rejected and permits a read-only request for the cache line by the one or more other processors.

5 . The method of claim 4 , further comprising:

in response to a write request being issued by the first processor, reacquiring, by the first processor, the cache line in the exclusive state; and

recording the lock state indicative of a long-hold on the cache line by the first processor, wherein the lock state indicative of the long-hold causes read and write requests to the cache line by the one or more other processors to be rejected.

6 . The method of claim 5 , further comprising:

completing, by the first processor, a second store instruction and in response, releasing the lock and clearing the lock state.

7 . The method of claim 1 , wherein the store instruction comprises a hint instruction on a compare and swap instruction.

8 . The method of claim 1 , wherein the store instruction comprises a Next Instruction Access Intent (NIAI) hint instruction preceding the store instruction.

9 . A computer system comprising:

a processor set;

one or more computer-readable storage medium; and

program instructions stored on the one or more computer-readable storage medium to cause the processor set to perform operations comprising:

executing, by a first processor, a store instruction to acquire a lock on a cache line in a shared memory system of a multiprocessor computing system;

setting, by the first processor, the cache line to an exclusive state in a local cache of the first processor upon successful acquisition of the lock; and

recording a lock state indicative of a windowed hold on the cache line by the first processor, wherein the windowed hold enables non-exclusive fetch requests from one or more other processors.

10 . The computer system of claim 9 , wherein the program instructions further cause the processor set to perform operations comprising:

receiving a non-exclusive fetch request from a second processor;

in response to receiving the non-exclusive fetch request, demoting, by the first processor, the cache line to read-only; and

returning, by the first processor, data of the cache line to the second processor.

11 . The computer system of claim 10 , wherein the returning further comprises returning an indication that the cache line is held in the windowed hold by the first processor.

12 . The computer system of claim 9 , wherein the program instructions further cause the processor set to perform operations comprising:

in response to receiving a non-exclusive fetch request from a second processor, setting, by the first processor, the cache line to a primed-for-long-hold state, wherein the primed-for-long-hold state causes an exclusive fetch request for the cache line by the one or more other processors to be rejected and permits a read-only request for the cache line by the one or more other processors.

13 . The computer system of claim 12 , wherein the program instructions further cause the processor set to perform operations comprising:

in response to a write request being issued by the first processor, reacquiring, by the first processor, the cache line in the exclusive state; and

recording the lock state indicative of a long-hold on the cache line by the first processor, wherein the lock state indicative of the long-hold causes read and write requests to the cache line by the one or more other processors to be rejected.

14 . The computer system of claim 13 , wherein the program instructions further cause the processor set to perform operations comprising:

completing, by the first processor, a second store instruction and in response, releasing the lock and clearing the lock state.

15 . The computer system of claim 9 , wherein the store instruction comprises a hint instruction on a compare and swap instruction.

16 . The computer system of claim 9 , wherein the store instruction comprises a Next Instruction Access Intent (NIAI) hint instruction preceding the store instruction.

17 . A method comprising:

executing, by a first processor, a non-exclusive fetch request to fetch data from a cache line that is held in a windowed hold state by a second processor, wherein the windowed hold state enables the second processor to provide data in the cache line to the first processor;

in response to receiving the non-exclusive fetch request, demoting, by the second processor, the cache line to read-only; and

obtaining, by the second processor, the data in the cache line that is subject to the non-exclusive fetch request.

18 . The method of claim 17 , further comprising:

in response to receiving the non-exclusive fetch request, receiving, by one or more other processors, an indication that the cache line is held in the windowed hold state by the second processor.

19 . The method of claim 18 , wherein the indication prevents the one or more other processors from issuing a fetch request for the cache line.

20 . The method of claim 17 , wherein the second processor sets the cache line to a primed-for-long-hold state in response to receiving the non-exclusive fetch request from the first processor, wherein the primed-for-long-hold state causes an exclusive fetch request for the cache line by one or more other processors to be rejected and permits a read-only request for the cache line by the one or more other processors.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2024
From: FEE, MICHAEL; BERGER, DEANNA POSTLES DUNN; SZWED, PETER KENNETH; LEDERER, SETH E.; TSAI, AARON; SLEGEL, TIMOTHY J; KOHL, JASON D; SONNELITTER, ROBERT J, III; ALEXANDER, GREGORY WILLIAM; PIECHOWSKI, ANDREW WALTER
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 069575/0694 →
References Cited (10)
US 7222222B1 · Vartti · 2007 [cited by examiner]
US 7966453B2 · Shum · 2011 [cited by examiner]
US 10579525B2 · Zoellin et al. · 2020 [cited by applicant]
US 11216378B2 · King et al. · 2022 [cited by applicant]
US 20180173625A1 · Moudgill · 2018 [cited by examiner]
US 20180196751A1 · Giamei · 2018 [cited by examiner]
US 20190042432A1 · Khade · 2019 [cited by examiner]
US 20230136114A1 · Moyer · 2023 [cited by examiner]
US 20230281132A1 · Berger · 2023 [cited by examiner]
Disclosed Without Attribution, IP.com No. IPCOM000033803D “Method for Software-Enforced Strict Processor Affinity to Reduce Coherency Traffic in a Cache-Coherent MP System”, Dec. 28, 2004, 5 pages. [cited by applicant]