JP5173712B2 - マルチスレッドプロセッサ - Google Patents
マルチスレッドプロセッサ Download PDFInfo
- Publication number
- JP5173712B2 JP5173712B2 JP2008252233A JP2008252233A JP5173712B2 JP 5173712 B2 JP5173712 B2 JP 5173712B2 JP 2008252233 A JP2008252233 A JP 2008252233A JP 2008252233 A JP2008252233 A JP 2008252233A JP 5173712 B2 JP5173712 B2 JP 5173712B2
- Authority
- JP
- Japan
- Prior art keywords
- thread
- schedule
- hardware
- storage unit
- selector
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F9/4893—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Advance Control (AREA)
Description
以下、本発明を適用した具体的な実施の形態1について、図面を参照しながら詳細に説明する。図1に本実施の形態にかかるマルチスレッドプロセッサ1を含むプロセッサシステムのブロック図を示す。本実施の形態にかかるプロセッサシステムでは、システムバスを介してマルチスレッドプロセッサ1とメモリ2が接続される。なお、図示はしていないが、システムバスには、入出力インタフェースなどの他の回路も接続されるものとする。
以下、本発明を適用した具体的な実施の形態2について、図面を参照しながら詳細に説明する。この実施の形態2は、実施の形態1のスレッド制御レジスタ部101のスレッドスケジュールレジスタSKR2をスレッドスケジュールレジスタSKR3に変更した構成となっている。なお、スレッドスケジュールレジスタSKR3は、物理的なレジスタの変更ではなく、レジスタ内に格納されているスケジュールパターンがSKR2からSKR3に書き換えられる場合であってもよい。他の構成は、実施の形態1と同様なため、詳細な説明は省略する。
以下、本発明を適用した具体的な実施の形態3について、図面を参照しながら詳細に説明する。図12に本実施の形態3にかかるスレッドスケジューラ19のブロック図を示す。本実施の形態3は、実施の形態1とは異なり、更に別のスケジューラであるノーマルスケジューラ201等を有している。また、スレッド制御レジスタ部101内のスレッドスケジュールレジスタが有する各スロットが、ハードウェアスレッド番号以外に実時間ビット信号を生成するためのフラグ情報を格納する。その他の構成は、実施の形態1と同様である。よって、本実施の形態3では、実施の形態1と相違する部分を中心に説明を行う。
以下、本発明を適用した具体的な実施の形態4について、図面を参照しながら詳細に説明する。図18に本実施の形態4にかかるスレッドスケジューラ19のブロック図を示す。本実施の形態4は、実施の形態1とは異なり、スレッド制御レジスタ部101がスレッドスケジュールレジスタを2つ有するだけでなく、更に複数のスレッドスケジュールレジスタを有している。また、割り込み制御部120が、スケジュールレジスタ選択部102に対して上記複数のスレッドスケジュールレジスタのうちいずれか1つを選択するよう制御を行う。その他の構成は、実施の形態1と同様である。よって、本実施の形態4では、実施の形態1と相違する部分を中心に説明を行う。
2 メモリ
10 演算回路
11 割り込みコントローラ
12 PC生成回路
13、18、30、37 セレクタ
14 命令メモリ
15 命令バッファ
16 パイプライン制御回路
17 命令フェッチコントローラ
19 スレッドスケジューラ
21 命令デコーダ
22 実行ユニット
23 データレジスタ
101 スレッド制御レジスタ部
102 スケジュールレジスタ選択部
103 セレクタ
111 カウンタ
112 カウンタ上限値レジスタ
113 一致比較回路
120 割り込み制御部
121 割り込みハンドラ
122 スケジュール選択回路
SKR1〜SKRr、SKR11、SKR12 スレッドスケジュールレジスタ
100 スケジューラユニット
201 ノーマルスケジューラ
202 セレクタ
Claims (6)
- マルチスレッドプロセッサであって、
それぞれが独立した命令流を生成する複数のハードウェアスレッドと、
前記複数のハードウェアスレッドのうち次実行サイクルにおいて使用するハードウェアスレッドを選択するスレッド選択信号を出力するスレッドスケジューラと、
前記スレッド選択信号に応じて前記複数のハードウェアスレッドのいずれか1つを選択して、選択したハードウェアスレッドにより生成された命令を出力する第1のセレクタと、
前記第1のセレクタから出力される命令を実行する演算回路と、を有し、
前記スレッドスケジューラは、
予め定められた通常動作時用の第1のスケジュールを格納する第1の記憶部と、
予め定められた割り込み処理動作時用の第2のスケジュールを格納する第2の記憶部と、
当該マルチスレッドプロセッサの状態が、通常動作状態から割り込み処理動作状態に変化する場合に、入力される割り込み信号に応じて制御信号を出力する割り込み制御部と、
前記制御信号に応じて前記第1のスケジュールもしくは前記第2のスケジュールを選択し、選択した前記第1のスケジュールもしくは前記第2のスケジュールに従って前記スレッド選択信号を出力する選択部と、を有し、
前記第1の記憶部と前記第2の記憶部は、それぞれ複数のスロットを有し、
前記第1の記憶部の複数のスロットには、前記第1のスケジュールに応じた前記複数のハードウェアスレッドに対応したハードウェアスレッド番号が格納され、
前記第2の記憶部の複数のスロットには、前記第2のスケジュールに応じた前記複数のハードウェアスレッドに対応したハードウェアスレッド番号が格納されており、
前記スレッドスケジューラは、
一定の間隔でカウント値を更新するカウンタと、
前記カウント値に応じて、前記選択部に選択された前記第1の記憶部もしくは前記第2の記憶部の複数のスロットのうち1つのスロットを選択し、その選択したスロットに格納されるハードウェアスレッド番号を前記スレッド選択信号として出力する第2のセレクタと、を更に有する
マルチスレッドプロセッサ。 - 前記複数のハードウェアスレッドのうちの第1のハードウェアスレッドに対応する第1のハードウェアスレッド番号を格納するスロットの占める比率が、前記第1の記憶部と前記第2の記憶部で等しい
請求項1に記載のマルチスレッドプロセッサ。 - マルチスレッドプロセッサであって、
それぞれが独立した命令流を生成する複数のハードウェアスレッドと、
前記複数のハードウェアスレッドのうち次実行サイクルにおいて使用するハードウェアスレッドを選択するスレッド選択信号を出力するスレッドスケジューラと、
前記スレッド選択信号に応じて前記複数のハードウェアスレッドのいずれか1つを選択して、選択したハードウェアスレッドにより生成された命令を出力する第1のセレクタと、
前記第1のセレクタから出力される命令を実行する演算回路と、を有し、
前記スレッドスケジューラは、
第1のスレッドスケジューラと、
所定のアルゴリズムに従って決定される任意のハードウェアスレッド番号を生成する第2のスレッドスケジューラと、
第2のセレクタと、を有し、
前記第1のスレッドスケジューラは、
予め定められた通常動作時用の第1のスケジュールを格納する第1の記憶部と、
予め定められた割り込み処理動作時用の第2のスケジュールを格納する第2の記憶部と、
当該マルチスレッドプロセッサの状態が、通常動作状態から割り込み処理動作状態に変化する場合に、入力される割り込み信号に応じて制御信号を出力する割り込み制御部と、
前記制御信号に応じて前記第1のスケジュールもしくは前記第2のスケジュールを選択し、選択した前記第1のスケジュールもしくは前記第2のスケジュールに従って前記スレッド選択信号を出力する選択部と、
一定の間隔でカウント値を更新するカウンタと、
第3のセレクタと、を有し、
前記第1の記憶部の複数のスロットには、前記第1のスケジュールに応じた前記複数のハードウェアスレッドに対応した予め定められたハードウェアスレッド番号と、前記第2のスレッドスケジューラが生成した任意のハードウェアスレッド番号を選択するか否かのフラグが格納され、
前記第2の記憶部の複数のスロットには、前記第2のスケジュールに応じた前記複数のハードウェアスレッドに対応した予め定められたハードウェアスレッド番号と、前記第2のスレッドスケジューラが生成した任意のハードウェアスレッド番号を選択するか否かのフラグが格納されており、
前記第3のセレクタは、前記カウント値に応じて、前記選択部に選択された前記第1の記憶部もしくは前記第2の記憶部の複数のスロットのうち1つのスロットを選択し、その選択したスロットに格納される前記フラグとハードウェアスレッド番号を出力し、
前記第2のセレクタは、前記フラグの値に応じて、当該スロットに格納されている予め定められたハードウェアスレッド番号もしくは前記第2のスレッドスケジューラが生成した任意のハードウェアスレッド番号を前記スレッド選択信号として出力する
マルチスレッドプロセッサ。 - マルチスレッドプロセッサであって、
それぞれが独立した命令流を生成する複数のハードウェアスレッドと、
前記複数のハードウェアスレッドのうち次実行サイクルにおいて使用するハードウェアスレッドを選択するスレッド選択信号を出力するスレッドスケジューラと、
前記スレッド選択信号に応じて前記複数のハードウェアスレッドのいずれか1つを選択して、選択したハードウェアスレッドにより生成された命令を出力する第1のセレクタと、
前記第1のセレクタから出力される命令を実行する演算回路と、を有し、
前記スレッドスケジューラは、
予め定められた通常動作時用の第1のスケジュールを格納する第1の記憶部と、
予め定められた割り込み処理動作時用の第2のスケジュールを格納する第2の記憶部と、
当該マルチスレッドプロセッサの状態が、通常動作状態から割り込み処理動作状態に変化する場合に、入力される割り込み信号に応じて制御信号を出力する割り込み制御部と、
前記制御信号に応じて前記第1のスケジュールもしくは前記第2のスケジュールを選択し、選択した前記第1のスケジュールもしくは前記第2のスケジュールに従って前記スレッド選択信号を出力する選択部と、を有し、
前記第1の記憶部は、複数のスロットを有し、
前記第1の記憶部の複数のスロットには、前記第1のスケジュールに応じた前記複数のハードウェアスレッドに対応したハードウェアスレッド番号が格納され、
前記第2の記憶部は、前記第2のスケジュールに応じた固定されたハードウェアスレッド番号が格納されており、
前記スレッドスケジューラは、
一定の間隔でカウント値を更新するカウンタと、
前記選択部に前記第1の記憶部が選択された場合、前記カウント値に応じて、前記第1の記憶部の複数のスロットのうち1つのスロットを選択し、その選択したスロットに格納されるハードウェアスレッド番号を前記スレッド選択信号として出力し、前記選択部に前記第2の記憶部が選択された場合、前記固定されたハードウェアスレッド番号を前記スレッド選択信号として出力する第2のセレクタと、を更に有する
マルチスレッドプロセッサ。 - 前記第1のスケジュール及び前記第2のスケジュールには、それぞれ、予め決定された第1のハードウェアスレッドの使用順序と、使用状態に応じた任意の第2のハードウェアスレッドの使用順序が定義されており、
前記第1のスケジュールと前記第2のスケジュールは、前記第1のハードウェアスレッドの使用される期間と前記第2のハードウェアスレッドの使用される期間の比が異なっている
請求項3に記載のマルチスレッドプロセッサ。 - 前記第2のスレッドスケジューラは、前記所定のアルゴリズムに従って決定される前記任意の前記第2のハードウェアスレッドを指定する
請求項5に記載のマルチスレッドプロセッサ。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008252233A JP5173712B2 (ja) | 2008-09-30 | 2008-09-30 | マルチスレッドプロセッサ |
| US12/585,737 US8539203B2 (en) | 2008-09-30 | 2009-09-23 | Multi-thread processor selecting threads on different schedule pattern for interrupt processing and normal operation |
| US13/964,418 US9529597B2 (en) | 2008-09-30 | 2013-08-12 | Multithread processor with different schedule pattern cycle state for handling interrupt processing |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008252233A JP5173712B2 (ja) | 2008-09-30 | 2008-09-30 | マルチスレッドプロセッサ |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2012284445A Division JP5536864B2 (ja) | 2012-12-27 | 2012-12-27 | マルチスレッドプロセッサ |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2010086129A JP2010086129A (ja) | 2010-04-15 |
| JP5173712B2 true JP5173712B2 (ja) | 2013-04-03 |
Family
ID=42058856
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2008252233A Active JP5173712B2 (ja) | 2008-09-30 | 2008-09-30 | マルチスレッドプロセッサ |
Country Status (2)
| Country | Link |
|---|---|
| US (2) | US8539203B2 (ja) |
| JP (1) | JP5173712B2 (ja) |
Families Citing this family (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8323870B2 (en) * | 2010-11-01 | 2012-12-04 | Taiwan Semiconductor Manufacturing Company, Ltd. | Method and photoresist with zipper mechanism |
| JP5894496B2 (ja) * | 2012-05-01 | 2016-03-30 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
| JP5933356B2 (ja) | 2012-06-12 | 2016-06-08 | ルネサスエレクトロニクス株式会社 | コンピュータシステム |
| GB2521155B (en) | 2013-12-10 | 2021-06-02 | Advanced Risc Mach Ltd | Configuring thread scheduling on a multi-threaded data processing apparatus |
| GB2521151B (en) | 2013-12-10 | 2021-06-02 | Advanced Risc Mach Ltd | Configurable thread ordering for a data processing apparatus |
| US9727500B2 (en) * | 2014-11-19 | 2017-08-08 | Nxp Usa, Inc. | Message filtering in a data processing system |
| US9697151B2 (en) | 2014-11-19 | 2017-07-04 | Nxp Usa, Inc. | Message filtering in a data processing system |
| US10133602B2 (en) * | 2015-02-19 | 2018-11-20 | Oracle International Corporation | Adaptive contention-aware thread placement for parallel runtime systems |
| US10261799B2 (en) | 2017-02-28 | 2019-04-16 | International Business Machines Corporation | Programmatic implicit multithreading |
| TWI639955B (zh) * | 2017-11-06 | 2018-11-01 | 晨星半導體股份有限公司 | 多處理器系統及其處理器管理方法 |
| JP7180516B2 (ja) * | 2019-04-16 | 2022-11-30 | 株式会社デンソー | 車両用装置、車両用装置の制御方法 |
| CN112486572B (zh) * | 2019-09-11 | 2025-07-15 | 硅实验室公司 | 具有细化线程进程的多线程无线通信处理器 |
| GB2594498B (en) * | 2020-04-30 | 2022-06-01 | Advanced Risc Mach Ltd | Instruction scheduling |
| US11983537B1 (en) * | 2022-12-21 | 2024-05-14 | Ceremorphic, Inc. | Multi-threaded processor with power granularity and thread granularity |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0786787B2 (ja) | 1988-04-12 | 1995-09-20 | 日本電気株式会社 | マイクロコンピュータ |
| US7925869B2 (en) * | 1999-12-22 | 2011-04-12 | Ubicom, Inc. | Instruction-level multithreading according to a predetermined fixed schedule in an embedded processor using zero-time context switching |
| JP4870292B2 (ja) | 2001-09-27 | 2012-02-08 | ラピスセミコンダクタ株式会社 | 割り込み処理可能な情報処理装置 |
| US7337443B2 (en) * | 2003-06-30 | 2008-02-26 | Microsoft Corporation | Method and apparatus for processing program threads |
| JP4606142B2 (ja) | 2004-12-01 | 2011-01-05 | 株式会社ソニー・コンピュータエンタテインメント | スケジューリング方法、スケジューリング装置およびマルチプロセッサシステム |
| US7681014B2 (en) * | 2005-02-04 | 2010-03-16 | Mips Technologies, Inc. | Multithreading instruction scheduler employing thread group priorities |
| JP5175517B2 (ja) | 2005-04-12 | 2013-04-03 | パナソニック株式会社 | プロセッサ |
| JP4574493B2 (ja) * | 2005-08-22 | 2010-11-04 | キヤノン株式会社 | プロセッサシステム及びマルチスレッドプロセッサ |
| JP2007317171A (ja) * | 2006-04-27 | 2007-12-06 | Matsushita Electric Ind Co Ltd | マルチスレッド計算機システム、マルチスレッド実行制御方法 |
| US8001549B2 (en) | 2006-04-27 | 2011-08-16 | Panasonic Corporation | Multithreaded computer system and multithread execution control method |
| JP2008123045A (ja) | 2006-11-08 | 2008-05-29 | Matsushita Electric Ind Co Ltd | プロセッサ |
-
2008
- 2008-09-30 JP JP2008252233A patent/JP5173712B2/ja active Active
-
2009
- 2009-09-23 US US12/585,737 patent/US8539203B2/en active Active
-
2013
- 2013-08-12 US US13/964,418 patent/US9529597B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| US9529597B2 (en) | 2016-12-27 |
| US20100082944A1 (en) | 2010-04-01 |
| US8539203B2 (en) | 2013-09-17 |
| US20130332717A1 (en) | 2013-12-12 |
| JP2010086129A (ja) | 2010-04-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5173712B2 (ja) | マルチスレッドプロセッサ | |
| JP5173711B2 (ja) | マルチスレッドプロセッサ及びそのハードウェアスレッドのスケジュール方法 | |
| JP5173713B2 (ja) | マルチスレッドプロセッサ及びそのハードウェアスレッドのスケジュール方法 | |
| US10467053B2 (en) | Multi-thread processor with rescheduling when threads are nondispatchable | |
| JP5173714B2 (ja) | マルチスレッドプロセッサ及びその割り込み処理方法 | |
| JP5536864B2 (ja) | マルチスレッドプロセッサ | |
| JP5838237B2 (ja) | マルチスレッドプロセッサ | |
| JP5536863B2 (ja) | マルチスレッドプロセッサ | |
| JP5536862B2 (ja) | マルチスレッドプロセッサ | |
| JP5946566B2 (ja) | マルチスレッドプロセッサにおけるハードウェアスレッドのスケジュール方法 | |
| JP5770333B2 (ja) | マルチスレッドプロセッサ | |
| JP5770334B2 (ja) | マルチスレッドプロセッサ | |
| JP2014067248A (ja) | プロセッサ、割り込み処理方法及び割り込み制御装置 | |
| JP2014211890A (ja) | マルチスレッドプロセッサ及びその割り込み処理方法 | |
| JP2013058265A (ja) | マルチスレッドプロセッサ及びその割り込み処理方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110401 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120704 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120710 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120910 |
|
| 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: 20121127 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121227 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5173712 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |