【手続補正書】
【提出日】平成18年10月6日(2006.10.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マルチスレッド・プロセッサに関連付けられたレジスタ・ファイルにアクセスする方法であって、前記マルチスレッド・プロセッサはキャッシュ・メモリを有し、
前記マルチスレッド・プロセッサの特定のスレッドに関連付けられたスレッド識別子を決定する工程と、
対応するプロセッサ・スレッドによってアクセスされる前記レジスタ・ファイルの特定部分を選択するために前記スレッド識別子の少なくとも一部分を使用する工程と
を含み、
前記レジスタ・ファイルはキャッシュの形式で実装されず、前記マルチスレッド・プロセッサの前記キャッシュ・メモリとは分離しており、前記レジスタ・ファイルは、特定の１つの部分をいかなる単一のスレッドにも独占的に使用させることなく複数の部分に分離され、その結果、前記部分のうちの所与の１つは少なくとも２つのスレッドによりアクセスされ、前記少なくとも２つのスレッドは、複数のプロセッサ・クロック・サイクルに亘って、前記レジスタ・ファイルの前記所与の部分へのアクセスを交互に行う、方法。
【請求項２】
前記使用する工程がさらに、前記対応するプロセッサ・スレッドによりアクセスされる前記レジスタ・ファイルの偶数部分および奇数部分の一方を選択するために前記スレッド識別子の部分を使用する工程を含む、請求項１に記載の方法。
【請求項３】
前記スレッド識別子の前記部分が、前記スレッド識別子の１つまたは複数の最下位ビットを含む、請求項２に記載の方法。
【請求項４】
前記スレッド識別子の前記部分が、前記レジスタ・ファイルの特定部分に対してイネーブル信号を生成する選択回路に適用される、請求項１に記載の方法。
【請求項５】
前記レジスタ・ファイルが、２ｎの異なる部分を含み、前記スレッド識別子のｎ個の最下位ビットが、前記対応するプロセッサ・スレッドによってアクセスされる前記レジスタ・ファイルの前記２ｎの異なる部分のうちの１つを選択するのに使用される、請求項１に記載の方法。
【請求項６】
前記レジスタ・ファイルが、汎用レジスタ・ファイルを含む、請求項１に記載の方法。
【請求項７】
前記マルチスレッド・プロセッサが、前記スレッド識別子を記憶するためのスレッド識別子レジスタを含む、請求項１に記載の方法。
【請求項８】
前記スレッド識別子レジスタが、前記マルチスレッド・プロセッサの前記特定のスレッドに対応したスレッド・キャッシュに関連付けられる、請求項７に記載の方法。
【請求項９】
前記マルチスレッド・プロセッサが、トークン・トリガ・スレッディングを使用するように構成される、請求項１に記載の方法。
【請求項１０】
前記トークン・トリガ・スレッディングが、後続するクロック・サイクルに対する命令が発行可能になる特定のコンテキストを現在のプロセッサ・クロック・サイクルと関連して識別するために、トークンを使用する、請求項９に記載の方法。
【請求項１１】
前記トークン・トリガ・スレッディングが、前記マルチスレッド・プロセッサの複数のスレッドのそれぞれに異なるトークンを割り当てる、請求項９に記載の方法。
【請求項１２】
前記マルチスレッド・プロセッサが、パイプライン型命令処理用に構成されている、請求項１に記載の方法。
【請求項１３】
前記マルチスレッド・プロセッサが、プロセッサ・クロック・サイクルごとに各スレッドが単一の命令を発行する命令パイプラインを使用する、請求項１２に記載の方法。
【請求項１４】
前記マルチスレッド・プロセッサが、プロセッサ・クロック・サイクルごとに各スレッドが複数の命令を発行する命令パイプラインを使用する、請求項１２に記載の方法。
【請求項１５】
前記レジスタ・ファイルが、単一のレジスタを含む、請求項１に記載の方法。
【請求項１６】
前記レジスタ・ファイルが、複数のレジスタを含む、請求項１に記載の方法。
【請求項１７】
マルチスレッド・プロセッサに関連付けられたレジスタ・ファイルにアクセスする方法であって、
前記マルチスレッド・プロセッサの特定のスレッドに関連付けられたスレッド識別子を決定する工程と、
対応するプロセッサ・スレッドによってアクセスされる前記レジスタ・ファイルの特定部分を選択するために前記スレッド識別子の少なくとも一部分を使用する工程と
を含み、
前記レジスタ・ファイルが、レジスタの複数の偶数の組、およびレジスタの複数の奇数の組を含み、前記使用する工程がさらに、前記対応するプロセッサ・スレッドによってアクセスされるレジスタの前記複数の偶数の組、またはレジスタの前記複数の奇数の組をイネーブルにすることを含み、
前記レジスタ・ファイルは、特定の１つの部分をいかなる単一のスレッドにも独占的に使用させることなく偶数部分及び奇数部分に分離され、その結果、前記部分のうちの所与の１つは少なくとも２つのスレッドによりアクセスされ、前記少なくとも２つのスレッドは、複数のプロセッサ・クロック・サイクルに亘って、前記レジスタ・ファイルの前記所与の部分へのアクセスを交互に行う、方法。
【請求項１８】
マルチスレッド・プロセッサに関連付けられたレジスタ・ファイルにアクセスする方法であって、
前記マルチスレッド・プロセッサの特定のスレッドに関連付けられたスレッド識別子を決定する工程と、
対応するプロセッサ・スレッドによってアクセスされる前記レジスタ・ファイルの特定部分を選択するために前記スレッド識別子の少なくとも一部分を使用する工程と
を含み、
前記マルチスレッド・プロセッサが、パイプライン型命令処理用に構成されており、
前記マルチスレッド・プロセッサが、プロセッサ・クロック・サイクルごとに各スレッドが複数の命令を発行する命令パイプラインを使用し、
複数の前記スレッドのそれぞれが、前記複数のスレッドのいずれも停止することなく、対応する複数のプロセッサ・クロック・サイクルのそれぞれで、ロード命令とベクトル乗算命令を共に発行する、方法。
【請求項１９】
少なくとも第１および第２の部分を含む関連するレジスタ・ファイルを有するマルチスレッド・プロセッサであって、キャッシュ・メモリを有し、前記マルチスレッド・プロセッサの特定のスレッドに関連付けられたスレッド識別子を決定し、前記対応するプロセッサ・スレッドによってアクセスされるレジスタ・ファイルの前記部分のうちの特定の１つを選択するために前記スレッド識別子の少なくとも一部分を使用するように動作可能であり、
前記レジスタ・ファイルはキャッシュの形式で実装されず、前記マルチスレッド・プロセッサの前記キャッシュ・メモリとは分離しており、前記レジスタ・ファイルは、特定の１つの部分をいかなる単一のスレッドにも独占的に使用させることなく複数の部分に分離され、その結果、前記部分のうちの所与の１つは少なくとも２つのスレッドによりアクセスされ、前記少なくとも２つのスレッドは、複数のプロセッサ・クロック・サイクルに亘って、前記レジスタ・ファイルの所与の部分へのアクセスを交互に行う、マルチスレッド・プロセッサ。
【請求項２０】
マルチスレッド・プロセッサに関連付けられたレジスタ・ファイルへのアクセスに用いるためのプログラムが記録されたコンピュータ読み出し可能な記憶媒体を含む製品であって、前記マルチスレッド・プロセッサはキャッシュ・メモリを有し、前記プロセッサによって実行されたとき前記プログラムが、
前記マルチスレッド・プロセッサの特定のスレッドに関連付けられたスレッド識別子を決定する工程と、
対応するプロセッサ・スレッドによってアクセスされる前記レジスタ・ファイルの特定の部分を選択するために前記スレッド識別子の少なくとも一部分を使用する工程と
を実施し、
前記レジスタ・ファイルはキャッシュの形式で実装されず、前記マルチスレッド・プロセッサの前記キャッシュ・メモリとは分離しており、
前記レジスタ・ファイルは、特定の１つの部分をいかなる単一のスレッドにも独占的に使用させることなく複数の部分に分離され、その結果、前記部分のうちの所与の１つは少なくとも２つのスレッドによりアクセスされ、前記少なくとも２つのスレッドは、複数のプロセッサ・クロック・サイクルに亘って、前記レジスタ・ファイルの所与の部分へのアクセスを交互に行う、製品。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００２
【補正方法】変更
【補正の内容】
【０００２】
本発明は、本明細書とすべて同時に出願された、「Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｔｈｒｅａｄ−Ｂａｓｅｄ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  ｉｎ  ａ  Ｍｕｌｔｉｔｈｒｅａｄｅｄ  Ｐｒｏｃｅｓｓｏｒ」と題する整理番号１００７−５、「Ｍｕｌｔｉｔｈｒｅａｄｅｄ  Ｐｒｏｃｅｓｓｏｒ  Ｗｉｔｈ  Ｅｆｆｉｃｉｅｎｔ  Ｐｒｏｃｅｓｓｉｎｇ  Ｆｏｒ  Ｃｏｎｖｅｒｇｅｎｃｅ  Ｄｅｖｉｃｅ  Ａｐｐｌｉｃａｔｉｏｎｓ」と題する整理番号１００７−６、および「Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｔｏｋｅｎ  Ｔｒｉｇｇｅｒｅｄ  Ｍｕｌｔｉｔｈｒｅａｄｉｎｇ」と題する整理番号１００７−８の米国特許出願に記載された発明に関連し、それを参照により本明細書に組み込む。また、本発明は、２００５年８月２日に発行された米国特許６，９２５，６４３号、２００５年１１月２２日に発行された米国特許６，９６８，４４５号、２００５年１月１１日に発行された米国特許６，８４２，８４８号に記載された発明に関連し、それを参照により本明細書に組み込む。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
汎用レジスタ・ファイルを含む最近のプロセッサの実施例は、ＴＭＳ３２０Ｃ６０００  ＣＰＵおよび命令セット参照ガイド、ＳＰＲＺ１６８Ｂ、ｈｔｔｐ：／／ｗｗｗ−ｓ．ｔｉ．ｃｏｍ／ｓｃ／ｐｓｈｅｅｔｓ／ｓｐｒｚ１６８ｂ／ｓｐｒｚ１６８ｂ．ｐｄｆに記載されたテキサス・インスツルメンツ（ＴＩ）社のＣ６４ｘであり、それを参照により本明細書に組み込む。ＴＩ社のＣ６４ｘは、サイクルごとに最高８つの命令を発行し、１つの命令がプロセッサの１つの実行ユニットを制御することができる一種のＶＬＩＷ（Ｖｅｒｙ  Ｌｏｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｗｏｒｄ）アーキテクチャを使用する。そのプロセッサのレジスタ・ファイルは、６４のレジスタを含む。各命令が６４のレジスタすべてにアクセスできるようにＣ６４ｘを構成することは、２６の読取りポートと１８の書込みポート、すなわち合計４４ポートが必要である。しかし、このような構成は困難であるため、それに代わって、Ｃ６４ｘの設計者はレジスタ・ファイル・アクセスを半分に分割するよう決定し、その２つの半分の間でポートを分け、それによりプログラマに制限を設けるようにしている。それにもかかわらず、Ｃ６４ｘは、なお、合計４４のポートが必要である。
【特許文献１】米国特許出願整理番号１００７−５
【特許文献２】米国特許出願整理番号１００７−６
【特許文献３】米国特許出願整理番号１００７−８
【特許文献４】米国特許出願第１０／１６１７７４号
【特許文献５】米国特許出願第１０／１６１８７４号
【特許文献６】米国仮出願第６０／３４１２８９号
【特許文献７】米国特許６，９２５，６４３号
【特許文献８】米国特許６，９６８，４４５号
【特許文献９】米国特許６，８４２，８４８号
【非特許文献１】Ｍ．Ｊ．Ｆｌｙｎｎ、「Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ：Ｐｉｐｅｌｉｎｅｄ  ａｎｄ  Ｐａｒａｌｌｅｌ  Ｐｒｏｃｅｓｓｏｒ  Ｄｅｓｉｇｎ」、Ｊｏｎｅｓ  ａｎｄ  Ｂａｒｔｌｅｔｔ  Ｐｕｂｌｉｓｈｅｒｓ、米国マサチューセッツ州ボストン、１９９５年
【非特許文献２】Ｇ．Ａ．Ｂｌａａｕｗ  ａｎｄ  Ｆｒｅｄｅｒｉｃｋ  Ｐ．Ｂｒｏｏｋｓ、「Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ：Ｃｏｎｃｅｐｔｓ  ａｎｄ  Ｅｖｏｌｕｔｉｏｎ」、Ａｄｄｉｓｏｎ−Ｗｅｓｌｅｙ、米国マサチューセッツ州レディング、１９９７年
【非特許文献３】ＴＭＳ３２０Ｃ６０００  ＣＰＵおよび命令セット参照ガイド、ＳＰＲＺ１６８Ｂ、ｈｔｔｐ：／／ｗｗｗ−ｓ．ｔｉ．ｃｏｍ／ｓｃ／ｐｓｈｅｅｔｓ／ｓｐｒｚ１６８ｂ／ｓｐｒｚ１６８ｂ．ｐｄｆ