Multi-threaded asynchronous frame processing

US11069019B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11069019-B2
Application numberUS-201715587341-A
CountryUS
Kind codeB2
Filing dateMay 4, 2017
Priority dateMay 4, 2017
Publication dateJul 20, 2021
Grant dateJul 20, 2021

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.

Parallel processing of frames by a first and second thread is disclosed. In particular, the systems and methods can process multiple frames in a pipelines manner by a JavaScript thread and a UI thread. The system first executes a first frame by a JavaScript thread during a first time interval. The system then executes the first frame by a UI thread during a second time interval. While the UI thread is executing the first frame, the JavaScript thread executes a second thread in parallel during the second time internal. As a result, latency is added to UI processing while maintaining the same throughput, to add parallelism. The JavaScript and UI threads can be handled by different processors (e.g., using a multi-core processor), thereby adding further parallelism and increasing the efficiency of processing an event.

First claim

Opening claim text (preview).

We claim: 1. A computer-readable storage medium storing instructions that, when executed by a computing system, cause the computing system to perform operations for parallel processing of a first thread and a second thread, the operations comprising: processing a first frame on the first thread on a first processor over a first time interval, wherein the first thread is configured for event processing; processing the first frame on the second thread on a second processor over a second time interval overlapping with the first time interval such that the second thread processes the first frame in parallel with the first thread during an overlapping portion of the first and second time intervals, wherein the second thread is configured to interface with an operating system, and wherein the first thread is configured to be implemented in parallel to the second thread over the second time interval such that the first thread processes a second frame after processing the first frame; and rendering, by the second thread, the first frame after processing the first frame is complete. 2. The computer-readable storage medium of claim 1 wherein the first thread is a JavaScript thread. 3. The computer-readable storage medium of claim 1 wherein the second thread is a User Interface thread. 4. The computer-readable storage medium of claim 1 wherein the first time interval and the second time interval are offset by a length of time. 5. The computer-readable storage medium of claim 4 wherein the length of time is time taken to process the first frame or the second frame. 6. The computer-readable storage medium of claim 5 wherein the time taken to process the first frame or the second frame is 16 milliseconds. 7. The computer-readable storage medium of claim 1 wherein the first frame is rendered to a graphical user interface coupled to the first processor or the second processor. 8. A method performed by a computing system having memory and a processor for parallel processing of a first thread and a second thread, comprising: processing a first frame on the first thread on the processor over a first time interval, wherein the first thread is configured for event processing; processing the first frame on the second thread on the processor over a second time interval overlapping with the first time interval such that the second thread processes the first frame in parallel with the first thread during an overlapping portion of the first and second time intervals, wherein the second thread is configured to interface with an operating system, and wherein the first thread is configured to be implemented in parallel to the second thread over the second time interval such that the first thread processes a second frame after processing the first frame; and rendering, by the second thread, the first frame after processing the first frame is complete. 9. The method of claim 8 wherein the first thread is a JavaScript thread. 10. The method of claim 8 wherein the second thread is a User Interface thread. 11. The method of claim 8 wherein the first time interval and the second time interval are offset by a length of time. 12. The method of claim 11 wherein the length of time is time taken to process the first frame or the second frame. 13. The method of claim 12 wherein the time taken to process the first frame or the second frame is 16 milliseconds. 14. The method of claim 8 wherein the first frame is rendered to a graphical user interface coupled to the processor. 15. A system for processing a first thread and a second thread in parallel, comprising: at least one hardware processor coupled to a network; and a memory configured to store processor-executable components, wherein the processor-executable components further comprises: a component configured to process a first frame on the first thread on the processor over a first time interval, wherein the first thread is configured for event processing; and a component configured to process the second thread on the processor over a second time interval overlapping with the first time interval, wherein: the second thread is configured to process the first frame in parallel with the first thread during an overlapping portion of the first and second time intervals, the first thread is configured to be implemented in parallel to the second thread over the second time interval such that the first thread processes a second frame after processing the first frame, and the second thread is configured to render the first frame after processing the first frame is complete. 16. The system of claim 15 wherein the first thread is a JavaScript thread. 17. The system of claim 15 wherein the second thread is a User Interface thread. 18. The system of claim 15 wherein the first time interval and the second time interval are offset by a length of time. 19. The system of claim 18 wherein the length of time is time taken to process the first frame or the second frame. 20. The system of claim 15 further comprising: a graphical user interface to render the first frame or the second frame.

Assignees

Inventors

Classifications

  • from multiple instruction streams, e.g. multistreaming · CPC title

  • Thread control instructions · CPC title

  • G06T1/20Primary

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

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

  • using a plurality of independent parallel functional units · 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 US11069019B2 cover?
Parallel processing of frames by a first and second thread is disclosed. In particular, the systems and methods can process multiple frames in a pipelines manner by a JavaScript thread and a UI thread. The system first executes a first frame by a JavaScript thread during a first time interval. The system then executes the first frame by a UI thread during a second time interval. While the UI th…
Who is the assignee on this patent?
Facebook Inc
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 Jul 20 2021 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 7 related publications on this page (citations in our corpus or others sharing the same primary CPC).