【誤訳訂正書】
【提出日】平成28年3月28日(2016.3.28)
【誤訳訂正１】
【訂正対象書類名】特許請求の範囲
【訂正対象項目名】全文
【訂正方法】変更
【訂正の内容】
【特許請求の範囲】
【請求項１】
プロセッサと、
前記プロセッサに連結されたメモリと
を備え、
前記プロセッサは、
１又は複数のコアと、
ループの複数のオペレーションに関連するメモリ範囲情報をストアするために複数のエイリアスレジスタを含むレジスタファイルであって、前記メモリ範囲情報は、メモリ内の１又は複数のメモリ位置を参照する、前記レジスタファイルと、
前記複数のエイリアスレジスタのそれぞれを前記ループの対応するオペレーションに割り当てるレジスタ割り当て手段であって、前記割り当ては、ローテーションスケジュールに従って作成され、前記複数のエイリアスレジスタの少なくとも１つは、前記ループの第１のイタレーションの第１のオペレーションと、前記ループの後続するイタレーションの第２のオペレーションとに割り当てられる、前記レジスタ割り当て手段と
を有し、
前記１又は複数のコアの少なくとも１つは、エイリアスが存在するかを決定するために、前記複数のエイリアスレジスタの他の少なくとも１つにストアされているデータに対する、第１のエイリアスレジスタにストアされているデータの比較を実行する、システム。
【請求項２】
前記プロセッサは更に、
パイプライン化されたスケジュールに従って前記ループの前記複数のオペレーションをスケジュールするための命令スケジュール手段を有し、
前記ループの少なくとも１つのオペレーションは、前記ループの前記複数のオペレーションの順序と異なる実行スケジュールに従って実行される、請求項１に記載のシステム。
【請求項３】
第１のエイリアスレジスタは、第１のライフタイムの間は前記第１のオペレーションに割り当てられ、前記第１のエイリアスレジスタは、第２のライフタイムの間は第２のオペレーションに割り当てられ、前記第１のライフタイム及び前記第２のライフタイムは、重ならない期間である、請求項１に記載のシステム。
【請求項４】
前記第１のライフタイムは、前記ループの第１のイタレーションの範囲内であり、前記第２のライフタイムが、前記第１のイタレーションに連続する次のイタレーションである前記ループの第２のイタレーションの範囲内である、請求項３に記載のシステム。
【請求項５】
前記レジスタ割り当て手段は、関連するライフタイムが期限切れになった各エイリアスレジスタの内容を削除するためのローテーション一掃命令を実行する、請求項１から４のいずれか一項に記載のシステム。
【請求項６】
ローテーションレジスタファイルの複数のエイリアスレジスタのそれぞれを、ループの複数のイタレーションのためのローテーションシーケンスに従って連続して前記ループの対応するオペレーションに割り当てる手順であって、各エイリアスレジスタが、前記対応するオペレーションに基づきアクセスする１又は複数のメモリ位置のインディケーションをストアし、前記複数のエイリアスレジスタの１つは、前記ループの第１のイタレーションの第１のオペレーションと、前記ループの後続するイタレーションの第２のオペレーションとに割り当てられる、前記割り当てる手順と、
前記割り当てられた複数のエイリアスレジスタの少なくとも１つの内容を、１又は複数の他の割り当てられたエイリアスレジスタの内容と比較することで、エイリアス条件が存在するかを決定する手順と
をシステムに実行させる、プログラム。
【請求項７】
第１のエイリアスレジスタは、第１のライフタイムの間は前記第１のオペレーションに割り当てられ、前記第１のエイリアスレジスタは、第２のライフタイムの間は前記第２のオペレーションに割り当てられ、前記第１のライフタイム及び前記第２のライフタイムは、重ならない期間である、請求項６に記載のプログラム。
【請求項８】
前記第１のライフタイム及び前記第２のライフタイムは、前記ループの連続した隣り合う複数のイタレーション内に含まれる、請求項７に記載のプログラム。
【請求項９】
前記第１のライフタイム及び前記第２のライフタイムは、前記ループの隣り合わないイタレーションのなかにある、請求項７に記載のプログラム。
【請求項１０】
前記システムに更に、
同じ又は異なるイタレーションにある別のオペレーションに対する順序関係に基づいてオペレーションに対してライフタイムを割り当てる手順と、
対応するエイリアスレジスタを、前記ライフタイムの期間は前記オペレーションに割り当てる手順と
を実行させる、請求項６に記載のプログラム。
【請求項１１】
前記システムに、前記期間が期限切れになると、前記対応するエイリアスレジスタを、別のイタレーションの別のオペレーションに割り当て直す手順を実行させる、請求項１０に記載のプログラム。
【請求項１２】
前記システムに更に、順序関係の存在に応じて前記エイリアス条件が存在するかを決定する手順を実行させ、
前記順序関係は、
パイプライン化されたスケジュールに従って、前記ループの前記第２のオペレーションの後に実行するようスケジュールされた前記ループの前記第１のオペレーションと、
前記ループの第１のオペレーションが前記ループの前記第２のオペレーションの前に実行可能であるという前記ループでの指定と
に呼応して存在が示される、
請求項６から１１のいずれか一項に記載のプログラム。
【請求項１３】
レジスタファイルの複数のエイリアスレジスタのそれぞれを、ループの複数のイタレーションのためのローテーションシーケンスに従って連続して前記ループの対応するオペレーションに割り当てる段階であって、前記複数のエイリアスレジスタの１つを、前記ループの第１のイタレーションの第１のオペレーションと、前記ループの後続するイタレーションの第２のオペレーションとに割り当てることを含み、各エイリアスレジスタは、前記対応するオペレーションによりアクセスされる複数のメモリ位置のインディケーションをストアする、前記割り当てる段階と、
前記割り当てられた複数のエイリアスレジスタの少なくとも１つの内容を、１又は複数の他の割り当てられたエイリアスレジスタの内容と比較することで、エイリアス条件が存在するかを決定する段階と
を備える方法。
【請求項１４】
第１のエイリアスレジスタを、第１のライフタイムの間は前記第１のオペレーションに割り当て、前記第１のエイリアスレジスタを、第２のライフタイムの間は前記第２のオペレーションに割り当てる段階を更に備え、
前記第１のライフタイム及び前記第２のライフタイムは、重ならない期間である、請求項１３に記載の方法。
【請求項１５】
前記第１のライフタイム及び前記第２のライフタイムは、前記ループの連続した隣り合う複数のイタレーション内に含まれる、請求項１４に記載の方法。
【請求項１６】
第１のエイリアスレジスタを、第１のライフタイムの間は前記ループの第１のイタレーションの前記第２のオペレーションに割り当て、前記第１のエイリアスレジスタを、第２のライフタイムの間は前記ループの第２のイタレーションの前記第１のオペレーションに割り当てる段階を更に備え、
前記第１のライフタイム及び前記第２のライフタイムは、重ならない期間である、請求項１３に記載の方法。
【請求項１７】
同じイタレーション又は異なるイタレーションにある別のオペレーションに対する順序関係に基づいてオペレーションに対してライフタイムを割り当てる段階と、
対応するエイリアスレジスタを、前記ライフタイムの期間は前記オペレーションに割り当てる段階と
を更に備える、請求項１３に記載の方法。
【請求項１８】
前記期間が期限切れになると、前記対応するエイリアスレジスタを、別のイタレーションの別のオペレーションに割り当て直す段階を更に備える、請求項１７に記載の方法。
【請求項１９】
前記ループの前記第１のオペレーションに割り当てられた第１のエイリアスレジスタの内容を、前記第２のオペレーションに関する第２のライフタイムの間、前記第２のオペレーションに割り当てられた第２のエイリアスレジスタの内容と比較することにより、前記ループの第１のイタレーションにエイリアスが存在するかを決定する段階を更に備え、
前記第２のライフタイムは、前記第２のオペレーションの第２のスケジュールされた実行時間に対する前記第１のオペレーションの第１のスケジュールされた実行時間により決定される、請求項１３に記載の方法。
【請求項２０】
前記エイリアス条件が存在するかを決定する段階は、順序関係の存在に応じて実行され、
前記順序関係は、
パイプライン化されたスケジュールに従って、前記ループの前記第２のオペレーションの後に実行するようスケジュールされた前記ループの前記第１のオペレーションと、
前記ループの第１のオペレーションが前記ループの前記第２のオペレーションの前に実行可能であるという前記ループでの指定と
に呼応して存在が示される、請求項１３に記載の方法。
【請求項２１】
請求項１３から２０のいずれか一項の方法を実行するための手段を備える装置。
【請求項２２】
請求項１３から２０のいずれか一項の方法を実行する装置。
【請求項２３】
１又は複数のコアと、
ループの複数のオペレーションに関連するメモリ範囲情報をストアするために複数のエイリアスレジスタを含むレジスタファイルであって、前記メモリ範囲情報は、メモリ内の１又は複数のメモリ位置を参照する、前記レジスタファイルと、
前記複数のエイリアスレジスタのそれぞれを前記ループの対応するオペレーションに割り当てるためのレジスタ割り当て論理であって、前記割り当ては、ローテーションスケジュールに従って作成され、前記複数のエイリアスレジスタの少なくとも１つは、前記ループの第１のイタレーションの第１のオペレーションと、前記ループの後続するイタレーションの第２のオペレーションとに割り当てられる、前記レジスタ割り当て論理と
を備え、
前記１又は複数のコアの少なくとも１つは、エイリアスが存在するかを決定するために、前記複数のエイリアスレジスタの他の少なくとも１つにストアされているデータに対する、第１のエイリアスレジスタにストアされているデータの比較を実行する、
プロセッサ。
【請求項２４】
パイプライン化されたスケジュールに従って前記ループの前記複数のオペレーションをスケジュールするための命令スケジュール論理を更に備え、
前記ループの少なくとも１つのオペレーションは、前記ループの前記複数のオペレーションの順序と異なる実行スケジュールに従って実行される、
請求項２３に記載のプロセッサ。
【誤訳訂正２】
【訂正対象書類名】明細書
【訂正対象項目名】００１２
【訂正方法】変更
【訂正の内容】
【００１２】
例えばスケジュールフェーズ中には、ループ内のメモリアクセス（例えば、オペレーションをロードしたり、又は、オペレーションをストアしたりする、ここでは「オペレーション」）が、エイリアスする（「データ投機」）ことができないと仮定することができる、例えば、メモリアクセス間に依存関係（例えば順序関係）がないと仮定することができる。
データ投機によって、より並列性が可能となり（例えば、オペレーションのアウトオブオーダ処理による計算リソースの効率的な利用）が可能となるが、一方で、エラーにつながりうる。例えば、メモリアクセスが互いにエイリアスを生じる場合（例えば、メモリアクセスが、重複するメモリ位置を対象とする場合）、又は、実行スケジュールのメモリアクセスの順序が、元のループにおけるその順序と異なっている場合には、データ投機が誤っていたことになる（例えばデータ投機が失敗する）。エイリアスを生じさせるようなこのケースをキャッチするために、各メモリアクセスは、アクセスが実行されたときの、アクセスのアドレスのメモリ範囲を記録するエイリアスレジスタを割り当てられることができる（例えば、アドレスから始まり、アクセスされたメモリ範囲）。アクセスのメモリ範囲は、全ての潜在的にエイリアスされる可能性のあるアクセスのエイリアスレジスタと比較され、マッチするものがある場合に、エイリアスが特定される（例えばデータ投機の失敗）。そのような失敗は、例えば復帰コードの実行によって処理されてよい。幾つかの実施形態では、復帰コードの実行は、ループの前のイタレーションにロールバックしてしまうこともあり、及び／又は、オペレーションを順序づけ直して、エイリアスを取り除いてしまうこともある。
【誤訳訂正３】
【訂正対象書類名】明細書
【訂正対象項目名】００２７
【訂正方法】変更
【訂正の内容】
【００２７】
時間t＝５において、イタレーション２３６（「イタレーション０」）のライフタイム２４２及び２４４が期限切れになっているので、t＝５からは、第１のイタレーション２３６のライフタイム２４２及び２４４の間に割り当てられたレジスタの更なる内容の比較はされない。この結果、レジスタ０及び１が、イタレーション２４０（「イタレーション２」）で再利用されてよく、これはt＝５から始まる。
【誤訳訂正４】
【訂正対象書類名】明細書
【訂正対象項目名】００６６
【訂正方法】変更
【訂正の内容】
【００６６】
第１の例では、システムが、１又は複数のコアを含むプロセッサを含む。プロセッサは更に、ループの複数のオペレーションに関するメモリ範囲情報をストアするための複数のエイリアスレジスタを含むレジスタファイルも含む。メモリ範囲情報は、メモリ内の１又は複数のメモリ位置を参照する。プロセッサは更に、エイリアスレジスタそれぞれをループの対応するオペレーションに割り当てるためのレジスタ割り当て論理も含む。割り当ては、ローテーションスケジュールに従って行われてよく、エイリアスレジスタの少なくとも１つがループの第１のイタレーションの第１のオペレーション及びループの後続するイタレーションの第２のオペレーションに割り当てられる。
システムは更にプロセッサに連結されたメモリを含む。任意で、プロセッサは更に、パイプライン化されたスケジュールに従ってループのオペレーションをスケジュールするための命令スケジュール論理を含み、ここでループの少なくとも１つのオペレーションが、ループのオペレーションの順序とは異なる実行スケジュールに従って実行される。任意で、１又は複数のコアの１つが、第１のエイリアスレジスタにストアされているデータを、エイリアスレジスタの少なくとも他の１つにストアされているデータと比較することを実行して、エイリアスが存在するかを決定してよい。任意で、第１のエイリアスレジスタが、第１のライフタイムの間は第１のオペレーションに割り当てられてよく、第１のエイリアスレジスタが、第２のライフタイムの間は第２のオペレーションに割り当てられてよく、第１のライフタイム及び第２のライフタイムが、重ならない期間であってよい。任意で、第１のライフタイムがループの第１のイタレーションの範囲内であり、第２のライフタイムが、第１のイタレーションに連続する次のイタレーションであるループの第２のイタレーションの範囲内である。任意で、レジスタ割り当て論理が、ローテーション一掃命令を実行して、関連するライフタイムが期限切れになった各エイリアスレジスタの内容を削除してよい。
【誤訳訂正５】
【訂正対象書類名】明細書
【訂正対象項目名】００６７
【訂正方法】変更
【訂正の内容】
【００６７】
第２の例では、少なくとも１つのコンピュータ可読媒体が、実行されると、システムに、ローテーションレジスタファイルの複数のエイリアスレジスタのそれぞれを、ループの複数のイタレーションのためのローテーションシーケンスに従って連続してループの対応するオペレーションに割り当てる手順であって、各エイリアスレジスタが、対応するオペレーションがアクセスする１又は複数のメモリ位置のインディケーションをストアし、複数のエイリアスレジスタの１つは、ループの第１のイタレーションの第１のオペレーションと、ループの後続するイタレーションの第２のオペレーションとに割り当てられる、割り当てる手順を実行させる命令を含む。少なくとも１つのコンピュータ可読媒体は更に、割り当てられた複数のエイリアスレジスタの少なくとも１つの内容を、１又は複数の他の割り当てられたエイリアスレジスタの内容と比較することで、エイリアス条件が存在するかを決定するための命令も含む。第１のエイリアスレジスタを、第１のライフタイムの間は第１のオペレーションに割り当て、第１のエイリアスレジスタを、第２のライフタイムの間は第２のオペレーションに割り当て、第１のライフタイム及び第２のライフタイムは、重ならない期間であってよい。任意で、第１のライフタイム及び第２のライフタイムは、ループの連続した隣の複数のイタレーションのなかにある。
任意で、第１のライフタイム及び第２のライフタイムは、ループの隣り合わないイタレーションのなかにある。任意で、少なくとも１つのコンピュータ可読媒体は、実行されるとシステムに、順序関係に基づくオペレーションに対するライフタイムを、同じ又は異なるイタレーション内の別のオペレーションに割り当てさせ、対応するエイリアスレジスタを、ライフタイムの期間の間はオペレーションに割り当てさせる更なる命令を含む。任意で、少なくとも１つのコンピュータ可読媒体は、実行されるとシステムに、期間が期限切れになると、対応するエイリアスレジスタを、別のイタレーションの別のオペレーションに割り当て直させる命令を更に含む。任意で、少なくとも１つのコンピュータ可読媒体は、実行されるとシステムに、順序関係の存在に応じてエイリアスをチェックさせる命令を更に含み、順序関係は、パイプライン化されたスケジュールに従って、ループの第２のオペレーションの後に実行するようスケジュールされたループの第１のオペレーションと、ループの第１のオペレーションがループの第２のオペレーションの前に実行可能であるというループのインディケーションとに呼応して示される。
【誤訳訂正６】
【訂正対象書類名】明細書
【訂正対象項目名】００６８
【訂正方法】変更
【訂正の内容】
【００６８】
第３の例では、方法が、レジスタファイルの複数のエイリアスレジスタのそれぞれを、ループの複数のイタレーションのためのローテーションシーケンスに従って連続してループの対応するオペレーションに割り当てる段階であって、複数のエイリアスレジスタの１つを、ループの第１のイタレーションの第１のオペレーションと、ループの後続するイタレーションの第２のオペレーションとに割り当てることを含み、各エイリアスレジスタは、対応するオペレーションによりアクセスされる複数のメモリ位置のインディケーションをストアする、割り当てる段階を含む。e方法は更に、割り当てられた複数のエイリアスレジスタの少なくとも１つの内容を、１又は複数の他の割り当てられたエイリアスレジスタの内容と比較することで、エイリアス条件が存在するかを決定する段階を含む。任意で、方法は、第１のエイリアスレジスタを、第１のライフタイムの間は第１のオペレーションに割り当て、第１のエイリアスレジスタを、第２のライフタイムの間は第２のオペレーションに割り当てる段階を含み、第１のライフタイム及び第２のライフタイムは、重ならない期間である。
任意で、第１のライフタイム及び第２のライフタイムは、ループの連続した隣の複数のイタレーションのなかにある任意で、方法は、第１のエイリアスレジスタを、第１のライフタイムの間はループの第１のイタレーションの第２のオペレーションに割り当て、第１のエイリアスレジスタを、第２のライフタイムの間はループの第２のイタレーションの第１のオペレーションに割り当てる段階を含み、第１のライフタイム及び第２のライフタイムは、重ならない期間である。任意で、方法は、同じ板レーション又は異なるイタレーション内で別のオペレーションに対する順序関係に基づいてオペレーションに対してライフタイムを割り当てる段階と、対応するエイリアスレジスタを、ライフタイムの期間の間はオペレーションに割り当てる段階とを含む。任意で、方法は、期間が期限切れになると、対応するエイリアスレジスタを、別のイタレーションの別のオペレーションに割り当て直す段階を含む。任意で、方法は、ループの第１のオペレーションに割り当てられた第１のエイリアスレジスタの内容を、第２のオペレーションに関する第２のライフタイムの間、第２のオペレーションに割り当てられた第２のエイリアスレジスタの内容と比較することにより、ループの第１のイタレーションにエイリアスが存在するかを決定することを含み、第２のライフタイムは、第２のオペレーションの第２のスケジュールされた実行時間に対する第１のオペレーションの第１のスケジュールされた実行時間により決定される。
任意で、方法は、順序関係の存在に応じてエイリアスをチェックする段階を含み、順序関係は、パイプライン化されたスケジュールに従って、ループの第２のイタレーションの後に実行するようスケジュールされたループの第１のオペレーションと、ループの第１のオペレーションがループの第２のオペレーションの前に実行可能であるというループのインディケーションとに呼応して示される。
【誤訳訂正７】
【訂正対象書類名】明細書
【訂正対象項目名】００７０
【訂正方法】変更
【訂正の内容】
【００７０】
第５の例では、プロセッサが、１又は複数のコアと、ループの複数のオペレーションに関連するメモリ範囲情報をストアするために複数のエイリアスレジスタを含むレジスタファイルであって、メモリ範囲情報は、メモリ内の１又は複数のメモリ位置を参照する、レジスタファイルと、複数のエイリアスレジスタのそれぞれをループの対応するオペレーションに割り当てるレジスタ割り当て論理とを含む。
割り当ては、ローテーションスケジュールに従って作成され、複数のエイリアスレジスタの少なくとも１つは、ループの第１のイタレーションの第１のオペレーションと、ループの後続するイタレーションの第２のオペレーションとに割り当てられる。システムは更に、プロセッサに連結されたメモリを含む。任意で、プロセッサは、パイプライン化されたスケジュールに従ってループの複数のオペレーションをスケジュールするための命令スケジュール論理を更に含み、ループの少なくとも１つのオペレーションは、ループの複数のオペレーションの順序と異なる実行スケジュールに従って実行される。任意で、１又は複数のコアの１つは、エイリアスが存在するかを決定するために、複数のエイリアスレジスタの他の少なくとも１つにストアされているデータに対する、第１のエイリアスレジスタにストアされているデータの比較を実行する。任意で、第１のエイリアスレジスタは、第１のライフタイムの間は第１のオペレーションに割り当てられ、第１のエイリアスレジスタは、第２のライフタイムの間は第２のオペレーションに割り当てられ、第１のライフタイム及び第２のライフタイムは、重ならない期間である。任意で、第１のライフタイムは、ループの第１のイタレーションの範囲内であり、第２のライフタイムが、第１のイタレーションに連続する次のイタレーションであるループの第２のイタレーションの範囲内である。任意で、レジスタ割り当て論理は、関連するライフタイムが期限切れになった各エイリアスレジスタの内容を削除するためのローテーション一掃命令を更に実行する。