IP Library › Granted Patent US 12,386,616
Granted Patent B2
US 12,386,616 · App. 18/669,104 · Granted Aug 12, 2025

Detecting infinite loops in a programmable atomic transaction

Inventor: Tony Brewer (Plano, TX)
Assignee: Micron Technology, Inc.
G06F9/3004G06F9/325G06F9/466G06F12/0815G06F12/0875G06F15/781
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,386,616
App. No.
18/669,104
Granted
Aug 12, 2025
Kind
B2
Abstract

Disclosed in some examples are systems, methods, devices, and machine-readable mediums to detect and terminate programmable atomic transactions that are stuck in an infinite loop. In order to detect and terminate these transactions, the programmable atomic unit may use an instruction counter that increments each time an instruction is executed during execution of a programmable atomic transaction. If the instruction counter meets or exceeds a threshold instruction execution limit without reaching the termination instruction, the programmable atomic transaction may be terminated, all resources used (e.g., memory locks) may be freed, and a response may be sent to a calling processor.

Claims (37)

1. An apparatus comprising:

a programmable atomic unit coupled to a memory controller and comprising a processor, the processor configured to perform operations comprising:

receiving a request to execute a programmable atomic transaction at the programmable atomic unit of the memory controller;

locate instructions of the programmable atomic transaction in a memory of the programmable atomic unit;

execute the instructions of the programmable atomic transaction until an instruction counter exceeds a specified instruction execution limit or until a termination instruction is reached; and if the instruction counter exceeded the specified instruction execution limit, terminating execution of the programmable atomic transaction.

2. The apparatus of claim 1 , wherein the programmable atomic unit is further configured to send a response to a calling processor indicating the termination of the programmable atomic transaction due to the instruction counter exceeding the specified instruction execution limit.

3. The apparatus of claim 1 , wherein the programmable atomic unit is further configured to release a lock on memory resources used during the execution of the programmable atomic transaction upon termination.

4. The apparatus of claim 1 , wherein the memory of the programmable atomic unit includes a partitioned instruction memory, and the instructions of the programmable atomic transaction are located in one or more specified partitions of the instruction memory.

5. The apparatus of claim 1 , wherein the instruction execution limit is received from a process that registers the programmable atomic transaction.

6. The apparatus of claim 1 , wherein the programmable atomic unit is further configured to determine the instruction execution limit by analyzing a count of a number of instructions in the programmable atomic transaction.

7. The apparatus of claim 1 , wherein the processor is further configured to perform operations comprising:

determining that a program counter of the programmable atomic transaction is pointing to an instruction that is in a memory partition with an index that is past a sum of a partition index in which the programmable atomic transaction started and a partition count of the programmable atomic transaction; and

responsive to determining that the program counter of the programmable atomic transaction is pointing to the instruction that is in the memory partition with the index that is past a sum of the partition index in which the programmable atomic transaction started and the partition count of the programmable atomic transaction, terminating the programmable atomic transaction with an error.

8. A method comprising:

at a processor of a programmable atomic unit coupled to a memory controller;

receiving a request to execute a programmable atomic transaction at the programmable atomic unit of the memory controller;

locate instructions of the programmable atomic transaction in a memory of the programmable atomic unit;

execute the instructions of the programmable atomic transaction until an instruction counter exceeds a specified instruction execution limit or until a termination instruction is reached; and if the instruction counter exceeded the specified instruction execution limit, terminating execution of the programmable atomic transaction.

9. The method of claim 8 , wherein the method further comprises sending a response to a calling processor indicating the termination of the programmable atomic transaction due to the instruction counter exceeding the specified instruction execution limit.

10. The method of claim 8 , further comprising releasing a lock on memory resources used during the execution of the programmable atomic transaction upon termination.

11. The method of claim 8 , wherein the memory of the programmable atomic unit includes a partitioned instruction memory, and the instructions of the programmable atomic transaction are located in one or more specified partitions of the instruction memory.

12. The method of claim 8 , wherein the instruction execution limit is received from a process that registers the programmable atomic transaction.

13. The method of claim 8 , further comprising determining the instruction execution limit by analyzing a count of a number of instructions in the programmable atomic transaction.

14. The method of claim 8 , further comprising:

