【手続補正書】
【提出日】平成18年10月6日(2006.10.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マルチスレッド・プロセッサの複数のスレッドの命令発行シーケンスを制御する方法であって、
１つまたは複数の命令を発行することが許される次のスレッドを識別する値を格納する少なくとも１つのレジスタを前記スレッドの各々に関連付ける工程と、
前記命令発行シーケンスを制御するように前記格納された値を利用する工程とを備え、
前記マルチスレッド・プロセッサは、同時に実行する複数のハードウェア・スレッド・ユニットからなり、前記ハードウェア・スレッド・ユニットの各々は、前記スレッドのうちの対応する１つについて、プロセッサ・クロック・サイクルごとに１つ又は複数の命令を発行するように構成可能であり、前記対応するスレッドについての前記格納された値は、前記ハードウェア・スレッド・ユニットの所与の１つについて、前記所与のハードウェア・スレッド・ユニットが１つ又は複数の命令を発行した後に１つ又は複数の命令を発行することが許される別のハードウェア・スレッド・ユニットを示し、これにより、前記複数のスレッドについての前記格納された値は、前記同時に実行するハードウェア・スレッド・ユニットが連続するプロセッサ・クロック・サイクルに亘って任意の順序で命令を発行することを可能にする、方法。
【請求項２】
前記関連付ける工程が、前記マルチスレッド・プロセッサの複数のハードウェア・スレッド・ユニットの各々に、そのハードウェア・スレッド・ユニットによって更新可能な対応するローカルレジスタを関連付ける工程をさらに備え、前記ハードウェア・スレッド・ユニットの所与の１つについての前記ローカルレジスタが、前記所与のハードウェア・スレッド・ユニットが１つまたは複数の命令を発行した後で１つまたは複数の命令を発行することが許される前記次のスレッドを識別する値を格納する、請求項１に記載の方法。
【請求項３】
前記関連付ける工程が、複数のレジスタを複数のハードウェア・スレッド・ユニットの各々に関連付ける工程をさらに備え、前記複数のレジスタが、前記ハードウェア・スレッド・ユニットの各々について、対応するハードウェア・スレッド・ユニットのスレッド識別子を格納するスレッド識別子レジスタと、１つまたは複数の命令を発行することが許される前記ハードウェア・スレッド・ユニットのうちの次のものを識別する次スレッド識別子を格納する次スレッド識別子レジスタとを備える、請求項１に記載の方法。
【請求項４】
前記関連付ける工程が、前記スレッドの各々にアクセスすることができる少なくとも１つのグローバルレジスタを前記スレッドの各々に関連付けることをさらに備え、前記スレッドのうちの所与の１つによる命令発行後の前記グローバルレジスタの内容が、前記命令発行シーケンスに従って１つまたは複数の命令を発行することが許される前記スレッドのうちの別のものを識別する、請求項１に記載の方法。
【請求項５】
前記関連付ける工程と利用する工程は、スレッド機能停止につながるブロック状態を生じさせることなく、前記命令発行シーケンスをスレッドの任意の交互の偶数・奇数シーケンスに一致させるように構成されている、請求項１に記載の方法。
【請求項６】
前記少なくとも１つのレジスタが、２ｎ個のスレッドのうちの所与の１つの固有識別子を格納するために適したｎビット・レジスタを備える、請求項１に記載の方法。
【請求項７】
前記少なくとも１つのレジスタが、前記マルチスレッド・プロセッサの特定のスレッドに対応するスレッド・キャッシュに関連付けられている、請求項１に記載の方法。
【請求項８】
前記少なくとも１つのレジスタに格納された値が、トークン・トリガ・スレッディングに関連したトークンを備える、請求項１に記載の方法。
【請求項９】
前記トークン・トリガ・スレッディングが、現在のプロセッサ・クロック・サイクルに関連して、次のクロック・サイクルに命令を発行することが許される前記複数のスレッドのうちの特定のものを識別するために、前記トークンを利用する、請求項８に記載の方法。
【請求項１０】
前記トークン・トリガ・スレッディングが、前記マルチスレッド・プロセッサの複数のスレッドの各々に異なるトークンを割り当てる、請求項８に記載の方法。
【請求項１１】
前記マルチスレッド・プロセッサが、パイプライン命令処理のために構成される、請求項１に記載の方法。
【請求項１２】
前記マルチスレッド・プロセッサは、各スレッドが１プロセッサ・クロック・サイクル当たりに単一の命令を発行する命令パイプラインを利用する、請求項１１に記載の方法。
【請求項１３】
前記マルチスレッド・プロセッサは、各スレッドが１プロセッサ・クロック・サイクル当たりに複数の命令を発行する命令パイプラインを利用する、請求項１１に記載の方法。
【請求項１４】
マルチスレッド・プロセッサの複数のスレッドの命令発行シーケンスを制御する方法であって、
１つまたは複数の命令を発行することが許される次のスレッドを識別する値を格納する少なくとも１つのレジスタを前記スレッドの各々に関連付ける工程と、
前記命令発行シーケンスを制御するように前記格納された値を利用する工程とを備え、
前記マルチスレッド・プロセッサが、パイプライン命令処理のために構成され、
前記マルチスレッド・プロセッサは、各スレッドが１プロセッサ・クロック・サイクル当たりに複数の命令を発行する命令パイプラインを利用し、
複数の前記スレッドの各々が、対応する複数のプロセッサ・クロック・サイクルの各々で、前記複数のスレッドのどれも機能停止させることなく、ロード命令とベクトル乗算命令の両方を発行する方法。
【請求項１５】
同時に実行する複数のハードウェア・スレッド・ユニットを備え、かつそのマルチスレッド・プロセッサの複数の対応するスレッドの命令発行シーケンスを制御するように構成されているマルチスレッド・プロセッサであって、前記プロセッサの中で１つまたは複数の命令を発行することが許される次のスレッドを識別する値を格納するように構成された少なくとも１つのレジスタが、前記スレッドの各々に関連付けられており、前記格納された値が前記プロセッサの前記命令発行シーケンスを制御するように利用可能であり、
前記ハードウェア・スレッド・ユニットの各々は、前記スレッドのうちの対応する１つについて、プロセッサ・クロック・サイクルごとに１つ又は複数の命令を発行するように構成可能であり、前記対応するスレッドについての前記格納された値は、前記ハードウェア・スレッド・ユニットの所与の１つについて、前記所与のハードウェア・スレッド・ユニットが１つ又は複数の命令を発行した後に１つ又は複数の命令を発行することが許される別のハードウェア・スレッド・ユニットを示し、これにより、前記複数のスレッドについての前記格納された値は、前記同時に実行するハードウェア・スレッド・ユニットが連続するプロセッサ・クロック・サイクルに亘って任意の順序で命令を発行することを可能にする、マルチスレッド・プロセッサ。
【請求項１６】
マルチスレッド・プロセッサの複数のスレッドの命令発行シーケンスを制御する際に使用するように具現されたプログラムを有するコンピュータ読出し可能な記憶媒体を備える製品であって、前記プログラムが、前記プロセッサによって実行される際、
１つまたは複数の命令を発行することが許される次のスレッドを識別する値を格納する少なくとも１つのレジスタを前記スレッドの各々に関連付ける工程と、
前記命令発行シーケンスを制御するように前記格納された値を利用する工程と、を実行し、
前記マルチスレッド・プロセッサは、同時に実行する複数のハードウェア・スレッド・ユニットからなり、前記ハードウェア・スレッド・ユニットの各々は、前記スレッドのうちの対応する１つについて、プロセッサ・クロック・サイクルごとに１つ又は複数の命令を発行するように構成可能であり、前記対応するスレッドについての前記格納された値は、前記ハードウェア・スレッド・ユニットの所与の１つについて、前記所与のハードウェア・スレッド・ユニットが１つ又は複数の命令を発行した後に１つ又は複数の命令を発行することが許される別のハードウェア・スレッド・ユニットを示し、これにより、前記複数のスレッドについての前記格納された値は、前記同時に実行するハードウェア・スレッド・ユニットが連続するプロセッサ・クロック・サイクルに亘って任意の順序で命令を発行することを可能にする、製品。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００２
【補正方法】変更
【補正の内容】
【０００２】
本発明は、「Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｔｈｒｅａｄ−Ｂａｓｅｄ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ ｉｎ  ａ  Ｍｕｌｔｉｔｈｒｅａｄｅｄ  Ｐｒｏｃｅｓｓｏｒ」という名称の米国特許出願代理人事件整理番号１００７−５、「Ｍｕｌｔｉｔｈｒｅａｄｅｄ  Ｐｒｏｃｅｓｓｏｒ  Ｗｉｔｈ  Ｅｆｆｉｃｉｅｎｔ  Ｐｒｏｃｅｓｓｉｎｇ  Ｆｏｒ  Ｃｏｎｖｅｒｇｅｎｃｅ  Ｄｅｖｉｃｅ  Ａｐｐｌｉｃａｔｉｏｎｓ」という名称の代理人事件整理番号１００７−６、および「Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｒｅｇｉｓｔｅｒ  Ｆｉｌｅ  Ｐｏｒｔ  Ｒｅｄｕｃｔｉｏｎ  ｉｎ  ａ  Ｍｕｌｔｉｔｈｒｅａｄｅｄ  Ｐｒｏｃｅｓｓｏｒ」という名称の代理人事件整理番号１００７−７に記載されている発明に関係している。これらの出願の全ては、本出願と共に同時に出願され、参照して本明細書に組み込まれる。また、本発明は、２００５年８月２日に発行された米国特許６，９２５，６４３号、２００５年１１月２２日に発行された米国特許６，９６８，４４５号、２００５年６月７日に発行された米国特許６，９０４，５１１号に記載された発明に関連し、それを参照により本明細書に組み込む。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
したがって、既存の技術は、過度に柔軟性がなく、プロセッサ同時並行性に望ましくない制限を加え得る。さらに、これらの技術は、プロセッサの性能に悪影響を及ぼすブロック状態、したがってスレッド機能停止の一因になることがある。
【特許文献１】米国特許出願代理人事件整理番号１００７−５、「Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｔｈｒｅａｄ−Ｂａｓｅｄ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ ｉｎ  ａ  Ｍｕｌｔｉｔｈｒｅａｄｅｄ  Ｐｒｏｃｅｓｓｏｒ」
【特許文献２】米国特許出願代理人事件整理番号１００７−６、「Ｍｕｌｔｉｔｈｒｅａｄｅｄ  Ｐｒｏｃｅｓｓｏｒ  Ｗｉｔｈ  Ｅｆｆｉｃｉｅｎｔ  Ｐｒｏｃｅｓｓｉｎｇ  Ｆｏｒ  Ｃｏｎｖｅｒｇｅｎｃｅ  Ｄｅｖｉｃｅ  Ａｐｐｌｉｃａｔｉｏｎｓ」
【特許文献３】米国特許出願代理人事件整理番号１００７−７、「Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｒｅｇｉｓｔｅｒ  Ｆｉｌｅ  Ｐｏｒｔ  Ｒｅｄｕｃｔｉｏｎ  ｉｎ  ａ  Ｍｕｌｔｉｔｈｒｅａｄｅｄ  Ｐｒｏｃｅｓｓｏｒ」
【非特許文献１】Ｍ．Ｊ．Ｆｌｙｎｎ、「Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ：Ｐｉｐｌｉｎｅｄ  ａｎｄ  Ｐａｒａｌｌｅｌ  Ｐｒｏｃｅｓｓｏｒ  Ｄｅｓｉｇｎ」、Ｊｏｎｅｓ  ａｎｄ  Ｂａｒｔｌｅｔｔ  Ｐｕｂｌｉｓｈｅｒｓ、  Ｂｏｓｔｏｎ，ＭＡ、１９９５年、
【非特許文献２】Ｇ．Ａ．Ｂｌａａｕｗ  および  Ｆｒｅｄｅｒｉｃｋ  Ｐ．Ｂｒｏｏｋｓ、「Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ：Ｃｏｎｃｅｐｔｓ  ａｎｄ  Ｅｖｏｌｕｔｉｏｎ」、Ａｄｄｉｓｏｎ−Ｗｅｓｌｅｙ，Ｒｅａｄｉｎｇ，Ｍａｓｓａｃｈｕｓｅｔｔｓ、１９９７年
【特許文献４】米国仮出願番号１０／１６１，７７４
【特許文献５】米国仮出願番号１０／１６１，８７４
【特許文献６】米国仮出願番号６０／３４１，２８９
【特許文献７】米国特許６，９２５，６４３号
【特許文献８】米国特許６，９６８，４４５号
【特許文献９】米国特許６，９０４，５１１号