【手続補正書】
【提出日】平成22年3月10日(2010.3.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
掛け合わせると対象の行列に近づく1対の因子行列(R;C)を決定する行列因子分解ハードウェアアクセラレータであって、
前記対象の行列を表す入力データ行列を受信する入力と、
第1の因子行列(R)の行および列のデータを格納する第1の因子行列メモリであって、ブロックに格納されている第1の因子行列の列データにアクセスするための、前記第1の因子行列メモリのそれぞれの前記ブロックにそれぞれ関連付けられている複数の第1のデータバスを有する第1の因子行列メモリと、
第2の因子行列(C)の行および列のデータを格納する第2の因子行列メモリであって、ブロックに格納されている第2の因子行列の行データにアクセスするための、前記第2の因子行列メモリのそれぞれの前記ブロックにそれぞれ関連付けられている複数の第2のデータバスを有する第2の因子行列メモリと、
前記第1のデータバスのうちの1つに結合されている第1のプロセッサブロックデータバスと、前記第2のデータバスのうちの1つに結合されている第2のプロセッサブロックデータバスと、結果データ出力と、前記因子行列の対の積と前記対象の行列との間の差を表す行列(Q)の一部分を格納するプロセッサメモリブロックと、少なくとも1つの積和ユニットを含むデータプロセッサであって、前記プロセッサメモリブロックに結合されている第1の入力と、前記第1および第2のプロセッサブロックデータバスの一方または両方に結合されており、前記結果データ出力に結合されている出力を有する第2の入力とを有するデータプロセッサとをそれぞれ有するプロセッサブロックの行列と、
前記入力からのデータの前記プロセッサブロックの行列の前記プロセッサメモリブロックへの書き込みを制御し、前記プロセッサブロックの行列に提供するための前記第1および第2の因子行列メモリからのデータの読み取りを制御し、前記行列因子分解を行うために、前記結果データ出力から導出されたデータの前記第1および第2の因子行列メモリへの書き戻しを制御する制御回路と
を備える行列因子分解ハードウェアアクセラレータ。
【請求項２】
前記プロセッサブロックのそれぞれが、前記プロセッサメモリブロックに結合されている第3のプロセッサブロックデータバスを有し、前記プロセッサメモリブロックが、前記第1のデータバスによってアクセスされる前記第1の因子行列メモリの列データのいくつかの行データ項目に対応する第1の次元を有し、前記第2のデータバスによってアクセスされる前記第2の因子行列メモリの行データのいくつかの列データ項目に対応する第2の次元を有する前記行列(Q)の一部分を格納するよう構成されている請求項1に記載の行列因子分解ハードウェアアクセラレータ。
【請求項３】
前記プロセッサブロックが、それぞれ前記プロセッサメモリブロックにデータを書き込み、そこからデータを読み出す前記第3のプロセッサブロックデータバスの対を有し、前記プロセッサブロックが、前記第3のプロセッサブロックデータバスによってデイジーチェーン接続されている請求項2に記載の行列因子分解ハードウェアアクセラレータ。
【請求項４】
前記プロセッサブロックが、前記2つの結果データ出力、および2つの結果データ入力を有し、前記プロセッサブロックの行列が、前記結果データ入力および出力によって2方向にデイジーチェーン接続されたプロセッサブロックの矩形行列を含む請求項1、2、または3に記載の行列因子分解ハードウェアアクセラレータ。
【請求項５】
前記それぞれの第1および第2の因子行列メモリに書き戻すために前記プロセッサブロックの行列から受信されたデータを累積するために、前記第1および第2の因子行列メモリに関連付けられている第1および第2の数値演算ブロックをさらに含む請求項1から4のいずれかに記載の行列因子分解ハードウェアアクセラレータ。
【請求項６】
前記第1および第2の数値演算ブロックのそれぞれが、1つのマスター数値演算ブロック、および1つまたは複数のスレーブ数値演算ブロックを含み、前記マスター数値演算ブロックが、前記1つまたは複数のスレーブブロックへの出力を有するデバイダユニットを含み、前記1つまたは複数のスレーブブロックのそれぞれが、前記デバイダユニット出力に結合されている入力を有する乗算器を含む請求項5に記載の行列因子分解ハードウェアアクセラレータ。
【請求項７】
前記第1および第2の因子行列メモリが、同時の前記プロセッサブロックの読み取りアクセス、および前記数値演算ブロックによる書き込みアクセスを可能にするために、デュアルポート式メモリを含む請求項5または6に記載の行列因子分解ハードウェアアクセラレータ。
【請求項８】
前記プロセッサブロックが、マスタープロセッサブロックおよび複数のスレーブプロセッサブロックを含み、前記マスターブロックが、前記スレーブプロセッサブロックにおいて、前記プロセッサブロックメモリのアドレス、および前記スレーブプロセッサブロックにおける前記データプロセッサの操作の一方または両方を制御するよう構成されている請求項1から7のいずれかに記載の行列因子分解ハードウェアアクセラレータ。
【請求項９】
前記積和ユニットが、前記第1および第2のプロセッサブロックデータバスに結合されている第1および第2の乗算入力、前記プロセッサメモリブロックの読み取り出力に結合されている加算入力、および前記プロセッサメモリブロックの書き込み入力に結合されている出力を有し、前記データプロセッサが、前記積和出力に結合されている第1の乗算入力と、前記第1および第2のプロセッサブロックデータバスのうちの一方に選択的に結合可能であり、前記データプロセッサ出力に結合されている出力を有する第2の乗算入力とを有する乗算-累積ユニットとして構成されている積和ユニットをさらに含む請求項1から8のいずれかに記載の行列因子分解ハードウェアアクセラレータ。
【請求項１０】
前記プロセッサメモリブロックが、前記格納されている行列(Q)の前記一部分のコピーを格納するバッファを含み、前記データプロセッサが、前記格納されている行列部分の2つの異なるバージョンで同時に操作可能である請求項1から9のいずれかに記載の行列因子分解ハードウェアアクセラレータ。
【請求項１１】
前記データプロセッサが、第1ビット長の変数で整数演算を使用するよう構成されており、前記プロセッサメモリブロックが、前記第1ビット長の2倍の整数変数を格納するよう構成されている請求項1から10のいずれかに記載の行列因子分解ハードウェアアクセラレータ。
【請求項１２】
前記データプロセッサが、前記格納されている行列(Q)の部分に対応するデータについて以下の演算を行うよう構成されており、
【数１】
2009530730.tif 000001
式中、xy、py、およびxpは、それぞれQ、R、およびCの列および行にラベル付けする請求項1から11のいずれかに記載の行列因子分解ハードウェアアクセラレータ。
【請求項１３】
前記行列因子分解が、非負行列因子分解(NMF)を含む請求項1から12のいずれかに記載の行列因子分解ハードウェアアクセラレータ。
【請求項１４】
請求項1から13のいずれかに記載の前記行列因子分解ハードウェアアクセラレータを含む集積回路。
【請求項１５】
請求項1から14のいずれかに記載の前記行列因子分解ハードウェアアクセラレータを含むOLEDディスプレイドライバ。
【請求項１６】
行列因子分解のための集積回路(IC)であって、
第1および第2の因子行列(R;C)への因子分解のための対象の行列を表す入力データ行列を受信する入力と、
第1の因子行列メモリ(R)のブロックに格納されているデータにそれぞれアクセスする複数の第1のデータバスと、
第2の因子行列メモリ(C)のブロックに格納されているデータにそれぞれアクセスする複数の第2のデータバスと、
プロセッサブロックの行列であって、前記第1のデータバスのうちの1つに結合されている第1のプロセッサブロックデータバスと、前記第2のデータバスのうちの1つに結合されている第2のプロセッサブロックデータバスと、結果データ出力と、前記因子行列の対の積と前記対象の行列との差を表す行列(Q)の一部分を格納するプロセッサメモリブロックと、少なくとも1つの積和ユニットを含み、前記プロセッサメモリブロックに結合されている第1の入力と、前記第1および第2のプロセッサブロックデータバスのうちの一方または両方に結合されており、前記結果データ出力に結合されている出力を有する第2の入力とを有するデータプロセッサとをそれぞれ有するプロセッサブロックの行列と
を備える集積回路。
【請求項１７】
ハードウェアが非負行列因子分解(NMF)計算を高速化する方法であって、前記計算が、
以下を反復的に決定する段階を含み、
Qxy=Qxy+RpyCxp  xおよびyごと  (1)
【数２】
2009530730.tif 000002
【数３】
2009530730.tif 000003
Qxy=Qxy−RpyCxp  xおよびyごと  (4)
式(1)から(4)が、各反復のpの値ごとに評価され、式中、Wxypが重み係数を含み、この方法が、pごとに、対応する複数のプロセッサブロックにわたって分散される複数のメモリブロックにQを格納する段階と、
式(2)の分母を評価する段階と、
QxyおよびRpyを決定するために、前記複数のプロセッサブロックにわたって実質的に同時に式(2)の分子および式(1)への貢献を評価する段階と、
式(3)の分母を評価する段階と、
CxpおよびQxyを決定するために、前記複数のプロセッサブロックにわたって実質的に同時に式(3)の分子および式(4)への貢献を評価する段階と
を含む方法。
【請求項１８】
ハードウェアが非負行列因子分解(NMF)計算を高速化するシステムであって、前記計算が、以下を反復的に決定する段階を含み、
Qxy=Qxy+RpyCxp  xおよびyごと  (1)
【数４】
2009530730.tif 000004
【数５】
2009530730.tif 000005
Qxy=Qxy−RpyCxp  xおよびyごと  (4)
式(1)から(4)が、各反復のpの値ごとに評価され、式中、Wxypが重み係数を含み、このシステムが、
対応する複数のプロセッサブロックにわたって分散される複数のメモリブロックにQを格納する手段と、
式(2)の分母を評価する手段と、
式(2)の分子および式(1)への貢献を評価する手段と、
式(3)の分母を評価する手段と、
CxpおよびQxyを決定するために、前記複数のプロセッサブロックにわたって実質的に同時に式(3)の分子および式(4)への貢献を評価する手段と
を含むシステム。
【請求項１９】
請求項18に記載の前記システムを含むディスプレイドライバまたはディスプレイ。
【請求項２０】
請求項17の前記方法または請求項18の前記システムを実施するハードウェアを記述するプロセッサ制御コードを運ぶキャリア。
【請求項２１】
入力行列(Q)を1対の第1および第2の因子行列(R;C)に因子分解する非負行列因子分解(NMF)ハードウェアアクセラレータであって、
前記第1の因子行列(R)の要素を格納する第1のメモリストアと、
前記第2の因子行列(C)の要素を格納する第2のメモリストアと、
複数のNMF演算を並列に行う、前記第1および第2のメモリストアに結合されているプロセッサの格子と、
前記入力行列(Q)の前記プロセッサの格子への書き込みを制御し、前記第1および第2の因子行列の要素を前記それぞれの第1および第2のメモリストアに書き込むよう前記プロセッサを制御するコントローラと
を含むNMFハードウェアアクセラレータ。
【請求項２２】
前記プロセッサを前記第1および第2のメモリストアにそれぞれ接続する複数の第1のデータバスおよび複数の第2のデータバスを有する請求項21に記載のNMFハードウェアアクセラレータ。
【請求項２３】
前記プロセッサのそれぞれが、前記入力行列(Q)の一部分を格納する記憶領域を含む請求項21または22に記載のNMFハードウェアアクセラレータ。
【請求項２４】
前記プロセッサのそれぞれが、前記プロセッサ記憶領域から導出されたデータを受信するための第1の入力を有し、前記第1および第2のデータバスのうちの一方に結合されており、前記第1および第2のメモリストアのうちの一方または両方にデータを提供するために、前記NMF演算を行うよう構成されている少なくとも1つの第2の入力を有する少なくとも1つの積和ユニットを含む請求項19に従属したときの請求項22に記載のNMFハードウェアアクセラレータ。