Processing workloads in single-threaded environments
US-9690626-B2 · Jun 27, 2017 · US
US10289450B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10289450-B2 |
| Application number | US-201715633538-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 26, 2017 |
| Priority date | Jun 27, 2014 |
| Publication date | May 14, 2019 |
| Grant date | May 14, 2019 |
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.
A method renders frames while processing workload slices at a rate defined by a first slice-to-frame ratio. The first slice to frame ratio defines a first rate at which the workload slices are assigned to the frames. The method determines whether to adjust the first slice-to-frame ratio based on the rendering of the frames and the processing of the workload slices. When it is determined that the first slice-to-frame should be adjusted, the method adjusts the first slice-to-frame ratio to a second slice-to-frame ratio and renders upcoming frames while processing upcoming workload slices at a second rate defined by the second slice-to-frame ratio. When it is determined that the first slice-to-frame should not be adjusted, the method renders upcoming frames while processing upcoming workload slices at the first rate defined by the first slice-to-frame ratio.
Opening claim text (preview).
What is claimed is: 1. A method comprising: rendering, by a computing device, one or more frames while processing one or more workload slices at a rate defined by a first slice-to-frame ratio, wherein the first slice to frame ratio defines a first rate at which the one or more workload slices are assigned to the one or more frames; determining, by the computing device, whether to adjust the first slice-to-frame ratio based on the rendering of at least a portion of the one or more frames and the processing of the one or more workload slices; when it is determined that the first slice-to-frame should be adjusted: adjusting, by the computing device, the first slice-to-frame ratio to a second slice-to-frame ratio, wherein the second slice to frame ratio defines a second rate at which workload slices are assigned to frames; and rendering, by the computing device, one or more upcoming frames while processing one or more upcoming workload slices at the second rate defined by the second slice-to-frame ratio; and when it is determined that the first slice-to-frame should not be adjusted: rendering, by the computing device, one or more upcoming frames while processing one or more upcoming workload slices at the first rate defined by the first slice-to-frame ratio. 2. The method of claim 1 , wherein the first slice-to-frame ratio is determined by: determining an effective frame rate based on at least a first rendered frame, the effective frame rate being used to estimate a duration of an upcoming frame; determining an effective slice rate based on at least a first completed workload slice, the effective slice rate being used to estimate a time to complete an upcoming workload slice; and calculating the first slice-to-frame ratio according to the effective frame rate and the effective slice rate. 3. The method of claim 2 , wherein the second slice-to-frame ratio is determined by: determining an updated effective frame rate based on at least a second rendered frame; determining an updated effective slice rate based on at least a second processed workload slice; and determining whether the first slice-to-frame ratio is changed based on the updated effective frame rate and the updated effective slice rate. 4. The method of claim 3 , wherein: the updated effective frame rate is based on a duration to render the at least the second rendered frame; and the updated effective slice rate is based on a duration to process the at least the second workload slice. 5. The method of claim 1 , wherein: when it is determined that the first slice-to-frame should be adjusted, assigning the one or more upcoming workload slices to the one or more upcoming frames according to the second slice-to-frame ratio, and when it is determined that the first slice-to-frame should not be adjusted, assigning the one or more upcoming workload slices to the one or more upcoming frames according to the first slice-to-frame ratio. 6. The method of claim 1 , wherein: the one or more frames are rendered and the one or more workload slices are processed in a single threaded environment concurrently, and the one or more upcoming frames are rendered and the one or more upcoming workload slices are processed in the single threaded environment concurrently. 7. The method of claim 1 , further comprising: detecting an event that initiates a workload to be processed; and slicing the workload into portions comprising the one or more workload slices and the one or more upcoming workload slices. 8. A non-transitory computer readable storage medium containing instructions, that when executed, control a computer system to be configured for: rendering one or more frames while processing one or more workload slices at a rate defined by a first slice-to-frame ratio, wherein the first slice to frame ratio defines a first rate at which the one or more workload slices are assigned to the one or more frames; determining whether to adjust the first slice-to-frame ratio based on the rendering of at least a portion of the one or more frames and the processing of the one or more workload slices; when it is determined that the first slice-to-frame should be adjusted: adjusting the first slice-to-frame ratio to a second slice-to-frame ratio, wherein the second slice to frame ratio defines a second rate at which workload slices are assigned to frames; and rendering one or more upcoming frames while processing one or more upcoming workload slices at the second rate defined by the second slice-to-frame ratio; and when it is determined that the first slice-to-frame should not be adjusted: rendering one or more upcoming frames while processing one or more upcoming workload slices at the first rate defined by the first slice-to-frame ratio. 9. The non-transitory computer readable storage medium of claim 8 , wherein the first slice-to-frame ratio is determined by: determining an effective frame rate based on at least a first rendered frame, the effective frame rate being used to estimate a duration of an upcoming frame; determining an effective slice rate based on at least a first completed workload slice, the effective slice rate being used to estimate a time to complete an upcoming workload slice; and calculating the first slice-to-frame ratio according to the effective frame rate and the effective slice rate. 10. The non-transitory computer readable storage medium of claim 9 , wherein the second slice-to-frame ratio is determined by: determining an updated effective frame rate based on at least a second rendered frame; determining an updated effective slice rate based on at least a second processed workload slice; and determining whether the first slice-to-frame ratio is changed based on the updated effective frame rate and the updated effective slice rate. 11. The non-transitory computer readable storage medium of claim 10 , wherein: the updated effective frame rate is based on a duration to render the at least the second rendered frame; and the updated effective slice rate is based on a duration to process the at least the second workload slice. 12. The non-transitory computer readable storage medium of claim 8 , wherein: when it is determined that the first slice-to-frame should be adjusted, assigning the one or more upcoming workload slices to the one or more upcoming frames according to the second slice-to-frame ratio, and when it is determined that the first slice-to-frame should not be adjusted, assigning the one or more upcoming workload slices to the one or more upcoming frames according to the first slice-to-frame ratio. 13. The non-transitory computer readable storage medium of claim 8 , wherein: the one or more frames are rendered and the one or more workload slices are processed in a single threaded environment concurrently, and the one or more upcoming frames are rendered and the one or more upcoming workload slices are processed in the single threaded environment concurrently. 14. The non-transitory computer readable storage medium of claim 8 , further comprising: detecting an event that initiates a workload to be processed; and slicing the workload into portions comprising the one or more workload slices and the one or more upcoming workload slices. 15. An apparatus, comprising: one or more computer processors; and a non-transitory computer-readable storage medium comprising instructions, that when executed, control the one or more computer processors to be configured for: rendering one or more frames while processing one or more workload slices at a rate defined by a first slice-to-frame ratio, wherein the
involving video buffer management, e.g. video decoder buffer or video display buffer · CPC title
Program synchronisation; Mutual exclusion, e.g. by means of semaphores · CPC title
Transaction processing · CPC title
involving deadlines, e.g. rate based, periodic · CPC title
Selective content distribution, e.g. interactive television or video on demand [VOD] (real-time bi-directional transmission of motion video data H04N7/14 {; broadcast or conference over packet switching networks H04L12/18}) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.