JP2010020363A - 演算処理装置 - Google Patents
演算処理装置 Download PDFInfo
- Publication number
- JP2010020363A JP2010020363A JP2008177520A JP2008177520A JP2010020363A JP 2010020363 A JP2010020363 A JP 2010020363A JP 2008177520 A JP2008177520 A JP 2008177520A JP 2008177520 A JP2008177520 A JP 2008177520A JP 2010020363 A JP2010020363 A JP 2010020363A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- execution
- unit
- synchronization
- completion
- 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.)
- Ceased
Links
- 238000012544 monitoring process Methods 0.000 claims abstract description 77
- 238000001514 detection method Methods 0.000 claims abstract description 20
- 238000000034 method Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 13
- 238000012986 modification Methods 0.000 description 10
- 230000004048 modification Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 230000010365 information processing Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 1
- 238000003672 processing method 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/3009—Thread control instructions
-
- 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/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- 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)
- Executing Machine-Instructions (AREA)
Abstract
【解決手段】命令発行ユニットからスレッド番号と実行部指定マップとを含む命令同期監視要求を受けると、実行完了検出部320における監視が開始され、命令発行ユニットは命令同期命令の属するスレッドの後続命令の発行を停止する。実行部において命令同期命令の先行命令の実行が完了すると、実行完了記録テーブル310の実行部指定マップ312における対応するビットがセットされる。命令発行ユニットからのスレッド番号に従ってセレクタ321により選択されたエントリにおける実行完了記録テーブル310の実行部指定マップ312と、命令発行ユニットから指定された実行部指定マップとが一致したことが比較器322によって検出される。これにより、論理積回路323を介して命令同期の成立が命令発行ユニットに通知される。
【選択図】図5
Description
20 メモリ
30 メモリキャッシュ
50 フレームバッファ
60 バッファキャッシュ
100 演算処理装置
111〜114 入力キュー
121〜124 命令発行ユニット
130 アービタ
140 命令デコーダ
150 レジスタファイル
160 実行部
161 ロードストアユニット
162 算術論理演算器
163 乗算器
164〜168 特殊演算器
170 ライトバックユニット
180 出力キュー
190 命令同期監視ユニット
310 実行完了記録テーブル
311 スレッド番号
312 実行部指定マップ
320 実行完了検出部
321 セレクタ
322 比較器
323 論理積回路
610 機能コード
620 スレッド番号
630 実行部指定マップ
Claims (4)
- 複数のスレッドに関する命令を同時に実行する複数の実行部と、
前記複数の実行部の各々に対して命令を発行する命令発行部と、
前記複数の実行部の何れかに命令同期命令が発行された場合に当該命令同期命令の属するスレッドにおける先行命令の実行完了を検出するために、前記複数の実行部のうち前記命令同期命令を発行された実行部の各々について前記命令同期命令の実行完了を監視する命令同期監視部とを具備し、
前記命令発行部は、前記命令同期命令を発行した後には前記命令同期監視部によって前記命令同期命令の属するスレッドにおける先行命令の実行完了が検出されるまで前記命令同期命令の属するスレッドにおける後続命令の発行を停止する演算処理装置。 - 前記命令同期命令は、当該命令同期命令の属するスレッドの識別子を示すスレッド識別子フィールドと、前記複数の実行部のうち前記先行命令の実行完了を検出すべきものを指定する実行部指定フィールドとを備え、
前記命令同期監視部は、前記スレッド識別子フィールドによって示されるスレッドに属する前記先行命令が、前記複数の実行部のうち前記実行部指定フィールドによって指定された実行部において実行完了したことを検出する
請求項1記載の演算処理装置。 - 前記命令同期監視部は、
スレッド毎に前記複数の実行部の各々における前記先行命令の実行が完了したか否かを記録する実行完了記録部と、
前記実行完了記録部における前記記録と前記実行部指定フィールドにおける前記指定とを比較することにより前記複数の実行部のうち前記実行部指定フィールドによって指定された全ての実行部において前記先行命令の実行が完了したことを検出する実行完了検出部とを備える
請求項2記載の演算処理装置。 - 前記実行完了検出部は、
前記実行完了記録部に記録される前記先行命令の実行完了の有無を前記スレッド識別子フィールドに従って選択する選択器と、
前記選択された前記先行命令の実行完了の有無と前記実行部指定フィールドにおける前記実行部の指定とを比較する比較器と、
前記命令発行部によって前記命令同期命令が発行された場合に前記比較の結果を前記実行完了検出部の検出結果として出力する出力部とを備える
請求項3記載の演算処理装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008177520A JP2010020363A (ja) | 2008-07-08 | 2008-07-08 | 演算処理装置 |
US12/498,536 US8245015B2 (en) | 2008-07-08 | 2009-07-07 | Processor monitoring execution of a synchronization instruction issued to execution sections to detect completion of execution of preceding instructions in an identified thread |
CN200910158828A CN101625637A (zh) | 2008-07-08 | 2009-07-08 | 处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008177520A JP2010020363A (ja) | 2008-07-08 | 2008-07-08 | 演算処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010020363A true JP2010020363A (ja) | 2010-01-28 |
JP2010020363A5 JP2010020363A5 (ja) | 2011-06-16 |
Family
ID=41506169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008177520A Ceased JP2010020363A (ja) | 2008-07-08 | 2008-07-08 | 演算処理装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8245015B2 (ja) |
JP (1) | JP2010020363A (ja) |
CN (1) | CN101625637A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017539001A (ja) * | 2014-11-13 | 2017-12-28 | エイアールエム リミテッド | コンテキスト依存のバリア命令の実行 |
KR102075689B1 (ko) * | 2018-08-16 | 2020-02-10 | 주식회사 넥스트칩 | 태스크의 기능 안전을 보장하기 위한 방법 및 장치 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110296437A1 (en) * | 2010-05-28 | 2011-12-01 | Devendra Raut | Method and apparatus for lockless communication between cores in a multi-core processor |
GB2573316B (en) | 2018-05-02 | 2021-01-27 | Advanced Risc Mach Ltd | Data processing systems |
US20210373975A1 (en) * | 2020-05-29 | 2021-12-02 | Advanced Micro Devices, Inc. | Workgroup synchronization and processing |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07200486A (ja) * | 1993-12-28 | 1995-08-04 | Nec Corp | 情報処理装置 |
JPH07262142A (ja) * | 1994-03-18 | 1995-10-13 | Fujitsu Ltd | 並列処理制御方式 |
JPH11306149A (ja) * | 1998-04-16 | 1999-11-05 | Sony Corp | 並列演算処理装置およびその方法 |
JP2002532811A (ja) * | 1998-12-17 | 2002-10-02 | 株式会社ソニー・コンピュータエンタテインメント | 楽音データ生成装置および方法、並びに該方法を提供する媒体 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5881264A (en) * | 1996-01-31 | 1999-03-09 | Kabushiki Kaisha Toshiba | Memory controller and memory control system |
US7493615B2 (en) | 2003-05-01 | 2009-02-17 | Sun Microsystems, Inc. | Apparatus and method for synchronizing multiple threads in an out-of-order microprocessor |
JP4259390B2 (ja) | 2004-04-28 | 2009-04-30 | 日本電気株式会社 | 並列演算処理装置 |
US7412589B2 (en) * | 2006-03-31 | 2008-08-12 | International Business Machines Corporation | Method to detect a stalled instruction stream and serialize micro-operation execution |
-
2008
- 2008-07-08 JP JP2008177520A patent/JP2010020363A/ja not_active Ceased
-
2009
- 2009-07-07 US US12/498,536 patent/US8245015B2/en not_active Expired - Fee Related
- 2009-07-08 CN CN200910158828A patent/CN101625637A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07200486A (ja) * | 1993-12-28 | 1995-08-04 | Nec Corp | 情報処理装置 |
JPH07262142A (ja) * | 1994-03-18 | 1995-10-13 | Fujitsu Ltd | 並列処理制御方式 |
JPH11306149A (ja) * | 1998-04-16 | 1999-11-05 | Sony Corp | 並列演算処理装置およびその方法 |
JP2002532811A (ja) * | 1998-12-17 | 2002-10-02 | 株式会社ソニー・コンピュータエンタテインメント | 楽音データ生成装置および方法、並びに該方法を提供する媒体 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017539001A (ja) * | 2014-11-13 | 2017-12-28 | エイアールエム リミテッド | コンテキスト依存のバリア命令の実行 |
US10503512B2 (en) | 2014-11-13 | 2019-12-10 | Arm Limited | Context sensitive barriers with an implicit access ordering constraint for a victim context |
KR102075689B1 (ko) * | 2018-08-16 | 2020-02-10 | 주식회사 넥스트칩 | 태스크의 기능 안전을 보장하기 위한 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
US20100011195A1 (en) | 2010-01-14 |
US8245015B2 (en) | 2012-08-14 |
CN101625637A (zh) | 2010-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI514267B (zh) | 用於多股亂序處理器中之指令排程的方法及裝置與系統 | |
US9195466B2 (en) | Fusing conditional write instructions having opposite conditions in instruction processing circuits, and related processor systems, methods, and computer-readable media | |
US9477476B2 (en) | Fusing immediate value, write-based instructions in instruction processing circuits, and related processor systems, methods, and computer-readable media | |
US9710276B2 (en) | Execution of instruction loops using an instruction buffer | |
TWI835807B (zh) | 用於組合載入或儲存指示的方法、裝置及非暫時性電腦可讀媒體 | |
TWI497278B (zh) | 微處理器、死結或活結狀態解除方法以及其電腦程式產品 | |
JP2003196084A (ja) | リードモディファイライトユニットを有するシステム | |
US20140281429A1 (en) | Eliminating redundant synchronization barriers in instruction processing circuits, and related processor systems, methods, and computer-readable media | |
US20140075160A1 (en) | System and method for synchronizing threads in a divergent region of code | |
JP2010020363A (ja) | 演算処理装置 | |
EP3140730B1 (en) | Detecting data dependencies of instructions associated with threads in a simultaneous multithreading scheme | |
KR100983135B1 (ko) | 패킷의 의존성 명령을 그룹핑하여 실행하는 프로세서 및 방법 | |
WO2024146076A1 (zh) | 乱序处理器中队列的队列项选择方法及装置 | |
US9886396B2 (en) | Scalable event handling in multi-threaded processor cores | |
US20130191616A1 (en) | Instruction control circuit, processor, and instruction control method | |
JP2010086497A (ja) | 画像処理装置及びデータプロセッサ | |
WO2013011620A1 (ja) | マルチプロセッサシステム | |
US20120144399A1 (en) | Apparatus and method for synchronization of threads | |
JPH07244588A (ja) | データ処理装置 | |
CN114461278B (zh) | 操作指令调度队列的方法、操作装置和电子装置 | |
US11567554B2 (en) | Clock mesh-based power conservation in a coprocessor based on in-flight instruction characteristics | |
KR20170065845A (ko) | 프로세서 및 제어 방법 | |
JP5328833B2 (ja) | ダイレクトメモリアクセスシステム及びその制御方法 | |
JP2006107004A (ja) | トレース制御回路、マイクロプロセッサ及びトレース制御方法 | |
JP5062950B2 (ja) | ダイレクトメモリアクセス装置及びその制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110428 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110428 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130129 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130319 |
|
A045 | Written measure of dismissal of application [lapsed due to lack of payment] |
Free format text: JAPANESE INTERMEDIATE CODE: A045 Effective date: 20131029 |