JP4420055B2 - マルチスレッドプロセッサ及びそれに用いるスレッド間同期操作方法 - Google Patents

マルチスレッドプロセッサ及びそれに用いるスレッド間同期操作方法 Download PDF

Info

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
Application number
JP2007108783A
Other languages
English (en)
Other versions
JP2008269114A (ja
Inventor
均 高木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2007108783A priority Critical patent/JP4420055B2/ja
Priority to US12/102,151 priority patent/US8117425B2/en
Publication of JP2008269114A publication Critical patent/JP2008269114A/ja
Application granted granted Critical
Publication of JP4420055B2 publication Critical patent/JP4420055B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/3009Thread control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining 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

本発明はマルチスレッドプロセッサ及びそれに用いるスレッド間同期操作方法に関し、特にマルチスレッドプロセッサにおけるスレッド間の同期操作に関する。
マルチスレッドプロセッサでは、プログラムを単一プロセス内でスレッドと呼ぶ実行単位に分割して並行実行している。この場合、複数のスレッドはメモリ空間を共有している。したがって、複数のスレッドが共有のデータを扱う際には、データの競合が発生することがあり、このデータの競合が起こらないようにするためにスレッド間の同期操作(あるスレッドが共有のデータを扱っている時に、他のスレッドが共有のデータを扱えないようにする排他的な操作)が行われる。従来のスレッド間の同期操作を図2〜図4に示す。
図2において、CPU101はスレッド(Thread)102から指定された命令領域105にあるプログラムを実行中である。スレッド102はターゲット(Target)103と同期をとるために、同期ワード106を設定し、その初期値を1(0以外)と設定する。
スレッド102の実行が命令領域105のCHK(check)命令まで到達すると、同期ワード106が参照され、その値が0以外であると、スレッド102の状態はR(Runnable)からS(Suspend)になり、システムで実行されている全てのスレッドがつながれているスレッドキュー(Thread Queue)108につながれる。
CPU101の実行が進むと、図3に示すように、スレッドキュー108中のターゲット103がCPU101にロードされて実行される。ターゲット103の命令領域107には、スレッド102との同期の完了を知らせるために、LAC(load and Clear)命令があり、この命令が実行されると、同期ワード106の値は、1から0に変更される。
さらに、CPU101の実行が進むと、図4に示すように、再度、スレッド102がロードされて実行され、再度、CHK命令から実行され、今度は同期ワード106が0のため、その後の命令が継続できる。このようにして、スレッド間の同期を実現することができる。データの受け渡しは、別途取り決めた方法で行われる。
一般的なマルチスレッドプロセッサの方式については、以下の非特許文献に記載されている。
"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)
しかしながら、上述した従来のスレッド間の同期操作では、スレッド間の同期のために、同期ワードの参照というメモリアクセスが必要なため、同期のためのコストが大きいという問題がある。
また、従来のスレッド間の同期操作では、スレッド間の同期のためのデータの授受が、別のメモリ領域を介して行うため、余計なコストが生ずるという問題がある。
Java(登録商標)、C#、C等のプログラミング言語で記述されたスレッドを多用するソフトウェアでは、スレッド間の依存関係を保証するために、スレッド間の同期操作が必要になる。スレッド間の同期操作は、通常、メモリを介して同期操作を行い、データの受け渡しを行うため、処理的にコストがかかる操作となり、スレッドを多用するソフトウェアの性能に大きく影響する処理である。
マルチスレッドプロセッサは、その性質から、同期を必要とするスレッドが同一プロセッサ内に存在する可能性が高く、プロセッサ内での同期とデータ受け渡しとが実現できれば、プログラムの性能向上に寄与することが大いに期待できる。
そこで、本発明の目的は上記の問題点を解消し、スレッド間の同期操作を高速化することができるマルチスレッドプロセッサ及びそれに用いるスレッド間同期操作方法を提供することにある。
本発明によるマルチスレッドプロセッサは、複数のスレッドをパイプラインにて並行実行するマルチスレッドプロセッサであって、
前記複数のスレッドの情報各々と当該情報内の各々にシステム内で一意にスレッドを特定するスレッドID(identifier)とを保持する保持手段と、
次に実行されるスレッドの命令が同期命令である場合に前記保持手段内に同期対象であるターゲットスレッドがあるか否かをチェックして当該ターゲットスレッドが同一プロセッサ上に存在するか否かを判定する手段と、
前記ターゲットスレッドが前記同一プロセッサ上に存在しないと判定した場合にトラップを発生して対象とするスレッドを前記同一プロセッサ内にロードする手段と、
前記ターゲットスレッドが前記同一プロセッサ上に存在する場合に次の命令発行の時点で次に実行するスレッドを前記ターゲットスレッドとして連続的に前記パイプラインに投入する手段とを備えている。
本発明によるスレッド間同期操作方法は、複数のスレッドをパイプラインにて並行実行するマルチスレッドプロセッサに用いるスレッド間同期操作方法であって、
前記マルチスレッドプロセッサにおいて、前記複数のスレッドの情報各々と当該情報内の各々にシステム内で一意にスレッドを特定するスレッドID(identifier)とを保持手段に保持しておき、
前記マルチスレッドプロセッサが、次に実行されるスレッドの命令が同期命令である場合に前記保持手段内に同期対象であるターゲットスレッドがあるか否かをチェックして当該ターゲットスレッドが同一プロセッサ上に存在するか否かを判定する処理と、前記ターゲットスレッドが前記同一プロセッサ上に存在しないと判定した場合にトラップを発生して対象とするスレッドを前記同一プロセッサ内にロードする処理と、前記ターゲットスレッドが前記同一プロセッサ上に存在する場合に次の命令発行の時点で次に実行するスレッドを前記ターゲットスレッドとして連続的に前記パイプラインに投入する処理とを実行している。
すなわち、本発明のマルチスレッドプロセッサは、その保持する複数のスレッド情報内の各々に、システム内で一意のスレッドID(identifier)を保持する手段と、ターゲットとするスレッドが同一プロセッサ上に存在しない場合に、トラップを発生する手段と、ターゲットとするスレッドが同一プロセッサ上に存在する場合に、次の命令発行の時点で、次に実行するスレッドを当該ターゲットとするスレッドとして連続的にパイプラインに投入する手段と、あるスレッドの実行したデータを次に続くターゲットとするスレッドの演算の入力とする手段と、ターゲットとするスレッドを、あるスレッドが実行中において実行不可としてパイプラインに投入せず、当該あるスレッドのコンテキスト内にあるデータ(レジスタ)を当該ターゲットとするスレッドのコンテキストに転送する手段とを有することによって、上記の課題を解決することを特徴とする。
より具体的に説明すると、本発明のマルチスレッドプロセッサでは、スレッドデータベース(Thread DB)に、その保持する複数のスレッド情報内の各々に、システム内で一意にスレッドを特定するスレッドIDを保持する。
チェック(Check)手段は、ターゲットとするスレッドが同一プロセッサ上に存在しない場合に、トラップを発生する。イッシュー(Issue)手段は、ターゲットとするスレッドが同一プロセッサ上に存在する場合に、次の命令発行の時点で、次に実行するスレッドを当該ターゲットとするスレッドとして、連続的にパイプラインに投入する。
ゲート(G)手段は、あるスレッドの実行したデータを、次に続くターゲットとするスレッドの演算の入力とする。スイッチ(Switch)手段はターゲットとするスレッドを、あるスレッドが実行中において実行不可として、パイプラインに投入せず、当該あるスレッドのコンテキスト内にあるデータ(レジスタ)を、当該ターゲットとするスレッドのコンテキストに転送する。
このようにして、本発明のマルチスレッドプロセッサでは、同期するスレッドの存在の有無を検出する検出手段[チェック(Check)手段及びイッシュー(Issue)手段]と、スレッド同期のための高速化手段[ゲート(G)手段及びスイッチ(Switch)手段]とを有することで、多数のスレッドによって構成されるプログラムの同期操作の高速化を図り、よって処理全体の高速化を図ることを可能としている。
つまり、本発明のマルチスレッドプロセッサでは、同期対象のスレッドの存在の有無を検出しているので、スレッド間の同期操作の高速化を達成することが可能となる。
また、本発明のマルチスレッドプロセッサでは、メモリを介することなく、同期操作をプロセッサ内で行うので、スレッド間の同期操作の高速化を達成することが可能となる。
さらに、本発明のマルチスレッドプロセッサでは、スレッド間の同期操作に関わるデータ交換を、パイプラインステージ間で行っているので、スレッド間のデータの交換を高速化することが可能となる。
本発明は、上記のような構成及び動作とすることで、スレッド間の同期操作を高速化することができるという効果が得られる。
次に、本発明の実施例について図面を参照して説明する。図1は本発明の一実施例によるマルチスレッドプロセッサの動作を示すブロック図である。図1において、スレッドデータベース(Thread DB)1にはその保持する複数のスレッド(Thread)#0〜#nの情報内の各々に、システム内で一意にスレッド#0〜#n各々を特定するスレッドID(idntifier)が保持されている。
チェック(Check)手段3はターゲットとするスレッドが同一プロセッサ上に存在しない場合に、トラップ(TRAP)10を発生する。イッシュー(Issue)手段2はターゲットとするスレッドが同一プロセッサ上に存在する場合に、次の命令発行の時点で、次に実行するスレッドをそのターゲットとするスレッドとして、連続的にパイプラインに投入する。
ゲート(G)手段11はあるスレッドの実行したデータを、次に続くターゲットとするスレッドの演算の入力とする。スイッチ(Switch)手段13はターゲットとするスレッドを、あるスレッドが実行中において実行不可として、パイプラインに投入せず、当該あるスレッドのコンテキスト内にあるデータ(レジスタ)を当該ターゲットとするスレッドのコンテキストに転送する。
このように、本発明の一実施例によるマルチスレッドプロセッサには、同期するスレッドの存在の有無を検出する検出手段(チェック手段3及びイッシュー手段2)と、スレッド同期のための高速化手段(ゲート手段11及びスイッチ手段13)とを有しているので、多数のスレッド#1〜#nによって構成されるプログラムの同期操作の高速化を図ることができ、処理全体の高速化を図ることができる。
以上、本発明の一実施例によるマルチスレッドプロセッサについて述べたが、上記のマルチスレッドプロセッサの一般的な動作については、当業者にとってよく知られており、また本発明とは直接関係しないので、その説明については省略する。
次に、図1に示す本発明の一実施例によるマルチスレッドプロセッサの動作について説明する。本発明の一実施例によるマルチスレッドプロセッサでは、ステージ(Stage)I,D,E,M,Cからなるパイプライン処理が実行される。
つまり、ステージIでは、イッシュー手段2またはチェック手段3による処理が実行され、ステージDでは、命令デコード(Instruction Decoding)手段4による処理が実行され、ステージEでは、実行(Execute)手段5による処理が実行される。
また、ステージMでは、メモリアクセス(Memory Access)手段6によるメモリ系(Cache memory,Memory)8へのアクセス処理が実行され、ステージCでは、命令終了(Instruction Completion)処理7が行われる。
図1において、スレッドデータベース1内の、次に実行されるスレッド#0の命令が、同期命令であると、チェック手段3はスレッドデータベース1内に同期対象であるスレッドがあるかをチェックし、同期対象であるスレッドがない時にその命令をトラップし、オペレーティング・システム(OS)(図示せず)の介入によって対象とするスレッド(この例の場合はスレッド#3)をこのプロセッサ内にロードする(図1の12の処理)。
同期対象であるスレッドがある場合、イッシュー手段2はスレッド#0の命令投入の次のサイクルにて、スレッド#3を投入すべく、スレッド#3の情報を次スレッド(NEXT thread)(レジスタ)9に格納する。これによって、スレッド#0の実行後、続けてスレッド#3が投入される(図1のステージIの処理)。
スレッド#0が実行手段5によって実行されると、その実行結果は、ゲート手段11を通じて、後続のスレッド#3の入力となり、スレッド#3が実行手段5によって実行される時に、データの受け渡しが完了する(図1のステージEの処理)。
尚、このステージEでのデータの受け渡しの代替手段として、スレッド#3を実行せず、その実行スロットを空のままで、スイッチ手段13を通じてデータの受け渡しをするような構成も可能である。
このように、本実施例では、イッシュー手段2またはチェック手段3による処理の前に、同期対象のスレッドの存在の有無を検出しているので、スレッド間の同期操作の高速化を達成することができる。
また、本実施例では、スレッド間の同期操作をメモリを介さず、同一のプロセッサ内で行うので、スレッド間の同期操作の高速化を達成することができる。
さらに、本実施例では、スレッド間の同期操作に関わるデータ交換を、パイプラインステージ間でデータの受け渡しを行っているので、データの交換を高速化することができる。
本発明の一実施例によるマルチスレッドプロセッサの動作を示すブロック図である。 従来のスレッド間の同期操作を示す図である。 従来のスレッド間の同期操作を示す図である。 従来のスレッド間の同期操作を示す図である。
符号の説明
1 スレッドデータベース
2 イッシュー手段
3 チェック手段
4 命令デコード手段
5 実行手段
6 メモリアクセス手段
7 命令終了処理
8 メモリ系
9 次スレッド
10 トラップ
11 ゲート手段
13 スイッチ手段

Claims (6)

  1. 複数のスレッドをパイプラインにて並行実行するマルチスレッドプロセッサであって、
    前記複数のスレッドの情報各々と当該情報内の各々にシステム内で一意にスレッドを特定するスレッドID(identifier)とを保持する保持手段と、
    次に実行されるスレッドの命令が同期命令である場合に前記保持手段内に同期対象であるターゲットスレッドがあるか否かをチェックして当該ターゲットスレッドが同一プロセッサ上に存在するか否かを判定する手段と、
    前記ターゲットスレッドが前記同一プロセッサ上に存在しないと判定した場合にトラップを発生して対象とするスレッドを前記同一プロセッサ内にロードする手段と、
    前記ターゲットスレッドが前記同一プロセッサ上に存在する場合に次の命令発行の時点で次に実行するスレッドを前記ターゲットスレッドとして連続的に前記パイプラインに投入する手段とを有することを特徴とするマルチスレッドプロセッサ。
  2. あるスレッドの実行したデータを次に続く前記ターゲットスレッドの演算の入力とする手段を含むことを特徴とする請求項1記載のマルチスレッドプロセッサ。
  3. あるスレッドが実行中において前記ターゲットスレッドを実行不可として前記パイプラインに投入せず、前記あるスレッドのコンテキスト内にあるデータを前記ターゲットスレッドのコンテキストに転送する手段を含むことを特徴とする請求項1または請求項2記載のマルチスレッドプロセッサ。
  4. 複数のスレッドをパイプラインにて並行実行するマルチスレッドプロセッサに用いるスレッド間同期操作方法であって、
    前記マルチスレッドプロセッサにおいて、前記複数のスレッドの情報各々と当該情報内の各々にシステム内で一意にスレッドを特定するスレッドID(identifier)とを保持手段に保持しておき、
    前記マルチスレッドプロセッサが、次に実行されるスレッドの命令が同期命令である場合に前記保持手段内に同期対象であるターゲットスレッドがあるか否かをチェックして当該ターゲットスレッドが同一プロセッサ上に存在するか否かを判定する処理と、前記ターゲットスレッドが前記同一プロセッサ上に存在しないと判定した場合にトラップを発生して対象とするスレッドを前記同一プロセッサ内にロードする処理と、前記ターゲットスレッドが前記同一プロセッサ上に存在する場合に次の命令発行の時点で次に実行するスレッドを前記ターゲットスレッドとして連続的に前記パイプラインに投入する処理とを実行することを特徴とするスレッド間同期操作方法。
  5. 前記マルチスレッドプロセッサが、あるスレッドの実行したデータを次に続く前記ターゲットスレッドの演算の入力とする処理を実行することを特徴とする請求項4記載のスレッド間同期操作方法。
  6. 前記マルチスレッドプロセッサが、あるスレッドが実行中において前記ターゲットスレッドを実行不可として前記パイプラインに投入せず、前記あるスレッドのコンテキスト内にあるデータを前記ターゲットスレッドのコンテキストに転送する処理を実行することを特徴とする請求項4または請求項5記載のスレッド間同期操作方法。
JP2007108783A 2007-04-18 2007-04-18 マルチスレッドプロセッサ及びそれに用いるスレッド間同期操作方法 Expired - Fee Related JP4420055B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
US8117425B2 (en) 2012-02-14
JP2008269114A (ja) 2008-11-06
US20080263552A1 (en) 2008-10-23

Similar Documents

Publication Publication Date Title
TWI468937B (zh) 產生分支記錄的方法與系統及儲存分支記錄的處理器
TWI514267B (zh) 用於多股亂序處理器中之指令排程的方法及裝置與系統
JP5643345B2 (ja) アグレッシブ最適化によって施された変更をロールバック可能なアグレッシブ・コード最適化を実行する装置、方法及びコンピュータ・プログラム
TWI423123B (zh) 用於推測性指令之無效的通用分支系統、其方法、其識別器與其電腦可讀取儲存媒體
US8990786B2 (en) Program optimizing apparatus, program optimizing method, and program optimizing article of manufacture
US8171476B2 (en) Wake-and-go mechanism with prioritization of threads
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
JP2015501019A (ja) コンピュータ・システム内のオペランド活性情報の維持
US20090113179A1 (en) Operational processing apparatus, processor, program converting apparatus and program
TWI719501B (zh) 中央處理單元(cpu)、中央處理單元(cpu)控制器與在中央處理單元(cpu)中執行指令的方法
TWI608412B (zh) 適應性最佳化比較交換運算技術
JP4420055B2 (ja) マルチスレッドプロセッサ及びそれに用いるスレッド間同期操作方法
US8490071B2 (en) Shared prefetching to reduce execution skew in multi-threaded systems
US10545763B2 (en) Detecting data dependencies of instructions associated with threads in a simultaneous multithreading scheme
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
EP4208783A1 (en) Alternate path for branch prediction redirect
JPH07219772A (ja) データキャッシュ機構

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 Written amendment

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