【手続補正書】
【提出日】令和2年5月1日(2020.5.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データを処理するためのデバイスであって、前記デバイスが、
複数の処理レーンであって、前記処理レーンの各々が前記データを処理するための回路を備え、前記処理レーンがシングル・インストラクション・マルチプル・データ(SIMD)構造で構成され、前記処理レーンが複数のバンクへとグループ化され、前記複数のバンクの各バンクが前記複数の処理レーンのうちの1つまたは複数の処理レーンを備える、複数の処理レーンと、
複数の入力ポートと複数の出力ポートとを備える、シャッフラー回路であって、前記複数の出力ポートの各出力ポートが前記複数のバンクの各バンクにおける1つだけの処理レーンに出力するように構成される、シャッフラー回路とを備え、前記シャッフラー回路が、
第1の反復において、前記入力ポート上で、前記処理レーンのソースサブセットの各処理レーンだけから全体のスカラー値またはベクトル値を含むデータを受信することであって、前記処理レーンの前記ソースサブセットが前記複数の処理レーンより少ない処理レーンであり、前記処理レーンの前記ソースサブセットの第1の処理レーンが第1のデータと関連付けられ、前記処理レーンの前記ソースサブセットの第2の処理レーンが第2のデータと関連付けられ、前記データの順序において前記第2のデータが前記第1のデータの後に続くように、前記データの前記順序が前記第1の処理レーンと前記第2の処理レーンとを備える前記複数のバンクのうちのあるバンクにおける前記第1の処理レーンと前記第2の処理レーンとの相対位置に基づく、ことと、
前記第1の反復において、前記処理レーンの各々に前記処理レーンの別の1つへデータを出力するように命令する命令に応答して、前記第2のデータが前記第1のデータの後に続くことなく前記第2のデータが並べ替えられたデータ内にあるように、前記第1の処理レーンと第2の処理レーンとの前記相対位置およびどの処理レーンに前記処理レーンの各々がデータを出力するべきかを命令する前記命令に基づいて、前記処理レーンの前記ソースサブセットから受信された前記全体のスカラー値またはベクトル値を含む前記データを並べ替えることと、
前記第1の反復において、前記処理レーンのすべてにそれぞれ前記全体のスカラー値またはベクトル値を含む前記並べ替えられたデータを出力することであって、前記処理レーンの宛先サブセットが対応するレジスタに前記並べ替えられたデータを記憶し、前記処理レーンの前記宛先サブセットが前記複数の処理レーンより少なく、前記処理レーンの前記宛先サブセット以外の処理レーンが前記処理レーンの前記宛先サブセット以外の前記処理レーンによって受信される前記並べ替えられたデータを廃棄し、前記並べ替えられたデータを出力するために、前記シャッフラー回路が前記複数のバンクの各々に前記並べ替えられたデータを出力するように構成され、前記複数のバンクの各々に前記並べ替えられたデータを出力するために、前記複数の出力ポートの各出力ポートが前記複数のバンクの各バンクのそれぞれの処理レーンだけに出力する、こととをするように構成され、前記シャッフラー回路が、
前記第1の反復の後に続く複数の反復の各反復において、前記処理レーンの連続するソースサブセットだけからデータを受信することと、
前記複数の反復の各反復において、前記処理レーンの各々に前記処理レーンの別の1つへデータを出力するように命令する前記命令に応答して、連続する並べ替えられたデータを生成するために、前記処理レーンの前記連続するソースサブセットから受信された前記データを並べ替えることと、
前記複数の反復の各反復において、前記処理レーンのすべてに前記連続する並べ替えられたデータを出力することであって、前記処理レーンの連続する宛先サブセットが対応するレジスタに前記連続する並べ替えられたデータを記憶する、こととをするようにさらに構成される、デバイス。
【請求項２】
前記処理レーンの前記宛先サブセットの前記対応するレジスタが前記並べ替えられたデータを記憶することを許容するように構成される、コントローラ回路をさらに備える、請求項1に記載のデバイス。
【請求項３】
前記コントローラ回路が、オフセットに基づいて、前記複数のバンクのうちの1つのバンク識別情報と、前記バンクのうちの1つの中の処理レーンのレーン識別情報とを決定するように構成され、前記バンクのうちの1つが前記決定されたバンク識別情報を有し、前記コントローラ回路が、前記処理レーンの前記宛先サブセットの前記対応するレジスタが前記決定されたバンク識別情報およびレーン識別情報に基づいて前記並べ替えられたデータを記憶することを許容するように構成される、請求項2に記載のデバイス。
【請求項４】
前記ソースサブセットからデータを受信するために、前記シャッフラー回路が、1つだけのバンクからデータを受信するように構成される、請求項1に記載のデバイス。
【請求項５】
前記シャッフラー回路が、前記命令によって定義されるオフセットに基づいて前記データを並べ替えるように構成される、請求項1に記載のデバイス。
【請求項６】
前記バンクの各々および前記シャッフラー回路の入力インターフェースに結合された、マルチプレクサと、
前記マルチプレクサを介して、前記処理レーンの前記ソースサブセットを含む前記複数のバンクのうちの前記バンクを前記シャッフラー回路へ選択的に結合するように構成される、コントローラ回路と、
前記バンクの各々および前記シャッフラー回路の出力インターフェースに結合された、デマルチプレクサであって、前記デマルチプレクサが前記並べ替えられたデータを前記バンクにブロードキャストするように構成され、前記デマルチプレクサの各出力が前記複数のバンクの各バンクにおける1つだけの処理レーンに出力する、デマルチプレクサとをさらに備える、請求項1に記載のデバイス。
【請求項７】
グラフィクス処理装置(GPU)をさらに備え、前記GPUが前記複数の処理レーンを備える、請求項1に記載のデバイス。
【請求項８】
前記デバイスが、
集積回路、
マイクロプロセッサ、または
ワイヤレス通信デバイスのうちの1つを備える、請求項1に記載のデバイス。
【請求項９】
データを処理する方法であって、前記方法が、
第1の反復において、シャッフラー回路の入力ポートを用いて、複数の処理レーンのうちの処理レーンのソースサブセットの各処理レーンだけから全体のスカラー値またはベクトル値を含むデータを受信するステップであって、前記処理レーンの各々が前記データを処理するための回路を備え、前記処理レーンがシングル・インストラクション・マルチプル・データ(SIMD)構造で構成され、前記処理レーンが複数のバンクへとグループ化され、前記複数のバンクの各バンクが前記複数の処理レーンのうちの1つまたは複数の処理レーンを備え、前記処理レーンの前記ソースサブセットが前記複数の処理レーンより少ない処理レーンであり、前記処理レーンの前記ソースサブセットの第1の処理レーンが第1のデータと関連付けられ、前記処理レーンの前記ソースサブセットの第2の処理レーンが第2のデータと関連付けられ、前記データの順序において前記第2のデータが前記第1のデータの後に続くように、前記データの前記順序が前記第1の処理レーンと前記第2の処理レーンとを備える前記複数のバンクのうちのあるバンクにおける前記第1の処理レーンと前記第2の処理レーンとの相対位置に基づく、ステップと、
前記第1の反復において、前記シャッフラー回路を用いて、前記処理レーンの各々に前記処理レーンの別の1つへデータを出力するように命令する命令に応答して、前記第2のデータが前記第1のデータの後に続くことなく前記第2のデータが並べ替えられたデータ内にあるように、前記第1の処理レーンと第2の処理レーンとの前記相対位置およびどの処理レーンに前記処理レーンの各々がデータを出力するべきかを命令する前記命令に基づいて、前記処理レーンの前記ソースサブセットから受信された前記全体のスカラー値またはベクトル値を含む前記データを並べ替えるステップと、
前記第1の反復において、前記シャッフラー回路の複数の出力ポートを用いて、前記処理レーンのすべてにそれぞれ前記全体のスカラー値またはベクトル値を含む前記並べ替えられたデータを出力するステップであって、前記複数の出力ポートの各出力ポートが前記複数のバンクの各バンクにおける1つだけの処理レーンに出力するように構成され、前記処理レーンの宛先サブセットが対応するレジスタに前記並べ替えられたデータを記憶し、前記処理レーンの前記宛先サブセットが前記複数の処理レーンより少なく、前記処理レーンの前記宛先サブセット以外の処理レーンが前記処理レーンの前記宛先サブセット以外の前記処理レーンによって受信される前記並べ替えられたデータを廃棄し、前記並べ替えられたデータを出力するステップが前記複数のバンクの各々に前記並べ替えられたデータを出力するステップを備え、前記複数のバンクの各々に前記並べ替えられたデータを出力するステップが前記複数の出力ポートの各出力ポートが前記複数のバンクの各バンクのそれぞれの処理レーンだけに出力するステップを備える、ステップとを備え、前記方法が、
前記第1の反復の後に続く複数の反復の各反復において、前記処理レーンの連続するソースサブセットだけからデータを受信するステップと、
前記複数の反復の各反復において、前記処理レーンの各々に前記処理レーンの別の1つへデータを出力するように命令する前記命令に応答して、連続する並べ替えられたデータを生成するために、前記処理レーンの前記連続するソースサブセットから受信された前記データを並べ替えるステップと、
前記複数の反復の各反復において、前記処理レーンのすべてに前記連続する並べ替えられたデータを出力するステップであって、前記処理レーンの連続する宛先サブセットが対応するレジスタに前記連続する並べ替えられたデータを記憶する、ステップとをさらに備える、方法。
【請求項１０】
コントローラ回路を用いて、前記処理レーンの前記宛先サブセットの前記対応するレジスタが前記並べ替えられたデータを記憶することを許容するステップをさらに備える、請求項9に記載の方法。
【請求項１１】
前記コントローラ回路を用いて、オフセットに基づいて、前記複数のバンクのうちの1つのバンク識別情報と、前記バンクのうちの1つの中の処理レーンのレーン識別情報とを決定するステップであって、前記バンクのうちの1つが前記決定されたバンク識別情報を有する、ステップをさらに備え、
前記対応するレジスタが記憶することを許容するステップが、前記処理レーンの前記宛先サブセットの前記対応するレジスタが前記決定されたバンク識別情報およびレーン識別情報に基づいて前記並べ替えられたデータを記憶することを許容するステップを備える、請求項10に記載の方法。
【請求項１２】
前記ソースサブセットからデータを受信するステップが、1つだけのバンクからデータを受信するステップを備える、請求項9に記載の方法。
【請求項１３】
前記並べ替えるステップが、前記命令によって定義されるオフセットに基づいて前記データを並べ替えるステップを備える、請求項9に記載の方法。
【請求項１４】
マルチプレクサを介して、前記処理レーンの前記ソースサブセットを含む前記複数のバンクのうちの前記バンクを前記シャッフラー回路へ選択的に結合するステップと、
デマルチプレクサを介して、前記並べ替えられたデータを前記バンクにブロードキャストするステップであって、前記デマルチプレクサの各出力が前記複数のバンクの各バンクにおける1つだけの処理レーンに出力する、ステップとをさらに備える、請求項9に記載の方法。
【請求項１５】
データを処理するためのデバイスであって、前記デバイスが、
第1の反復において、入力ポートを介して、複数の処理レーンのうちの処理レーンのソースサブセットの各処理レーンだけから全体のスカラー値またはベクトル値を含むデータを受信するための手段であって、前記処理レーンの各々が前記データを処理するための回路を備え、前記処理レーンがシングル・インストラクション・マルチプル・データ(SIMD)構造で構成され、前記処理レーンが複数のバンクへとグループ化され、前記複数のバンクの各バンクが前記複数の処理レーンのうちの1つまたは複数の処理レーンを備え、前記処理レーンの前記ソースサブセットが前記複数の処理レーンより少ない処理レーンであり、前記処理レーンの前記ソースサブセットの第1の処理レーンが第1のデータと関連付けられ、前記処理レーンの前記ソースサブセットの第2の処理レーンが第2のデータと関連付けられ、前記データの順序において前記第2のデータが前記第1のデータの後に続くように、前記データの前記順序が前記第1の処理レーンと前記第2の処理レーンとを備える前記複数のバンクのうちのあるバンクにおける前記第1の処理レーンと前記第2の処理レーンとの相対位置に基づく、手段と、
前記第1の反復において、前記処理レーンの各々に前記処理レーンの別の1つへデータを出力するように命令する命令に応答して、前記第2のデータが前記第1のデータの後に続くことなく前記第2のデータが並べ替えられたデータ内にあるように、前記第1の処理レーンと第2の処理レーンとの前記相対位置およびどの処理レーンに前記処理レーンの各々がデータを出力するべきかを命令する前記命令に基づいて、前記処理レーンの前記ソースサブセットから受信された前記全体のスカラー値またはベクトル値を含む前記データを並べ替えるための手段と、
前記第1の反復において、複数のポートを用いて、前記処理レーンのすべてにそれぞれ前記全体のスカラー値またはベクトル値を含む前記並べ替えられたデータを出力するための手段であって、前記複数の出力ポートの各出力ポートが前記複数のバンクの各バンクにおける1つだけの処理レーンに出力するように構成され、前記処理レーンの宛先サブセットが対応するレジスタに前記並べ替えられたデータを記憶し、前記処理レーンの前記宛先サブセットが前記複数の処理レーンより少なく、前記処理レーンの前記宛先サブセット以外の処理レーンが前記処理レーンの前記宛先サブセット以外の前記処理レーンによって受信される前記並べ替えられたデータを廃棄し、前記並べ替えられたデータを出力するための手段が前記複数のバンクの各々に前記並べ替えられたデータを出力するための手段を備え、前記複数のバンクの各々に前記並べ替えられたデータを出力するための手段が前記複数の出力ポートの各出力ポートが前記複数のバンクの各バンクのそれぞれの処理レーンだけに出力するための手段を備える、手段とを備え、前記デバイスが、
前記第1の反復の後に続く複数の反復の各反復において、前記処理レーンの連続するソースサブセットだけからデータを受信するための手段と、
前記第1の反復の後に続く前記複数の反復の各反復において、前記処理レーンの各々に前記処理レーンの別の1つへデータを出力するように命令する前記命令に応答して、連続する並べ替えられたデータを生成するために、前記処理レーンの前記連続するソースサブセットから受信された前記データを並べ替えるための手段と、
前記第1の反復の後に続く前記複数の反復の各反復において、前記処理レーンのすべてに前記連続する並べ替えられたデータを出力するための手段であって、前記処理レーンの連続する宛先サブセットが対応するレジスタに前記連続する並べ替えられたデータを記憶する、手段とをさらに備える、デバイス。
【請求項１６】
前記処理レーンの前記宛先サブセットの前記対応するレジスタが前記並べ替えられたデータを記憶することを許容するための手段をさらに備える、請求項15に記載のデバイス。
【請求項１７】
オフセットに基づいて、前記複数のバンクのうちの1つのバンク識別情報と、前記バンクのうちの1つの中の処理レーンのレーン識別情報とを決定するための手段であって、前記バンクのうちの1つが前記決定されたバンク識別情報を有する、手段をさらに備え、
前記対応するレジスタが記憶することを許容するための手段が、前記処理レーンの前記宛先サブセットの前記対応するレジスタが前記決定されたバンク識別情報およびレーン識別情報に基づいて前記並べ替えられたデータを記憶することを許容するための手段を備える、請求項16に記載のデバイス。
【請求項１８】
前記ソースサブセットからデータを受信するための手段が、1つだけのバンクからデータを受信するための手段を備える、請求項15に記載のデバイス。
【請求項１９】
前記並べ替えるための手段が、前記命令によって定義されるオフセットに基づいて前記データを並べ替えるための手段を備える、請求項15に記載のデバイス。
【請求項２０】
グラフィクス処理装置(GPU)をさらに備え、前記GPUが前記複数の処理レーンを備える、請求項15に記載のデバイス。
【請求項２１】
前記デバイスが、
集積回路、
マイクロプロセッサ、または
ワイヤレス通信デバイスのうちの1つを備える、請求項15に記載のデバイス。
【請求項２２】
実行されると、データを処理するためのデバイスのシャッフラー回路に、
第1の反復において、前記シャッフラー回路の入力ポートを用いて、複数の処理レーンのうちの処理レーンのソースサブセットの各処理レーンだけから全体のスカラー値またはベクトル値を含むデータを受信することであって、前記処理レーンの各々が前記データを処理するための回路を備え、前記処理レーンがシングル・インストラクション・マルチプル・データ(SIMD)構造で構成され、前記処理レーンが複数のバンクへとグループ化され、前記複数のバンクの各バンクが前記複数の処理レーンのうちの1つまたは複数の処理レーンを備え、前記処理レーンの前記ソースサブセットが前記複数の処理レーンより少ない処理レーンであり、前記処理レーンの前記ソースサブセットの第1の処理レーンが第1のデータと関連付けられ、前記処理レーンの前記ソースサブセットの第2の処理レーンが第2のデータと関連付けられ、前記データの順序において前記第2のデータが前記第1のデータの後に続くように、前記データの前記順序が前記第1の処理レーンと前記第2の処理レーンとを備える前記複数のバンクのうちのあるバンクにおける前記第1の処理レーンと前記第2の処理レーンとの相対位置に基づく、ことと、
前記第1の反復において、前記処理レーンの各々に前記処理レーンの別の1つへデータを出力するように命令する命令に応答して、前記第2のデータが前記第1のデータの後に続くことなく前記第2のデータが並べ替えられたデータ内にあるように、前記第1の処理レーンと第2の処理レーンとの前記相対位置およびどの処理レーンに前記処理レーンの各々がデータを出力するべきかを命令する前記命令に基づいて、前記処理レーンの前記ソースサブセットから受信された前記全体のスカラー値またはベクトル値を含む前記データを並べ替えることと、
前記第1の反復において、前記シャッフラー回路の複数の出力ポートを用いて、前記処理レーンのすべてにそれぞれ前記全体のスカラー値またはベクトル値を含む前記並べ替えられたデータを出力することであって、前記複数の出力ポートの各出力ポートが前記複数のバンクの各バンクにおける1つだけの処理レーンに出力するように構成され、前記処理レーンの宛先サブセットが対応するレジスタに前記並べ替えられたデータを記憶し、前記処理レーンの前記宛先サブセットが前記複数の処理レーンより少なく、前記処理レーンの前記宛先サブセット以外の処理レーンが前記処理レーンの前記宛先サブセット以外の前記処理レーンによって受信される前記並べ替えられたデータを廃棄し、前記シャッフラー回路に前記並べ替えられたデータを出力させる命令が前記シャッフラー回路に前記複数のバンクの各々に前記並べ替えられたデータを出力させる命令を備え、前記シャッフラー回路に前記複数のバンクの各々に前記並べ替えられたデータを出力させる命令が前記複数の出力ポートの各出力ポートに前記複数のバンクの各バンクのそれぞれの処理レーンだけに出力させる命令を備える、こととをさせる命令を備え、前記命令が、前記シャッフラー回路に、
前記第1の反復の後に続く複数の反復の各反復において、前記処理レーンの連続するソースサブセットだけからデータを受信することと、
前記複数の反復の各反復において、前記処理レーンの各々に前記処理レーンの別の1つへデータを出力するように命令する前記命令に応答して、連続する並べ替えられたデータを生成するために、前記処理レーンの前記連続するソースサブセットから受信された前記データを並べ替えることと、
前記複数の反復の各反復において、前記処理レーンのすべてに前記連続する並べ替えられたデータを出力することであって、前記処理レーンの連続する宛先サブセットが対応するレジスタに前記連続する並べ替えられたデータを記憶する、こととをさせる命令をさらに備える、コンピュータ可読記憶媒体。
【請求項２３】
前記1つまたは複数の回路に、
前記処理レーンの前記宛先サブセットの前記対応するレジスタが前記並べ替えられたデータを記憶することを許容させる命令をさらに備える、請求項22に記載のコンピュータ可読記憶媒体。