determining that a program counter of the programmable atomic transaction is pointing to an instruction that is in a memory partition with an index that is past a sum of a partition index in which the programmable atomic transaction started and a partition count of the programmable atomic transaction; and

responsive to determining that the program counter of the programmable atomic transaction is pointing to the instruction that is in the memory partition with the index that is past a sum of the partition index in which the programmable atomic transaction started and the partition count of the programmable atomic transaction, terminating the programmable atomic transaction with an error.

15. A non-transitory machine-readable medium, storing instructions, which when executed by a programmable atomic unit coupled to a memory controller, cause the programmable atomic unit to perform operations comprising:

receiving a request to execute a programmable atomic transaction at the programmable atomic unit of the memory controller;

locate instructions of the programmable atomic transaction in a memory of the programmable atomic unit;

execute the instructions of the programmable atomic transaction until an instruction counter exceeds a specified instruction execution limit or until a termination instruction is reached; and if the instruction counter exceeded the specified instruction execution limit, terminating execution of the programmable atomic transaction.

16. The non-transitory machine-readable medium of claim 15 , wherein the operations further comprise sending a response to a calling processor indicating the termination of the programmable atomic transaction due to the instruction counter exceeding the specified instruction execution limit.

17. The non-transitory machine-readable medium of claim 15 , wherein the operations further comprise releasing a lock on memory resources used during the execution of the programmable atomic transaction upon termination.

18. The non-transitory machine-readable medium of claim 15 , wherein the memory of the programmable atomic unit includes a partitioned instruction memory, and the instructions of the programmable atomic transaction are located in one or more specified partitions of the instruction memory.

19. The non-transitory machine-readable medium of claim 15 , wherein the instruction execution limit is received from a process that registers the programmable atomic transaction.

20. The non-transitory machine-readable medium of claim 15 , wherein the operations further comprise:

determining that a program counter of the programmable atomic transaction is pointing to an instruction that is in a memory partition with an index that is past a sum of a partition index in which the programmable atomic transaction started and a partition count of the programmable atomic transaction; and

responsive to determining that the program counter of the programmable atomic transaction is pointing to the instruction that is in the memory partition with the index that is past a sum of the partition index in which the programmable atomic transaction started and the partition count of the programmable atomic transaction, terminating the programmable atomic transaction with an error.

