JP3726977B2 - 2次元peアレイ装置並びにデータ転送方法およびモルフォロジー演算処理方法 - Google Patents
2次元peアレイ装置並びにデータ転送方法およびモルフォロジー演算処理方法 Download PDFInfo
- Publication number
- JP3726977B2 JP3726977B2 JP29914596A JP29914596A JP3726977B2 JP 3726977 B2 JP3726977 B2 JP 3726977B2 JP 29914596 A JP29914596 A JP 29914596A JP 29914596 A JP29914596 A JP 29914596A JP 3726977 B2 JP3726977 B2 JP 3726977B2
- Authority
- JP
- Japan
- Prior art keywords
- shift
- data
- hit flag
- word
- associative memory
- 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
Links
Images
Landscapes
- Storing Facsimile Image Data (AREA)
- Image Processing (AREA)
Description
【発明の属する技術分野】
本発明は、画像処理、音響処理、知識処理等に有効な2次元プロセッシングエレメント(Processing Element:PE)アレイ装置並びにデータ転送方法およびモルフォロジー(morphology)演算処理方法に関する。
【0002】
【従来の技術】
ネットワークサービスのビジュアル化、高付加価値化によって、高度な画像処理、音響処理、知識処理の必要性が高まっている。しかし、このような処理は、一般に莫大な処理性能が要求されるので、ノイマンアーキテクチャに基づいた既のマイクロプロセッサ、信号処理プロセッサでは実行困難な場合が多い。
【0003】
このような処理を有効に行う装置として、2次元PEアレイ装置が知られている。この2次元PEアレイ装置は、種々の論理、算術演算処理を行なう多数のPEと、単一命令ストリーム・複数データストリーム方式(SIMD)によって、各PEに対して単一の命令列を与える1つの制御回路とを備える。この2次元PEアレイ装置は、これらの回路と方式とによって各PEが同時に上記演算処理を行なう機構と、2次元方向の隣接PEへのデータ転送機構とを保持する装置である。
【0004】
また、2次元PEアレイ装置について、種々の処理を効率良く割り付けるセルラーオートマトン、セルラーニューラルネット等の計算理論が知られている。上記セルラーオートマトン、セルラーニューラルネットについては、「Chua,L.O.etal,“Cellular Neural Networks:Theory”,IEEE Trans.on Circuits and Systems,Vol.35, No.10 Oct.1988」に開示されている。
【0005】
図28は、従来の2次元PEアレイ装置PEA11を示す図である。
【0006】
従来の2次元PEアレイ装置として知られている装置は、マイクロプロセッサか論理、算術演算回路を備えた集積回路で構成されているPE202を、図28に示すように、2次元状にX×Y個(Xは縦方向、Yは横方向のPEの数。X,Yは2以上の整数)配置し、それぞれを縦横2次元方向のデータ転送パス203で結合した装置である。
【0007】
しかし、この従来例においては、PE数が多いと、データ転送パス203が多数必要になり、2次元PEアレイ装置全体のハードウェア量が多くなるという問題がある。
【0008】
また、PE202を2次元に配置した場合、PEの集積度を上げることが一般に困難であり、この点からも、ハードウェア量が多くなるという問題がある。また、PE202の数が多くなるにつれて、データ入出力201におけるデータ幅が大きくなり、外部とのデータのやりとりが困難であるという問題がある。
【0009】
この場合、データ入出力201におけるデータ幅を圧縮する機構を追加すれば、外部とのデータのやりとりが容易になる。しかし、上記データ幅圧縮機構を追加すると、PE202の数を変更できるというような拡張性を持たせることが困難であるという問題がある。
【0010】
図29は、従来の2次元PEアレイ装置PEA12を示す図である。
【0011】
従来の2次元PEアレイ装置の別の例として知られている装置は、マイクロプロセッサか論理、算術演算回路を備えた集積回路で構成されているPE212を、図29に示すように、X×Y個、1次元方向のみに、データ転送パス213で接続し、これらPE212をX個ずつジグザグ状に割り付け、疑似的にX×Yの2次元PEアレイ装置を実現する装置である。
【0012】
この装置の場合、2次元方向に隣接するPE212へのデータ転送方法として、1次元のデータ転送パス213を用い、PE212を橋渡しとして用いながら転送する方法が考えられる。
【0013】
しかし、この方法においては、図29における横方向のPE間のデータ転送は、X個のPEを介して行なう必要があるため転送時間が長くなり、その結果、全体の転送時間が莫大になるという問題が生じる。
【0014】
なお、上記横方向のPE間の転送時間を短くするために、専用のパスを設ける方法が考えられるが、この方法の場合、縦横2次元方向のデータ転送パス203を用いた方法と同様に、データ転送パスの本数が増えるので、ハードウェア量が多くなという問題がある。
【0015】
図30は、従来の連想メモリM11を示す図である。
【0016】
図30において、従来の連想メモリM11は、ワード224(1) 〜ワード224(w) と、マスクレジスタ222と、アドレスデコーダ225と、ワード224(1) 〜ワード224(w) 間の1次元方向のデータ転送路として利用できるヒットフラグレジスタ227とで構成されている。この連想メモリM11は、「Ogura,T.et al.“A 20−kbit Associative Memory LSI for Artificial IntelligenceMachines”,IEEE J.Solid−State Circuits Vol.24,No.4,pp.1014−1020 Aug.1989」に開示されている。
【0017】
この連想メモリM11は、通常のメモリのように、アドレス入力223にアドレス値を与えることによって、
任意のワード224(1) 〜ワード224(w) に対してデータを読み書きできる機能を有し、また、マスク検索機能、並列部分書き込み機能をも有し、これらの機能を用いることによって、全ワードに対して、種々の論理、算術演算を同時に実行できる。したがって、この連想メモリを、2次元PEアレイ装置に使用することによって、極めて多数のPEを持つ超並列型計算装置として利用できる。
【0018】
しかし、ワード224(1) 〜ワード224(w) 間の1次元方向のデータ転送路として利用できるヒットフラグレジスタ227は、シフトアップまたはシフトダウンの単一方向のシフトモードしか有さないので、上記従来例において、ワード224(1) 〜ワード224(w) 間のデータ転送を効率的に行う方向は、特定方向に限定されるという問題がある。また、データの読み書きとシフトとを同時に行なうモードを備えていないので、上記従来例では、データ転送処理等を効率的に行うことができないという問題がある。
【0019】
したがって、上記連想メモリを用いて2次元PEアレイ装置を構成した場合、データ転送時間が長くなるという問題がある。
【0020】
【発明が解決しようとする課題】
画像処理アルゴリズムにおいては、画像中の画素をそのまま2次元PEに割り付けて処理を行なうと有効である場合が多い。たとえば256画素×256画素=65.536という場合は、多数のPEが必要になるので、多くのPEを搭載可能な2次元PEアレイ装置が必要になる。この場合、その2次元PEアレイ装置を多数のボードで構成すると、それらの装置コストが莫大になるので、これを避けるために、上記多数のPEを持つ2次元PEアレイ装置を、1ボード程度のハードウェア量で実現できることが望まれている。
【0021】
画像処理等は、実時間処理を求められるものが多い。このため、種々の画像処理において各PEでの演算処理時間と、2次元方向の隣接PEへのデータ転送時間とをできるだけ抑えることによる実時間処理が可能な2次元PEアレイ装置が望まれている。
【0022】
画像処理、音響処理、知識処理等における並列性は、各処理によって様々であり、したがって、要求される2次元PEアレイ装置のPE構成も種々となる。この点から、PEの構成を任意に変えられる拡張性の高い2次元PEアレイ装置が望まれている。
【0023】
本発明は、ハードウェア量が少なく、転送時間が短く、拡張性の高い2次元PEアレイ装置、およびデータ転送方法を提供することを第1の目的とする。
【0024】
モルフォロジー演算処理は、構成される対象画像を集合論的操作により変形する手法を一貫させた理論体系であり、2値画像または濃淡画像に対する特徴抽出、形状記述、形状認識処理において幅広く用いられている。モルフォロジー演算処理方法の詳細は、「P.maragos,“Tutorial on advances in morphological image prosessing and analysis”,Optical Engineering,Vol.26 No.7,1987」等に開示されている。従来のモルフォロジー演算処理装置としては、「M.Hassoun,et al “A VLSI gray−scale morphology processor for real−time NDE image processing applications”,SPIE,Vol.1350 Image Algebra and Morphological Image Processing,1990」が知られている。
【0025】
図31は、従来のモルフォロジー演算処理装置MS0を示す図である。
【0026】
この従来のモルフォロジー演算処理装置MS0は、5×5のPEアレイ83と、排他的論理和81と、比較器82等で構成され、原画像に対するPEアレイ83によるスキャニング、算術演算処理、比較演算処理を行うことによって、モルフォロジー演算処理を行うものである。
【0027】
しかし、従来のモルフォロジー演算処理装置MS0は、PEアレイ83の大きさである5×5以上の大きな構造要素を処理できないという問題がある。また、原画像の大きさに比例した処理時間を必要とするので、大きな原画像を処理する場合には、モルフォロジー演算処理時間が長くなるという問題がある。さらに、大きな構造要素を処理できるようにするためには、PEアレイ83の数を増加せざるを得ず、この増加により、隣接PE間の配線等が多くなり、ハード量が多くなるという問題がある。
【0028】
モルフォロジー演算処理を様々な画像処理に応用できるようにするためには、大きな原画像、大きな構造要素に対して、実時間処理(ビデオレート)できることが必要であり、このように実時間処理できるモルフォロジー演算処理装置が望まれている。
【0029】
モルフォロジー演算処理の特徴は、原画像の局所演算のみで処理できるという極めて並列性の高い点である。従って、高性能なモルフォロジー演算処理装置を実現するためには、この並列性の高さという特徴を最大限に引き出し、画素数と同数のPEを有するモルフォロジー演算処理装置を実現すればよい。
【0030】
ところが、このように実現した場合、現実的な原画像、たとえば512画素×512画素の原画像を処理するためには、約26万画素という多数のPEを必要とする。このため、多くのPEを搭載可能なモルフォロジー演算処理装置が必要になる。
【0031】
このような装置を実現するためには多数のボードが必要であり、その装置コストは莫大なものになる。したがって、上記のように多数のPEを有するモルフォロジー演算処理装置においては、そのコストを廉価に抑えるために、1ボード程度のハード量で実現できることが望まれている。
【0032】
本発明は、高性能でしかもハード量が少ない、2次元PEアレイ装置を用いたモルフォロジー演算処理方法を提供することを第2の目的とする。
【0033】
【課題を解決するための手段】
請求項1記載の発明は、2次元PEアレイ装置であって、複数のフィールドを有する記憶領域であって1次元方向に接続されたw個(wは任意の自然数)の記憶領域と、w個の前記記憶領域の各々に対応するw個の領域を有し、前記1次元方向にシフトアップ、シフトダウン可能なヒットフラグレジスタであって前記記憶領域の内容を転送するためのヒットフラグレジスタと、該ヒットフラグレジスタの最上位の内容を外に出し入れする上位シフト入出力と、前記ヒットフラグレジスタの最下位の内容を外に出し入れする下位シフト入出力とを有する、q×r個(q,rは2以上の任意の整数)の連想メモリと、前記連想メモリのうちで、横方向に隣接している前記連想メモリのうちの一方の連想メモリの下位シフト入出力と、前記横方向に隣接している前記連想メモリのうちの他方の連想メモリの上位シフト入出力とを接続するヒットフラグシフト線と、前記連想メモリおよび前記ヒットフラグシフト線を含む連想メモリアレイ部と接続されている制御部であって、前記連想メモリアレイ部に対して、PEの割り付けを行い、アドレスを用いた前記記憶領域へのデータの書き込みおよび読み出しを行い、前記ヒットフラグレジスタのシフトアップ、シフトダウンを実行して」、前記割り付けに応じたデータ転送又は演算を行うための、単一の制御命令ストリームを生成する制御部とを備え、前記制御部による前記割り付けによって、前記PEは、全体で縦方向m×J×q個、横方向n×r個に割り付けられ、前記連想メモリのw個の前記記憶領域がm列、n行(w、m、nはw=m×nを満たす任意の自然数)に前記1次元方向にm個ずつ折り返してn行に並べられ、前記PEは、前記連想メモリのw個の前記記憶領域のそれぞれにJ個ずつ割り付けられていることを特徴とする。
【0037】
ここで、請求項1において、前記連想メモリは、前記制御部による、前記アドレスを用いた前記記憶領域へのデータ書き込みおよび読み出しと前記ヒットフラグレジスタのシフトアップ、シフトダウンとを同時に実行するモード手段を有することとすることができる。
【0040】
請求項3記載の発明は、請求項1に記載の2次元PEアレイ装置の連想メモリ間データ転送方法であって、q×r個(q,rは2以上の任意の整数)の連想メモリ間で、シフトアップ、シフトダウン可能なヒットフラグレジスタの内容を上位シフト入出力と下位シフト入出力とを用いて外に出し入れすることによりデータを転送する第1のデータ転送を行うステップと、縦方向q列に並べられた前記連想メモリのうちで、奇数列の連想メモリ群から偶数列の連想メモリ群、または偶数列の連想メモリ群から奇数列の連想メモリ群へのデータ転送を同時に行う第2のデータ転送を行うステップと、横方向r行に並べられた全ての連想メモリに対して、前記第1のデータ転送と前記第2のデータ転送とを、同時に行なうステップとを備えたことを特徴とする。
【0041】
請求項4記載の発明は、請求項1に記載の2次元PEアレイ装置の連想メモリ内データ転送方法であって、前記記憶領域に格納されているデータと検索データとを照合し検索データの一部の照合を無視するマスク検索を行うステップと、前記マスク検索により指定された第1の前記記憶領域内の特定ビットの内容をシフトアップ、シフトダウン可能な第1ヒットフラグレジスタへ転送するステップと、転送された第1ヒットフラグレジスタの内容を転送先の第2の前記記憶領域の第2ヒットフラグレジスタへシフトアップ又はシフトダウンするステップと、第2ヒットフラグレジスタが特定の値をとる第2の前記記憶領域に対して検索データのマスクされていないビットに対応する第2の前記記憶領域のビットに検索データを書き込む並列部分書き込みを用いて、第2の前記記憶領域内の特定ビットへ第2ヒットフラグレジスタの内容を転送するステップとを備えたことを特徴とする。
【0043】
請求項5記載の発明は、2次元PEアレイ装置であって、原画像フィールドと処理画像フィールドとシフト画像フィードとが設けられた記憶領域であって1次元方向に接続されたw個(wは任意の自然数)の記憶領域と、w個の前記記憶領域の各々に対応するw個の領域を有し、前記1次元方向にシフトアップ、シフトダウン可能なヒットフラグレジスタであって前記記憶領域の内容を転送するためのヒットフラグレジスタと、該ヒットフラグレジスタの最上位の内容を外に出し入れする上位シフト入出力と、前記ヒットフラグレジスタの最下位の内容を外に出し入れする下位シフト入出力とを備えたq×r個(q,rは2以上の任意の整数)の連想メモリと、前記q×r個の連想メモリのうちで、横方向に隣接している前記連想メモリのうちの一方の連想メモリの下位シフト入出力と、前記横方向に隣接している前記連想メモリのうちの他方の連想メモリの前記シフト入出力とを接続するヒットフラグシフト線と、前記連想メモリおよび前記ヒットフラグシフト線を含む連想メモリアレイ部と接続されている制御部であって、前記連想メモリアレイ部に対して、PEの割り付けを行い、アドレスを用いた前記記憶領域へのデータの書き込みおよび読み出しを行い、前記ヒットフラグレジスタのシフトアップ、シフトダウンを実行して、前記割り付けに応じたデータ転送又は演算を行うための、単一の制御命令ストリームを生成する制御部とを備え、前記制御部による前記割り付けによって、前記PEは、全体で縦方向m×J×q個、横方向n×r個に割り付けられ、前記連想メモリのw個の前記記憶領域がm列、n行(w、m、nはw=m×nを満たす任意の自然数)に前記1次元方向にm個ずつ折り返してn行に並べられ、前記PEは、前記連想メモリのw個の前記記憶領域のそれぞれにJ個ずつ割り付けられていることを特徴とする。
【0044】
請求項6記載の発明は、請求項1に記載の2次元PEアレイ装置を用いたモルフォロジー演算処理方法であって、前記記憶領域内に各々1つずつの原画像フィールド、処理画像フィールド、左右シフト画像フィールドと2つの上下シフト画像フィールドが設けられており、q×r個(q,rは2以上の任意の整数)の連想メモリ間で、シフトアップ、シフトダウン可能なヒットフラグレジスタの内容を上位シフト入出力と下位シフト入出力とを用いて外に出し入れするステップと、左右方向のPEの原画像フィールド又は上下シフト画像フィールドのデータを、左右シフト画像フィールドに順次転送し、演算処理を行い処理画像フィールドに格納する転送演算処理ステップと、上下方向のPEの原画像フィールド又は片方の上下シフト画像フィールドのデータを、他方の上下シフト画像フィールドに転送する画像シフトアップ、ダウン処理ステップと、前記転送演算処理ステップと画像シフトアップ、ダウン処理ステップとを、上下左右方向のPEからの転送演算処理がすべて終了するまで繰り返すステップとを備えたことを特徴とする。
【0045】
ここで、請求項6において、原画像の各要素のデータを前記2次元PEアレイ装置の対応するPEの原画像フィールドに転送するステップと、構造要素によって定義される上下左右方向の任意のPEからのデータ転送および演算処理を行うステップとをさらに備えたこととすることができる。
【0046】
ここで、請求項6において、原画像フィールド又は上下シフト画像フィールドの特定のビットに対するマスク検索と、m回(mは前記m列のm)のシフトアップあるいはシフトダウン処理と、左右シフト画像フィールドの対応するビットに対する並列部分書き込みとを、データのビット数繰り返すデータ転送処理ステップと、左右シフト画像フィールドにあるデータが演算処理をするべきPEからのデータであるときにのみ、処理画像フィールドおよび左右シフト画像フィールドに対して演算処理を行い、該演算処理の結果を処理画像フィールドに格納する演算処理ステップと、前記データ転送処理ステップおよび演算処理ステップを、左右方向からの転送演算処理がすべて終了するまで繰り返すステップとを備えたこととすることができる。
【0047】
ここで、請求項6において、原画像フィールド又は片方の上下シフト画像フィールドの特定のビットに対するマスク検索と、1回のシフトアップあるいはシフトダウン処理と、他方の上下シフト画像フィールドの対応するビットに対する並列部分書き込みとを、データのビット数繰り返す内部記憶領域転送ステップと、連想メモリのアドレスを用いた前記記憶領域へのデータの読み書き機能を用いて、奇数又は偶数連想メモリ群の上位又は下位の前記記憶領域群の特定の前記記憶領域の原画像フィールド又は片方の上限シフト画像フィールドの全ビットを、対応する偶数又は奇数連想メモリ群の他方の上下シフト画像フィールドに上位又は下位境界の前記記憶領域を転送するステップとを備えたこととすることができる。
【0048】
【発明の実施の形態】
(実施の形態1)
図1は、本発明の一実施の形態である2次元PEアレイ装置PEA1の基本構成を示す図である。
【0049】
2次元PEアレイ装置PEA1は、2次元に配列されている複数の連想メモリ11と、2つの連想メモリ11を互いに接続する連想メモリ間ヒットフラグシフト線16とで構成されている。
【0050】
以下、個々の連想メモリを区別して参照する場合は、連想メモリ11とせずに連想メモリ11(1,1) 等とする。同様に、個々のワードを区別して参照する場合は、ワード24又はワード12とせずに、ワード24(1) 、ワード12(1,1) 等とする。
【0051】
また、2次元PEアレイ装置PEA1は、1次元に並べられたw個(wは任意の自然数)のワードと、シフトアップ、シフトダウン可能なヒットフラグレジスタと、このヒットフラグレジスタの内容を外に出し入れする上位シフト入出力と下位シフト入出力とを具備するq×r個(q,rは2以上の任意の整数)の連想メモリ11と、上記q×r個の連想メモリ11のうちで、横方向に隣接している上記連想メモリ11のうちの一方の連想メモリ11の下位シフト入出力と、上記横方向に隣接している上記連想メモリ11のうちの他方の連想メモリ11の上記シフト入出力とを接続するヒットフラグシフト線16とを有し、上記連想メモリ11のw個のワードがm列、n行にジグザグ状に並べられ、連想メモリ11のw個のワードのそれぞれが、種々の論理、算術処理を行なうPEに割り付けられている2次元PEアレイ装置である。
【0052】
図2は、上記2次元PEアレイ装置PEA1を構成する連想メモリ11(1,1) を示す図である。
【0053】
連想メモリ11(1,1) は、検索/書き込みデータ入力21と、マスクレジスタ22と、アドレス入力23と、ワード24と、アドレスデコーダ25と、上位シフト入出力26と、シフトアップ、シフトダウンすることによってワード24の内容を転送するヒットフラグレジスタ27と、読み出しデータ出力28と、下位シフト入出力29とで構成されている。また、1つの連想メモリ11(1,1) におけるワード24の全ての数wは、w=m×nであり、w,m,nは、上記式を満たす任意の自然数である。なお、図2におけるワード24は、図1に示すワード12と同じものである。すなわち、ワード24(1) 〜24(w) のそれぞれは、ワード12(1,1) 〜12(m,n) に対応する。また、他の連想メモリ11(2,1) 〜11(q,r) の構成も、連想メモリ11(1,1) の上記構成と同様であるので、以下の説明では、連想メモリ11(1,1) を代表として説明する。
【0054】
連想メモリ11(1,1) は、データ書き込み機能と、データ読み出し機能と、マスク検索機能と、並列部分書き込み機能とを有する。
【0055】
上記データ書き込み機能は、連想メモリ11(1,1) において、アドレス入力23にアドレス値を与え、検索/書き込みデータ入力21に、書き込みデータを与えることによって、任意のワード24にデータを書き込む機能である。
【0056】
上記データ読み出し機能は、連想メモリ11(1,1) において、アドレス入力23にアドレス値を与えることによって、任意のワード24のデータを読み出し、データ出力28から読み出す機能である。
【0057】
また、上記マスク検索機能は、検索/書き込みデータ入力21に与えた検索データと、ワード24に格納されているデータとを並列に照合し、この照合結果をヒットフラグレジスタ27へ書き込み、この場合、マスクレジスタ22にマスクしたいビット位置を与えることによって、検索データの一部の照合を無視させる機能である。そして、マスクレジスタ22に特定のビット以外をマスクするデータを設定し、検索/書き込みデータ入力21に検索データ「1」を与えることによって、ワード24中の特定のビットを、ヒットフラグレジスタ27へ転送する機能が実現できる。
【0058】
また、並列部分書き込み機能は、ヒットフラグレジスタ27が「1」であるワードに対して、検索/書き込みデータ入力21のデータが、マスクされていない特定のビットに書き込まれる機能である。
【0059】
ヒットフラグレジスタ27は、シフトアップ、シフトダウンの双方向のシフトモードを有し、つまり、図示しないセレクタによって、シフトアップ、シフトダウンを切り替え、上位シフト入出力26、下位シフト入出力29を介して、連想メモリ11(1,1) の外部からシリアルに読み書きを行なう機能を有する。
【0060】
また、図1に示すように、上記2次元PEアレイ装置PEA1は、X×Yに並べられたPEが、縦方向q列、横方向r行のブロックに分割され、この分割された各ブロックに1つの連想メモリ11(1,1) を割り付けたものである。なお、Xは縦方向のPEの数であり、Yは横方向のPEの数であり、X=mq,Y=nrは2以上の任意の整数であり、また、q,rは2以上の任意の数である。
【0061】
割り付けられた各連想メモリ11(1,1) は、w個のワード12を(X÷q)個づつに区切られ、(X÷q)×(Y÷r)にジグザグ状に並べられ、上記PEのブロックに順次割り付けられることによって構成されている。
【0062】
このようにすれば、1つの連想メモリ11(1,1) でm×nのPEを搭載できる。なお、mは、m=X÷qを満たす自然数であり、nは、n=Y÷rを満たす自然数である。よって、全体では、縦方向X=m×q個、横方向Y=n×r個のPEを搭載した2次元PEアレイ装置PEA1を実現することができる。
【0063】
また、横方向に隣接する連想メモリ間は、連想メモリ間ヒットフラグシフト線16によって結合されている。具体的には、1つの連想メモリ11の上位シフト入出力26と、その連想メモリ11と横方向に隣接する他の連想メモリ11の下位シフト入出力29とが、連想メモリ間ヒットフラグシフト線16によって結合されている。具体的には、1つの連想メモリ11(1,1) の上位シフト入出力26と、その連想メモリ11(1,1) と横方向に隣接する連想メモリ11(1,2) の下位シフト入出力29とが、連想メモリ間ヒットフラグシフト線16によって結合されている。したがって、横方向に互いに隣接する連想メモリ11同士の間では、同一の連想メモリ11として、シフトアップ、シフトダウン等の動作を統一的に取り扱うことができる。
【0064】
図3は、上記実施の形態において、右、下、左、上の4隣接のPEにデータ転送する場合における連想メモリ11(1,1) のワード24の割り付け法を示す図である。
【0065】
図3に示すように、PE31は、現状態フィールドC32と、次状態フィールドC+33と、右PE状態フィールドR34と、下PE状態フィールドD35と、左PE状態フィールドL36と、上PE状態フィールドU37とによって構成されている。
【0066】
ワークフィールドW38は、現状態フィールドC32、隣接PE(右PE状態フィールドR34と、下PE状態フィールドD35と、左PE状態フィールドL36と、上PE状態フィールドU37と)のデータを用いて、種々の演算を行なう場合のテンポラリ領域として使用される領域である。
【0067】
図4は、上記実施の形態において、右、右下、下、左下、左、左上、上、右上の8隣接のPEにデータ転送する場合における連想メモリ11(1,1) のワードの割り付け法を示す図である。
【0068】
図4に示すように、PE41は、現状態フィールドC42、次状態フィールドC+43、右PE状態フィールドR44、右下PE状態フィールドRD45、下PE状態フィールドD46、左下PE状態フィールドLD47、左PE状態フィールドL48、左上PE状態フィールドLU49、上PE状態フィールドU410、右上PE状態フィールドRU411によって構成されている。
【0069】
ワークフィールドW412は、現状態フィールドC42、隣接PE(右PE状態フィールドR44、右下PE状態フィールドRD45、下PE状態フィールドD46、左下PE状態フィールドLD47、左PE状態フィールドL48、左上PE状態フィールドLU49、上PE状態フィールドU410、右上PE状態フィールドRU411)のデータを用いて種々の演算を行なう場合にテンポラリ領域として使用する領域である。
【0070】
図3,図4に示した方法と同様の方法によって、距離が2まで離れたPEへデータ転送を含む24隣接のPE、またはそれ以上に対するデータ転送を行う場合の連想メモリ11(1,1) のワードの割り付けを行うことができる。
【0071】
図5は、2次元PEアレイ装置PEA1における全体の処理手順を示すフローチャートである。
【0072】
電源投入後、まず、現状態フィールドC32またはC42へ、外部から初期データを設定する。
【0073】
次に、連想メモリ11(1,1) の並列部分書き込み機能を用いて、2次元PEアレイ装置PEA1内の全ての隣接状態フィールドを「0」に初期化する(51)。なお、2次元PEアレイ装置PEA1内の全ての隣接状態フィールドは、4隣接の場合には、右PE状態フィールドR34、下PE状態フィールドD35、左PE状態フィールドL36、上PE状態フィールドU37のフィールドであり、8隣接の場合には、右PE状態フィールドR44、右下PE状態フィールドRD45、下PE状態フィールドD46、左下PE状態フィールドLD47、左PE状態フィールドL48、左上PE状態フィールドLU49、上PE状態フィールドU410、右上PE状態フィールドRU411のフィールドである。
【0074】
次に、隣接PEへのデータ転送を行なう(54)。このデータ転送は、内部ワード転送(連想メモリ内転送:52)と上位、下位境界ワード転送(連想メモリ間転送:53)とに分けて行なう。内部ワード転送(52)は、上位境界ワード群13の上PEへのデータ転送と下位境界ワード群15の下PEへのデータ転送以外の全ての転送であり、上位、下位境界ワード転送(53)は、上位境界ワード群13の上PEへのデータ転送と下位境界ワード群15の下PEへのワード転送である。なお、上位境界ワード群13の上PEは、8隣接の場合、右上、左上PEを含み、下位境界ワード群15の下PEは、8隣接の場合右下、左下PEを含む。
【0075】
次に、上記実施の形態における内部ワード転送(52)について説明する。
【0076】
図6は、上記実施の形態において、4隣接内部ワード転送手順を示すフローチャートである。
【0077】
4隣接内部ワード転送(52)は、下、右PEへのビット転送(61)と、上、左PEへのビット転送(62)との2段階で構成される。
【0078】
下、右PEへのビット転送(61)では、まず、マスクレジスタ22に、C32の特定ビット以外をマスクするデータを設定し、「1」で検索を行なうことによって、ヒットフラグレジスタ27へ、C32の特定ビットの内容を転送する。次に、ヒットフラレジスタ27を1下位シフトダウンし、U37の対応ビットによって、ヒットフラグレジスタ27が「1」のワードに、「1」を並列部分書き込みする。上記の手順によって、下PEへのビット転送を行なうことができる。次に、ヒットフラグレジスタ27をm−1回シフトダウンし、L36の対応ビットによって、ヒットフラグレジスタ27が「1」のワードに、「1」を並列部分書き込みする。上記の手順によって右PEへのビット転送が行われる。
【0079】
上、左PEへのビット転送(62)では、まず、C32の特定ビット以外をマスクレジスタ22にマスクするデータを、設定「1」で検索することによって、C32の特定ビットの内容を、ヒットフラグレジスタ27に転送する。次に、ヒットフラグレジスタ27を1回シフトアップし、D35の対応ビットによって、ヒットフラグレジスタ27が「1」であるワードに「1」を並列部分書き込みする。この手順によって、上PEへのビット転送が行われる。そして、ヒットフラグレジスタ27をm−1回シフトアップし、R34の対応ビットで、ヒットフラグレジスタ27が「1」のワードに「1」を並列部分書き込みする。これによって、左PEへのビット転送が行われる。
【0080】
そして、上記手順をC32のビット数分、繰り返し、4隣接内部ワード転送がすべて終了する。
【0081】
図7は、上記実施の形態における8隣接内部ワード転送手順を示すフローチャートである。
【0082】
図7に示すように、8隣接内部ワード転送は、下、右上、右、右下PEへのビット転送(71)と、上、左下、左、右上PEへのビット転送(72)との2段階で行なわれる。
【0083】
下、右上、右、右下PEへのビット転送(71)では、まず、C42の特定ビット以外をマスクレジスタ22にマスクするデータを設定し、「1」で検索を行なうことによって、ヒットフラグレジスタ27へC42の特定ビットの内容を転送する。そして、ヒットフラグレジスタ27を1回シフトダウンし、U410の対応ビットによって、ヒットフラグレジスタ27が「1」のワードに、「1」を並列部分書き込みする。この手順によって、下PEへのビット転送が行われる。次に、ヒットフラグレジスタ27をm−2回シフトダウンし、LD47の対応ビットによって、ヒットフラグレジスタ27が「1」のワードに、「1」を並列部分書き込みする。この手順によって右上PEへのビット転送が行なわれる。
【0084】
次に、ヒットフラグレジスタ27を1回シフトダウンし、L48の対応ビットで、ヒットフラグレジスタ27が「1」のワードに、「1」を並列部分書き込みする。この手順によって右PEへのビット転送が行なわれる。次に、ヒットフラグレジスタ27を1回シフトダウンし、LU49の対応ビットで、ヒットフラグレジスタ27が「1」のワードに、「1」を並列部分書き込みする。このようにして、右下PEへのビット転送が行なわれる。
【0085】
上、左下、左、左上PEへのビット転送(72)では、まず、マスクレジスタ22にC42の特定ビット以外をマスクするデータを設定し、「1」で検索を行なうことによって、ヒットフラグレジスタ27へC42の特定ビットの内容を転送し、ヒットフラグレジスタ27を1回シフトアップする。次に、D46の対応ビットで、ヒットフラグレジスタ27が「1」のワードに、「1」を並列部分書き込みする。この手順によって、上PEへのビット転送が行なわれる。次に、ヒットフラグレジスタ27をm−2回シフトアップし、RU411の対応ビットによって、ヒットフラグレジスタ27が「1」のワードに、「1」を並列部分書き込みする。この手順によって、左下PEへのビット転送が行なわれる。次に、ヒットフラグレジスタ27を1回シフトアップし、R44の対応によって、ヒットフラグレジスタ27が「1」のワードに「1」を並列部分書き込みする。上記手順によって、左PEへのビット転送が行なわれる。
【0086】
次に、ヒットフラグレジスタ27を1回シフトアップし、RD45の対応ビットによって、ヒットフラグレジスタ27が「1」のワードに、「1」を並列部分書き込みする。上記手順によって、左上PEへのビット転送が行なわれる。そして、上記手順をC42のビット数分、繰り返す。これらの手順によって、8隣接内部ワード転送が全て行なわれる。24隣接内部ワード転送、またはそれ以上の数の隣接内部ワード転送についても、上記4隣接、8隣接内部ワード転送の手順と同様の手順で行なわれる。
【0087】
上位、下位境界ワード転送(53)は、連想メモリ11(1,1) のアドレスを用いたワードへのデータ書き込み、読み出し機能を用いて逐次的に行なう。また、内部ワード転送(52)が全て終了してから、上記の上位、下位境界ワード転送(53)を実行する。内部ワード転送時(52)に、たとえば上位境界ワード群13のU37等に、対応しないデータが書き込まれるが、図5に示すフローチャートにおける上位、下位境界ワード転送時(53)に、上記対応しないデータが上書きされるので問題ない。
【0088】
次に、現状態フィールドC32または42と隣接状態を用いて次状態を算出し(55)、この算出された次状態を、次状態フィールドC+33または43に入れる。連想メモリ11(1,1) においては、全てのワードに対して、この処理を同時に実行することができる。次に、次状態フィールドC+32または42の役割と、現状態のフィールドC33または43の役割とを入れ換えて、初期化段階(51)へ戻る。以上の手順を任意回数繰り返し、最後に、次状態フィールドC+33または43のデータを外部へ出力する。
【0089】
上記実施の形態において、連想メモリ11(1,1) は、集積度が極めて高いメモリ技術をベースとして構成されているので、小量のハードウェア量によって、1つのPEとデータ転送パスとを実現できる。したがって、ハードウェア量が少ない2次元PEアレイ装置PEA1を実現することができる。また、X×YのPEで構成された2次元PEアレイ装置PEA1を実現する場合、Yのq分の1づつ多段に分けて割り付けるので、横方向のPE間のデータ転送時間が短くなり、図29に示すようにPEをY個づつジグザグ状に割り付ける従来の2次元PEアレイ装置PEA12よりも、横方法のPE間のデータ転送時間が短くなる。
【0090】
上記実施の形態においては、縦方向の連想メモリ11間でワードの転送が必要となるが、ワードに直接データを読み書きできる連想メモリ11を使用しているので、上記転送の効率が向上される。この点からも、2次元PEアレイ装置PEA1は、全体のデータ転送時間を抑えることが可能である。また、2次元PEアレイ装置PEA1の場合、ジグザグに割り付けるワードの数、連想メモリ11の縦横の数q,rを任意に選択できるので、任意の数でPEを構成でき、2次元PEアレイ装置としての拡張性が高いといえる。
【0091】
(実施の形態2)
図8は、本発明の実施の形態2における上位、下位境界ワード転送手順53を示すフローチャートである。
【0092】
図9は、上記実施の形態2において、4隣接における奇数連想メモリ群91の下位ワード群15の1ワードを、偶数連想メモリ群92へ転送する例を示す図である。なお、上記奇数連想メモリ群91、偶数連想メモリ群92を構成する連想メモリは、連想メモリ11(1,1) と同様のものである。
【0093】
図10は、上記実施の形態2において、4隣接における偶数連想メモリ群92の下位ワード群15の1ワードを、奇数連想メモリ群91へ転送する例を示す図である。
【0094】
図11は、上記実施の形態2において、4隣接における奇数連想メモリ群91の上位ワード群13の1ワードを、偶数連想メモリ群92へ転送する例を示す図である。
【0095】
図12は、上記実施の形態2において、4隣接における偶数連想メモリ群92の上位ワード群13の1ワードを、奇数連想メモリ群91へ転送する例を示す図である。
【0096】
図8に示すように、上位、下位境界ワード転送手順(53)において、まず、奇数メモリ群91の下位ワード群15に属する特定のワードの現状態フィールドC32または42の全ビットを、対応する偶数メモリ群92の上位ワード群13のワードのU37(8隣接の場合LU49、U410、RU411)へ転送する。この場合、図9に示すように、データ転送の方向93に示すデータ転送を、全て同時に行なう。これを下位ワード群15の数だけ、順に繰り返す。
【0097】
次に、偶数メモリ群92の下位ワード群15に属する特定のワードの現状態フィールドC32または42の全ビットを、対応する奇数メモリ群91の上位ワード群13のワードのU37(8隣接の場合LU49、U410、RU411)へ転送する。この場合、図10に示すように、データ転送の方向101に示したデータ転送を、全て同時に行なう。この動作を、下位ワード群15の数だけ順に繰り返す。
【0098】
次に、奇数メモリ群91の上位ワード群13に属する特定のワードの現状態フィールドC32または42の全ビットを、対応する偶数メモリ群92の下位ワード群15のワードのD35(8隣接の場合LD47、D46、RD45)へ転送する。この場合、図11に示すように、データ転送の方向111に示したデータ転送を、全て同時に行なう。これを上位ワード群13の数だけ順に繰り返す。
【0099】
次に、偶数メモリ群92の上位ワード群13に属する特定のワードの現状態フィールドC32または42の全ビットを、対応する奇数メモリ群91の下位ワード群15のワードのD35(8隣接の場合LD47、D46、RD45)へ転送する。この場合、図12に示すように、データ転送の方向121に示したデータ転送を、全て同時に行なう。これを上位ワード群13の数だけ順に繰り返す。
【0100】
これらの手順によって、全ての上位、下位境界ワード転送(53)が行なわれる。上記実施の形態2においては、図9,図10,図11,図12に示した矢印の数だけ、データ転送が並列に行なわれるので、図1に示す2次元PEアレイ装置PEA1における逐次的なデータ転送よりも、転送時間がさらに短くなる。
【0101】
つまり、上記実施の形態2は、1次元に並べられたw個(wは任意の自然数)のワードと、シフトアップ、シフトダウン可能なヒットフラグレジスタと、このヒットフラグレジスタの内容を外に出し入れする上位シフト入出力と下位シフト入出力とを具備するq×r個(q,rは2以上の任意の整数)の連想メモリにおいて、縦方向q列に並べられた上記連想メモリのうちで、奇数列の連想メモリ群から偶数列の連想メモリ群、または偶数列の連想メモリ群から奇数列の連想メモリ群へのデータ転送を同時に行う段階と、横方向r行に並べられた全ての連想メモリに対して、上記データ転送を、同時に行なう段階とを有するデータ転送方法である。
【0102】
このようなデータ転送方法を採用することによって、異なる連想メモリ11を、互いに独立して動作させることができる。この性質を利用し、異なる連想メモリ11間のデータ転送を行なう場合に、奇数列の連想メモリ群91から偶数列の連想メモリ群92へのデータ転送、偶数列の連想メモリ群92から奇数列の連想メモリ群91へのデータ転送、または、横方向に並べられた全ての連想メモリのデータ転送を同時に行なうことができ、これによって、データ転送時間を短くすることができる。
【0103】
(実施の形態3)
図13は、本発明の実施の形態3である2次元PEアレイ装置PEA3において、連想メモリ11のワード24のPEへの割り付け方法(4隣接の場合)を示す図である。
【0104】
図20は、連想メモリ11の1つのワード24に2個のPEを割り付けた場合における2次元PEアレイ装置の構成例を示す図である。
【0105】
図13に示すように、現状態フィールドC132、次状態フィールドC+133、右PE状態フィールドR134、下PE状態フィールドD135、左PE状態フィールドL136、上PE状態フィールドU137によって構成されるPE131を、ビット数の許す限りJ個(Jは任意の2以上の自然数)、1つの連想メモリの1ワード24に割り付ける。
【0106】
この場合、Jを2とすると、図20に示すように、1つのワードa1に、上位のPE a2と下位のPE a3との2つのPEを割り付け、縦方向X=m×2×q個、横方向Y=n×r個のPEを搭載した2次元PEアレイ装置を実現することができる。ただし、この場合、上位のPE a2の下PE状態フィールドD135のデータと、下位のPE a3の上PE状態フィールドU137のデータとは、同一ワード上に存在するので、それぞれの状態フィールドは設けない。
【0107】
8隣接、24隣接の場合も、上記と同様に、連想メモリのワードの割り付けが行なわれる。これによって、同じ連想メモリの数で、より多くのPEを実現できるので、ハード量の少ない2次元PEアレイ装置を実現できる。
【0108】
次に、図21により2次元PEアレイ装置PEA3を用いて種々の処理を行なう全体の処理手順について説明する。
【0109】
上記処理手順は、図6に示す内部ワード転送(52)と、上位、下位境界ワード転送(53)とを除いて、図6に示す手順と同じ手順で行なわれる。
【0110】
内部ワード転送(52)は、上位PE a2の内部ワード転送b1と、下位PE a3の内部ワード転送B2とに分けて行なわれる。
【0111】
上位PE a2の内部ワード転送b1では、マスクレジスタ22にC32の特定ビット以外をマスクするデータを設定し「1」で検索を行なうことによって、ヒットフラグレジスタ27へC32の特定ビットの内容を転送する。次に、ヒットフラグレジスタ27をm回シフトダウンし、L36の対応ビットで、ヒットフラグレジスタ27が「1」のワードに「1」を並列部分書き込みする。上記手順によって、右PEへのビット転送が行なえる。
【0112】
次に、マスクレジスタ22にC32の特定ビット以外をマスクするデータを再度設定し、「1」で検索を行なうことによって、ヒットフラグレジスタ27へC32の特定ビットの内容を転送し、ヒットフラグレジスタ27を1回シフトアップする。そして、D35の対応ビットで、ヒットフラグレジスタ27が「1」のワードに「1」を並列部分書き込みする。上記手順によって、上記PE a2へのビット転送が行なえる。
【0113】
次に、ヒットフラグレジスタ27をm−1回シフトアップし、R34の対応ビットで、ヒットフラグレジスタ27が「1」のワードに、「1」を並列部分書き込みする。この手順によって、左PEへのビット転送が行なえる。上記手順をC32のビット数分繰り返す。これらの手順によって、上記PE a1の4隣接内部ワード転送b1が全て行なえる。
【0114】
下位PE a3の内部ワード転送b2では、マスクレジスタ22にC32の特定ビット以外をマスクするデータを設定し、「1」で検索を行なうことによって、ヒットフラグレジスタ27へC32の特定ビットの内容を転送し、ヒットフラグレジスタ27を1回シフトダウンする。そして、U37の対応ビットで、ヒットフラグレジスタ27が「1」のワードに、「1」を並列部分書き込みする。上記手順によって、下位PEへのビット転送が行なえる。
【0115】
次に、ヒットフラグレジスタ27をm−1回シフトダウンし、L36の対応ビットで、ヒットフラグレジスタ27が「1」のワードに、「1」を並列部分書き込みする。上記手順によって、右PEへのビット転送が行なえる。
【0116】
次に、マスクレジスタ22にC32の特定ビット以外をマスクするデータを再度設定し、「1」で検索を行なうことによって、ヒットフラグレジスタ27へC32の特定ビットの内容を転送し、ヒットフラグレジスタ27をm回シフトアップする。そして、R34の対応ビットで、ヒットフラグレジスタ27が「1」のワードに、「1」を並列部分書き込みする。上記手順によって左PEへのビット転送が行なえる。これらの得順をC32のビット数分繰り返す。以上の手順によって、下位PE a3の4隣接内部ワード転送b2が全て行なえる。
【0117】
次に、上位、下位境界ワード転送手順(53)について説明する。
【0118】
上位、下位境界ワード転送53は、図8に示す手順と同様に、奇数連想メモリ群91の下位ワード群15の特定の1ワードを、偶数連想メモリ群92へ転送し、偶数連想メモリ群92の下位ワード群15の特定の1ワードを、奇数連想メモリ群91へ転送し、奇数連想メモリ群91の上位ワード群13の特定の1ワードを、偶数連想メモリ群92へ転送し、偶数連想メモリ群92の上位ワード群13の特定の1ワードを、奇数連想メモリ群91へ転送し、それぞれを上位、下位ワード群のワードの数だけ繰り返すことによって転送が行われる。
【0119】
ただし、たとえば、図20に示した連想メモリ11の1つのワード24に2個のPEを割り付けた場合、上位ワード群13から下位ワード群15へのワード転送を行なう際は、下位PE a3のワードのみ転送を行ない、一方、下位ワード群15から上位ワード群13へのワード転送を行なう際は、上位PE a2のワードのみ転送を行なう。以上の手順によって、全ての上位、下位境界ワード転送53が行なえる。
【0120】
図13は、2次元PEアレイ装置PEA3における連想メモリ11のワード24のPEへの割り付け方法(4隣接の場合)を示す図である。
【0121】
図13に示すように、現状態フィールドC132、次状態フィールドC+133、右PE状態フィールドR134、下PE状態フィールドD135、左PE状態フィールドL136、上PE状態フィールドU137によって構成されるPE131を、ビット数の許す限り、J個(Jは2以上の任意の自然数)、連想メモリの1ワード24に割り付ける。8隣接、24隣接の場合も、同様に、連想メモリのワードの割り付けを行なうことができる。これによって、同じ連想メモリの数で、より多くのPEを実現できるので、ハード量の少ない2次元PEアレイ装置を実現することが可能である。
【0122】
ここで、連想メモリの1つのワードに複数PEを割りつける場合の(内部ワード)転送方法は、上記のとおりである。
【0123】
2次元PEアレイ装置PEA3は、連想メモリの1つのワード24に複数のPEが割り付けられ、この内の1つのPE131に、自分のPEの現状態フィールドと、上記自分のPEの次状態フィールドと、隣接PEの各状態フィールドとを保有している2次元PEアレイ装置である。このように連想メモリの1つのワード24に複数のPEを割り付けていることによって、同じ連想メモリの数でより多くのPEを実現できるので、ハード量の少ない2次元PEアレイ装置を実現することが可能である。
【0124】
(実施の形態4)
次に、連想メモリ11として、2次元PEアレイ装置PEA1の機能に加えて、アドレスを用いたワード24へのデータ書き込み、読み出しと、シフトアップ、シフトダウン動作とを同時に実行できるモードを有する連想メモリを用いて、2次元PEアレイ装置を構成した実施の形態4である連想メモリについて説明する。
【0125】
実施の形態4である連想メモリは、アドレスを用いたワード24へのデータ書き込み読み出しと、ヒットフラグレジスタのシフトモードとを実行する連想メモリにおいて、上記アドレスを用いたワードへのデータ書き込み読み出しと、上記ヒットフラグレジスタのシフトモードとを同時に行なうモードを有する連想メモリである。
【0126】
図14は、右、下、左、上の4隣接のPEに対するデータ転送機能を有する2次元PEアレイ装置を実現するための連想メモリのワードの割り付け法を示す図である。
【0127】
図14に示すように、1つのPE141は、現状態フィールドC142、次状態フィールドC+143、右PE状態フィールドR144、下PE状態フィールドD145、左PE状態フィールドL146、上PE状態フィールドU147、ワード種類識別フィールドI148によって構成される。
【0128】
PE141を連想メモリ11の1つのワード24に、ビット数の許す限り、J個(Jは2以上の任意の自然数)割り付ける。ワークフィールドW149は、現状態フィールドC142、隣接PEのデータを用い、種々の演算を行なう際のテンポラリ領域として用いる。
【0129】
図15は、右、右下、下、左下、左、左上、上、右上の8隣接のPEに対するデータ転送機能を有する2次元PEアレイ装置を実現するための連想メモリのワード24の割り付け法を示した図である。
【0130】
図15に示すように、1つのPE151は、現状態フィールドC152、次状態フィールドC+153、右PE状態フィールドR154、右下PE状態フィールドRD155、下PE状態フィールドD156、左下PE状態フィールドLD157、左PE状態フィールドL158、左上PE状態フィールドLU159、上PE状態フィールドU1510、右上PE状態フィールドRU1511、ワード種類識別フィールドI1512によって構成される。PE151を、連想メモリ11の1つのワード24に、ビット数の許す限り、J個(Jは任意の自然数)割り付ける。ワークフィールドW1513は、現状態フィールドC152、隣接PEのデータを用いて種々の演算を行なう際のテンポラリ領域として用いる。
【0131】
図16は、ワード種類識別フィールドI148または1512を示す図である。
【0132】
ワード種類識別フィールドI148または1512は、上位境界ワード識別子161、内部状態ワード識別子162、下位境界ワード識別子163の3ビットで構成されている。電源投入時に、ワードが上位境界ワード群13に属する場合、上位境界ワード識別子161のみが「1」で残りは「0」に設定され、ワードが内部ワード群14に属する場合、内部状態ワード識別子162のみが「1」で残りは「0」に設定され、ワードが下位境界ワード群15に属する場合、下位境界ワード識別子163のみが「1」で残りは「0」に設定される。
【0133】
図17は、上記に示した構成をとる2次元PEアレイ装置を用いて種々の処理を行なう全体の処理手順を示した図である。
【0134】
隣接PEへのデータ転送173以外は、図6に示した方法と同様に行なう。
【0135】
図18は、隣接PEへのデータ転送173のうち内部ワード転送171に関する4隣接内部ワード転送手順を示す図である。
【0136】
図19は、隣接PEへのデータ転送173のうち内部ワード転送171に関する8隣接内部ワード転送手順を示す図である。
【0137】
図18に示すように、4隣接内部ワード転送171は、下、右PEへのビット転送181と、上、左PEへのビット転送182との2段階で行なう。下、右PEへのビット転送181では、まず、マスクレジスタ22にC142の特定ビット以外をマスクするデータを設定し、「1」で検索を行なうことによって、ヒットフラグレジスタ27へ、C142の特定ビットの内容を転送する。
【0138】
次に、ヒットフラグレジスタ27を1回シフトダウンし、U147の対応ビットでかつ上位境界ワード群13に属さず、ヒットフラグレジスタ27が「1」のワードに「1」を並列部分書き込みする。
【0139】
上位境界ワード群13に属すか否かは、ワード種類識別フィールドI148を検索して調べる。上記の手順によって下PEへのビット転送が行なわれる。次に、ヒットフラグレジスタ27をm−1回シフトダウンし、L146の対応ビットで、ヒットフラグレジスタ27が「1」のワードに「1」を並列部分書き込みする。上記手順によって、右PEへのビット転送が行なわれる。
【0140】
上、左PEへのビット転送182では、まず、マスクレジスタ22にC142の特定ビット以外をマスクするデータを設定し、「1」で検索を行なうことによって、ヒットフラグレジスタ27へC142の特定ビットの内容を転送する。次に、ヒットフラグレジスタ27を1回シフトアップし、D145の対応ビットでかつ下位境界ワード群15に属さず、ヒットフラグレジスタ27が「1」のワードに「1」を並列部分書き込みする。下位境界ワード群15に属すか否かは、ワード種類識別フィールドI148を検索して調べる。上記手順によって、上PEへのビット転送が行なわれる。
【0141】
次に、ヒットフラグレジスタ27をm−1回シフトアップし、R144の対応ビットで、ヒットフラグレジスタ27が、「1」のワードに「1」を並列部分書き込みする。上記手順によって、左PEへのビット転送が行なわれる。
【0142】
上記手順をC142のビット数分繰り返し、さらに、1ワードに複数のPEを割り付けた場合、上記手順をその数だけ繰り返す。以上の手順によって、4隣接内部ワード転送が全て行なわれる。
【0143】
図19に示すように、8隣接内部ワード転送は、下、右上、右、右下PEへのビット転送191と、上、左下、左、左上PEへのビット転送192との2段階で行なう。
【0144】
下、右上、右、右下PEへのビット転送191では、まず、マスクレジスタ22にC152の特定ビット以外をマスクするデータを設定し、「1」で検索を行なうことによって、ヒットフラグレジスタ27へC152の特定ビットの内容を転送し、ヒットフラグレジスタ27を1回シフトダウンする。次に、U1510の対応ビットでかつ上位境界ワード群13以外で、ヒットフラグレジスタ27が「1」のワードに、「1」を並列部分書き込みする。上位境界ワード群13に属すか否かは、ワード種類識別フィールドI1512を検索して調べる。上記手順によって、下PEへのビット転送が行なわれる。
【0145】
次に、ヒットフラグレジスタ27をm−2回シフトダウンし、LD157の対応ビットで、ヒットフラグレジスタ27が、「1」のワードに「1」を並列部分書き込みする。上記手順によって、右上PEへのビット転送が行なわれる。
【0146】
次に、ヒットフラグレジスタ27を1回シフトダウンし、L158の対応ビットで、ヒットフラグレジスタ27が、「1」のワードに「1」を並列部分書き込みする。上記手順によって、右PEへのビット転送が行なわれる。
【0147】
次に、ヒットフラグレジスタ27を1回シフトダウンし、LU159の対応ビットでかつ上位境界ワード群13に属さず、ヒットフラグレジスタ27が「1」のワードに、「1」を並列部分書き込みする。上位境界ワード群13に属するか否かは、ワード種類識別フィールドI1512を検索して調べる。上記手順によって、右下PEへのビット転送が行なわれる。
【0148】
上、左下、左、左上PEへのビット転送192では、まず、マスクレジスタ22にC152の特定ビット以外をマスクするデータを設定し、「1」で検索を行なうことによって、ヒットフラグレジスタ27へC42の特定ビットの内容を転送する。
【0149】
次に、ヒットフラグレジスタ27を1回シフトアップし、D156の対応ビットでかつ下位境界ワード群15に属さず、ヒットフラグレジスタ27が「1」のワードに、「1」を並列部分書き込みする。上位境界ワード群13に属するか否かは、ワード種類識別フィールドI1512を検索して調べる。上記手順によって、上PEへのビット転送が行なわれる。
【0150】
次に、ヒットフラグレジスタ27をm−2回シフトアップし、RU1511の対応ビットで、ヒットフラグレジスタ27が「1」のワードに、「1」を並列部分書き込みする。上記手順によって、左下PEへのビット転送が行なわれる。
【0151】
次に、ヒットフラグレジスタ27を1回シフトアップし、R154の対応ビットで、ヒットフラグレジスタ27が「1」のワードに「1」を並列部分書き込みする。上記手順によって左PEへのビット転送が行なわれる。
【0152】
次に、ヒットフラグレジスタ27を1回シフトアップし、RD155の対応ビットでかつ下位境界ワード群15に属さず、ヒットフラグレジスタ27が「1」のワードに、「1」を並列部分書き込みする。上記境界ワード群13に属するか否かは、ワード種類識別フィールドI1512を検索して調べる。上記手順によって、左上PEへのビット転送が行なわれる。
【0153】
上記手順をC152のビット数分繰り返し、さらに、1ワードに複数のPEを割り付けた場合は、上記手順をその数だけ繰り返す。以上の手順によって、8隣接内部ワード転送が全て行なわれる。
【0154】
24隣接内部ワード転送、またはそれ以上の場合も、上記した4隣接、8隣接内部ワード転送と同様の手順で行なわれる。
【0155】
上位、下位境界ワード転送172手順は、上記各実施の形態に示した方法と同様に行なう。
【0156】
次に、内部ワード転送171と上位、下位境界ワード転送172をどの様な手順で行なうかについて説明する。
【0157】
上記した内部ワード転送手順171の中で、シフトダウン、シフトアップ動作を行なっている期間、上位、下位境界ワード転送172も同様に行なう。ヒットフラグレジスタのシフトモード(内部ワード転送171で利用)と、アドレスを用いたワードへのデータ書き込み、読み出し(上位、下位境界ワード転送172で利用)とを同時に実行できるモードを有する連想メモリを用いることによって、上記のように、内部ワード転送171と、上位、下位境界ワード転送172を同時に行なうことができる。
【0158】
また、上記の内部ワード転送171で示したように、内部ワード転送171時に、たとえば上位境界ワード群13のU147等に、対応しないデータが書き込まれることがないようにしているので、内部ワード転送171と、上位、下位境界ワード転送172とを同時に行なうことによって、正しいデータが上書きされる等の問題は生じない。
【0159】
また、内部ワード転送171と上位、下位境界ワード転送172とを同時に行なえるので、(請求項1の実施の形態に示した)内部ワード転送171と上位、下位境界ワード転送172とを順番に行なう方法と比較すると、短い転送時間が短くなる。
【0160】
つまり、アドレスを用いたワードへのデータ書き込み、読みだしとヒットフラグレジスタのシフトモードとが同時に行えるモードを有する連想メモリを用いるから、図17で示すデータ転送可能である171と172とを、同時に実行できる。
【0161】
上記のように、アドレスを用いたワードへのデータ書き込み、読み出しとヒットフラグレジスタのシフトモードが同時に動作させることによって、上記の横方法のPE間のデータ転送時間と、上記の縦方向の連想メモリ間のワードの転送とを同時に行なうことが可能になり、データ転送時間を抑えることが可能である。この場合、上記シフトモードは、双方向の場合、一方向の場合の両者に適用できる。
【0162】
(実施の形態5)
図22は、本発明の他の実施の形態であるモルフォロジー演算処理を実行する2次元PEアレイ装置MS1の基本構成を示す図である。
【0163】
2次元PEアレイ装置MS1は、連想メモリアレイ部17と制御部18とで構成されている。連想メモリアレイ部17は、q×r個(q,rは2以上の任意の整数)の2次元配列された連想メモリ11で構成されている。
【0164】
2次元PEアレイ装置MS1を構成する連想メモリ11は、基本的には、図2に示す連想メモリ11(1,1) と同じであり、w個(wは任意の自然数)のワード24と、アドレスデコーダ25と、シフトアップ、シフトダウン可能なヒットフラグレジスタ27と、このヒットフラグレジスタ27の内容を外に出し入れする上位シフト入出力26と、下位シフト入出力29等とを具備するものである。なお、2次元PEアレイ装置MS1で使用されている連想メモリ11におけるワード24は、原画像フィールドと処理画像フィールドとシフト画像フィールドとを有する1次元に並べられたワードである。
【0165】
また、図2において説明したマスク検索機能と並列部分書き込み機能とを用いることによって、全ワード24に対して、並列に、モルフォロジー演算処理に必要な、加減算、比較演算、論理和演算を含む、任意の論理、算術演算を実行することが可能である。この具体的な手順に関しては、「小倉,長沼,“連想プロセッサ上での局所表現型ニューラルネットワークのハードウェアアルゴリズムとその評価”,信学技報CPSY81−44,1991」等に開示されている。
【0166】
1つの連想メモリ11に着目すると、その横方向の一方に隣接する連想メモリの下位シフト入出力とヒットフラグシフト線16で接続され、上記横方向の他方に隣接する連想メモリのシフト入出力とヒットフラグシフト線16で接続されている。このようにすることによって、横方向に互いに隣接する連想メモリは、同一の連想メモリとして、シフトアップ、シフトダウン等の動作を統一的に行うことができる。
【0167】
1つの連想メモリ11におけるw個のワード24は、それぞれが、m列、n行(w,m,nはw=m×nを満たす任意の自然数)にジグザグ状に並べられた種々の論理、算術演算を行うPEに順次割り付けられている。1つの連想メモリ11では、m×nの2次元のPEアレイを実現でき、連想メモリアレイ部17全体では、縦方向m×q個、横方向n×r個のPEを持つ2次元のPEを実現できる。連想メモリアレイ部17において、m×qが原画像の縦の画素数であり、n×rが画像の横の画素数であり、したがって、m,q,n,rを所望の値に指定することによって、原画像の画素数と同数のPEを実現することができる。
【0168】
制御部18は、モルフォロジー演算処理を連想メモリアレイ部17に実行させるために、単一の制御命令ストリームを生成するものであり、マイクロプロセッサまたはFPGA(field programmable gate array)等の再構成可能な回路で構成されている。
【0169】
図23は、2次元PEアレイ装置MS1で使用する連想メモリ11における各ワード24のフィールド構成を詳細に示す図である。
【0170】
各ワード24は、原画像の各画素データを格納する原画像フィールドC331と、モルフォロジー演算処理後の各画素データを格納する処理画像フィールドC+332と、原画像のシフトアップまたはシフトダウンデータを格納するシフト画像フィールドUD1 333と、シフト画像フィールドUD2 334と、左右のPEの原画像データを格納するシフト画像フィールドRL335とによって構成されている。ワークフィールドW336は、原画像フィールドC331またはシフト画像フィールドUD1 333,UD2 334,RL335のデータを用いて種々の演算を行う場合のテンポラリ領域として用いるものである。
【0171】
次に、モルフォロジー演算処理を行うために、制御部18において生成する単一の制御命令動作について、詳細に説明する。まず、モルフォロジー演算について概説する。
【0172】
モルフォロジー演算は、ダイレーション(dilation)、エロージョン(erosion)、クロージング(closing)、オープニング(opening)の4つの基本演算で構成されている。
【0173】
図24は、モルフォロジーの構造要素を定義した図である。
【0174】
「ダイレーション」は、原画像の各画素に対して、自分と近傍の画素データのみを用いた演算によって行われる処理である。その処理結果は、図24に示すように、自PEの位置を原点343とした場合、(−X2,−Y2)〜(X1,Y1)に分布する構造要素341の定義(具体的には、構造要素が2値である場合には「1」であること、多値である場合には「データが存在する」ことをいう)に従って、自分と近傍PEの原画像とに対して演算処理を行った結果である。たとえば、構造要素341が(0,0)、(1,1)、(1,−1)、(−1,1)、(−1,−1)において定義されている場合、ダイレーションは、自分と上下左右の4隣接の原画像とのデータに対して演算処理を行った結果となる。ここで、X1,X2,Y1,Y2は0以上の任意の整数である。
【0175】
演算処理は、原画像が2値であり、構造要素341が2値である場合(setprocessing)、論理和演算を実行し(上記例の場合、自分と上下左右の4隣接の原画像とのデータのうちで、1つでも「1」があったら「1」を出力し)、原画像が多値であり、構造要素341が2値である場合(function and set processing)、最大値を求める演算を実行し(上記例の場合、自分と上下左右の4隣接の原画像とのデータの最大値を求める演算を実行し)、原画像が多値であり、構造要素341が多値である場合(function processing)、構造要素341の値を加算した上で最大値演算を実行する。
【0176】
「エロージョン」は、上記のダイレーションと同様に処理できる。ただし、エージョンにおける演算処理は、原画像が2値であり、構造要素341が2値である場合、論理積演算(上記例の場合、自分と上下左右の4隣接の原画像とのデータの全てが「1」であれば、「1」を出力し)、原画像が多値であり、構造要素341が2値である場合、最小値を求める演算を実行し(上記例の場合、自分と上下左右の4隣接の原画像とのデータの最小値を求める演算を実行し)、原画像が多値であり、構造要素341が多値である場合には、構造要素341の値を減算した上で最小値演算を行う。
【0177】
「クロージング」は、上記ダイレーションを行った後にエロージョンを実行した結果であり、「オープニング」は、エロージョンを行った後にダイレーションを実行した結果である。
【0178】
図25は、モルフォロジー演算処理における全体の出力手順を示すフローチャートである。
【0179】
まず、原画像の2次元の各画像データを、連想メモリアレイ部17の対応するPE(=ワード24)の原画像フィールドC331に転送する。また、画像処理フィールドC+332を初期化する。
【0180】
次に、モルフォロジー演算のステップ353(1)として、転送演算処理351と画像シフト処理352とを並列に実行する。転送演算処理351では、構造要素の(−X2,0)−(X1,0)の定義に従って、自分とその左右のPE12の原画像フィールドC331とのデータを、自分のPE12へ転送、演算を行い、この演算結果を処理画像フィールドC+332に格納する。演算種別は、上記したように、たとえばダイレーションでは、原画像が2値であり、構造要素341が2値である場合、論理和演算を行う。画像シフト処理352は、上PE12の原画像フィールドC331をシフト画像フィールドUD1 333に転送する。これによって、画像フィールドUD1 333に、原画像フィールドC331のデータを1画素分シフトダウンしたデータが格納される。
【0181】
次に、モルフォロジー演算のステップ353(2)として、転送演算処理351と画像シフト処理352とを並列に実行する。転送演算処理351では、構造要素の(−X2,1)−(X1,1)の定義に従って、自分とその左右のPE12のシフト画像フィールドUD1 333とのデータを、自分のPE12へ転送し、演算を行い、この演算結果を処理画像フィールドC+332に格納する。画像シフト処理352は、上PE12のシフト画像フィールドUD1 333を、シフト画像フィールドUD2 334に転送する。
【0182】
上記と同様の処理を、ステップ353(3)から、ステップ353(Y1)まで繰り返す。この場合、画像シフト処理352は、シフト画像フィールドUD1 333とシフト画像フィールドUD2 334とを交互に入れ換えて処理する。
【0183】
次に、モルフォロジー演算のステップ353(Y1+1)として、転送演算処理351と画像シフト処理352とを並列に実行する。転送演算処理351では、構造要素の(−X2,Y1)−(X1,Y1)の定義に従って、自分とその左右のPE12のシフト画像フィールドUD1 333(またはシフト画像フィールドUD2 334)とのデータを、自分のPE12へ転送し、演算し、その演算結果を処理画像フィールドC+332に格納する。画像シフト処理352では、下PE12の原画像フィールドC331をシフト画像フィールドUD1 333(またはシフト画像フィールドUD2 334)に転送する。これによって、画像フィールドUD1 (またはシフト画像フィールドUD2 334)に、原画像フィールドC331のデータを1画素分シフトアップしたデータが格納される。
【0184】
次に、モルフォロジー演算のステップ353(Y1+2)として、転送演算処理351と画像シフト処理352とを並列に実行する。転送演算処理351において、構造要素の(−X2,−1)−(X1,−1)の定義に従って、自分とその左右のPE12のシフト画像フィールドUD1 333(またはシフト画像フィールドUD2 334)とのデータを、自分のPE12へ転送し、演算し、この演算結果を処理画像フィールドC+332に格納する。画像シフト処理352は、下PE12のシフトフィールドUD1 333(またはシフト画像フィールドUD2 334)を、シフト画像フィールドUD2 334(またはシフト画像フィールドUD1 333)に転送する。
【0185】
上記と同様の処理を、ステップ(Y1+3)からステップ(Y1+Y2)まで繰り返す。この場合、画像シフト処理352では、シフト画像フィールドUD1 333とシフト画像フィールドUD2 334とを交互に入れ換えて処理する。
【0186】
最後に、モルフォロジー演算のステップ353(Y1+Y2+1)として、転送演算処理351を実行する。転送演算処理351では、構造要素の(−X2,−Y2)−(X1,−Y2)の定義に従って、自分とその左右のPE12のシフト画像フィールドUD1 333(またはシフト画像フィールドUD2 334)とのデータを、自分のPE12へ転送し、演算し、その演算結果を処理画像フィールドC+332に格納する。
【0187】
図26は、図25に示す処理ステップ353(1)を例にとって、転送演算処理351を詳細に示すフローチャートである。
【0188】
転送演算処理351は、自PE12に対する転送演算処理61と、左PE12に対する転送演算処理362と、右PE12に対する転送演算処理363とに分けて実行する。
【0189】
自PE12に対する転送演算処理361では、まず、連想メモリ11のマスクレジスタ22に、原画像フィールドC331の特定ビット以外をマスクするデータを設定し、「1」で検索を行うことによって、ビットフラグレジスタ27へ、原画像フィールドC331の特定ビットの内容を転送する。
【0190】
次に、シフト画像フィールドRL335の対応ビットで、ヒットフラグレジスタ27が「1」のワードに、「1」を並列部分書き込みする。上記手順を原画像フィールドC331のビット数分だけ繰り返す。
【0191】
次に、対応する構造要素(この場合、原点(0,0)が定義されていたら、演算処理を行い、その結果を処理画像フィールドC+332に格納する。演算の種別は、上記したように、たとえばダイレーションで原画像が多値であり、構造要素341が2値である場合、最大値演算を行う。
【0192】
左PE12に対する転送演算処理362では、まず、マスクレジスタ22にシフト画像フィールドRL335(最初だけ原画像フィールドC331)の特定ビット以外をマスクするデータを設定し、「1」で検索を行うことによって、ヒットフラグレジスタ27へ、シフト画像フィールドRL335(最初だけ原画像フィールドC331)の特定ビットの内容を転送する。
【0193】
次に、ヒットフラグレジスタ27をm回シフトダウンし、シフト画像フィールドRL335の対応ビットで、ヒットフラグレジスタ27が「1」のワードに「1」を並列部分書き込みする。上記手順を、シフト画像フィールドRL335のビット数分だけ繰り返す。次に、対応する構造要素(この場合(−1,0)が定義されていたら、演算処理を行い、この結果を処理画像フィールドC+332に格納する。上記手順を(−2,0)−(−X2,0)で定義されている構造要素がなくなるまで繰り返す。
【0194】
右PE12に対する転送演算処理363では、まず、マスクレジスタ22にシフト画像フィールドRL335(最初だけ原画像フィールドC331)の特定ビット以外をマスクするデータを設定し、「1」で検索を行うことによって、ヒットフラグレジスタ27へシフト画像フィールドRL335(最初だけ原画像フィールドC331)の特定ビットの内容を転送する。
【0195】
次に、ヒットフラグレジスタ27をm回シフトアップし、シフト画像フィールドRL335の対応ビットで、ヒットフラグレジスタ27が「1」のワードに、「1」の並列部分書き込みする。上記手順を、シフト画像フィールドRL335のビット数分だけ繰り返す。次に、対応する構造要素(この場合(1,0)が定義されていたら、演算処理を行い、この結果を処理画像フィールドC+332に格納する。上記手順を、(2,0)−(X1,0)で定義されている構造要素がなくなるまで繰り返す。
【0196】
上記処理によって、(−X2,0)−(X1,0)に分布する構造要素に対するモルフォロジー演算処理が終わる。上記処理は、処理ステップ2からY1+Y2+1の転送演算処理も同様に実行し、全ステップ終了後には、全ての構造要素に対するモルフォロジー演算処理が終わる。
【0197】
図27は、処理ステップ353(1)を例にとって、画像シフト処理手順352を詳細に示すフローチャートである。
【0198】
画像シフト処理手順352は、内部ワード転送371……下位境界ワード群15の下PEへのデータ転送以外の全ての転送と、上位、下位境界ワード転送372……下位境界ワード群15の下PEへのデータ転送とに分けて実行する。
【0199】
内部ワード転送371では、まず、マスクレジスタ22に、原画像フィールドC331の特定ビット以外をマスクするデータを設定し、「1」で検索することによって、ヒットフラグレジスタ27へ、原画像フィールドC331の特定ビットの内容を転送する。次に、ヒットフラグレジスタ27を1回シフトダウンし、シフト画像フィールドUD1 333の対応ビットで、ヒットフラグレジスタ27が「1」のワードに「1」を並列部分書き込みする。上記手順を原画像フィールドC331のビット数分だけ繰り返す。
【0200】
上位、下位境界ワード転送372では、まず、奇数メモリ群91の下位ワード群15に属する特定のワードの原画像フィールドC331の全ビットを、対応する偶数メモリ群92の上位ワード群13のワードのシフト画像フィールドUD1 333へ転送する。次に、偶数メモリ群92の下位ワード群15に属する特定のワードの原画像フィールドC331の全ビットを、対応する奇数メモリ群91の上位ワード群13のワードのシフト画像フィールドUD1 333へ転送する。これらの転送は、連想メモリ11のアドレスを用いたワードへのデータ書き込み、読み出し機能を用いて行う。
【0201】
上記処理は、ステップ353(Y1+1)等のシフトアップ処理に対しても、同様に実行できる。
【0202】
ヒットフラグレジスタ27のシフト動作は、上記アドレスを用いたワードへのデータ書き込み、読み出しと同時に行うモードを有するので、画像シフト処理手順352の上位、下位境界ワード転送372は、転送演算処理351のヒットフラグをシフトダウン、シフトアップ動作を同時に行うことができ、モルフォロジー演算処理を効率よく行うことができる。
【0203】
上記処理フローチャートを、プログラムまたは状態遷移の形で制御部18に搭載し、連想メモリアレイ部17に対して、順次命令を与えることによって、上記実施の形態である2次元PEアレイ装置MS1は、任意の形状、大きさの構造要素に対するモルフォロジー演算処理を実行することができる。
【0204】
上記実施の形態である2次元PEアレイ装置MS1は、原画像の画素と同数のPEを持った2次元PEを有する構成をとることによって、処理速度は、原画像の大きさに依存しない。また、連想メモリのワードにシフト画像フィールドを設け、上記シフト画像フィールドに隣接画素のデータを順次、転送しながらモルフォロジー演算処理を行うことによって、処理可能な構造要素の大きさに制限がない。したがって、大きな構造要素、大きな原画像に対して、少ない処理時間でモルフォロジー演算処理を実行することができ、高性能なモルフォロジー演算処理装置を実現することができる。
【0205】
また、上記実施の形態で用いる連想メモリは、集積度の極めて高いメモリ技術をベースとして構成できるので、小量のハード量で、1つのPEとデータ転送パスとを実現できる。したがって、少ないハード量で2次元PEアレイ装置MS1を実現することができ、また、2次元PEアレイ装置MS1の装置コストが低くなる。
【0206】
【発明の効果】
請求項1記載の発明によれば、全体のデータ転送時間を抑え、しかもハードウェア量を少なくしたので、高性能なPEアレイ装置を実現できる。
また、請求項1記載の発明によれば、制御部を設けたので、転送時間のさらに短い2次元PEアレイ装置を実現できる。
【0210】
請求項2記載の発明によれば、全体のデータ転送時間をさらに抑えた連想メモリを用いるので、転送時間のさらに短い2次元PEアレイ装置を実現できる。
【0213】
請求項3記載の発明によれば、全体のデータ転送時間をさらに抑えることができるので、転送時間のさらに短いデータ転送方法を実現できる。
【0214】
請求項4記載の発明によれば、全体のデータ転送時間をさらに抑えることができるので、転送時間のさらに短いデータ転送方法を実現できる。
【0216】
請求項5記載の発明によれば、全体のデータ転送時間を抑え、しかもハードウェア量を少なくしたので、高性能な2次元PEアレイ装置を実現することができる。
【0217】
請求項6記載の発明によれば、全体のデータ転送時間を抑え、しかもハードウェア量を少なくしたので、高性能なモルフォロジー演算処理方法を実現することができる。
【0218】
請求項7記載の発明によれば、全体のデータ転送時間をさらに抑えたので、さらに高性能なモルフォロジー演算処理方法を実現することができる。
【0219】
請求項8記載の発明によれば、全体のデータ転送時間を抑え、しかもハードウェア量を少なくしたので、高性能なモルフォロジー演算処理方法を実現することができる。
【0220】
請求項9記載の発明によれば、全体のデータ転送時間を抑え、しかもハードウェア量を少なくしたので、高性能なモルフォロジー演算処理方法を実現することができる。
【図面の簡単な説明】
【図1】本発明の一実施の形態である2次元PEアレイ装置PEA1の基本構成を示す図である。
【図2】上記2次元PEアレイ装置PEA1を構成する連想メモリ11(1,1) を示す図である。
【図3】上記実施の形態において、右、下、左、上の4隣接のPEにデータ転送する場合における連想メモリ11(1,1) のワードの割り付け法を示す図である。
【図4】上記実施の形態において、右、右下、下、左下、左、左上、上、右上の8隣接のPEにデータ転送する場合における連想メモリ11(1,1) のワードの割り付け法を示す図である。
【図5】2次元PEアレイ装置PEA1における全体の処理手順を示すフローチャートである。
【図6】上記実施の形態において、4隣接内部ワード転送手順を示すフローチャートである。
【図7】上記実施の形態における8隣接内部ワード転送手順を示すフローチャートである。
【図8】本発明の実施の形態2における上位、下位境界ワード転送手順53を示すフローチャートである。
【図9】上記実施の形態2において、4隣接における奇数連想メモリ群91の下位ワード群15の1ワードを、偶数連想メモリ群92へ転送する例を示す図である。
【図10】上記実施の形態2において、4隣接における偶数連想メモリ群92の下位ワード群15の1ワードを、奇数連想メモリ群91へ転送する例を示す図である。
【図11】上記実施の形態2において、4隣接における奇数連想メモリ群91の上位ワード群13の1ワードを、偶数連想メモリ群92へ転送する例を示す図である。
【図12】上記実施の形態2において、4隣接における偶数連想メモリ群92の上位ワード群13の1ワードを、奇数連想メモリ群91へ転送する例を示す図である。
【図13】本発明の実施の形態3である2次元PEアレイ装置PEA3において、連想メモリ11のワード24のPEへの割り付け方法(4隣接の場合)を示す図である。
【図14】右、下、左、上の4隣接のPEに対するデータ転送機能を有する2次元PEアレイ装置を実現するための連想メモリのワードの割り付け法を示す図である。
【図15】右、右下、下、左下、左、左上、上、右上の8隣接のPEに対するデータ転送機能を有する2次元PEアレイ装置を実現するための連想メモリのワードの割り付け法を示した図である。
【図16】ワード種類識別フィールドI 148または1512を示す図である。
【図17】上記に示した構成をとる2次元PEアレイ装置を用いて種々の処理を行なう全体の処理手順を示した図である。
【図18】隣接PEへのデータ転送173のうち内部ワード転送171に関する4隣接内部ワード転送手順を示す図である。
【図19】隣接PEへのデータ転送173のうち内部ワード転送171に関する8隣接内部ワード転送手順を示す図である。
【図20】連想メモリ11の1つのワード24に2個のPEを割り付けた場合における2次元PEアレイ装置の構成例を示す図である。
【図21】連想メモリ11の1つのワード24に2個のPEを割り付けた場合における4隣接PEへの内部ワード転送手順(52)を示すフローチャートである。
【図22】本発明の他の実施の形態である2次元PEアレイ装置MS1の基本構成を示す図である。
【図23】2次元PEアレイ装置MS1で使用する連想メモリ11における各ワード24のフィールド構成を詳細に示す図である。
【図24】モルフォロジーの構造要素を定義した図である。
【図25】上記実施の形態におけるモルフォロジー演算処理の全体の出力手順を示すフローチャートである。
【図26】図25に示す処理ステップ353(1)を例にとって、転送演算処理351を詳細に示すフローチャートである。
【図27】処理ステップ353(1)を例にとって、画像シフト処理手順252を詳細に示すフローチャートである。
【図28】従来の2次元PEアレイ装置PEA11を示す図である。
【図29】従来の2次元PEアレイ装置PEA12を示す図である。
【図30】従来の連想メモリM11を示す図である。
【図31】従来のモルフォロジー演算処理装置を示す図である。
【符号の説明】
PEA1,PEA3 2次元PEアレイ装置
MS1 モルフォロジー演算処理装置
11 連想メモリ
12 連想メモリの1ワード
13 上位境界ワード群
14 内部ワード群
15 下位境界ワード群
16 連想メモリ間ヒットフラグシフト線
Claims (9)
- 複数のフィールドを有する記憶領域であって1次元方向に接続されたw個(wは任意の自然数)の記憶領域と、w個の前記記憶領域の各々に対応するw個の領域を有し、前記1次元方向にシフトアップ、シフトダウン可能なヒットフラグレジスタであって前記記憶領域の内容を転送するためのヒットフラグレジスタと、該ヒットフラグレジスタの最上位の内容を外に出し入れする上位シフト入出力と、前記ヒットフラグレジスタの最下位の内容を外に出し入れする下位シフト入出力とを有する、q×r個(q,rは2以上の任意の整数)の連想メモリと、
前記連想メモリのうちで、横方向に隣接している前記連想メモリのうちの一方の連想メモリの下位シフト入出力と、前記横方向に隣接している前記連想メモリのうちの他方の連想メモリの上位シフト入出力とを接続するヒットフラグシフト線と、
前記連想メモリおよび前記ヒットフラグシフト線を含む連想メモリアレイ部と接続されている制御部であって、前記連想メモリアレイ部に対して、
PEの割り付けを行い、
アドレスを用いた前記記憶領域へのデータの書き込みおよび読み出しを行い、前記ヒットフラグレジスタのシフトアップ、シフトダウンを実行して、前記割り付けに応じたデータ転送又は演算を行う
ための単一の制御命令ストリームを生成する制御部とを備え、
前記制御部による前記割り付けによって、前記PEは、全体で縦方向m×J×q個、横方向n×r個に割り付けられ、前記連想メモリのw個の前記記憶領域がm列、n行(w、m、nはw=m×nを満たす任意の自然数)に前記1次元方向にm個ずつ折り返してn行に並べられ、前記PEは、前記連想メモリのw個の前記記憶領域のそれぞれにJ個ずつ割り付けられている
ことを特徴とする2次元PEアレイ装置。 - 請求項1に記載の2次元PEアレイ装置において、前記連想メモリに対して、
前記制御部による前記アドレスを用いた前記記憶領域へのデータ書き込みおよび読み出しと前記ヒットフラグレジスタのシフトアップ、シフトダウンとを、同時に実行する
ことを特徴とする2次元PEアレイ装置。 - 請求項1に記載の2次元PEアレイ装置の連想メモリ間データ転送方法であって、
q×r個(q,rは2以上の任意の整数)の連想メモリ間で、シフトアップ、シフトダウン可能なヒットフラグレジスタの内容を上位シフト入出力と下位シフト入出力とを用いて外に出し入れすることによりデータを転送する第1のデータ転送を行うステップと、
縦方向q列に並べられた前記連想メモリのうちで、奇数列の連想メモリ群から偶数列の連想メモリ群、または偶数列の連想メモリ群から奇数列の連想メモリ群へのデータ転送を同時に行う第2のデータ転送を行うステップと、
横方向r行に並べられた全ての連想メモリに対して、前記第1のデータ転送と前記第2のデータ転送とを、同時に行なうステップと
を備えたことを特徴とする連想メモリ間データ転送方法。 - 請求項1に記載の2次元PEアレイ装置の連想メモリ内データ転送方法であって、
前記記憶領域に格納されているデータと検索データとを照合し検索データの一部の照合を無視するマスク検索を行うステップと、
前記マスク検索により指定された第1の前記記憶領域内の特定ビットの内容をシフトアップ、シフトダウン可能な第1ヒットフラグレジスタへ転送するステップと、
転送された第1ヒットフラグレジスタの内容を転送先の第2の前記記憶領域の第2ヒットフラグレジスタへシフトアップ又はシフトダウンするステップと、
第2ヒットフラグレジスタが特定の値をとる第2の前記記憶領域に対して検索データのマスクされていないビットに対応する第2の前記記憶領域のビットに検索データを書き込む並列部分書き込みを用いて、第2の前記記憶領域内の特定ビットへ第2ヒットフラグレジスタの内容を転送するステップと
を備えたことを特徴とする連想メモリ内データ転送方法。 - 原画像フィールドと処理画像フィールドとシフト画像フィードとが設けられた記憶領域であって1次元方向に接続されたw個(wは任意の自然数)の記憶領域と、w個の前記記憶領域の各々に対応するw個の領域を有し、前記1次元方向にシフトアップ、シフトダウン可能なヒットフラグレジスタであって前記記憶領域の内容を転送するためのヒットフラグレジスタと、該ヒットフラグレジスタの最上位の内容を外に出し入れする上位シフト入出力と、前記ヒットフラグレジスタの最下位の内容を外に出し入れする下位シフト入出力とを備えたq×r個(q,rは2以上の任意の整数)の連想メモリと、
前記q×r個の連想メモリのうちで、横方向に隣接している前記連想メモリのうちの一方の連想メモリの下位シフト入出力と、前記横方向に隣接している前記連想メモリのうちの他方の連想メモリの前記シフト入出力とを接続するヒットフラグシフト線と、
前記連想メモリおよび前記ヒットフラグシフト線を含む連想メモリアレイ部と接続されている制御部であって、前記連想メモリアレイ部に対して、
PEの割り付けを行い、
アドレスを用いた前記記憶領域へのデータの書き込みおよび読み出しを行い、前記ヒットフラグレジスタのシフトアップ、シフトダウンを実行して、前記割り付けに応じたデータ転送又は演算を行う
ための、単一の制御命令ストリームを生成する制御部とを備え、
前記制御部による前記割り付けによって、前記PEは、全体で縦方向m×J×q個、横方向n×r個に割り付けられ、前記連想メモリのw個の前記記憶領域がm列、n行(w、m、nはw=m×nを満たす任意の自然数)に前記1次元方向にm個ずつ折り返してn行に並べられ、前記PEは、前記連想メモリのw個の前記記憶領域のそれぞれにJ個ずつ割り付けられている
ことを特徴とする2次元PEアレイ装置。 - 請求項1に記載の2次元PEアレイ装置を用いたモルフォロジー演算処理方法であって、
前記記憶領域内に各々1つずつの原画像フィールド、処理画像フィールド、左右シフト画像フィールドと2つの上下シフト画像フィールドが設けられており、
q×r個(q,rは2以上の任意の整数)の連想メモリ間で、シフトアップ、シフトダウン可能なヒットフラグレジスタの内容を上位シフト入出力と下位シフト入出力とを用いて外に出し入れするステップと、
左右方向のPEの原画像フィールド又は上下シフト画像フィールドのデータを、左右シフト画像フィールドに順次転送し、演算処理を行い処理画像フィールドに格納する転送演算処理ステップと、
上下方向のPEの原画像フィールド又は片方の上下シフト画像フィールドのデータを、他方の上下シフト画像フィールドに転送する画像シフトアップ、ダウン処理ステップと、
前記転送演算処理ステップと画像シフトアップ、ダウン処理ステップとを、上下左右方向のPEからの転送演算処理がすべて終了するまで繰り返すステップと
を備えたことを特徴とする2次元PEアレイ装置を用いたモルフォロジー演算処理方法。 - 請求項6記載のモルフォロジー演算処理方法において、
原画像の各要素のデータを前記2次元PEアレイ装置の対応するPEの原画像フィールドに転送するステップと、
構造要素によって定義される上下左右方向の任意のPEからのデータ転送および演算処理を行うステップとをさらに備えたことを特徴とするモルフォロジー演算処理方法。 - 請求項6記載のモルフォロジー演算処理方法において、
原画像フィールド又は上下シフト画像フィールドの特定のビットに対するマスク検索と、m回(mは前記m列のm)のシフトアップあるいはシフトダウン処理と、左右シフト画像フィールドの対応するビットに対する並列部分書き込みとを、データのビット数繰り返すデータ転送処理ステップと、
左右シフト画像フィールドにあるデータが演算処理をするべきPEからのデータであるときにのみ、処理画像フィールドおよび左右シフト画像フィールドに対して演算処理を行い、該演算処理の結果を処理画像フィールドに格納する演算処理ステップと、
前記データ転送処理ステップおよび演算処理ステップを、左右方向からの転送演算処理がすべて終了するまで繰り返すステップとを備えたことを特徴とするモルフォロジー演算処理方法。 - 請求項6記載のモルフォロジー演算処理方法において、
原画像フィールド又は片方の上下シフト画像フィールドの特定のビットに対するマスク検索と、1回のシフトアップあるいはシフトダウン処理と、他方の上下シフト画像フィールドの対応するビットに対する並列部分書き込みとを、データのビット数繰り返す内部記憶領域転送ステップと、
連想メモリのアドレスを用いた前記記憶領域へのデータの読み書き機能を用いて、奇数又は偶数連想メモリ群の上位又は下位の前記記憶領域群の特定の前記記憶領域の原画像フィールド又は片方の上限シフト画像フィールドの全ビットを、対応する偶数又は奇数連想メモリ群の他方の上下シフト画像フィールドに上位又は下位境界の前記記憶領域を転送するステップと
を備えたことを特徴とするモルフォロジー演算処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29914596A JP3726977B2 (ja) | 1995-11-10 | 1996-11-11 | 2次元peアレイ装置並びにデータ転送方法およびモルフォロジー演算処理方法 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP31757495 | 1995-11-10 | ||
JP7-317574 | 1995-11-10 | ||
JP8-65356 | 1996-02-27 | ||
JP6535696 | 1996-02-27 | ||
JP29914596A JP3726977B2 (ja) | 1995-11-10 | 1996-11-11 | 2次元peアレイ装置並びにデータ転送方法およびモルフォロジー演算処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09293065A JPH09293065A (ja) | 1997-11-11 |
JP3726977B2 true JP3726977B2 (ja) | 2005-12-14 |
Family
ID=27298751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29914596A Expired - Lifetime JP3726977B2 (ja) | 1995-11-10 | 1996-11-11 | 2次元peアレイ装置並びにデータ転送方法およびモルフォロジー演算処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3726977B2 (ja) |
-
1996
- 1996-11-11 JP JP29914596A patent/JP3726977B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH09293065A (ja) | 1997-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240046088A1 (en) | Hardware accelerated machine learning | |
US6205533B1 (en) | Mechanism for efficient data access and communication in parallel computations on an emulated spatial lattice | |
US6067609A (en) | Pattern generation and shift plane operations for a mesh connected computer | |
JP2756257B2 (ja) | 並列処理システム及びその方法 | |
US6185667B1 (en) | Input/output support for processing in a mesh connected computer | |
US5854760A (en) | Two-dimensional PE array, content addressable memory, data transfer method and mathematical morphology processing method | |
US5797027A (en) | Data processing device and data processing method | |
Jenq et al. | Reconfigurable Mesh Algorithms for Image Shrinking, Expanding, Clustering, and Template Matching. | |
CN112559046A (zh) | 数据处理装置及人工智能处理器 | |
Jonker | Why linear arrays are better image processors | |
JPS6116369A (ja) | 画像処理装置 | |
JP3726977B2 (ja) | 2次元peアレイ装置並びにデータ転送方法およびモルフォロジー演算処理方法 | |
US7516059B2 (en) | Logical simulation device | |
JP7251354B2 (ja) | 情報処理装置、情報処理プログラム、及び情報処理方法 | |
Borges | AlexNet deep neural network on a many core platform | |
Fujita et al. | IMAP: integrated memory array processor | |
Ranka et al. | Hypercube algorithms for image transformations | |
JP3627953B2 (ja) | Peアレイ装置および連想メモリブロック | |
Kasagi et al. | Offline Permutation on the CUDA-enabled GPU | |
Chuang et al. | SIMD hypercube algorithm for complete Euclidean distance transform | |
Holzer et al. | Orthogonal shift level comparison reuse for structuring element shape independent VLSI-architectures of 2D morphological operations | |
CN113095030A (zh) | 一种可伸缩的并行数据载入装置及方法 | |
Weems et al. | Design Tradeoffs in the Development of a Low Level Processor for the Image Understanding Architecture | |
CN113095024A (zh) | 一种张量数据的区域化并行载入装置及方法 | |
JPH05342184A (ja) | 格子トーラス結合型並列計算機及び並列プロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050107 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050308 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050916 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7426 Effective date: 20050922 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050922 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091007 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101007 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111007 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111007 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121007 Year of fee payment: 7 |