JPH1153344A - 行列演算装置及びそれを有する数値演算プロセッサ - Google Patents
行列演算装置及びそれを有する数値演算プロセッサInfo
- Publication number
- JPH1153344A JPH1153344A JP20691097A JP20691097A JPH1153344A JP H1153344 A JPH1153344 A JP H1153344A JP 20691097 A JP20691097 A JP 20691097A JP 20691097 A JP20691097 A JP 20691097A JP H1153344 A JPH1153344 A JP H1153344A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- matrix
- addition
- matrix data
- multiplication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Landscapes
- Complex Calculations (AREA)
Abstract
(57)【要約】
【課題】 パイプライン化した行列演算装置の高速化。
【解決手段】 乗算回路12と、加算回路13と、加算
回路13の出力を一時的に保持して加算回路13に出力
する累積加算用レジスタとを備え、加算回路が複数段の
パイプライン28、29、30で構成される行列演算装
置において、累積加算用レジスタは、少なくとも加算回
路のパイプラインの段数分のレジスタ31、32、33
を備え、累積加算用レジスタの個数分の異なる行列要素
の演算を、各行列要素に関する演算を累積加算用レジス
タの個数ずつずらして連続して行う。
回路13の出力を一時的に保持して加算回路13に出力
する累積加算用レジスタとを備え、加算回路が複数段の
パイプライン28、29、30で構成される行列演算装
置において、累積加算用レジスタは、少なくとも加算回
路のパイプラインの段数分のレジスタ31、32、33
を備え、累積加算用レジスタの個数分の異なる行列要素
の演算を、各行列要素に関する演算を累積加算用レジス
タの個数ずつずらして連続して行う。
Description
【0001】
【発明の属する技術分野】本発明は、3次元グラフィッ
クスにおける幾何変換処理やディジタル信号処理で広く
使用される行列の乗算処理を行う行列演算装置及びその
ためのプロセッサに関する。
クスにおける幾何変換処理やディジタル信号処理で広く
使用される行列の乗算処理を行う行列演算装置及びその
ためのプロセッサに関する。
【0002】
【従来の技術】行列の乗算処理は、3次元グラフィック
スにおける幾何変換処理などに広く使用される。行列の
乗算処理は、例えば、次のような行列A(i,j)に行
列B(k,l)(但し、j=k)を乗算して積Cを求め
る演算である。
スにおける幾何変換処理などに広く使用される。行列の
乗算処理は、例えば、次のような行列A(i,j)に行
列B(k,l)(但し、j=k)を乗算して積Cを求め
る演算である。
【0003】
【数1】 この例では、i=j=k=3、l=1であるが、i、
j、k、及びlはどのような値でもよい。このような行
列演算は非常に計算量の多い処理であり、その処理には
専用の行列演算装置が使用されることが多い。
j、k、及びlはどのような値でもよい。このような行
列演算は非常に計算量の多い処理であり、その処理には
専用の行列演算装置が使用されることが多い。
【0004】図1は、従来の行列演算装置の構成を示す
図である。行列演算で使用する行列データは行列データ
格納メモリ11に記憶されており、制御回路15から指
示されたアドレス信号に基づいて乗算される行列データ
の要素が読み出され、乗算回路12に入力される。乗算
回路12では入力された行列データの要素を乗算し、加
算回路13に出力する。加算回路13は、乗算回路12
の出力と累積加算用レジスタ14の出力を加算して出力
する。加算回路13の出力は、累積加算用レジスタ14
に一時的に保持され、再び加算回路13に入力される。
これらの制御は、制御回路15により行われる。
図である。行列演算で使用する行列データは行列データ
格納メモリ11に記憶されており、制御回路15から指
示されたアドレス信号に基づいて乗算される行列データ
の要素が読み出され、乗算回路12に入力される。乗算
回路12では入力された行列データの要素を乗算し、加
算回路13に出力する。加算回路13は、乗算回路12
の出力と累積加算用レジスタ14の出力を加算して出力
する。加算回路13の出力は、累積加算用レジスタ14
に一時的に保持され、再び加算回路13に入力される。
これらの制御は、制御回路15により行われる。
【0005】図1の装置における処理を、上記の行列A
とBに対する処理を例として説明する。まず、行列デー
タ格納メモリ11からはa00とb0が読み出される。
乗算回路12はa00×b0を演算して出力する。累積
加算回路14には最初はゼロが記憶されており、加算回
路13はa00×b0とゼロを加算してa00×b0を
出力する。ここまでの処理を、制御回路15が出力する
クロック信号の1サイクル内に行う。次のサイクルで、
累積加算回路14はこのa00×b0を記憶して保持
し、行列データ格納メモリ11からはa01とb1を読
み出し、乗算回路12はa01×b1を出力する。加算
回路13は、乗算回路12の出力するa01×b1と累
積加算回路14の出力するa00×b0を加算し、a0
0×b0+a01×b1を出力する。次のサイクルで
は、同様に、累積加算回路14はa00×b0+a01
×b1を記憶して保持し、行列データ格納メモリ11か
らの次のデータの読み出しと、乗算回路12と加算回路
13での処理が行われる。このような処理を繰り返すこ
とにより、積Cの1つの行列要素が演算される。従っ
て、このような処理を積Cのすべての行列要素が得られ
るまで繰り返す。
とBに対する処理を例として説明する。まず、行列デー
タ格納メモリ11からはa00とb0が読み出される。
乗算回路12はa00×b0を演算して出力する。累積
加算回路14には最初はゼロが記憶されており、加算回
路13はa00×b0とゼロを加算してa00×b0を
出力する。ここまでの処理を、制御回路15が出力する
クロック信号の1サイクル内に行う。次のサイクルで、
累積加算回路14はこのa00×b0を記憶して保持
し、行列データ格納メモリ11からはa01とb1を読
み出し、乗算回路12はa01×b1を出力する。加算
回路13は、乗算回路12の出力するa01×b1と累
積加算回路14の出力するa00×b0を加算し、a0
0×b0+a01×b1を出力する。次のサイクルで
は、同様に、累積加算回路14はa00×b0+a01
×b1を記憶して保持し、行列データ格納メモリ11か
らの次のデータの読み出しと、乗算回路12と加算回路
13での処理が行われる。このような処理を繰り返すこ
とにより、積Cの1つの行列要素が演算される。従っ
て、このような処理を積Cのすべての行列要素が得られ
るまで繰り返す。
【0006】乗算回路12や加算回路13は論理ゲート
で構成され、入力されたデータに対して演算処理を行い
処理結果を出力する。従って、制御回路15は、乗算回
路12や加算回路13での処理時間を考慮して、行列デ
ータ格納メモリ11からの行列データの読み出しと、累
積加算回路14でのデータの取込みと出力を制御する。
具体的には、行列データ格納メモリ11から行列データ
の読み出しすと同時に累積加算回路14からの出力を行
い、乗算回路12と加算回路13での処理時間の合計後
に、累積加算回路14でデータの取込んで1サイクルが
終了する。
で構成され、入力されたデータに対して演算処理を行い
処理結果を出力する。従って、制御回路15は、乗算回
路12や加算回路13での処理時間を考慮して、行列デ
ータ格納メモリ11からの行列データの読み出しと、累
積加算回路14でのデータの取込みと出力を制御する。
具体的には、行列データ格納メモリ11から行列データ
の読み出しすと同時に累積加算回路14からの出力を行
い、乗算回路12と加算回路13での処理時間の合計後
に、累積加算回路14でデータの取込んで1サイクルが
終了する。
【0007】高精細な3次元グラフィックス処理では、
幾何変換処理に浮動少数点演算が用いられるが、データ
のビット数が大きいと乗算回路12や加算回路13のゲ
ートの段数が多くなり、演算データを入力してから演算
結果が得られるまでの処理時間が長くなる。そこで、演
算処理を高速化する方式として広く使用されるパイプラ
イン方式を使用することが考えられる。パイプライン方
式は、演算回路における処理を複数の段階に分けて各段
の処理時間を短くした上で、連続して演算データを供給
することで、実質的に1段当りの短い時間で連続して演
算結果が得られるようにした方式である。
幾何変換処理に浮動少数点演算が用いられるが、データ
のビット数が大きいと乗算回路12や加算回路13のゲ
ートの段数が多くなり、演算データを入力してから演算
結果が得られるまでの処理時間が長くなる。そこで、演
算処理を高速化する方式として広く使用されるパイプラ
イン方式を使用することが考えられる。パイプライン方
式は、演算回路における処理を複数の段階に分けて各段
の処理時間を短くした上で、連続して演算データを供給
することで、実質的に1段当りの短い時間で連続して演
算結果が得られるようにした方式である。
【0008】
【発明が解決しようとする課題】図2は、図1の行列演
算装置において、乗算回路12と加算回路13をそれぞ
れ2段のパイプライン構成とした場合に考えられる構成
を示す図である。行列データ格納メモリ11、第1段乗
算パイプライン16、第2段乗算パイプライン17、第
1段加算パイプライン18、第2段加算パイプライン1
9及び累積加算用レジスタ14は、すべて制御回路15
からの制御信号により、次段への出力を切り換えるタイ
ミングが制御される。
算装置において、乗算回路12と加算回路13をそれぞ
れ2段のパイプライン構成とした場合に考えられる構成
を示す図である。行列データ格納メモリ11、第1段乗
算パイプライン16、第2段乗算パイプライン17、第
1段加算パイプライン18、第2段加算パイプライン1
9及び累積加算用レジスタ14は、すべて制御回路15
からの制御信号により、次段への出力を切り換えるタイ
ミングが制御される。
【0009】図1の回路では、乗算回路12と加算回路
13での処理時間の合計で1サイクルの時間が決定され
るが、図2のように、乗算回路12や加算回路13をパ
イプラインに分割し、次段へのデータの出力を同期させ
ると、1サイクルの時間をもっとも処理時間の長い段の
処理時間とすることができるはずである。ところが、行
列演算装置では、加算回路に前のサイクルの演算結果を
入力する必要があるため、たとえ加算回路をパイプライ
ン構成としても最終段から前のデータの処理結果が出力
されるまでは最初の段の演算を開始することができな
い。また、行列データ格納メモリ11からの行列データ
の読み出しは、アドレス信号を印加することにより行わ
れるが、同時に2つのアドレス信号を印加することはで
きないため、2つの行列データの読み出しには2サイク
ルを要する。
13での処理時間の合計で1サイクルの時間が決定され
るが、図2のように、乗算回路12や加算回路13をパ
イプラインに分割し、次段へのデータの出力を同期させ
ると、1サイクルの時間をもっとも処理時間の長い段の
処理時間とすることができるはずである。ところが、行
列演算装置では、加算回路に前のサイクルの演算結果を
入力する必要があるため、たとえ加算回路をパイプライ
ン構成としても最終段から前のデータの処理結果が出力
されるまでは最初の段の演算を開始することができな
い。また、行列データ格納メモリ11からの行列データ
の読み出しは、アドレス信号を印加することにより行わ
れるが、同時に2つのアドレス信号を印加することはで
きないため、2つの行列データの読み出しには2サイク
ルを要する。
【0010】図3は、図2の構成における処理の流れを
示すタイムチャートである。サイクル0では行列データ
格納メモリ11からデータa00が読み出され、サイク
ル1では行列データ格納メモリ11からデータb0が読
み出され、これを受けて、第1段乗算パイプライン16
で演算が行われる。サイクル2では乗算の途中結果PM
00が出力され、第2段乗算パイプライン17が演算を
行う。サイクル3では、第2段乗算パイプライン17が
乗算の結果RM00を出力する。ここで、累積加算用レ
ジスタ14は前のデータがないので、ゼロを出力してお
り、第1段加算パイプライン18は、RM00と累積加
算用レジスタ14の出力するゼロを加算する処理を行
う。サイクル4では、第1段加算パイプライン18が加
算の途中結果PA00を出力し、第2段加算パイプライ
ン19が演算を行う。サイクル5では、第2段加算パイ
プライン19が加算の結果RA00を出力し、累積加算
用レジスタ14がRA00を保持する。ここまでは最後
の第2段加算パイプライン19までそれぞれ1サイクル
で処理されている。
示すタイムチャートである。サイクル0では行列データ
格納メモリ11からデータa00が読み出され、サイク
ル1では行列データ格納メモリ11からデータb0が読
み出され、これを受けて、第1段乗算パイプライン16
で演算が行われる。サイクル2では乗算の途中結果PM
00が出力され、第2段乗算パイプライン17が演算を
行う。サイクル3では、第2段乗算パイプライン17が
乗算の結果RM00を出力する。ここで、累積加算用レ
ジスタ14は前のデータがないので、ゼロを出力してお
り、第1段加算パイプライン18は、RM00と累積加
算用レジスタ14の出力するゼロを加算する処理を行
う。サイクル4では、第1段加算パイプライン18が加
算の途中結果PA00を出力し、第2段加算パイプライ
ン19が演算を行う。サイクル5では、第2段加算パイ
プライン19が加算の結果RA00を出力し、累積加算
用レジスタ14がRA00を保持する。ここまでは最後
の第2段加算パイプライン19までそれぞれ1サイクル
で処理されている。
【0011】上記の処理と並行して次のデータを入力し
て処理するが、サイクル1では、データb0の読み出し
が行われており、次のデータを読み出すことはできな
い。従って、サイクル2で次のデータa01を行列デー
タ格納メモリ11から読み出し、以下上記の処理と同様
の処理が2サイクル遅れて行われる。サイクル6では累
積加算用レジスタ14が保持した前のデータRA00を
出力するので、第1段加算パイプライン18は、RM0
1と累積加算用レジスタ14の出力するRA00を加算
する処理を行う。
て処理するが、サイクル1では、データb0の読み出し
が行われており、次のデータを読み出すことはできな
い。従って、サイクル2で次のデータa01を行列デー
タ格納メモリ11から読み出し、以下上記の処理と同様
の処理が2サイクル遅れて行われる。サイクル6では累
積加算用レジスタ14が保持した前のデータRA00を
出力するので、第1段加算パイプライン18は、RM0
1と累積加算用レジスタ14の出力するRA00を加算
する処理を行う。
【0012】図3に示すように、各乗算データの組と次
の乗算データの組との間には1サイクル演算の行われな
いサイクルが存在し、十分に高速化できないという問題
がある。この原因の1つは、上記のように、行列データ
格納メモリ11からのデータの読み出しが並行に行えな
いためである。これによる遅れは最大でも1サイクルで
ある。もう1つの原因は、加算回路では、最初の段の処
理に最終段の出力する前のデータの処理結果を必要と
し、最終段が前の処理結果を出力するまで、次の処理が
行えないことである。そのため、加算回路の段数分のお
くれが生じる。例えば、3段の加算回路であれば、3サ
イクルの遅れが生じる。
の乗算データの組との間には1サイクル演算の行われな
いサイクルが存在し、十分に高速化できないという問題
がある。この原因の1つは、上記のように、行列データ
格納メモリ11からのデータの読み出しが並行に行えな
いためである。これによる遅れは最大でも1サイクルで
ある。もう1つの原因は、加算回路では、最初の段の処
理に最終段の出力する前のデータの処理結果を必要と
し、最終段が前の処理結果を出力するまで、次の処理が
行えないことである。そのため、加算回路の段数分のお
くれが生じる。例えば、3段の加算回路であれば、3サ
イクルの遅れが生じる。
【0013】本発明は、このような遅れをなくして、よ
り一層高速化した行列演算装置を実現することを目的と
する。
り一層高速化した行列演算装置を実現することを目的と
する。
【0014】
【課題を解決するための手段】本発明の第1の態様の行
列演算装置は、上記目的を実現するため、累積加算用レ
ジスタを、加算回路の段数分備える。また、本発明の第
2の態様の行列演算装置は、上記目的を実現するため、
行列データ格納メモリを2つ設けて、乗算回路に入力す
る2つの行列データを同時に読み出せるようにする。
列演算装置は、上記目的を実現するため、累積加算用レ
ジスタを、加算回路の段数分備える。また、本発明の第
2の態様の行列演算装置は、上記目的を実現するため、
行列データ格納メモリを2つ設けて、乗算回路に入力す
る2つの行列データを同時に読み出せるようにする。
【0015】すなわち、本発明の第1の態様の行列演算
装置は、乗算回路と、加算回路と、加算回路の出力を一
時的に保持して前記加算回路に出力する累積加算用レジ
スタとを備え、加算回路が複数段のパイプラインで構成
される行列演算装置において、累積加算用レジスタは、
少なくとも加算回路のパイプラインの段数分のレジスタ
を備え、累積加算用レジスタの個数分の異なる行列要素
の演算を、各行列要素の演算は前記累積加算用レジスタ
の個数ずつずらして連続して行うことを特徴とする。
装置は、乗算回路と、加算回路と、加算回路の出力を一
時的に保持して前記加算回路に出力する累積加算用レジ
スタとを備え、加算回路が複数段のパイプラインで構成
される行列演算装置において、累積加算用レジスタは、
少なくとも加算回路のパイプラインの段数分のレジスタ
を備え、累積加算用レジスタの個数分の異なる行列要素
の演算を、各行列要素の演算は前記累積加算用レジスタ
の個数ずつずらして連続して行うことを特徴とする。
【0016】本発明の第1の態様の行列演算装置によれ
ば、少なくとも加算回路のパイプラインの段数分の累積
加算用レジスタが設けられているので、加算に必要な前
のデータの処理結果が最終段から出力されたのに合わせ
て、次のデータの乗算結果が最初の段の加算回路に入力
されるようにする。その間のサイクルには、他の異なる
行列要素の演算が、同様にずれて行われるようにする。
これであれば、無駄なサイクルがなくなるので、演算の
高速化が図れる。
ば、少なくとも加算回路のパイプラインの段数分の累積
加算用レジスタが設けられているので、加算に必要な前
のデータの処理結果が最終段から出力されたのに合わせ
て、次のデータの乗算結果が最初の段の加算回路に入力
されるようにする。その間のサイクルには、他の異なる
行列要素の演算が、同様にずれて行われるようにする。
これであれば、無駄なサイクルがなくなるので、演算の
高速化が図れる。
【0017】また、本発明の第2の態様の行列演算装置
は、乗算回路と、加算回路と、加算回路の出力を一時的
に保持して加算回路に出力する累積加算用レジスタとを
備える行列演算装置において、乗算回路へ入力する一方
の行列データをそれぞれ記憶する第1行列データ格納メ
モリと、乗算回路へ入力する他方の行列データをそれぞ
れ記憶する第2行列データ格納メモリと、第1行列デー
タ格納メモリから出力する行列データのアドレスを演算
する第1アドレス演算回路と、第2行列データ格納メモ
リから出力する行列データのアドレスを演算する第2ア
ドレス演算回路とを備え、乗算回路へ入力する2つの行
列データの読み出しが並行して行われることを特徴とす
る。
は、乗算回路と、加算回路と、加算回路の出力を一時的
に保持して加算回路に出力する累積加算用レジスタとを
備える行列演算装置において、乗算回路へ入力する一方
の行列データをそれぞれ記憶する第1行列データ格納メ
モリと、乗算回路へ入力する他方の行列データをそれぞ
れ記憶する第2行列データ格納メモリと、第1行列デー
タ格納メモリから出力する行列データのアドレスを演算
する第1アドレス演算回路と、第2行列データ格納メモ
リから出力する行列データのアドレスを演算する第2ア
ドレス演算回路とを備え、乗算回路へ入力する2つの行
列データの読み出しが並行して行われることを特徴とす
る。
【0018】本発明の第1の態様の行列演算装置によれ
ば、乗算回路へ入力する2つの行列データが並行して読
み出される、すなわち1サイクルで2つの行列データが
同時に読み出されるので、1サイクル毎に乗算処理を開
始することができる。また、本発明の数値演算プロセッ
サは、上記の第1の態様の行列演算装置を備え、行列の
添字をオペランドとして、添字で指示される乗算演算を
行い、乗算結果を累積加算用レジスタの添字によって指
定されるレジスタに格納する命令を有することを特徴と
する。
ば、乗算回路へ入力する2つの行列データが並行して読
み出される、すなわち1サイクルで2つの行列データが
同時に読み出されるので、1サイクル毎に乗算処理を開
始することができる。また、本発明の数値演算プロセッ
サは、上記の第1の態様の行列演算装置を備え、行列の
添字をオペランドとして、添字で指示される乗算演算を
行い、乗算結果を累積加算用レジスタの添字によって指
定されるレジスタに格納する命令を有することを特徴と
する。
【0019】
【発明の実施の形態】図4は、本発明の実施例の行列演
算装置の構成を示す図である。図示のように、行列デー
タ格納メモリは、第1行列データ格納メモリ23と第2
行列データ格納メモリ24とで構成され、第1行列デー
タ格納メモリ23から読み出すデータを指示するアドレ
ス信号を生成する第1アドレス演算回路21と、第2行
列データ格納メモリ24から読み出すデータを指示する
アドレス信号を生成する第2アドレス演算回路22とで
構成されている。第1行列データ格納メモリ23には一
方の行列データAが、第2行列データ格納メモリ24に
は一方の行列データBが、それぞれ記憶されている。第
1アドレス演算回路21及び第2アドレス演算回路22
は、乗算回路12や加算回路13の段数などに応じて回
路が構成されており、制御回路35から指示される行列
の大きさなどのデータに従って、自動的にアドレス信号
を発生させる。
算装置の構成を示す図である。図示のように、行列デー
タ格納メモリは、第1行列データ格納メモリ23と第2
行列データ格納メモリ24とで構成され、第1行列デー
タ格納メモリ23から読み出すデータを指示するアドレ
ス信号を生成する第1アドレス演算回路21と、第2行
列データ格納メモリ24から読み出すデータを指示する
アドレス信号を生成する第2アドレス演算回路22とで
構成されている。第1行列データ格納メモリ23には一
方の行列データAが、第2行列データ格納メモリ24に
は一方の行列データBが、それぞれ記憶されている。第
1アドレス演算回路21及び第2アドレス演算回路22
は、乗算回路12や加算回路13の段数などに応じて回
路が構成されており、制御回路35から指示される行列
の大きさなどのデータに従って、自動的にアドレス信号
を発生させる。
【0020】乗算回路12は、第1乗算パイプライン2
5と第2乗算パイプライン26と第3乗算パイプライン
27とで構成され、加算回路13は、第1加算パイプラ
イン28と第2加算パイプライン29と第3加算パイプ
ライン30とで構成されている。ここでは、乗算回路1
2と加算回路13を共に3段のパイプライン構成とした
が、どのような段数でもよく、乗算回路12と加算回路
13の段数が異なってもよい。一般に乗算回路の方が論
理ゲートの段数が多くなるので、通常は乗算回路12の
段数の方が加算回路の段数より大きい。
5と第2乗算パイプライン26と第3乗算パイプライン
27とで構成され、加算回路13は、第1加算パイプラ
イン28と第2加算パイプライン29と第3加算パイプ
ライン30とで構成されている。ここでは、乗算回路1
2と加算回路13を共に3段のパイプライン構成とした
が、どのような段数でもよく、乗算回路12と加算回路
13の段数が異なってもよい。一般に乗算回路の方が論
理ゲートの段数が多くなるので、通常は乗算回路12の
段数の方が加算回路の段数より大きい。
【0021】第3加算パイプライン30の出力を一時的
に保持する累積加算用レジスタは、第1累積加算用レジ
スタ31と第2累積加算用レジスタ32と第3累積加算
用レジスタ33で構成され、更に第1から第3累積加算
用レジスタ31から33のいずれの出力を、第1加算パ
イプライン28に入力するかを選択する選択回路34が
設けられている。第1累積加算用レジスタ31、第2累
積加算用レジスタ32及び第3累積加算用レジスタ33
は、それぞれ、制御信号35からの信号に従って第3加
算パイプライン30の出力する演算結果を取り込んで保
持する。また、選択回路34も、制御信号35からの信
号に従って第1から第3累積加算用レジスタ31から3
3のいずれかの出力を選択し、最初の演算時にはゼロを
出力する。
に保持する累積加算用レジスタは、第1累積加算用レジ
スタ31と第2累積加算用レジスタ32と第3累積加算
用レジスタ33で構成され、更に第1から第3累積加算
用レジスタ31から33のいずれの出力を、第1加算パ
イプライン28に入力するかを選択する選択回路34が
設けられている。第1累積加算用レジスタ31、第2累
積加算用レジスタ32及び第3累積加算用レジスタ33
は、それぞれ、制御信号35からの信号に従って第3加
算パイプライン30の出力する演算結果を取り込んで保
持する。また、選択回路34も、制御信号35からの信
号に従って第1から第3累積加算用レジスタ31から3
3のいずれかの出力を選択し、最初の演算時にはゼロを
出力する。
【0022】第1行列データ格納メモリ23、第2行列
データ格納メモリ24、第1乗算パイプライン25、第
2乗算パイプライン26、第3乗算パイプライン27、
第1加算パイプライン28、第2加算パイプライン29
及び第3加算パイプライン30の出力は、制御回路35
が出力する同一のクロック信号に従って制御される。図
5は、実施例における処理を示すタイムチャートであ
り、例えば、A(9,9)にB(9,1)を乗算してC
(9,1)を得る処理の例である。従って、 c0=a00・b0+a01・b1+…+a08・b8 c1=a10・b0+a11・b1+…+a18・b8 などを演算することになる。
データ格納メモリ24、第1乗算パイプライン25、第
2乗算パイプライン26、第3乗算パイプライン27、
第1加算パイプライン28、第2加算パイプライン29
及び第3加算パイプライン30の出力は、制御回路35
が出力する同一のクロック信号に従って制御される。図
5は、実施例における処理を示すタイムチャートであ
り、例えば、A(9,9)にB(9,1)を乗算してC
(9,1)を得る処理の例である。従って、 c0=a00・b0+a01・b1+…+a08・b8 c1=a10・b0+a11・b1+…+a18・b8 などを演算することになる。
【0023】ここでは、加算回路13が3段のパイプラ
インなので、まずc0、c1、c2を並行に演算し、次
にc3、c4、c5を、次にc6、c7、c8を演算す
ることになる。サイクル0では、第1行列データ格納メ
モリ23と第2行列データ格納メモリ24からa00と
b0が読み出される。サイクル1では、第1乗算パイプ
ライン25から第1段の乗算結果1M00が出力される
と同時に、次のデータの組a10とb0が読み出され
る。
インなので、まずc0、c1、c2を並行に演算し、次
にc3、c4、c5を、次にc6、c7、c8を演算す
ることになる。サイクル0では、第1行列データ格納メ
モリ23と第2行列データ格納メモリ24からa00と
b0が読み出される。サイクル1では、第1乗算パイプ
ライン25から第1段の乗算結果1M00が出力される
と同時に、次のデータの組a10とb0が読み出され
る。
【0024】サイクル2では、第2乗算パイプライン2
6からa00とb0に関する第2段の乗算結果2M00
が出力され、第1乗算パイプライン25からa10とb
0に関する第1段の乗算結果1M10が出力され、更に
次のデータの組a20とb0が読み出される。サイクル
3では、第3乗算パイプライン27からa00とb0に
関する第3段の乗算結果3M00が出力され、第2乗算
パイプライン26からa10とb0に関する第2段の乗
算結果2M10が出力され、第1乗算パイプライン25
からa20とb0に関する第1段の乗算結果1M20が
出力され、更に次のデータの組a01とb1が読み出さ
れる。
6からa00とb0に関する第2段の乗算結果2M00
が出力され、第1乗算パイプライン25からa10とb
0に関する第1段の乗算結果1M10が出力され、更に
次のデータの組a20とb0が読み出される。サイクル
3では、第3乗算パイプライン27からa00とb0に
関する第3段の乗算結果3M00が出力され、第2乗算
パイプライン26からa10とb0に関する第2段の乗
算結果2M10が出力され、第1乗算パイプライン25
からa20とb0に関する第1段の乗算結果1M20が
出力され、更に次のデータの組a01とb1が読み出さ
れる。
【0025】サイクル4では、第1加算パイプライン2
8は乗算結果3M00に第1累積加算用レジスタ31の
出力するゼロを加算して1A00を出力し、第3乗算パ
イプライン27からa10とb0に関する第3段の乗算
結果3M10が出力され、第2乗算パイプライン26か
らa20とb0に関する第2段の乗算結果2M20が出
力され、第1乗算パイプライン25からa01とb1に
関する第1段の乗算結果1M01が出力され、更に次の
データの組a11とb1が読み出される。
8は乗算結果3M00に第1累積加算用レジスタ31の
出力するゼロを加算して1A00を出力し、第3乗算パ
イプライン27からa10とb0に関する第3段の乗算
結果3M10が出力され、第2乗算パイプライン26か
らa20とb0に関する第2段の乗算結果2M20が出
力され、第1乗算パイプライン25からa01とb1に
関する第1段の乗算結果1M01が出力され、更に次の
データの組a11とb1が読み出される。
【0026】以下、同じような動作を行いながら、サイ
クル7では、第1累積加算用レジスタ31がサイクル6
で第3加算パイプライン30の出力したa00とb0に
関する最終の出力3A00(a00×b0)を出力す
る。従って、第1加算パイプライン28は乗算結果3M
01に3A00を加算して1A01を出力する。この
時、第2加算パイプライン29はa20とb0に関する
第2段の出力2A20(a20×b0)を、第3加算パ
イプライン30はa10とb0に関する第2段の出力3
A10(a10×b0)を出力する。また、第3乗算パ
イプライン27からa11とb1に関する第3段の乗算
結果3M11が出力され、第2乗算パイプライン26か
らa21とb1に関する第2段の乗算結果2M21が出
力され、第1乗算パイプライン25からa02とb2に
関する第1段の乗算結果1M02が出力され、更に次の
データの組a12とb2が読み出される。
クル7では、第1累積加算用レジスタ31がサイクル6
で第3加算パイプライン30の出力したa00とb0に
関する最終の出力3A00(a00×b0)を出力す
る。従って、第1加算パイプライン28は乗算結果3M
01に3A00を加算して1A01を出力する。この
時、第2加算パイプライン29はa20とb0に関する
第2段の出力2A20(a20×b0)を、第3加算パ
イプライン30はa10とb0に関する第2段の出力3
A10(a10×b0)を出力する。また、第3乗算パ
イプライン27からa11とb1に関する第3段の乗算
結果3M11が出力され、第2乗算パイプライン26か
らa21とb1に関する第2段の乗算結果2M21が出
力され、第1乗算パイプライン25からa02とb2に
関する第1段の乗算結果1M02が出力され、更に次の
データの組a12とb2が読み出される。
【0027】上記のような処理を繰り返すことにより、
積の各要素に関する演算が終了する毎に3個の演算結果
が続けて得られる。その後、更に別の3個の要素に関す
る演算が行われることになる。以上、A(9,9)にB
(9,1)を乗算してC(9,1)を得る処理の例につ
いて説明したが、行列の大きさはどのようなものでもよ
い。例えば、A(9,9)にB(9,9)を乗算してC
(9,9)を得る処理の場合には、上記の例と同様に、
c00とc10とc20の組、c30とc40とc50
の組、…、c01とc11とc21の組、…という順番
で演算することも可能であるが、c00とc01とc0
2の組、c03とc04とc05の組、…という順番で
演算することも可能である。
積の各要素に関する演算が終了する毎に3個の演算結果
が続けて得られる。その後、更に別の3個の要素に関す
る演算が行われることになる。以上、A(9,9)にB
(9,1)を乗算してC(9,1)を得る処理の例につ
いて説明したが、行列の大きさはどのようなものでもよ
い。例えば、A(9,9)にB(9,9)を乗算してC
(9,9)を得る処理の場合には、上記の例と同様に、
c00とc10とc20の組、c30とc40とc50
の組、…、c01とc11とc21の組、…という順番
で演算することも可能であるが、c00とc01とc0
2の組、c03とc04とc05の組、…という順番で
演算することも可能である。
【0028】なお、数値演算プロセッサに上記のような
行列演算回路を設けた場合、行列の添字をオペランドと
して、添字で指示される乗算演算を行い、乗算結果を添
字によって指定される累積加算用レジスタに格納する命
令を使用できるようにすることが望ましい。
行列演算回路を設けた場合、行列の添字をオペランドと
して、添字で指示される乗算演算を行い、乗算結果を添
字によって指定される累積加算用レジスタに格納する命
令を使用できるようにすることが望ましい。
【0029】
【発明の効果】以上説明したように、本発明によれば、
加算回路をパイプライン構成とした行列演算装置で、1
サイクルで演算が可能になり、演算速度を向上できる。
また、行列データの入力における無駄なサイクルが無く
なるので、演算速度を向上できる。
加算回路をパイプライン構成とした行列演算装置で、1
サイクルで演算が可能になり、演算速度を向上できる。
また、行列データの入力における無駄なサイクルが無く
なるので、演算速度を向上できる。
【図1】従来の行列演算装置の構成を示す図である。
【図2】演算回路をパイプライン化した場合の行列演算
装置の構成例を示す図である。
装置の構成例を示す図である。
【図3】図3の構成での処理を示すタイムチャートであ
る。
る。
【図4】本発明の実施例の行列演算装置の構成を示す図
である。
である。
【図5】実施例における処理を示すタイムチャートであ
る。
る。
12…乗算回路 13…加算回路 21…第1アドレス演算回路 22…第2アドレス演算回路 23…第1行列データ格納メモリ 24…第2行列データ格納メモリ 25…第1乗算パイプライン 26…第2乗算パイプライン 27…第3乗算パイプライン 28…第1加算パイプライン 29…第2加算パイプライン 30…第3加算パイプライン 31…第1累積加算用レジスタ 32…第2累積加算用レジスタ 33…第3累積加算用レジスタ 34…選択回路 35…制御回路
Claims (4)
- 【請求項1】 乗算回路と、加算回路と、該加算回路の
出力を一時的に保持して前記加算回路に出力する累積加
算用レジスタとを備え、 前記加算回路が複数段のパイプラインで構成される行列
演算装置において、 前記累積加算用レジスタは、少なくとも前記加算回路の
パイプラインの段数分のレジスタを備え、 前記累積加算用レジスタの個数分の異なる行列要素の演
算を、各行列要素に関する演算を前記累積加算用レジス
タの個数ずつずらして、連続して行うことを特徴とする
行列演算装置。 - 【請求項2】 請求項1に記載の行列演算装置であっ
て、 前記乗算回路へ入力する一方の行列データをそれぞれ記
憶する第1行列データ格納メモリと、 前記乗算回路へ入力する他方の行列データをそれぞれ記
憶する第2行列データ格納メモリと、 前記第1行列データ格納メモリから出力する行列データ
のアドレスを演算する第1アドレス演算回路と、 前記第2行列データ格納メモリから出力する行列データ
のアドレスを演算する第2アドレス演算回路とを備え、
前記乗算回路へ入力する2つの行列データの読み出しが
並行して行われる行列演算装置。 - 【請求項3】 乗算回路と、加算回路と、該加算回路の
出力を一時的に保持して前記加算回路に出力する累積加
算用レジスタとを備える行列演算装置において、 前記乗算回路へ入力する一方の行列データをそれぞれ記
憶する第1行列データ格納メモリと、 前記乗算回路へ入力する他方の行列データをそれぞれ記
憶する第2行列データ格納メモリと、 前記第1行列データ格納メモリから出力する行列データ
のアドレスを演算する第1アドレス演算回路と、 前記第2行列データ格納メモリから出力する行列データ
のアドレスを演算する第2アドレス演算回路とを備え、 前記乗算回路へ入力する2つの行列データの読み出しが
並行して行われることを特徴とする行列演算装置。 - 【請求項4】 請求項1又は2に記載の行列演算装置を
備え、 行列の添字をオペランドとして、該添字で指示される乗
算演算を行い、乗算結果を前記累積加算用レジスタの添
字によって指定されるレジスタに格納する命令を有する
ことを特徴とする数値演算プロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20691097A JPH1153344A (ja) | 1997-07-31 | 1997-07-31 | 行列演算装置及びそれを有する数値演算プロセッサ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20691097A JPH1153344A (ja) | 1997-07-31 | 1997-07-31 | 行列演算装置及びそれを有する数値演算プロセッサ |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH1153344A true JPH1153344A (ja) | 1999-02-26 |
Family
ID=16531109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP20691097A Withdrawn JPH1153344A (ja) | 1997-07-31 | 1997-07-31 | 行列演算装置及びそれを有する数値演算プロセッサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH1153344A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005337800A (ja) * | 2004-05-25 | 2005-12-08 | Yokogawa Electric Corp | 時間測定装置 |
KR100628316B1 (ko) | 2005-07-18 | 2006-09-27 | 엠텍비젼 주식회사 | 변환 행렬 연산 장치 |
-
1997
- 1997-07-31 JP JP20691097A patent/JPH1153344A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005337800A (ja) * | 2004-05-25 | 2005-12-08 | Yokogawa Electric Corp | 時間測定装置 |
KR100628316B1 (ko) | 2005-07-18 | 2006-09-27 | 엠텍비젼 주식회사 | 변환 행렬 연산 장치 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH10187438A (ja) | 乗算器の入力に対する遷移を減少させる方法 | |
JP3740516B2 (ja) | 共分散行列を生成する方法および装置 | |
US6189021B1 (en) | Method for forming two-dimensional discrete cosine transform and its inverse involving a reduced number of multiplication operations | |
JPH0444970B2 (ja) | ||
JPH1153344A (ja) | 行列演算装置及びそれを有する数値演算プロセッサ | |
JP3333779B2 (ja) | 行列演算装置 | |
JP3277399B2 (ja) | 画像処理用汎用プロセッサ | |
JPS616771A (ja) | 画像信号処理装置 | |
US6314132B1 (en) | Microprocessor structure and method for implementing digital filter operations | |
JP5072558B2 (ja) | データ処理装置 | |
JP2901648B2 (ja) | ディジタル信号処理プロセッサ及びその制御方法 | |
JP3441847B2 (ja) | データメモリを有するプロセッサ | |
JP2002319844A (ja) | デジタルフィルタおよびその処理方法 | |
JP2697619B2 (ja) | Nポイントfft専用プロセッサ | |
JP2000293357A (ja) | マイクロプロセッサ | |
JP3723311B2 (ja) | 並列演算プロセッサ | |
JPH09325953A (ja) | プロセッサおよびデータ処理装置 | |
JPS6220590B2 (ja) | ||
JPH08287037A (ja) | デジタル信号処理プロセッサ | |
JPH1063639A (ja) | 演算装置 | |
JP3693873B2 (ja) | マスクビット数演算装置、ベクトル処理装置、情報処理装置 | |
JPH03139773A (ja) | ディジタル画像処理装置 | |
JPS62111362A (ja) | デ−タ処理装置 | |
JPH0192839A (ja) | メモリリードインターフェース回路 | |
JPS6152511B2 (ja) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20041005 |