JP4420055B2 - マルチスレッドプロセッサ及びそれに用いるスレッド間同期操作方法 - Google Patents
マルチスレッドプロセッサ及びそれに用いるスレッド間同期操作方法 Download PDFInfo
- Publication number
- JP4420055B2 JP4420055B2 JP2007108783A JP2007108783A JP4420055B2 JP 4420055 B2 JP4420055 B2 JP 4420055B2 JP 2007108783 A JP2007108783 A JP 2007108783A JP 2007108783 A JP2007108783 A JP 2007108783A JP 4420055 B2 JP4420055 B2 JP 4420055B2
- Authority
- JP
- Japan
- Prior art keywords
- thread
- processor
- target
- threads
- 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.)
- Expired - Fee Related
Links
- 230000001360 synchronised effect Effects 0.000 title claims description 33
- 238000000034 method Methods 0.000 title claims description 22
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- SNICXCGAKADSCV-UHFFFAOYSA-N nicotine Chemical compound CN1CCCC1C1=CC=CN=C1 SNICXCGAKADSCV-UHFFFAOYSA-N 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/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/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
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
"Sun Niagara and an Evaluation of SMT in IBM’s Power5"(John Mellor−Crummey,Department of Computer Science Rice University,COMP 522 Lecture4 7 September 2006)
前記複数のスレッドの情報各々と当該情報内の各々にシステム内で一意にスレッドを特定するスレッドID(identifier)とを保持する保持手段と、
次に実行されるスレッドの命令が同期命令である場合に前記保持手段内に同期対象であるターゲットスレッドがあるか否かをチェックして当該ターゲットスレッドが同一プロセッサ上に存在するか否かを判定する手段と、
前記ターゲットスレッドが前記同一プロセッサ上に存在しないと判定した場合にトラップを発生して対象とするスレッドを前記同一プロセッサ内にロードする手段と、
前記ターゲットスレッドが前記同一プロセッサ上に存在する場合に次の命令発行の時点で次に実行するスレッドを前記ターゲットスレッドとして連続的に前記パイプラインに投入する手段とを備えている。
前記マルチスレッドプロセッサにおいて、前記複数のスレッドの情報各々と当該情報内の各々にシステム内で一意にスレッドを特定するスレッドID(identifier)とを保持手段に保持しておき、
前記マルチスレッドプロセッサが、次に実行されるスレッドの命令が同期命令である場合に前記保持手段内に同期対象であるターゲットスレッドがあるか否かをチェックして当該ターゲットスレッドが同一プロセッサ上に存在するか否かを判定する処理と、前記ターゲットスレッドが前記同一プロセッサ上に存在しないと判定した場合にトラップを発生して対象とするスレッドを前記同一プロセッサ内にロードする処理と、前記ターゲットスレッドが前記同一プロセッサ上に存在する場合に次の命令発行の時点で次に実行するスレッドを前記ターゲットスレッドとして連続的に前記パイプラインに投入する処理とを実行している。
2 イッシュー手段
3 チェック手段
4 命令デコード手段
5 実行手段
6 メモリアクセス手段
7 命令終了処理
8 メモリ系
9 次スレッド
10 トラップ
11 ゲート手段
13 スイッチ手段
Claims (6)
- 複数のスレッドをパイプラインにて並行実行するマルチスレッドプロセッサであって、
前記複数のスレッドの情報各々と当該情報内の各々にシステム内で一意にスレッドを特定するスレッドID(identifier)とを保持する保持手段と、
次に実行されるスレッドの命令が同期命令である場合に前記保持手段内に同期対象であるターゲットスレッドがあるか否かをチェックして当該ターゲットスレッドが同一プロセッサ上に存在するか否かを判定する手段と、
前記ターゲットスレッドが前記同一プロセッサ上に存在しないと判定した場合にトラップを発生して対象とするスレッドを前記同一プロセッサ内にロードする手段と、
前記ターゲットスレッドが前記同一プロセッサ上に存在する場合に次の命令発行の時点で次に実行するスレッドを前記ターゲットスレッドとして連続的に前記パイプラインに投入する手段とを有することを特徴とするマルチスレッドプロセッサ。 - あるスレッドの実行したデータを次に続く前記ターゲットスレッドの演算の入力とする手段を含むことを特徴とする請求項1記載のマルチスレッドプロセッサ。
- あるスレッドが実行中において前記ターゲットスレッドを実行不可として前記パイプラインに投入せず、前記あるスレッドのコンテキスト内にあるデータを前記ターゲットスレッドのコンテキストに転送する手段を含むことを特徴とする請求項1または請求項2記載のマルチスレッドプロセッサ。
- 複数のスレッドをパイプラインにて並行実行するマルチスレッドプロセッサに用いるスレッド間同期操作方法であって、
前記マルチスレッドプロセッサにおいて、前記複数のスレッドの情報各々と当該情報内の各々にシステム内で一意にスレッドを特定するスレッドID(identifier)とを保持手段に保持しておき、
前記マルチスレッドプロセッサが、次に実行されるスレッドの命令が同期命令である場合に前記保持手段内に同期対象であるターゲットスレッドがあるか否かをチェックして当該ターゲットスレッドが同一プロセッサ上に存在するか否かを判定する処理と、前記ターゲットスレッドが前記同一プロセッサ上に存在しないと判定した場合にトラップを発生して対象とするスレッドを前記同一プロセッサ内にロードする処理と、前記ターゲットスレッドが前記同一プロセッサ上に存在する場合に次の命令発行の時点で次に実行するスレッドを前記ターゲットスレッドとして連続的に前記パイプラインに投入する処理とを実行することを特徴とするスレッド間同期操作方法。 - 前記マルチスレッドプロセッサが、あるスレッドの実行したデータを次に続く前記ターゲットスレッドの演算の入力とする処理を実行することを特徴とする請求項4記載のスレッド間同期操作方法。
- 前記マルチスレッドプロセッサが、あるスレッドが実行中において前記ターゲットスレッドを実行不可として前記パイプラインに投入せず、前記あるスレッドのコンテキスト内にあるデータを前記ターゲットスレッドのコンテキストに転送する処理を実行することを特徴とする請求項4または請求項5記載のスレッド間同期操作方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007108783A JP4420055B2 (ja) | 2007-04-18 | 2007-04-18 | マルチスレッドプロセッサ及びそれに用いるスレッド間同期操作方法 |
US12/102,151 US8117425B2 (en) | 2007-04-18 | 2008-04-14 | Multithread processor and method of synchronization operations among threads to be used in same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007108783A JP4420055B2 (ja) | 2007-04-18 | 2007-04-18 | マルチスレッドプロセッサ及びそれに用いるスレッド間同期操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008269114A JP2008269114A (ja) | 2008-11-06 |
JP4420055B2 true JP4420055B2 (ja) | 2010-02-24 |
Family
ID=39873519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007108783A Expired - Fee Related JP4420055B2 (ja) | 2007-04-18 | 2007-04-18 | マルチスレッドプロセッサ及びそれに用いるスレッド間同期操作方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8117425B2 (ja) |
JP (1) | JP4420055B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6051721B2 (ja) * | 2012-09-19 | 2016-12-27 | 株式会社ソシオネクスト | 実行制御方法、およびマルチプロセッサシステム |
CN104539698B (zh) * | 2014-12-29 | 2018-01-26 | 哈尔滨工业大学 | 一种基于延时修正的多线程套接字同步通信接入方法 |
CN109445854B (zh) * | 2018-10-31 | 2019-11-05 | 中科驭数(北京)科技有限公司 | 数据传输方法及装置 |
US11294672B2 (en) | 2019-08-22 | 2022-04-05 | Apple Inc. | Routing circuitry for permutation of single-instruction multiple-data operands |
US11256518B2 (en) * | 2019-10-09 | 2022-02-22 | Apple Inc. | Datapath circuitry for math operations using SIMD pipelines |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3557947B2 (ja) | 1999-05-24 | 2004-08-25 | 日本電気株式会社 | 複数のプロセッサで同時にスレッドの実行を開始させる方法及びその装置並びにコンピュータ可読記録媒体 |
JP3796124B2 (ja) | 2001-03-07 | 2006-07-12 | 株式会社ルネサステクノロジ | スレッド間優先度可変プロセッサ |
US6470487B1 (en) * | 2001-04-25 | 2002-10-22 | Lsi Logic Corporation | Parallelization of resynthesis |
US7080376B2 (en) * | 2001-09-21 | 2006-07-18 | Intel Corporation | High performance synchronization of accesses by threads to shared resources |
US7363474B2 (en) | 2001-12-31 | 2008-04-22 | Intel Corporation | Method and apparatus for suspending execution of a thread until a specified memory access occurs |
US7493615B2 (en) * | 2003-05-01 | 2009-02-17 | Sun Microsystems, Inc. | Apparatus and method for synchronizing multiple threads in an out-of-order microprocessor |
US7430737B2 (en) * | 2003-12-04 | 2008-09-30 | Sun Microsystems, Inc. | Processor and method for supporting compiler directed multithreading management |
US20060026388A1 (en) * | 2004-07-30 | 2006-02-02 | Karp Alan H | Computer executing instructions having embedded synchronization points |
-
2007
- 2007-04-18 JP JP2007108783A patent/JP4420055B2/ja not_active Expired - Fee Related
-
2008
- 2008-04-14 US US12/102,151 patent/US8117425B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20080263552A1 (en) | 2008-10-23 |
JP2008269114A (ja) | 2008-11-06 |
US8117425B2 (en) | 2012-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI468937B (zh) | 產生分支記錄的方法與系統及儲存分支記錄的處理器 | |
JP6095670B2 (ja) | コンピュータ・システム内のオペランド活性情報の維持 | |
TWI514267B (zh) | 用於多股亂序處理器中之指令排程的方法及裝置與系統 | |
JP5643345B2 (ja) | アグレッシブ最適化によって施された変更をロールバック可能なアグレッシブ・コード最適化を実行する装置、方法及びコンピュータ・プログラム | |
TWI423123B (zh) | 用於推測性指令之無效的通用分支系統、其方法、其識別器與其電腦可讀取儲存媒體 | |
US8990786B2 (en) | Program optimizing apparatus, program optimizing method, and program optimizing article of manufacture | |
US8732683B2 (en) | Compiler providing idiom to idiom accelerator | |
JP4841861B2 (ja) | 演算処理装置及びデータ転送処理の実行方法 | |
US20090199197A1 (en) | Wake-and-Go Mechanism with Dynamic Allocation in Hardware Private Array | |
KR102379894B1 (ko) | 벡터 연산들 수행시의 어드레스 충돌 관리 장치 및 방법 | |
US20110173417A1 (en) | Programming Idiom Accelerators | |
WO2016100142A2 (en) | Advanced processor architecture | |
US20090113179A1 (en) | Operational processing apparatus, processor, program converting apparatus and program | |
TWI719501B (zh) | 中央處理單元(cpu)、中央處理單元(cpu)控制器與在中央處理單元(cpu)中執行指令的方法 | |
TWI608412B (zh) | 適應性最佳化比較交換運算技術 | |
US10545763B2 (en) | Detecting data dependencies of instructions associated with threads in a simultaneous multithreading scheme | |
JP4420055B2 (ja) | マルチスレッドプロセッサ及びそれに用いるスレッド間同期操作方法 | |
US8490071B2 (en) | Shared prefetching to reduce execution skew in multi-threaded systems | |
JP2014085839A (ja) | 並列実行機構及びその動作方法 | |
US8490098B2 (en) | Concomitance scheduling commensal threads in a multi-threading computer system | |
KR100837400B1 (ko) | 멀티스레딩/비순차 병합 기법에 따라 처리하는 방법 및장치 | |
KR100498486B1 (ko) | 쓰레드 바이너리 컴파일러에 의하여 프로그램에서 여러개의 쓰레드를 다이내믹하게 추출하는 컴퓨터 시스템 및그 동시 다중 쓰레딩 방법 | |
US8725992B2 (en) | Programming language exposing idiom calls to a programming idiom accelerator | |
TWI428833B (zh) | 多執行緒處理器及其指令執行及同步方法及其電腦程式產品 | |
EP4208783A1 (en) | Alternate path for branch prediction redirect |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090406 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090414 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090714 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090824 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20091020 |
|
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: 20091110 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20091123 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121211 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4420055 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121211 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131211 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |