JPH0642237B2 - 並列処理装置 - Google Patents

並列処理装置

Info

Publication number
JPH0642237B2
JPH0642237B2 JP58246936A JP24693683A JPH0642237B2 JP H0642237 B2 JPH0642237 B2 JP H0642237B2 JP 58246936 A JP58246936 A JP 58246936A JP 24693683 A JP24693683 A JP 24693683A JP H0642237 B2 JPH0642237 B2 JP H0642237B2
Authority
JP
Japan
Prior art keywords
processor
data
shift
control
processors
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.)
Expired - Lifetime
Application number
JP58246936A
Other languages
English (en)
Other versions
JPS60140456A (ja
Inventor
整 松島
博唯 上田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP58246936A priority Critical patent/JPH0642237B2/ja
Priority to EP84116392A priority patent/EP0147857A3/en
Publication of JPS60140456A publication Critical patent/JPS60140456A/ja
Publication of JPH0642237B2 publication Critical patent/JPH0642237B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8015One dimensional arrays, e.g. rings, linear arrays, buses

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、情報処理を高速に実行するための並列処理装
置に係り、特に画像図形などの2次元状のデータを複数
個の計算手段(以降プロセツサと呼ぶ)を用いて処理す
る画像処理に好適な並列処理装置に関する。
〔発明の背景〕
画像処理の高速化方式の一つに従来からプロセツサを格
子状に配列し、各プロセツサに画像データを同時に供給
し、並列的に演算を実行させる方式があつた。その代表
例として米国で開発されたILLIAC IV(元岡達著「計
算機システム技術」オーム社P119)があるが、その
基本的構成は第1図に示すようなものである。図中、1
−1は制御部、1−2はメモリ、1−3−1,1−3−
2〜1−3−nはプロセツサ群である。この方式は、画
像データの2次元配列と同様にプロセツサ群が2次元的
に配置されているため、画像処理で多用される2値化や
画像間加減算などのいわゆる画素単位処理で、極めて高
い並列処理効果を持つ。またこの効果を、空間微分など
いわゆる局所領域処理でも発揮させるために、この従来
方式では、格子状に配置されたプロセツサ間で上下左右
の4方向、又は、第1図には示していないがそれに斜め
の4方向、右上、右下、左上、左下も加えた8方向の接
続線を持つている。この接続の場合、格子配列の周辺部
で、対応するプロセツサが存在しないことがある。そこ
で周辺部では、メモリ1−2とデータ転送が可能となつ
ている。今、第1図中左から右へ、プロセツサ間でデー
タ転送する場合を例にとつてこのプロセツサ間通信の手
順を示す。まず、第1図中行方向データ入出力制御1−
4,1−5、列方向データ入出力制御1−6,1−7に
対して、制御部1−1から右方向データ転送制御信号が
出力される。この転送制御信号は、信号線1−14を使
つて転送される。これによつて、行方向データ入出力制
御1−4はメモリ1−2からの画像データをプロセツサ
に送り込むモードとする。すなわちデータ線1−15か
ら、1−4を経てプロセツサ行列の左端の各プロセツサ
へ信号を転送するよう信号線の入出力制御を行なう。プ
ロセツサへの入力線は第1図中の1−16である。一
方、その反対側の行方向データ入出力制御1−5は、プ
ロセツサ群からの信号1−17を信号線1−18へ送る
ように制御する。また、その時、列方向データ入出力制
御1−6,1−7は、稼動しない。以上が左から右への
データ転送例であるが、右から左の場合は全くこの逆と
なる。また上から下、下から上の場合は、上述の説明
上、行と列を入れ換えたと同じ方法をとる。なお、この
データシフトは、各プロセツサ所定の値をメモリから入
力する場合にも使用される。また、周囲において、画像
メモリを何ら参照する必要のない場合は、行方向データ
入出力制御、列方向データ入出力制御はそれぞれ予め指
定された境界値、例えば“0”を設定し、プロセツサに
入力する。また、プロセツサ行列の左端と右端、又は、
上端と下端をそれぞれ結合したリング状の形でのプロセ
ツサ接続をしたい場合は、各方行データ入出力制御とメ
モリ1−2間とのデータ転送を制御する1−19の中
で、その結合したい線同志を接続すればよい。この接続
の指示は制御部1−1からの信号線1−20を通じて行
なわれる。なお、この1−19への入出力線を非常に多
くなる場合は、この回路1−19と、行、列方向データ
入出力制御1−4〜1−7をまとめた回路にすると良
い。その場合でも制御の方法は上述の説明の内容とほぼ
同じである。また、このプロセツサ間転送で、それに同
期してメモリデータ転送が必要の場合は、信号線1−2
1を使つてメモリ1−2が制御される。以上の方法によ
つてプロセツサ間転送を実現していた。
また、必ずしも全プロセツサを稼動させる必要のない場
合や特定のプロセツサのみを動かしたい場合のように、
各プロセツサの動きを制御するために各プロセツサに物
理的な行アドレス、列アドレスを持たせている。以下こ
の動きを説明する。制御部1−1から送られるプロセツ
サアドレス線1−9の情報は、行アドレス制御1−1
0、列アドレス制御1−11でデコードされ、それぞれ
プロセツサ群の行数,列数に応じた本数の行アドレス線
1−12、列アドレス線1−13がON/OFF制御さ
れる。このアドレス線はその中の1本のみONになつた
り,1本のみOFFになつたり、全部ONになつたりす
るよう各制御が働く。そこで、その行アドレス線、列ア
ドレス線の制御により、その交点となる特定のプロセツ
サを駆動させたり、特定の行アドレスをもつ一行全部又
は、列アドレスを持つ1列全部の、あるいはすべてのプ
ロセツサが駆動したりする。この駆動制御のもとに、駆
動状態にあるプロセツサは、制御部1−1から送られる
コマンド1−8を解読し実行する。以上が従来例として
あげた第1図の動作方法である。
これらの手段により、この従来方式は、周囲画素を参照
する必要のある複雑な画像処理においても高速性を発揮
する長所を持つている。しかし、一方で、この周囲との
接続機構のために、この従来方式は最初インプリメント
された行の数と列の数で配列が完全に固定してしまう。
例えば、距離変換などという画像処理で非常に多く使用
されている。伝播型の処理においては、配列上の一部分
しか1度に処理できず、並列処理の効果がないという大
きな欠点を持つていた。また、この接続機構に含まれる
信号本数が多くなり、実装も大規模になるという欠点も
有していた。この欠点を第2図を用いて説明する。第2
図は、第1図中のプロセツサ群の中から、1つプロセツ
サを取り出し、その概略構成を示したものである。今こ
の1つのプロセツサを一般的にi番目のプロセツサとい
う意味で記号1−3−iで示す。プロセツサは、制御ユ
ニツト2−1、記憶演算ユニツト2−2、他プロセツサ
とのデータ転送を行なうゲート群2−20,2−21,
2−22,2−23,2−24,2−25,2−26,
2−27、および信号線群からなる。この記憶演算ユニ
ツトは、記憶部として大容量のランダムアクセスメモリ
を含むこともある。プロセツサは、コマンドデータ1−
8を制御ユニツト2−1で解読し、それが記憶、演算コ
マンドの場合記憶演算ユニツトでそのコマンドを実行す
る。そのためデータが2−16であるコマンドがリセツ
ト、スタートなどの制御コマンドの場合は、制御ユニツ
ト内で実行する。また、プロセツサ間データ転送コマン
ドの場合は、信号2−3〜2−10を使つて、それぞれ
ゲート群2−20〜2−27を制御するとともに、デー
タ2−16を使つて、記憶演算ユニツトのデータ入力2
−15、データ出力2−12の処理を行なう。プロセツ
サ間の接続は、左方向が2−13、右方向2−14、上
方向2−21、下方向2−20を使つてそれぞれ行なわ
れる。プロセツサ群の行列の周辺のプロセツサでは、こ
れらの信号の1つ、角のプロセツサでは2つが、第1図
中の行方向データ入出力制御1−4、又は1−5のいず
れか一方、又は列方向データ入出力制御1−6、又は1
−7のいずれか一方に接続される。この信号は、通常ビ
ツト数が多いため、これらの信号を送る信号線やゲート
の数が非常に多くなる。第2図の構成の動作を、プロセ
ツサ間でデータを右から左へ転送する場合を例にして以
下に説明を行なう。コマンドデータ1−8を左方向転送
コマンドてすると、制御ユニツト2−1は、ゲート制御
信号2−3,2−6をON状態とし、他のすべてをOF
F状態とする。ゲート2−20は、そのゲート制御信号
がON状態になることにより、記憶演算ユニツト2−2
の出力データ2−12を左方向プロセツサ間接続データ
2−13へ送る。その際この出力データ2−12を右方
向、上、下方向へ送るべきゲート2−22,2−24,
2−27はいずれも、そのゲート制御信号がOFF状態
により、データ転送が行なわれない。一方、右方向のプ
ロセツサからのデータ2−14は、ゲート2−23を経
て、記憶演算ユニツト2−2の入力データ2−15へ接
続される。その際入力データ2−15と結合されてい
る。左方向、上方向、下方向からのデータ入力2−1
3、2−21、2−20のゲート2−21、2−25、
2−26はいずれも、その制御信号がOFF状態にあ
る。なお、特定のプロセツサのみを動作させる時等のた
めに、列アドレス線の一つ1−12、行アドレス線の1
つ1−13とAND回路2−30を使用する。この図に
示すように、データ線の本数が多くなるため、実装規模
が大きくなる。また、本来アレイ型並列処理は集積回路
向と言われているにもかかわらず、装置の大型とコスト
高を招くことになる。
以上説明したように、従来方式で並列処理効果が極端に
悪くなる処理が存在したり、装置が大型化、コスト高に
なるという欠点があり、その普及が図られなかつた。
〔発明の目的〕
本発明の目的は、アレイ方式の並列処理装置において、
並列処理効果をあげるために画像処理の内容に応じてア
レイの行の数、列の数を変更した配置をとれることを可
能とするプロセツサの結合及び制御方式を持つ並列処理
装置を提供することにある。また、別の目的は、小型化
し実装容易にした並列処理装置を提供することにある。
〔発明の概要〕
上記目的を達成するために、本発明はまず、各プロセツ
サをリング状に結合し、そのリングに沿つて画像データ
や結果データを移動させる方式をとる。これにより、プ
ロセツサ間の接続に要するハードウエア量を削減すると
ともに、上記リングに沿つたデータの移動量を制御す
る。これにより、アレイの構成に応じた4方向又は8方
向のデータ転送を可能とする。この移動量は、必要とす
る行の数、列の数によつてプログラムで計算できるの
で、本方式を用いることにより、用意されているプロセ
ツサ数を因数分解する任意の2つの数字をアレイの行と
列とするプロセツサ配置が実現できることになる。しか
し、これだけでは、行列の周辺のプロセツサに対する処
理が充分ではない。そこで本発明は、前述のリング状接
続に加え、各プロセツサ内に、それ自身の行番号と列番
号を記憶する記憶部を設けるとともに、その内容によつ
てリングを移動するデータを利用するか否かを判定する
制御機構を設けることを特徴とする。本発明により、単
純な画素単位処理から複雑な伝播処理に至る広汎な画像
処理において、高速性が発揮できるアレイ方式の並列処
理装置を提供することができる。
〔発明の実施例〕
以下、図面を用いて本発明の一実施例を詳細に説明す
る。
第3図は、n個のプロセツサをリング状に接続するバス
を設けた並列処理装置である。本装置は、制御部3−
1、プロセツサ群3−2(0),3−2(1),…,3
−2(n−1),リングバス部3−3より構成される。
リングバス部3−2は、更に、各プロセツサと直接デー
タのやりとりが可能なリングバスノードレジスタ部3−
4(0),3−4(1),…,3−4(n−1)、その
ノードレジスタ部間を接続するリングバス3−5、その
ノードレジスタ部のデータセツト、データ転送を制御す
るリングバス制御3−6、およびその制御情報をノード
レジスタ部に伝える信号3−8よりなる。リングバス制
御3−6は、制御部3−1との制御信号3−7に基づき
リングバス3−5上のデータをノードレジスタ部間でど
れだけ移動させるかを決定し、その移動量に相当するシ
フトクロツクを、信号3−8の一部を通じて各ノードレ
ジスタ3−4(0)〜3−4(n−1)に送る。信号線
3−12(0),3−12(1),…,3−12(n−
1)はそれぞれプロセツサ群3−2(0),3−2
(1),…,3−2(n−1)とノードレジスタ部群3
−4(0),3−4(1),…,3−4(n−1)を接
線する信号線である。また、制御部3−1がプロセツサ
群3−2(0),…3−2(n−1)を制御したり、そ
れらと情報のやりとりをしたりするために、制御バス3
−9、データバス3−10、アドレスバス3−11がそ
れぞれ設けられている。プロセツサ群には、0からn−
1の論理番号がそれぞれのプロセツサに付されている。
この順番は、各プロセツサに接線されているリングバス
ノードレジスタ部3−4(0)〜3−4(n−1)のリ
ングバス3−5上での接続の順番と一致している。制御
部3−1より、アドレスバス3−11を使うことによ
り、プロセツサ群の中の特定の論理番号kを持つプロセ
ツサ3−2(k)を制御することができる。以降この信
号kは、0〜(n−1)の中の1つの値を一般的に示す
ものとする。なお、アドレスバス3−11の機能として
は、後述するごどく単に特定の1つのプロセツサ3−2
(k)のみを指定するばかりでなく、全プロセツサを指
定する機能を持たせることもできる。プロセツサ3−2
(k)には少なくとも2つの数字を記憶することのでき
るメモリ又はレジスタ(これを今後一般的にレジスタと
呼んで説明していく)3−13(k),3−14(k)
が設けられる。また、制御部にも、少なくとも3つの数
を記憶できるレジスタ又はメモリ(これも一般的にレジ
スタと呼ぶ)3−15,3−16,3−17が設けられ
ている。レジスタ3−15にはプロセツサ群の総数n
が、また、3−16,3−17にはnを因数分解する2
つの自然数が記憶されるものとする。この2つの自然数
は、制御部内のプロセツサによつて書き換え可能であ
り、任意な時に、変更可能であるものとする。これは、
制御部として、例えば通常のマイクロプロセツサを用い
ることにより簡単に実現することができる。
さて、以上の構成の中で、制御部内のレジスタ3−1
5,3−16,3−17、プロセツサ群内のレジスタ3
−13(k),3−14(k)は、第3図の並列処理装
置において画像を分割して処理する場合に特に使用され
る。以下、本装置において画像を処理する例を詳述す
る。まず画像の分割法を第4図を用いて説明する。
第4図は画像データ4−1を、横I個、縦J個の合計I
×J個の分割画面4−2(0),4−2(1),…,4
−2(k),…,4−2(n−1)に分割した例を示し
たものである。ここに、I,Jは、第3図中、制御部3
−1内のレジスタ3−16,3−17に記憶されている
2つの数とする。すなわち、この数はnを因数分解する
2数でI×J=nとなるものである。各分割画像4−2
(0),…,4−2(n−1)は、隣接する画像間で適
当なオーバラツプ部分を持つようにする。オーバラツプ
の量については、画像処理の内容にもよる。例えば、2
値化などの画素単位処理ではオーバラツプは不要である
が、フイルタリング処理ではそのフイルタの縦横の幅か
ら1減した値だけオーバラツプ量が最低必要となる。し
かし、処理毎に毎回オーバラツプ量を変更するのは、ソ
フウウエア量や処理時間のオーバヘツド量を増やすこと
になるので、一般的にはその応用分野で使用される画像
処理全体の内容に必要なオーバラツプ量の最大値をあて
たり、または、それを超える2の巾乗の値を使うのが良
い。また、画面の大きさによつて、第4図の分割画面4
−2(I−1),4−2(n−I),4−2(n−1)
で示すように、端の部分で、分割画像が余分の領域をカ
バーする場合も生ずるが、その場合はその余分な領域の
処理結果を無視するようにすればよい。
ここで、この方法で分割された分割画像群に対して、縦
方向に0,…,J−1の縦座標を、又、横方向に0,
…,I−1の横座標を与え、その縦と横の位置に対応す
る座標(0,0),(0,1),…,(J−1,I−
1)を割りふるものとする。このようにすると分割画像
4−2(k)のkの値と、その座標(i,j)のi,j
の値との間には (但し記号[ ]は、ガウス記号を表わす。)なる関係
が成立する。本発明での処理方法は、原則としてこの分
割画面4−2(k)を論理番号kをもつプロセツサ3−
2(k)に分担処理させる方法で、プロセツサ群による
並列処理を行なう。その次に、隣接するプロセツサ間で
オーバラツプ分のつき合わせや補充のためのデータの転
送を行なう。これによつて、分割画像の境界部での処理
ができる。
以上の分割法とその第3図の装置での処理を前提に、以
下、本発明におけるプロセツサ間データ転送法と、その
指定法を詳細に説明する。
まず、第3図に示す装置のn個のプロセツサ群3−2
(0),…,3−2(n−1)の個々のプロセツサ3−
2(k)に、それぞれの論理番号kを入力する。この処
理は、各プロセツサ3−2(k)が制御部3−1からア
ドレスバス3−11を用いて物理的にアドレスが付され
ているため容易に行うことができる。
次に、各プロセツサにそれぞれ与えられた論理番号kを
用いて前述の式(1),(2)と同様の計算を実行させる。す
なわち論理番号をkとすると、 (但し記号[ ]は、ガウス記号を表わす。) この求まつたj,iをプロセツサ3−2(k)内の2つ
のレジスタ3−13(k),3−14(k)に格納して
おく。この(j,i)の組をプロセツサ3−2(k)の
座標と呼ぶ。プロセツサ3−2(k)の座標は、前述し
た分割画像4−2(k)の座標と1対1に対応してい
る。そこで、その対応関係で分割画像の処理分担を行
う。この処理の後、リングバス部3−3を用いてプロセ
ツサ間の転送を行なう。この際、座標(j,i)のプロ
セツサ3−2(k)からそれに接続されたリングバスノ
ードレジスタ部3−4(k)にデータを書き込んで、そ
れをノードレジスタ部3−4(k+)までノードレジ
スタ部個分リングバス上で移動させ、再び、プロセツ
サ3−2(k+)に取込むとする。そのプロセツサ3
−2(k+)の中のレジスタ3−13(k+),3
−14(k+)の値を、それぞれi′,j′とする
と、k+とこのi′,j′の間には、(3),(4)式と同
様の関係、すなわち、 が成り立つ。以上の説明によつて座標(j,i)のプロ
セツサから座標(j′,i′)のプロセツサへのデータ
転送が行われたことになる。いいかえれば座標(j,
i)の分割画像4−2(k)内の処理結果が、座標
(j′,i′)を持つ分割画面4−2(k+)内へ送
られることになる。さて第1図に示した従来方法では、
隣接するプロセツサ間で4方向にデータ転送が可能であ
つた。すなわち、第3図での装置でいえば、座標(j,
i)を持つプロセツサが 右方向では座標(j,i+1) 左方向では座標(j,i−1) 上方向 〃 (j−1,i) 下方向 〃 (j+1,i) とそれぞれデータ転送が行なわれていたことになる。そ
こで次に上述した(j,i)と(j′,i′)の関係を
調べてみる。
いま、(5),(6)式において=1とおくと、 I−2i=0 …(7) のiについて が成り立つ。この式は、式(7)を満足するiをもつすべ
てのプロセツサ3−2(k)と3−2(k+)の間で
成立する。すなわち=1は、J×Iのプロセツサアレ
イにおいて、式(7)を満足する座標プロセツサの内容を
一斉に、I方向へ+1した座標のプロセツサへデータ転
送する場合すなわち右方向シフトに相当する。同様に
=IJ−1(=n−1)とおくと I−1i1 …(9) なるiについて i′=i−1,j′=j …(10) となり、プロセツサアレイにおいて−I方向へ一斉に1
だけシフトしたことすなわち左方向シフトになる。以下
同様に、 =JはJ方向へ+1シフト(下方向) =I(J−I)は−J方向へ+1シフト(上方向) したことになる。
以上の説明により、第3図の装置で、第1図のようなプ
ロセツサ間転送が可能であることがわかつた。
このシフト量の制御は、第3図のリングバス制御3−
6で実施される。
第5図を用いて、本発明を実施したリングバス制御3−
6の詳細な動作例を示す。第5図において、5−1は書
換え可能なメモリ又はレジスタであり、ここにシフト量
が記憶される。処理の実行に先立ち、制御部3−1はま
ず、その処理を行なう際のアレイ配列I,J定める。こ
れをもとに、I×Jを想定したプロセツサアレイの各方
向シフトに応じたシフト量を計算する。今、 I方向を シフト方向0 −I方向を シフト方向2 J方向を シフト方向3 −J方向を シフト方向1 とすると、前述の例の場合、シフト方向0,1,2,3
に対応するシフト量は、それぞれ、 1,I(J−1),IJ−1,J となる。次に、これらの値から1減じた値を、書換え可
能なメモリ又はレジスタ5−1に書き込む。その際、メ
モリ又はレジスタの番地 0には シフト方向0 1には 〃 1 2には 〃 2 3には 〃 3 のシフト量を書き込む。5−2はアドレス、5−3はデ
ータ、5−4は書込みストローブである。この書込みは
アドレス5−2にシフト方向の値、データ5−3にシフ
ト量を設定し書込みストローブ5−4を送ることにより
実行される。
次に、実際にシフトを行なわせる場合は、以下に示す通
りである。まず、実行したいシフト方向をアドレス5−
2にのせる。メモリ、又はレジスタ5−1は、一般には
書込みストローブ5−4を送出しない場合は読出しモー
ドとなるので、メモリ又はレジスタ5−1からは、その
シフト方向に応じたシフト量5−5が出力される。次
に、そのシフト量5−5がシフト開始ストローブ5−6
によりサブ1カウンタ5−7にセツトされる。それと同
時にシフトモードを示すフリツプフロツプ5−8がセツ
トされ、その正論理出力5−9が1になることにより、
シフトクロツク5−11がAND回路5−10を通つ
て、リングバスシフトクロツク3−8となる。この信号
3−8は、また、サブ1カウンタ5−7のクロツクとも
なり、リングバスシフトクロツク3−8が1発の度にサ
ブカウンタ5−7の内容が1だけ少なくなる。信号5−
12は、このサブカウンタ5−7のゼロチエツク信号で
あり、サブカウンタ5−7の内容がゼロになつた次のシ
フトクロツク5−11のタイミングでもつて、シフトモ
ードフリツプフロツプ5−8が、リセツト端子Rを使い
リセツトされる。これにより、シフトモードが解除され
リングバスシフトクロツク3−8が終了する。このサブ
カウンタ5−7のゼロチエツク信号5−12は、制御部
へのシフト終了通信としても利用される。またこの他
に、サブ1カウンタ5−7、シフトモードフリツプフロ
ツプ5−8のクリア用にクリア信号5−13が制御部か
ら送られてくる。
この回路では、サブカウンタ5−7に設定された値に1
加えた数だけシフトクロツクが発生するので、シフト方
向別シフト量5−5を記憶するレジスタ5−1には、あ
らかじめ1だけ減じた値を設定しておく。以上がリング
バス制御3−6の構成と機能及び動作内容である。
このようにすれば、プロセツサ数nを因数分解する2つ
の数のペアであるという条件のもとに、1×n,2×n
/2,…,I×J,…,n×1のようにアレイ構造を可
変にしたプロセツサアレイを構成することができる。
ところで、この方法によるシフトには、式(7),(9)のよ
うな制限があつた。例えば、座標(0,I−1)のプロ
セツサの内容は、0方向シフトによつて、座標(1,
0)に移つてしまう。そこでこれを防ぐために、0方向
シフトの場合では、横座標がI−1のプロセツサは、リ
ングバスノードレジスタ部にあらかじめ定められた境界
値を設定するか、又は、横座標0のプロセツサがリング
バスノードレジスタ部からの内容読出しを止め、自ら境
界値を作り出して処理するなどの処理が必要となる。い
ずれにしろ、各シフト方向に応じて各各のプロセツサ
が、自らの座標が境界に当るか否か判定し、それに応じ
て処理内容を変える必要がある。
しかし、これに関しては、各プロセツサは自らの座標
(j,i)を記憶しているので、容易に実行可能であ
る。以下に示すのがその1つの例である。各プロセツサ
3−2(k)は、次の2つの処理のいずれかを実行する
ようにしておく。
(イ)ノードレジスタ部3−4(k)へデータを送出
し、リングバス3−5上でのシフト終了後ノードレジス
タ部3−4(k)からデータを取込む。
(ロ)ノードレジスタ部3−4(k)へデータを送出す
るもののリングバスからはデータを取込まず、境界値を
自ら設定する。
そこで、まず、自己の記憶する3−1(k),3−14
(k)の座標内容を参照してあらかじめ判定し各シフト
方向に応じ(イ),(ロ)のどちらを実行するかのテー
ブルを作成しておく。次に、実際にシフト方向が示され
た時、そのテーブルに従つて所定のプログラムを実行す
ればよい。実際に、シフト方向を前述した4方向0,
1,2,3とすれば、 方向0では、横座標が0のプロセツサ群が 方向1では、縦座標がJ−1の 〃 方向2では、横座標がI−1の 〃 方向3では、縦座標が0の 〃 それぞれ(ロ)のプログラム実行となり、その他の場合
はすべて(イ)のプログラムを実行するようにすれば良
い。なお、リングバスノードレジスタ部3−4(k)へ
のデータ入力は少なくとも2種類、すなわち、プロセツ
サとリングバス上の前段のノードレジスタ部である。
この2種類の場合を例にとつて、ノードレジスタ部の制
御を中心とした機構を第6図に示す。この図は、ノード
レジスタ部3−4(k)を中心としたプロセツサ3−2
(k)、制御部3−1、リングバス制御3−6の関係を
示したものである。
まず、制御部3−1は、制御バス3−9の一部6−1に
処理内容を指定するコマンドを乗せると共に、同じく3
−9の一部ストローブ6−2を起動する。この時、アド
レスバス3−11には、全プロセツサがこのコマンドを
受付けることを示すアドレスが設定される。この信号群
をプロセツサ3−2(k)が解読し、所定の動作を実行
する。尚、この全プロセツサを稼動させる方法として
は、アドレスバスを使用せず特定の信号線を設ける方法
も考えられる。
次に、指定された動作が終了すると、制御部への信号線
(これも制御バス3−9の一部の状態通知線)6−3を
使つて動作終了を通知する。この状態通知線6−3につ
いては、複数のプロセツサが1本の信号線に接続されて
いるので、そのすべてのプロセツサが全部終了した時に
信号が変化する方式にすればよい。例えば各プロセツサ
出力をオープンコレクタ出力とし動作が終了すると、出
力を1とする方式があげられる。こうすれば、全プロセ
ツサの動作終了時点ではじめて状態通知線が1となりそ
れを制御部3−1が知ることができる。これをうけ、制
御部3−1は再びプロセツサ3−2(k)に対し、必要
情報をノードレジスタ部3−4(k)に出力する旨のコ
マンド情報6−1を転送する。このコマンドにより、全
プロセツサ3−2(k)は各々のノードレジスタ部3−
4(k)にデータを送出する。その際、信号線6−4
(k)をON状態とし、セレクタ6−5(k)がプロセ
ツサ側入力6−6(k)を選択し、ノードレジスタ6−
7(k)の入力6−8(k)はプロセツサ3−2(k)
側と接続される。それと同時にセレクタ6−9(k)に
より、プロセツサ3−2(k)から出された出力ストロ
ーブ6−10(k)のパルスがノードレジスタ6−7
(k)に送られ、データ6−6(k)が書込まれる。そ
の後、プロセツサ3−2(k)は信号線6−4(k)を
OFFとし、ノードレジスタ6−7(k)へのデータ6
−8(k)と入力パルス6−11(k)をリングバス3
−5(k−1)側に切換える。そして動作を終了した旨
を、前述の方法で制御部3−1に伝える。次に制御部3
−1は、リングバス制御3−6に対し信号3−7を用い
てシフト動作を指示する。この信号線3−7には、第5
図で示した如く、シフト方向5−3、シフト開始ストロ
ーブ5−6、シフトクロツク5−11等が含まれる。こ
れによつて所定の回数だけのシフトクロツクがリングバ
スシフトクロツク線3−8を通じてノードレジスタ部3
−4(k)に送られる。この動作が終了すると信号線5
−12を使つて動作終了信号が、制御部3−1へ転送さ
れる。これを受けた制御部3−1は再びプロセツサ3−
2(k)に対してノードレジスタ6−7(k)からのデ
ータ取込みコマンドを発生しそれを受けたプロセツサ3
−2(k)はそのコマンドを実行する。その際、そのコ
マンドがシフト方向を含んだコマンドであるとすれは、
そのシフト方向に応じて、一部のプロセツサはノードレ
ジスタ6−7(k)からのデータ6−12(k)(3−
5(k)と同じ)を取込まず境界値を設定する処理を行
なう。この処理については前述した2つのプログラムの
一方を実行すればよい。
なお、このプロセツサ間データ転送を連続して行なうに
は、制御部3−1よりプロセツサ3−2(k)へのコマ
ンドとリングバス制御部3−6へのシフト方向指定5−
3を、前者は、ノードレジスタ6−7(k)よりデータ
を取込み、その後所定の処理を実行した上で、次のデー
タを用意しノードレジスタ6−7(k)へ書込む動作ま
でを示すコマンド、後者はあるシフト方向指示、という
ようにそれぞれ固定して設定しておく。その上で、プロ
セツサから制御部3−1への終了通知信号6−3をその
ままリングバス制御3−6へのシフト開始ストローブ信
号5−6へ接続し、また、リングバス制御3−6からの
シフト動作終了信号5−12をそのまま制御部からプロ
セツサへのストローブ6−2へ接続すればよい。その
際、最初のプロセツサ3−2(k)からノードレジスタ
6−7(k)へデータ出力する処理と、最後にノードレ
ジスタ6−7(k)の内容をプロセツサ3−2(k)に
取込む処理は、上記処理の前後に処理する。また、境界
値を設定すべきプロセツサ3−2(k)は、この間は、
ノードレジスタ6−7(k)からの入力は行なわず、境
界値を設定するモードとすべきことは言うまでもない。
また、この処理中、他のどのプロセツサともデータ転送
を必要としないプロセツサについては、あらかじめ、動
作終了状態を信号6−3に指定したままで、全く別の処
理を実施例させておいてもよい。但し、その際、そのプ
ロセツサにおける処理がリングバスを使つているデータ
転送動作の障害にならないようにしておく必要がある。
また、以上の説明では、第6図上のノードレジスタ部3
−4(k)へのデータ入力6−6(k)、ストローブ入
力6−10(k)の選択信号6−4(k)をプロセツサ
3−2(k)から出力したが、この制御はリングバス上
のどのノードレジスタ部3−4(k)でも同一でも良い
ので、この信号をリングバス制御3−6から出力する方
法もこの信号としては、例えば、第5図中のシフトモー
ドフリツプフロツプの出力5−9をインバータで反転し
たものを用いれば良い。また、リングバスを双方向にバ
スとしても本発明の適用は同様に実施できる。
〔発明の効果〕
本発明によれば、リング状に接続された複数個の計算手
段を実質的にアレイ状に配置した並列処理装置とみなす
ことができ、さらにそのアレイ配置をプログラムで可変
にできる。これにより画像のような2次元データについ
て、単純な画素単位処理から、距離変換のような複雑な
処理に至るまで、その処理に応じたアレイ配置が構成で
き、処理の高速化を達成することができる。
【図面の簡単な説明】
第1図は公知例としてあげたアレイ型並列処理装置ILLI
AC IVの概略構成図、第2図は第1図の中の1つのプ
ロセツサの中及び周辺回路図、第3図は本発明の実施例
を説明するための装置構成図、第4図は画像データを処
理する場合の画像分割図、第5図は本発明を実施した第
3図の1部リングバス制御説明図、第6図はリングバス
でのデータ転送を説明するための信号線の関係図であ
る。 3−1……制御部、3−2……プロセツサ、3−3……
リングバス部、3−4……ノードレジスタ部、3−5…
…リングバス、3−6……リングバス制御、3−8……
リングバスシフトクロツク、5−1……シフト量記憶用
メモリ又はレジスタ。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】2次元のデータを行I個、列J個のI×J
    個に分割処理するために、少なくとも前記I個及びJ個
    の個数を記憶する第1の記憶手段を備えた制御部と、 前記I×J個の分割処理のいずれかを分担するプロセッ
    サを特定するために、前記制御部から与えられた夫々の
    行及び列のアドレスを記憶する第2の記憶手段を備えた
    複数のプロセッサと、 前記複数のプロセッサに対応して設けられ、分割処理し
    たデータを記憶する複数の第3の記憶手段と、 前記複数の第3の記憶手段をリング状に接続して、前記
    分割処理されたデータの移動を行うリングバスを備え、 前記複数のプロセッサは、前記第2の記憶手段に記憶さ
    れた夫々の行及び列のアドレスに応じて、前記リングバ
    ス上を移動する所定のプロセッサにて分割処理されたデ
    ータを前記第3の記憶手段を介して利用するか否か制御
    することを特徴とする並列処理装置。
JP58246936A 1983-12-28 1983-12-28 並列処理装置 Expired - Lifetime JPH0642237B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP58246936A JPH0642237B2 (ja) 1983-12-28 1983-12-28 並列処理装置
EP84116392A EP0147857A3 (en) 1983-12-28 1984-12-27 Parallel data processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58246936A JPH0642237B2 (ja) 1983-12-28 1983-12-28 並列処理装置

Publications (2)

Publication Number Publication Date
JPS60140456A JPS60140456A (ja) 1985-07-25
JPH0642237B2 true JPH0642237B2 (ja) 1994-06-01

Family

ID=17155947

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58246936A Expired - Lifetime JPH0642237B2 (ja) 1983-12-28 1983-12-28 並列処理装置

Country Status (2)

Country Link
EP (1) EP0147857A3 (ja)
JP (1) JPH0642237B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008286586A (ja) * 2007-05-16 2008-11-27 Hitachi High-Technologies Corp パターン検査方法及び装置

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60156177A (ja) * 1984-01-25 1985-08-16 Hironobu Inoue 画像処理装置
DE3584489D1 (de) * 1984-08-16 1991-11-28 Sharp Kk Informationsprozessor.
US4752894A (en) * 1985-12-30 1988-06-21 Deering Michael F Color plotter controller
JPS62206678A (ja) * 1986-03-07 1987-09-11 Agency Of Ind Science & Technol 並列デ−タ処理方式
JPH0740252B2 (ja) * 1986-03-08 1995-05-01 株式会社日立製作所 マルチプロセツサシステム
US4809169A (en) * 1986-04-23 1989-02-28 Advanced Micro Devices, Inc. Parallel, multiple coprocessor computer architecture having plural execution modes
JP2900359B2 (ja) * 1986-10-30 1999-06-02 株式会社日立製作所 マルチプロセッサシステム
US4811214A (en) * 1986-11-14 1989-03-07 Princeton University Multinode reconfigurable pipeline computer
GB8707493D0 (en) * 1987-03-28 1987-08-05 Stonefield Systems Plc Cellular array processing
GB2203574A (en) * 1987-04-03 1988-10-19 Univ Southampton Parallel processor arrays
FR2622989B1 (fr) * 1987-11-06 1992-11-27 Thomson Csf Machine multiprocesseur reconfigurable pour traitement du signal
FR2635390B1 (fr) * 1988-08-12 1990-10-12 Bull Sa Unite centrale pour systeme de traitement de l'information
FR2635934A1 (en) * 1988-08-26 1990-03-02 Thomson Csf Seqenced one-way link for intercommunication of data processing modules, especially of computers
AU641418B2 (en) * 1989-09-20 1993-09-23 Fujitsu Limited A parallel data processing system for processing and transmitting data concurrently
EP0482408A3 (en) * 1990-10-22 1993-12-01 Motorola Inc Digital neural network computation ring
CN1042677C (zh) * 1991-10-07 1999-03-24 中国人民解放军国防大学 并行计算机系统及其应用
DE69231054T2 (de) * 1991-11-21 2001-01-18 Sony Corp Bildverarbeitungssystem
EP0800133A1 (en) * 1992-01-24 1997-10-08 Digital Equipment Corporation Databus parity and high speed normalization circuit for a massively parallel processing system
EP0577813B1 (en) * 1992-01-24 1998-03-25 Digital Equipment Corporation Databus parity and high speed normalization circuit for a massively parallel processing system
US5450603A (en) * 1992-12-18 1995-09-12 Xerox Corporation SIMD architecture with transfer register or value source circuitry connected to bus
US5721883A (en) * 1994-03-28 1998-02-24 Sony Corporation System and method for implementing parallel image processing
US20120030448A1 (en) * 2009-03-30 2012-02-02 Nec Corporation Single instruction multiple date (simd) processor having a plurality of processing elements interconnected by a ring bus
JP5488609B2 (ja) * 2009-03-30 2014-05-14 日本電気株式会社 リングバスによって相互接続された複数の処理要素を有する単一命令多重データ(simd)プロセッサ
US10795836B2 (en) * 2017-04-17 2020-10-06 Microsoft Technology Licensing, Llc Data processing performance enhancement for neural networks using a virtualized data iterator

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3473160A (en) * 1966-10-10 1969-10-14 Stanford Research Inst Electronically controlled microelectronic cellular logic array
JPS5439503A (en) * 1977-09-05 1979-03-27 Hitachi Ltd Priority selection system in ring transmission line
US4215401A (en) * 1978-09-28 1980-07-29 Environmental Research Institute Of Michigan Cellular digital array processor
IT1118355B (it) * 1979-02-15 1986-02-24 Cselt Centro Studi Lab Telecom Sistema di interconnessione tra processori
US4663706A (en) * 1982-10-28 1987-05-05 Tandem Computers Incorporated Multiprocessor multisystem communications network

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008286586A (ja) * 2007-05-16 2008-11-27 Hitachi High-Technologies Corp パターン検査方法及び装置

Also Published As

Publication number Publication date
EP0147857A3 (en) 1987-10-14
EP0147857A2 (en) 1985-07-10
JPS60140456A (ja) 1985-07-25

Similar Documents

Publication Publication Date Title
JPH0642237B2 (ja) 並列処理装置
US4891751A (en) Massively parallel vector processing computer
JP2756257B2 (ja) 並列処理システム及びその方法
JPH0233191B2 (ja)
JPH0740252B2 (ja) マルチプロセツサシステム
JPH0425586B2 (ja)
JPH0863586A (ja) 画像処理等の並列処理用のキャッシュバーストアーキテクチャ
KR970076254A (ko) 신호 프로세싱 응용에 사용하는 재구성가능한 컴퓨터 구조
JPS58169663A (ja) アレイプロセツサ装置
JPS62264357A (ja) 並列プロセツサ・アレイにおけるプロセツサ付加のシミユレ−シヨン方法
US4745546A (en) Column shorted and full array shorted functional plane for use in a modular array processor and method for using same
JPS63113659A (ja) マルチプロセッサシステム
JPS60153088A (ja) メモリ・デ−タ・シフト装置
JPS6364178A (ja) 画像処理システム
JPH02230383A (ja) 画像処理装置
JPH01291387A (ja) 画像処理装置
JPS58149556A (ja) 並列処理装置
JPS629455A (ja) 周辺機器・デ−タ処理装置間デ−タ転送コントロ−ラ
JPS61278961A (ja) デ−タ処理装置
JPS6334658A (ja) 画像処理用dmaコントロ−ラ
JP4612352B2 (ja) ラベリング処理装置及びラベリング処理方法
JP2824976B2 (ja) 2次元配列データ回転装置
JPS62280956A (ja) 配列デ−タ転送方法
JP2730013B2 (ja) 座標データ転送方法およびその装置
CA1325852C (en) Massively parallel array processing system