説明

並列処理装置

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は例えばベクタ演算を高速に実行するための専用プロセッサや画像及び音声を実時間処理するデジタルシグナルプロセッサ(DSP)に適用され、演算回路と、その演算回路に演算の対象となるデータを供給し、演算結果を格納するために用いられる多バンクに分割された2ポートメモリとを有し、外部入力データバス及び外部出力データバスに接続され、並列に動作する複数のデータプロセッシングユニットを用いてデータを処理する並列処理装置に関する。
【0002】
【従来の技術】図2に従来の並列処理装置を示す。データプロセッシングユニット111 〜11n は外部入力データバス12及び外部出力データバス13に並列に接続されている。各データプロセッシングユニット111 〜11n はそれぞれ2入力14,15、1出力16をもつ演算回路17と、2組のランダムアクセスポートを有し、その一方は読み/書きポートR/Wである2ポートメモリ(RAM)18,19とを備えている。演算回路17の出力データと外部入力データバス12のデータとの一方がセレクタ21で選択されて2ポートメモリ18の一方のポートR/Wに供給され、また演算回路17の出力データと外部入力データバス12のデータとの一方がセレクタ22で選択されて2ポートメモリ19の一方のポートR/Wに供給される。2ポートメモリ18,19の各他方のポート12から読み出されたデータはそれぞれ演算回路17の入力14,15へ供給されると共にその一方がセレクタ23で選択されて外部出力データバス13へ供給される。
【0003】各データプロセッシングユニット内で、2ポートメモリ18,19からそれぞれ読み出したデータAi ,Bi をポートRから演算回路17の入力14,15へ供給して演算回路17内でZi =Ai i :任意の演算)を行い、その演算結果Zi を2ポートメモリ18,19の一方に、そのポートR/Wを通じて書き込むことを1タイムスロット内で行う。つまりデータAi ,Bi ,Zi に対する各アドレスを同時に指定するアドレス演算を連続的に行うことができる。また例えば2ポートメモリ18,19から同時に読み出したデータについて演算回路17で演算し、演算回路17の出力データをメモリ18に書き込むと同時に、2ポートメモリ19に外部入力データバス12からのデータを書き込むことが可能であり、そのメモリ19への書き込みが終了すると、同時に、メモリ19に書き込まれた新しいデータとメモリ18内のデータとによるベクタ演算を可能としている(例1)。
【0004】あるいは最初のステップでメモリ18,19の各データをそのポートRから読み出して演算回路17へ送出し、その演算結果をメモリ18のポートR/Wを通じて書き込む動作と並行して、メモリ19のポートR/Wから読み出したデータを外部出力データバス13へ出力する。次のステップで逆にメモリ18,19から読み出したデータを演算回路17で演算し、その結果をメモリ19へ書き込むのと並行してメモリ18のポートR/Wから読み出したデータを外部出力データバス13へ出力する。これを繰り返すことによりメモリ18,19の役割をパイプライン状に切り替えたオーバヘッドのない処理を可能としている(例2)。
【0005】
【発明が解決しようとする課題】このように従来の並列処理装置においては、3アドレス演算を可能とするために各データプロセッシングユニットに2個の2ポートメモリ18,19を設けている。それだけ各データプロセッシングユニットの回路規模が大きくなり、このデータプロセッシングユニットを多数集積して並列処理装置を作る場合、占有面積や消費電力の点で望ましくない。
【0006】
【課題を解決するための手段】この発明によれば第3のデータバスが設けられ、また各データプロセッシングユニットには1個の2ポートメモリのみ設けられ、その2ポートメモリの一方の読み/書きポートR/Wから読み出されたデータと外部出力データバスのデータとの一方が第1セレクタで選択されて演算回路の一方の入力へ供給され、演算回路の出力データと外部入力データバスのデータとの一方が第2セレクタで選択されて2ポートメモリのポートR/Wへ供給され、2ポートメモリの他方のポートから読み出されたデータがマルチプレクサにより、演算回路の他方の入力と、外部出力データバスと、第3のデータバスとの何れかに選択的に供給され、演算回路の出力は外部出力データバス及び第3のデータバスに接続される。更にこのようなデータプロセッシングユニットの複数個に対し、2ポートメモリが共通に設けられる。この共通メモリの一方の読み/書きポートR/Wに、外部入力データバスのデータと第3のデータバスのデータとの一方が第3セレクタで選択されて供給され、その共通メモリの一方のポートR/Wから読み出されたデータと、外部出力データバスのデータとの一方が第4セレクタで選択されて外部出力ポートへ出力され、共通メモリの他方のポートは外部出力データバスに接続される。
【0007】
【実施例】図1にこの発明の実施例を示し、図2と対応する部分に同一符号を付けてある。この発明では外部入力データバス12及び外部出力データバス13の他に第3のデータバス25が設けられる。また各データプロセッセッシングユニット111 〜11n には1つの2ポートメモリ18のみが用いられる。2ポートメモリ18は少くとも二つのバンクを備え、各バンクには一つのベクタ長のデータを格納することができ、2組のランダムアクセスポートを有するRAMであり、その少くとも一方のポートは読み/書きポートR/Wである。このポートR/Wに対し、従来と同様に演算回路17の出力データと外部入力データバス12のデータとの一方を第2セレクタ21で選択して書き込みデータとして供給することができる。更にこのポートR/Wから読み出されたデータと外部出力データバス13のデータとの一方が第1セレクタ26で選択されて演算回路17の入力14へ供給される。この場合、第1セレクタ26へのデータ出力経路と、第2セレクタ21からのデータ入力経路とが相互に影響しないように、第1セレクタ26とポートR/Wとの間にスリーステイトバッファ27が挿入され、第2セレクタ21とポートR/Wとの間にスリーステイトバッファ28が挿入される。
【0008】また2ポートメモリ18の他方のポートR(この例では読み出し専用とされた場合である)から読み出されたデータはマルチプレクサ29により演算回路17の入力15と、外部出力データバス13と、第3のデータバス25との何れかに選択的に供給される。更にこの発明では2ポートRAMが共通メモリ31として設けられる。共通メモリ31の少くとも一方のポートは読み/書きポートR/Wとされている。外部入力データバス12のデータと、第3のデータバス25のデータとの一方が第3セレクタ32で選択されて書き込みデータとして共通メモリ31のポートR/Wへ供給される。共通メモリ31のポートR/Wから読み出されたデータと外部出力データバス13のデータとの何れかが第4セレクタ33で選択されて外部出力ポート34へ出力される。この場合も第3セレクタ32及び第4セレクタ33と共通メモリ31のポートR/Wとの間にそれぞれトライステートバッファ35,36が挿入されている。共通メモリ31の他方のポートR(この例では読み出し専用とされた場合である)が外部出力データバス13に接続される。
【0009】このように構成されているから、各プロセッシングユニット111 〜11n において、2ポートメモリ18の2つのポートR/W、Rからそれぞれ読み出したデータXi ,Yi を演算回路17へ供給して下記の任意の演算を行い、その演算結果をi=1からmまで累積加算して、Xi ii ,Yi を要素とするベクタ長mの2アドレスベクタ演算を行うことができる。つまり各タイムスロットごとに2ポートメモリ18の二つのポートよりのデータのためにそれぞれアドレス指定を行い、その演算結果は演算回路17内に保持した1つ前の演算結果に累加算して演算回路17内に保持しておけばよく、各タイムスロットでの演算結果を格納するアドレスの指定は行わない。
【0010】共通メモリ31は例えば次の3通りに使用される。
a.3アドレス演算を行うとき。
共通メモリ31のポートRから読み出したデータを外部出力データバス13を通じて各プロセッシングユニット111 〜11n の演算回路17へ共通の係数データAi として供給し、各データプロセッシングユニット111 〜11n ではそれぞれその2ポートメモリ18のポートRから読み出したデータXi と下記の演算を並列に実行し、その演算結果Yi を各2ポートメモリ18にポートR/Wを通じて書き込む。
【0011】Yi =Ai ib.各データプロセッシングユニットの演算結果を順次取り込むとき。
各データプロセッシングユニット111 〜11n でそれぞれ累算のような演算を並列に実行し、その最後の演算結果を演算回路17内のレジスタから第3のデータバス25を通じて共通メモリ31に順次取り込む。あるいは各演算回路17の最後の演算結果を1度それぞれ自己の2ポートメモリ18に格納し、その後、第3のデータバス25を通じて共通メモリ31に順次取り込む。
c.外部に対するデータの入出力バッファとして使用するとき。
【0012】外部入力ポートからのデータをポートR/Wを通じて共通メモリ31に書き込むことや、共通メモリ31のポートRから読み出したデータを外部出力ポート34へ出力することを、各データプロセッシングユニット111 〜11n の演算と並列に実行させ、転送に伴うオーバヘッドを生じさせない。従来の技術の項で説明した例1を実行させるには2ポートメモリ18のポートR、共通メモリ31のポートRからそれぞれ読み出したデータを演算回路17で演算し、その演算結果を、2ポートメモリ18にポートR/Wを通じて書き込むことと同時に、外部からのデータを共通メモリ31にポートR/Wを通じて書き込み、共通メモリ31への書き込みが終了した時に、この共通メモリ31に書き込まれた新しいデータを用いてベクタ演算を行うことができる。
【0013】また前記例2を実行させるには、最初のステップで2ポートメモリ18、共通メモリ31の各ポートRから読み出したデータを演算回路17で演算し、その演算結果を2ポートメモリ18にポートR/Wを通じて書き込む動作と並行して共通メモリ31のデータをポートR/Wから読み出して外部へ出力する。次のステップでは逆に演算回路17での演算結果を共通メモリ31にポートR/Wを通じて書き込むことと並行して2ポートメモリ18からポートR/Wを通じて読み出したデータを外部へ出力する。これを繰り返すことにより、2ポートメモリ18と共通メモリ31との役割をパイプライン状に切り替えたオーバヘッドのない処理が可能である。
【0014】
【発明の効果】以上述べたようにこの発明によれば各データプロセッシングユニットには1個の2ポートメモリしか用いておらず、データプロセッシングユニットの回路規模を従来よりも小さくすることができ、データプロセッシングユニットを多数集積する並列処理装置において占有面積や消費電力を小さくすることができる。
【0015】なお、データプロセッシングユニットがそれぞれ独立な3アドレス演算を同時に行うことが比較的少ない点に着目してこの発明では、前述したように3アドレス演算の際は共通メモリ31を、各データプロセッシングユニットが共通に利用するようにして、データプロセッシングユニット間のメモリ数を1に減少したものである。
【図面の簡単な説明】
【図1】この発明の実施例を示すブロック図。
【図2】従来の並列処理装置を示すブロック図。

