Barrierless and fenceless shared memory synchronization
US-2021286619-A1 · Sep 16, 2021 · US
US12067428B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12067428-B2 |
| Application number | US-202017128525-A |
| Country | US |
| Kind code | B2 |
| Filing date | Dec 21, 2020 |
| Priority date | Dec 21, 2020 |
| Publication date | Aug 20, 2024 |
| Grant date | Aug 20, 2024 |
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.
An apparatus to facilitate thread synchronization is disclosed. The apparatus comprises one or more processors to execute a producer thread to generate a plurality of commands, execute a consumer thread to process the plurality of commands and synchronize the producer thread with the consumer thread, including updating a producer fence value upon generation of in-order commands, updating a consumer fence value upon processing of the in-order commands and performing a synchronization operation based on the consumer fence value, wherein the producer fence value and the consumer fence value each correspond to an order position of an in-order command.
Opening claim text (preview).
What is claimed is: 1. An apparatus to facilitate thread synchronization, comprising: one or more processors to execute a producer thread to generate a plurality of commands, execute a consumer thread to process the plurality of commands and synchronize the producer thread with the consumer thread, including updating a producer fence value upon generation of in-order commands, updating a consumer fence value upon processing of the in-order commands and performing a synchronization operation based on the consumer fence value, wherein the producer fence value and the consumer fence value each correspond to an order position of the in-order commands. 2. The apparatus of claim 1 , wherein the synchronization operation synchronizes the producer thread and the consumer thread up to an in-order command associated with the consumer fence value. 3. The apparatus of claim 2 , wherein the one or more processors initiate the synchronization operation receiving an application command. 4. The apparatus of claim 2 , wherein executing the producer thread comprises producing a first of the plurality of commands and determining whether the first command is the in-order command. 5. The apparatus of claim 4 , wherein executing the producer thread further comprises updating the producer fence value upon determining that the first command is the in-order command. 6. The apparatus of claim 5 , further comprises inserting the first command into a command queue upon a determination that the first command is not the in-order command. 7. The apparatus of claim 6 , wherein executing the consumer thread comprises retrieving the first command from the command queue. 8. The apparatus of claim 7 , wherein executing the consumer thread further comprises determining whether the first command is the in-order command. 9. The apparatus of claim 8 , wherein executing the consumer thread further comprises updating the consumer fence value upon determining that the first command is the in-order command. 10. The apparatus of claim 7 , wherein executing the consumer thread further comprises executing the first command. 11. A method to facilitate thread synchronization, comprising: executing a producer thread to generate a plurality of commands; executing a consumer thread to process the plurality of commands; and synchronizing the producer thread with the consumer thread, including: updating a producer fence value upon generation of in-order commands; updating a consumer fence value upon processing of the in-order commands; and performing a synchronization operation based on the consumer fence value, wherein the producer fence value and the consumer fence value each correspond to an order position of the in-order commands. 12. The method of claim 11 , wherein the synchronization operation synchronizes the producer thread and the consumer thread up to an in-order command associated with the consumer fence value. 13. The method of claim 12 , wherein executing the producer thread comprises: producing a first of the plurality of commands; determining whether the first command is the in-order command; and updating the producer fence value upon determining that the first command is the in-order command. 14. The method of claim 13 , wherein executing the producer thread further comprises inserting the first command into a command queue upon a determination that the first command is not the in-order command. 15. The method of claim 14 , wherein executing the consumer thread comprises: retrieving the first command from the command queue; and executing the first command. 16. The method of claim 15 , wherein executing the consumer thread further comprises: determining whether the first command is the in-order command; and updating the consumer fence value upon determining that the first command is the in-order command. 17. At least one non-transitory computer readable medium having instructions stored thereon, which when executed by one or more processors, cause the processors to: execute a producer thread to generate a plurality of commands; execute a consumer thread to process the plurality of commands; and synchronize the producer thread with the consumer thread, including: updating a producer fence value upon generation of in-order commands; updating a consumer fence value upon processing of the in-order commands; and performing a synchronization operation based on the consumer fence value, wherein the producer fence value and the consumer fence value each correspond to an order position of the in-order commands. 18. The computer readable medium of claim 17 , wherein executing the producer thread comprises: producing a first of the plurality of commands; determining whether the first command is an in-order command; and updating the producer fence value upon determining that the first command is the in-order command. 19. The computer readable medium of claim 18 , executing the producer thread further comprises inserting the first command into a command queue upon a determination that the first command is not the in-order command. 20. The computer readable medium of claim 19 , wherein executing the consumer thread comprises: retrieving the first command from the command queue; and executing the first command. 21. The computer readable medium of claim 20 , wherein executing the consumer thread further comprises: determining whether the first command is the in-order command; and updating the consumer fence value upon determining that the first command is the in-order command.
Barrier synchronisation · CPC title
Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues · CPC title
Processor architectures; Processor configuration, e.g. pipelining · CPC title
Program synchronisation; Mutual exclusion, e.g. by means of semaphores · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.