Bandwidth/resource management for multithreaded processors

US10102031B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10102031-B2
Application numberUS-201514866012-A
CountryUS
Kind codeB2
Filing dateSep 25, 2015
Priority dateMay 29, 2015
Publication dateOct 16, 2018
Grant dateOct 16, 2018

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.

Systems and methods relate to managing shared resources in a multithreaded processor comprising two or more processing threads. Danger levels for the two or more threads are determined, wherein the danger level of a thread is based on a potential failure of the thread to meet a deadline due to unavailability of a shared resource. Priority levels associated with the two or more threads are also determined, wherein the priority level is higher for a thread whose failure to meet a deadline is unacceptable and the priority level is lower for a thread whose failure to meet a deadline is acceptable. The two or more threads are scheduled based at least on the determined danger levels for the two or more threads and priority levels associated with the two or more threads.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of managing shared resources in a multithreaded processor comprising two or more threads, the method comprising: determining danger levels for the two or more threads, wherein the danger level of a thread indicates a potential failure of the thread to meet a deadline due to unavailability of a shared resource, wherein the danger levels for the two or more threads are based on an internal danger level associated with the two or more threads and an external danger level associated with one or more cores external to the multithreaded processor; detecting priority levels associated with the two or more threads, wherein the priority level is higher for a thread whose failure to meet a deadline is unacceptable and the priority level is lower for a thread whose failure to meet a deadline is acceptable; and scheduling the two or more threads based at least on the determined danger levels for the two or more threads and priority levels associated with the two or more threads, wherein the scheduling further comprises stalling at least one low priority thread if a number of low priority threads to be scheduled exceeds a predetermined threshold. 2. The method of claim 1 , wherein a failure to meet a deadline for the at least one low priority thread is acceptable, wherein stalling the at least one low priority thread comprises preventing or delaying scheduling of a low priority transaction from the at least one low priority thread, wherein the low priority transaction will consume shared resources if scheduled. 3. The method of claim 2 , further comprising, scheduling a high priority transaction from at least one high priority thread whose failure to meet a deadline is unacceptable, wherein shared resources for the high priority thread are made available based on stalling the at least one low priority thread. 4. The method of claim 1 , wherein the internal danger level is based on one or more of a danger level provided by a software programmable register programmed with danger levels for each thread, a danger level provided by a timer if the timer expires before a task associated with a thread is completed, a danger level provided by a bandwidth monitor for each thread, or a danger level provided by a latency monitor for each thread. 5. The method of claim 4 , further comprising providing the internal danger level to a Quality of Service (QoS) controller for managing QoS policies of the one or more cores. 6. The method of claim 1 , wherein the external danger level is based on a Quality of Service (QoS) of the one or more cores. 7. The method of claim 1 , comprising grouping transactions from the two or more threads in a scoreboard, based on priority levels associated with the two or more threads. 8. The method of claim 1 , wherein the multithreaded processor is one of a digital signal processor (DSP), general purpose processor (GPP), or a central processing unit (CPU). 9. The method of claim 1 , further comprising stalling the at least one low priority thread for a duration based on the danger levels for the two or more threads. 10. A processing system comprising: a multithreaded processor configured to process two or more threads; a danger aggregator configured to determine danger levels for the two or more threads, wherein the danger level of a thread indicates a potential failure of the thread to meet a deadline due to unavailability of a shared resource, and wherein the danger levels for the two or more threads are based on an internal danger level associated with the two or more threads and an external danger level associated with one or more cores external to the multithreaded processor of the processing system; a transaction scoreboard configured to track priority levels associated with the two or more threads, wherein the priority level is higher for a thread whose failure to meet a deadline is unacceptable and the priority level is lower for a thread whose failure to meet a deadline is acceptable; and a dequeue engine configured to schedule the two or more threads based at least on the determined danger levels for the two or more threads and priority levels associated with the two or more threads, wherein the dequeue engine is further configured to stall at least one low priority thread if a number of low priority threads to be scheduled exceeds a predetermined threshold. 11. The processing system of claim 10 , further comprising, a scheduler configured to throttle the at least one low priority thread, wherein a failure to meet a deadline for the at least one low priority thread is acceptable. 12. The processing system of claim 11 , wherein the scheduler is further configured to schedule a high priority transaction from at least one high priority thread whose failure to meet a deadline is unacceptable, wherein resources are shared between the throttled at least one low priority thread and the high priority thread, and wherein the shared resources for the high priority thread are made available based on the at least one low priority thread being stalled. 13. The processing system of claim 12 , wherein the shared resources comprise one or more of an interconnect or a memory. 14. The processing system of claim 10 , wherein the internal danger level is based on one or more of a danger level provided by a software programmable register programmed with danger levels for each thread, a danger level provided by a timer if the timer expires before a task associated with a thread is completed, a danger level provided by a bandwidth monitor for each thread, or a danger level provided by a latency monitor for each thread. 15. The processing system of claim 14 , wherein the danger aggregator is further configured to provide the internal danger level to a Quality of Service (QoS) controller configured to manage QoS policies of the one or more cores of the processing system. 16. The processing system of claim 10 , wherein the external danger level is based on a Quality of Service (QoS) of the one or more cores and the multithreaded processor. 17. The processing system of claim 10 , wherein the transaction scoreboard is configured to group transactions from the two or more threads, based on priority levels associated with the two or more threads. 18. The processing system of claim 10 , wherein the dequeue engine is further configured to stall the at least one low priority thread for a duration based on the danger levels for the two or more threads. 19. The processing system of claim 10 , wherein the multithreaded processor is one of a digital signal processor (DSP), general purpose processor (GPP), or a central processing unit (CPU). 20. The processing system of claim 10 , integrated into a device selected from the group consisting of a set top box, music player, video player, entertainment unit, navigation device, communications device, personal digital assistant (PDA), fixed location data unit, and a computer. 21. A non-transitory computer readable storage medium comprising code, which when executed by a processor, causes the processor to perform operations for managing shared resources in a multithreaded processor comprising two or more threads, the non-transitory computer readable storage medium comprising: code for determining danger levels for the two or more threads, wherein the danger level of a thread indicates a potential failure of the thread to meet a deadline due to unavailability of a shared resource, the danger levels for the two or more threads based on an internal danger lev

Assignees

Inventors

Classifications

  • G06F9/4887Primary

    involving deadlines, e.g. rate based, periodic · CPC title

  • G06F9/4818Primary

    Priority circuits therefor · CPC title

  • G06F9/46Primary

    Multiprogramming arrangements · CPC title

  • Constraint · CPC title

  • in a multiprocessor or a multi-core unit (multiprocessors per se G06F15/80) · 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 US10102031B2 cover?
Systems and methods relate to managing shared resources in a multithreaded processor comprising two or more processing threads. Danger levels for the two or more threads are determined, wherein the danger level of a thread is based on a potential failure of the thread to meet a deadline due to unavailability of a shared resource. Priority levels associated with the two or more threads are also …
Who is the assignee on this patent?
Qualcomm Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/4887. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 16 2018 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 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).