JP2006502504A - マルチスレッド・プロセッサにおけるレジスタ・ファイルのポートを削減するための方法および装置 - Google Patents

マルチスレッド・プロセッサにおけるレジスタ・ファイルのポートを削減するための方法および装置 Download PDF

Info

Publication number
JP2006502504A
JP2006502504A JP2004543541A JP2004543541A JP2006502504A JP 2006502504 A JP2006502504 A JP 2006502504A JP 2004543541 A JP2004543541 A JP 2004543541A JP 2004543541 A JP2004543541 A JP 2004543541A JP 2006502504 A JP2006502504 A JP 2006502504A
Authority
JP
Japan
Prior art keywords
thread
processor
register file
instruction
identifier
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.)
Granted
Application number
JP2004543541A
Other languages
English (en)
Other versions
JP2006502504A5 (ja
JP4187720B2 (ja
Inventor
ホケネク,エルデム
モウドジル,メイアン
グロスナー,ジョン,シー.
Original Assignee
サンドブリッジ テクノロジーズ インコーポレーテッド
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 サンドブリッジ テクノロジーズ インコーポレーテッド filed Critical サンドブリッジ テクノロジーズ インコーポレーテッド
Publication of JP2006502504A publication Critical patent/JP2006502504A/ja
Publication of JP2006502504A5 publication Critical patent/JP2006502504A5/ja
Application granted granted Critical
Publication of JP4187720B2 publication Critical patent/JP4187720B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • 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 or look ahead
    • 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 or 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

マルチスレッド・プロセッサによるスレッド・ベースのレジスタ・ファイル・アクセスのために技法が開示されている。マルチスレッド・プロセッサは、特定のプロセッサ・スレッドに関連付けられたスレッド識別子を決定し、対応するプロセッサ・スレッドによってアクセスされる関連のレジスタ・ファイルの特定部分を選択するためにスレッド識別子の少なくとも一部分を使用する。例示的な実施形態では、レジスタ・ファイルが偶数部分と奇数部分に分割され、スレッド識別子の最下位ビットまたは他の部分が、所与のプロセッサ・スレッドで使用されるその偶数または奇数部分を選択するために使用される。スレッド・ベースのレジスタ・ファイル選択は、トークン・トリガ・スレッディングおよび命令パイプライン化と共に使用することができる。有利には、本発明は、並行性の所望レベルを維持しつつ、レジスタ・ファイル・ポートの必要数を削減し、したがってプロセッサの電力消費を低減する。

Description

本発明は、一般に、デジタル・データ・プロセッサの分野に関し、より詳細には、マルチスレッド・プロセッサにおけるレジスタ・ファイル・アクセス技法に関する。
本発明は、本明細書とすべて同時に出願された、「Method and Apparatus for Thread−Based Memory Access in a Multithreaded Processor」と題する整理番号1007−5、「Multithreaded Processor With Efficient Processing For Convergence Device Applications」と題する整理番号1007−6、および「Method and Apparatus for Token Triggered Multithreading」と題する整理番号1007−8の米国特許出願に記載された発明に関連し、それを参照により本明細書に組み込む。
コンピュータ・システムまたは他のプロセッサ・ベースのシステムにおける記憶スペースは、通常、メモリおよびレジスタに区分される。従来のレジスタ・ファイルの構成は、例えば、M.J.Flynn、「Computer Architecture:Pipelined and Parallel Processor Design」、Jones and Bartlett Publishers、米国マサチューセッツ州ボストン、1995年、およびG.A.Blaauw and Frederick P.Brooks、「Computer Architecture:Concepts and Evolution」、Addison−Wesley、米国マサチューセッツ州レディング、1997年に記載されており、それらを共に参照により本明細書に組み込む。
所与のレジスタ・ファイルは、いわゆる「汎用」レジスタ・ファイルとすることができ、通常、それは、プロセッサ内の複数の命令機能に関連付けられた中間的なまたは他の一時的な結果を記憶するために使用可能なレジスタ・ファイルのことをいう。以前は、プロセッサ・サイクルごとに必要なレジスタ・ポート数が最小となるように、1つの命令だけがアクティブで汎用レジスタ・ファイルにアクセスしていた。しかし、最近のプロセッサは、通常、所与のプロセッサ・サイクル中で多くの命令をアクティブにし、したがって、プロセッサ・サイクルごとに複数のレジスタ・ファイル・アクセスを有する。例えば、マルチスレッド・プロセッサは、一時的な結果をレジスタ・ファイルに記憶し、複数の異なる命令シーケンスまたは「スレッド」の同時実行により高い並行性(concurrency)を提供する。
最近のプロセッサにおけるこれらのおよび他の類似の構成は、「ポート・プレッシャ(port pressure)」、すなわち、必要なレジスタ・ファイル・ポート数の大幅な増加をもたらすことになり得る。残念ながら、レジスタ・ファイルのポート・プレッシャに関連付けられた重大な問題は、レジスタ・ファイル・ポート数の増加によりプロセッサの電力損失も大幅に増加することである。通常、レジスタ・ファイル・ポートに関連付けられた電力消費は、主としてレジスタ・ファイルの書込みポートに起因すると考えられる。
汎用レジスタ・ファイルを含む最近のプロセッサの実施例は、TMS320C6000 CPUおよび命令セット参照ガイド、SPRZ168B、http://www−s.ti.com/sc/psheets/sprz168b/sprz168b.pdfに記載されたテキサス・インスツルメンツ(TI)社のC64xであり、それを参照により本明細書に組み込む。TI社のC64xは、サイクルごとに最高8つの命令を発行し、1つの命令がプロセッサの1つの実行ユニットを制御することができる一種のVLIW(Very Long Instruction Word)アーキテクチャを使用する。そのプロセッサのレジスタ・ファイルは、64のレジスタを含む。各命令が64のレジスタすべてにアクセスできるようにC64xを構成することは、26の読取りポートと18の書込みポート、すなわち合計44ポートが必要である。しかし、このような構成は困難であるため、それに代わって、C64xの設計者はレジスタ・ファイル・アクセスを半分に分割するよう決定し、その2つの半分の間でポートを分け、それによりプログラマに制限を設けるようにしている。それにもかかわらず、C64xは、なお、合計44のポートが必要である。
米国特許出願整理番号1007−5 米国特許出願整理番号1007−6 米国特許出願整理番号1007−8 米国特許出願第10/161774号 米国特許出願第10/161874号 米国仮出願第60/341289号 M.J.Flynn、「Computer Architecture:Pipelined and Parallel Processor Design」、Jones and Bartlett Publishers、米国マサチューセッツ州ボストン、1995年 G.A.Blaauw and Frederick P.Brooks、「Computer Architecture:Concepts and Evolution」、Addison−Wesley、米国マサチューセッツ州レディング、1997年 TMS320C6000 CPUおよび命令セット参照ガイド、SPRZ168B、http://www−s.ti.com/sc/psheets/sprz168b/sprz168b.pdf
したがって、ポート・プレッシャを削減することは、最近のプロセッサ設計、特に多くの命令が所与のプロセッサ・サイクル中でアクティブになり得るマルチスレッド・プロセッサおよび他のプロセッサに対する設計の重要な側面となっている。並行性の所望レベルに影響を与えることなくプロセッサの電力消費を減少させるために、ポート・プレッシャの低減を提供する技法が当技術分野で求められている。
本発明は、マルチスレッド・プロセッサのための改善されたレジスタ・ファイル構成および関連するスレッド・ベースのレジスタ・ファイル選択技法を提供する。
本発明によると、マルチスレッド・プロセッサは、特定のプロセッサ・スレッドに関連付けられたスレッド識別子を決定し、そのスレッド識別子の少なくとも一部分を使用して対応するプロセッサ・スレッドによってアクセスされるレジスタ・ファイルの特定の部分を選択する。例えば、スレッド識別子の最下位ビットまたは他の部分を、レジスタ・ファイルの偶数部分と奇数部分の一方を選択するのに使用することができる。
さらに特定の実施例として、所与の汎用レジスタ・ファイルを、レジスタの複数の偶数および奇数の組に構成し、そのレジスタの複数の偶数または奇数の組をイネーブルにする(有効にする)ために、スレッド識別子の一部分を使用することができる。
本発明の他の態様は、トークン・トリガ・スレッディング(token triggered threading)およびパイプライン型命令処理(pipelined instruction processing)に関する。例えば、マルチスレッド・プロセッサは、トークン・トリガ・スレッディングを実施するよう構成することができる。この種のスレッディングでは、現在のプロセッサ・クロック・サイクルに関連して、後続するクロック・サイクルのための命令を発行可能となる特定のハードウェア・スレッド・ユニット、またはコンテキストを識別するためにトークンが使用される。
本発明は、必要なレジスタ・ファイルの書込みポート数を大幅に削減し、したがって、プロセッサ性能への損失なしにプロセッサの電力消費を低減するため、有利である。例えば、例示的な実施形態では、レジスタ・ファイルへの複数の書込みアクセスを、単一の書込みポートだけを用いて単一のプロセッサ・サイクル中で達成することができる。
関連する汎用レジスタ・ファイルを有するマルチスレッド・プロセッサ中で本発明が実施されるものとしてここに説明する。しかし、本発明は、例示的な実施形態による特定のマルチスレッド・プロセッサおよびレジスタ・ファイル構成の使用を必要とせず、より一般的に、必要なレジスタ・ファイルの書込みポート数の削減および電力消費の低減を提供することが望ましい、任意のマルチスレッド・プロセッサ・レジスタ・ファイル応用分野において使用されるのが適切であると理解されたい。
本発明によるスレッド・ベースのレジスタ・ファイル選択技法を実施する例示的な処理システム100を図1、図2と共に説明する。
図1は、主メモリ104に結合されたマルチスレッド・プロセッサ102を含む処理システム100を示す。マルチスレッド・プロセッサ102は、マルチスレッド・キャッシュ・メモリ110およびマルチスレッド・データ・メモリ112を含む。
図2は、マルチスレッド・プロセッサ102の可能な一実装形態のより詳細なビュー(view)を示す。この実施形態では、マルチスレッド・プロセッサ102は、マルチスレッド・キャッシュ・メモリ110、データ・メモリ112、キャッシュ・コントローラ114、命令デコーダ116、レジスタ・ファイル118、および1組の算術論理演算装置(ALU)120を含む。マルチスレッド・キャッシュ・メモリ110はまた、ここではマルチスレッド・キャッシュとも呼ぶ。
図1および図2で示された特定の構成は、説明を明確にするために簡略化されており、当業者には明らかなように、明示的に示されていない追加のまたは代替的なエレメントを含み得ることに留意されたい。
マルチスレッド・キャッシュ110は、複数のスレッド・キャッシュ110−1、110−2、・・・、110−Nを含む。ただし、Nは、マルチスレッド・プロセッサ102によってサポートされるスレッド数を示す。したがって、各スレッドは、それに関連付けられた対応するスレッド・キャッシュをマルチスレッド・キャッシュ110中に有する。同様に、データ・メモリ112は、図示のように、データ・メモリ112−1、112−2、・・・、112−Nで示されたN個の異なるデータ・メモリ・インスタンスを含む。
マルチスレッド・キャッシュ110中の各スレッド・キャッシュは、メモリ・ロケーションの1つまたは複数の組を有するメモリ・アレイを備えることができる。所与のスレッド・キャッシュはさらに、関連付けられたスレッド識別子を記憶するためのスレッド識別子レジスタを備えることができ、図7と共に以下でより詳細に説明する。
マルチスレッド・キャッシュ110は、キャッシュ・コントローラ114を介して主メモリ104とインターフェースする。キャッシュ・コントローラ114は、主メモリ104から適切な命令がマルチスレッド・キャッシュ110に確実にロードされるようにする。この例示的な実施形態におけるキャッシュ・コントローラ114は、個々のスレッド・キャッシュ110−1、110−2、・・・、110−Nに関連付けられた論理回路または他の処理要素と共に動作し、完全アソシエイティヴ・マッピング、直接マッピング、またはセット・アソシエイティブ・マッピングなどのアドレス・マッピング技法の少なくとも一部分を実施する。本発明と共に使用するのに適切な例示的なセット・アソシエイティブ・マッピング技法は、本出願と同一出願人である、2002年6月4日出願の米国特許出願第10/161774号および10/161874号に記載されており、それらを共に参照により本明細書に組み込む。
一般に、マルチスレッド・キャッシュ110は、マルチスレッド・プロセッサ102により実行される命令を記憶するために使用され、一方、データ・メモリ112は、その命令が操作するデータを記憶する。命令は、命令デコーダ116によりマルチスレッド・キャッシュ110からフェッチされ、命令デコーダ116は、命令の実行を制御する場合、従来方法によりレジスタ・ファイル118およびALU120と共に動作する。116および120などのマルチスレッド・プロセッサ・エレメントの動作は、当技術分野でよく理解されており、したがって、ここでさらなる詳細を説明しない。
データ・メモリ112は、通常、主メモリ104に直接接続されるが、図では、その接続を明示的に示していない。
1つまたは複数のメモリ104、110、および112はそれぞれ、複数のバンクまたは他の指示された部分を含むように構成することができる。例として、各バンクが、1つまたは複数のメモリ・モジュール、または単一のメモリ・モジュールの指定された部分から構成されているように見ることも可能である。
マルチスレッド・プロセッサに関連付けられたこれらのおよび他のメモリのスレッド・ベース・バンキング技法は、前に引用した、「Method and Apparatus for Thread−Based Memory Access in a Multithreaded Processor」と題する整理番号1007−5の米国特許出願に記載されている。
本発明は、図2に示す特定のマルチスレッド・プロセッサ構成を必要としないことを強調すべきである。本発明は、多種多様の他のマルチスレッド・プロセッサ構成で実施することができる。
図2に示され、本発明と共に使用するのに適切なタイプのマルチスレッド・プロセッサのより特定な実施例は、2001年12月20日に出願の米国仮出願第60/341289号に記載されており、それを参照により本明細書に組み込む。米国仮出願第60/341289号に記載されたマルチスレッド・プロセッサの例示的な実施形態は、RISCベースの制御コード、DSP(デジタル信号プロセッサ)、Java(登録商標)コード、およびネットワーク処理コードを実行することができる。そのプロセッサは、SIMD(single instruction multiple data)ベクトル・ユニット、リダクション・ユニット、およびLIW(long instruction word)複合命令の実行を含む。
本発明は、その一態様によると、図2のプロセッサ102などマルチスレッド・プロセッサのレジスタ・ファイル・ポート必要数の大幅な削減を提供する。より具体的には、以下でより詳細に説明するように、プロセッサ102は、レジスタ・ファイル・ポート必要数を削減するために、本発明の技法にしたがって、トークン・トリガ・スレッディングおよび命令のパイプライン化と共にレジスタ・ファイルのスレッド・ベースの区分化を用いるように構成される。その構成を用いると特に、複数の同時書込みが単一のレジスタ・ファイル書込みポートによりサポートされるという利点がある。
図3は、スレッド数Nが8個であるプロセッサ102を実施するためのトークン・トリガ・スレッディングの一実施例を示す。一般に、スレッドはすべて同時に動作し、それぞれがスレッド・キャッシュ110およびデータ・メモリ112の対応するインスタンスにアクセスする。図3に示すように、8個のスレッドは、スレッド0、スレッド1、スレッド2、・・・、スレッド7で示され、リングの形で相互に連続的に結合されて示されている。マルチスレッド・プロセッサでは、所与のスレッドは、一般に、ソフトウェアと同様にハードウェアの点からも見ることができる。したがって、所与のスレッドに関連付けられた特定のプロセッサのハードウェアは、本明細書ではより具体的に、ハードウェア・スレッド・ユニットまたは単に「コンテキスト」と呼ぶものとする。
図3に示すトークン・トリガ・スレッディングによると、ハードウェアのスレッド・ユニットまたはコンテキストのすべてが同時に命令を実行することが可能となるが、プロセッサの特定のクロック・サイクル中で1つのコンテキストだけが命令を発行することもできる。言い換えると、すべてのコンテキストは同時に実行されるが、ある特定のクロック・サイクルに対して1つのコンテキストだけがアクティブになる。したがって、合計C個のコンテキストがある場合、すべてのコンテキストから1つの命令を発行するためにはC個のクロック・サイクルが必要となる。各クロック・サイクルでは、コンテキストのうちの1つが1つの命令を発行し、命令を発行する次のスレッドはトークンによって示される。図3の実施例では、コンテキストが命令を連続して発行するように、トークンが連続的にまたはラウンド・ロビン方式で構成される。しかし、命令を発行することを次のコンテキストに示すトークンは、偶数/奇数の交互パターンなど他のパターンを用いて構成することもできる。また上記のように、他のタイプのスレッディングも本発明と共に使用することができる。
図4は、本発明によるマルチスレッド・プロセッサ102中で、例示的な命令機能をパイプライン化することができる方法を示す。本発明の例示的な実施形態では、このタイプのパイプライン化は、前に述べたトークン・トリガ・スレッディングと共に使用されることが好ましいが、パイプライン化およびスレッディングの数多くの他の組合わせを本発明を実施するのに使用できることも理解されたい。
図4のパイプラインは、図3の例示的なN=8のトークン・トリガ・スレッディングと共に使用するように構成されている。図4の例示的な命令機能は、ロード/記憶(Ld/St)、ALU、整数乗算(I_Mul)、およびベクトル乗算(V_Mul)を含み、それぞれ、9、6、7、および8個のパイプライン段を有するものとして示されている。
図4に示す例示的な各命令パイプラインは、少なくとも命令デコード段、レジスタ・ファイル(RF)読取り段、転送(Xfer)段、およびライトバック(WB)段を含む。RF読取り段は、レジスタ・ファイル、例えばレジスタ・ファイル118からの読取りを含み、転送段は、通常、命令の結果を指示された保持レジスタへの転送を含み、またWB段は、命令の結果をメモリまたはレジスタ・ファイルに書き戻すことを含む。
Ld/Stパイプラインはさらに、アドレス生成(Agen)段、内部(Int)もしくは外部(Ext)判定段、およびMem0、Mem1、Mem2で示される3つの追加メモリ実行段を含む。したがって、Ld/Stパイプラインは、合計4つのメモリ実行段、すなわち、Mem0、Mem1、Mem2、およびWBを含む。内部または外部判定段は、関連するメモリ・アクセスが内部メモリまたは外部メモリのいずれに対するものであるかを判定し、パイプライン内の追加のデコード段として見ることができる。追加のメモリ実行段がいくつかの外部メモリ・アクセスに対して必要となり得ることに留意されたい。例えば、外部メモリ・アクセスのWB段が、対応するスレッドがアクティブである時間期間中に完了しない場合、そのスレッドがアクティブな次の時間にWB段が完了するようにそのスレッドを停止することができる。
ALUパイプラインはさらに、Exec1およびExec2で示される2つの実行段を含む。
整数I_Mulパイプラインはさらに、Exec1、Exec2、およびExec3で示される3つの実行段を含む。
ベクトルV_Mulパイプラインはさらに、2つの乗算段MPY1とMPY2、および2つの追加段Add1とAdd2を含む。
マルチスレッド・プロセッサ102は、特定のコンテキストからの命令がその対応するパイプラインに入力された後、完了するまで動作するように構成されることが好ましい。
適切に構成されたパイプラインおよび十分な数のスレッドを用いると、すべてのハードウェア・コンテキストは、サイクルおよびコンテキストごとに単一の命令が発行されるだけであっても同時に実行され得る。前に示したように、スレッドおよびパイプライン段の特定の数は、説明のためだけであり好ましい実装形態を示すものではない。ここに提供された教示があれば、当業者なら特定の応用例のためのスレッドおよびパイプライン段の適切な数を容易に決定することができよう。
次に、図4のパイプライン動作のいくつかの実施例を、図5および図6を参照して説明する。図5および図6は、それぞれ特定のプロセッサ・スレッドによって発行された命令シーケンスを示し、その対応するスレッドにより、レジスタ・ファイル118の偶数(e)部分を使用するのか、奇数(o)部分を使用するのかを命令ごとに指示する。図7は、本発明の技法にしたがって、どのようにしてレジスタ・ファイル118を偶数および奇数部分に分離できるか、その部分のうちの特定の1つがスレッド識別子を用いて選択可能であることを用いたその実施例を示す。
図5および図6の諸実施例では、説明の簡略化と明確化のため、スレッド数Nが4に等しく、各スレッドが、図3のトークン・トリガ・スレッディングのラウンド・ロビンを実施することにより命令を発行するものと仮定する。より具体的には、これらの実施例における各スレッドは、多くの信号処理アプリケーションにおける典型的な命令シーケンスであるロード命令とベクトル乗算命令とを交互に発行する。ロードおよびベクトル乗算命令は、本質的に図4に示す命令機能パイプラインで説明するように構成される。
次に図5を参照すると、各スレッドがサイクルごとに1つの命令を発行する単一発行(single issue)パイプラインの実施例が示されている。発行された命令によってアクセスされるレジスタ・ファイル部分は、スレッドからスレッドに偶数(e)と奇数(o)の間を交互に変わることが図5から分る。それによって、スレッド4の最初のロード命令およびスレッド1のベクトル乗算命令のライトバック段に関連付けられたなどの隣接するレジスタのライトバック動作は、レジスタ・ファイルの異なる部分を対象とすることができる。より具体的には、スレッド4の最初のロード命令は、レジスタ・ファイルの偶数部分を対象とし、一方、スレッド1のベクトル乗算命令は、レジスタ・ファイルの奇数部分を対象とする。図に示す他の命令も同様に構成される。
図7で説明するように、スレッド識別子は、所与のスレッドによりレジスタ・ファイルの偶数部分をアクセスするのか奇数部分をアクセスするのかを選択するために使用される。例えば、図5および図6のN=4の場合、スレッド識別子のLSB(最下位ビット)がレジスタ・ファイルの偶数部分と奇数部分の間を選択するために使用することができる。
図6は、各プロセッサ・スレッドがサイクルごとに2つの命令を発行する例示的な複数発行(multiple issue)パイプラインを示す。ここでは、単一のスレッドがサイクルごとにロード命令とベクトル乗算命令を共に発行している。サイクルごとに複数の命令を発行するため、図5の実施例に対して2つの追加のレジスタ・ファイル読取りポートが必要となる。しかし、図で分るように、この場合もすべての同時書込みが、スレッド識別子のLSBに基づいて決定されたレジスタ・ファイルの偶数または奇数部分に対して行われるので、必要なレジスタ・ファイル書込みポート数が削減され、したがってプロセッサの電力消費を低減することができる。
図5および図6で示されたスレッドの特定な数は、例のためだけであり、本発明は、どんな特定のスレッド数の使用も制限しないことを強調すべきである。
図7は、マルチスレッド・プロセッサ102のレジスタ・ファイル118を、本発明の上記スレッド・ベースのレジスタ・ファイル選択技法にしたがって構成する方法を示す。レジスタ・ファイル118は、プロセッサ回路700と関連して示されており、それはさらに、スレッド識別子レジスタ702および選択回路704を含む。この実施形態では、汎用レジスタ・ファイル、またはプロセッサ102に関連付けられた他のタイプのレジスタ・ファイルとすることができるレジスタ・ファイル118は、いくつかの、レジスタの偶数の組および奇数の組に構成される。より具体的には、レジスタ・ファイル118は、偶数レジスタの組TとTを含む偶数部分、および奇数レジスタの組TとTを含む奇数部分に分割される。
レジスタの各組T、T、T、およびTは、一般に、N=4の実施形態における4個のスレッドのうちの1つと一致し、図示のように8個のベクトル・レジスタV、V、V、・・・、Vを含む。8個のベクトル・レジスタV、V、V、・・・、Vのそれぞれは、この図示例では、例えば、各40ビットの4個のベクトル・エレメントを含む。例えば、レジスタの組Tのべクトル・レジスタVは、V28、V29、V30、およびV31で示される4個のベクトル・エレメントを含む。もちろん、この特定の構成は、例のためだけに提供されており、数多くの他の構成を使用することもできる。
スレッド識別子レジスタ702に記憶されているスレッド識別子の一部分が、レジスタの偶数の組または奇数の組をイネーブルするために使用される。選択回路704はマルチプレクサを備えており、それは、そのenable_evenおよびenable_odd出力の一方を、スレッド識別子に基づいて論理ハイレベルに駆動し、他方を論理ローレベルに駆動する。
図7に示されたものと同様のレジスタ・ファイル構成もまた、Nの他の値で使用することができる。例えば、その構成では、スレッド識別子の追加のビットが選択プロセスで使用され、N=8の実施形態で使用することができる。
上記の構成により、レジスタ・ファイル118は、そうでなければ従来技法の使用が必要になる場合と比べて大幅に削減した書込みポート数を含むことが可能となり、したがって低電力消費とすることができる。図7に示す特定の構成および4個のスレッドの実装では、レジスタ・ファイルの各偶数および奇数部分は、単一の書込みポートだけを用いて構成することができる。
数多くの代替レジスタ・ファイル構成が本発明の技法を用いて可能である。例えば、1つの可能な代替構成は、レジスタ・ファイルを2以上の部分に分けることであり、その場合、所与のプロセッサ・スレッドによりアクセスされるレジスタ・ファイルの特定部分を選択するのにスレッド識別子の追加のビットを使用することができる。より一般的には、所与のレジスタ・ファイルの2の異なる部分の1つを選択するために、スレッド識別子のn個の最下位ビットを使用することができる。
可能な他の代替の構成は、偶数または奇数部分のスレッド・ベース選択を用いて、単一のレジスタを少なくとも偶数および奇数部分に分けることである。より一般的には、単一のレジスタを2の異なる部分に分離することができる。
したがって、ここで用いられる用語「レジスタ・ファイル」は、1つまたは複数のレジスタの任意の構成を含むものとする。したがって、所与のレジスタ・ファイルは、例としてかつ限定することなく、1つまたは複数の汎用レジスタ、補助レジスタ、分岐レジスタ、プログラム・レジスタなど、ならびにその部分もしくは組合わせを含むことができる。
スレッド識別子レジスタ702および関連する選択回路704は、マルチスレッド・プロセッサ102のエレメントとして実装されることが好ましい。例えば、そのエレメントを全体的もしくは部分的に、キャッシュ・コントローラ114あるいはマルチスレッド・プロセッサ102の他の部分に実装することができる。
スレッド識別子レジスタ702は、特定のスレッドを識別するためにマルチスレッド・プロセッサ102によって用いられるマルチビット・スレッド識別子を記憶する。このようなスレッド識別子は、当業者には明らかなように従来の方法で生成することができる。
ここで使用される用語「スレッド識別子」は、マルチスレッド・プロセッサ中の特定のスレッドまたは複数のスレッドの1組を識別するのに適切な任意の情報を含むものとする。そのスレッド識別子は、例としてかつ限定することなく、マルチスレッド・プロセッサ中のスレッド・カウンタ出力に一致することができる。より具体的には、所与のマルチスレッド・プロセッサは、実行される特定のスレッドを識別するためにスレッド・カウンタ出力を使用して、ラウンド・ロビン順など所定の順番でマルチスレッドが処理されるように構成することができる。このような実施形態では、処理される特定のスレッドを識別するために3ビット・カウンタ出力を使用できるようにし、各スレッドを3ビットの識別子によって識別することにより、図3に示すように、合計8個のスレッドをラウンド・ロビン順で処理することができる。他の実施形態では、スレッド識別子の、カウンタを使用しない実装形態を用いることもできる。本発明で使用するのに適切な多種多様の異なるスレッド識別子構成は、当業者なら容易に明らかとなろう。
上記のように、本発明のスレッド・ベースのレジスタ・ファイル選択技法は、従来の技法に対して大幅な改善を提供する。例えば、本技法は、必要なレジスタ・ファイルの書込みポート数を大幅に削減することができ、それにより、電力消費を低減することができる。さらに、その改善は、プロセッサの並行性またはプロセッサ性能の他の側面に影響を与えることなく提供される。
本発明の上記の実施形態は、説明のためだけであり、添付の特許請求の範囲内の数多くの代替実施形態が当業者には明らかであろう。例えば、先に示したように、所与のレジスタ・ファイルを、図5、図6、および図7のように、複数の偶数部分と奇数部分に分割する、すなわち、所与の部分を選択するのに用いるスレッド識別子のビット数を適切に増加させて、n個の異なる部分に分割することができる。他の実施例として、選択プロセスを実施するのに使用される特定の選択回路構成は、代替的な構成と置き換えることもできる。さらに、マルチスレッド・プロセッサ構成、スレッド数、スレッド識別子構成、および例示の実施形態の他のパラメータを、所与の応用分野における特有の要求に対応するように変えることもできる。
本発明が実装される例示的な処理システムのブロック図である。 図1の処理システムのマルチスレッド・プロセッサの例示的な実施形態のより詳細なブロック図である。 本発明の技法による図2のマルチスレッド・プロセッサ中で使用するのに適切なトークン・トリガ・スレッディングの一実施例を示す図である。 本発明の技法による図2のマルチスレッド・プロセッサ中で例示的な命令機能がパイプライン化することができる方法を示す図である。 図2のプロセッサの各スレッドが、サイクルごとに1つの命令を発行する例示的な単一発行パイプラインを示す図である。 図2のプロセッサの各スレッドが、サイクルごとに2つの命令を発行する例示的な複数発行パイプラインを示す図である。 本発明のスレッド・ベースのレジスタ・ファイル選択技法にしたがって構成された図2のプロセッサのレジスタ・ファイルを示す図である。

Claims (20)

  1. マルチスレッド・プロセッサに関連付けられたレジスタ・ファイルにアクセスする方法であって、
    前記マルチスレッド・プロセッサの特定のスレッドに関連付けられたスレッド識別子を決定する工程と、
    前記対応するプロセッサ・スレッドによってアクセスされる前記レジスタ・ファイルの特定部分を選択するために前記スレッド識別子の少なくとも一部分を使用する工程と
    を含む方法。
  2. 前記使用する工程がさらに、前記対応するプロセッサ・スレッドによりアクセスされる前記レジスタ・ファイルの偶数部分および奇数部分の一方を選択するために前記スレッド識別子の一部分を使用する工程を含む、請求項1に記載の方法。
  3. 前記スレッド識別子の前記部分が、前記スレッド識別子の1つまたは複数の最下位ビットを含む、請求項2に記載の方法。
  4. 前記レジスタ・ファイルが、レジスタの複数の偶数の組、およびレジスタの複数の奇数の組を含み、前記使用する工程がさらに、前記対応するプロセッサ・スレッドによってアクセスされるレジスタの前記複数の偶数の組、またはレジスタの前記複数の奇数の組をイネーブルにすることを含む、請求項2に記載の方法。
  5. 前記スレッド識別子の前記部分が、前記レジスタ・ファイルの特定部分に対してイネーブル信号を生成する選択回路に適用される、請求項1に記載の方法。
  6. 前記レジスタ・ファイルが、2の異なる部分を含み、前記スレッド識別子のn個の最下位ビットが、前記対応するプロセッサ・スレッドによってアクセスされる前記レジスタ・ファイルの前記2の異なる部分のうちの1つを選択するのに使用される、請求項1に記載の方法。
  7. 前記レジスタ・ファイルが、汎用レジスタ・ファイルを含む、請求項1に記載の方法。
  8. 前記マルチスレッド・プロセッサが、前記スレッド識別子を記憶するためのスレッド識別子レジスタを含む、請求項1に記載の方法。
  9. 前記スレッド識別子レジスタが、前記マルチスレッド・プロセッサの前記特定のスレッドに対応したスレッド・キャッシュに関連付けられる、請求項8に記載の方法。
  10. 前記マルチスレッド・プロセッサが、トークン・トリガ・スレッディングを使用するように構成される、請求項1に記載の方法。
  11. 前記トークン・トリガ・スレッディングが、後続するクロック・サイクルに対する命令が発行可能になる特定のコンテキストを、カレントのプロセッサ・クロック・サイクルと関連して識別するためにトークンを使用する、請求項10に記載の方法。
  12. 前記トークン・トリガ・スレッディングが、前記マルチスレッド・プロセッサの複数のスレッドのそれぞれに異なるトークンを割り当てる、請求項10に記載の方法。
  13. 前記マルチスレッド・プロセッサが、パイプライン型命令処理用に構成されている、請求項1に記載の方法。
  14. 前記マルチスレッド・プロセッサが、プロセッサ・クロック・サイクルごとに各スレッドが単一の命令を発行する命令パイプラインを使用する、請求項13に記載の方法。
  15. 前記マルチスレッド・プロセッサが、プロセッサ・クロック・サイクルごとに各スレッドが複数の命令を発行する命令パイプラインを使用する、請求項13に記載の方法。
  16. 複数の前記スレッドのそれぞれが、前記複数のスレッドのいずれも停止することなく、対応する複数のプロセッサ・クロック・サイクルのそれぞれで、ロード命令とベクトル乗算命令を共に発行する、請求項15に記載の方法。
  17. 前記レジスタ・ファイルが、単一のレジスタを含む、請求項1に記載の方法。
  18. 前記レジスタ・ファイルが、複数のレジスタを含む、請求項1に記載の方法。
  19. 少なくとも第1および第2の部分を含む関連するレジスタ・ファイルを有するマルチスレッド・プロセッサであって、前記マルチスレッド・プロセッサの特定のスレッドに関連付けられたスレッド識別子を決定し、前記対応するプロセッサ・スレッドによってアクセスされるレジスタ・ファイルの前記部分のうちの特定の1つを選択するために前記スレッド識別子の少なくとも一部分を使用するように動作可能なマルチスレッド・プロセッサ。
  20. マルチスレッド・プロセッサに関連付けられたレジスタ・ファイルへのアクセスに用いるためのプログラム・コードが実施されたマシン可読記憶媒体を含む製品であって、前記プロセッサによって実行されたとき前記プログラム・コードが、
    前記マルチスレッド・プロセッサの特定のスレッドに関連付けられたスレッド識別子を決定する工程と、
    前記対応するプロセッサ・スレッドによってアクセスされる前記レジスタ・ファイルの特定の部分を選択するために前記スレッド識別子の少なくとも一部分を使用する工程と
    を実施する製品。
JP2004543541A 2002-10-11 2003-10-09 マルチスレッド・プロセッサにおけるレジスタ・ファイルのポートを削減するための方法および装置 Expired - Fee Related JP4187720B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/269,373 US6904511B2 (en) 2002-10-11 2002-10-11 Method and apparatus for register file port reduction in a multithreaded processor
PCT/US2003/031904 WO2004034209A2 (en) 2002-10-11 2003-10-09 Method and apparatus for register file port reduction in a multithreaded processor

Publications (3)

Publication Number Publication Date
JP2006502504A true JP2006502504A (ja) 2006-01-19
JP2006502504A5 JP2006502504A5 (ja) 2006-11-24
JP4187720B2 JP4187720B2 (ja) 2008-11-26

Family

ID=32068767

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004543541A Expired - Fee Related JP4187720B2 (ja) 2002-10-11 2003-10-09 マルチスレッド・プロセッサにおけるレジスタ・ファイルのポートを削減するための方法および装置

Country Status (8)

Country Link
US (1) US6904511B2 (ja)
EP (2) EP2600242A1 (ja)
JP (1) JP4187720B2 (ja)
KR (1) KR100988955B1 (ja)
CN (1) CN100342325C (ja)
AU (1) AU2003282486A1 (ja)
ES (1) ES2848383T3 (ja)
WO (1) WO2004034209A2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010539603A (ja) * 2007-09-12 2010-12-16 クゥアルコム・インコーポレイテッド パイプライン処理のためのレジスタファイルシステム及び方法
US7958338B2 (en) 2007-06-20 2011-06-07 Fujitsu Limited Instruction execution control device and instruction execution control method
US7958339B2 (en) 2007-06-20 2011-06-07 Fujitsu Limited Instruction execution control device and instruction execution control method
JP2012038328A (ja) * 2011-09-27 2012-02-23 Intel Corp プロセッサ内のマルチスレッド間通信
JP5630798B1 (ja) * 2014-04-11 2014-11-26 株式会社Murakumo プロセッサーおよび方法

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040193846A1 (en) * 2003-03-28 2004-09-30 Sprangle Eric A. Method and apparatus for utilizing multiple opportunity ports in a processor pipeline
EP1623307B1 (en) 2003-05-09 2015-07-01 QUALCOMM Incorporated Processor reduction unit for accumulation of multiple operands with or without saturation
US7475222B2 (en) * 2004-04-07 2009-01-06 Sandbridge Technologies, Inc. Multi-threaded processor having compound instruction and operation formats
US7797363B2 (en) * 2004-04-07 2010-09-14 Sandbridge Technologies, Inc. Processor having parallel vector multiply and reduce operations with sequential semantics
US8074051B2 (en) 2004-04-07 2011-12-06 Aspen Acquisition Corporation Multithreaded processor with multiple concurrent pipelines per thread
US7890735B2 (en) * 2004-08-30 2011-02-15 Texas Instruments Incorporated Multi-threading processors, integrated circuit devices, systems, and processes of operation and manufacture
TW200625097A (en) * 2004-11-17 2006-07-16 Sandbridge Technologies Inc Data file storing multiple date types with controlled data access
US20060230253A1 (en) * 2005-04-11 2006-10-12 Lucian Codrescu Unified non-partitioned register files for a digital signal processor operating in an interleaved multi-threaded environment
US8713286B2 (en) * 2005-04-26 2014-04-29 Qualcomm Incorporated Register files for a digital signal processor operating in an interleaved multi-threaded environment
US20070223599A1 (en) * 2005-07-25 2007-09-27 Sysair, Inc., A Delaware Corporation Cellular PC modem architecture and method of operation
WO2008070250A2 (en) * 2006-09-26 2008-06-12 Sandbridge Technologies Inc. Software implementation of matrix inversion in a wireless communication system
WO2008060948A2 (en) * 2006-11-10 2008-05-22 Sandbridge Technologies, Inc. Method and system for parallelization of pipelined computations
US20080276067A1 (en) * 2007-05-01 2008-11-06 Via Technologies, Inc. Method and Apparatus for Page Table Pre-Fetching in Zero Frame Display Channel
US8677101B2 (en) * 2007-06-07 2014-03-18 International Business Machines Corporation Method and apparatus for cooperative software multitasking in a processor system with a partitioned register file
US8224884B2 (en) * 2007-07-06 2012-07-17 XMOS Ltd. Processor communication tokens
US20100241834A1 (en) * 2007-11-05 2010-09-23 Sandbridge Technologies, Inc. Method of encoding using instruction field overloading
US8539188B2 (en) * 2008-01-30 2013-09-17 Qualcomm Incorporated Method for enabling multi-processor synchronization
CN102007469A (zh) * 2008-02-18 2011-04-06 阿斯奔收购公司 用以加速空终止字符串操作的方法
WO2009114691A2 (en) * 2008-03-13 2009-09-17 Sandbridge Technologies, Inc. Method for achieving power savings by disabling a valid array
EP2324430A4 (en) 2008-08-06 2012-07-25 Aspen Acquisition Corp DIRECT MEMORY ACCESS MOTOR (DMA) THAT CAN BE STOPPED AND RESTARTED
US9207995B2 (en) 2010-11-03 2015-12-08 International Business Machines Corporation Mechanism to speed-up multithreaded execution by register file write port reallocation
US9323528B2 (en) * 2012-12-20 2016-04-26 Intel Corporation Method, apparatus, system creating, executing and terminating mini-threads
GB2501791B (en) * 2013-01-24 2014-06-11 Imagination Tech Ltd Register file having a plurality of sub-register files
US9508112B2 (en) * 2013-07-31 2016-11-29 Apple Inc. Multi-threaded GPU pipeline
US9390033B2 (en) 2013-11-13 2016-07-12 Sandisk Technologies Llc Method and system for communicating with non-volatile memory via multiple data paths
US9430411B2 (en) 2013-11-13 2016-08-30 Sandisk Technologies Llc Method and system for communicating with non-volatile memory
US9377968B2 (en) 2013-11-13 2016-06-28 Sandisk Technologies Llc Method and system for using templates to communicate with non-volatile memory
GB2520731B (en) * 2013-11-29 2017-02-08 Imagination Tech Ltd Soft-partitioning of a register file cache
US9921848B2 (en) * 2014-03-27 2018-03-20 International Business Machines Corporation Address expansion and contraction in a multithreading computer system
US9594660B2 (en) 2014-03-27 2017-03-14 International Business Machines Corporation Multithreading computer system and program product for executing a query instruction for idle time accumulation among cores
US10102004B2 (en) 2014-03-27 2018-10-16 International Business Machines Corporation Hardware counters to track utilization in a multithreading computer system
US9804846B2 (en) 2014-03-27 2017-10-31 International Business Machines Corporation Thread context preservation in a multithreading computer system
US10514911B2 (en) 2014-11-26 2019-12-24 International Business Machines Corporation Structure for microprocessor including arithmetic logic units and an efficiency logic unit
US11544214B2 (en) * 2015-02-02 2023-01-03 Optimum Semiconductor Technologies, Inc. Monolithic vector processor configured to operate on variable length vectors using a vector length register
CN115100018A (zh) * 2015-06-10 2022-09-23 无比视视觉技术有限公司 用于处理图像的图像处理器和方法
US10338920B2 (en) 2015-12-18 2019-07-02 Intel Corporation Instructions and logic for get-multiple-vector-elements operations
US20170177351A1 (en) * 2015-12-18 2017-06-22 Intel Corporation Instructions and Logic for Even and Odd Vector Get Operations
CN114489792B (zh) * 2021-03-25 2022-10-11 沐曦集成电路(上海)有限公司 处理器装置及其指令执行方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5226131A (en) * 1989-12-27 1993-07-06 The United States Of America As Represented By The United States Department Of Energy Sequencing and fan-out mechanism for causing a set of at least two sequential instructions to be performed in a dataflow processing computer
US5404469A (en) * 1992-02-25 1995-04-04 Industrial Technology Research Institute Multi-threaded microprocessor architecture utilizing static interleaving
US5682491A (en) 1994-12-29 1997-10-28 International Business Machines Corporation Selective processing and routing of results among processors controlled by decoding instructions using mask value derived from instruction tag and processor identifier
US6128720A (en) 1994-12-29 2000-10-03 International Business Machines Corporation Distributed processing array with component processors performing customized interpretation of instructions
US5649135A (en) 1995-01-17 1997-07-15 International Business Machines Corporation Parallel processing system and method using surrogate instructions
US5659785A (en) 1995-02-10 1997-08-19 International Business Machines Corporation Array processor communication architecture with broadcast processor instructions
US6038643A (en) * 1996-01-24 2000-03-14 Sun Microsystems, Inc. Stack management unit and method for a processor having a stack
US5778243A (en) * 1996-07-03 1998-07-07 International Business Machines Corporation Multi-threaded cell for a memory
US6073159A (en) * 1996-12-31 2000-06-06 Compaq Computer Corporation Thread properties attribute vector based thread selection in multithreading processor
US6128641A (en) * 1997-09-12 2000-10-03 Siemens Aktiengesellschaft Data processing unit with hardware assisted context switching capability
US6079010A (en) 1998-03-31 2000-06-20 Lucent Technologies Inc. Multiple machine view execution in a computer system
US6317821B1 (en) 1998-05-18 2001-11-13 Lucent Technologies Inc. Virtual single-cycle execution in pipelined processors
US6209066B1 (en) * 1998-06-30 2001-03-27 Sun Microsystems, Inc. Method and apparatus for memory allocation in a multi-threaded virtual machine
US6260189B1 (en) 1998-09-14 2001-07-10 Lucent Technologies Inc. Compiler-controlled dynamic instruction dispatch in pipelined processors
US6256725B1 (en) 1998-12-04 2001-07-03 Agere Systems Guardian Corp. Shared datapath processor utilizing stack-based and register-based storage spaces
US6282585B1 (en) 1999-03-22 2001-08-28 Agere Systems Guardian Corp. Cooperative interconnection for reducing port pressure in clustered microprocessors
US6269437B1 (en) 1999-03-22 2001-07-31 Agere Systems Guardian Corp. Duplicator interconnection methods and apparatus for reducing port pressure in a clustered processor
US6230251B1 (en) 1999-03-22 2001-05-08 Agere Systems Guardian Corp. File replication methods and apparatus for reducing port pressure in a clustered processor
US6341347B1 (en) * 1999-05-11 2002-01-22 Sun Microsystems, Inc. Thread switch logic in a multiple-thread processor
US6542991B1 (en) * 1999-05-11 2003-04-01 Sun Microsystems, Inc. Multiple-thread processor with single-thread interface shared among threads
US6643747B2 (en) * 2000-12-27 2003-11-04 Intel Corporation Processing requests to efficiently access a limited bandwidth storage area
US20020103990A1 (en) * 2001-02-01 2002-08-01 Hanan Potash Programmed load precession machine
US7487505B2 (en) * 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7958338B2 (en) 2007-06-20 2011-06-07 Fujitsu Limited Instruction execution control device and instruction execution control method
US7958339B2 (en) 2007-06-20 2011-06-07 Fujitsu Limited Instruction execution control device and instruction execution control method
JP2010539603A (ja) * 2007-09-12 2010-12-16 クゥアルコム・インコーポレイテッド パイプライン処理のためのレジスタファイルシステム及び方法
US8725991B2 (en) 2007-09-12 2014-05-13 Qualcomm Incorporated Register file system and method for pipelined processing
JP2012038328A (ja) * 2011-09-27 2012-02-23 Intel Corp プロセッサ内のマルチスレッド間通信
JP5630798B1 (ja) * 2014-04-11 2014-11-26 株式会社Murakumo プロセッサーおよび方法

Also Published As

Publication number Publication date
WO2004034209A2 (en) 2004-04-22
CN100342325C (zh) 2007-10-10
ES2848383T3 (es) 2021-08-09
AU2003282486A8 (en) 2004-05-04
EP1550030A2 (en) 2005-07-06
US6904511B2 (en) 2005-06-07
JP4187720B2 (ja) 2008-11-26
KR100988955B1 (ko) 2010-10-20
KR20050054998A (ko) 2005-06-10
US20040073779A1 (en) 2004-04-15
WO2004034209A3 (en) 2004-09-02
AU2003282486A1 (en) 2004-05-04
CN1708745A (zh) 2005-12-14
EP1550030B1 (en) 2020-11-18
EP1550030A4 (en) 2008-03-05
EP2600242A1 (en) 2013-06-05

Similar Documents

Publication Publication Date Title
JP4187720B2 (ja) マルチスレッド・プロセッサにおけるレジスタ・ファイルのポートを削減するための方法および装置
KR100991912B1 (ko) 토큰 트리거 방식 멀티스레딩을 위한 방법 및 장치
US6925643B2 (en) Method and apparatus for thread-based memory access in a multithreaded processor
KR101303119B1 (ko) 쓰레드 당 다중의 동시적 파이프라인을 갖는 멀티쓰레드 프로세서
US7308559B2 (en) Digital signal processor with cascaded SIMD organization
JP6469674B2 (ja) エミュレートされた共有メモリアーキテクチャのための浮動小数点サポートパイプライン

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061006

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061006

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080415

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080421

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080722

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: 20080818

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: 20080909

R150 Certificate of patent or registration of utility model

Ref document number: 4187720

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: 20110919

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110919

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120919

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130919

Year of fee payment: 5

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees