JP2013522724A - プロセッサにおいてスレッドを実行するシステムおよび方法 - Google Patents
プロセッサにおいてスレッドを実行するシステムおよび方法 Download PDFInfo
- Publication number
- JP2013522724A JP2013522724A JP2012557074A JP2012557074A JP2013522724A JP 2013522724 A JP2013522724 A JP 2013522724A JP 2012557074 A JP2012557074 A JP 2012557074A JP 2012557074 A JP2012557074 A JP 2012557074A JP 2013522724 A JP2013522724 A JP 2013522724A
- Authority
- JP
- Japan
- Prior art keywords
- thread
- value
- priority value
- quantization
- quantum
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
Abstract
Description
本出願は、2010年3月15日に出願された米国特許仮出願第61/314085号への、米国特許法第119条(e)による優先権を主張する。この特許仮出願の内容全体が、参照により本明細書に組み込まれる。
108 ディスプレイ
322 オンチップシステム
324 マルチコアCPU
325 第0のコア
344 メモリ
400 処理システム
416 第1のDCVSアルゴリズム
420 オペレーティングシステム
422 タイムスケジューラ
424 第1の実行キュー
430 第1のアプリケーション
500 優先順位付けシステム
504 第1のバケット
520 第1のスレッド
524 規定優先度値
526 量子化優先度値
528 量子値
580 量子化優先度値マップ
582 量子値マップ
Claims (40)
- 複数のスレッドを実行する方法であって、
休止中のスレッドにバケット優先度値を割り当てることによって、前記休止中のスレッドの実行の準備ができた場合に、前記休止中のスレッドと関連付けられたスレッド規定優先度値を、前記休止中のスレッドと関連付けられたスレッド量子化優先度値にマッピングするステップと、
前記休止中のスレッドを、実行の準備ができているキューに追加するステップと、
前記休止中のスレッドと関連付けられた、前記スレッド量子化優先度値、スレッド量子値、またはこれらの組合せを更新するステップであって、マップを用いて静的に更新するステップと、バケット優先度値に基づいて動的に更新するステップとのうちの1つを含む、ステップと
を含む、方法。 - 前記スレッド量子化優先度値が、前記スレッドの実際のランタイムに基づく前記スレッドの優先度値を含む、請求項1に記載の方法。
- 量子化優先度値を選択された優先度値にマッピングするステップをさらに含む、請求項1に記載の方法。
- 前記スレッド量子化優先度値、前記スレッド量子値、またはこれらの組合せが、静的に、動的に、またはこれらの組合せにより更新される、請求項1に記載の方法。
- 実行キュー上で実行すべきスレッドを選択するステップ
をさらに含む、請求項1に記載の方法。 - 前記選択されたスレッドが、最高の量子化優先度値を有するスレッドのグループから選択される、請求項4に記載の方法。
- 量子値を規定優先度値にマッピングするステップ
をさらに含む、請求項4に記載の方法。 - 前記選択されたスレッドを実行するステップ
をさらに含む、請求項6に記載の方法。 - 前記選択されたスレッドと関連付けられたスレッド量子値が完了した場合に、前記選択されたスレッドに対する、スレッド量子化優先度値、前記スレッド量子値、またはこれらの組合せを、更新するステップ
をさらに含む、請求項7に記載の方法。 - 前記選択されたスレッドと関連付けられた作業が完了した場合に、前記選択されたスレッドに対する、スレッド量子化優先度値、スレッド量子値、またはこれらの組合せを、更新するステップ
をさらに含む、請求項7に記載の方法。 - 複数のスレッドを実行するためのデバイスであって、
休止中のスレッドにバケット優先度値を割り当てることによって、前記休止中のスレッドの実行の準備ができた場合に、前記休止中のスレッドと関連付けられたスレッド規定優先度値を、前記休止中のスレッドと関連付けられたスレッド量子化優先度値にマッピングするための手段と、
前記休止中のスレッドを、実行の準備ができているキューに追加するための手段と、
前記休止中のスレッドと関連付けられた、前記スレッド量子化優先度値、スレッド量子値、またはこれらの組合せを更新するための手段であって、マップを用いて静的に更新するための手段と、バケット優先度値に基づいて動的に更新するための手段とのうちの1つを含む、手段と
を含む、デバイス。 - 前記スレッド量子化優先度値が、前記スレッドの実際のランタイムに基づく前記スレッドの優先度値を含む、請求項11に記載のデバイス。
- 前記スレッドを、複数のスレッドを含む特定のバケットの中の別のスレッドにより阻止される前に実行できる、最大のタイムスライスを前記量子値が含む、請求項11に記載のデバイス。
- 量子化優先度値を選択された優先度値にマッピングするための手段をさらに含む、請求項11に記載のデバイス。
- 実行キュー上で実行すべきスレッドを選択するための手段
をさらに含む、請求項11に記載のデバイス。 - 前記選択されたスレッドが、最高の量子化優先度値を有するスレッドのグループから選択される、請求項14に記載のデバイス。
- 量子値を規定優先度値にマッピングするための手段
をさらに含む、請求項14に記載のデバイス。 - 前記選択されたスレッドを実行するための手段
をさらに含む、請求項16に記載のデバイス。 - 前記選択されたスレッドと関連付けられたスレッド量子値が完了した場合に、前記選択されたスレッドに対する、スレッド量子化優先度値、前記スレッド量子値、またはこれらの組合せを、更新するための手段
をさらに含む、請求項17に記載のデバイス。 - 前記選択されたスレッドと関連付けられた作業が完了した場合に、前記選択されたスレッドに対する、スレッド量子化優先度値、スレッド量子値、またはこれらの組合せを、更新するための手段
をさらに含む、請求項17に記載のデバイス。 - プロセッサを含むデバイスであって、前記プロセッサが、
休止中のスレッドにバケット優先度値を割り当てることによって、前記休止中のスレッドの実行の準備ができた場合に、前記休止中のスレッドと関連付けられたスレッド規定優先度値を、前記休止中のスレッドと関連付けられたスレッド量子化優先度値にマッピングし、
前記休止中のスレッドを、実行の準備ができているキューに追加し、
前記休止中のスレッドと関連付けられた、前記スレッド量子化優先度値、スレッド量子値、またはこれらの組合せを更新する
ように動作可能であり、前記更新が、前記プロセッサがマップを用いて静的に更新することと、前記プロセッサがバケット優先度値に基づいて動的に更新することのうちの1つを含む、デバイス。 - 前記スレッド量子化優先度値が、前記スレッドの実際のランタイムに基づく前記スレッドの優先度値を含む、請求項21に記載のデバイス。
- 前記スレッドを、複数のスレッドを含む特定のバケットの中の別のスレッドにより阻止される前に実行できる、最大のタイムスライスを前記量子値が含む、請求項21に記載のデバイス。
- 前記プロセッサが、
量子化優先度値を選択された優先度値にマッピングする
ようにさらに動作可能である、請求項21に記載のデバイス。 - 前記プロセッサが、
実行キュー上で実行すべきスレッドを選択する
ようにさらに動作可能である、請求項21に記載のデバイス。 - 前記選択されたスレッドが、最高の量子化優先度値を有するスレッドのグループから選択される、請求項24に記載のデバイス。
- 前記プロセッサが、
量子値を規定優先度値にマッピングする
ようにさらに動作可能である、請求項24に記載のデバイス。 - 前記プロセッサが、
前記選択されたスレッドを実行する
ようにさらに動作可能である、請求項26に記載のデバイス。 - 前記プロセッサが、
前記選択されたスレッドと関連付けられたスレッド量子値が完了した場合に、前記選択されたスレッドに対する、スレッド量子化優先度値、前記スレッド量子値、またはこれらの組合せを、更新する
ようにさらに動作可能である、請求項27に記載のデバイス。 - 前記プロセッサが、
前記選択されたスレッドと関連付けられた作業が完了した場合に、前記選択されたスレッドに対する、スレッド量子化優先度値、スレッド量子値、またはこれらの組合せを、更新する
ようにさらに動作可能である、請求項27に記載のデバイス。 - 複数のスレッドを実行するためのコンピュータにより実行可能な命令を記録したコンピュータ読み取り可能な記録媒体であって、
休止中のスレッドにバケット優先度値を割り当てることによって、前記休止中のスレッドの実行の準備ができた場合に、前記休止中のスレッドと関連付けられたスレッド規定優先度値を、前記休止中のスレッドと関連付けられたスレッド量子化優先度値にマッピングするための少なくとも1つの命令と、
前記休止中のスレッドを、実行の準備ができているキューに追加するための少なくとも1つの命令と、
前記休止中のスレッドと関連付けられた、前記スレッド量子化優先度値、スレッド量子値、またはこれらの組合せを更新するための少なくとも1つの命令であって、前記更新するステップが、マップを用いて静的に更新するステップと、バケット優先度値に基づいて動的に更新するステップのうちの1つを含む、命令と
を含む、記録媒体。 - 前記スレッド量子化優先度値が、前記スレッドの実際のランタイムに基づく前記スレッドの優先度値を含む、請求項31に記載の記録媒体。
- 前記スレッドを、複数のスレッドを含む特定のバケットの中の別のスレッドにより阻止される前に実行できる、最大のタイムスライスを前記量子値が含む、請求項31に記載の記録媒体。
- 量子化優先度値を選択された優先度値にマッピングするための少なくとも1つの命令をさらに含む、請求項31に記載の記録媒体。
- 実行キュー上で実行すべきスレッドを選択するための少なくとも1つの命令
をさらに含む、請求項31に記載の記録媒体。 - 前記選択されたスレッドが、最高の量子化優先度値を有するスレッドのグループから選択される、請求項34に記載の記録媒体。
- 量子値を規定優先度値にマッピングするための少なくとも1つの命令
をさらに含む、請求項34に記載の記録媒体。 - 前記選択されたスレッドを実行するための少なくとも1つの命令
をさらに含む、請求項36に記載の記録媒体。 - 前記選択されたスレッドと関連付けられたスレッド量子値が完了した場合に、前記選択されたスレッドに対する、スレッド量子化優先度値、前記スレッド量子値、またはこれらの組合せを、更新するための少なくとも1つの命令
をさらに含む、請求項37に記載の記録媒体。 - 前記選択されたスレッドと関連付けられた作業が完了した場合に、前記選択されたスレッドに対する、スレッド量子化優先度値、スレッド量子値、またはこれらの組合せを、更新するための少なくとも1つの命令
をさらに含む、請求項37に記載の記録媒体。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US31408510P | 2010-03-15 | 2010-03-15 | |
US61/314,085 | 2010-03-15 | ||
US12/964,342 | 2010-12-09 | ||
US12/964,342 US8904399B2 (en) | 2010-03-15 | 2010-12-09 | System and method of executing threads at a processor |
PCT/US2011/025890 WO2011115732A1 (en) | 2010-03-15 | 2011-02-23 | System and method of executing threads at a processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013522724A true JP2013522724A (ja) | 2013-06-13 |
JP5593404B2 JP5593404B2 (ja) | 2014-09-24 |
Family
ID=44561164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012557074A Active JP5593404B2 (ja) | 2010-03-15 | 2011-02-23 | プロセッサにおいてスレッドを実行するシステムおよび方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8904399B2 (ja) |
EP (1) | EP2548120A1 (ja) |
JP (1) | JP5593404B2 (ja) |
KR (1) | KR101522081B1 (ja) |
CN (1) | CN103140831B (ja) |
BR (1) | BR112012022431B1 (ja) |
WO (1) | WO2011115732A1 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5376042B2 (ja) * | 2010-03-18 | 2013-12-25 | 富士通株式会社 | マルチコアプロセッサシステム、スレッド切り替え制御方法、およびスレッド切り替え制御プログラム |
US20130060555A1 (en) * | 2011-06-10 | 2013-03-07 | Qualcomm Incorporated | System and Apparatus Modeling Processor Workloads Using Virtual Pulse Chains |
US9086883B2 (en) | 2011-06-10 | 2015-07-21 | Qualcomm Incorporated | System and apparatus for consolidated dynamic frequency/voltage control |
CN102740256A (zh) * | 2012-05-31 | 2012-10-17 | 华为终端有限公司 | 一种短消息屏蔽方法和移动终端 |
US8963933B2 (en) * | 2012-07-23 | 2015-02-24 | Advanced Micro Devices, Inc. | Method for urgency-based preemption of a process |
US9274832B2 (en) * | 2013-02-07 | 2016-03-01 | Htc Corporation | Method and electronic device for thread scheduling |
CN103995742B (zh) * | 2014-05-20 | 2017-02-22 | 万向钱潮股份有限公司 | 一种基于mcu的嵌入式实时调度控制装置及方法 |
CN104536345A (zh) * | 2014-12-17 | 2015-04-22 | 万向钱潮股份有限公司 | 一种基于汽车电控控制系统的多任务控制方法 |
CN105828308B (zh) * | 2015-10-20 | 2020-10-16 | 维沃移动通信有限公司 | 一种限制电子设备通信功能的方法、电子设备及微型基站 |
US10134103B2 (en) * | 2015-10-23 | 2018-11-20 | Qualcomm Incorporated | GPU operation algorithm selection based on command stream marker |
CN105843687A (zh) * | 2016-03-31 | 2016-08-10 | 乐视控股(北京)有限公司 | 一种任务资源的量化方法和装置 |
US10146583B2 (en) * | 2016-08-11 | 2018-12-04 | Samsung Electronics Co., Ltd. | System and method for dynamically managing compute and I/O resources in data processing systems |
CN109766131B (zh) * | 2017-11-06 | 2022-04-01 | 上海宝信软件股份有限公司 | 基于多线程技术实现软件智能化自动升级的系统及方法 |
CN110502320B (zh) * | 2018-05-18 | 2022-03-04 | 杭州海康威视数字技术股份有限公司 | 线程优先级调整方法、装置、电子设备及存储介质 |
US10866834B2 (en) * | 2019-03-29 | 2020-12-15 | Intel Corporation | Apparatus, method, and system for ensuring quality of service for multi-threading processor cores |
US11954518B2 (en) * | 2019-12-20 | 2024-04-09 | Nvidia Corporation | User-defined metered priority queues |
CN113742091A (zh) * | 2021-08-31 | 2021-12-03 | 深圳Tcl新技术有限公司 | 一种线程运行方法、装置、计算机设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11212809A (ja) * | 1997-10-31 | 1999-08-06 | Sun Microsyst Inc | プロセッサ共有方法および装置 |
US20060294522A1 (en) * | 2005-06-27 | 2006-12-28 | Microsoft Corporation | Class scheduler |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5812844A (en) * | 1995-12-07 | 1998-09-22 | Microsoft Corporation | Method and system for scheduling the execution of threads using optional time-specific scheduling constraints |
US5826081A (en) * | 1996-05-06 | 1998-10-20 | Sun Microsystems, Inc. | Real time thread dispatcher for multiprocessor applications |
US6658447B2 (en) | 1997-07-08 | 2003-12-02 | Intel Corporation | Priority based simultaneous multi-threading |
US6182120B1 (en) | 1997-09-30 | 2001-01-30 | International Business Machines Corporation | Method and system for scheduling queued messages based on queue delay and queue priority |
CA2252238A1 (en) * | 1997-10-31 | 1999-04-30 | Sun Microsystems, Inc. | Method and apparatus for sharing a time quantum |
US7051330B1 (en) * | 2000-11-21 | 2006-05-23 | Microsoft Corporation | Generic application server and method of operation therefor |
JP3975703B2 (ja) * | 2001-08-16 | 2007-09-12 | 日本電気株式会社 | 情報処理システムにおける優先実行制御方法及びその装置並びにプログラム |
US7080376B2 (en) | 2001-09-21 | 2006-07-18 | Intel Corporation | High performance synchronization of accesses by threads to shared resources |
ES2305216T3 (es) * | 2002-01-30 | 2008-11-01 | Real Enterprise Solutions Development B.V. | Metodo para establecer niveles de prioridad en un sistema de computo de multiprogramacion con planificacion por prioridades, sistema de computo de multiprogramacion y programa para esto. |
US7080379B2 (en) | 2002-06-20 | 2006-07-18 | International Business Machines Corporation | Multiprocessor load balancing system for prioritizing threads and assigning threads into one of a plurality of run queues based on a priority band and a current load of the run queue |
US7536689B2 (en) | 2003-01-10 | 2009-05-19 | Tricerat, Inc. | Method and system for optimizing thread scheduling using quality objectives |
US8566828B2 (en) | 2003-12-19 | 2013-10-22 | Stmicroelectronics, Inc. | Accelerator for multi-processing system and method |
US7458077B2 (en) * | 2004-03-31 | 2008-11-25 | Intel Corporation | System and method for dynamically adjusting a thread scheduling quantum value |
US7487503B2 (en) | 2004-08-12 | 2009-02-03 | International Business Machines Corporation | Scheduling threads in a multiprocessor computer |
DE102004054571B4 (de) | 2004-11-11 | 2007-01-25 | Sysgo Ag | Verfahren zur Verteilung von Rechenzeit in einem Rechnersystem |
US7904906B2 (en) * | 2004-11-23 | 2011-03-08 | Stratus Technologies Bermuda Ltd. | Tracking modified pages on a computer system |
US8255912B2 (en) * | 2005-04-13 | 2012-08-28 | Qualcomm Incorporated | Techniques for setting events in a multi-threaded system |
-
2010
- 2010-12-09 US US12/964,342 patent/US8904399B2/en not_active Expired - Fee Related
-
2011
- 2011-02-23 WO PCT/US2011/025890 patent/WO2011115732A1/en active Application Filing
- 2011-02-23 JP JP2012557074A patent/JP5593404B2/ja active Active
- 2011-02-23 BR BR112012022431-0A patent/BR112012022431B1/pt not_active IP Right Cessation
- 2011-02-23 CN CN201180014230.8A patent/CN103140831B/zh not_active Expired - Fee Related
- 2011-02-23 KR KR1020127026723A patent/KR101522081B1/ko active IP Right Grant
- 2011-02-23 EP EP11706133A patent/EP2548120A1/en not_active Ceased
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11212809A (ja) * | 1997-10-31 | 1999-08-06 | Sun Microsyst Inc | プロセッサ共有方法および装置 |
US20060294522A1 (en) * | 2005-06-27 | 2006-12-28 | Microsoft Corporation | Class scheduler |
Also Published As
Publication number | Publication date |
---|---|
CN103140831A (zh) | 2013-06-05 |
BR112012022431A2 (pt) | 2016-07-05 |
US20110225590A1 (en) | 2011-09-15 |
KR101522081B1 (ko) | 2015-05-20 |
WO2011115732A1 (en) | 2011-09-22 |
US8904399B2 (en) | 2014-12-02 |
JP5593404B2 (ja) | 2014-09-24 |
CN103140831B (zh) | 2016-08-10 |
EP2548120A1 (en) | 2013-01-23 |
KR20130004502A (ko) | 2013-01-10 |
BR112012022431B1 (pt) | 2021-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5593404B2 (ja) | プロセッサにおいてスレッドを実行するシステムおよび方法 | |
EP2513746B1 (en) | System and method for controlling central processing unit power with guaranteed transient deadlines | |
US9201693B2 (en) | Quota-based resource management | |
US8689037B2 (en) | System and method for asynchronously and independently controlling core clocks in a multicore central processing unit | |
KR101516859B1 (ko) | 보장된 정상 상태 데드라인을 가진 중앙 처리 장치 전력을 제어하는 시스템 및 방법 | |
KR20170062493A (ko) | 이종 스레드 스케줄링 | |
JP2017526996A (ja) | プロセッサデバイス電力消費を管理するシステムおよび方法 | |
JP5662478B2 (ja) | 中央処理装置内のデータをサンプリングするシステムおよび方法 | |
JP2013513899A (ja) | 周波数変動を低減させて中央処理装置電力を制御するためのシステムおよび方法 | |
JP5460883B2 (ja) | ワークロードの要求に基づいて動的なクロックおよび電圧切替えアルゴリズムを調整するシステムおよび方法 | |
US11422857B2 (en) | Multi-level scheduling | |
CN116028005A (zh) | 音频会话获取方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131111 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131210 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140519 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140619 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140707 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140804 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5593404 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |