【手続補正書】
【提出日】平成28年3月31日(2016.3.31)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データ処理動作をパイプライン方式で実行するための方法であって、
グラフィックス処理ユニット（ＧＰＵ）のシェーダプロセッサの第１のプログラマブル計算ユニットにおいて第１のスレッドを実行することであって、前記シェーダプロセッサは前記第１のプログラマブル計算ユニットを含む複数のプログラマブル計算ユニットを含むことと、
前記ＧＰＵの前記シェーダプロセッサの前記複数のプログラマブル計算ユニットの第２のプログラマブル計算ユニットにおいて第２のスレッドを実行することと、
前記ＧＰＵを含む集積回路（ＩＣ）内の管理ユニットを用いて、前記第１のスレッドの前記実行によって生成されたデータを前記複数のプログラマブル計算ユニットによって共有される前記ＩＣの外部の集積グローバルメモリ内のバッファ内に格納することの要求を前記第１のプログラマブル計算ユニットから直接受信することであって、前記第１のスレッドの前記実行によって生成された前記データは、前記第２のスレッドを実行する前記第２のプログラマブル計算ユニットによって消費されることになり、前記バッファは、先入れ先出し（ＦＩＦＯ）バッファを備えることと、
前記管理ユニットを用いて、前記第１のスレッドの前記実行によって生成された前記データが格納されるべき前記バッファ内の記憶場所を直接決定することと、
前記ＩＣを用いて、前記第１のスレッドの前記実行によって生成された前記データを前記バッファ内の前記決定された記憶場所に格納することと、を備える、方法。
【請求項２】
前記管理ユニットを用いて、前記バッファの状態情報を前記ＩＣ内に格納することをさらに備え、
前記バッファの前記状態情報は、前記バッファの開始アドレス、前記バッファの終了アドレス、生成されたデータが格納されるべき前記バッファ内のアドレス、及びデータが取り出されるべき前記バッファ内のアドレスのうちの１つ以上を含み、
前記バッファ内の前記記憶場所を決定することは、前記バッファの前記格納された状態情報に基づいて前記第１のスレッドの前記実行によって生成された前記データが格納されるべき前記バッファ内の前記記憶場所を決定することを備える請求項１に記載の方法。
【請求項３】
前記管理ユニットを用いて、前記第１のスレッドの前記実行によって生成された前記データの少なくとも一部を取り出すことの要求を前記第２のスレッドを実行する前記第２のプログラマブル計算ユニットから受信することと、
前記管理ユニットを用いて、前記第１のスレッドの前記実行によって生成される前記データが、前記第２のスレッドを実行する前記第２のプログラマブル計算ユニットによる消費のための取り出しのために入手可能であるかどうかを決定することと、をさらに備える請求項１に記載の方法。
【請求項４】
前記第２のプログラマブル計算ユニットから前記要求を受信することは、前記第１のスレッドの前記実行によって生成されたデータを格納することの前記要求を前記第１のプログラマブル計算ユニットから受信するのと同時に、受信する前に、又は受信した後に前記第２のプログラマブル計算ユニットから前記要求を受信することを備える請求項３に記載の方法。
【請求項５】
前記第２のスレッドによって要求された前記データが、前記第２のスレッドを実行する前記第２のプログラマブル計算ユニットによる消費のための取り出しのために入手可能でないときに、
前記管理ユニットを用いて、第３のスレッドを実行するように前記第２のプログラマブル計算ユニットに指示することと、
前記管理ユニットを用いて、前記第２のスレッドによって要求された前記データが、前記第２のスレッドを実行する前記第２のプログラマブル計算ユニットによる消費のための取り出しのためにいつ入手可能であるかを前記第２のプログラマブル計算ユニットに示すことと、
前記管理ユニットを用いて、前記第２のスレッドによって要求された前記データが前記第２のスレッドを実行する前記第２のプログラマブル計算ユニットによる消費のための取り出しのために入手可能であるときに前記第２のスレッドによって要求された前記データを消費するために前記第２のスレッドを実行するように前記第２のプログラマブル計算ユニットに指示することと、をさらに備える請求項３に記載の方法。
【請求項６】
前記管理ユニットを用いて、前記第２のスレッドによって要求された前記データに加えて前記集積グローバルメモリからデータを受信することと、
前記管理ユニットを用いて、前記第２のスレッドによって要求された前記データに加えての前記データを前記ＩＣ内のキャッシュに格納することと、をさらに備える請求項３に記載の方法。
【請求項７】
前記第１のスレッドを実行することは、カーネルの生成するスレッドを実行することを備え、前記第２のスレッドを実行することは、前記カーネルの消費するスレッドを実行することを備える請求項１に記載の方法。
【請求項８】
前記第１のスレッドを実行することは、生成するカーネルの前記第１のスレッドを実行することを備え、前記第２のスレッドを実行することは、消費するカーネルのスレッドを実行することを備える請求項１に記載の方法。
【請求項９】
前記ＧＰＵは、前記管理ユニットを含み、前記ＦＩＦＯバッファは、リングバッファを備える、請求項１に記載の方法。
【請求項１０】
前記バッファ内の前記記憶場所を決定することは、前記バッファ内において前記データが格納されるべき前記記憶場所を前記第１のスレッドが示さずに、前記第１のスレッドの前記実行によって生成された前記データが格納されるべき前記バッファ内の前記記憶場所を決定することを備える請求項１に記載の方法。
【請求項１１】
装置であって、
バッファを含む複数のプログラマブル計算ユニットによって共有される集積グローバルメモリであって、前記バッファは、先入れ先出し（ＦＩＦＯ）バッファと、
集積回路（ＩＣ）であって、
グラフィックス処理ユニット（ＧＰＵ）であって、
前記複数のプログラマブル計算ユニットと、
第１のスレッドを実行するように構成された前記複数のプログラマブル計算ユニットの第１のプログラマブル計算ユニットと、
第２のスレッドを実行するように構成された前記複数のプログラマブル計算ユニットの第２のプログラマブル計算ユニットと、を備える前記ＧＰＵと、
前記第１のスレッドの前記実行によって生成されたデータを前記集積グローバルメモリ内の前記バッファ内に格納することの要求を前記第１のプログラマブル計算ユニットから直接受信し、及び
前記第１のスレッドの前記実行によって生成された前記データが格納されるべき前記バッファ内の記憶場所を直接決定するように構成された管理ユニットと、を備える、集積回路（ＩＣ）とを備え、前記第１のスレッドの前記実行によって生成された前記データは、前記第２のスレッドを実行する前記第２のプログラマブル計算ユニットによって消費され、
前記ＩＣは、前記第１のスレッドの前記実行によって生成された前記データを前記バッファ内の前記決定された記憶場所に格納するように構成される、装置。
【請求項１２】
前記管理ユニットは、前記バッファの状態情報を前記ＩＣ内に格納するように構成され、
前記バッファの前記状態情報は、前記バッファの開始アドレス、前記バッファの終了アドレス、生成されたデータが格納されるべき前記バッファ内のアドレス、及びデータが取り出されるべき前記バッファ内のアドレスのうちの１つ以上を含み、
前記管理ユニットは、前記バッファの前記格納された状態情報に基づいて前記第１のスレッドの前記実行によって生成された前記データが格納されるべき前記バッファ内の前記記憶場所を決定するように構成される請求項１１に記載の装置。
【請求項１３】
前記管理ユニットは、
前記第１のスレッドの前記実行によって生成された前記データの少なくとも一部を取り出すことの要求を前記第２のスレッドを実行する前記第２のプログラマブル計算ユニットから受信し、及び
前記第１のスレッドの前記実行によって生成される前記データが、前記第２のスレッドを実行する前記第２のプログラマブル計算ユニットによる消費のための取り出しのために入手可能であるかどうかを決定するように構成される請求項１１に記載の装置。
【請求項１４】
前記管理ユニットは、前記第１のスレッドの前記実行によって生成されたデータを格納することの前記要求を前記第１のプログラマブル計算ユニットから受信するのと同時に、受信する前に、又は受信した後に前記第２のプログラマブル計算ユニットから前記要求を受信するように構成される請求項１３に記載の装置。
【請求項１５】
前記管理ユニットは、
前記第２のスレッドによって要求された前記データが、前記第２のスレッドを実行する前記第２のプログラマブル計算ユニットによる消費のための取り出しのために入手可能でないときに、第３のスレッドを実行するように前記第２のプログラマブル計算ユニットに指示し、
前記第２のスレッドによって要求された前記データが、前記第２のスレッドを実行する前記第２のプログラマブル計算ユニットによる消費のための取り出しのために入手可能であるときに前記第２のプログラマブル計算ユニットに示し、及び
前記第２のスレッドによって要求された前記データが前記第２のスレッドを実行する前記第２のプログラマブル計算ユニットによる消費のための取り出しのために入手可能であるときに前記第２のスレッドによって要求された前記データを消費するために前記第２のスレッドを実行するように前記第２のプログラマブル計算ユニットに指示するように構成される請求項１３に記載の装置。
【請求項１６】
前記管理ユニットは、
前記第２のスレッドによって要求された前記データに加えて前記グローバルメモリからデータを取り出し、及び
前記第２のスレッドによって要求された前記データに加えて前記データを前記ＩＣ内のキャッシュに格納するように構成される請求項１３に記載の装置。
【請求項１７】
前記第１のスレッドは、カーネルの生成するスレッドを備え、前記第２のスレッドは、前記カーネルの消費するスレッドを備える請求項１１に記載の装置。
【請求項１８】
前記第１のスレッドは、生成するカーネルのスレッドを備え、前記第２のスレッドは、消費するカーネルのスレッドを備える請求項１１に記載の装置。
【請求項１９】
前記ＧＰＵは、前記管理ユニットを含み、前記ＦＩＦＯバッファはリングバッファを備える、請求項１１に記載の装置。
【請求項２０】
前記管理ユニットは、前記第１のスレッドの前記実行によって生成された前記データが前記バッファ内において前記データが格納されるべき前記記憶場所を前記第１のスレッドが示さずに前記データが格納されるべき前記バッファ内の前記記憶場所を決定するように構成される請求項１１に記載の装置。
【請求項２１】
前記装置は、映像デバイス、セットトップボックス、無線ハンドセット、パーソナルデジタルアシスタント、デスクトップコンピュータ、ラップトップコンピュータ、ゲームコンソール、ビデオ会議ユニット、及びタブレットコンピューティングデバイスのうちの１つを備える請求項１１に記載の装置。
【請求項２２】
装置であって、
バッファを含む複数のプログラマブル計算ユニットによって共有される集積グローバルメモリであって、前記バッファは、先入れ先出し（ＦＩＦＯ）バッファを備える集積グローバルメモリと、
集積回路（ＩＣ）であって、
グラフィックス処理ユニット（ＧＰＵ）であって、
第１のスレッドを実行するための手段と、
第２のスレッドを実行するための手段と、
前記第１のスレッドの前記実行によって生成されたデータを前記集積グローバルメモリ内の前記バッファ内に格納することの要求を前記第１のスレッドを実行するための前記手段から直接受信するための手段であって、前記第１のスレッドの前記実行によって生成された前記データは、前記第２のスレッドを実行するための前記手段によって消費される手段と、
前記第１のスレッドを実行するための前記手段によって生成された前記データが格納されるべき前記バッファ内の記憶場所を直接決定するための手段と、
前記第１のスレッドの前記実行によって生成された前記データを前記バッファ内の前記決定された記憶場所に格納するための手段と、を備えるグラフィックス処理ユニット（ＧＰＵ）、を備える集積回路（ＩＣ）と、を備える、装置。
【請求項２３】
コンピュータによって読み取り可能な非一時的な記憶媒体であって、
実行されたときに、
グラフィックス処理ユニット（ＧＰＵ）のシェーダプロセッサの第１のプログラマブル計算ユニットにおいて第１のスレッドを実行することであって、前記シェーダプロセッサは前記第１のプログラマブル計算ユニットを含む複数のプログラマブル計算ユニットを含み、
前記ＧＰＵの前記シェーダプロセッサの前記複数のプロブラマブル計算ユニットの第２のプログラマブル計算ユニットにおいて第２のスレッドを実行し、
前記ＧＰＵを含む集積回路（ＩＣ）内の管理ユニットを用いて、前記第１のスレッドの前記実行によって生成されたデータを前記複数のプログラマブル計算ユニットによって共有される前記ＩＣの外部の集積グローバルメモリ内のバッファ内に格納することの要求を前記第１のプログラマブル計算ユニットから直接受信し、
前記管理ユニットを用いて、前記第１のスレッドの前記実行によって生成された前記データが格納されるべき前記バッファ内の記憶場所を直接決定し、及び
前記ＩＣを用いて、前記第１のスレッドの前記実行によって生成された前記データを前記バッファ内の前記決定された記憶場所に直接格納することを１つ以上のプロセッサに行わせる命令が格納されており、前記第１のスレッドの前記実行によって生成された前記データは、前記第２のスレッドを実行する前記第２のプログラマブル計算ユニットによって消費されることになり、前記バッファは、先入れ先出し（ＦＩＦＯ）バッファを備える、コンピュータによって読み取り可能な記憶媒体。