【手続補正書】
【提出日】平成28年3月23日(2016.3.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
低レベルソフトウェア命令を生成するために高レベルソフトウェア命令をコンパイルする方法であって、
コンピューティングデバイスを用いて、１つまたは複数の関連するテクスチャロード命令を有する高レベル（ＨＬ）制御フロー（ＣＦ）命令のセットを識別することと、ここにおいて前記１つまたは複数のテクスチャロード命令の実行がテクスチャをメモリにロードさせる、ここにおいてＨＬ  ＣＦ命令の前記セットが１つまたは複数の分岐を備える、
前記１つまたは複数の関連するテクスチャロード命令が、前記１つまたは複数の分岐に関連するテクスチャロード命令の数に関して対称であるか、ほぼ対称であるかを判断することと、
対称またはほぼ対称である前記１つまたは複数のテクスチャロード命令に基づいて、前記コンピューティングデバイスを用いて、ＨＬ  ＣＦ命令の前記識別されたセットを、述語構造を有する低レベル（ＬＬ）命令に変換することと、ここにおいて前記述語構造を有する前記ＬＬ命令は分岐することなしに実行可能である、
対称またはほぼ対称ではない前記テクスチャロード命令に基づいて、前記ＨＬ  ＣＦ命令が変換されないように、ＨＬ  ＣＦ命令の前記識別されたセットを変換することを控えることと、
前記述語構造を有する前記変換されたＬＬ命令またはＨＬ  ＣＦ命令の前記変換されていないセットを出力することとを備える、方法。
【請求項２】
前記１つまたは複数のテクスチャロード命令の実行が、前記テクスチャをグラフィックス処理ユニットのローカルメモリに転送させる、請求項１に記載の方法。
【請求項３】
前記ＨＬ  ＣＦ命令を変換することが、前記変換された低レベル命令の無条件直列実行を可能にするために前記１つまたは複数の分岐を削除することを備える、請求項１に記載の方法。
【請求項４】
前記１つまたは複数の関連するテクスチャロード命令が対称であるか、ほぼ対称であるかを判断することが、前記１つまたは複数の分岐の各分岐に関連する等しい数のテクスチャロード命令を識別することを備える、請求項１に記載の方法。
【請求項５】
ＨＬ  ＣＦ命令の前記識別されたセットを変換することが、ＬＬ命令のセットを生成することを備え、ここにおいてＬＬ命令の前記セットの実行が、選択関数の結果に基づいてアドレスを割り当てさせ、前記割り当てられたアドレスからテクスチャをロードさせる、請求項１に記載の方法。
【請求項６】
ＨＬ  ＣＦ命令の前記セットを識別することが、条件を有するＩＦ−ＥＬＳＥ文を識別することを備え、ここにおいて前記条件が真である場合、ＨＬ  ＣＦ命令の前記セットが第１のメモリアドレスからテクスチャをロードさせ、前記条件が偽である場合、ＨＬ  ＣＦ命令の前記セットが第２のメモリアドレスから前記テクスチャをロードさせる、請求項１に記載の方法。
【請求項７】
ＨＬ  ＣＦ命令の前記セットを変換することが、ＬＬ命令のセットを生成することを備え、ここにおいてＬＬ命令の前記セットが、前記条件の結果に基づいてアドレスを予約させ、前記予約されたアドレスから前記テクスチャをロードさせる、請求項６に記載の方法。
【請求項８】
前記変換されたＬＬ命令を出力することが、前記変換されたＬＬ命令をメモリに記憶することを備える、請求項１に記載の方法。
【請求項９】
前記ＨＬ命令を変換することが、前記ＬＬ命令を生成するために前記ＨＬ命令をランタイムコンパイルすることを備え、グラフィックス処理ユニット上で前記出力されたＬＬ命令を実行することをさらに備える、請求項１に記載の方法。
【請求項１０】
前記出力されたＬＬ命令を実行することが、前記コンパイルされた命令を、前記ＨＬ  ＣＦ命令の条件と前記出力されたＬＬ命令の座標とが依存しない命令より前に実行されるようにスケジュールすることを備える、請求項９に記載の方法。
【請求項１１】
低レベルソフトウェア命令を生成するために高レベルソフトウェア命令をコンパイルするための装置であって、
１つまたは複数の関連するテクスチャロード命令を有する高レベル（ＨＬ）制御フロー（ＣＦ）命令のセットを識別することと、ここにおいて前記１つまたは複数のテクスチャロード命令の実行がテクスチャをメモリにロードさせる、ここにおいてＨＬ  ＣＦ命令の前記セットが１つまたは複数の分岐を備える、
前記１つまたは複数の関連するテクスチャロード命令が、前記１つまたは複数の分岐に関連するテクスチャロード命令の数に関して対称であるか、ほぼ対称であるかを判断することと、
対称またはほぼ対称である前記１つまたは複数のテクスチャロード命令に基づいて、ＨＬ  ＣＦ命令の前記識別されたセットを、述語構造を有する低レベル（ＬＬ）命令に変換することと、ここにおいて前記述語構造を有する前記ＬＬ命令は、分岐することなしに実行される、
対称またはほぼ対称ではない前記テクスチャロード命令に基づいて、前記ＨＬ  ＣＦ命令が変換されないように、ＨＬ  ＣＦ命令の前記識別されたセットを変換することを控えることと、
前記述語構造を有する前記変換された（ＬＬ）命令またはＨＬ  ＣＦ命令の前記変換されていないセットを出力することと
を行うように構成された１つまたは複数の処理ユニットを備える、装置。
【請求項１２】
ローカルメモリをさらに備え、前記１つまたは複数のテクスチャロード命令の実行が、前記テクスチャを前記装置のローカルメモリに転送させる、請求項１１に記載の装置。
【請求項１３】
前記ＨＬ  ＣＦ命令を変換するために、前記１つまたは複数のプロセッサが、前記変換された低レベル命令の無条件直列実行を可能にするために前記１つまたは複数の分岐を削除するように構成された、請求項１１に記載の装置。
【請求項１４】
前記１つまたは複数の関連するテクスチャロード命令が対称であるか、ほぼ対称であるかを判断するために、前記１つまたは複数の処理ユニットが、前記１つまたは複数の分岐の各分岐に関連する等しい数のテクスチャロード命令を識別するように構成された、請求項１１に記載の装置。
【請求項１５】
ＨＬ  ＣＦ命令の前記識別されたセットを変換するために、前記１つまたは複数のプロセッサが、ＬＬ命令のセットを生成するように構成され、ＬＬ命令の前記セットの実行が、選択関数の結果に基づいてアドレスを割り当てさせ、前記割り当てられたアドレスからテクスチャをロードさせる、請求項１１に記載の装置。
【請求項１６】
ＨＬ  ＣＦ命令の前記セットを識別するために、前記１つまたは複数のプロセッサが、条件を有するＩＦ−ＥＬＳＥ文を識別するように構成され、前記条件が真である場合、ＨＬ  ＣＦ命令の前記セットが第１のメモリアドレスからテクスチャをロードさせ、前記条件が偽である場合、ＨＬ  ＣＦ命令の前記セットが第２のメモリアドレスから前記テクスチャをロードさせる、請求項１１に記載の装置。
【請求項１７】
ＨＬ  ＣＦ命令の前記セットを変換するために、前記１つまたは複数のプロセッサが、ＬＬ命令のセットを生成するように構成され、ＬＬ命令の前記セットが、前記条件の結果に基づいてアドレスを予約させ、前記予約されたアドレスから前記テクスチャをロードさせる、請求項１６に記載の装置。
【請求項１８】
前記変換されたＬＬ命令を出力するために、前記１つまたは複数のプロセッサが、前記変換されたＬＬ命令をメモリに記憶するように構成された、請求項１１に記載の装置。
【請求項１９】
前記ＨＬ命令を変換するために、前記１つまたは複数のプロセッサが、前記ＬＬ命令を生成するために前記ＨＬ命令をランタイムコンパイルするように構成され、前記出力されたＬＬ命令を実行することをさらに備える、請求項１１に記載の装置。
【請求項２０】
前記出力されたＬＬ命令を実行するために、前記１つまたは複数のプロセッサが、前記コンパイルされた命令を、前記ＨＬ  ＣＦ命令の条件と前記出力されたＬＬ命令の座標とが依存しない命令より前に実行されるようにスケジュールするように構成された、請求項１９に記載の装置。
【請求項２１】
低レベルソフトウェア命令を生成するために高レベルソフトウェア命令をコンパイルするためのコンピュータプログラム製品であって、実行されたとき、
１つまたは複数の関連するテクスチャロード命令を有する高レベル（ＨＬ）制御フロー（ＣＦ）命令のセットを識別することと、ここにおいて前記１つまたは複数のテクスチャロード命令の実行がテクスチャをメモリにロードさせる、ここにおいてＨＬ  ＣＦ命令の前記セットが１つまたは複数の分岐を備える、
前記１つまたは複数の関連するテクスチャロード命令が、前記１つまたは複数の分岐に関連するテクスチャロード命令の数に関して対称であるか、ほぼ対称であるかを判断することと、
対称またはほぼ対称である前記１つまたは複数のテクスチャロード命令に基づいて、ＨＬ  ＣＦ命令の前記識別されたセットを、述語構造を有する低レベル（ＬＬ）命令に変換することと、ここにおいて前記述語構造を有する前記ＬＬ命令は分岐することなしに実行される、
対称またはほぼ対称ではない前記テクスチャロード命令に基づいて、前記ＨＬ  ＣＦ命令が変換されないように、ＨＬ  ＣＦ命令の前記識別されたセットを変換することを控えることと、
前記述語構造を有する前記変換された（ＬＬ）命令またはＨＬ  ＣＦ命令の前記変換されていないセットを出力することと
を１つまたは複数のプロセッサに行わせる命令を記憶する、コンピュータプログラム製品。
【請求項２２】
前記１つまたは複数のテクスチャロード命令の実行が、前記テクスチャをグラフィックス処理ユニットのローカルメモリに転送させる、請求項２１に記載のコンピュータプログラム製品。
【請求項２３】
前記ＨＬ  ＣＦ命令を変換することが、前記変換された低レベル命令の無条件直列実行を可能にするために前記１つまたは複数の分岐を削除することを備える、請求項２１に記載のコンピュータプログラム製品。
【請求項２４】
前記１つまたは複数の関連するテクスチャロード命令が対称であるか、ほぼ対称であるかを判断することために、前記命令が、前記１つまたは複数のプロセッサに、前記１つまたは複数の分岐の各分岐に関連する等しい数のテクスチャロード命令を識別させる、請求項２１に記載のコンピュータプログラム製品。
【請求項２５】
ＨＬ  ＣＦ命令の前記識別されたセットを変換することが、ＬＬ命令のセットを生成することを備え、ここにおいてＬＬ命令の前記セットの実行が、選択関数の結果に基づいてアドレスを割り当てさせ、前記割り当てられたアドレスからテクスチャをロードさせる、請求項２１に記載のコンピュータプログラム製品。
【請求項２６】
ＨＬ  ＣＦ命令の前記セットを識別することが、条件を有するＩＦ−ＥＬＳＥ文を識別することを備え、ここにおいて前記条件が真である場合、ＨＬ  ＣＦ命令の前記セットが第１のメモリアドレスからテクスチャをロードさせ、前記条件が偽である場合、ＨＬ  ＣＦ命令の前記セットが第２のメモリアドレスから前記テクスチャをロードさせる、請求項２１に記載のコンピュータプログラム製品。
【請求項２７】
ＨＬ  ＣＦ命令の前記セットを変換することが、ＬＬ命令のセットを生成することを備え、ここにおいてＬＬ命令の前記セットが、前記条件の結果に基づいてアドレスを予約させ、前記予約されたアドレスから前記テクスチャをロードさせる、請求項２６に記載のコンピュータプログラム製品。
【請求項２８】
前記変換されたＬＬ命令を出力することが、前記変換されたＬＬ命令をメモリに記憶することを備える、請求項２１に記載のコンピュータプログラム製品。
【請求項２９】
前記ＨＬ命令を変換することが、前記ＬＬ命令を生成するために前記ＨＬ命令をランタイムコンパイルすることを備え、実行されたとき、グラフィックス処理ユニット上で前記出力されたＬＬ命令を実行することを前記１つまたは複数のプロセッサに行わせる命令をさらに備える、請求項２１に記載のコンピュータプログラム製品。
【請求項３０】
前記出力されたＬＬ命令を実行することが、前記コンパイルされた命令を、前記ＨＬ  ＣＦ命令の条件と前記出力されたＬＬ命令の座標とが依存しない命令より前に実行されるようにスケジュールすることを備える、請求項２９に記載のコンピュータプログラム製品。
【請求項３１】
低レベルソフトウェア命令を生成するために高レベルソフトウェア命令をコンパイルするための装置であって、
１つまたは複数の関連するテクスチャロード命令を有する高レベル（ＨＬ）制御フロー（ＣＦ）命令のセットを識別するための手段と、ここにおいて前記１つまたは複数のテクスチャロード命令の実行がテクスチャをメモリにロードさせる、ここにおいてＨＬ  ＣＦ命令の前記セットが１つまたは複数の分岐を備える、
前記１つまたは複数の関連するテクスチャロード命令が、前記１つまたは複数の分岐に関連するテクスチャロード命令の数に関して対称であるか、ほぼ対称であるかを判断するための手段と、
対称またはほぼ対称である前記１つまたは複数のテクスチャロード命令に基づいて、ＨＬ  ＣＦ命令の前記識別されたセットを、述語構造を有する低レベル（ＬＬ）命令に変換するための手段と、ここにおいて前記述語構造を有する前記ＬＬ命令は分岐することなしに実行可能である、
対称またはほぼ対称ではない前記テクスチャロード命令に基づいて、前記ＨＬ  ＣＦ命令が変換されないように、ＨＬ  ＣＦ命令の前記識別されたセットを変換することを控えるための手段と、
前記述語構造を有する前記変換されたＬＬ命令またはＨＬ  ＣＦ命令の前記変換されていないセットを出力するための手段とを備える、装置。
【請求項３２】
前記１つまたは複数のテクスチャロード命令の実行が、前記テクスチャをグラフィックス処理ユニットのローカルメモリに転送させる、請求項３１に記載の装置。
【請求項３３】
前記ＨＬ  ＣＦ命令を変換するための前記手段が、前記変換された低レベル命令の無条件直列実行を可能にするために前記１つまたは複数の分岐を削除するための手段を備える、請求項３１に記載の装置。
【請求項３４】
前記１つまたは複数の関連するテクスチャロード命令が対称であるか、ほぼ対称であるかを判断するための前記手段が、前記１つまたは複数の分岐の各分岐に関連する等しい数のテクスチャロード命令を識別するための手段を備える、請求項３１に記載の装置。
【請求項３５】
ＨＬ  ＣＦ命令の前記識別されたセットを変換するための前記手段が、ＬＬ命令のセットを生成するための手段を備え、ＬＬ命令の前記セットの実行が、選択関数の結果に基づいてアドレスを割り当てさせ、前記割り当てられたアドレスからテクスチャをロードさせる、請求項３１に記載の装置。
【請求項３６】
ＨＬ  ＣＦ命令の前記セットを識別するための前記手段が、条件を有するＩＦ−ＥＬＳＥ文を識別するための手段を備え、前記条件が真である場合、ＨＬ  ＣＦ命令の前記セットが第１のメモリアドレスからテクスチャをロードさせ、前記条件が偽である場合、ＨＬ  ＣＦ命令の前記セットが第２のメモリアドレスから前記テクスチャをロードさせる、請求項３１に記載の装置。
【請求項３７】
ＨＬ  ＣＦ命令の前記セットを変換するための前記手段が、ＬＬ命令のセットを生成するための手段を備え、ＬＬ命令の前記セットが、前記条件の結果に基づいてアドレスを予約させ、前記予約されたアドレスから前記テクスチャをロードさせる、請求項３６に記載の装置。
【請求項３８】
前記変換されたＬＬ命令を出力するための前記手段が、前記変換されたＬＬ命令をメモリに記憶するための手段を備える、請求項３１に記載の装置。
【請求項３９】
前記ＨＬ命令を変換するための前記手段が、前記ＬＬ命令を生成するために前記ＨＬ命令をランタイムコンパイルするための手段を備え、グラフィックス処理ユニット上で前記出力されたＬＬ命令を実行することをさらに備える、請求項３１に記載の装置。
【請求項４０】
前記出力されたＬＬ命令を実行するための前記手段が、前記コンパイルされた命令を、前記ＨＬ  ＣＦ命令の条件と前記出力されたＬＬ命令の座標とが依存しない命令より前に実行されるようにスケジュールするための手段を備える、請求項３９に記載の装置。