JP2756257B2 - 並列処理システム及びその方法 - Google Patents

並列処理システム及びその方法

Info

Publication number
JP2756257B2
JP2756257B2 JP63135386A JP13538688A JP2756257B2 JP 2756257 B2 JP2756257 B2 JP 2756257B2 JP 63135386 A JP63135386 A JP 63135386A JP 13538688 A JP13538688 A JP 13538688A JP 2756257 B2 JP2756257 B2 JP 2756257B2
Authority
JP
Japan
Prior art keywords
data
line
processor
accumulator
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 - Fee Related
Application number
JP63135386A
Other languages
English (en)
Other versions
JPS63316167A (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.)
APURAIDO INTERIJENTO SHISUTEMUZU Inc
Original Assignee
APURAIDO INTERIJENTO SHISUTEMUZU Inc
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 APURAIDO INTERIJENTO SHISUTEMUZU Inc filed Critical APURAIDO INTERIJENTO SHISUTEMUZU Inc
Publication of JPS63316167A publication Critical patent/JPS63316167A/ja
Application granted granted Critical
Publication of JP2756257B2 publication Critical patent/JP2756257B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Multi Processors (AREA)
  • Image Processing (AREA)

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は画像等の空間的に関連のあるデータアレイ
を、プログラム可能な計算要素の大きなアレイを用いて
処理及び解析する並列処理システムに関する。
[従来の技術] 従来、簡単なビットシリアルプロセッサの大きなアレ
イを採用しているシステムが多数提案されている。上記
ビットシリアルプロセッサの各々はセントラルコントロ
ーラからいつでも同じインストラクションを受ける。こ
のようなタイプのシステムは「シングル インストラク
ション マルチプル データ(SIMD)」パラレルプロセ
ッサと呼ばれている。
1つのプロセッサから他のプロセッサへデータを通信
する方法はいくつかある。例えばK.E.Batcher“デザイ
ン オブ ア マッシィブリィ パラレル プロセッサ
(Design of a Massively Parallel Processors)"IEEE
トランスアクションズ オン コンピューターズ 19
80年9月号P.836〜P.840に書かれているマッシィブリィ
パラレル プロセッサ(塊状並列処理装置)は、128
×128プロセッサのアレイを有しており、画像処理は重
要な応用例となっている。
ネイバーフッドオペレーション(近隣演算)を必要と
する命令(インストラクション)が実行されるとき、デ
ータは隣り合っているプロセッシングエレメント同志の
間で通信される。1024×1024よりも大きいディメンジョ
ンのイメージデータアレイは希ではない。この大きさの
プロセッサアレイは経済的には不可能であるので、アレ
イをより小さいデータアレイのサイズに分けなければな
らない。その時にプロセッサアレイのサイズに等しいサ
イズにする。
上記以外のタイプのSIMDプロセッサもある。しかし、
それも通常は「データアレイがプロセッサアレイよりも
大きい」という問題を有する。通常これらのシステムに
おいては、プロセッサに付随されるメモリの全てが、中
間的な計算結果のための補助メモリ容量を確保した状態
で、全イメージを保持するのに十分な大きさを有してい
る訳ではない。
[発明が解決しようとする課題] 従って、大きな外部メモリが必要になる。そしてその
機構は計算効率を維持するために、小さなサブアレイセ
グメントの入力及び出力を高速で処理できなければなら
ない。もし十分なメモリが各プロセッサに与えられ、プ
ロセッサの集団に付随されるメモリの総和がイメージデ
ータの大きなアレイの全てを収容できるとしても、ネイ
バーフッドオペレーションが行われるとき、種々のサブ
アレイの間でのデータ通信の問題が残る。
インストラクション・クロックサイクルの間、各プロ
セッサはその付随メモリの出力を受信するので、アレイ
の端のプロセッサは隣接サブアレイからデータを受信す
ることができない。これは既に全てのメモリがサブアレ
イ全体の読み込みに関与しているからである。従ってサ
ブアレイとその隣接サブアレイのデータの両方が計算に
必要とされたとき、マルチクロックサイクルがデータの
読み込みに必要となる。
一般には、SIMDプロセッサは、ヒストグラムや、特徴
抽出や、空間的変換、例えばホー・トランスフォーム
(Hough transform)及びフーリェ解析のように、デー
タマトリックスの大きなエリアの解析を必要とする大域
プロセス(global processes)の処理においては効率が
低い。
間接アドレス指定(indirect addressing)は重要な
処理概念である。しかし並列処理を用いるべき環境下に
おいて、間接アドレス指定を実行する際に生ずる問題が
文献に示されている。例えば、A.L.Fisher&P.T.Highna
mの“リアルタイム イメージ プロセッシング オン
スキャン ライン アレイ プロセッサーズ(Real T
ime Image Processing on Scan Line Array Processor
s)“IEEE ワークショップ オン パターン アナリ
シス アンド イメージデータベース マネージメン
ト"1985年11月18−20日号、P.484−P.489や、P.E.Danie
lson&T.S.Ericsson“LIPPプロポーザルズ フォー ザ
デザイン オブ イメージ プロセッサ アレイ(LI
PP−Proposals for the Design of an Image Processor
Array"11章P.157〜178、コンピューティング ストラ
クチャーズ フォー ィメージ プロセッシング(M.J.
B.Duff編集,アカデミック プレス 1983)である。
間接アドレス指定を使うためには、大量のメモリが必
要とされる。何故なら、間接アドレス指定を用いると都
合のよいルックアップテーブル(look−up−table)或
いはヒストグラム等の利用には大量のメモリを必要とす
るからである。SIMDプロセッサにおいては、メモリは通
常、プロセッサと同じチップの上に集積されている。し
かし、技術的にプロセッサとメモリの両方を1つのチッ
プの上に集積するのには限界があるので、メモリは間接
アドレス指定には小さすぎて、これらの技術を用いても
重要な問題を解くことができない。
しかしながら、もしメモリがチップの外にあり、1つ
のチップの上に多数の集積プロセッサがあるならば、プ
ロセッサが処理しなければならないアドレスラインが多
すぎるので、信号通路の数が大きな制限要因となる。
SIMDプロセッサアレイ中では全てのプロセッサが同時
に同じインストラクションを実行するので、付随メモリ
中のデータ値に応じて、幾つかの選択されたプロセッサ
については、そのインストラクションを実行させないよ
うにするための方法が必要であるということが知られて
いる。プログラム可能なフリップフロップがアレイ内の
各メモリに対する書き込み機能をコントロールする場合
は通常、メモリ書き込み禁止機能が用いられる。しかし
ながら、書き込み禁止機能はプロセッサチップから付随
メモリチップへ延びる別のラインを必要とする。回路チ
ップには所定数の出力ピンしか設けられないので、1つ
のチップの上には、プロセッサを極めて多数集積するこ
とはできない。また、コスト的に有利なバイトワイドメ
モリは、8本の別れているデータラインを別々に抑止で
きないので、使用することができない。
従って、本発明の主な目的は固定プロセッサアレイに
より、大きなデータアレイを処理できる一方で、データ
のネイバーフッド及び大域処理(global processing)
を必要とする演算を実行できる並列処理システムを提供
することにある。
本発明の他の目的は、上記アレイの中の各SIMDプロセ
ッサに対し独立して作動するメモリの間接アドレス指定
が可能な並列処理システムを提供することにある。
本発明の他の目的は、プロセッサアレイから離れたメ
モリ及び付随の入力・出力メカニズムに頼ることなく、
大きなデータアレイを処理できる並列処理システムを提
供することにある。
[課題を解決するための手段、作用及び発明の効果] 上記目的を達成するために、本発明は次のような並列
処理システムを提供する。即ち、その後の処理のために
大きなデータアレイ(複数の行と少なくとも2n個(nは
1より大きい整数)の列とを有するデータアレイ)を複
数の小なさサブアレイに分割することにより、上記大き
なデータアレイからのデータに対して並列処理演算を実
行するため処理システムを提供する。上記各サブアレイ
は複数の行とn個の列とからなるように分割される。上
記並列処理システムは、複数のプロセッサユニットグル
ープ(各プロセッサユニットグループはn個の独立した
プロセッサユニットから構成される)と、複数のメモリ
手段グループ(各メモリ手段グループはn個のメモリ手
段から構成される)とを備えており、上記各プロセッサ
ユニットグループは、複数の接続ラインにより互いに接
続されたn個のプロセッサセルを有し、上記プロセッサ
ユニットは1つのプロセッサセルを有し、上記プロセッ
サユニットグループはグループ間でデータを転送するた
めの複数の接続ラインにより互いに接続されており、上
記各メモリ手段グループは上記サブアレイにそれぞれ付
随するn列のデータを格納するためのもので、各メモリ
手段は1列のデータを格納し上記各プロセッサユニット
にそれぞれ接続されている。この並列処理システムで
は、上記各プロセッサユニットグループは更に、当該プ
ロセッサユニットグループが選択的に上記メモリ手段グ
ループからの行データを並列的に演算することができる
ようにする手段と、上記プロセッサユニットグループが
選択的に上記メモリ手段グループからの任意の列データ
を並列的に演算することができるようにする手段とを有
している。
本発明の並列処理システムにおいては、各プロセッサ
ユニットは好ましくは、互いに直列に接続された複数の
独立した1ビットアキユムレータから成るアキュムレー
タ手段を備え、各アキュムレータ手段は、複数の接続ラ
インにより、隣りのプロセッサユニットに付随する少な
くとも1つのアキュムレータ手段に接続されている。
本発明は、プロセッサユニットのアレイに付随するメ
モリ内に矩形状のデータアレイの全てが保持される場合
のデータアレイの処理を行う並列処理システムに関する
とも言える。本発明の並列処理システムにおいては、複
数の同一の独立したプロセッサユニットが互いに直列的
鎖状に結ばれ、データマトリックスの列毎に1つのプロ
セッサユニットが設けられ、各プロセッサユニットはデ
ータマトリックスの高さの全てを収容するのに十分大き
なメモリに接続されている。上記同一のプロセッサユニ
ットは隣接プロセッサユニットへの接続ラインを有し、
隣接プロセッサユニットとの間でネイバーフッドデータ
を送受信できる。
プロセッサユニットは、データをインクレメントする
ための手段として用いられるかなりフレキシブルなアキ
ュムレータ、広帯域(wideband)データ通信手段、8×
8データサブアレイを転置するための転置手段、及び間
接アドレス指定をするためのレジスタを備えてもよい。
アキュムレータの機能を組合せることにより、外部バイ
トワイドメモリを使用することができ、更に、もしそう
でなければ(アキュムレータ機能を組合せなければ)不
可能な演算も可能になる。上記転置手段により、ビット
シリアルとして通常扱われるデータを、パラレルバイト
ワイドデータに変換することができる。更に、プロセッ
サユニットは、並列算術機能が実行される新規な演算モ
ードを有してもよい。また、各プロセッサユニット内に
2段(two−level)マルチプレクサを設けてもよく、こ
れにより、ルックアップテーブル機能及びビットシリア
ル算術機能を実行することができる。
尚、本明細書には、複数の行と少なくとも2n個の列
(nは1より大きい整数)を有するデータアレイからの
データに対して並列処理演算を実行するための並列処理
システムにおいてデータを転置する手段の改良例が示さ
れている。この手段は、次の3つの要素の組合せから成
るものである。即ち、複数の接続ラインにより互いに接
続されたプロセッサセルのアレイを備えるn個の独立し
たプロセッサユニットのアレイと;n個の独立したプロセ
ッサユニットのアレイにより連続的に処理するためにデ
ータを格納するためのn個のメモリ手段のアレイであっ
て、メモリ手段のそれぞれがプロセッサユニットのそれ
ぞれに付随し、メモリ手段のそれぞれがデータの1列を
格納するように構成されたメモリ手段のアレイと;デー
タのnビットがn個のメモリ手段のアレイとプロセッサ
ユニットのアレイとの間で転送される際に該nビットを
転置するための手段であって、データの構成を第1フォ
ーマットからこれに対し垂直な第2フォーマットへ変え
る転置手段との組合せである。
また、本明細書には、少なくともn行とn列(nは1
より大きい整数)を有するデータアレイからのデータに
対して処理演算を並列的に実行するための並列処理シス
テムのメモリ手段のアレイと、プロセッサユニットのア
レイとの間で、データを転送する方法が示されている。
上記方法は以下のステップから成る。(a)n個のメモ
リ手段のアレイに第1フォーマットでデータを格納する
ステップ、(b)n個のメモリ手段のアレイに第1フォ
ーマットで格納されたデータのグループを、n個のプロ
セッサユニットのアレイへ第1フォーマットに対し垂直
な第2フォーマットに転置して転送するステップ。
さらに、本明細書には、少なくとも複数の行とn個の
列(nは1より大きい整数)を有するデータのアレイか
らのデータに対して処理演算を並列的に実行する為の並
列処理システムにおける算術演算を実行するための改良
例が示されている。この改良例は、次の3つの要素の組
合せから成る。即ち、複数の接続部により互いに接続さ
れたn個のプロセッサセルアレイを備えるn個の独立し
たプロセッサユニットのアレイと;n個のメモリ手段のア
レイであり、各メモリ手段がメモリ手段に付随したプロ
セッサユニット(プロセッサユニットのアレイがそこに
供給されるデータに基づき算術演算を実行するための算
術手段のアレイを有する)による処理のためにデータ列
を格納するメモリ手段のアレイと;プロセッサユニット
間(n個のプロセッサユニットのアレイはプロセッサユ
ニットのアレイに沿って分配されたデータにより算術演
算を実行するように並列的に動作される)での算術演算
の結果生ずるキャリーに対応するデータを転送するため
のキャリー手段を組合せて成る。
また、本明細書には、上の段落で説明したタイプの並
列処理システムにおける算術演算を実行するための方法
が示されている。その算出演算を実行するための方法は
以下のステップから成る。
(a)少なくとも処理システムの一部として、複数の接
続ラインにより互いに接続されたn個のプロセッサユニ
ットのアレイを提供するステップと、 (b)もし或る方向にみて隣りにプロセッサユニットが
存在すれば、該隣りのプロセッサユニットへ、プロセッ
サユニット内の算術演算の結果として発生するキャリー
データを直ちに、少なくとも一部として転送することに
より、n個のプロセッサユニットのそれぞれで算術演算
を並列的に実行するステップ。上記プロセッサユニット
のアレイは、お互いが隣り同士であるプロセッサユニッ
ト間でキャリーデータを転送するための手段を備えてい
る。また転送されたキャリーデータは、隣りのプロセッ
サユニットで実行される算術演算に使用される。
さらに、本明細書には、並列処理演算を実行するため
の並列処理システムのメモリ手段のアレイ内のデータが
間接的にアドレスされる場合の改良例が示されている。
この改良例は、次の3つの要素を組み合せて成る。即
ち、複数の接続ラインによりたがいに接続されたプロセ
ッサセルのアレイを有するn個の独立したプロセッサユ
ニットのアレイと;n個のメモリ手段のアレイであり、各
メモリ手段がプロセッサユニットのそれぞれにより連続
的に処理を行うために1列のデータを格納するよう構成
されたアレイと;メモリ手段に格納されたデータ値をア
クセスすることによりアドレスの外部源から受け取られ
たアドレスを修正することにより、メモリー手段のアレ
イ内のデータを間接的にアドレスするための手段とから
成る。
また、本明細書では、少なくとも複数の行とn個の列
(nは1より大きい整数)を有するデータのアレイから
のデータに対して処理演算を並列的に実行するための処
理システムにより連続的に処理を行うために、メモリ内
のデータをアドレスする方法が示されている。このデー
タをアドレスする方法は、次の4つのステップ(a)−
(d)から成る。(a)少なくとも処理システムの一部
として、(1)n個のプロセッサユニットのアレイと、
(2)プロセッサユニットのアレイにより連続的に処理
を行うためにデータのアレイからのデータを格納するた
めのメモリ手段とを設けるステップと;(b)データを
メモリ手段の第1場所からプロセッサユニットのアレイ
でロードするステップと;(c)上記第1場所から隔た
ったメモリ手段内の第2場所を特定するためにロードさ
れたデータを使用するステップと;(d)データをメモ
リ手段の指定された第2場所からプロセッサユニットの
アレイへロードするステップとから成る。
本発明の上述された或いは上述されなかった態様、目
的及び効果は添付図面及び特許請求の範囲に関連して以
下に述べる詳細な説明より明らかになろう。
[実施例] 第1図において、本発明の並列処理システム9は、複
数の同一の独立したネイバーフッドプロセッサユニット
10a〜10hから成るアレイ10と、シングルビットワイドメ
モリ(1ビット幅メモリ)13a〜13nから成る付属アレイ
13とから構成されている。各プロセッサユニットにはそ
れぞれ1つの1ビット幅列×複数行のメモリが付随され
ている。例えば、上記プロセッサユニット10iには上記
メモリ13iが付随している。プロセッサユニットは複数
グループ描かれており、各グループは8個のプロセッサ
ユニット、例えば10a〜10hから成る。同様に各グループ
8プロセッサユニットから成る上記複数グループに付随
するメモリのアレイ13は、好ましくはバイトワイドメモ
リから構成され、このアレイ13も又複数グループ描か
れ、1グループは8個のメモリ、例えば13a〜13hから成
る。例えばネイバーフッドプロセッサユニット10b〜10n
は、近隣データを自分自身のすぐ左又は右側のプロセッ
サユニットからライン11i〜11nを通して受け取る。ま
た、各ネイバーフッドプロセッサユニット10a〜10nは、
双方向データ転送ライン12a〜12nによって上記メモリ13
a〜13nに接続している。データ入力装置20はライン21a
を介して第1の上記プロセッサユニット10aにデータス
トリーム(data stream)を与える。データはプロセッ
サユニット内のシフトレジスタで保持され、出力はデー
タシフトライン21i〜21nを介して連続するプロセッサユ
ニットに移る。データは上記プロセッサユニット10a〜1
0n内のシフトレジスタの鎖を通ってシフトされる。そし
てそのデータはデータライン21pを通って出力装置22へ
出力される。ホストコンピュータ25は制御信号をライン
26を介してコントローラ27へ送る。ホストコンピュータ
25とコトローラ27の両者とも、データを8個のプロセッ
サユニットからなる各グループ10a〜10nへライン15を介
して送り或いは受け取る。ホストコンピュータ25は、コ
ントロールライン17を介してアドレス選択ユニット(セ
レクタ)18に接続されており、コントロールライン17上
の信号に基づくインストラクションにより、上記セレク
タ18は、16パラレルビットライン321を介して入力され
るコトローラ27からのアドレス信号を16ビット信号ライ
ン19に送り出すか、又は16ビットライン322を介して入
力されるホストコンピュータ25からのアドレス信号を16
ビット出力ライン19へ送るようにする。16ビットアドレ
スラインである上記ライン19は2つの8ビットラインに
分けて示してある(下位アドレスバイトライン14と上位
アドレスバイトライン23)。下位アドレスバイトライン
14は8プロセッサユニットの各グループ10a〜10nに接続
されており、上記ユニット10a〜10hはその中の1例であ
る。8個のプロセッサユニットの各グループ(10a〜10
h)は、例えば8ビットライン28a〜28nを介して、付随
の上記メモリ13a〜13hに接続されている。8ビットライ
ン28a〜28nのビットは上記メモリ13a〜13hに対し下位ア
ドレスバイトとして作用する。上位アドレスバイトライ
ン23は8個のメモリから成る各グループ(13a〜13n)に
接続されている。プロセッサユニット10a〜10nの全ての
グループは、クロック及び制御信号をコントローラ27か
ら制御ライン29を介して受け取る。
第2図は、1つのプロセッサユニット30のブロック図
を示しており、上記プロセッサユニット10a〜10nのうち
の1つを代表している。プロセッサユニット30は右隣り
又は左隣りの同じプロセッサユニットへの外部接続ライ
ンを有している。プロセッサユニット30の右側の接続ラ
イン36〜38及び41〜44は、例えば第1図に示すプロセッ
サユニット10a〜10nのうちの1つに付随している接続ラ
イン11i等の右側の接続ラインに相当する。同様に、プ
ロセッサユニット30の左側の接続ライン234〜36及び41,
43,45,47は、第1図に示した上記プロセッサユニットの
1つに付随している、例えば接続ライン11a等の左側接
続ラインに相当する。又、第2図のI/Oデータ接続ライ
ン21e及び21fは第1図のデータシフトライン21a〜21pの
うち対となっている左右のデータシフトラインの各一対
に相当する。即ち、第2図のメモリデータ接続ラインで
ある上記ライン12eは第1図のデータ転送ライン12a〜12
nの1本に相当し、第2図のホストデータ接続ライン15e
は、第1図のデータバイトライン15を構成する8ビット
ラインの1本に相当する。
プロセッサセル31の左側への接続ラインは、キャリー
・イン・ライン(carry in line)34、ウエスト入力ネ
イバーライン35及びミドルセル出力ライン36であり、出
力ライン36はすぐ左の典型的なプロセッサへのイースト
ネイバー入力部として作用する。プロセッサセル31の右
側の接続ラインは、キャリーアウトライン37、イースト
・ネイバー入力ライン38及びミドルセル出力ライン36で
あり、出力ライン36はすぐ右の典型的なプロセッサへの
ウエストネイバ入力部として作用する。プロセッサセル
31への及びそれからの前記接続ラインの機能及び目的
は、プロセッサセルの後述する詳細な説明により明らか
にする。
16ビットアキュムレータ51は2つの同じセクションか
ら成る。即ち、アキュムレータ上位バイトレジスタ54
と、アキュムレータ下位バイトレジスタ55とから成る。
上記アキュムレータ51は、4つの異なった機能を有す
る。即ち、第1は16ビット双方向パラレルライン、第2
は16ビット双方向パラレルアウト、第3はライン40を介
して一方向シリアル入力を受ける16ビットシフトレジス
タ、第4はライン63を介して一方向シリアル入力を受け
る16ビットシフトレジスタの機能である。16本の入力接
続ラインは8ビットライン45,47で、また16本の出力接
続ラインは8ビットライン41,43で構成されている。上
記ラインの2つの組は、それぞれアキュムレータ51中の
データをイースト(東)へライン41,43を介してシフト
すると共に、データをウエスト(西)からライン45,47
を介して受け取るための、上記アキュムレータ51の結合
された16段シフトレジスタのパラレルイン及びパラレル
アウトポートとして作用する。同様に、8ビットライン
42,44から成る16本の入力接続ラインと、8ビットライ
ン41,43から成る16本の出力接続ラインの2つの接続ラ
インの組は、それぞれアキュムレータ51中のデータをウ
エスト(ライン41,43を介して)へシフトすると共に、
上記データをイースト(ライン42,44を介して)から受
けるための、上記アキュムレータ51の結合シフトレジス
タのパラレルイン及びパラレルアウトポートとして作用
する。ライン41〜44は、すぐ東隣りのプロセッサユニッ
ト30内の同様のアキュムレータに接続されている。ライ
ン45,41,47,43はすぐウエスト隣りのプロセッサユニッ
ト内の同様なアキュムレータに接続されている。アキュ
ムレータ下位バイトレジスタ55もまたメモリデータライ
ンである上記ライン12eに接続されており、上記ライン1
2eはレジスタへの入力として供され、レジスタ55によっ
て格納されたデータの値をインクレメントすることがで
きる。ライン53上のレジスタ55のキャリーアウト信号
は、レジスタ55からオーバーフローしているインクレメ
ントプロセスを上位バイトアキュムレータレジスタ54へ
移す(キャリーする)ためのものである。ライン62はア
キュムレータ上位バイトレジスタ54からのシリアルシフ
ト出力ラインである。前述のシリアルシフト動作の間、
セレクタユニット60は、制御ラインCON1からの信号を受
けて、ライン62或いはライン12eの論理状態(0又は
1)をセレクタ出力ライン63を介して、アキュムレータ
下位バイトレジスタ53のシリアル入力へ出力する。従っ
て、シリアルシフト動作の間、アキュムレータ下位バイ
トレジスタ55へのシリアル入力が、メモリデータライン
である上記ライン12eから或いはアキュムレータ上位バ
イトレジスタ54のシリアル出力用のライン62から得られ
ることは明らかである。アキュムレータ54,55の上述の
4つの機能のいずれもコマンドラインCON2から得られた
インストラクションによって選ばれ、それぞれのライン
CLK1及びCLK2を介してクロック信号を受けて駆動され
る。アキュムレータとその機能のより詳しい記述は後に
される。
16本のアキュムレータ出力ライン41,43のうちいずれ
か1本が、制御ラインCON3からのインストラクションに
よってセレクタ50により選択される。セレクタ50により
選択された1つのアキュムレータラインの論理状態(0
又は1)がライン522に供給され、それがプロセッサセ
ル31及び出力セレクタユニット33への入力となる。
出力セレクタ33に入力されるのは、7つの入力信号15
e,56,52,71,72,73,74である。制御ラインCON5から受け
取られたインストラクションに基づき、セレクタ33は、
上記7つの入力信号のうちの1つの論理状態を選び且つ
それを出力ライン70へ送出する。ライン70は制御ライン
CON6によって制御されるスリーステイトゲート(three
−state gate)76へ接続されている。出力ライン70上の
論理信号は、メモリデータラインとしての上記ライン12
eへ移され、もしゲート76の出力が制御ラインCON6に供
給された適当なイストラクションによってイネーブルさ
れているならば、メモリ13e中に書き込むことができ
る。もし制御ラインCON6上のインストラクションがゲー
ト76に不動状態(inactive state)をとるように命令す
ると、ゲートの出力は高インピーダンス状態にスイッチ
され、従ってメモリ13eはライン12eにアクセスでき、デ
ータを書き込むことが可能となる(もしそうするように
インストラクトされていれば)。基本的には同じよう
に、各プロセッサユニット10a〜10nに接続された7個の
異なったデータ源からのデータを、複数のメモリ13a〜1
3nのそれぞれのメモリ内へ書き込むことができる。これ
らの7つのデータ源は、 (1)ライン15eを介するホストデータバスからのデー
タ、 (2)ライン56を介するI/Oユニット32からのデータ、 (3)ライン52を介する、アキュムレータ出力セレクタ
50により選択されたアキュムレータ51からの選択出力か
らのデータ、 (4)ライン71を介する“コンディション”信号からの
データ、 (5)ライン72を介する“ファンクション”信号からの
データ、 (6)ライン73を介する“キャリーレジスタ”信号から
のデータ、 (7)ライン74を介する“トランスポーズ(転置)”信
号からのデータである。
I/Oユニット32は、8ビット・一方向・パラレルイン
・パラレルアウト・シリアルイン・シリアルアウト・シ
フトレジスタである。パラレル入力は8本の入力ライン
21eから受ける。パラレル出力は8本のライン21fに移さ
れる。ライン21e及び21fは第1図に示すライン21a〜21n
の代表的な例であり、それぞれ最も近いイースト及びウ
エストの隣接プロセッサユニットに接続されている。I/
Oユニット32へのシリアルイン信号はメモリデータライ
ンとしての上記ライン12eから得られる。I/Oユニット32
からのシリアル出力信号は、ライン56を通って出力セレ
クタ33へ出力される。パラレル或いはシリアルシフト機
能のどちらかが制御ラインCON4上のインストラクション
によって選択され、該インストラクションはラインCLK3
上のクロック信号を受けるとI/Oユニット32内へクロッ
クインされる。
データ入力 本発明のシステム9により処理される入力データは、
データ源20即ちデータ入力装置から来る(第1図参照)
が、好ましくはラスタースキャンフォーマットの形、即
ち入力データがH個の連続的なデータ行のストリームの
形を呈しており、各行がnデータバイトの長さを有して
いる形が好ましい。従って、処理されるデータがH行の
高さとnバイト幅Wとを有するデータマトリックを構成
していることが判る。システム9は、行毎に、例えばCC
Dスキャン装置等の半導体(solid−state)画像化装置
の出力バッファから入って来るデータを受け入れる。こ
のデータストリームは、ライン21aを介してI/Oシフトレ
ジスタ32のパラレルイン入力へ運ばれる。所定バイトか
らなる(nバイト幅を有する)第1行のデータは次の2
つのステップ1と2でシステムに入力される。ステップ
1;上記第1行のデータストリームが全プロセッサユニッ
ト10a〜10nの全I/Oシフトレジスタ32に完全に記憶され
るまで、コントローラ27が全I/Oシフトレジスタ32をイ
ーストへ同期的にn回クロックする。ステップ2;上記所
定バイトからなる第1行からの第1ビット行はそれぞれ
のライン56を介し全I/Oシフトレジスタ32から読み出さ
れ、出力セレクタ33及びゲート76を介し、メモリデータ
ライン12a〜12nへ移される。この読み出し動作の一部と
して、コントローラ27はライン21、アドレスセレクタ1
8、アドレスライン19を介し(第1図参照)、メモリ13a
〜13nへ所望のアドレスを供給する。同様に、コントロ
ーラ27により、メモリ13a〜13nへ更に連続的にアドレス
を供給することによって、上記所定バイトからなる第1
行から他の7つのビット行が記憶される一方、I/Oシフ
トレジスタ32をシリアルにラインCLK3とCON4を介して同
期的にクロックさせるので、ビットの連続的な行がライ
ン56へ読み出される。上述の2つのステップは、データ
マトリックスの全ての連続する行がデータ入力装置20か
らメモリ13a〜13nへ送られるまで、繰り返される。
データ出力 システム9によるデータマトリックスの処理後の結果
は、I/Oシフトレジスタ32を通って、次の2ステップの
プロセスにより出力される。この2ステップから成るプ
ロセスは、上述のデータ入力で述べたプロセスの反対で
あり、次のようなものである。
ステップ1;第1にコントローラ27(第1図)は、ライン
21、セレクタ18,アドレスライン19を介しメモリ13a〜13
nへ、出力されるべき第1データビット行のアドレスを
供給し、これにより、指定されたメモリアドレスのビッ
ト行が、I/Oシフトレジスタンス32のシリアル入力へク
ロックアップされる。異なるアドレス(例えば、データ
ビットの隣接する次の行のアドレス)をメモリ13a〜13n
に供給することにより、コントローラ27は上記と同様な
動作を行う。これは、データバイトの所望の第1行の8
ビット全てが13a〜13nからライン12a〜12nを介してシフ
トレジス32へ出力されるまで行われる。
ステップ2;次にコントローラ27は、トータルn回I/Oシ
フトレジスタ32をクロックし、これにより8ビットデー
タがライン21b〜21pを介しイーストへシフトされる。
その結果、データバイトの第1行(8個のデータビッ
ト行からなっている)が全てライン21pを介して出力装
置22へ入る。上記の2ステップから成るプロセスは、デ
ータマトリックスの全ての指定された行がメモリ13a〜1
3nからデータ出力装置22へ移送されるまで繰り返され
る。
メモリ13eからのデータは、ラインCON7からゲート78
によって受け取られる制御信号により、スリーステート
ゲート78を作動或いはイネーブルすることによってホス
トデータバスライン15eに伝えることができる。同様
に、データはホストコンピュータ25とメモリ13a〜13nの
どれとの間でも直接読み出すこと或いは書き込むことが
できる。
さて、第3図を参照するに、ここにはプロセッサセル
31の詳細がブロック図で示されており、幾つかの論理ゲ
ート、フリップフロップ、セレクタ、マルチプレクサが
描かれている。外部コマンド信号は、前綴りCMDで示さ
れたラインに受け取られ、クロック信号は同様に前綴り
CLKで示されたラインに受け取られる(他の外部信号ラ
インは他の図で用いられたものと同じ符号で示してあ
る)。プロセッサセル31はそれが受け取るコマンド信号
の組み合せに基づき種々の機能状態に置かれ得る。これ
によりプロセッサセル31は、種々の処理機能を行うこと
ができ、その各機能は以下にその詳細が延べられる。
ネイバーフッド演算処理 ネイバーフッド演算処理は数又は要素の全マトリック
スの変換処理であり、そこにおけるマトリックスの各要
素の変換は独立変数としての要素の隣接ネイバーを用い
るものであることが良く知られている。システム9を用
いてネイバーフッド演算処理を行う為には、次のような
3つのステップが必要とれさる。第1に、データは付随
メモリ13a−13nからプロセッサユニット10a−10nへ読込
まれなければならない。上記ユニットはそれぞれ、変換
されるべき要素毎に水平及び垂直方向において最も近い
ネイバーデータを保持するのに十分なオン・ボード・ス
トレージ(搭載記憶装置)を備えている。それは各プロ
セッサユニットに付随されるのが通常である。第2にプ
ロセッサユニットは幾つかの特定のインストラクション
に基づきイネバーリングデータの変換を計算し、そのデ
ータを修正する。第3に、その修正されたデータは付随
メモリ13a−13nへ書込み戻される。これら3つのステッ
プはそれぞれ読込みサブサイクル、修正サブサイクル及
び書込みサブサイクルと呼ばれる。この3つのステップ
のシーケンスは読込−修正−書込サイクルと呼ばれ、幾
つかの特定のアルゴリズムに基づき、全てのデータを完
全に処理するまで何回も繰返される。
初期読込動作 最も近いネイバーデータ処理を含む計算の間、第1の
読込み動作により、1ビットデータの完全なラインが、
第1図に示すように、メモリ13a−13nからライン12a−1
2nを介し、プロセッサユニット10a−10nへと読込まれ
る。読込まれるデータは、一時的な記憶の為、クロック
信号CLK4の制御の下に、それぞれのプロセッサユニット
のフリップフロップ内にロードされる。第3図に描かれ
ているサウス(南)フリップフロップ81はその1つの典
型である。フリップフロップ内の各データは、上記メモ
リ13a−13nに格納されたマトリックスの第1ビット行内
の1つのビットに相当する。隣りのビット行のための第
2読込動作では、ラインCLK4上の別のクロック信号に基
づき、フリップフロップ81内に格納された第1ビットを
ミドル(中央)フリップフロップ82へシフトアップせし
め、一方、データの第2ビットがフリップフロップ81を
占有する。その後の全ての読込み動作は読込サブサイク
ルと呼ばれる。この初期読込動作はしばしば「パイプラ
イン方式(filling the pipeline)」と称される。
読込みサブサイクル 次の隣接データ行にアクセスする第3読込動作では、
同様に、またデータをシフトさせるので、フリップフロ
ップ81,82,83の組は3つの隣接行からのシングルビット
データのビットを有する。その後の読込サブサイクルに
より3つの隣接データビットの次の組がこのフリップフ
ロップの組を占有するようになる。従って、フリップフ
ロップ81〜83は、ノース(北)及びサウス(南)方向で
の或る特定の行に対する最も近いネイバーデータの組を
有することになる。当業者には明らかなように、第3図
のプロセッサセル31のすぐ左及び右隣りの隣接プロセッ
サセル31は、第3図のプロセッサセルのイースト及びウ
エストネイバーに相当するデータビットを保持し、ミド
ルフリップフロップ82からの出力ライン36は、第3図の
セルの右及び左隣りのプロセッサセルに対するイースト
及びウエストネイバーの状態をそれぞれ与える。
修正サブサイクル ネイバーフッド処理の際、セレクタ85はコマンドライ
ンCMD1上に信号によりインストラクトされ、ライン35上
のウエストネイバー信号を出力ライン86へ通過させる。
出力ライン86は、信号をキャリーcマルチプレクサ87及
びサムsマルチプレクサ88の第1アドレス入力へ引渡
す。同時にセレクタ89は、コマンドラインCMD2上の信号
によりインストラクトされ、ライン39上のイーストネイ
バー信号を出力ライン90へ通す。出力ライン90は信号を
上記マルチプレクサ87及び88の第2アドレス入力へ引渡
す。サウスネイバーの論理状態は、フリップフロップ81
によりライン91へ出力され、マルチプレクサ87及び88の
第3アドレス入力へ引渡される。コマンドラインCMD3は
論理「1」にセットされており、ANDゲート92はその良
く知られた特性によりライン93上の信号をライン94へ効
果的に移す。これが、ノースフリップフロップ83により
出力されたノースネイバーの論理状態であり、マルチプ
レクサ95のアドレス入力へ送られる。もし、マルチプレ
クサ95のアドレス入力へ接続されているライン94が論理
「1」ならば、マルチプレクサ95はライン96上の信号
(マルチプレクサ87からの出力)をその出力ポート及び
ライン98へ通過させる。もし、このアドレス入力が論理
「0」であるならば、マルチプレクサ95はライン97上の
信号(マルチプレクサ88の出力)をその出力ポート及び
ライン98へ通過させる。当業者には第3図のマルチプレ
クサ87,88及び95の配列が、2レベルマルチプレクサを
構成していることが判るであろう。その2レベルマルチ
プレクサでは、マルチプレクサ87,88が第1レベル,マ
ルチプレクサ95が第2レベルである。この2レベルマル
チプレクサの協働してなす作動は16個のとり得る状態を
有する「真理値表」の動作と同一である。この真理値表
の論理値は、それぞれ8本のラインから成るコマンドラ
イン入力CMD4及びCMD5の状態から引出される。マルチプ
レクサ87及び88中で出力として選択される或るコマンド
ライン入力は、そのアドレス入力の状態によって決定さ
れる。マルチプレクサ87,88及び95のアドレス入力へ与
えられるアドレスはミドルフリップフロップ82の状態に
対するノース、サウス、イースト及びウエストネイバー
の状態を表わす信号から引出されるので、ライン98上の
出力信号が、論理状態の上述のネイバーフッドの一般的
な真理値表の変換結果を代表していることは明らかであ
る。
変換信号98とミドルセル出力36はマルチプレクサ100
の2つのアドレス入力に接続されている。これら2つの
アドレス入力の論理状態は、マルチプレクサ100が受け
取ったコマンドラインCMD6上の4つの入力信号の内、い
ずれをマルチプレクサ100が選択してライン101上の出力
として与えられるかを決定する。マルチプレクサ100
は、従って、ミドルセル出力36及びライン98上のネイバ
ーフッド変換結果との真理値表変換を行う。ライン101
及びミドルセル出力36はセレクタ102へ入力される。セ
レクタ102の選択動作は、ライン103上に供給された入力
信号の状態によって制御される。ライン103上の論理
「0」はライン101上の信号を選択及び通過せしめ、一
方、ライン103上の論理「1」はライン36上のミドルセ
ルからの信号を選択せしめる。セレクタ102の出力は機
能出力と呼ばれ、その論理値はライン104へ引渡され或
いは強制的に出力されて、「ファンクション」フリップ
フロップ105へ引渡され、そこでクロック信号CLK5の作
動に伴いラッチ(latch)される。
メモリデータライン12e上の信号は、クロック信号CLK
6の作動に伴い、「コンディション」フリップフロップ8
0へラッチされる。フリップフロップ80へ接続されてそ
の出力状態を移送する出力ライン106は、ANDゲート107
へ接続されている。コマンドラインCMD7もまたANDゲー
ト107へ接続されている。コンディションフリップフロ
ップ80,ANDゲート107及びセレクタ102は、コンディショ
ナル・イネーブル回路を全体として構成する。この回路
においては、上記コンディションフリップフロップ80の
状態により、ファンクションフリップフロップ105がラ
イン101により決定されたセレクタ102のファンクション
出力の状態をラッチするか、或いは変換されていない状
態を代表するライン36を介して受け取ったミドルセルの
状態を用いるかが制御される。このコンディショナル・
イネーブル動作は、従って、幾つかのプロセッサセル31
にコマンドラインCMD1〜CMD6上のイネバーフッド変換イ
ンストラクションに従うことを選択的に許す一方、他の
セル31に同様な変換インストラクションを効果的に無視
するようにする手段を提供する。プロセッサセル31の上
記コンディショナル動作は、コマンドラインCMD7上の論
理「0」のコマンドにより不動作とされる。
書込サブサイクル 第2図を参照するに、ライン72上のファンクション出
力状態は、コマンドラインCON5のインストラクションに
基づき出力セレクタ33によって選択され、これによりメ
モリデータライン12eへゲート76を通って移され、メモ
リ13eへ書込まれる。
ブール演算 ブール演算(例えばコンビネーショナル論理演算)は
機能的にはイネバーフッド演算処理に類似しており、主
な相違は、データビットラインのいずれかの(任意の)
ラインが第3図に示すセル31のフリップフロップ81,82,
83及び84に書込まれること、即ち、ネイバーフッド演算
処理を実行するのに必要とされるようなデータマトリッ
クスの隣接ビット行からの連続的なデータビットだけが
上記フリップフロップに書き込まれているというわけで
はないという点である。ブール演算は次のようにシステ
ム9によって実行される。或る特定のアルゴリズムに基
づき、第1図のコントローラ27はメモリ13a−13nをアド
レスし、4つのデータビット行の連続的な読込を行わせ
る一方、ラインCLK4をクロックし、その結果プロセッサ
セル31のフリップフリロップ81〜84(これらは4段階シ
フトレジスタとして接続されている)は、4つのデータ
行を受け取り保持する。その後、セル31のそれぞれは、
次のように構成及び動作される。セレクタ85はコマンド
ラインCMD1上の信号によりインストラクトされ、ライン
36上のミドルセル状態を出力ライン86及びマルチプレク
サ87及び88の第1アドレス入力へ通す一方、セレクタ89
はコマンドラインCMD2上の信号によりインストラクトさ
れ、ライン109上の「x」フリップフロップ84の出力を
その出力及びライン90へ通過させる。ライン90は、マル
チプレクサ87及び88の第2アドレス入力へ接続されてい
る。CMD3は論理「1」にセットされる。ネイバーフッド
演算処理に類似するがこれとは異なり、マルチプレクサ
87,88及び95のこの新しい構成は、フリップフロップ81
〜84の4つの状態に対する一般的な真理値表変換を全体
として形成する。コマンド信号CMD6からのインストラク
ションは「M」マルチプレクサ100をセットし、入力98
の状態だけを出力ライン101へ通す。コンディションフ
リップフロップ80、ANDゲート107及びセレクタ102はネ
イバーフッド変換におけるコンディショナルイネーブル
回路と同様に、コンディショナルイネーブル回路を全体
として構成する。セレクタ102から出て来るブールファ
ンクション出力状態は、イネバーフッド演算処理の所で
述べたのと同様に、フリップフロップ105へラッチさ
れ、その後メモリ13eへ書き戻される。
当業者には上述の記載により以下のことが容易に理解
されよう。即ち、上述のコントロール及びコマンドオペ
レーションによって、プロセッサセル31は、コマンド信
号CMD3、CMD4、CMD5の状態により確立された真理値表に
基づき、任意の4つのデータビット行の組に任意の真理
値表変換を実行することができる。
アキュムレータを用いたブール演算 もしセレクタ85がコマンド信号CMD1によりインストラ
クトされ、アキュムレータ出力52の論理状態を出力ライ
ン86へ通過させれば、ブール変換は演算においてアキュ
ムレータデータを用いるようになる。この構成により幾
つかの演算においては、プロセッサの融通性が高まり且
つより高速になる。
算術演算 ビットシリアル演算 ビットシリアル演算を含む計算サイクルを実行する為
に、キャリーフリップフロップ114のリセット入力へ入
力されたCLK7コマンドは、瞬間的に起動される(例えば
パルス状に)ので、そこでの論理状態は「0」にセット
される。次に第1データワードの最下位ビットに相当す
るデータラインがメモリ13a〜13nから読込まれてサウス
フリップフロップ81へクロックされる。これはネイバー
フッド処理或いはプール演算で延べたものと同様であ
る。次に、第2データワードの最下位ビットがメモリか
ら読込まれ、結果としてミドルフリップフロップ82が第
1ビットの状態を有し、サウスフリップフロップ81が第
2ビットの状態を有する。セレクタ85は、コマンドライ
ンCMD1上の信号によってインストラクトされ、ライン36
上のミドルフリップフロップ82の状態を出力ライン86及
びマルチプレクサ87,88の第1アドレス入力へ送伝する
一方、セレクタ89はコマンドラインCMD2上の信号によっ
てイストラクトされ、ライン115上のキャリー信号(キ
ャリーフリップフロップ114の出力)を、ライン90及び
マルチプレクサ87及び88の第2アドレス入力へ伝送す
る。サウスフリップフロップ81の出力ライン91の信号
は、マルチプレクサ87及び88の第3アドレス入力へ伝送
される。コマンドラインCMD5の状態は、「S」マルチプ
レクサ88がフリップフロップ114に格納されたキャリー
入力の値とフリップフロップ81及び82に格納された入力
値の或る1ビットサム或いは加算に対し、真理値表を与
えるようにセットされる。詳しくは、コマンドラインCM
D4の状態は、「C」マルチプレクサ87がライン96上の3
つの入力値に対するキャリープロパゲート値(carry pr
opagate value)用真理値表として作用するようにセッ
トされる。結果として出て来るキャリープロパゲート値
及び加算値はそれぞれクロック信号CLK5及びCLK8により
キャリーフリップフロップ114及びファンクションフリ
ップフロップ105に格納される。ファンクションフリッ
プフロップ105の状態は、ライン72上に出力され、ネイ
バーフッド演算処理で行われたようにメモリ13へ読み返
えされる。
次に、同じ第1データワード及び第2データワードか
らの次の最下位ビットがフリップフロップ81及び82へ読
込まれ、上述と同じように処理される。新しい算術的合
計値が作られメモリ13a〜13nへ書込まれ、新しいキャリ
ープロパゲート値が作られ、フリップフロップ114に格
納される。上述の処理ステップを繰返すことにより、2
つ(或いは3つ以上)のデータワードもそれがいかなる
任意の数のビットを有するデータワードでも、共に加算
される。更に、コンディショナル算術演算は、上述のシ
リアル算術処理を用いれば上述のようにコンディショナ
ルフリップフロップ80を用いて容易に行うことができ
る。
アキュムレータを用いたビットシリアル演算 セレクタ85はコマンドラインCMD1上の信号によりイス
トラクトされ、アキュムレータ出力ライン52の論理状態
をセレクタ85の出力ライン86へ伝送する。その次の算術
演算は、メモリからフリップフロップ81へ書き込まれた
データワードのビットと、アキュムレータ51に予め格納
されていてライン52を介して受け取られたワードとの加
算を含む。
並列演算 算術演算の間、セレクタ89はコマンドラインCMD2上の
信号によりインストラクトされ、ライン34上のキャリー
イン信号の論理状態をセレクタ89の出力ライン90へ伝送
する。そして、プロセッサセル31へのキャリー入力が左
隣りのプロセッサセル31からライン34を介して得られ、
キャリー出力はライン37を介し右隣りのプロセッサセル
へ伝送されていく。したがって、正しい並列算術演算を
実行するには連続的に有効ビットが水平方向に連続とな
るように、またその際最上位ビットが右向きとなるよう
にデータワードがメモリ及びプロセッサユニット内で配
列されなければならない。並列算術演算を含む計算サイ
クルを実行するには、データビットの第1行がメモリ13
eから読まれ、この際各ビットはサウスフリップフロッ
プ81へクロックされる。次にデータビットの第2行がメ
モリ13eから読まれ、この際各ビットがフリップフロッ
プ81内へクロックされて、第1データビットがミドルフ
リップフロップ82内へクロックされる。ビットシリアル
算術演算の場合のように、サムとキャリー信号が計算さ
れる。しかし、キャリー信号は右へ伝送され、データワ
ードを構成するデータビットのサムは、データビットの
第2行がメモリ13eから読まれた後にすぐ安定(ステイ
ブル)となる。ビットシリアル算術演算の場合のよう
に、各セル31内の合計結果はファンクションフリップフ
ロップ105内へクロックされ、メモリへ書込まれ得る状
態になる。アキュムレータ51からのデータを用いた並列
算術演算及びコンディショナル並列算術演算は、ビット
シリアル算術演算の方法と同じような方法で行なわれ
る、ということは明らかである。並列算術演算を行うと
き、オーバーフローを避けるためアルゴリズムを書く際
に注意を払わねばならない。これはキャリー信号が1つ
のデータワードから次のデータワードへ事故的に伝送さ
れないようにする為である。というのは多くのデータワ
ードが同じビットラインに存在するからである。
アキュムレータ 第2図に最もよく示されているように、アキュムレー
タ51は、シリアル入力信号をプロセッサセル31からライ
ン40を介して、又、メモリ13eからメモリデータライン1
2eを介して受け取る。ライン40上のシリアル入力は、第
3図に示すようにアキュムレータ入力セレクタ116から
与えられる。上記セレクタ116はコマンドラインCMD8上
の信号によりインストラクトされ、ライン12e上のメモ
リ信号、ライン104上のファンクション信号、あるいは
ライン52上のアキュムレータ出力信号のどれかを選ぶ。
選択された入力信号の状態は、セレクタ116の出力及び
ライン40へ通過される。ライン40は第2図のアキュムレ
ータ54に接続されている。
第4図において、アキュムレータ上位バイトレジスタ
54が大きな破線枠内に描かれており、8個の1ビットア
キュムレータユニット120a〜120hがその中に存在する。
それらのユニットの1つの詳細、即ち1ビットアキュム
レータ120aの詳細が小さい破線枠中に描かれている。他
の1ビットアキュムレータ120b−120hはアキュムレータ
120aと構成上同一であるので示していない。また、アキ
ュムレータ51の低位のセクション、即ち第2図に示すア
キュムレータ下位バイトレジスタ55は、その内部構造に
おいて、レジスタ54と同一である。第4図に示されるよ
うに、フリップフロップ122は、アキュムレータセクシ
ョン54内に格納された8ビットワードの1つのビットの
値を格納する。アキュムレータセクション54によって実
行される1つの機能は、その中に格納されたワードの値
をインクレメントすることである。エクスクルーシブOR
ゲートの良く知られた特性を用いると、エクスクルーシ
ブORゲート124からの出力123はそこでインクレメントさ
れたビットの値を含む。また、その入力にはライン41a
(フリップフロップ122内に格納されたビットの値を供
給するライン)が接続されると共に、ライン53で伝送さ
れた第1キャリー入力(ライン53は下位バイトアキュム
レータセクション55からの最後のキャリーライン)が入
力される。良く知られた方法を用いて、キャリー伝送機
能がANDゲート125により実行されるようにし、ライン12
6上のその出力がその次の1ビットアキュムレータ120b
へのキャリーイン信号として供給されるキャリーアウト
信号を含むようにする。セレクタ127は制御ラインCON2
上の信号によりインストラクトされ出力129として4つ
の入力信号のうち選択された1つの値を通過させる。上
記4つの入力信号とは、(1)ライン128を介して供給
されたアキュムレータユニット120b内のビットの値、
(2)ライン45を介し供給されたウエスト側のアキュム
レータのビットの値、(3)ライン123を介して供給さ
れたインクレメントされた値、(4)イースト側に位置
する隣りのアキュムレータ154内のアキュムレータビッ
トからのライン42a上の値である。選択された入力信号
は、ライン129を介し、アキュムレータフリップフロッ
プ122へ出力され、その選択された値はクロック信号CLK
1の作用に伴いフリップフロップに格納される。
上述の記載より明らかなように、アキュムレータセク
ション54が適切な制御信号を受けると次の4つの機能を
実行する。(1)第1キャリー入力の状態に基づき、そ
の中に格納された8ビットの値を1ないしゼロだけイン
クリメントする、(2)その中に格納された全ての8ビ
ット値をイーストへパラレルシフトする、(3)その中
に格納された全ての8ビット値をウエストへパラレルシ
フトする、(4)その中に格納された8ビット値を下位
へシリアルシフトする。そのとき入力ライン40により上
位の1ビットアキュムレータ120hへ供給されるシリアル
シフト入力値はプロセッサセル31内の種々のソースから
選択される(第3図参照)。
第5図を参照する。プロセッサユニット10a〜10nは論
理的に8ユニットの組として構成されており、破線枠13
0内にその代表組が描かれている。これは次の3つの理
由による。(1)ホストコンピュータデータライン15は
一度に8ビットを読込むことができ、(2)グループ13
0に付随するメモリはバイトワイドメモリ132として設け
られるのが最も経済的であり、(3)他の内部機能が8
ビットサイズで最も適切に作用するからである。8個の
プロセッサユニット30a〜30hは、左側にアキュムレータ
入力及び出力45a,41a,47a及び43aを、また右側にアキュ
ムレータ入力及び出力41h〜44hを有して描かれている。
プロセッサユニット30a〜30hは、メモリ132へ8本のデ
ータライン12a〜12hを介して接続されている。メモリデ
ータライン12a〜12hは、第1入力としてアキュムレータ
の左側入力セレクタ135へ接続されており、その隣りの
アキュムレータの低位バイト入力134はセレクタ135の第
2入力へ接続されている。アキュムレータの左側入力セ
レクタ135へ接続されている制御ラインCON8上のインス
トラクションは、第1或いは第2入力のどちらかを選択
させ、その選択された信号を入力ライン47aに沿ってア
キュムレータの下位のバイトレジスタ55へ移す(第2図
参照)。プロセッサユニット30hのアキュムレータの下
位バイトレジスタ55hの8個の出力ビットはグループ130
のイースト側のライン43h上へ出力され、それぞれがプ
ロセッサ30a〜30hの転置入力70a〜70hへ接続される。上
記転置入力のそれぞれはその出力セレクタ33へ接続され
ているので(第2図参照)、もしセレクタ33がラインCO
N5上の信号によってインストラクトされ、転置信号74を
通過させれば、メモリ13eはその中にアキュムレータレ
ジスタ55hからのアキュムレータビットを格納する。
大きなデータアレイ(例えば、8行×8の倍数列)を
より効率的に処理するために、複数のサブアレイ(第1
サブアレイ,第2サブアレイ,…)に細区分する。各サ
ブアレイは8行×8列のデータで、その1つ(例えば、
第1サブアレイ)が第6A図に格子140として示されてい
る。格子140はメモリ13に格納されるであろう垂直バイ
トの小さなサブアレイを代表しており、A0〜A7,B0〜B7,
C0〜C7等はそれぞれ典型的なバイトである。メモリとア
キュムレータの間のデータの転置には2つの方法がある
が、それぞれトランスポーズイン及びトランスポーズア
ウトと呼ばれる。次に、これらについて説明する。トラ
ンスポーズイン:ラインCON8上のコマンド信号(第5図
参照)は、左側入力セレクタ135がライン47aを介し、メ
モリデータライン12a〜12hから出力を選択してプロセッ
サユニット30aへ与える動作をなすようにセットされ
る。もし、格子140の8行(水平)の値がメモリ13から
読まれ(この場合、最上位ビットが最初に読まれる)、
またプロセッサユニット30a〜30hの8個の隣り合うアキ
ュムレータセクション50a−50hがメモリ読取りインスト
ラクションと同期してイーストへクロックするようにコ
マンドされるならば、格子140からのデータは、第6B図
の格子142に示すようなトランスポーズされた形で、隣
りのアキュムレータセクションに水平的に格納される。
トランスポーズアウト:もし8個の隣り合うアキュムレ
ータセクション50a〜50h内のデータが第6A図の格子140
で表わされたように格納されているならば、またもしプ
ロセッサユニット30a〜30hのそれぞれの出力セレクタ33
(第2図参照)が転置入力74を選択するようにコマンド
されるなら、8個のアキュムレータのイーストシフトと
同期された8回のメモリの書込みが実行された後に、格
子140のデータアレイは第6B図の格子142に示すようにメ
モリ内で格納される。
アキュムレータの下位バイトレジスタ55hの8個のパ
ラレル出力は又、第5図の右端の8本のライン43hを介
し低位アドレスセレクタ131へ第1組の入力群として供
給される。8本の下位アドレスライン14(第1図参照)
は、入力の第2組としてセレクタ131へ接続される。制
御ラインCON9上のインストラクションにより、セレクタ
131はライン43hからのアキュムレータ出力信号或いはラ
イン14上の下位アドレスバイト信号のどちらかをライン
28へ通過させる。ライン28で伝送されるデータはバイト
ワイドメモリ132内に在るメモリ13a〜13hへ運ばれるア
ドレスの8個の最下位ビットである。
上述の記述に鑑み、当業者には以下のことが理解でき
ると思われる。即ち、コントローラ27(第1図参照)
は、メモリ13a〜13nをアドレスすることができ、8個の
アキュムレータセクションの内へ、それがプロセッサユ
ニット30a〜30n内の8個のプロセッサユニットのどの望
まれたグループ130であっても、数をロードでき、選択
された8個のプロセッサユニットグループ130のイース
トアキュムレータセクション55hで、上記ロードされた
数を再びメモリ13a〜13nをアドレスするのに用いること
ができる。この種の機能は通常、間接アドレス指定とし
て知られている。上記グループ内の8個のアキュムレー
タの全てに間接アドレスが与えられて所望の処理を実行
できるようになるまで、グループ130のアキュムレータ
セクションの内のデータをイーストへシフトすることが
できると共に、間接アドレス指定を新しくシフトされた
値に対して繰り返し実行することができる。この手法の
実施については後述する。
第5図のコマンド入力セレクタ133は、コントロール
ラインCON10上の信号によりインストラクトされ、下位
アドレスバイト14あるいはライン12a〜12fを介して受け
取られたメモリ13a〜13nからのバイトのどちらかの状態
を、ライン138を介してコマンド格納レジスタ137へ通過
させる。CLK9上のクロック信号の作用により入力ライン
138上のデータがコマンド格納レジスタ137へラッチされ
る。コマンド格納レジスタ137は、好ましくはその中に
4つのバイトを格納できる4ステージシフトレジスタで
ある。ラインCLK9上の4つのクロックサイクルは、従っ
て、コマンドの4つのバイトの新しい組をコマンド格納
レジスタ137へ完全に移すことができなければならな
い。コマンド格納レジスタ137に格納されたデータの4
つのバイトは、コマンドラインCMD1〜CMD8を介して出力
され、第3図に示すように諸コマンド信号として作用す
ると共に、プロセッサセル31を作動するのに用いられ
る。
上述の記載より次のことが理解されると思う。グルー
プ130のプロセッサユニット30a〜30hに対するコマンド
格納レジスタ137用のデータワードは、ライン14により
直接下位アドレスバイトから或いはメモリ13a〜13hから
得ることができる。この場合、下位アドレスバイトライ
ンは下位アドレスセレクタ131及びライン28を介しメモ
リ13a〜13hへのアドレスを供給する。後者の方法による
と、異なるプロセッサユニットグループ130はメモリ13
内の異なった場所、例えばメモリ13のそれぞれが指定さ
れた部分、へ同時にアクセスでき、またメモリ13内に予
め格納された異なったコマンドを受け取ることができ
る。
アプリケーション(応用例) 本発明の新規な特徴の応用例・適用例を次に示す。そ
の応用例は、グループ130の8個のお互いに接続された
アキュムレータ55a〜55h、転置処理及び間接アドレス指
定を含む。これら3つの応用例に関する以下の記述にお
いて、コマンド及び信号の流れに関する詳細な記載は必
要でない。というのは基本的な説明は既に上述されてい
るか或いは上述の記載より容易に理解できるからであ
る。
参照用テーブル 参照用テーブル(ルックアップテーブルLUT)は、通
常データアレイ或いはマトリックス内の各データエレメ
ントが非常に複雑な規則に基づき変換される場合に用い
られる。普通、そのような複雑な規則に基づき全てのデ
ータエレメントを計算するのは非常に時間がかかる。し
かし、もし独立変数或いは入力の組合せの取り得るデー
タ値のそれぞれに対し、オフラインで上記計算が一旦な
され、その結果がメモリ13a〜13n内に水平バイトとして
格納されたならば、プロセッサユニット13a〜13nは各デ
ータポイントに対し上記格納された参照用テーブルアレ
イからその値を参照するだけでよい。今述べた手法の一
実施例として、第7A図〜第7C図に示された次の方法を考
えてみる。第6B図のような水平フォーマットでメモリ13
内に所望のLUTが格納されているとすると、LUTの内容・
記載事項に基づき変換されるデータは第6A図に示されて
いるような垂直フォーマットでメモリ13a〜13hに格納さ
れる。第1ステップでは、メモリ13a〜13hの8ビット×
8ビットのセグメント148により代表される8個の垂直
に格納されたデータバイトを、下位バイトアキュムレー
タ55の8×8グループ150へ読み込む一方、アキュムレ
ータ55を第7A図に示すように、信号ライン152及び矢印1
53により下方へクロック(クロックダウン)する。これ
をするために、プロセッサセル31のアキュムレータ入力
セレクタ116はライン12a〜12h上のメモリ13a〜13hのメ
モリセグメント148からのデータを、ライン40a〜40hへ
通過させる必要がある(第1図及び第2図参照)。8つ
のクロックサイクルが必要とされる。その後、第2ステ
ップの間は、グループ150内に格納されたデータバイト
が間接アドレスとして用いられる。この間接アドレス
は、メモリ13a〜13h内のメモリスペース154をアドレス
する。メモリスペース154内では、LUTが第7B図に示され
るように、信号ライン156によりアドレスされる。メモ
リスペース154内の行の数は、LUT内の行の数に等しい。
メモリスペース154内のLUTに基づき変換されたデータバ
イトは、信号ライン158によって示すように、メモリか
ら読出され、矢印159によって示すように、アキュムレ
ータグループ150内へ、即ちイーストへシフトされる。
最も右にあるデータバイトは、イーストへのシフトの間
に消失し、それに続く右端のデータエレメントがグルー
プ150の一番右の位置を占める。この第2ステップの
間、全ての8個のバイトを処理するのに8つのクロック
サイクルが必要とされる。この8つのクロックサイクル
の間、LUT154の内容を参照することにより変換されたデ
ータは、イーストへクロックされ入力ライン47aを介し
グループ150の最も左のアキュムレータ55aへクロックさ
れ、その処理においてデータは垂直フォーマットへ転置
され、グループ150内で保持される。最後に、信号ライ
ン160により、第7C図に示すように、グループ150内に保
持された新しい変換値は、垂直フォーマットでメモリ13
a〜13hへ書き戻される。グループ150のアキュムレータ5
5を完全にダウンシフトして全ての8個の変換値を格納
させるには、更に8つのクロックサイクルが必要とされ
る。典型的には変換値はメモリセグメント148に再格納
されるが、場合によってはメモリ13a〜13h内の異なった
セグメントへ格納してもよい。
ヒストグラム ヒストグラムは全データアレイ内でデータ値のグルー
プの各値が生ずる回数をカウントしたものであり、本発
明の転置及び間接アドレス指定の特徴を用いて有利に実
行することができ1つの演算である。本発明のシステム
9を用いてヒストグラムを作るための好ましいテクニッ
クは、次の如くである。まず、ヒストグラムに関連する
色々なカウント値が累積されるメモリ13a〜13n内のエリ
アはゼロとされる(zeroed out)。この例として、第8A
図に示すメモリ13a〜13h内のアレイ170に垂直フォーマ
ットのデータが在ると考え、ヒストグラムのカウント値
は水平フォーマットで累積されると考える。8個のデー
タビットの組が、矢印171及び信号ライン172によって第
8A図に示すように、下位バイトアキュムレータグループ
150内へ(シリアルにダウンシフトされて)ロードされ
る。グループ150の最も右のアキュムレータ55h内のデー
タ値は、第8B図の信号ライン173によって示すように、
メモリ13のメモリセグメント177内のメモリ位置(行)
について間接アドレスとして作用する。メモリセグメン
ト177は、その特定のデータ値に対するカウント値を有
するようになる。そのカウント値は、インクレメントさ
れるものであり、従って、信号ライン174により、第8B
図に示すように、8ビットワイドプロセッサセル175内
へロードされる。プロセッサセル175は、例えば、プロ
セッサユニット10a〜10hのプロセッサセル31a〜31hから
構成される。プロセッサセル175におけるカウント値
は、第8B図に示すように、プロセッサセルの水平算術モ
ードを用いてここでイクレメントされる。再び間接アド
レス指定を用いると、インクレメントされた値は、同じ
メモリ位置(行)に戻される。即ち、信号ライン176及
び178により第8C図に示すように、インクレメントされ
る前に存在していた場所(元の位置)に戻される。同時
にアキュムレータ150はイーストへシフトされ、次のデ
ータ値の次のカウントの準備をする。第8B図及び第8C図
に示したインクレメントプロセスは全部で8回起り、第
8A図のステップの間、8個のアキュムレータのグループ
150内にロードされた全てのデータをカウントする。メ
モリ13a〜13n内のデータマトリックスの全ての行が同じ
ように同時に処理される(各行の幅は複数組の列に相当
する。各組は例えば、幾つかの8ビットワイド列からな
る。)。最後に、各列の組の全行が処理された後、幾つ
かのヒストクラムが統合整理されるが、このとき8個の
列からなる各組に対し1つのヒストグラムが用いられ
る。更に、もし垂直フォーマットが必要とされるなら
ば、それらは転置される。
アキュムレーション 第9A図〜第9C図は、ここで用いられるアキュムレータ
のデータの流れを示しており、これは16ビットの数がア
キュムレータ内に既に存在する値に加算される場合であ
る。第9A図では、データ即ち、垂直フォーマットの8個
の16ビット値は、ビットシリアルの形をとるメモリ13a
〜13hの8ビットワイドの16行メモリセグメント188から
プロセッサセル175へ読込まれる。同時に16ビットアキ
ュムレータ190は、矢印194により示すように、クロック
ダウンされ、上向きの信号ライン195によって示すよう
にプロセッサセル175に読込まれ、そこで2つのデータ
入力が加算される。アキュムレータ190は、幅8ビット
×高さ8ビットのアキュムレータセクション192(隣り
の8個のプロセッサ行30a〜30hのアキュムレータの上位
バイトレジスタ54a〜54hである)と、これに対応する8
×8の下位バイトアキュムレータグループ即ちセクショ
ン150とから成る。セル175内で生成された合計はそれが
シフトダウンされる間アキュムレータ190へ読み返され
る。第9B図には、もし合計されるべき次のデータ値がメ
モリセグメント188の異なる列にあるならば、アキュム
レータ190が任意にイースト或いはウエストへシフトさ
れることが描かれている。第9A図及び第9B図に描かれて
いる2つのフェーズ或いはステップシーケンスは、近く
(或いは遠く)のメモリ要素からの種々の所望の加算を
終了させるためには、幾度も繰返される。イースト或い
はウエスト方向へのシフトは、プロセッサユニット10a
〜10nのアレイに沿ったいかなる任意の距離でも値或い
は部分合計を運ぶために用いることが可能である。従っ
て、アキュムレーション機能は、セグメント188等の与
えられたメモリセグメント内で実行されるとは限らな
い。第9A図及び第9B図に示すこのアキュムレーション手
法により、当業者によく知られている「シフトアンドア
ッド」という乗算法を用いることにより、たたき込み
(convolutions)或いは種々の掛算因子との合計を処理
できる。所望のデータ加算サイクルが全て完了すると、
アキュムレータ190の内容は、矢印196により第9Cに示す
ように、アキュムレータをダウンシフトすることにより
メモリ13a〜13nへ格納される。望むならアキュムレータ
190内において、プロセッサセル175から出て来るデータ
の後にゼロをシフトすることが可能である。ゼロをシフ
トインすることにより、アキュムレータ190はデータマ
トリックスの別の行を処理する準備ができたことにな
る。カウンティング 第10A図及び10B図は本発明のシステム9を用いて、メ
モリ内に格納されたデータマトリックスの選択された列
内のビットの数(ナンバ)をカウントする方法を示して
いる。下位及び上位バイトアキュムレータの結合組190
は、第10A図に示唆されているように、インクレメント
モードに置かれている。アキュムレータの組190はメモ
リ13a〜13hのバイトワイドメモリセグメント200が読み
出されている間クロックされる。そして、その内のデー
タの論理1ビットがアキュムレータ190をインクレメン
トする一方、その内の論理ゼロビットはアキュムレータ
190の中身を変えない。セグメント200は任意の数の行を
含むことができることに留意されたい。データの全行が
処理された後では、アキュムレータグループ190内の各
1ビットアキュムレータ51a〜51hが、メモリセグメント
200中でそれぞれが付随しているデータマトリックス列
の論理「1」のデータビットの全ての合計を含むことに
なる。グループ190の1ビットアキュムレータ内の合計
はシフトダウンされ、第10B図に示すようにメモリ13a〜
13hの別のバイトワイドメモリセグメント202へ書込まれ
る。メモリセグメント202へ格納された合計は、第6A図
に示したタイプの垂直データフォーマットを有するが、
8ビットの高さの代りに16ビットの高さにもなり得るこ
とに注目されたい。
加算定数 16行×8ビット幅のメモリセグメント188内の垂直フ
ォーマットで格納されている数を、信号ライン210で第1
1A図に示すようにアキュムレータ190内へまずロードす
ることにより、16ビットの定数をデータマトリックスの
各エレメントに加算できる。一般に、アキュムレータ19
0内の種々の1ビット幅×16ビット高さのアキュムレー
タ54a〜54hはそれぞれ異なった数を含んでいる。次に、
ビットシリアル加算は、2つのサイクルからなるシーケ
ンスにおいて(2つのサイクルにより)プロセッサセル
175のセル31a〜31hのそれぞれの中で起る。第11B図は第
1サイクルを示しており、ここでは、データマトリック
スの最下位ビットの行がプロセッサセル175へ読込まれ
(信号ライン212により示す)、同時にアキュムレータ1
90は一回シフトダウンされ、8ビットの1行が信号ライ
ン214で示すようにプロセッサセル175へロードされる。
アキュムレータ190のボトム216からのアキュムレータ出
力ビットの1行は、そのトップ218の入力部へ再循環さ
れる。第11C図に示す第2サイクルでは、プロセッサセ
ル175のセル31a〜31hの各々に存在する合計されたビッ
トの各々が、信号ライン220で示すように、メモリセグ
メント188へ読込まれる。第11B図及び第11C図に示すサ
イクルは、セグメント188に格納されたデータワードの
残りの上位にビット全てに対し繰返される。こうして合
計加算が完了した後、アキュムレータ190内のビット
は、完全に再循環され、その結果、数は第11A図に示す
最初にロードされたときと同じ形で記憶登録される。も
し必要ならばセグメント188以外のメモリ13a〜13hのメ
モリセグメント内に見い出されるデータマトリックスの
行が全て処理されるまで上述の処理が繰り返される。
上述の記載より次のことが理解されよう。上述の選択
的に相互結合可能な並列処理ユニットを直列的鎖状とす
る本発明のシステム及び方法は、本発明の目的を確実に
達成するばかりでなく、特に効果的且つ経済的に達成す
るものである。当業者が本発明の精神の範囲内で、本発
明の上記好適な実施例以外に、適宜種々の負荷・改変を
行うことができることは明らかである。また、ここで用
いられた相互に関連のある用語、例えば、「行」と
「列」、「垂直」と「水平」、「左」と「右」、「イー
スト」と「ウエスト」、「アップ(上方向)」と「ダウ
ン(下方向)」等は、明細書及び請求の範囲の理解を容
易にするためのものであり、本発明の範囲を制限するも
のではない。この点に鑑み、当業者には上述のような用
語がしばしば単に全体をはっきりさせるものでその人の
見方を変えることにより変えられることが理解できるで
あろう。例えば「行」は「列」になり、その反対もあ
る。それは、その人の見方を90゜回転させた場合にすぎ
ない。また、ここに開示された好適実施例のアーキティ
クチャーは、主に8ビットのデータワードに基づいてお
り、8×8ビット或いは16ビット×8ビットの配列の処
理データに基づいているが、本発明は容易に他のサイズ
のデータワードにも適用でき、例えば小さいものでは2
ビットのワードから、大きいものでは32ビット(或いは
それ以上)のビットのデータワードでもよいし、それぞ
れが似ている少し小さい或いは大きい配列のグループの
データでもよい。従って、ここで求めている保護は、本
発明の範囲内において請求された内容と等価なものの全
てである。
【図面の簡単な説明】
第1図は本発明の直列的鎖状に結ばれた並列処理システ
ムの全体のブロック図、 第2図は典型的なシングルプロセッサユニットのブロッ
ク図、 第3図は第2図のプロセッサユニットのプロセッサセル
インの部分の概略図、 第4図は第2図のプロセッサユニットのアキュムレータ
・ハイバイトレジスタを構成する8個のアキュムレータ
セルの構造を示す部分図、 第5図は8個のプロセッサユニットの組の間の相互接続
及びそこで用いられているワイドバイトメモリの間の相
互接続のブロック図、 第6A図及び第6B図は転置処理を示す図、 第7A図〜第7C図は参照用テーブル計算における信号の流
れを示す図、 第8A図〜第8C図はヒストグラム計算における信号の流れ
を示す図、 第9A図〜第9C図はデータアキュムレーションにおける信
号の流れを示す図、 第10A図及び第10B図はカウンティングにおける信号の流
れを示す図、 第11A図〜第11C図はメモリー内でデータマトリックスに
定数を加える際の信号の流れを示す図である。 図中、9は並列演算処理システム、10a〜10h,30,130は
ネイバーフッドプロセッサユニット、10はそのアレイ、
11はライン、12a〜12nは双方向データ転送ライン、13a
〜13n,132はシングルワイドメモリ、13はそのアレイ、2
1はパラレルビットライン(データシフトライン)、31
はプロセッサセル、32はI/Oユニット、33は出力セレク
タユニット、34〜38,41〜44,71〜73は接続ライン、135
は左側入力セレクタである。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 EPA 0006748 IEEE Conference P roceeding of the 13 th Annual Internat imal Symposium on Conputer Architect ure 2−5 June 1986 P 338−345 COMPUTER Vol.15,n o.3 March 1982 Pages 43−54

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】複数の行と少なくとも2n個(nは1より大
    きい整数)の列とを有する大きなデータアレイからのデ
    ータに対して並列処理演算を実行するための並列処理シ
    ステムであって、上記並列処理演算のために上記大きな
    データアレイを複数のサブアレイに分割し、該サブアレ
    イの夫々が複数の行とn個の列とを有する上記並列処理
    システムにおいて、 それぞれn個の独立したプロセッサユニットからなるグ
    ループが上記サブアレイの数だけ設けられ、上記グルー
    プの夫々が複数の接続ラインにより互いに接続されたn
    個のプロセッサセルを有し、上記プロセッサユニットの
    それぞれが上記プロセッサセルを1つ有し、上記プロセ
    ッサユニットのグループが複数の接続ラインにより互い
    に接続されて上記グループ間でデータを転送することが
    でき、 各サブアレイを格納するためのn個のメモリ手段からな
    るメモリ手段グループが上記サブアレイのそれぞれに設
    けられ、上記メモリ手段のそれぞれが1列のデータを格
    納すると共に、各プロセッサユニットに付随接続されて
    おり、 上記プロセッサユニットの各グループが、これに付随す
    る上記メモリ手段グループからのサブアレイのデータ行
    に対し選択的に並列作動することができると共に、上記
    メモリ手段グループからのデータ列に対しても選択的に
    並列作動することができることを特徴とする並列処理シ
    ステム。
  2. 【請求項2】各プロセッサユニットが処理されるべきデ
    ータを一時的に保持するためのアキュムレータ手段を有
    し、該アキュムレータ手段が複数の接続ラインにより隣
    りのプロセッサユニットに付随する少なくとも1つのア
    キュムレータ手段に接続される請求項1記載の並列処理
    システム。
  3. 【請求項3】各アキュムレータ手段がn個の1ビットア
    キュムレータを有し、各1ビットアキュムレータは1ビ
    ットのデータを一時的に保持するためのものであり、各
    アキュムレータ手段の1ビットアキュムレータは互いに
    シリアル接続され、このシリアル接続により、各アキュ
    ムレータ手段が自己のプロセッサユニットに付随するメ
    モリ手段からnビットのデータを受けると共に一時的に
    保持できる請求項2記載の並列処理システム。
  4. 【請求項4】上記プロセッサユニットの各グループがそ
    の内の1つのプロセッサユニットのアキュムレータ手段
    へ接続されたアドレス選択手段を有し、該アドレス選択
    手段は、当該アキュムレータ手段からのデータをデータ
    接続ラインへ伝送するための手段であり、該データ接続
    ラインが自己のプロセッサユニットグループの各プロセ
    ッサユニットに延びていると共に、自己のプロセッサユ
    ニットグループに付随するメモリ手段グループ内の各メ
    モリ手段にも延びており、 各プロセッサユニットグループが、自己のグループのプ
    ロセッサユニットと自己のグループのプロセッサユニッ
    トに付随するメモリ手段グループとの間のデータ接続ラ
    インを、上記自己のグループのプロセッサユニットの内
    の別のプロセッサユニットへ選択的に結合するための入
    力選択手段を更に備え、これによりデータが、自己のグ
    ループのプロセッサユニットもしくはメモリ手段から自
    己のグループの上記別のプロセッサユニットへ並列転送
    されることを特徴とする請求項3記載の並列処理システ
    ム。
JP63135386A 1987-06-01 1988-06-01 並列処理システム及びその方法 Expired - Fee Related JP2756257B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US057,128 1987-06-01
US07/057,128 US5129092A (en) 1987-06-01 1987-06-01 Linear chain of parallel processors and method of using same

Publications (2)

Publication Number Publication Date
JPS63316167A JPS63316167A (ja) 1988-12-23
JP2756257B2 true JP2756257B2 (ja) 1998-05-25

Family

ID=22008678

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63135386A Expired - Fee Related JP2756257B2 (ja) 1987-06-01 1988-06-01 並列処理システム及びその方法

Country Status (4)

Country Link
US (1) US5129092A (ja)
EP (1) EP0293700B1 (ja)
JP (1) JP2756257B2 (ja)
DE (2) DE293700T1 (ja)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0360527B1 (en) * 1988-09-19 1995-01-04 Fujitsu Limited Parallel computer system using a SIMD method
KR930002316B1 (ko) * 1989-05-10 1993-03-29 미쯔비시덴끼 가부시끼가이샤 버스제어방법 및 화상처리 장치
DE69032259T2 (de) * 1989-09-20 1998-08-13 Fujitsu Ltd Paralleldatenverarbeitungsanlage
US5287416A (en) * 1989-10-10 1994-02-15 Unisys Corporation Parallel pipelined image processor
DE69031865T2 (de) * 1990-02-28 1998-08-06 Texas Instruments Inc Ein SIMD-Prozessor als digitales Filter
EP0485594A4 (en) * 1990-05-30 1995-02-01 Adaptive Solutions Inc Mechanism providing concurrent computational/communications in simd architecture
JP2959104B2 (ja) * 1990-10-31 1999-10-06 日本電気株式会社 信号処理プロセッサ
US5325500A (en) * 1990-12-14 1994-06-28 Xerox Corporation Parallel processing units on a substrate, each including a column of memory
JPH04290155A (ja) * 1991-03-19 1992-10-14 Fujitsu Ltd 並列データ処理方式
US5732164A (en) * 1991-05-23 1998-03-24 Fujitsu Limited Parallel video processor apparatus
US5241632A (en) * 1992-01-30 1993-08-31 Digital Equipment Corporation Programmable priority arbiter
US5651121A (en) * 1992-12-18 1997-07-22 Xerox Corporation Using mask operand obtained from composite operand to perform logic operation in parallel with composite operand
US5408670A (en) * 1992-12-18 1995-04-18 Xerox Corporation Performing arithmetic in parallel on composite operands with packed multi-bit components
US5428804A (en) * 1992-12-18 1995-06-27 Xerox Corporation Edge crossing circuitry for SIMD architecture
US5450603A (en) * 1992-12-18 1995-09-12 Xerox Corporation SIMD architecture with transfer register or value source circuitry connected to bus
US5655131A (en) * 1992-12-18 1997-08-05 Xerox Corporation SIMD architecture for connection to host processor's bus
US5375080A (en) * 1992-12-18 1994-12-20 Xerox Corporation Performing arithmetic on composite operands to obtain a binary outcome for each multi-bit component
US5450604A (en) * 1992-12-18 1995-09-12 Xerox Corporation Data rotation using parallel to serial units that receive data from memory units and rotation buffer that provides rotated data to memory units
US5526501A (en) * 1993-08-12 1996-06-11 Hughes Aircraft Company Variable accuracy indirect addressing scheme for SIMD multi-processors and apparatus implementing same
US5434629A (en) * 1993-12-20 1995-07-18 Focus Automation Systems Inc. Real-time line scan processor
US5557734A (en) * 1994-06-17 1996-09-17 Applied Intelligent Systems, Inc. Cache burst architecture for parallel processing, such as for image processing
US5630161A (en) * 1995-04-24 1997-05-13 Martin Marietta Corp. Serial-parallel digital signal processor
US6188381B1 (en) * 1997-09-08 2001-02-13 Sarnoff Corporation Modular parallel-pipelined vision system for real-time video processing
US6208772B1 (en) 1997-10-17 2001-03-27 Acuity Imaging, Llc Data processing system for logically adjacent data samples such as image data in a machine vision system
FR2793088B1 (fr) * 1999-04-30 2001-06-22 St Microelectronics Sa Procede et dispositif de collecte des valeurs logiques de sortie d'une unite logique dans un circuit electronique
US6598146B1 (en) * 1999-06-15 2003-07-22 Koninklijke Philips Electronics N.V. Data-processing arrangement comprising a plurality of processing and memory circuits
EP1122688A1 (en) * 2000-02-04 2001-08-08 Texas Instruments Incorporated Data processing apparatus and method
AU2002238325A1 (en) * 2001-03-02 2002-09-19 Atsana Semiconductor Corp. Data processing apparatus and system and method for controlling memory access
WO2002073538A1 (fr) * 2001-03-13 2002-09-19 Ecchandes Inc. Dispositif visuel, compteur asservi et capteur d'images
HUP0102356A2 (hu) * 2001-06-06 2003-02-28 Afca-System Kft. Eljárás és kapcsolási elrendezés előnyösen ciklikusan ismétlődő adatfeldolgozási feladatok párhuzamos üzemű végrehajtására, továbbá az eljárás végrehajtásához szükséges műveleti kódok előállítására és szimulálására szolgáló programrendszer
US7054897B2 (en) * 2001-10-03 2006-05-30 Dsp Group, Ltd. Transposable register file
US20100274988A1 (en) * 2002-02-04 2010-10-28 Mimar Tibet Flexible vector modes of operation for SIMD processor
DE10206830B4 (de) * 2002-02-18 2004-10-14 Systemonic Ag Verfahren und Anordnung zur Zusammenführung von Daten aus parallelen Datenpfaden
US7506135B1 (en) * 2002-06-03 2009-03-17 Mimar Tibet Histogram generation with vector operations in SIMD and VLIW processor by consolidating LUTs storing parallel update incremented count values for vector data elements
US7266255B1 (en) * 2003-09-26 2007-09-04 Sun Microsystems, Inc. Distributed multi-sample convolution
US7737994B1 (en) * 2003-09-26 2010-06-15 Oracle America, Inc. Large-kernel convolution using multiple industry-standard graphics accelerators
JP2006099232A (ja) * 2004-09-28 2006-04-13 Renesas Technology Corp 半導体信号処理装置
US20060156316A1 (en) * 2004-12-18 2006-07-13 Gray Area Technologies System and method for application specific array processing
US20060190517A1 (en) * 2005-02-02 2006-08-24 Guerrero Miguel A Techniques for transposition of a matrix arranged in a memory as multiple items per word
CN101401088B (zh) * 2006-03-03 2011-03-30 日本电气株式会社 具有高速pe间数据再配置功能的处理器阵列系统
GB2436377B (en) * 2006-03-23 2011-02-23 Cambridge Display Tech Ltd Data processing hardware
KR100834412B1 (ko) * 2007-05-23 2008-06-04 한국전자통신연구원 모바일 멀티미디어 연산의 효율적인 처리를 위한 병렬 프로세서
GB0809192D0 (en) * 2008-05-20 2008-06-25 Aspex Semiconductor Ltd Improvements to data compression engines
JP5601817B2 (ja) * 2009-10-28 2014-10-08 三菱電機株式会社 並列演算処理装置
JP5528976B2 (ja) 2010-09-30 2014-06-25 株式会社メガチップス 画像処理装置
JP2011192305A (ja) * 2011-06-01 2011-09-29 Renesas Electronics Corp 半導体信号処理装置
US9183614B2 (en) * 2011-09-03 2015-11-10 Mireplica Technology, Llc Processor, system, and method for efficient, high-throughput processing of two-dimensional, interrelated data sets
US9680916B2 (en) 2013-08-01 2017-06-13 Flowtraq, Inc. Methods and systems for distribution and retrieval of network traffic records
FR3015068B1 (fr) * 2013-12-18 2016-01-01 Commissariat Energie Atomique Module de traitement du signal, notamment pour reseau de neurones et circuit neuronal
CN107851214A (zh) 2015-07-23 2018-03-27 米雷普里卡技术有限责任公司 针对二维阵列处理器的性能增强
US11249767B2 (en) * 2019-02-05 2022-02-15 Dell Products L.P. Boot assist zero overhead flash extended file system
US11042372B2 (en) * 2019-05-24 2021-06-22 Texas Instruments Incorporated Vector bit transpose

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3537074A (en) * 1967-12-20 1970-10-27 Burroughs Corp Parallel operating array computer
US3582899A (en) * 1968-03-21 1971-06-01 Burroughs Corp Method and apparatus for routing data among processing elements of an array computer
US3970993A (en) * 1974-01-02 1976-07-20 Hughes Aircraft Company Cooperative-word linear array parallel processor
US4174514A (en) * 1976-11-15 1979-11-13 Environmental Research Institute Of Michigan Parallel partitioned serial neighborhood processors
DE2963153D1 (en) * 1978-06-26 1982-08-12 Environmental Res Inst Apparatus and method for generating a transformation of a first data matrix to form a second data matrix
US4215401A (en) * 1978-09-28 1980-07-29 Environmental Research Institute Of Michigan Cellular digital array processor
US4314349A (en) * 1979-12-31 1982-02-02 Goodyear Aerospace Corporation Processing element for parallel array processors
US4525797A (en) * 1983-01-03 1985-06-25 Motorola, Inc. N-bit carry select adder circuit having only one full adder per bit
US4739474A (en) * 1983-03-10 1988-04-19 Martin Marietta Corporation Geometric-arithmetic parallel processor
US4621339A (en) * 1983-06-13 1986-11-04 Duke University SIMD machine using cube connected cycles network architecture for vector processing
JPH0658631B2 (ja) * 1983-12-19 1994-08-03 株式会社日立製作所 デ−タ処理装置
FR2573888B1 (fr) * 1984-11-23 1987-01-16 Sintra Systeme pour la transmission simultanee de blocs de donnees ou de vecteurs entre une memoire et une ou plusieurs unites de traitement de donnees
US4787057A (en) * 1986-06-04 1988-11-22 General Electric Company Finite element analysis method using multiprocessor for matrix manipulations with special handling of diagonal elements
US4829585A (en) * 1987-05-04 1989-05-09 Polaroid Corporation Electronic image processing circuit

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
COMPUTER Vol.15,no.3 March 1982 Pages43−54
EPA 0006748
IEEE Conference Proceeding of the 13th Annual Internatimal Symposium on Conputer Architecture 2−5 June 1986 P338−345

Also Published As

Publication number Publication date
DE3852909T2 (de) 1995-10-12
DE293700T1 (de) 1990-04-12
DE3852909D1 (de) 1995-03-16
EP0293700A3 (en) 1989-10-18
EP0293700B1 (en) 1995-02-01
EP0293700A2 (en) 1988-12-07
JPS63316167A (ja) 1988-12-23
US5129092A (en) 1992-07-07

Similar Documents

Publication Publication Date Title
JP2756257B2 (ja) 並列処理システム及びその方法
JP7277449B2 (ja) 汎用化画像処理の画像前処理
US5557734A (en) Cache burst architecture for parallel processing, such as for image processing
EP0390907B1 (en) Parallel data processor
US7447720B2 (en) Method for finding global extrema of a set of bytes distributed across an array of parallel processing elements
CN106940815B (zh) 一种可编程卷积神经网络协处理器ip核
US7574466B2 (en) Method for finding global extrema of a set of shorts distributed across an array of parallel processing elements
Ebeling et al. Mapping applications to the RaPiD configurable architecture
US10768894B2 (en) Processor, information processing apparatus and operation method for processor
EP0085520B1 (en) An array processor architecture utilizing modular elemental processors
CA2215598C (en) Fpga-based processor
CN116522058A (zh) 可重新配置的矩阵乘法器系统和方法
EP0293701B1 (en) Parallel neighborhood processing system and method
JPH0233191B2 (ja)
EP1070295A1 (en) Pattern generation and shift plane operations for a mesh connected computer
US6298162B1 (en) Image compression/expansion using parallel decomposition/recomposition
EP0112885A1 (en) CONNECTION LEVEL USED IN A MODULAR DATA FIELD PROCESSOR.
US4524428A (en) Modular input-programmable logic circuits for use in a modular array processor
US7581080B2 (en) Method for manipulating data in a group of processing elements according to locally maintained counts
JPH04295953A (ja) 要素プロセッサの2次元アレイを内蔵する並列データ処理装置および要素プロセッサのサブアレイユニット
CN116050492A (zh) 一种扩展单元
US7263543B2 (en) Method for manipulating data in a group of processing elements to transpose the data using a memory stack
JPH1074141A (ja) 信号処理装置
US8856493B2 (en) System of rotating data in a plurality of processing elements
Stojcev et al. Data reordering converter: an interface block in a linear chain of processing arrays

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees