Staggered software synchronization

US11704167B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11704167-B2
Application numberUS-202217888082-A
CountryUS
Kind codeB2
Filing dateAug 15, 2022
Priority dateJan 31, 2020
Publication dateJul 18, 2023
Grant dateJul 18, 2023

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.

Approaches in accordance with various embodiments can reduce scheduling delays due to concurrent processing requests, as may involve VSyncs in multi-streaming systems. The software synchronization signals can be staggered relative to each other by offsetting an initial synchronization signal. These software synchronization signals can be readjusted over time such that each synchronization signal maintains the same relative offset, as may be with respect to other applications or containers.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method, comprising: assigning a first VSync offset for a first stream of a multi-streaming system, the multi-streaming system corresponding to a plurality of individual streams having an associated synchronization period; selecting a next stream of the multi-streaming system; determining a largest sub-interval between already assigned VSync offsets within the synchronization period; assigning a second VSync offset corresponding to a midpoint of the determined largest sub-interval; and storing VSync offset assignments for use in performing subsequent operations for the individual streams. 2. The computer-implemented method of claim 1 , further comprising: scheduling a time to perform a VSync operation using the first VSync offset; and transmitting a signal to perform the VSync operation when a duration of time equivalent to the time to perform the VSync operation has elapsed. 3. The computer-implemented method of claim 1 , wherein the first VSync offset is assigned by staggering the first VSync offset for the stream based on a number of individual streams in the multi-streaming system. 4. The computer-implemented method of claim 1 , wherein each stream of at least two streams of the multi-streaming system corresponds to a separate container corresponding to a separate instance of an operating environment. 5. The computer-implemented method of claim 1 , wherein assigning the first VSync offset for the first stream comprises applying a randomizer using a seed initialized based on a value unique to the first stream. 6. The computer-implemented method of claim 1 , wherein assigning the first VSync offset for the first stream comprises: dividing each processing period by a number of individual streams corresponding to the multi-streaming system to determine a quotient; assigning a different stream identifier to each individual stream; and assigning a different coefficient to each stream identifier, wherein an initial VSync offset for any individual stream of the multi-streaming system is the product of the quotient and the coefficient of the stream identifier corresponding to the individual stream. 7. The computer-implemented method of claim 6 , wherein the number of individual streams corresponding to the multi-streaming system is equal to a number of streams the multi-streaming system is able to support. 8. The computer-implemented method of claim 1 , further comprising: calculating the second VSync offset for the next stream; and maintaining a staggered VSync schedule by dynamically adjusting the second VSync offset of the next stream of the multi-streaming system. 9. A system, comprising: a network interface to communicate data over a network with a plurality of client devices over a plurality of steams; and one or more processing units configured to: assign a first VSync offset for a first stream of a multi-streaming system, the multi-streaming system corresponding to a plurality of individual streams having an associated synchronization period; select a next stream of the multi-streaming system; determine a largest sub-interval between already assigned VSync offsets within the synchronization period; assign a second VSync offset corresponding to a midpoint of the determined largest sub-interval; and store VSync offset assignments for use in performing subsequent operations for the individual streams. 10. The system of claim 9 , wherein at least one processing unit of the one or more processing units is further configured to: schedule a time to perform a VSync operation using the first VSync offset; and transmit a signal to perform the VSync operation when a duration of time equivalent to the time to perform the VSync operation has elapsed. 11. The system of claim 9 , wherein the first VSync offset is assigned by staggering the first VSync offset for the stream based on a number of individual streams in the multi-streaming system. 12. The system of claim 9 , wherein each stream of at least two streams of the multi-streaming system corresponds to a separate container corresponding to a separate instance of an operating environment. 13. The system of claim 9 , wherein assigning the first VSync offset for the first stream comprises applying a randomizer using a seed initialized based on a value unique to the first stream. 14. The system of claim 9 , wherein assigning the first VSync offset for the first stream comprises: dividing each processing period by a number of individual streams corresponding to the multi-streaming system to determine a quotient; assigning a different stream identifier to each individual stream; and assigning a different coefficient to each stream identifier, wherein an initial VSync offset for any individual stream of the multi-streaming system is the product of the quotient and the coefficient of the stream identifier corresponding to the individual stream. 15. The system of claim 14 , wherein the number of individual streams corresponding to the multi-streaming system is equal to a number of streams the multi-streaming system is able to support. 16. The system of claim 9 , wherein at least one processing unit of the one or more processing units is further configured to: calculate the second VSync offset for the next stream; and maintain a staggered VSync schedule by dynamically adjusting the second VSync offset of the next stream of the multi-streaming system. 17. A processor, comprising: one or more processing units to: assign a first VSync offset for a first stream of a multi-streaming system, the multi-streaming system corresponding to a plurality of individual streams having an associated synchronization period; select a next stream of the multi-streaming system; determine a largest sub-interval between already assigned VSync offsets within the synchronization period; assign a second VSync offset corresponding to a midpoint of the determined largest sub-interval; and store VSync offset assignments for use in performing subsequent operations for the individual streams. 18. The processor of claim 17 , wherein at least one processing unit of the one or more processing units is further configured to: schedule a time to perform a VSync operation using the first VSync offset; and transmit a signal to perform the VSync operation when a duration of time equivalent to the time to perform the VSync operation has elapsed. 19. The processor of claim 17 , wherein the first VSync offset is assigned by staggering the first VSync offset for the stream based on a number of individual streams in the multi-streaming system. 20. The processor of claim 17 , wherein assigning the first VSync offset for the first stream comprises: dividing each processing period by a number of individual streams corresponding to the multi-streaming system to determine a quotient; assigning a different stream identifier to each individual stream; and assigning a different coefficient to each stream identifier, wherein an initial VSync offset for any individual stream of the multi-streaming system is the product of the quotient and the coefficient of the stream identifier corresponding to the individual stream.

Assignees

Inventors

Classifications

  • G06F9/52Primary

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

  • G06F9/505Primary

    considering the load · CPC title

  • Buffers; Shared memory; Pipes · CPC title

  • by program, e.g. task dispatcher, supervisor, operating system · CPC title

  • Learning methods · 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 US11704167B2 cover?
Approaches in accordance with various embodiments can reduce scheduling delays due to concurrent processing requests, as may involve VSyncs in multi-streaming systems. The software synchronization signals can be staggered relative to each other by offsetting an initial synchronization signal. These software synchronization signals can be readjusted over time such that each synchronization signa…
Who is the assignee on this patent?
Nvidia Corp
What technology area does this patent fall under?
Primary CPC classification G06F9/52. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 18 2023 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).