【手続補正書】
【提出日】平成28年3月14日(2016.3.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１つまたは複数のプロセッサによって、メモリ転送動作の少なくとも一部を行うためのメモリ転送モードを選択することと、ここにおいて、前記メモリ転送モードは、インターリーブメモリ転送モードと順次的メモリ転送モードとを含む少なくとも２つの異なるメモリ転送モードのセットから選択され、ここにおいて、前記順次的メモリ転送モードは、別個の時間間隔の間に、複数の連続的な読取り要求のグループを出すことと、複数の連続的な書込み要求のグループを出すこととを交互に行うことを含む、
グラフィックスプロセッシングユニット（ＧＰＵ）によって、前記選択されたメモリ転送モードに基づいて前記メモリ転送動作を行うことと
を備える方法。
【請求項２】
前記１つまたは複数のプロセッサによって前記メモリ転送モードを選択することは、
前記１つまたは複数のプロセッサによって、前記メモリ転送動作によって転送されるべきデータの量に基づいて前記メモリ転送モードを選択することを備える、請求項１に記載の方法。
【請求項３】
前記１つまたは複数のプロセッサによって、前記メモリ転送動作によって転送されるべきデータの前記量に基づいて前記メモリ転送モードを選択することは、
前記メモリ転送動作によって転送されるべきデータの前記量が閾値より大きい場合、前記１つまたは複数のプロセッサによって、前記メモリ転送モードとして前記順次的メモリ転送モードを選択することと、
前記メモリ転送動作によって転送されるべきデータの前記量が前記閾値より大きくない場合、前記１つまたは複数のプロセッサによって、前記メモリ転送モードとして前記インターリーブメモリ転送モードを選択することとを備える、請求項２に記載の方法。
【請求項４】
前記１つまたは複数のプロセッサによって前記メモリ転送モードを選択することは、
前記１つまたは複数のプロセッサによって、メモリ転送動作の宛先領域が有する固定されたスクリーン整列されたバッファ領域との重複の量に基づいて、前記固定されたスクリーン整列されたバッファ領域に関して前記メモリ転送動作を行うためのメモリ転送モードを選択することを備える、請求項１に記載の方法。
【請求項５】
前記メモリ転送動作を行うことはシェーダプログラムを実行することを備え、
前記１つまたは複数のプロセッサによって、前記メモリ転送モードを選択することは、前記シェーダプログラムの実行が前記メモリ転送動作の性能のボトルネックになる可能性が高いかどうかの決定に基づいて、前記メモリ転送モードを選択することを備える、請求項１に記載の方法。
【請求項６】
前記１つまたは複数のプロセッサによって、前記シェーダプログラムの前記実行が前記メモリ転送動作の前記性能のボトルネックになる可能性が高いかどうかの前記決定に基づいて、前記メモリ転送モードを選択することは、
前記シェーダプログラムの前記実行が前記メモリ転送動作の前記性能のボトルネックになる可能性が高くないと決定したことに応答して、前記メモリ転送モードとして前記順次的メモリ転送モードを選択することと、
前記シェーダプログラムの前記実行が前記メモリ転送動作の前記性能のボトルネックになる可能性が高いと決定したことに応答して、前記メモリ転送モードとして前記インターリーブメモリ転送モードを選択することとを備える、請求項５に記載の方法。
【請求項７】
前記メモリ転送動作を行うことはシェーダプログラムを実行することを備え、
前記１つまたは複数のプロセッサによって前記メモリ転送モードを選択することは、前記メモリ転送動作を行うために使用されるシェーダプログラムのサイズおよび前記メモリ転送動作を行うために使用される前記シェーダプログラムの複雑さの少なくとも１つに基づいて、前記メモリ転送モードを選択することを備える、請求項１に記載の方法。
【請求項８】
前記１つまたは複数のプロセッサによって、前記メモリ転送動作を行うために使用される前記シェーダプログラムの前記サイズおよび前記メモリ転送動作を行うために使用される前記シェーダプログラムの前記複雑さの前記少なくとも１つに基づいて、前記メモリ転送モードを選択することは、
前記シェーダプログラムの前記サイズと前記シェーダプログラムの前記複雑さの前記少なくとも１つが閾値より小さい場合、前記１つまたは複数のプロセッサによって、前記メモリ転送モードとして前記順次的メモリ転送モードを選択することと、
前記シェーダプログラムの前記サイズと前記シェーダプログラムの前記複雑さの前記少なくとも１つが前記閾値より小さくない場合、前記１つまたは複数のプロセッサによって、前記メモリ転送モードとして前記インターリーブメモリ転送モードを選択することとを備える、請求項７に記載の方法。
【請求項９】
前記ＧＰＵによって前記メモリ転送動作を行うことは、
前記ＧＰＵによって、前記メモリ転送動作を行うための前記メモリ転送モードとしてインターリーブメモリ転送モードが選択されたことに応答して、前記インターリーブメモリ転送モードに基づいて前記メモリ転送動作を行うことと、
前記ＧＰＵによって、前記メモリ転送動作を行うための前記メモリ転送モードとして順次的メモリ転送モードが選択されたことに応答して、前記順次的メモリ転送モードに基づいて前記メモリ転送動作を行うこととを備える、請求項１に記載の方法。
【請求項１０】
前記ＧＰＵによって、前記インターリーブメモリ転送モードに基づいて前記メモリ転送動作を行うことは、生産者−消費者パラダイムに基づいて、読取りエンジンに読取り要求を出させ、書込みエンジンに書込み要求を出させることを備え、
前記ＧＰＵによって、前記順次的メモリ転送モードに基づいて前記メモリ転送動作を行うことは、相互排除のパラダイムに基づいて、前記読取りエンジンに読取り要求を出させ、前記書込みエンジンに書込み要求を出させることを備える、請求項９に記載の方法。
【請求項１１】
前記ＧＰＵによって、前記インターリーブメモリ転送モードに基づいて前記メモリ転送動作を行うことは、前記メモリ転送動作のための書込み要求を出すために十分なソースデータが前記ＧＰＵによってメモリから受け取られるたびに、前記書込みエンジンによって、少なくとも１つの他の書込み要求に対して後で受け取られるべき追加のソースデータを待機することなく、それぞれの前記ソースデータを消費することを備え、
前記ＧＰＵによって、前記順次的メモリ転送モードに基づいて前記メモリ転送動作を行うことは、前記メモリ転送動作の少なくとも一部に対して、前記メモリ転送動作のための書込み要求を出すために十分なソースデータを前記ＧＰＵが前記メモリから受け取ったことに応答して、前記書込みエンジンによって、少なくとも１つの他の書込み要求を出すために十分な追加のソースデータが後で受け取られるまで前記ソースデータの消費を延期することを備える、請求項９に記載の方法。
【請求項１２】
前記ＧＰＵによって、前記インターリーブメモリ転送モードに基づいて前記メモリ転送動作を行うことは、前記メモリ転送動作のための書込み要求を出すために十分なソースデータを書込みエンジンが消費するたびに、読取りエンジンによって、少なくとも１つの他の書込み要求に対して前記書込みエンジンによって後で消費されるべき追加のソースデータを待機することなく、読取り要求を出すことを備え、
前記ＧＰＵによって、前記順次的メモリ転送モードに基づいて前記メモリ転送動作を行うことは、前記メモリ転送動作の少なくとも一部に対して、前記メモリ転送動作のための書込み要求を出すために十分なソースデータを前記書込みエンジンが消費したことに応答して、読取りエンジンによって、少なくとも１つの他の書込み要求を出すために十分な追加のソースデータが前記書込みエンジンによって後で消費されるまで、後続の読取り要求の発行を延期することを備える、請求項９に記載の方法。
【請求項１３】
前記ＧＰＵは、前記ＧＰＵによってメモリに出された読取り要求に応答して受け取られたソースデータを記憶するように構成されるバッファを備え、
前記ＧＰＵによって、前記インターリーブメモリ転送モードに基づいて前記メモリ転送動作を行うことは、
１つまたは複数の読取り要求を出すことと、
前記複数の読取り要求に応答して前記メモリから受け取られたソースデータを前記バッファに配置することと、
前記複数の読取り要求の各々について、前記複数の読取り要求のそれぞれ１つに対して前記ソースデータが前記バッファに配置されたことに応答して、前記バッファに配置された前記ソースデータを消費し、前記消費されたソースデータに基づいて書込み要求を出すことと、
複数の書込み要求の各々について、前記書込み要求のそれぞれ１つに対してソースデータが前記バッファから消費されたことに応答して、後続の読取り要求を出すことと
を備え、
前記ＧＰＵによって、前記順次的メモリ転送モードに基づいて前記メモリ転送動作を行うことは、
複数の読取り要求を出すことと、
前記複数の読取り要求に応答して前記メモリから受け取られたソースデータを前記バッファに配置することと、
前記バッファを埋めるために十分な読取り要求が出されたことを検出したことに応答して、読取り要求を出すことを止めることと、
前記バッファが満たされていることを検出したことに応答して、前記消費されたソースデータに基づいて、前記バッファ中のソースデータを消費し、複数の書込み要求を出すことと、
前記バッファが空であることを検出したことに応答して、前記バッファ中のソースデータを消費して書込み要求を出すことを止めることと、
前記バッファが空であることを検出したことに応答して、読取り要求の発行を再開することと
を備える、請求項１に記載の方法。
【請求項１４】
少なくとも２つの異なるメモリ転送モードの前記セットから選択された第１のメモリ転送モードを使用して、前記メモリ転送動作の第１の部分を行うことと、
少なくとも２つの異なるメモリ転送モードの前記セットから選択された第２のメモリ転送モードを使用して、前記メモリ転送動作の第２の部分を行うこととを備える、請求項１に記載の方法。
【請求項１５】
前記ＧＰＵによって前記メモリ転送動作を行うことは、
前記選択されたメモリ転送モードに基づいて、前記メモリ転送動作の間にメモリから取り出されるソースデータをバッファリングするために使用されるキャッシュのキャッシュラインサイズを選択することと、
前記選択されたキャッシュラインサイズに基づいて、前記メモリ転送動作のために前記キャッシュを構成することとを備える、請求項１に記載の方法。
【請求項１６】
前記キャッシュラインサイズを選択することは、
前記順次的メモリ転送モードが、前記メモリ転送動作を行うための前記メモリ転送モードとして選択されたことに応答して、前記キャッシュの容量全体に等しいキャッシュラインサイズを選択することと、
前記インターリーブメモリ転送モードが、前記メモリ転送動作を行うための前記メモリ転送モードとして選択されたことに応答して、前記キャッシュの前記容量全体より小さいキャッシュラインサイズを選択することとを備える、請求項１５に記載の方法。
【請求項１７】
前記１つまたは複数のプロセッサは前記ＧＰＵを備え、前記１つまたは複数のプロセッサによって前記メモリ転送モードを選択することは、前記ＧＰＵによって、前記メモリ転送動作の前記少なくとも一部を行うための前記メモリ転送モードを選択することを備える、請求項１に記載の方法。
【請求項１８】
前記１つまたは複数のプロセッサはＣＰＵを備え、前記１つまたは複数のプロセッサによって前記メモリ転送モードを選択することは、前記ＣＰＵによって、メモリ転送動作の前記少なくとも一部を行うための前記メモリ転送モードを選択することを備え、前記ＧＰＵに、前記選択されたメモリ転送モードに基づいて前記メモリ転送動作を行わせることをさらに備える、請求項１に記載の方法。
【請求項１９】
前記１つまたは複数のプロセッサによって、メモリ転送動作の少なくとも一部を行うためのメモリ転送モードを選択することと、ここにおいて、前記メモリ転送モードは、インターリーブメモリ転送モードと順次的メモリ転送モードとを含む少なくとも２つの異なるメモリ転送モードのセットから選択される、
グラフィックスプロセッシングユニット（ＧＰＵ）によって、前記選択されたメモリ転送モードに基づいて前記メモリ転送動作を行うことと、を備え、ここにおいて、前記１つまたは複数のプロセッサによって、前記メモリ転送動作の前記宛先領域が有する前記固定されたスクリーン整列されたバッファ領域との重複の量に基づいて、前記メモリ転送モードを選択することは、
前記１つまたは複数のプロセッサによって、メモリ転送動作の宛先領域が有する固定されたスクリーン整列されたバッファ領域との重複の量に基づいて、前記固定されたスクリーン整列されたバッファ領域に関して前記メモリ転送動作を行うためのメモリ転送モードを選択することと、
前記宛先領域が前記固定されたスクリーン整列されたバッファ領域を完全に覆う場合、前記メモリ転送モードとして前記順次的メモリ転送モードを選択することと、
前記宛先領域が前記固定されたスクリーン整列されたバッファ領域を完全には覆わない場合、前記メモリ転送モードとして前記インターリーブメモリ転送モードを選択することと、
を備える、デバイス。
【請求項２０】
１つまたは複数のプロセッサによって、メモリ転送動作の少なくとも一部を行うためのメモリ転送モードを選択することと、ここにおいて、前記メモリ転送モードは、インターリーブメモリ転送モードと順次的メモリ転送モードとを含む少なくとも２つの異なるメモリ転送モードのセットから選択される、
グラフィックスプロセッシングユニット（ＧＰＵ）によって、前記選択されたメモリ転送モードに基づいて前記メモリ転送動作を行うことと、を備え、ここにおいて、前記ＧＰＵによって前記メモリ転送動作を行うことは、
前記ＧＰＵによって、前記メモリ転送動作を行うための前記メモリ転送モードとしてインターリーブメモリ転送モードが選択されたことに応答して、前記インターリーブメモリ転送モードに基づいて前記メモリ転送動作を行うことと、ここにおいて、前記インターリーブメモリ転送モードに基づいた前記メモリ転送動作は、書込み要求を出すために十分なソースデータを前記ＧＰＵがメモリから受け取ったことに応答して、前記書込みエンジンに前記書込み要求を出させることと、前記書込み要求を出すために十分な前記ソースデータを前記書込みエンジンが消費したことに応答して、前記読取りエンジンに読取り要求を出させることとを備える、
前記ＧＰＵによって、前記メモリ転送動作を行うための前記メモリ転送モードとして順次的メモリ転送モードが選択されたことに応答して、前記順次的メモリ転送モードに基づいて前記メモリ転送動作を行うことと、ここにおいて、前記順次的メモリ転送モードに基づいた前記メモリ転送動作は、前記読取りエンジンおよび前記書込みエンジンに、別個の時間間隔の間に、複数の連続的な読取り要求のグループを出すことと、複数の連続的な書込み要求のグループを出すことと、を交互に行わせることを備える、
を備える方法。
【請求項２１】
少なくとも１つのメモリと、
前記少なくとも１つのメモリに関してメモリ転送動作の少なくとも一部を行うためのメモリ転送モードを選択するように構成される１つまたは複数のプロセッサと、ここにおいて、前記メモリ転送モードは、インターリーブメモリ転送モードと順次的メモリ転送モードとを含む少なくとも２つの異なるメモリ転送モードのセットから選択され、ここにおいて、前記順次的メモリ転送モードは、別個の時間間隔の間に、複数の連続的な読取り要求のグループを出すことと、複数の連続的な書込み要求のグループを出すこととを交互に行うことを含む、
前記選択されたメモリ転送モードに基づいて前記メモリ転送動作を行うように構成されるグラフィックスプロセッシングユニット（ＧＰＵ）と、
を備えるデバイス。
【請求項２２】
前記１つまたは複数のプロセッサはさらに、前記メモリ転送動作によって転送されるべきデータの量に基づいて前記メモリ転送モードを選択するように構成される、請求項２１に記載のデバイス。
【請求項２３】
前記１つまたは複数のプロセッサはさらに、前記メモリ転送動作によって転送されるべきデータの前記量が閾値より大きい場合、前記メモリ転送モードとして前記順次的メモリ転送モードを選択し、前記メモリ転送動作によって転送されるべきデータの前記量が前記閾値より大きくない場合、前記メモリ転送モードとして前記インターリーブメモリ転送モードを選択するように構成される、請求項２２に記載のデバイス。
【請求項２４】
前記１つまたは複数のプロセッサはさらに、メモリ転送動作の宛先領域が有する固定されたスクリーン整列されたバッファ領域との重複の量に基づいて、前記固定されたスクリーン整列されたバッファ領域に関して前記メモリ転送動作を行うためのメモリ転送モードを選択するように構成される、請求項２１に記載のデバイス。
【請求項２５】
前記１つまたは複数のプロセッサはさらに、前記宛先領域が前記固定されたスクリーン整列されたバッファ領域を完全に覆う場合、前記メモリ転送モードとして前記順次的メモリ転送モードを選択し、前記宛先領域が前記固定されたスクリーン整列されたバッファ領域を完全には覆わない場合、前記メモリ転送モードとして前記インターリーブメモリ転送モードを選択するように構成される、請求項２４に記載のデバイス。
【請求項２６】
前記ＧＰＵはさらに、前記メモリ転送動作を行うためにシェーダプログラムを実行するように構成され、前記１つまたは複数のプロセッサはさらに、前記シェーダプログラムの実行が前記メモリ転送動作の性能のボトルネックになる可能性が高いかどうかの決定に基づいて、前記メモリ転送モードを選択するように構成される、請求項２１に記載のデバイス。
【請求項２７】
前記１つまたは複数のプロセッサはさらに、前記シェーダプログラムの前記実行が前記メモリ転送動作の性能のボトルネックになる可能性が高くないと決定したことに応答して、前記メモリ転送モードとして前記順次的メモリ転送モードを選択し、前記シェーダプログラムの前記実行が前記メモリ転送動作の性能のボトルネックになる可能性が高いと決定したことに応答して、前記メモリ転送モードとして前記インターリーブメモリ転送モードを選択するように構成される、請求項２６に記載のデバイス。
【請求項２８】
前記ＧＰＵはさらに、前記メモリ転送動作を行うためにシェーダプログラムを実行するように構成され、前記１つまたは複数のプロセッサはさらに、前記メモリ転送動作を行うために使用されるシェーダプログラムのサイズおよび前記メモリ転送動作を行うために使用される前記シェーダプログラムの複雑さの少なくとも１つに基づいて、前記メモリ転送モードを選択するように構成される、請求項２１に記載のデバイス。
【請求項２９】
前記１つまたは複数のプロセッサはさらに、前記シェーダプログラムの前記サイズと前記シェーダプログラムの前記複雑さの前記少なくとも１つが閾値より小さい場合、前記メモリ転送モードとして前記順次的メモリ転送モードを選択し、前記シェーダプログラムの前記サイズと前記シェーダプログラムの前記複雑さの前記少なくとも１つが前記閾値より小さくない場合、前記メモリ転送モードとして前記インターリーブメモリ転送モードを選択するように構成される、請求項２８に記載のデバイス。
【請求項３０】
前記ＧＰＵはさらに、前記メモリ転送動作を行うための前記メモリ転送モードとしてインターリーブメモリ転送モードが選択されたことに応答して、前記インターリーブメモリ転送モードに基づいて前記メモリ転送動作を行い、前記メモリ転送動作を行うための前記メモリ転送モードとして順次的メモリ転送モードが選択されたことに応答して、前記順次的メモリ転送モードに基づいて前記メモリ転送動作を行うように構成される、請求項２１に記載のデバイス。
【請求項３１】
前記ＧＰＵはさらに、前記インターリーブメモリ転送モードに基づいて前記メモリ転送動作を行うときに、生産者−消費者パラダイムに基づいて、読取りエンジンに読取り要求を出させ、書込みエンジンに書込み要求を出させるように構成され、
前記ＧＰＵはさらに、前記順次的メモリ転送モードに基づいて前記メモリ転送動作を行うときに、相互排除のパラダイムに基づいて、前記読取りエンジンに読取り要求を出させ、前記書込みエンジンに書込み要求を出させるように構成される、請求項３０に記載のデバイス。
【請求項３２】
前記ＧＰＵはさらに、前記インターリーブメモリ転送モードに基づいて前記メモリ転送動作を行うときに、書込み要求を出すために十分なソースデータを前記ＧＰＵがメモリから受け取ったことに応答して、前記書込みエンジンに前記書込み要求を出させ、書込み要求を出すために十分な、前記メモリから受け取られたソースデータを前記書込みエンジンが消費したことに応答して、前記読取りエンジンに読取り要求を出させるように構成され、
前記ＧＰＵはさらに、前記順次的メモリ転送モードに基づいて前記メモリ転送動作を行うときに、前記読取りエンジンおよび前記書込みエンジンに、別個の時間間隔の間に、複数の連続的な読取り要求のグループを出すことと、複数の連続的な読取り要求書込み要求のグループを出すこととを、交互に行わせるように構成される、請求項３０に記載のデバイス。
【請求項３３】
前記ＧＰＵはさらに、前記インターリーブメモリ転送モードに基づいて前記メモリ転送動作を行うときに、前記メモリ転送動作のための書込み要求を出すために十分なソースデータが前記ＧＰＵによってメモリから受け取られるたびに、前記書込みエンジンによって、少なくとも１つの他の書込み要求に対して後で受け取られるべき追加のソースデータを待機することなく、それぞれの前記ソースデータを消費するように構成され、
前記ＧＰＵはさらに、前記順次的メモリ転送モードに基づいて前記メモリ転送動作を行うときに、前記メモリ転送動作の少なくとも一部に対して、前記メモリ転送動作のための書込み要求を出すために十分なソースデータを前記ＧＰＵが前記メモリから受け取ったことに応答して、前記書込みエンジンによって、少なくとも１つの他の書込み要求を出すために十分な追加のソースデータが後で受け取られるまで前記ソースデータの消費を延期するように構成される、請求項３０に記載のデバイス。
【請求項３４】
前記ＧＰＵはさらに、前記インターリーブメモリ転送モードに基づいて前記メモリ転送動作を行うときに、前記メモリ転送動作のための書込み要求を出すために十分なソースデータを書込みエンジンが消費するたびに、読取りエンジンによって、少なくとも１つの他の書込み要求に対して前記書込みエンジンによって後で消費されるべき追加のソースデータを待機することなく、読取り要求を出すように構成され、
前記ＧＰＵはさらに、前記順次的メモリ転送モードに基づいて前記メモリ転送動作を行うときに、前記メモリ転送動作の少なくとも一部に対して、前記メモリ転送動作のための書込み要求を出すために十分なソースデータを前記書込みエンジンが消費したことに応答して、前記読取りエンジンによって、少なくとも１つの他の書込み要求を出すために十分なソースデータが前記書込みエンジンによって後で消費されるまで、後続の読取り要求の発行を延期するように構成される、請求項３０に記載のデバイス。
【請求項３５】
前記ＧＰＵは、前記ＧＰＵによってメモリに出された読取り要求に応答して受け取られたソースデータを記憶するように構成されるバッファを備え、
前記ＧＰＵはさらに、前記インターリーブメモリ転送モードに基づいて前記メモリ転送動作を行うときに、
１つまたは複数の読取り要求を出し、
前記複数の読取り要求に応答して前記メモリから受け取られたソースデータを前記バッファに配置し、
前記複数の読取り要求の各々について、前記複数の読取り要求のそれぞれ１つに対して前記ソースデータが前記バッファに配置されたことに応答して、前記バッファに配置された前記ソースデータを消費し、前記消費されたソースデータに基づいて書込み要求を出し、
複数の書込み要求の各々について、前記書込み要求のそれぞれ１つに対して前記ソースデータが前記バッファから消費されたことに応答して、後続の読取り要求を出す
ように構成され、
前記ＧＰＵはさらに、前記順次的メモリ転送モードに基づいて前記メモリ転送動作を行うときに、
複数の読取り要求を出し、
前記複数の読取り要求に応答して前記メモリから受け取られたソースデータを前記バッファに配置し、
前記バッファを埋めるために十分な読取り要求が出されたことを検出したことに応答して、読取り要求を出すことを止め、
前記バッファが満たされていることを検出したことに応答して、前記消費されたソースデータに基づいて、前記バッファ中のソースデータを消費し、複数の書込み要求を出し、
前記バッファが空であることを検出したことに応答して、前記バッファ中のソースデータを消費して書込み要求を出すことを止め、
前記バッファが空であることを検出したことに応答して、読取り要求の発行を再開する
ように構成される、請求項２１に記載のデバイス。
【請求項３６】
前記ＧＰＵはさらに、少なくとも２つの異なるメモリ転送モードの前記セットから選択された第１のメモリ転送モードを使用して、前記メモリ転送動作の第１の部分を行い、少なくとも２つの異なるメモリ転送モードの前記セットから選択された第２のメモリ転送モードを使用して、前記メモリ転送動作の第２の部分を行うように構成される、請求項２１に記載のデバイス。
【請求項３７】
前記ＧＰＵはさらに、前記選択されたメモリ転送モードに基づいて、前記メモリ転送動作の間にメモリから取り出されるソースデータをバッファリングするために使用されるキャッシュのキャッシュラインサイズを選択し、前記選択されたキャッシュラインサイズに基づいて、前記メモリ転送動作のために前記キャッシュを構成するように構成される、請求項２１に記載のデバイス。
【請求項３８】
前記ＧＰＵはさらに、前記順次的メモリ転送モードが前記メモリ転送動作を行うための前記メモリ転送モードとして選択されたことに応答して、前記キャッシュの容量全体に等しいキャッシュラインサイズを選択し、前記インターリーブメモリ転送モードが前記メモリ転送動作を行うための前記メモリ転送モードとして選択されたことに応答して、前記キャッシュの前記容量全体より小さいキャッシュラインサイズを選択するように構成される、請求項３７に記載のデバイス。
【請求項３９】
前記１つまたは複数のプロセッサは前記ＧＰＵを備え、前記ＧＰＵはさらに、メモリ転送動作の前記少なくとも一部を行うための前記メモリ転送モードを選択するように構成される、請求項２１に記載のデバイス。
【請求項４０】
前記１つまたは複数のプロセッサは、前記メモリ転送動作の前記少なくとも一部を行うための前記メモリ転送モードを選択し、前記ＧＰＵに、前記メモリ転送モードに基づいて前記メモリ転送動作を行わせるように構成される、ＣＰＵを備える、請求項２１に記載のデバイス。
【請求項４１】
ワイヤレス通信デバイスを備える、請求項２１に記載のデバイス。
【請求項４２】
携帯電話ハンドセットを備える、請求項２１に記載のデバイス。
【請求項４３】
メモリ転送動作の少なくとも一部を行うためのメモリ転送モードを選択するための手段と、ここにおいて、前記メモリ転送モードは、インターリーブメモリ転送モードと順次的メモリ転送モードとを含む少なくとも２つの異なるメモリ転送モードのセットから選択され、ここにおいて、前記順次的メモリ転送モードは、別個の時間間隔の間に、複数の連続的な読取り要求のグループを出すことと、複数の連続的な書込み要求のグループを出すこととを交互に行うことを含む、
前記選択されたメモリ転送モードに基づいて前記メモリ転送動作を行うための手段とを備える装置。
【請求項４４】
前記メモリ転送モードを選択するための前記手段は、
前記メモリ転送動作によって転送されるべきデータの量、前記メモリ転送動作を行うために使用されるシェーダプログラムのサイズ、および前記メモリ転送動作を行うために使用される前記シェーダプログラムの複雑さの少なくとも１つに基づいて、前記メモリ転送モードを選択するための手段を備える、請求項４３に記載の装置。
【請求項４５】
前記メモリ転送モードを選択するための前記手段は、
メモリ転送動作の宛先領域が有する固定されたスクリーン整列されたバッファ領域との重複の量に基づいて、前記固定されたスクリーン整列されたバッファ領域に関して前記メモリ転送動作を行うためのメモリ転送モードを選択するための手段を備える、請求項４３に記載の装置。
【請求項４６】
前記メモリ転送動作を行うための前記手段は、グラフィックスプロセッシングユニット（ＧＰＵ）を備え、
前記メモリ転送モードを選択するための前記手段は、ＣＰＵと前記ＧＰＵの少なくとも１つを備える、請求項４３に記載の装置。
【請求項４７】
実行されたとき、１つまたは複数のプロセッサに、
メモリ転送動作の少なくとも一部を行うためのメモリ転送モードを選択させ、ここにおいて、前記メモリ転送モードは、インターリーブメモリ転送モードと順次的メモリ転送モードとを含む少なくとも２つの異なるメモリ転送モードのセットから選択され、ここにおいて、前記順次的メモリ転送モードは、別個の時間間隔の間に、複数の連続的な読取り要求のグループを出すことと、複数の連続的な書込み要求のグループを出すこととを交互に行うことを含む、
前記選択されたメモリ転送モードに基づいて前記メモリ転送動作を行わせる命令を記憶したコンピュータ可読記憶媒体。
【請求項４８】
実行されたとき、前記１つまたは複数のプロセッサに、前記メモリ転送モードを選択させる前記命令は、実行されたとき、前記１つまたは複数のプロセッサに、
前記メモリ転送動作によって転送されるべきデータの量、前記メモリ転送動作を行うために使用されるシェーダプログラムのサイズ、および前記メモリ転送動作を行うために使用される前記シェーダプログラムの複雑さの少なくとも１つに基づいて、前記メモリ転送モードを選択させる命令を備える、請求項４７に記載のコンピュータ可読記憶媒体。
【請求項４９】
実行されたとき、前記１つまたは複数のプロセッサに、前記メモリ転送モードを選択させる前記命令は、実行されたとき、前記１つまたは複数のプロセッサに、
メモリ転送動作の宛先領域が有する固定されたスクリーン整列されたバッファ領域との重複の量に基づいて、前記固定されたスクリーン整列されたバッファ領域に関して前記メモリ転送動作を行うためのメモリ転送モードを選択させる命令を備える、請求項４７に記載のコンピュータ可読記憶媒体。
【請求項５０】
実行されたとき、前記１つまたは複数のプロセッサに、前記メモリ転送動作を行わせる前記命令は、実行されたとき、グラフィックスプロセッシングユニット（ＧＰＵ）に、前記選択されたメモリ転送モードに基づいて前記メモリ転送動作を行わせる命令を備え、
実行されたとき、前記１つまたは複数のプロセッサに、前記メモリ転送モードを選択させる前記命令は、実行されたとき、ＣＰＵと前記ＧＰＵの少なくとも１つに、メモリ転送動作の前記少なくとも一部を行うための前記メモリ転送モードを選択させる命令を備える、請求項４７に記載のコンピュータ可読記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０２５４
【補正方法】変更
【補正の内容】
【０２５４】
[0277]  様々な態様および例が説明されてきた。しかしながら、以下の特許請求の範囲から逸脱することなく、本開示の構造または技法に変更が行われ得る。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[Ｃ１]  １つまたは複数のプロセッサによって、メモリ転送動作の少なくとも一部を行うためのメモリ転送モードを選択することと、ここにおいて、前記メモリ転送モードは、インターリーブメモリ転送モードと順次的メモリ転送モードとを含む少なくとも２つの異なるメモリ転送モードのセットから選択される、
グラフィックスプロセッシングユニット（ＧＰＵ）によって、前記選択されたメモリ転送モードに基づいて前記メモリ転送動作を行うことと
を備える方法。
[Ｃ２]  前記１つまたは複数のプロセッサによって前記メモリ転送モードを選択することが、
前記１つまたは複数のプロセッサによって、前記メモリ転送動作によって転送されるべきデータの量に基づいて前記メモリ転送モードを選択することを備える、Ｃ１に記載の方法。
[Ｃ３]  前記１つまたは複数のプロセッサによって、前記メモリ転送動作によって転送されるべきデータの前記量に基づいて前記メモリ転送モードを選択することが、
前記メモリ転送動作によって転送されるべきデータの前記量が閾値より大きい場合、前記１つまたは複数のプロセッサによって、前記メモリ転送モードとして前記順次的メモリ転送モードを選択することと、
前記メモリ転送動作によって転送されるべきデータの前記量が前記閾値より大きくない場合、前記１つまたは複数のプロセッサによって、前記メモリ転送モードとして前記インターリーブメモリ転送モードを選択することとを備える、Ｃ２に記載の方法。
[Ｃ４]  前記１つまたは複数のプロセッサによって前記メモリ転送モードを選択することが、
前記１つまたは複数のプロセッサによって、メモリ転送動作の宛先領域が有する固定されたスクリーン整列されたバッファ領域との重複の量に基づいて、前記固定されたスクリーン整列されたバッファ領域に関して前記メモリ転送動作を行うためのメモリ転送モードを選択することを備える、Ｃ１に記載の方法。
[Ｃ５]  前記１つまたは複数のプロセッサによって、前記メモリ転送動作の前記宛先領域が有する前記固定されたスクリーン整列されたバッファ領域との重複の量に基づいて、前記メモリ転送モードを選択することが、
前記宛先領域が前記固定されたスクリーン整列されたバッファ領域を完全に覆う場合、前記メモリ転送モードとして前記順次的メモリ転送モードを選択することと、
前記宛先領域が前記固定されたスクリーン整列されたバッファ領域を完全には覆わない場合、前記メモリ転送モードとして前記インターリーブメモリ転送モードを選択することとを備える、Ｃ４に記載の方法。
[Ｃ６]  前記メモリ転送動作を行うことがシェーダプログラムを実行することを備え、
前記１つまたは複数のプロセッサによって、前記メモリ転送モードを選択することが、前記シェーダプログラムの実行が前記メモリ転送動作の性能のボトルネックになる可能性が高いかどうかの決定に基づいて、前記メモリ転送モードを選択することを備える、Ｃ１に記載の方法。
[Ｃ７]  前記１つまたは複数のプロセッサによって、前記シェーダプログラムの前記実行が前記メモリ転送動作の前記性能のボトルネックになる可能性が高いかどうかの前記決定に基づいて、前記メモリ転送モードを選択することが、
前記シェーダプログラムの前記実行が前記メモリ転送動作の前記性能のボトルネックになる可能性が高くないと決定したことに応答して、前記メモリ転送モードとして前記順次的メモリ転送モードを選択することと、
前記シェーダプログラムの前記実行が前記メモリ転送動作の前記性能のボトルネックになる可能性が高いと決定したことに応答して、前記メモリ転送モードとして前記インターリーブメモリ転送モードを選択することとを備える、Ｃ６に記載の方法。
[Ｃ８]  前記メモリ転送動作を行うことがシェーダプログラムを実行することを備え、
前記１つまたは複数のプロセッサによって前記メモリ転送モードを選択することが、前記メモリ転送動作を行うために使用されるシェーダプログラムのサイズおよび前記メモリ転送動作を行うために使用される前記シェーダプログラムの複雑さの少なくとも１つに基づいて、前記メモリ転送モードを選択することを備える、Ｃ１に記載の方法。
[Ｃ９]  前記１つまたは複数のプロセッサによって、前記メモリ転送動作を行うために使用される前記シェーダプログラムの前記サイズおよび前記メモリ転送動作を行うために使用される前記シェーダプログラムの前記複雑さの前記少なくとも１つに基づいて、前記メモリ転送モードを選択することが、
前記シェーダプログラムの前記サイズと前記シェーダプログラムの前記複雑さの前記少なくとも１つが閾値より小さい場合、前記１つまたは複数のプロセッサによって、前記メモリ転送モードとして前記順次的メモリ転送モードを選択することと、
前記シェーダプログラムの前記サイズと前記シェーダプログラムの前記複雑さの前記少なくとも１つが前記閾値より小さくない場合、前記１つまたは複数のプロセッサによって、前記メモリ転送モードとして前記インターリーブメモリ転送モードを選択することとを備える、Ｃ８に記載の方法。
[Ｃ１０]  前記ＧＰＵによって前記メモリ転送動作を行うことが、
前記ＧＰＵによって、前記メモリ転送動作を行うための前記メモリ転送モードとしてインターリーブメモリ転送モードが選択されたことに応答して、前記インターリーブメモリ転送モードに基づいて前記メモリ転送動作を行うことと、
前記ＧＰＵによって、前記メモリ転送動作を行うための前記メモリ転送モードとして順次的メモリ転送モードが選択されたことに応答して、前記順次的メモリ転送モードに基づいて前記メモリ転送動作を行うこととを備える、Ｃ１に記載の方法。
[Ｃ１１]  前記ＧＰＵによって、前記インターリーブメモリ転送モードに基づいて前記メモリ転送動作を行うことが、生産者−消費者パラダイムに基づいて、読取りエンジンに読取り要求を出させ、書込みエンジンに書込み要求を出させることを備え、
前記ＧＰＵによって、前記順次的メモリ転送モードに基づいて前記メモリ転送動作を行うことが、相互排除のパラダイムに基づいて、前記読取りエンジンに読取り要求を出させ、前記書込みエンジンに書込み要求を出させることを備える、Ｃ１０に記載の方法。
[Ｃ１２]  前記ＧＰＵによって、前記インターリーブメモリ転送モードに基づいて前記メモリ転送動作を行うことが、書込み要求を出すために十分なソースデータを前記ＧＰＵがメモリから受け取ったことに応答して、前記書込みエンジンに前記書込み要求を出させることと、前記書込み要求を出すために十分な前記ソースデータを前記書込みエンジンが消費したことに応答して、前記読取りエンジンに読取り要求を出させることとを備え、
前記ＧＰＵによって、前記順次的メモリ転送モードに基づいて前記メモリ転送動作を行うことが、前記読取りエンジンおよび前記書込みエンジンに、別の時間間隔の間に、複数の連続的な読取り要求のグループを出すことと、複数の連続的な書込み要求のグループを出すこととを、交互に行わせることを備える、Ｃ１０に記載の方法。
[Ｃ１３]  前記ＧＰＵによって、前記インターリーブメモリ転送モードに基づいて前記メモリ転送動作を行うことが、前記メモリ転送動作のための書込み要求を出すために十分なソースデータが前記ＧＰＵによってメモリから受け取られるたびに、前記書込みエンジンによって、少なくとも１つの他の書込み要求に対して後で受け取られるべき追加のソースデータを待機することなく、それぞれの前記ソースデータを消費することを備え、
前記ＧＰＵによって、前記順次的メモリ転送モードに基づいて前記メモリ転送動作を行うことが、前記メモリ転送動作の少なくとも一部に対して、前記メモリ転送動作のための書込み要求を出すために十分なソースデータを前記ＧＰＵが前記メモリから受け取ったことに応答して、前記書込みエンジンによって、少なくとも１つの他の書込み要求を出すために十分な追加のソースデータが後で受け取られるまで前記ソースデータの消費を延期することを備える、Ｃ１０に記載の方法。
[Ｃ１４]  前記ＧＰＵによって、前記インターリーブメモリ転送モードに基づいて前記メモリ転送動作を行うことが、前記メモリ転送動作のための書込み要求を出すために十分なソースデータを書込みエンジンが消費するたびに、読取りエンジンによって、少なくとも１つの他の書込み要求に対して前記書込みエンジンによって後で消費されるべき追加のソースデータを待機することなく、読取り要求を出すことを備え、
前記ＧＰＵによって、前記順次的メモリ転送モードに基づいて前記メモリ転送動作を行うことが、前記メモリ転送動作の少なくとも一部に対して、前記メモリ転送動作のための書込み要求を出すために十分なソースデータを前記書込みエンジンが消費したことに応答して、読取りエンジンによって、少なくとも１つの他の書込み要求を出すために十分な追加のソースデータが前記書込みエンジンによって後で消費されるまで、後続の読取り要求の発行を延期することを備える、Ｃ１０に記載の方法。
[Ｃ１５]  前記ＧＰＵが、前記ＧＰＵによってメモリに出された読取り要求に応答して受け取られたソースデータを記憶するように構成されるバッファを備え、
前記ＧＰＵによって、前記インターリーブメモリ転送モードに基づいて前記メモリ転送動作を行うことが、
１つまたは複数の読取り要求を出すことと、
前記複数の読取り要求に応答して前記メモリから受け取られたソースデータを前記バッファに配置することと、
前記複数の読取り要求の各々について、前記複数の読取り要求のそれぞれ１つに対して前記ソースデータが前記バッファに配置されたことに応答して、前記バッファに配置された前記ソースデータを消費し、前記消費されたソースデータに基づいて書込み要求を出すことと、
複数の書込み要求の各々について、前記書込み要求のそれぞれ１つに対してソースデータが前記バッファから消費されたことに応答して、後続の読取り要求を出すことと
を備え、
前記ＧＰＵによって、前記順次的メモリ転送モードに基づいて前記メモリ転送動作を行うことが、
複数の読取り要求を出すことと、
前記複数の読取り要求に応答して前記メモリから受け取られたソースデータを前記バッファに配置することと、
前記バッファを埋めるために十分な読取り要求が出されたことを検出したことに応答して、読取り要求を出すことを止めることと、
前記バッファが満たされていることを検出したことに応答して、前記消費されたソースデータに基づいて、前記バッファ中のソースデータを消費し、複数の書込み要求を出すことと、
前記バッファが空であることを検出したことに応答して、前記バッファ中のソースデータを消費して書込み要求を出すことを止めることと、
前記バッファが空であることを検出したことに応答して、読取り要求の発行を再開することと
を備える、Ｃ１に記載の方法。
[Ｃ１６]  少なくとも２つの異なるメモリ転送モードの前記セットから選択された第１のメモリ転送モードを使用して、前記メモリ転送動作の第１の部分を行うことと、
少なくとも２つの異なるメモリ転送モードの前記セットから選択された第２のメモリ転送モードを使用して、前記メモリ転送動作の第２の部分を行うこととを備える、Ｃ１に記載の方法。
[Ｃ１７]  前記ＧＰＵによって前記メモリ転送動作を行うことが、
前記選択されたメモリ転送モードに基づいて、前記メモリ転送動作の間にメモリから取り出されるソースデータをバッファリングするために使用されるキャッシュのキャッシュラインサイズを選択することと、
前記選択されたキャッシュラインサイズに基づいて、前記メモリ転送動作のために前記キャッシュを構成することとを備える、Ｃ１に記載の方法。
[Ｃ１８]  前記キャッシュラインサイズを選択することが、
前記順次的メモリ転送モードが、前記メモリ転送動作を行うための前記メモリ転送モードとして選択されたことに応答して、前記キャッシュの容量全体に等しいキャッシュラインサイズを選択することと、
前記インターリーブメモリ転送モードが、前記メモリ転送動作を行うための前記メモリ転送モードとして選択されたことに応答して、前記キャッシュの前記容量全体より小さいキャッシュラインサイズを選択することとを備える、Ｃ１７に記載の方法。
[Ｃ１９]  前記１つまたは複数のプロセッサが前記ＧＰＵを備え、前記１つまたは複数のプロセッサによって前記メモリ転送モードを選択することが、前記ＧＰＵによって、前記メモリ転送動作の前記少なくとも一部を行うための前記メモリ転送モードを選択することを備える、Ｃ１に記載の方法。
[Ｃ２０]  前記１つまたは複数のプロセッサがＣＰＵを備え、前記１つまたは複数のプロセッサによって前記メモリ転送モードを選択することが、前記ＣＰＵによって、メモリ転送動作の前記少なくとも一部を行うための前記メモリ転送モードを選択することを備え、前記ＧＰＵに、前記選択されたメモリ転送モードに基づいて前記メモリ転送動作を行わせることをさらに備える、Ｃ１に記載の方法。
[Ｃ２１]  メモリ転送動作の少なくとも一部を行うためのメモリ転送モードを選択するように構成される１つまたは複数のプロセッサと、ここにおいて、前記メモリ転送モードは、インターリーブメモリ転送モードと順次的メモリ転送モードとを含む少なくとも２つの異なるメモリ転送モードのセットから選択される、
前記選択されたメモリ転送モードに基づいて前記メモリ転送動作を行うように構成されるグラフィックスプロセッシングユニット（ＧＰＵ）と
を備えるデバイス。
[Ｃ２２]  前記１つまたは複数のプロセッサがさらに、前記メモリ転送動作によって転送されるべきデータの量に基づいて前記メモリ転送モードを選択するように構成される、Ｃ２１に記載のデバイス。
[Ｃ２３]  前記１つまたは複数のプロセッサがさらに、前記メモリ転送動作によって転送されるべきデータの前記量が閾値より大きい場合、前記メモリ転送モードとして前記順次的メモリ転送モードを選択し、前記メモリ転送動作によって転送されるべきデータの前記量が前記閾値より大きくない場合、前記メモリ転送モードとして前記インターリーブメモリ転送モードを選択するように構成される、Ｃ２２に記載のデバイス。
[Ｃ２４]  前記１つまたは複数のプロセッサがさらに、メモリ転送動作の宛先領域が有する固定されたスクリーン整列されたバッファ領域との重複の量に基づいて、前記固定されたスクリーン整列されたバッファ領域に関して前記メモリ転送動作を行うためのメモリ転送モードを選択するように構成される、Ｃ２１に記載のデバイス。
[Ｃ２５]  前記１つまたは複数のプロセッサがさらに、前記宛先領域が前記固定されたスクリーン整列されたバッファ領域を完全に覆う場合、前記メモリ転送モードとして前記順次的メモリ転送モードを選択し、前記宛先領域が前記固定されたスクリーン整列されたバッファ領域を完全には覆わない場合、前記メモリ転送モードとして前記インターリーブメモリ転送モードを選択するように構成される、Ｃ２４に記載のデバイス。
[Ｃ２６]  前記ＧＰＵがさらに、前記メモリ転送動作を行うためにシェーダプログラムを実行するように構成され、前記１つまたは複数のプロセッサがさらに、前記シェーダプログラムの実行が前記メモリ転送動作の性能のボトルネックになる可能性が高いかどうかの決定に基づいて、前記メモリ転送モードを選択するように構成される、Ｃ２１に記載のデバイス。
[Ｃ２７]  前記１つまたは複数のプロセッサがさらに、前記シェーダプログラムの前記実行が前記メモリ転送動作の性能のボトルネックになる可能性が高くないと決定したことに応答して、前記メモリ転送モードとして前記順次的メモリ転送モードを選択し、前記シェーダプログラムの前記実行が前記メモリ転送動作の性能のボトルネックになる可能性が高いと決定したことに応答して、前記メモリ転送モードとして前記インターリーブメモリ転送モードを選択するように構成される、Ｃ２６に記載のデバイス。
[Ｃ２８]  前記ＧＰＵがさらに、前記メモリ転送動作を行うためにシェーダプログラムを実行するように構成され、前記１つまたは複数のプロセッサがさらに、前記メモリ転送動作を行うために使用されるシェーダプログラムのサイズおよび前記メモリ転送動作を行うために使用される前記シェーダプログラムの複雑さの少なくとも１つに基づいて、前記メモリ転送モードを選択するように構成される、Ｃ２１に記載のデバイス。
[Ｃ２９]  前記１つまたは複数のプロセッサがさらに、前記シェーダプログラムの前記サイズと前記シェーダプログラムの前記複雑さの前記少なくとも１つが閾値より小さい場合、前記メモリ転送モードとして前記順次的メモリ転送モードを選択し、前記シェーダプログラムの前記サイズと前記シェーダプログラムの前記複雑さの前記少なくとも１つが前記閾値より小さくない場合、前記メモリ転送モードとして前記インターリーブメモリ転送モードを選択するように構成される、Ｃ２８に記載のデバイス。
[Ｃ３０]  前記ＧＰＵがさらに、前記メモリ転送動作を行うための前記メモリ転送モードとしてインターリーブメモリ転送モードが選択されたことに応答して、前記インターリーブメモリ転送モードに基づいて前記メモリ転送動作を行い、前記メモリ転送動作を行うための前記メモリ転送モードとして順次的メモリ転送モードが選択されたことに応答して、前記順次的メモリ転送モードに基づいて前記メモリ転送動作を行うように構成される、Ｃ２１に記載のデバイス。
[Ｃ３１]  前記ＧＰＵがさらに、前記インターリーブメモリ転送モードに基づいて前記メモリ転送動作を行うときに、生産者−消費者パラダイムに基づいて、読取りエンジンに読取り要求を出させ、書込みエンジンに書込み要求を出させるように構成され、
前記ＧＰＵがさらに、前記順次的メモリ転送モードに基づいて前記メモリ転送動作を行うときに、相互排除のパラダイムに基づいて、前記読取りエンジンに読取り要求を出させ、前記書込みエンジンに書込み要求を出させるように構成される、Ｃ３０に記載のデバイス。
[Ｃ３２]  前記ＧＰＵがさらに、前記インターリーブメモリ転送モードに基づいて前記メモリ転送動作を行うときに、書込み要求を出すために十分なソースデータを前記ＧＰＵがメモリから受け取ったことに応答して、前記書込みエンジンに前記書込み要求を出させ、書込み要求を出すために十分な、前記メモリから受け取られたソースデータを前記書込みエンジンが消費したことに応答して、前記読取りエンジンに読取り要求を出させるように構成され、
前記ＧＰＵがさらに、前記順次的メモリ転送モードに基づいて前記メモリ転送動作を行うときに、前記読取りエンジンおよび前記書込みエンジンに、別の時間間隔の間に、複数の連続的な読取り要求のグループを出すことと、複数の連続的な読取り要求書込み要求のグループを出すこととを、交互に行わせるように構成される、Ｃ３０に記載のデバイス。
[Ｃ３３]  前記ＧＰＵがさらに、前記インターリーブメモリ転送モードに基づいて前記メモリ転送動作を行うときに、前記メモリ転送動作のための書込み要求を出すために十分なソースデータが前記ＧＰＵによってメモリから受け取られるたびに、前記書込みエンジンによって、少なくとも１つの他の書込み要求に対して後で受け取られるべき追加のソースデータを待機することなく、それぞれの前記ソースデータを消費するように構成され、
前記ＧＰＵがさらに、前記順次的メモリ転送モードに基づいて前記メモリ転送動作を行うときに、前記メモリ転送動作の少なくとも一部に対して、前記メモリ転送動作のための書込み要求を出すために十分なソースデータを前記ＧＰＵが前記メモリから受け取ったことに応答して、前記書込みエンジンによって、少なくとも１つの他の書込み要求を出すために十分な追加のソースデータが後で受け取られるまで前記ソースデータの消費を延期するように構成される、Ｃ３０に記載のデバイス。
[Ｃ３４]  前記ＧＰＵがさらに、前記インターリーブメモリ転送モードに基づいて前記メモリ転送動作を行うときに、前記メモリ転送動作のための書込み要求を出すために十分なソースデータを書込みエンジンが消費するたびに、読取りエンジンによって、少なくとも１つの他の書込み要求に対して前記書込みエンジンによって後で消費されるべき追加のソースデータを待機することなく、読取り要求を出すように構成され、
前記ＧＰＵがさらに、前記順次的メモリ転送モードに基づいて前記メモリ転送動作を行うときに、前記メモリ転送動作の少なくとも一部に対して、前記メモリ転送動作のための書込み要求を出すために十分なソースデータを前記書込みエンジンが消費したことに応答して、前記読取りエンジンによって、少なくとも１つの他の書込み要求を出すために十分なソースデータが前記書込みエンジンによって後で消費されるまで、後続の読取り要求の発行を延期するように構成される、Ｃ３０に記載のデバイス。
[Ｃ３５]  前記ＧＰＵが、前記ＧＰＵによってメモリに出された読取り要求に応答して受け取られたソースデータを記憶するように構成されるバッファを備え、
前記ＧＰＵがさらに、前記インターリーブメモリ転送モードに基づいて前記メモリ転送動作を行うときに、
１つまたは複数の読取り要求を出し、
前記複数の読取り要求に応答して前記メモリから受け取られたソースデータを前記バッファに配置し、
前記複数の読取り要求の各々について、前記複数の読取り要求のそれぞれ１つに対して前記ソースデータが前記バッファに配置されたことに応答して、前記バッファに配置された前記ソースデータを消費し、前記消費されたソースデータに基づいて書込み要求を出し、
複数の書込み要求の各々について、前記書込み要求のそれぞれ１つに対してソースデータが前記バッファから消費されたことに応答して、後続の読取り要求を出す
ように構成され、
前記ＧＰＵがさらに、前記順次的メモリ転送モードに基づいて前記メモリ転送動作を行うときに、
複数の読取り要求を出し、
前記複数の読取り要求に応答して前記メモリから受け取られたソースデータを前記バッファに配置し、
前記バッファを埋めるために十分な読取り要求が出されたことを検出したことに応答して、読取り要求を出すことを止め、
前記バッファが満たされていることを検出したことに応答して、前記消費されたソースデータに基づいて、前記バッファ中のソースデータを消費し、複数の書込み要求を出し、
前記バッファが空であることを検出したことに応答して、前記バッファ中のソースデータを消費して書込み要求を出すことを止め、
前記バッファが空であることを検出したことに応答して、読取り要求の発行を再開する
ように構成される、Ｃ２１に記載のデバイス。
[Ｃ３６]  前記ＧＰＵがさらに、少なくとも２つの異なるメモリ転送モードの前記セットから選択された第１のメモリ転送モードを使用して、前記メモリ転送動作の第１の部分を行い、前記少なくとも２つの異なるメモリ転送モードの前記セットから選択された第２のメモリ転送モードを使用して、前記メモリ転送動作の第２の部分を行うように構成される、Ｃ２１に記載のデバイス。
[Ｃ３７]  前記ＧＰＵがさらに、前記選択されたメモリ転送モードに基づいて、前記メモリ転送動作の間にメモリから取り出されるソースデータをバッファリングするために使用されるキャッシュのキャッシュラインサイズを選択し、前記選択されたキャッシュラインサイズに基づいて、前記メモリ転送動作のために前記キャッシュを構成するように構成される、Ｃ２１に記載のデバイス。
[Ｃ３８]  前記ＧＰＵがさらに、前記順次的メモリ転送モードが前記メモリ転送動作を行うための前記メモリ転送モードとして選択されたことに応答して、前記キャッシュの容量全体に等しいキャッシュラインサイズを選択し、前記インターリーブメモリ転送モードが前記メモリ転送動作を行うための前記メモリ転送モードとして選択されたことに応答して、前記キャッシュの前記容量全体より小さいキャッシュラインサイズを選択するように構成される、Ｃ３７に記載のデバイス。
[Ｃ３９]  前記１つまたは複数のプロセッサが前記ＧＰＵを備え、前記ＧＰＵが、メモリ転送動作の前記少なくとも一部を行うための前記メモリ転送モードを選択するように構成される、Ｃ２１に記載のデバイス。
[Ｃ４０]  前記１つまたは複数のプロセッサが、前記メモリ転送動作の前記少なくとも一部を行うための前記メモリ転送モードを選択し、前記ＧＰＵに、前記メモリ転送モードに基づいて前記メモリ転送動作を行わせるように構成される、ＣＰＵを備える、Ｃ２１に記載のデバイス。
[Ｃ４１]  ワイヤレス通信デバイスを備える、Ｃ２１に記載のデバイス。
[Ｃ４２]  携帯電話ハンドセットを備える、Ｃ２１に記載のデバイス。
[Ｃ４３]  メモリ転送動作の少なくとも一部を行うためのメモリ転送モードを選択するための手段と、ここにおいて、前記メモリ転送モードは、インターリーブメモリ転送モードと順次的メモリ転送モードとを含む少なくとも２つの異なるメモリ転送モードのセットから選択される、
前記選択されたメモリ転送モードに基づいて前記メモリ転送動作を行うための手段とを備える装置。
[Ｃ４４]  前記メモリ転送モードを選択するための前記手段が、
前記メモリ転送動作によって転送されるべきデータの量、前記メモリ転送動作を行うために使用されるシェーダプログラムのサイズ、および前記メモリ転送動作を行うために使用される前記シェーダプログラムの複雑さの少なくとも１つに基づいて、前記メモリ転送モードを選択するための手段を備える、Ｃ４３に記載の装置。
[Ｃ４５]  前記メモリ転送モードを選択するための前記手段が、
メモリ転送動作の宛先領域が有する固定されたスクリーン整列されたバッファ領域との重複の量に基づいて、前記固定されたスクリーン整列されたバッファ領域に関して前記メモリ転送動作を行うためのメモリ転送モードを選択するための手段を備える、Ｃ４３に記載の装置。
[Ｃ４６]  前記メモリ転送動作を行うための前記手段が、グラフィックスプロセッシングユニット（ＧＰＵ）を備え、
前記メモリ転送モードを選択するための前記手段が、ＣＰＵと前記ＧＰＵの少なくとも１つを備える、Ｃ４３に記載の装置。
[Ｃ４７]  実行されたとき、１つまたは複数のプロセッサに、
メモリ転送動作の少なくとも一部を行うためのメモリ転送モードを選択させ、ここにおいて、前記メモリ転送モードは、インターリーブメモリ転送モードと順次的メモリ転送モードとを含む少なくとも２つの異なるメモリ転送モードのセットから選択される、
前記選択されたメモリ転送モードに基づいて前記メモリ転送動作を行わせる命令を記憶したコンピュータ可読記憶媒体。
[Ｃ４８]  実行されたとき、前記１つまたは複数のプロセッサに、前記メモリ転送モードを選択させる前記命令が、実行されたとき、前記１つまたは複数のプロセッサに、
前記メモリ転送動作によって転送されるべきデータの量、前記メモリ転送動作を行うために使用されるシェーダプログラムのサイズ、および前記メモリ転送動作を行うために使用される前記シェーダプログラムの複雑さの少なくとも１つに基づいて、前記メモリ転送モードを選択させる命令を備える、Ｃ４７に記載のコンピュータ可読記憶媒体。
[Ｃ４９]  実行されたとき、前記１つまたは複数のプロセッサに、前記メモリ転送モードを選択させる前記命令が、実行されたとき、前記１つまたは複数のプロセッサに、
メモリ転送動作の宛先領域が有する固定されたスクリーン整列されたバッファ領域との重複の量に基づいて、前記固定されたスクリーン整列されたバッファ領域に関して前記メモリ転送動作を行うためのメモリ転送モードを選択させる命令を備える、Ｃ４７に記載のコンピュータ可読記憶媒体。
[Ｃ５０]  実行されたとき、前記１つまたは複数のプロセッサに、前記メモリ転送動作を行わせる前記命令が、実行されたとき、グラフィックスプロセッシングユニット（ＧＰＵ）に、前記選択されたメモリ転送モードに基づいて前記メモリ転送動作を行わせる命令を備え、
実行されたとき、前記１つまたは複数のプロセッサに、前記メモリ転送動作を選択させる前記命令が、実行されたとき、ＣＰＵと前記ＧＰＵの少なくとも１つに、メモリ転送動作の前記少なくとも一部を行うための前記メモリ転送モードを選択させる命令を備える、Ｃ４７に記載のコンピュータ可読記憶媒体。