Thread synchronization mechanism

US12067428B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12067428-B2
Application numberUS-202017128525-A
CountryUS
Kind codeB2
Filing dateDec 21, 2020
Priority dateDec 21, 2020
Publication dateAug 20, 2024
Grant dateAug 20, 2024

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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.

Assignees

Inventors

Classifications

  • Barrier synchronisation · CPC title

  • Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues · CPC title

  • G06T1/20Primary

    Processor architectures; Processor configuration, e.g. pipelining · CPC title

  • G06F9/52Primary

    Program synchronisation; Mutual exclusion, e.g. by means of semaphores · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12067428B2 cover?
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 cons…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06T1/20. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 20 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 6 related publications on this page (citations in our corpus or others sharing the same primary CPC).