【誤訳訂正書】
【提出日】平成22年7月23日(2010.7.23)
【誤訳訂正１】
【訂正対象書類名】特許請求の範囲
【訂正対象項目名】全文
【訂正方法】変更
【訂正の内容】
【特許請求の範囲】
【請求項１】
１つのマルチポートメモリーとして機能するように複数のシングルポートメモリーを構成すると共に、複数のメモリーバンクの中にレジスタを割り付ける方法であって、
前記複数のシングルポートメモリーは、複数のスレッドのうちの少なくとも１つによって実行されるオペランドを記憶するためのレジスタを提供し、
前記複数のメモリーバンクのそれぞれは、前記複数のスレッドのうちの少なくとも１つに関連しており、
前記複数のスレッドのうちの第１のスレッドに割り付けられるレジスタの数を決定するステップと、
前記１つのマルチポートメモリーとして機能するように構成された一組のメモリーバンク内に存在する少なくとも１つのメモリーバンク内のロケーションにおいて前記第１のスレッドに前記数のレジスタを割り付けるステップと、
前記複数のスレッドのうちの前記第１のスレッド及び第２のスレッドが、同一のメモリーバンクに記憶された同一のプログラム命令によって指定された対応するオペランド無しで、同一のプログラム命令を処理することができるように、前記レジスタを割り当てるステップと、
前記複数のスレッドのうちの前記第２のスレッドに割り付けられるレジスタの数を決定するステップと、
前記１つのマルチポートメモリーとして機能するように構成された一組のメモリーバンク内に存在する少なくとも１つのメモリーバンク内のロケーションにおいて前記第２のスレッドに前記数のレジスタを割り付けるステップと、
前記一組のメモリーバンク内に存在するレジスタから、第１の収集ユニットへ、前記第２のスレッド内に存在するプログラム命令によって指定される第１のオペランドを読み込むステップと、
前記一組のメモリーバンク内に存在するレジスタから、第２の収集ユニットへ、前記第１のスレッド内に存在する前記プログラム命令によって指定される第２のオペランドを読み込むステップと、
前記プログラム命令、前記第１のオペランド、及び、前記第２のオペランドを、前記第１の収集ユニット及び前記第２の収集ユニットのそれぞれから前記第１のスレッド及び前記第２のスレッドへ実行のためにディスパッチするステップと、
を備える方法。
【請求項２】
前記第１のスレッド及び前記第２のスレッドに割り付けられる前記数のレジスタが、いくつかの部分に分割され、それらの部分が、前記一組のメモリーバンク内に存在する２以上のメモリーバンク内に割り付けられる、請求項１に記載の方法。
【請求項３】
前記第１のスレッド及び前記第２のスレッドに割り付けられる前記数のレジスタが、前記一組のメモリーバンク内に存在するただ１つのメモリーバンク内に配置される、請求項１に記載の方法。
【請求項４】
前記数のレジスタの割り付けが、割り付け方式に基づくものであり、当該割り付け方式は、厚い割り付け方式、又は、薄い割り付け方式である、請求項１に記載の方法。
【請求項５】
前記第１のスレッド及び前記第２のスレッドに割り付けられるレジスタの前記数に基づいて前記割り付け方式を決定するステップをさらに備える、請求項４に記載の方法。
【請求項６】
前記割り付け方式をドライバから受け取るステップをさらに備える、請求項４に記載の方法。
【請求項７】
前記第１のスレッド及び前記第２のスレッドが同じ命令を処理するとき、前記第１のスレッド及び前記第２のスレッドが前記一組のメモリーバンクのうちの同一のメモリーバンクからオペランドを読み込まないように、前記第１のスレッド及び前記第２のスレッドのために割り付けられた一組のレジスタ内に存在するレジスタを、それぞれのレジスタを割り当てるための前記第１のスレッド及び前記第２のスレッドに関連する位相値を用いて、少なくとも１つのメモリーバンクに割り当てるステップをさらに備える、請求項１に記載の方法。
【請求項８】
グラフィックスプログラム命令のためのオペランドを複数のシングルポートメモリーへ記憶するための、及び、複数のシングルポートメモリーから出力するためのレジスタファイルユニットであって、
１つのマルチポートメモリーとして機能し、第１のスレッドのためのオペランドを記憶するように構成された複数のシングルポートメモリーからなる第１のメモリーバンクと、
１つのマルチポートメモリーとして機能し、第２のスレッドのためのオペランドを記憶するように構成された複数のシングルポートメモリーからなる第２のメモリーバンクと、
前記第１のスレッドのための前記オペランドを前記第１のメモリーバンクから受け取り、前記第１のスレッドのプログラム命令と前記第１のスレッドの前記プログラム命令によって指定された任意のオペランドとを出力するように構成された第１の収集ユニットと、
前記第２のスレッドのための前記オペランドを前記第２のメモリーバンクから受け取り、前記第２のスレッドのプログラム命令と前記第２のスレッドの前記プログラム命令によって指定された任意のオペランドとを実行のために前記第１のスレッド及び前記第２のスレッドに出力するように構成された第２の収集ユニットと、
を備え、
前記第１のメモリーバンク及び前記第２のメモリーバンクのうちのただ１つに記憶されたオペランドにアクセスすること無く、同一の命令が前記第１のスレッドと前記第２のスレッドの両方において同時に実行可能なように、前記オペランドは前記第１のメモリーバンク及び前記第２のメモリーバンク間に記憶及び配信される、レジスタファイルユニット。
【請求項９】
前記第１の収集ユニット及び前記第２の収集ユニットのいずれか一方が、スレッドのためのオペランドを前記第１のメモリーバンク及び前記第２のメモリーバンクのいずれか一方から受け取るために、前記第１のメモリーバンク及び前記第２のメモリーバンクを前記第１の収集ユニット及び前記第２の収集ユニットに結合するクロスバユニットをさらに備える、請求項８に記載のレジスタファイルユニット。
【請求項１０】
オペランド読み出し要求を前記第１のメモリーバンクに出力するように構成された第１のバンク要求調停ユニットと、
オペランド読み出し要求を前記第２のメモリーバンクに出力するように構成された第２のバンク要求調停ユニットと、
をさらに備える、請求項８に記載のレジスタファイルユニット。
【請求項１１】
前記第２の収集ユニットに結合され、かつ、前記第１の収集ユニット及び前記第２の収集ユニットと前記第１のスレッド及び前記第２のスレッドとを調停し、前記第１のスレッドの前記プログラム命令および前記第１のスレッドの前記プログラム命令によって指定された任意のオペランドまたは前記第２のスレッドの前記プログラム命令および前記第２のスレッドの前記プログラム命令によって指定された任意のオペランドを出力するように構成されたディスパッチャーユニットをさらに備える、請求項８に記載のレジスタファイルユニット。
【請求項１２】
前記ディスパッチャーユニットによって出力された任意のプログラム命令を実行するように構成された実行ユニットをさらに備え、前記ディスパッチャーユニットは、当該ディスパッチャーユニットによって前記第１の収集ユニットと前記第２の収集ユニットとの間に確立された優先順位に基づいて、前記実行ユニットにオペランドを出力する、請求項１１に記載のレジスタファイルユニット。
【請求項１３】
前記第１の収集ユニットによって出力された任意のプログラム命令を実行するように構成された実行ユニットをさらに備える、請求項１１に記載のレジスタファイルユニット。
【請求項１４】
前記第１のメモリーバンク及び前記第２のメモリーバンクのそれぞれと、前記第１の収集ユニット及び前記第２の収集ユニットのそれぞれとの間に接続され、メモリーバンク内に記憶されていないソースデータを受け取り、前記第１の収集ユニット及び前記第２の収集ユニットに前記ソースデータを提供するセレクタユニットをさらに備える請求項８に記載のレジスタファイルユニット。
【請求項１５】
前記第１の収集ユニット及び前記第２の収集ユニットから前記命令及び前記オペランドを受け取ると共に、前記命令によってデスティネーションオペランドが指定された場合に、前記第１のメモリーバンク及び前記第２のメモリーバンクの一方に書き込み要求を出力するための実行ユニットをさらに備える請求項８に記載のレジスタファイルユニット。
【請求項１６】
複数の追加のメモリーバンク及び複数の追加の収集ユニットを備え、当該複数の追加のメモリーバンクの数と当該複数の追加の収集ユニットの数は異なり、前記クロスバユニットは、いずれかのメモリーバンクから出力されるオペランドを、前記第１の収集ユニット及び前記第２の収集ユニットのうちのいずれかの入力へルーティングできるように構成されている請求項９に記載のレジスタファイルユニット。
【請求項１７】
前記第１のスレッド及び前記第２のスレッドのそれぞれに割り付けられる前記数のレジスタが、いくつかの部分に分割され、それらの部分が、前記一組のメモリーバンク内に存在する１つのメモリーバンク内に全て割り付けられる、又は、前記一組のメモリーバンク内に存在する全てのメモリーバンクの間で等しく割り付けられ、
前記一組のメモリーバンク内に存在する前記１つのメモリーバンクは、割り付けのために次に利用可能なレジスタを指示するレジスタベースアドレス、割り付け方式、及び、割り付けられる次のレジスタにおけるレジスタベースアドレスを記憶する請求項１に記載の方法。
【請求項１８】
１つ以上のスレッドに割り付けられる前記数のレジスタが、いくつかの部分に分割され、前記レジスタは、厚い割り付け又は薄い割り付けに基づいて割り付けられ、メモリーバンクにおける前記厚い割り付けは、当該メモリーバンクの一端から開始され、当該メモリーバンクにおける前記薄い割り付けは、当該メモリーバンクの他端から開始される請求項１に記載の方法。
【請求項１９】
スレッドを処理するために必要なレジスタの数を決定すると共に、厚い割り付けが使用されるべきか、薄い割り付けが使用されるべきかを決定するためのレジスタアドレスユニットを備え、
前記レジスタアドレスユニットは、前記第１のメモリーバンク及び前記第２のメモリーバンク内において割り付け可能な最初のロケーションを指示するベースポインタを更新するようにさらに構成されている請求項８に記載のレジスタファイルユニット。
【請求項２０】
前記レジスタアドレスユニットは、次に続くスレッドに割り付けられるオペランドに割り当てられるレジスタが、既に割り付けられたレジスタに対してスキューされるように、必要なレジスタの数を決定した後に位相値を更新するようにさらに構成されている請求項１９に記載のレジスタファイルユニット。
【請求項２１】
前記第１の収集ユニット及び前記第２の収集ユニットのそれぞれが、前記第１のスレッド及び前記第２のスレッドのうちの任意のスレッド内の実行すべきプログラム命令のためのオペランドを前記複数のメモリーバンクのうちの２以上のメモリーバンクから収集するように、前記第１のメモリーバンク及び前記第２のメモリーバンクのうちの任意のメモリーバンク内にある前記第１のオペランド及び前記第２のオペランドのうちの任意のオペランドは、前記クロスバを通して、前記第１の収集ユニット及び前記第２の収集ユニットのうちの任意の収集ユニットに送られることができる請求項１に記載の方法。
【誤訳訂正２】
【訂正対象書類名】明細書
【訂正対象項目名】０００５
【訂正方法】変更
【訂正の内容】
【０００５】
[0005]本発明は、低ポート数メモリーをバンクとして使用してマルチポートメモリーをシミュレートするための新しいシステムおよび方法を含む。メモリーの一部分は、スレッドに関連するデータを記憶するために割り付けられる。スレッドに割り付けられたメモリーの一部分は、ただ１つのバンク内に記憶されてもよく、あるいは、複数のバンク内に記憶されてもよい。ソースオペランドは、１つ以上のバンクから出力されるので、それぞれのバンクに結合された収集ユニットが、プログラム命令を処理するのに必要なソースオペランドを集める。プログラム命令を処理するのに必要なすべてのソースオペランドが集められると、収集ユニットは、ソースオペランドを実行ユニットへ出力する。マルチポートメモリーをシミュレートするために低ポート数メモリーを使用することは、同程度の容量を有するマルチポートメモリーよりも小さいダイ面積しか必要としない。また、マルチポートメモリーをシミュレートするように構成された低ポート数メモリーは、同程度の容量を有するマルチポートメモリーと比較してより少ない所要電力を有する。
【誤訳訂正３】
【訂正対象書類名】明細書
【訂正対象項目名】００３０
【訂正方法】変更
【訂正の内容】
【００３０】
[0041]それぞれのバンク３２０は、バンク要求調停ユニット３１０から要求を受け取るための読み出し要求ポートを含む。それぞれのバンク３２０は、また、１つかまたは複数の実行ユニット２７０から書き込み要求を受け取るための書き込み要求ポートを含み、処理されたデータを、プログラム命令によって指定されたオペランドに割り当てられたデスティネーションレジスタに書き込む。したがって、２つのバンクの低ポート数メモリー（１つの書き込みポートおよび１つの読み出しポート）が、２つの書き込みポートおよび２つの読み出しポートを備えるマルチポートメモリーをシミュレートするのに使用される。本発明のいくつかの実施形態においては、さらなる要求ポートが使用される。本発明の代替の実施形態においては、読み出し要求ポートは、書き込み要求ポートと組み合わせられ、シングルポートメモリーにアクセスする。１クロックサイクル中、それぞれのバンク３２０は、読み出し要求によって指定されたオペランドを対応する収集ユニット３３０へセレクタ３２５を介して出力してもよい。したがって、プログラム命令が、ソースデータのための３つのオペランドを指定する場合、それらが、同じバンク３２０内に存在すれば、少なくとも３つのクロックサイクルが、オペランドを集めるのに必要とされる。それぞれの収集ユニット３３０は、また、バンク３２０の外部にあるレジスタ（図示しない）に記憶された定数および中間データのようなソースデータを集めてもよい。セレクタ３２５は、バンク３２０内に記憶されていないソースデータを入力（図示しない）から受け取る。オペランドのすべてが、収集ユニット３３０によって集められると、プログラム命令は、ディスパッチされる準備ができた状態となる。本発明のいくつかの実施形態においては、１クロックサイクル中に読み出されるオペランドの数を増加させるために、さらなるバンク要求調停ユニット３１０、バンク３２０、セレクタ３２５、および収集ユニット３３０が含められる。本発明の一実施形態においては、セレクタ３２５は省かれ、それぞれのバンク３２０は、収集ユニット３３０に直接に結合される。