Adaptive Lock for a Computing System having Multiple Runtime Environments and Multiple Processing Units
US-2016092280-A1 · Mar 31, 2016 · US
US11080064B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11080064-B2 |
| Application number | US-201414525850-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 28, 2014 |
| Priority date | Oct 28, 2014 |
| Publication date | Aug 3, 2021 |
| Grant date | Aug 3, 2021 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Atomic instructions, including a Compare And Swap Register, a Load and AND Register, and a Load and OR Register instruction, use registers instead of storage to communicate and share information in a multi-threaded processor. The registers are accessible to multiple threads of the multi-threaded processor, and the instructions operate on these shared registers. Access to the shared registers is controlled by the instructions via interlocking.
Opening claim text (preview).
What is claimed is: 1. A computer system for facilitating control in a multi-threaded processor, said computer system comprising: a memory; and the multi-threaded processor in communications with the memory, wherein the computer system is configured for: obtaining, by the multi-threaded processor, a first instruction to be executed to perform a first operation and a second instruction to be executed to perform a second operation, the first instruction being initiated by a first thread of the multi-threaded processor and the second instruction being initiated by a second thread of the multi-threaded processor; initiating execution, by the multi-threaded processor, of the first instruction to perform the first operation and the second instruction to perform the second operation, the first operation and the second operation each comprising multiple sub-operations to be performed atomically, wherein the first instruction enters a first pipeline and the second instruction enters a second pipeline; determining, by the multi-threaded processor, whether the first instruction and the second instruction are to continue to execute, the determining using interlocking to determine whether the first instruction or the second instruction has atomic access to one or more registers shared by the first thread, the second thread, and one or more other threads of the multi-threaded processor, wherein the one or more registers are accessed by multiple threads during execution of instructions and comprise one or more hardware registers separate from memory of the multi-threaded processor, and wherein the interlocking is to control inter-thread and intra-thread operations by guaranteeing atomicity with accesses to the one or more registers shared by the first thread, the second thread, and the one or more other threads, wherein the first thread, the second thread, and the one or more other threads can each individually freely write the one or more registers, wherein the determining is based on utilizing a register to generate a random number to select, based on a most significant bit of the random number either the first pipeline or the second pipeline to set an interlock, wherein the interlock comprises a value placed in a hardware register accessible to the multiple threads, in order to provide the atomic access to the one or more registers to the first instruction or the second instruction; continuing execution, by the multi-threaded processor, of the first instruction based on the interlocking indicating the first instruction is to execute, the continuing execution comprising performing the first operation including using at least one shared register of the one or more registers shared by the first thread, the second thread, and the one or more other threads of the multi-threaded processor to perform the first operation; rejecting execution, by the multi-threaded processor, of the second instruction based on the interlocking indicating a prior instruction has atomic access to the one or more registers; and re-executing, by the multi-threaded processor, the second instruction, at completion of execution of the first instruction. 2. The computer system of claim 1 , wherein the rejecting comprises determining that an interlock of the second instruction is set. 3. The computer system of claim 1 , wherein the first instruction comprises a compare and swap register instruction. 4. The computer system of claim 1 , wherein the first instruction comprises a load and AND register instruction. 5. The computer system of claim 1 , wherein the first instruction comprises a load and OR register instruction. 6. A computer program product for facilitating control in a multi-threaded processor, said computer program product comprising: a computer readable storage medium readable by the multi-threaded processor and storing instructions for execution by the multi-threaded processor for performing a method comprising: obtaining, by the multi-threaded processor, a first instruction to be executed to perform a first operation and a second instruction to be executed to perform a second operation, the first instruction being initiated by a first thread of the multi-threaded processor and the second instruction being initiated by a second thread of the multi-threaded processor; initiating execution, by the multi-threaded processor, of the first instruction to perform the first operation and the second instruction to perform the second operation, the first operation and the second operation each comprising multiple sub-operations to be performed atomically, wherein the first instruction enters a first pipeline and the second instruction enters a second pipeline; determining, by the multi-threaded processor, whether the first instruction and the second instruction are to continue to execute, the determining using interlocking to determine whether the first instruction or the second instruction has atomic access to one or more registers shared by the first thread, the second thread, and one or more other threads of the multi-threaded processor, wherein the one or more registers are accessed by multiple threads during execution of instructions and comprise one or more hardware registers separate from memory of the multi-threaded processor, and wherein the interlocking is to control inter-thread and intra-thread operations by guaranteeing atomicity with accesses to the one or more registers shared by the first thread, the second thread, and the one or more other threads, wherein the first thread, the second thread, and the one or more other threads can each individually freely write the one or more registers, wherein the determining is based on utilizing a register to generate a random number to select, based on a most significant bit of the random number either the first pipeline or the second pipeline to set an interlock, wherein the interlock comprises a value placed in a hardware register accessible to the multiple threads, in order to provide the atomic access to the one or more registers to the first instruction or the second instruction; continuing execution, by the multi-threaded processor, of the first instruction based on the interlocking indicating the first instruction is to execute, the continuing execution comprising performing the first operation including using at least one shared register of the one or more registers shared by the first thread, the second thread, and the one or more other threads of the multi-threaded processor to perform the first operation; rejecting execution, by the multi-threaded processor, of the second instruction based on the interlocking indicating a prior instruction has atomic access to the one or more registers; and re-executing, by the multi-threaded processor, the second instruction, at completion of execution of the first instruction. 7. The computer program product of claim 6 , wherein the rejecting comprises determining that an interlock of the second instruction is set. 8. The computer program product of claim 6 , wherein the first instruction comprises one of a compare and swap register instruction, a load and AND register instruction, or a load and OR register instruction.
Compare instructions, e.g. Greater-Than, Equal-To, MINMAX · CPC title
from multiple instruction streams, e.g. multistreaming · CPC title
Logical and Boolean instructions, e.g. XOR, NOT · CPC title
Thread control instructions · CPC title
Atomic · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.