【手続補正書】
【提出日】平成19年11月14日(2007.11.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のスレッドの並列処理のために構成されたマイクロプロセッサであって、各スレッドが命令のシーケンスを含み、
前記複数のスレッドのすべてに関する命令を実行するように構成された実行モジュールと、
それぞれが前記複数のスレッドのそれぞれの１つに関連する複数のストレージ・ロケーションを含む命令バッファと、
前記命令バッファの前記関連するストレージ・ロケーションが使用可能であるかどうかに少なくとも部分的に基づいて前記複数のスレッドの１つを選択し、前記複数のスレッドの前記選択された１つの前記シーケンス内の次の命令を前記命令バッファにフェッチするように構成されたフェッチ回路と、
前記命令バッファの前記記憶された命令のうちのどれが、実行の準備ができているかを判定し、実行モジュールに発行される準備のできている命令の１つを選択するように構成されたディスパッチ回路と
を含むマイクロプロセッサ。
【請求項２】
前記フェッチ回路が、第１の順序で前記命令バッファに命令をフェッチし、前記ディスパッチ回路が、前記第１の順序と異なる第２の順序で準備ができている命令を選択する請求項１に記載のマイクロプロセッサ。
【請求項３】
命令を記憶するように構成された命令キャッシュをさらに含み、前記フェッチ回路が、さらに、プログラム・カウンタ値を含む要求を前記命令キャッシュに送ることによって次の命令をフェッチするように構成される請求項１に記載のマイクロプロセッサ。
【請求項４】
前記フェッチ回路が
前記複数のスレッドのそれぞれの候補プログラム・カウンタ値を生成するように構成されたプログラム・カウンタ・ロジックと、
前記命令バッファの前記ストレージ・ロケーションのどれが使用可能であるかの判定に少なくとも部分的に基づいて前記複数のスレッドの１つを選択するように構成された選択論理回路であって、さらに、対応する選択信号を供給するように構成される選択論理回路と、
前記選択信号を受け取り、前記選択されたスレッドに対応する前記候補プログラム・カウンタ値を前記命令キャッシュに送るアービトレーション回路と
を含む請求項３に記載のマイクロプロセッサ。
【請求項５】
前記選択論理回路が、
優先順位制御信号に基づいて決定される、前記スレッドの間の優先順位ランキングに従って、前記複数のスレッドのうちで、前記命令バッファ内に命令を有しない１つを選択するように構成された優先順位エンコーダと、
前記優先順位制御信号を生成するように構成されたフェーズ・カウンタと
を含み、異なる時間に、前記優先順位制御信号が、前記スレッドの異なる１つに異なる優先順位ランキングを与える請求項４に記載のマイクロプロセッサ。
【請求項６】
前記選択論理回路が、さらに、第１スレッドの選択の前の発生から最小時間が経過した後に限って、前記第１スレッドを選択するように構成される請求項４に記載のマイクロプロセッサ。
【請求項７】
前記複数のスレッドが、第１スレッド・タイプを有するスレッドの第１グループと、第２スレッド・タイプを有するスレッドの第２グループを有し、前記選択論理回路が、さらに、各前記複数のスレッドのそれぞれのスレッド・タイプに少なくとも部分的に基づいて、前記複数のスレッドの１つを選択するように構成される請求項４に記載のマイクロプロセッサ。
【請求項８】
前記選択論理回路が、さらに、前記第１スレッド・タイプを有する第１候補スレッドと前記第２スレッド・タイプを有する第２候補スレッドを選択し、前記それぞれのスレッド・タイプに基づいて前記第１候補スレッドと前記第２候補スレッドとの間で選択するように構成される請求項７に記載のマイクロプロセッサ。
【請求項９】
前記実行モジュールによって生成される結果データを含む、前記複数のスレッドのそれぞれのデータを保持するように構成されたレジスタ・ファイルをさらに含む請求項１に記載のマイクロプロセッサ。
【請求項１０】
前記ディスパッチ回路が、
前記命令バッファと前記レジスタ・ファイルに結合され、前記命令バッファ内の各命令のレディ信号を生成するように構成されたスコアボード回路であって、各命令のレディ信号が、前記命令のソース・オペランドが前記レジスタ・ファイルに存在するかどうかに少なくとも部分的に基づいてアサートされるか、またはアサートされない、スコアボード回路と、
前記スコアボード回路と前記命令バッファに結合されたスケジューラ回路であって、前記レディ信号がアサートされている前記命令バッファ内の前記命令の１つを、次に発行される命令として選択し、対応する許可信号を前記命令バッファに送るように構成されるスケジューラ回路と、
前記命令バッファに結合されたイシュア回路であって、前記命令バッファが、さらに、前記許可信号に応答して、前記スケジューラ回路によって選択された前記命令を前記イシュア回路に送るように構成され、前記イシュア回路が、前記選択された命令の前記ソース・オペランドを前記レジスタ・ファイルから収集し、前記選択された命令と前記ソース・オペランドを前記実行モジュールに転送するように構成される、イシュア回路と
を含む請求項９に記載のマイクロプロセッサ。
【請求項１１】
前記スケジューラ回路が、さらに、各命令が前記命令バッファに記憶されていた時間の長さに少なくとも部分的に基づいて、次に発行される命令を選択するように構成される請求項１０に記載のマイクロプロセッサ。
【請求項１２】
前記スケジューラ回路が、
前記レディ信号がアサートされている前記命令バッファ内の命令を有する、前記複数のスレッドのうちの１つを選択するように構成された優先順位エンコーダであって、前記スレッドの前記１つが、前記スレッドの間での優先順位ランキングに従って選択され、前記優先順位ランキングが優先順位制御信号に基づいて決定される、優先順位エンコーダと、
前記優先順位制御信号を生成するように構成されたフェーズ・カウンタと
を含み、異なる時間に、前記優先順位制御信号が、前記スレッドの異なる１つに異なる優先順位ランキングを与える請求項１０に記載のマイクロプロセッサ。
【請求項１３】
前記複数のスレッドが、第１スレッド・タイプを有するスレッドの第１グループと第２スレッド・タイプを有するスレッドの第２グループを含み、前記スケジューラ回路が、さらに、各前記複数のスレッドのそれぞれのスレッド・タイプに少なくとも部分的に基づいて前記複数のスレッドの１つを選択するように構成される請求項１０に記載のマイクロプロセッサ。
【請求項１４】
前記スケジューラ回路が、さらに、各前記スレッドの前記それぞれの命令に関連する動作の間の相対優先順位に少なくとも部分的に基づいて、前記複数のスレッドの１つを選択するように構成される請求項１０に記載のマイクロプロセッサ。
【請求項１５】
前記実行モジュールが複数の実行パイプを含み、前記スケジューラ回路が、さらに、前記複数の実行パイプのどれが使用中でないかの判定に少なくとも部分的に基づいて前記複数のスレッドの１つを選択するように構成される請求項１０に記載のマイクロプロセッサ。
【請求項１６】
それぞれが命令のシーケンスを含む複数のスレッドを並列処理するように構成されたマイクロプロセッサで命令を処理する方法であって、
前記複数のスレッドのそれぞれからの命令を記憶するように構成された命令バッファに、前記複数のスレッドの第１の１つからの第１命令をフェッチするステップと、
その後、前記命令バッファに、前記複数のスレッドの第２の１つからの第２命令をフェッチするステップと、
前記第１命令と前記第２命令のうちの１つまたは複数が実行の準備ができているかどうかを判定するステップと、
実行のために前記第１命令と前記第２命令の準備ができている１つを発行するステップと
を含み、前記第２命令が実行の準備ができており、前記第１命令が実行の準備ができていない場合に、前記第１命令を発行する前に、前記第２命令が発行される方法。
【請求項１７】
発行の前記動作の後に、前記発行された命令が前記第１スレッドまたは前記第２スレッドのどちらのためにフェッチされたかを判定する動作と、
前記発行された命令に対応する前記スレッド内の次の命令である第３命令を、前記命令バッファにフェッチする動作と
をさらに含む請求項１６に記載の方法。
【請求項１８】
前記第１命令をフェッチする前記動作が、
前記複数のスレッドのそれぞれから候補プログラム・カウンタ値を受け取る動作と、
前記複数のスレッドのそれぞれに優先順位ランキングを割り当てる動作であって、前記優先順位ランキングが、異なる時間に異なる動作と、
前記第１スレッドが、命令が前記命令バッファに記憶されていない最高優先順位のスレッドである場合に、前記複数のスレッドの中から前記第１スレッドを選択する動作と
を含み、前記第１命令が、前記第１スレッドの選択に応答してフェッチされる請求項１６に記載の方法。
【請求項１９】
前記第１スレッドの選択の前の発生からの経過時間が最小時間未満である場合に、前記第１スレッドの選択の前記動作を抑止する動作をさらに含む請求項１８に記載の方法。
【請求項２０】
複数の実行コアを含むグラフィックス・プロセッサと、
前記グラフィックス・プロセッサに結合されたグラフィックス・メモリと
を含むグラフィックス処理システムであって、
前記複数の実行コアのそれぞれが、
複数のスレッドのすべてに関する命令を実行するように構成された実行モジュールと、
前記複数のスレッドのそれぞれの１つに関連する複数のストレージ・ロケーションを含む命令バッファと、
前記命令バッファ内の前記関連するストレージ・ロケーションが使用可能であるかどうかに少なくとも部分的に基づいて前記複数のスレッドの１つを選択し、前記複数のスレッドの前記選択された１つのシーケンス内の次の命令を前記命令バッファにフェッチするように構成されたフェッチ回路と、
前記命令バッファ内の前記記憶された命令のどれが実行の準備ができているかを判定し、前記実行モジュールに発行される、前記準備のできている命令の１つを選択するように構成されたディスパッチ回路と
を含む、グラフィックス処理システム。