JP5433676B2 - プロセッサ装置、マルチスレッドプロセッサ装置 - Google Patents
プロセッサ装置、マルチスレッドプロセッサ装置 Download PDFInfo
- Publication number
- JP5433676B2 JP5433676B2 JP2011501354A JP2011501354A JP5433676B2 JP 5433676 B2 JP5433676 B2 JP 5433676B2 JP 2011501354 A JP2011501354 A JP 2011501354A JP 2011501354 A JP2011501354 A JP 2011501354A JP 5433676 B2 JP5433676 B2 JP 5433676B2
- Authority
- JP
- Japan
- Prior art keywords
- processor
- hardware resource
- context data
- determination unit
- instruction
- 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
- 230000015654 memory Effects 0.000 claims description 143
- 238000012545 processing Methods 0.000 claims description 115
- 238000000034 method Methods 0.000 claims description 66
- 230000008569 process Effects 0.000 claims description 61
- 238000002360 preparation method Methods 0.000 claims description 48
- 238000012546 transfer Methods 0.000 claims description 40
- 230000006870 function Effects 0.000 claims description 11
- 230000000717 retained effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 47
- 238000007726 management method Methods 0.000 description 20
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 208000026940 Microvillus inclusion disease Diseases 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- COCAUCFPFHUGAA-MGNBDDOMSA-N n-[3-[(1s,7s)-5-amino-4-thia-6-azabicyclo[5.1.0]oct-5-en-7-yl]-4-fluorophenyl]-5-chloropyridine-2-carboxamide Chemical compound C=1C=C(F)C([C@@]23N=C(SCC[C@@H]2C3)N)=CC=1NC(=O)C1=CC=C(Cl)C=N1 COCAUCFPFHUGAA-MGNBDDOMSA-N 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000003079 width control Methods 0.000 description 1
Images
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/461—Saving or restoring of program or task context
- G06F9/462—Saving or restoring of program or task context with multiple register sets
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
-
- 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/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; 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
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)
- Multi Processors (AREA)
Description
て行う。つまり、通常のプロセッサのコンテキストの退避および復帰とは非同期に、FPUのコンテキスト切り換えを行い、その機会を必要最小限に抑える。
リに拡張コンテキストデータを退避し、前記メモリから前記ハードウェア資源に前記所定命令を実行しようとしたプロセッサの拡張コンテキストデータを復帰し、前記複数のプロセッサは、第1のプロセッサと第2のプロセッサとを含み、前記第1のプロセッサは第1のオペレーティングシステムを実行することによって複数のプログラムを時分割多重で実行し、前記第2のプロセッサは第1のオペレーティングシステムとは異なる第2のオペレーティングシステムを実行することによって複数のプログラムを時分割多重で実行し、前記第1のプロセッサ内の前記退避復帰部は、前記第1のプロセッサ内の前記第1判定回路が前記第1の例外割込み信号を発生したとき、前記第1のオペレーティングシステムによって起動され、前記第2のプロセッサ内の前記退避復帰部は、前記第2のプロセッサ内の前記第1判定回路が前記第1の例外割込み信号を発生したとき、第2のオペレーティングシステムによって起動されるようにしてもよい。
い仮想プロセッサとを入れ替え、各状態レジスタのデータのコピーは、仮想プロセッサ毎のコンテキストデータに含まれ、各状態レジスタは、前記ハードウェア資源毎に、現在実行中の仮想プロセッサの拡張コンテキストデータが当該ハードウェア資源内に保持されている可能性があるか否かを示す第1状態情報と、前記ハードウェア資源毎に当該ハードウェア資源内に保持されている拡張コンテキストデータに対応する仮想プロセッサを示す第2状態情報とを保持し、前記マルチスレッドプロセッサは、さらに、スレッドの入れ替えによって実行中の仮想プロセッサが実行中でなくなったときに、スレッドの入れ替えがあった命令準備部内の状態レジスタの第2状態情報をクリアするクリア回路を備える構成としてもよい。
本実施形態におけるプロセッサ装置は、複数のプロセッサ間でハードウェア資源を共有するプロセッサ装置であって、ハードウェア資源内のレジスタに現在実行中の何れかのプログラムの拡張コンテキストデータが保持されているか否かを判定する第1判定部と、前記ハードウェア資源内の拡張コンテキストデータが、どのプロセッサに対応するかを判定する第2判定部と、プロセッサ内のプログラム間で拡張コンテキストデータの退避と復帰とを行う第1転送部と、プロセッサ間のプログラム間で拡張コンテキストデータの退避と復帰とを行う第2転送部とを備える。
0は、当該所定命令を実行する。
プロセッサと前記第2状態情報が示すプロセッサとが一致するか否かを判定し、偽であると判定したとき第2の例外割込み信号を発生する第2判定回路(プロセッサ判定部)を含む。第1および第2判定回路はハードウェアにて構成される。これにより、特に拡張コンテキストデータの入れ替えが不要な場合の処理を高速化する。
、無駄な拡張コンテキストデータの退避および復帰を削減することができる。
させることができる。ハードウェア資源をプロセッサ毎に備える必要がないので、必要な処理性能に応じた個数の必要最小限のハードウェア資源を備えればよく、回路規模を削減または最適化することができる。FPUやハードウェアアクセラレータ等の拡張演算ユニットを効率よく複数のプロセッサで共有することができ、拡張コンテキストデータの退避および復帰を最小限にすることができる。
本実施の形態では、第1の実施の形態で説明したプロセッサ装置をメディアプロセッサに適用する場合の構成について説明する。
Output)ブロック13と、メモリIFブロック14とを備える。
を行う。
Multi Processor)として機能する。仮想マルチプロセッサとは、一般的に、複数の論理プロセッサ(LP:Logical Processor)の機能を時分割に演じる命令並列プロセッサの一種である。ここで一つのLPは、実体的には、物理プロセッサ(PP:Physical Processor)のレジスタ群に設定される一つのコンテキストに対応する。各LPに割り当てる時間単位(TS:Time Slot)の頻度を管理することによって、各LPによって実行されるアプリケーション間の負荷バランスを保つことができる。なお、VMPの構成及び動作については、その代表的な一例が特開2003−271399号公報(特許文献3)に詳しく開示されているので、ここでは詳細な説明を省略する。
ン型プロセッサの構成及び動作については、その代表的な一例が特開2008−123045号公報(特許文献4)に詳しく開示されているので、ここでは詳細な説明を省略する。
PPN155と、Attribute156とを含む。
頭のアドレスの上位16ビットである。PS162はページサイズを示す。例えば、ページサイズとして、1KB、64KB、1MB又は64MBが設定される。PN163は、PS162に設定されたページサイズでのページ数を示す。
くデバッグすることが可能になる。
ェイ指定レジスタ136、FPU割り当てレジスタ137及びページテーブルは、仮想モニタレベルのOS(モニタプログラム)により設定及び更新されるとしたが、仮想モニタレベルのOSの指示により、スーパーバイザーレベルのOSが割り込み制御レジスタ134、エントリ指定レジスタ135、ウェイ指定レジスタ136、FPU割り当てレジスタ137及びページテーブルを設定及び更新してもよい。つまり、仮想モニタレベルのOSによりスーパーバイザーレベルOSに、当該スーパーバイザーレベルのOSに割り当てられた資源が通知され、当該スーパーバイザーレベルのOSは、通知された資源を用いるように割り込み制御レジスタ134、エントリ指定レジスタ135、ウェイ指定レジスタ136、FPU割り当てレジスタ137及びページテーブルを設定及び更新してもよい。
11 プロセッサブロック
12 ストリームI/Oブロック
13 AVIOブロック
14 メモリIFブロック
15 外部メモリ
16 制御バス
17、18、19 データバス
101 実行部
102 VMPC
104 TLB
105 物理アドレス管理部
107 FPU
108 FPU割り当て部
109 キャッシュメモリ
110 BCU
111 割り込み制御部
121 物理プロセッサ
122 演算制御部
123 演算部
124 コンテキスト
126 スケジューラ
127 コンテキストメモリ
128 コンテキスト制御部
130 アドレス変換テーブル
131 物理メモリ保護レジスタ
132 保護違反レジスタ
133 エラーアドレスレジスタ
134 割り込み制御レジスタ
135 エントリ指定レジスタ
136 ウェイ指定レジスタ
137 FPU割り当てレジスタ
138 バスバンド幅指定レジスタ
150 エントリ
151 TLBタグ部
152 TLBデータ部
168 ウェイ
171 システム割り込み
172 LP識別子
173 LP割り込み
174 HWイベント
210 命令準備部
213、223、233 状態レジスタ部
214 レジスタ部
215、225、235 第1判定部
216、226、236 第2判定部
220 命令準備部
230 命令準備部
240 実行パイプライン部
250 制御部
251 第1転送部
251a、251b、251c 退避復帰部
252 第2転送部
253 クリア部
260、270 ハードウェア資源
261、271 レジスタ群
310、320、330 メモリ
311 コンテキストデータ
312 拡張コンテキストデータ
Claims (16)
- プロセッサ装置であって、
複数のプログラムを切り替えながら実行する複数のプロセッサと、
データを保持するレジスタを有し前記複数のプロセッサの命令実行を補完する1つ以上のハードウェア資源と、
前記複数のプログラムのうち前記ハードウェア資源を利用する所定命令を含むプログラム毎に、前記ハードウェア資源内のレジスタデータのコピーである拡張コンテキストデータを記憶するメモリとを備え、
前記複数のプロセッサのそれぞれは、状態レジスタを有し、
各状態レジスタは、前記ハードウェア資源毎に、現在実行中のプログラムの拡張コンテキストデータが当該ハードウェア資源内に保持されているか否かを示す第1状態情報と、前記ハードウェア資源毎に、当該ハードウェア資源内に保持されている拡張コンテキストデータに対応するプロセッサを示す第2状態情報とを保持し、
前記第1状態情報は、前記現在実行中のプログラムにより更新され、
前記第2状態情報は、前記現在実行中のプログラムとは別のプログラムにより更新され、
前記プロセッサ装置は、さらに、
前記ハードウェア資源内に現在実行中のプログラムの拡張コンテキストデータが保持されているか否かを、前記第1状態情報を参照することで判定する第1判定部と、
前記ハードウェア資源内の拡張コンテキストデータが前記所定命令を実行しようとしたプロセッサに属するか否かを、前記第2状態情報を参照することで判定する第2判定部と
を備え、
前記所定命令を実行しようとしたときに、前記ハードウェア資源内に現在実行中のプログラムの拡張コンテキストデータが保持されていると前記第1判定部によって判定され、かつ、前記ハードウェア資源内の拡張コンテキストデータが、前記所定命令を実行しようとしたプロセッサに属すると前記第2判定部によって判定された場合に、前記ハードウェア資源と前記メモリとの間で、拡張コンテキストデータの退避および復帰を行うことなく、前記ハードウェア資源は当該所定命令を実行する
プロセッサ装置。 - 前記ハードウェア資源は前記複数のプロセッサが実行できない拡張命令を実行する拡張演算ユニットであり、前記所定の命令は前記拡張命令である
請求項1記載のプロセッサ装置。 - 前記第1判定部は、複数のプロセッサのそれぞれに設けられたデータ判定部を含み、
各データ判定部は、当該データ判定部に対応するプロセッサがプログラム中の前記所定命令を実行しようとしたとき、当該データ判定部に対応するプロセッサで現在実行中のプログラムの拡張コンテキストデータが前記ハードウェア資源内に保持されているか否かを、前記第1状態情報を参照することで判定し、
前記第2判定部は、複数のプロセッサのそれぞれに設けられたプロセッサ判定部を含み、
各プロセッサ判定部は、前記ハードウェア資源内の拡張コンテキストデータが前記所定命令を実行しようとしたプロセッサに属するか否かを、前記第2状態情報を参照することで判定する
請求項1記載のプロセッサ装置。 - 前記ハードウェア資源内に現在実行中のプログラムの拡張コンテキストデータが保持されていないと前記第1判定部によって判定され、かつ、前記ハードウェア資源内の拡張コンテキストデータが、前記所定命令を実行しようとしたプロセッサに属すると前記第2判定部によって判定された場合に、ハードウェア資源からメモリに拡張コンテキストデータを退避し、退避した拡張コンテキストデータと同じプロセッサに属する拡張コンテキストデータを復帰する第1の転送処理を指示する第1の制御信号と、
前記ハードウェア資源内に現在実行中のプログラムの拡張コンテキストデータが保持されていないと前記第1判定部によって判定され、かつ、前記ハードウェア資源内の拡張コンテキストデータが、前記所定命令を実行しようとしたプロセッサに属さないと前記第2判定部によって判定された場合に、ハードウェア資源からメモリに拡張コンテキストデータを退避し、退避した拡張コンテキストデータとは異なるプロセッサに属する拡張コンテキストデータを復帰する第2の転送処理を指示する第2の制御信号と
を生成する
請求項3記載のプロセッサ装置。 - 前記各データ判定部は、対応するプロセッサがプログラム中の前記所定命令を実行しようとしたとき、前記第1状態情報が真か偽かを判定し、偽であると判定したとき第1の制御信号を発生する第1判定回路を含み、
前記各プロセッサ判定部は、対応する前記第1判定回路が真であると判定したとき、対応するプロセッサと前記第2状態情報が示すプロセッサとが一致するか否かを判定し、偽であると判定したとき第2の制御信号を発生する第2判定回路を含み、
前記ハードウェア資源は、前記第2判定回路が一致すると判定したとき、拡張コンテキストデータの退避および復帰を待つことなく、当該所定命令に従って即座に動作する
請求項4記載のプロセッサ装置。 - 前記第1の制御信号は、前記第1転送処理を起動する第1の例外割り込み信号であり、
前記第2の制御信号は、前記第2の転送処理を起動する第2の例外割り込み信号である
請求項5記載のプロセッサ装置。 - 前記第1の転送処理は、前記第1の例外割り込み信号が発生した場合に前記ハードウェア資源から前記メモリに拡張コンテキストデータを退避し、前記メモリから前記ハードウェア資源に前記所定命令を実行しようとしたプロセッサの拡張コンテキストデータを復帰し、
前記複数のプロセッサは、第1のプロセッサと第2のプロセッサとを含み、
前記第1のプロセッサは第1のオペレーティングシステムを実行することによって複数のプログラムを時分割多重で実行し、
前記第2のプロセッサは第1のオペレーティングシステムとは異なる第2のオペレーティングシステムを実行することによって複数のプログラムを時分割多重で実行し、
前記第1の転送処理は、前記第1のプロセッサ内の前記第1判定回路が前記第1の例外割込み信号を発生したとき、前記第1のオペレーティングシステムによって起動されるか、
または、前記第2のプロセッサ内の前記第1判定回路が前記第1の例外割込み信号を発生したとき、第2のオペレーティングシステムによって起動される
請求項6記載のプロセッサ装置。 - 前記複数のプロセッサの少なくとも1つは、前記第1のオペレーティングシステムと前記第2のオペレーティングシステムとを管理する第3のオペレーティングシステムを実行し、
前記第2の転送処理は、何れかの前記第2判定回路が前記第2の例外割込み信号を発生したとき、第3のオペレーティングシステムによって起動される
請求項7記載のプロセッサ装置。 - 前記第3オペレーティングシステムは、何れかの前記第2判定回路が前記第2の例外割込み信号を発生したとき、当該ハードウェア資源が他のプロセッサの所定命令を実行中である場合は、当該ハードウェア資源が解放されるのを待ち、当該ハードウェア資源を確保した後に、前記第2の転送処理を起動する
請求項8記載のプロセッサ装置。 - 前記第2の転送処理は、前記ハードウェア資源から前記メモリに前記他のプロセッサに対応する拡張コンテキストデータを退避する動作の開始から、前記メモリから前記ハードウェア資源に前記所定命令を実行しようとしたプロセッサの拡張コンテキストデータを復帰する動作の完了までをアトミックに行われる
請求項8記載のプロセッサ装置。 - 各プロセッサは、さらに、当該プロセッサが停止状態、待ち状態または休眠状態に遷移したとき、当該プロセッサに対応する第2状態情報をクリアするクリア回路を備える
請求項8記載のプロセッサ装置。 - 前記各状態レジスタは、第2状態情報をロックするか否かを示す第3状態情報を保持し、
前記第3オペレーティングシステムは、第3状態情報が第2状態情報をロックすることを示すとき、前記クリア回路による第2状態情報のクリアを禁止する
請求項11記載のプロセッサ装置。 - マルチスレッドプロセッサ装置であって、
複数のスレッドを同時に実行することによって、複数のプログラムを切り替える複数の仮想プロセッサを備えるマルチスレッドプロセッサと、
データを保持するレジスタを有し前記複数の仮想プロセッサの命令実行を補完する1つ以上のハードウェア資源と、
前記複数のプログラムのうち前記ハードウェア資源を利用する所定命令を含むプログラム毎に、前記ハードウェア資源内のレジスタデータのコピーである拡張コンテキストデータを記憶するメモリとを備え、
前記複数の仮想プロセッサのそれぞれは、少なくとも1つのスレッドに対応し、
前記マルチスレッドプロセッサは、
スレッドの命令をフェッチおよび解読する複数の命令準備部と、
前記複数の命令準備部により解読された命令であって、1以上のスレッドに対応する1以上の命令を同時に実行する実行部と、
命令準備部毎に設けられた状態レジスタと、
前記命令準備部毎に、現在のスレッドを他のスレッドに入れ替えることによって、前記複数の仮想プロセッサのうち実行中の仮想プロセッサと実行中でない仮想プロセッサとを入れ替える制御部と、
を有し、
前記各状態レジスタは、
前記ハードウェア資源毎に、現在実行中の仮想プロセッサの拡張コンテキストデータが当該ハードウェア資源内に保持されているか否かを示す第1状態情報と、前記ハードウェア資源毎に、当該ハードウェア資源内に保持されている拡張コンテキストデータに対応する仮想プロセッサを示す第2状態情報とを保持し、
前記第1状態情報は、前記現在実行中の仮想プロセッサのプログラムにより更新され、
前記第2状態情報は、前記現在実行中の仮想プロセッサのプログラムとは別のプログラムにより更新され、
前記マルチスレッドプロセッサ装置は、さらに、
前記ハードウェア資源内に現在実行中の仮想プロセッサの拡張コンテキストデータが保持されているか否かを、前記第1状態情報を参照することで判定する第1判定部と、
前記ハードウェア資源内の拡張コンテキストデータが前記所定命令を実行しようとした仮想プロセッサに属するか否かを、前記第2状態情報を参照することで判定する第2判定部と
を備え、
前記ハードウェア資源内に現在実行中の仮想プロセッサの拡張コンテキストデータが保持されていると前記第1判定部によって判定され、かつ、前記ハードウェア資源内の拡張コンテキストデータが、前記所定命令を実行しようとした仮想プロセッサに属すると前記第2判定部によって判定された場合に、前記ハードウェア資源と前記メモリとの間で、拡張コンテキストデータの退避および復帰を行うことなく、前記ハードウェア資源は当該所定命令を実行する
マルチスレッドプロセッサ装置。 - 前記ハードウェア資源内に現在実行中の仮想プロセッサの拡張コンテキストデータが保持されていないと前記第1判定部によって判定され、かつ、前記ハードウェア資源内の拡張コンテキストデータが、前記所定命令を実行しようとした仮想プロセッサに属すると前記第2判定部によって判定された場合に、ハードウェア資源からメモリに拡張コンテキストデータを退避し、退避した拡張コンテキストデータと同じ仮想プロセッサに属する拡張コンテキストデータを復帰する第1の転送処理を起動する第1の制御信号と、
前記ハードウェア資源内に現在実行中の仮想プロセッサの拡張コンテキストデータが保持されていないと前記第1判定部によって判定され、かつ、前記ハードウェア資源内の拡張コンテキストデータが、前記所定命令を実行しようとした仮想プロセッサに属さないと前記第2判定部によって判定された場合に、ハードウェア資源からメモリに拡張コンテキストデータを退避し、退避した拡張コンテキストデータとは異なる仮想プロセッサに属する拡張コンテキストデータを復帰する第2の転送処理を起動する第2の制御信号と
を生成する
請求項13記載のマルチスレッドプロセッサ装置。 - 前記マルチスレッドプロセッサは、さらに、
スレッドの入れ替えによって実行中の仮想プロセッサが実行中でなくなったときに、スレッドの入れ替えがあった命令準備部内の状態レジスタの第2状態情報をクリアするクリア回路を備える
請求項14記載のマルチスレッドプロセッサ装置。 - 前記第1判定部は、前記複数の命令準備部のそれぞれに設けられたデータ判定部を含み、
前記各データ判定部は、対応する命令準備部のスレッドが前記所定命令を実行しようとしたとき、前記第1状態情報が真か偽かを判定することによって、現在実行中の仮想プロセッサの拡張コンテキストデータが前記ハードウェア資源内に保持されているか否かを判定し、
前記第2判定部は、前記複数の命令準備部のそれぞれに設けられたプロセッサ判定部を含み、
前記各プロセッサ判定部は、対応する命令準備部内の前記データ判定部が偽であると判定したとき、対応する命令準備部の仮想プロセッサと前記第2状態情報が示す仮想プロセッサとが一致するか否かを判定し、偽であると判定したとき前記第2の制御信号を発生し、
前記マルチスレッドプロセッサは、さらに、
前記プロセッサ判定部からの前記第2の制御信号をもとに第2の例外割り込み信号を生成し、前記第2の例外割込み信号によって起動される第2の例外割り込み処理を、オペレーティングシステムの一部の機能として実行し、
前記オペレーティングシステムは、前記ハードウェア資源の獲得処理と、前記ハードウェア資源の解放を待つ待ち処理を含み、
前記オペレーティングシステムは、
前記第2の例外割り込み信号を発生させた仮想プロセッサの属する命令準備部以外の命令準備部に属する仮想プロセッサおいて当該ハードウェア資源が使用中でない場合に、前記獲得処理として、前記第2の例外割り込み信号を発生させた命令準備部内の状態レジスタに、前記第2の例外割り込み信号を発生させた仮想プロセッサを示す第2状態情報を設定し、
前記第2の例外割り込み信号を発生させた仮想プロセッサの属する命令準備部以外の命令準備部において仮想プロセッサにおいて当該ハードウェア資源が使用中である場合に、前記待ち処理を実行する
請求項15記載のマルチスレッドプロセッサ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011501354A JP5433676B2 (ja) | 2009-02-24 | 2009-08-11 | プロセッサ装置、マルチスレッドプロセッサ装置 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009041568 | 2009-02-24 | ||
JP2009041568 | 2009-02-24 | ||
PCT/JP2009/003857 WO2010097847A1 (ja) | 2009-02-24 | 2009-08-11 | プロセッサ装置、マルチスレッドプロセッサ装置 |
JP2011501354A JP5433676B2 (ja) | 2009-02-24 | 2009-08-11 | プロセッサ装置、マルチスレッドプロセッサ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2010097847A1 JPWO2010097847A1 (ja) | 2012-08-30 |
JP5433676B2 true JP5433676B2 (ja) | 2014-03-05 |
Family
ID=42665075
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011501354A Active JP5433676B2 (ja) | 2009-02-24 | 2009-08-11 | プロセッサ装置、マルチスレッドプロセッサ装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8850168B2 (ja) |
JP (1) | JP5433676B2 (ja) |
CN (1) | CN102334102B (ja) |
WO (1) | WO2010097847A1 (ja) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2013008326A1 (ja) * | 2011-07-13 | 2015-02-23 | 富士通株式会社 | ソフトウェア検証方法、およびソフトウェア検証システム |
US8615766B2 (en) * | 2012-05-01 | 2013-12-24 | Concurix Corporation | Hybrid operating system |
US9191435B2 (en) * | 2012-08-23 | 2015-11-17 | TidalScale, Inc. | Selective data migration or remapping of virtual processors to provide required data accessibility to processor cores |
JP6214142B2 (ja) * | 2012-10-09 | 2017-10-18 | キヤノン株式会社 | 情報処理装置、情報処理方法およびプログラム |
US9086813B2 (en) * | 2013-03-15 | 2015-07-21 | Qualcomm Incorporated | Method and apparatus to save and restore system memory management unit (MMU) contexts |
US9483185B2 (en) * | 2014-12-16 | 2016-11-01 | Intel Corporation | Gradual context saving in a data storage device |
CN107408034B (zh) | 2015-03-23 | 2022-02-18 | 英特尔公司 | 执行上下文迁移方法和装置 |
US10241706B2 (en) * | 2016-05-20 | 2019-03-26 | Renesas Electronics Corporation | Semiconductor device and its memory access control method |
GB2550903B (en) * | 2016-05-27 | 2019-06-12 | Arm Ip Ltd | Context data control |
US10353736B2 (en) | 2016-08-29 | 2019-07-16 | TidalScale, Inc. | Associating working sets and threads |
CN108009007B (zh) * | 2016-10-27 | 2021-01-15 | 华为技术有限公司 | 轻量级线程的调度方法及协同管理器、vCPU调度器 |
US10579274B2 (en) | 2017-06-27 | 2020-03-03 | TidalScale, Inc. | Hierarchical stalling strategies for handling stalling events in a virtualized environment |
US10353826B2 (en) * | 2017-07-14 | 2019-07-16 | Arm Limited | Method and apparatus for fast context cloning in a data processing system |
US10489304B2 (en) | 2017-07-14 | 2019-11-26 | Arm Limited | Memory address translation |
US10565126B2 (en) | 2017-07-14 | 2020-02-18 | Arm Limited | Method and apparatus for two-layer copy-on-write |
US10467159B2 (en) | 2017-07-14 | 2019-11-05 | Arm Limited | Memory node controller |
US10592424B2 (en) | 2017-07-14 | 2020-03-17 | Arm Limited | Range-based memory system |
US10613989B2 (en) | 2017-07-14 | 2020-04-07 | Arm Limited | Fast address translation for virtual machines |
US10534719B2 (en) | 2017-07-14 | 2020-01-14 | Arm Limited | Memory system for a data processing network |
US10545840B1 (en) * | 2017-07-26 | 2020-01-28 | Amazon Technologies, Inc. | Crash tolerant computer system |
US10817347B2 (en) | 2017-08-31 | 2020-10-27 | TidalScale, Inc. | Entanglement of pages and guest threads |
US10884850B2 (en) | 2018-07-24 | 2021-01-05 | Arm Limited | Fault tolerant memory system |
CN113010281B (zh) * | 2021-02-24 | 2024-04-02 | 厦门树冠科技有限公司 | 多相机检测***的线程处理方法、装置、存储介质和终端 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01217635A (ja) * | 1988-02-26 | 1989-08-31 | Fujitsu Ltd | レジスタ退避方式 |
JPH0484335A (ja) * | 1990-07-27 | 1992-03-17 | Fujitsu Ltd | 仮想計算機制御方式 |
JPH05127926A (ja) * | 1991-10-31 | 1993-05-25 | Nec Corp | タスク制御装置 |
JPH05165652A (ja) * | 1991-12-16 | 1993-07-02 | Fujitsu Ltd | タスク切替え制御方法 |
JPH0887420A (ja) * | 1994-09-09 | 1996-04-02 | Internatl Business Mach Corp <Ibm> | プロセス・スレッドを管理する方法および装置 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6061711A (en) * | 1996-08-19 | 2000-05-09 | Samsung Electronics, Inc. | Efficient context saving and restoring in a multi-tasking computing system environment |
JP3813930B2 (ja) | 2002-01-09 | 2006-08-23 | 松下電器産業株式会社 | プロセッサ及びプログラム実行方法 |
KR20040029254A (ko) | 2002-09-30 | 2004-04-06 | 마츠시타 덴끼 산교 가부시키가이샤 | 자원관리장치 |
JP2004246862A (ja) | 2002-09-30 | 2004-09-02 | Matsushita Electric Ind Co Ltd | リソース管理装置 |
KR20070011335A (ko) | 2004-04-01 | 2007-01-24 | 마쯔시다덴기산교 가부시키가이샤 | 영상음성 처리용 집적회로 |
JP4241921B2 (ja) | 2004-06-10 | 2009-03-18 | 株式会社日立製作所 | 計算機システム及びその資源割当て方法 |
JP4956891B2 (ja) * | 2004-07-26 | 2012-06-20 | 富士通株式会社 | 演算処理装置,情報処理装置および演算処理装置の制御方法 |
US8042116B2 (en) * | 2004-09-17 | 2011-10-18 | Panasonic Corporation | Task switching based on the execution control information held in register groups |
US8195922B2 (en) | 2005-03-18 | 2012-06-05 | Marvell World Trade, Ltd. | System for dynamically allocating processing time to multiple threads |
TWI326428B (en) | 2005-03-18 | 2010-06-21 | Marvell World Trade Ltd | Real-time control apparatus having a multi-thread processor |
US20060212853A1 (en) | 2005-03-18 | 2006-09-21 | Marvell World Trade Ltd. | Real-time control apparatus having a multi-thread processor |
US7536517B2 (en) * | 2005-07-29 | 2009-05-19 | Microsoft Corporation | Direct-update software transactional memory |
US20070143582A1 (en) | 2005-12-16 | 2007-06-21 | Nvidia Corporation | System and method for grouping execution threads |
US8271994B2 (en) * | 2006-02-11 | 2012-09-18 | International Business Machines Corporation | Reduced data transfer during processor context switching |
JP2008123045A (ja) | 2006-11-08 | 2008-05-29 | Matsushita Electric Ind Co Ltd | プロセッサ |
-
2009
- 2009-08-11 WO PCT/JP2009/003857 patent/WO2010097847A1/ja active Application Filing
- 2009-08-11 JP JP2011501354A patent/JP5433676B2/ja active Active
- 2009-08-11 CN CN2009801575253A patent/CN102334102B/zh active Active
-
2011
- 2011-08-23 US US13/215,623 patent/US8850168B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01217635A (ja) * | 1988-02-26 | 1989-08-31 | Fujitsu Ltd | レジスタ退避方式 |
JPH0484335A (ja) * | 1990-07-27 | 1992-03-17 | Fujitsu Ltd | 仮想計算機制御方式 |
JPH05127926A (ja) * | 1991-10-31 | 1993-05-25 | Nec Corp | タスク制御装置 |
JPH05165652A (ja) * | 1991-12-16 | 1993-07-02 | Fujitsu Ltd | タスク切替え制御方法 |
JPH0887420A (ja) * | 1994-09-09 | 1996-04-02 | Internatl Business Mach Corp <Ibm> | プロセス・スレッドを管理する方法および装置 |
Also Published As
Publication number | Publication date |
---|---|
US20120023311A1 (en) | 2012-01-26 |
WO2010097847A1 (ja) | 2010-09-02 |
JPWO2010097847A1 (ja) | 2012-08-30 |
CN102334102B (zh) | 2013-11-20 |
US8850168B2 (en) | 2014-09-30 |
CN102334102A (zh) | 2012-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5433676B2 (ja) | プロセッサ装置、マルチスレッドプロセッサ装置 | |
JP5412504B2 (ja) | マルチスレッドプロセッサ及びデジタルテレビシステム | |
KR100996753B1 (ko) | 시퀀서 어드레스를 관리하기 위한 방법, 맵핑 관리자 및 멀티 시퀀서 멀티스레딩 시스템 | |
US9747218B2 (en) | CPU security mechanisms employing thread-specific protection domains | |
US10558580B2 (en) | Methods and apparatus for loading firmware on demand | |
US7694304B2 (en) | Mechanisms for dynamic configuration of virtual processor resources | |
US6438671B1 (en) | Generating partition corresponding real address in partitioned mode supporting system | |
JP4870914B2 (ja) | デジタルデータプロセッサ | |
JP5813554B2 (ja) | 半導体装置 | |
US7873961B2 (en) | Supervisory operating system for running multiple child operating systems simultaneously and optimizing resource usage | |
US9465670B2 (en) | Generational thread scheduler using reservations for fair scheduling | |
US20100115228A1 (en) | Unified address space architecture | |
JP2005018590A (ja) | スケジューリング方法およびリアルタイム処理システム | |
US10705849B2 (en) | Mode-selectable processor for execution of a single thread in a first mode and plural borrowed threads in a second mode | |
JP2005043959A (ja) | スケジューリング方法および情報処理システム | |
JP2005018610A (ja) | スケジューリング方法および情報処理システム | |
US11256625B2 (en) | Partition identifiers for page table walk memory transactions | |
TWI470434B (zh) | 在電腦系統中執行之方法,電腦系統,處理器 | |
CN113127936A (zh) | 具有对保护环之间的特权资源和异常的可配置分配的处理器 | |
JP2015228261A (ja) | 半導体装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120606 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130521 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130718 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130827 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131024 |
|
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: 20131203 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131209 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5433676 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |