IP Library Granted Patent US 12,367,148
Granted Patent B2
US 12,367,148 · App. 18/618,483 · Granted Jul 22, 2025

Variable execution time atomic operations

Inventors: Dean E. Walker (Allen, TX); Tony M. Brewer (Plano, TX)
Assignee: Micron Technology, Inc.
G06F12/084
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,367,148
App. No.
18/618,483
Granted
Jul 22, 2025
Kind
B2
Abstract

System and techniques for variable execution time atomic operations are described herein. When an atomic operation for a memory device is received, the run length of the operation is measured. If the run length is beyond a threshold, a cache line for the operation is locked while the operation runs. A result of the operation is queued until it can be written to the cache line. At that point, the cache line is unlocked.

Claims (42)

1. A memory controller comprising:

an interface to a cache line; and

processing circuitry configured to:

classify an atomic operation that is received as a long atomic operation;

lock a cache line that corresponds to the long atomic operation based classifying the atomic operation as a long atomic operation; and

unlock the cache line in response to a write of a result from the long atomic operation to the cache line.

2. The memory controller of claim 1 , wherein the atomic operation is classified as the long atomic operation based on run length.

3. The memory controller of claim 2 , wherein the run length is measured in clock cycles.

4. The memory controller of claim 3 , wherein the atomic operation is classified as the long atomic operation based on the clock cycles being greater than a single clock cycle.

5. The memory controller of claim 1 , wherein the processing circuitry is configured to:

receive a second atomic operation at the memory controller;

detect that a second run length of the second atomic operation is not beyond a threshold;

execute the second atomic operation to produce a second result; and

write the second result to the cache line, wherein the cache line is not locked during execution of the second atomic operation or writing of the second result to the cache line.

6. The memory controller of claim 1 , wherein, to lock the cache line, the processing circuitry is configured to set a tag for the cache line.

7. The memory controller of claim 6 , wherein the tag indicates that an atomic operation is pending.

8. The memory controller of claim 7 , wherein the tag is a bit at an index that corresponds to a pending atomic operation.

9. The memory controller of claim 1 , wherein the processing circuitry is configured to:

obtain a credit from an arbiter of a results queue; and

execute, in response to receiving the credit, the atomic operation to produce the result.

10. The memory controller of claim 9 , wherein the processing circuitry is configured to:

receive a second atomic operation at the memory controller;

detect that a second run length of the second atomic operation is beyond a threshold;

attempt to receive a second credit from the arbiter for the second atomic operation; and

refrain from starting execution of the second atomic operation upon failing to obtain the second credit from the arbiter.

11. The memory controller of claim 9 , wherein total credits available from the arbiter are equal to a number of entries available in the results queue.

12. The memory controller of claim 9 , wherein the processing circuitry is configured to return the credit to the arbiter upon receipt of results after dequeuing from the results queue.

13. A non-transitory machine readable medium including instructions that, when executed by processing circuitry of a memory controller, cause the memory controller to perform operations comprising:

classifying an atomic operation that is received as a long atomic operation;

locking a cache line that corresponds to the long atomic operation based classifying the atomic operation as a long atomic operation; and

unlocking the cache line in response to a write of a result from the long atomic operation to the cache line.

14. The non-transitory machine readable medium of claim 13 , wherein the atomic operation is classified as the long atomic operation based on run length.

15. The non-transitory machine readable medium of claim 14 , wherein the run length is measured in clock cycles.

16. The non-transitory machine readable medium of claim 15 , wherein the atomic operation is classified as the long atomic operation based on the clock cycles being greater than a single clock cycle.

17. The non-transitory machine readable medium of claim 13 , wherein the operations comprise:

receiving a second atomic operation at the memory controller;

detecting that a second run length of the second atomic operation is not beyond a threshold;

executing the second atomic operation to produce a second result; and

writing the second result to the cache line, wherein the cache line is not locked during execution of the second atomic operation or writing of the second result to the cache line.