Continuity (3)
Continuation 18111744 · Feb 20, 2023
Continuation 17074834 · Oct 20, 2020
Related Publication 20240311149A1 · Sep 19, 2024
References Cited (153)
US 7197445B1 · Deepak et al. · 2007 [cited by applicant]
US 7447794B1 · Miller et al. · 2008 [cited by applicant]
US 7941641B1 · Jung · 2011 [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 8560816B2 · Goodman et al. · 2013 [cited by applicant]
US 8561037B2 · Brewer et al. · 2013 [cited by applicant]
US 8739164B2 · Chung et al. · 2014 [cited by applicant]
US 9355109B2 · Archak et al. · 2016 [cited by applicant]
US 9710384B2 · Wallach et al. · 2017 [cited by applicant]
US 10007520B1 · Ross · 2018 [cited by applicant]
US 10642538B1 · MacLaren et al. · 2020 [cited by applicant]
US 10733171B2 · Park · 2020 [cited by applicant]
US 10783295B1 · Dong et al. · 2020 [cited by applicant]
US 10896001B1 · Volpe et al. · 2021 [cited by applicant]
US 10990391B2 · Brewer · 2021 [cited by applicant]
US 10990392B2 · Brewer · 2021 [cited by applicant]
US 11403023B2 · Brewer · 2022 [cited by applicant]
US 11436187B2 · Brewer · 2022 [cited by applicant]
US 11586439B2 · Brewer · 2023 [cited by applicant]
US 11693690B2 · Brewer · 2023 [cited by applicant]
US 11740929B2 · Brewer · 2023 [cited by applicant]
US 11829323B2 · Brewer · 2023 [cited by applicant]
US 11989556B2 · Brewer · 2024 [cited by applicant]
US 12020062B2 · Brewer · 2024 [cited by applicant]
US 20060004882A1 · Itikarlapalli et al. · 2006 [cited by applicant]
US 20080040587A1 · Burke et al. · 2008 [cited by applicant]
US 20080270708A1 · Warner et al. · 2008 [cited by applicant]
US 20090198920A1 · Arimilli et al. · 2009 [cited by applicant]
US 20090282410A1 · Moir et al. · 2009 [cited by applicant]
US 20100106934A1 · Calder et al. · 2010 [cited by applicant]
US 20100205408A1 · Chung et al. · 2010 [cited by applicant]
US 20100218049A1 · Mostow · 2010 [cited by applicant]
US 20110246724A1 · Marathe et al. · 2011 [cited by applicant]
US 20120066457A1 · Hertzberg et al. · 2012 [cited by applicant]
US 20120079177A1 · Brewer et al. · 2012 [cited by applicant]
US 20120159127A1 · Spradlin · 2012 [cited by applicant]
US 20120198205A1 · Eilert · 2012 [cited by applicant]
US 20120311544A1 · Higgs · 2012 [cited by examiner]
US 20120323972A1 · Ostrovsky · 2012 [cited by applicant]
US 20130332711A1 · Leidel et al. · 2013 [cited by applicant]
US 20140089635A1 · Shifer et al. · 2014 [cited by applicant]
US 20140136799A1 · Fortin · 2014 [cited by applicant]
US 20140164677A1 · Borchers et al. · 2014 [cited by applicant]
US 20140195784A1 · Ivanov · 2014 [cited by applicant]
US 20140281442A1 · O'Sullivan et al. · 2014 [cited by applicant]
US 20140325126A1 · Choi et al. · 2014 [cited by applicant]
US 20140344236A1 · Xiao et al. · 2014 [cited by applicant]
US 20150089173A1 · Chhabra et al. · 2015 [cited by applicant]
US 20150095600A1 · Bahnsen et al. · 2015 [cited by applicant]
US 20150106595A1 · Khot et al. · 2015 [cited by applicant]
US 20150143350A1 · Brewer · 2015 [cited by applicant]
US 20150178187A1 · Sheffler et al. · 2015 [cited by applicant]
US 20150188816A1 · Snyder et al. · 2015 [cited by applicant]
US 20150206561A1 · Brewer et al. · 2015 [cited by applicant]
US 20150278097A1 · Kelm et al. · 2015 [cited by applicant]
US 20150293835A1 · Park et al. · 2015 [cited by applicant]
US 20160283237A1 · Pardo et al. · 2016 [cited by applicant]
US 20170083257A1 · Jain et al. · 2017 [cited by applicant]
US 20170177365A1 · Doshi et al. · 2017 [cited by applicant]
US 20170185354A1 · Doshi et al. · 2017 [cited by applicant]
US 20180173625A1 · Moudgill et al. · 2018 [cited by applicant]
US 20180203783A1 · Ishizaki · 2018 [cited by applicant]
US 20180357065A1 · Bhartia et al. · 2018 [cited by applicant]
US 20190004810A1 · Jayasimha et al. · 2019 [cited by applicant]
US 20190004851A1 · Doshi et al. · 2019 [cited by applicant]
US 20190042214A1 · Brewer · 2019 [cited by applicant]
US 20190065188A1 · Shippy et al. · 2019 [cited by applicant]
US 20190171604A1 · Brewer · 2019 [cited by applicant]
US 20190243700A1 · Brewer · 2019 [cited by applicant]
US 20190272119A1 · Brewer · 2019 [cited by applicant]
US 20190303154A1 · Brewer · 2019 [cited by applicant]
US 20190303328A1 · Balski et al. · 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 20200026461A1 · Tune · 2020 [cited by applicant]
US 20200310684A1 · Fowler · 2020 [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 20210075633A1 · Sen et al. · 2021 [cited by applicant]
US 20210149600A1 · Brewer · 2021 [cited by applicant]
US 20210326255A1 · Gu et al. · 2021 [cited by applicant]
US 20220121381A1 · Brewer · 2022 [cited by applicant]
US 20220121474A1 · Brewer · 2022 [cited by applicant]
US 20220121476A1 · Brewer · 2022 [cited by applicant]
US 20220121617A1 · Brewer · 2022 [cited by applicant]
US 20230004524A1 · Brewer · 2023 [cited by applicant]
US 20230027534A1 · Brewer · 2023 [cited by applicant]
US 20230195348A1 · Brewer · 2023 [cited by applicant]
US 20230205524A1 · Brewer · 2023 [cited by applicant]
US 20230251894A1 · Brewer · 2023 [cited by applicant]
US 20240054100A1 · Brewer · 2024 [cited by applicant]
CN 103299272A · 2013 [cited by applicant]
CN 103473181A · 2013 [cited by applicant]
CN 105359099A · 2016 [cited by applicant]
CN 105550126A · 2016 [cited by applicant]
CN 108027804A · 2018 [cited by applicant]
CN 110168500A · 2019 [cited by applicant]
CN 111656334A · 2020 [cited by applicant]
CN 111656335A · 2020 [cited by applicant]
CN 114385240A · 2022 [cited by applicant]
CN 114385241A · 2022 [cited by applicant]
CN 114388040A · 2022 [cited by applicant]
CN 114388040B · 2023 [cited by applicant]
CN 116547644A · 2023 [cited by applicant]
CN 116583831A · 2023 [cited by applicant]
CN 116601601A · 2023 [cited by applicant]
EP 0217168A2 · 1987 [cited by applicant]
WO WO2010051167A1 · 2010 [cited by applicant]
WO WO2010151813A1 · 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 WO2019197811A1 · 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]
WO WO2022086789A1 · 2022 [cited by applicant]
WO WO2022086791A · 2022 [cited by applicant]
WO WO2022115166A2 · 2022 [cited by applicant]
WO WO2022115166A3 · 2022 [cited by applicant]
U.S. Appl. No. 18/748,957, filed Jun. 20, 2024, Method of Executing Programmable Atomic Unit Resources Within a Multi-Process System [cited by applicant]
“Chinese Application Serial No. 202111224820.5, Office Action mailed Aug. 14, 2024”, with English translation, 12 pages. [cited by applicant]
“Chinese Application Serial No. 202111215429.9, Voluntary Amendment filed Aug. 12, 2022”, with English claims, 26 pages. [cited by applicant]
“Chinese Application Serial No. 202111222969.X, Voluntary Amendment filed Aug. 11, 2022”, with English claims, 18 pages. [cited by applicant]
“Chinese Application Serial No. 202111215429.9, Decision of Rejection mailed Mar. 25, 2023”, with WIPO machine English translation, 17 pages. [cited by applicant]
“Chinese Application Serial No. 202111215429.9, Office Action mailed Oct. 26, 2022”, with English translation, 16 pages. [cited by applicant]
“Chinese Application Serial No. 202111222969.X, Office Action mailed Nov. 22, 2022”, with English translation, 9 pages. [cited by applicant]
“International Application Serial No. PCT/US2021/053792, International Preliminary Report on Patentability mailed May 4, 2023”, 6 pgs. [cited by applicant]
“International Application Serial No. PCT/US2021/053792, International Search Report mailed Jul. 28, 2022”, 4 pgs. [cited by applicant]
“International Application Serial No. PCT/US2021/053792, Written Opinion mailed Jul. 28, 2022”, 4 pgs. [cited by applicant]
“International Application Serial No. PCT/US2021/055038, International Preliminary Report on Patentability mailed May 4, 2023”, 5 pgs. [cited by applicant]
“International Application Serial No. PCT/US2021/055038, International Search Report mailed Jan. 28, 2022”, 3 pgs. [cited by applicant]
“International Application Serial No. PCT/US2021/055038, Written Opinion mailed Jan. 28, 2022”, 3 pgs. [cited by applicant]
“International Application Serial No. PCT/US2021/055050, International Preliminary Report on Patentability mailed May 4, 2023”, 5 pgs. [cited by applicant]
“International Application Serial No. PCT/US2021/055050, International Search Report mailed Feb. 3, 2022”, 3 pgs. [cited by applicant]
“International Application Serial No. PCT/US2021/055050, Written Opinion mailed Feb. 3, 2022”, 3 pgs. [cited by applicant]
Hennessy, John L, et al., “Computer Architecture—A Quantitative Approach (4th Edition)”, Elsevier, <https://app.knovel.eom/hotlink/toc/id:kpCAAQAE02/computer-architecture/computer-architecture>, (2007), 107 pgs. [cited by applicant]
Wang, H, et al., “An Enhanced HyperTransport Controller with Cache Coherence Support for Multiple-CMP”, 2009 IEEE International Conference on Networking, Architecture, and Storage, doi: 10.1109/NAS.2009.46, (2009), 215-… [cited by applicant]