【手続補正書】
【提出日】平成27年6月15日(2015.6.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
下記を具備する方法：
第１の実行パイプラインおよび第２の実行パイプラインを含む、複数の並列実行のパイプラインを有するプロセッサにおいて、第１の命令および前記第１の命令に依存する第２の命令を含む命令のパケットを受信することと、ここにおいて前記命令のパケットは、前記第２の命令が、別のパケットからの以前に実行された命令に関連づけられる結果の代わりに、前記第１の命令に関連づけられる第１の結果を使用して実行されるべきである表示を含む、
前記第１の命令の少なくとも一部および前記第２の命令の少なくとも一部を並行に実行することと、
前記第１の結果に基づいて、前記第２の実行パイプラインを用いて前記第２の命令の少なくとも一部を実行したことの第２の結果を選択的にコミットすること。
【請求項２】
請求項１に記載の方法、ここにおいて前記命令のパケットは、超長命令語（ＶＬＩＷ）の命令のパケットであり、前記第１の命令は、比較命令であり、前記第２の命令は、ロード命令、ストア命令、算術命令、またはそれらの組み合わせである。
【請求項３】
請求項１に記載の方法、ここにおいて前記命令のパケットは、同じ宛先レジスタをターゲットとする少なくとも２つの条件付きの命令を含む。
【請求項４】
請求項３に記載の方法、プレディケートレジスタに、前記第１の結果に関連するデータを書き込むことをさらに具備し、ここにおいて前記第２の命令は、前記プレディケートレジスタから前記第１の結果に関連する前記データを受信し、前記第１の結果に関連する前記データは、前記プレディケートレジスタに格納された以前の結果を置き換える。
【請求項５】
請求項１に記載の方法、ここにおいて前記第２の結果を選択的にコミットすることは下記を具備する：
メモリを格納するバッファに前記第２の結果を書き込むことと、
前記第１の結果を利用できるときは、レジスタに対する書き戻しのオペレーションを選択的にキャンセルすること。
【請求項６】
請求項１に記載の方法、ここにおいて前記第２の命令は、条件付きのフローの変更の命令を含む、前記方法はさらに下記を具備する：
前記第１の実行パイプラインおよび前記第２の実行パイプラインのうちの１つの復号のステージにおいて、前記第２の命令および前記第１の命令の一部を復号することと、
前記条件付きのフローの変更の命令がコミットされる見込みか否かを指示する前記復号された一部に基づいて静的な予測を行うこと。
【請求項７】
前記静的な予測が、前記条件付きのフローの変更の命令がコミットされる見込みであることを指示するときは、フローの変更に関連する複数の命令を読み出すために、命令の取り出しパイプラインを操縦することをさらに具備する、請求項６に記載の方法。
【請求項８】
前記第２の結果をコミットするかどうかを決定した後に、前記第２の結果を宛先レジスタに対して条件付き書き戻しすることをさらに具備する、請求項１に記載の方法。
【請求項９】
請求項１に記載の方法、ここにおいて前記第１の命令は比較命令を具備し、前記第２の命令はフローの変更の命令を具備する、前記方法はさらに下記を具備する：
前記第１の結果に基づいて、プレディケートビットをプレディケートレジスタに設定することと、
前記フローの変更の命令を実行した後に、前記プレディケートビットの値に基づいて、前記フローの変更の命令よって指示された前記フローの動作の変更を行うために、選択的にコミットすること。
【請求項１０】
第２のパイプラインが前記第１の実行パイプラインによって使用されるべき前記第１の結果を有するかどうかを決定するために、前記命令のパケットの一部を復号することをさらに備える、請求項１に記載の方法。
【請求項１１】
前記第２の実行パイプラインにおいて、前記第１の実行パイプラインが前記第２の命令に依存する前記第１の結果を有すると決定することをさらに備える、請求項１に記載の方法。
【請求項１２】
前記第１の命令の一部に関連づけられる値を決定するために、前記第２の実行パイプラインにおいて、前記第１の命令の一部を復号することをさらに備える、請求項１に記載の方法。
【請求項１３】
前記第１の命令および前記第２の命令の実行の前に、前記命令のパケットからの前記第１の命令および前記第２の命令を並行に実行することをさらに備える、請求項１に記載の方法。
【請求項１４】
下記を具備する方法：
複数の並列実行のパイプラインを有するプロセッサにおいて、比較命令および第２の命令を含むパケットを受信すること、前記第２の命令は前記比較命令に依存している、ここにおいて前記パケットは、前記第２の命令が、第２のパケットからの以前に実行された命令に関連づけられる結果の代わりに、前記比較命令に関連づけられる第１の結果を使用して実行されるべきである表示を含む、
前記第２の命令がコミットされるかどうかに関連する予測を決定するために前記第２の命令および前記比較命令を復号すること、
第１の命令および前記第２の命令を並行に実行することと、
前記第２の命令におよび前記予測に一部基づいて、取り出しパイプラインを選択的に操縦すること。
【請求項１５】
請求項１４に記載の方法、ここにおいて前記取り出しパイプラインを選択的に操縦することは、前記第２の命令がフローの変更の命令であるとき、および前記フローの変更の命令がコミットされる見込みであると前記予測が指示するときに、予測されるフローの変更に基づいてメモリからの複数の命令の読み出しを開始することを具備する。
【請求項１６】
請求項１４に記載の方法、ここにおいて前記取り出しパイプラインを選択的に操縦することは、前記予測がフローの変更を指示するときは、前記予測に基づいてメモリからフローの変更に関連する複数の命令の読み出しを開始することを、しかし前記予測が前記フローの変更を指示しないときは、読み出しを開始しないことを、具備する。
【請求項１７】
前記予測が誤りであると決定された後に、前記取り出しパイプラインから前記読み出された複数の命令を削除することをさらに具備する、請求項１５に記載の方法。
【請求項１８】
第１の実行パイプラインに関連づけられる前記第１の命令に関連する少なくとも第１の結果に基づいて、第２の実行パイプラインを用いて実行される前記第２の命令の第２の結果を選択的にコミットすることをさらに具備する、請求項１４に記載の方法。
【請求項１９】
請求項１８に記載の方法、ここにおいて前記第１の結果は、前記第２の結果がコミットされる前に、前記第２の命令に対して利用できる。
【請求項２０】
前記第２の結果がコミットされないときに、前記第２の命令の実行により引き起こされる複数の例外をキャンセルすることをさらに具備する、請求項１９に記載の方法。
【請求項２１】
さらに下記を具備する、請求項１４に記載の方法：
前記第１の命令および前記第２の命令のうちの１つは、プレディケートレジスタの中のビットに基づいた有効なプレディケートを有するかどうかを決定すること、および
前記有効なプレディケートを有する前記命令に基づいて、前記第１の命令の第１の結果および前記第２の命令の第２の結果のうちの、両方ではなく、１つをコミットすること。
【請求項２２】
請求項１４に記載の方法、ここにおいて前記パケットに含まれる表示は、前記比較命令に関連づけられる前記第１の結果が前記第２の命令によって使用されるべきであることを指示する前記第２の命令におけるビットの値に基づく。
【請求項２３】
請求項１４に記載の方法、ここにおいて前記命令のパケットに含まれる表示は、前記第２の命令におけるビットフラグである。
【請求項２４】
下記を具備するプロセッサ：
複数の命令を並行して実行するように適応されたマルチプルな実行の複数のパイプライン、前記マルチプルな実行の複数のパイプラインは、第１の結果を決定する命令のパケットの第１の命令を実行するための第１の実行パイプラインと、前記第１の命令から決定された前記第１の結果に依存する前記命令のパケットの第２の命令を実行するための第２の実行パイプラインとを含む、前記第１の命令および前記第２の命令は同時に実行される、前記命令のパケットは、前記第２の命令が、別のパケットからの以前に実行された命令に関連づけられる結果の代わりに、前記第１の命令から決定される前記第１の結果を使用して実行されるべきである表示を含む、および
前記第１の命令の実行から決定される、前記第１の実行パイプラインからの前記第１の結果を、前記第２の命令による使用のために前記第２の実行パイプラインへ提供するように適応された論理回路。
【請求項２５】
請求項２４に記載のプロセッサ、ここにおいて前記論理回路は、前記第２の実行パイプラインと関連づけられる第２の結果がコミットされる前に、前記第１の結果を前記第２の実行パイプラインへ提供する。
【請求項２６】
前記マルチプルな実行の複数のパイプラインにアクセス可能であり、ならびに前記第１の結果に関連するデータを格納するように適応されたプレディケートレジスタをさらに具備する、請求項２４に記載のプロセッサ。
【請求項２７】
前記第１の命令および前記第２の命令を含む複数の命令のパケットを受信するシーケンサと、前記第１の命令を前記第１の実行パイプラインに提供し、前記第２の命令を前記第２の実行パイプラインに提供するシーケンサと、をさらに具備する、請求項２４に記載のプロセッサ。
【請求項２８】
請求項２７に記載のプロセッサ、ここにおいて前記第１の命令は比較命令を具備する、およびここにおいて前記第２の命令は前記比較命令の実行の結果に依存する、およびここにおいて前記第２の命令は算術命令、論理演算命令、ロード命令、ストア命令、分岐命令、およびジャンプ命令のうちの少なくとも１つを具備する。
【請求項２９】
前記第２の命令の実行による第２の結果がコミットされる前に、前記第１の命令の実行による前記第１の結果を取得するのに十分な遅延を提供するための、前記マルチプルな実行の複数のパイプラインに結合されたメモリバッファをさらに具備する、請求項２４に記載のプロセッサ。
【請求項３０】
下記を具備するプロセッサ：
第１の実行パイプラインおよび第２の実行パイプラインを含む複数の並列実行のパイプラインを有するプロセッサにおいて、第１の命令および前記第１の命令に依存する第２の命令を含む命令のパケットを受信するための手段と、ここにおいて前記命令のパケットは、前記第２の命令が、別のパケットからの以前に実行された命令に関連づけられる結果の代わりに、前記第１の命令に関連づけられる第１の結果を使用して実行されるべきである表示を含む、
前記第１の命令の少なくとも一部および前記第２の命令の少なくとも一部を並行に実行するための手段と、
前記第１の実行パイプラインを用いて前記第１の命令の実行に関連する前記第１の結果に基づいて、前記第２の実行パイプラインを用いて前記第２の命令の少なくとも一部の実行の第２の結果を選択的にコミットするための手段。
【請求項３１】
下記をさらに具備する、請求項３０に記載のプロセッサ：
メモリを格納するバッファに前記第２の結果を書き込むための手段と、
前記第１の結果が利用できるときは、レジスタに対する書き戻しのオペレーションを選択的にキャンセルするための手段。
【請求項３２】
請求項３０に記載のプロセッサ、ここにおいて前記命令のパケットは、条件を計算する命令を含み、前記条件は、前記第２の命令の実行中に計算され、前記計算された条件は、前記第２の命令の実行中に使用される。
【請求項３３】
下記を含む非一時的なコンピュータ読取可能媒体：
第１の命令および前記第１の命令に依存する第２の命令を含む命令のパケット、前記命令のパケットは、第１の実行パイプラインおよび第２の実行パイプラインを含む、複数の並列実行のパイプラインを有するプロセッサによって実行可能である、ここにおいて前記命令のパケットは、前記第２の命令が、別のパケットからの以前に実行された命令に関連づけられる結果の代わりに、前記第１の命令に関連づけられる第１の結果を使用して実行されるべきである表示を含み、前記第１の命令の少なくとも一部および前記第２の命令の少なくとも一部は、並行に実行され、前記第１の結果に基づいて、前記第２の実行パイプラインを用いて前記第２の命令の少なくとも一部を実行したことの第２の結果が選択的にコミットされる。
【請求項３４】
請求項３３に記載の非一時的なコンピュータ読取可能媒体、ここにおいて前記命令のパケットは、超長命令語（ＶＬＩＷ）の命令のパケットであり、前記第１の命令は、比較命令であり、前記第２の命令は、ロード命令、ストア命令、算術命令、またはそれらの組み合わせである。