【特許請求の範囲】
【請求項1】 2入力1出力の演算回路とその演算回路へ演算対象となるデータを供給し、その演算結果を格納するために用いられるメモリとを有するデータプロセッシングユニットの複数個が、外部入力データバス及び外部出力データバスに並列に接続された並列処理装置において、上記各データプロセッシングユニットに接続された第3のデータバスが設けられ、上記各データプロセッシングユニットの上記メモリは2組のランダムアクセスポートを有し、少くともその一方は読み/書きポートである2ポートメモリであり、上記各データプロセッシングユニットは上記2ポートメモリの一方の読み/書きポートから読み出されたデータと上記外部出力データバスのデータとの一方を選択して上記演算回路の一方の入力へ供給する第1セレクタと、上記演算回路の出力データと上記外部入力データバスのデータとの一方を選択して上記一方の読み/書きポートへ供給する第2セレクタと、上記2ポートメモリの他方のポートから読み出されたデータを、上記演算回路の他方の入力と、上記外部出力データバスと、上記第3のデータバスとの何れかに選択的に供給するマルチプレクサとを備え、上記演算回路の出力は上記外部出力データバス及び上記第3のバスに接続され、2組のランダムアクセスポートを有し、少くともその一方は読み/書きポートである共通メモリと、その共通メモリのその一方の読み/書きポートに、外部入力データバスのデータと、上記第3のデータバスのデータとの一方を選択して供給する第3セレクタと、上記共通メモリの上記一方の読み/書きポートから読み出されたデータと、上記外部出力データバスのデータとの一方を選択して外部出力ポートへ出力する第4セレクタとを備え、上記共通メモリの他方のポートは上記外部出力データバスに接続されていることを特徴とする並列処理装置。

【図1】
image rotate


【図2】
image rotate


【特許番号】第2514473号
【登録日】平成8年(1996)4月30日
【発行日】平成8年(1996)7月10日
【国際特許分類】
【出願番号】特願平3−15502
【出願日】平成3年(1991)2月6日
【公開番号】特開平4−255064
【公開日】平成4年(1992)9月10日
【出願人】(000004226)日本電信電話株式会社 (13,992)
【参考文献】
【文献】特開昭63−216170(JP,A)