18. The non-transitory machine readable medium of claim 13 , wherein locking the cache line, the processing circuitry is configured to set a tag for the cache line.

19. The non-transitory machine readable medium of claim 18 , wherein the tag indicates that an atomic operation is pending.

20. The non-transitory machine readable medium of claim 19 , wherein the tag is a bit at an index that corresponds to a pending atomic operation.

Continuity (2)
Continuation 17899184 · Aug 30, 2022
Related Publication 20240311306A1 · Sep 19, 2024
References Cited (48)
US 6389517B1 · Moudgal et al. · 2002 [cited by applicant]
US 6438573B1 · Nilsen · 2002 [cited by applicant]
US 8122229B2 · Wallach et al. · 2012 [cited by applicant]
US 8156307B2 · Wallach et al. · 2012 [cited by applicant]
US 8205066B2 · Brewer et al. · 2012 [cited by applicant]
US 8423745B1 · Brewer · 2013 [cited by applicant]
US 8561037B2 · Brewer et al. · 2013 [cited by applicant]
US 9652385B1 · Chadwick et al. · 2017 [cited by applicant]
US 9710384B2 · Wallach et al. · 2017 [cited by applicant]
US 10990391B2 · Brewer · 2021 [cited by applicant]
US 10990392B2 · Brewer · 2021 [cited by applicant]
US 20080270708A1 · Warner et al. · 2008 [cited by applicant]
US 20120079177A1 · Brewer et al. · 2012 [cited by applicant]
US 20130332711A1 · Leidel et al. · 2013 [cited by applicant]
US 20150046655A1 · Nystad et al. · 2015 [cited by applicant]
US 20150143350A1 · Brewer · 2015 [cited by applicant]
US 20150206561A1 · Brewer et al. · 2015 [cited by applicant]
US 20180032435A1 · Parker et al. · 2018 [cited by applicant]
US 20190042214A1 · Brewer · 2019 [cited by applicant]
US 20190171604A1 · Brewer · 2019 [cited by applicant]
US 20190243700A1 · Brewer · 2019 [cited by applicant]
US 20190303154A1 · Brewer · 2019 [cited by applicant]
US 20190324928A1 · Brewer · 2019 [cited by applicant]
US 20190340019A1 · Brewer · 2019 [cited by applicant]
US 20190340020A1 · Brewer · 2019 [cited by applicant]
US 20190340023A1 · Brewer · 2019 [cited by applicant]
US 20190340024A1 · Brewer · 2019 [cited by applicant]
US 20190340027A1 · Brewer · 2019 [cited by applicant]
US 20190340035A1 · Brewer · 2019 [cited by applicant]
US 20190340154A1 · Brewer · 2019 [cited by applicant]
US 20190340155A1 · Brewer · 2019 [cited by applicant]
US 20210055964A1 · Brewer · 2021 [cited by applicant]
US 20210064374A1 · Brewer · 2021 [cited by applicant]
US 20210064435A1 · Brewer · 2021 [cited by applicant]
US 20210149600A1 · Brewer · 2021 [cited by applicant]
US 20240070074A1 · Walker et al. · 2024 [cited by applicant]
CN 117632790A · 2024 [cited by applicant]
WO WO2010051167A1 · 2010 [cited by applicant]
WO WO2013184380A2 · 2013 [cited by applicant]
WO WO2019191740A1 · 2019 [cited by applicant]
WO WO2019191742A1 · 2019 [cited by applicant]
WO WO2019191744A1 · 2019 [cited by applicant]
WO WO2019217287A1 · 2019 [cited by applicant]
WO WO2019217295A1 · 2019 [cited by applicant]
WO WO2019217324A1 · 2019 [cited by applicant]
WO WO2019217326A1 · 2019 [cited by applicant]
WO WO2019217329A1 · 2019 [cited by applicant]
WO WO2019089816A3 · 2020 [cited by applicant]