JPH0833878B2 - 相関及び畳込みを行なうビツト−スライスデジタルプロセツサ - Google Patents

相関及び畳込みを行なうビツト−スライスデジタルプロセツサ

Info

Publication number
JPH0833878B2
JPH0833878B2 JP62049882A JP4988287A JPH0833878B2 JP H0833878 B2 JPH0833878 B2 JP H0833878B2 JP 62049882 A JP62049882 A JP 62049882A JP 4988287 A JP4988287 A JP 4988287A JP H0833878 B2 JPH0833878 B2 JP H0833878B2
Authority
JP
Japan
Prior art keywords
bit
processor
cell
output
bits
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP62049882A
Other languages
English (en)
Other versions
JPS62229470A (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.)
UK Secretary of State for Defence
Original Assignee
UK Secretary of State for Defence
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 UK Secretary of State for Defence filed Critical UK Secretary of State for Defence
Publication of JPS62229470A publication Critical patent/JPS62229470A/ja
Publication of JPH0833878B2 publication Critical patent/JPH0833878B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • 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/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7896Modular architectures, e.g. assembled from a number of identical packages
    • 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/8023Two dimensional arrays, e.g. mesh, torus

Description

【発明の詳細な説明】 本発明は数学的に等価の畳込み及び相関を演算するた
めのビットスライスデジタルプロセッサに係わる。この
プロセッサはビットレベルシストリックアレイ(bit−l
evel systolic array)として形成されるタイプのプロ
セッサである。
ビットレベルシストリックアレイとして形成される公
知の畳込み及び相関用デジタルプロセッサは、1983年4
月7日公開の英国特許出願第2106287A号(参考文献1)
に記載されている。この先行特許出願では第15図〜第20
図に畳込み手段が示されている。この装置は複数のゲー
ト制御全加算器を行列状に配置したものからなる矩形ア
レイで構成される。各セルは直ぐ隣の行及び列にしか接
続されない。即ち、各セルは別のセルに最高4つまで接
続される。セルの動作は、アレイ内でのデータビット、
係数ビット、キャリビット及び累積和ビットの移動に作
用するクロック作動ラッチによって制御される。各セル
は夫々右隣及び左隣から受容した入力データビット及び
入力係数ビットの積を評価し、且つこの積を夫々右方及
び上方から受容した入力キャリビット及び累積和ビット
の積に加算する。新しいキャリビット及び累積和ビット
は形成されると左方及び下方に出力され、入力データビ
ット及び係数ビットは夫々右及び左に移動する。各係数
語は夫々のアレイ行を逐次循環するビットである。各デ
ータ語は各行を順次螺旋状に(正確にはジグザグに)通
過してアレイ内を移動する。一連のキャリは係数ビット
と共に移動し、一連の累積和はアレイの列に沿って下方
へ移動する。データは累積和の形成方向と係数及びキャ
リの伝搬方向とに対して逆に移動する。累積和の形成
は、アレイからの部分和出力を形成すべく、アレイの列
に沿って下方へカスケード状に行なわれる。同じビット
重みを持つ複数の部分和は同一アレイ行から順次送出さ
れ、出力和をフィードバックすべく構成された全加算器
により累算されて畳込み結果を構成する。
不要の部分積の発生を回避すべくデータ語及び係数語
の中にゼロビットを散在させることは、参考文献1に記
載のプロセッサの使用には不利である。この種のプロセ
ッサはいかなる時にもアレイのセルの少なくとも半分、
場合によっては3/4がゼロ部分積を計算するため、ゼロ
ビットを散在させるとアレイが非能率的になり、且つゼ
ロビットの散在を回避できるような場合に必要とされる
大きさよりはるかに大きくなるからである。
1985年2月27日公開の英国特許出願第2144245A号(参
考文献2)には更に別のビットレベルシストリックアレ
イが記載されている。この先行特許出願はマルチビット
係数を持つ2つのマトリクスの乗法を行なうための、参
考文献1と類似のアレイに係わる。このアレイでは一方
のマトリクスの行エレメントがアレイ行に沿って、他方
のアレイの列エレメントと逆の方向に伝搬し、またキャ
リビットが行に沿って移動するのではなく、各セルを繰
り返し循環するようになっている。所謂「ガードバンド
(guard band)」の使用も記載されているが、これは累
算される結果の語成長(word growth)を得るべく、係
数語をゼロビットで拡張することを意味する。
1985年5月15日公開の英国特許出願第2147721A号(参
考文献3)には、マトリクス−ベクトルの乗法を行なう
ための更に別のビットレベルシストリックアレイが開示
されている。この場合にはアレイの効率が2つの方法で
改良される。第1にアレイ出力の累算が、参考文献1の
不活性領域に対応するアレイ部分が畳込み結果に寄与す
るように行なわれる。第2にデータビット及び係数ビッ
ト間のゼロの必要が、交番クロックサイクルで隣接し合
う行上のビット移動に作用する複雑なクロック手段によ
り回避される。参考文献1及び2と同様に、被乗数ビッ
トはアレイの行に沿って逆方向に移動する。また、参考
文献2のように、キャリビットは各セルを再循環し、ガ
ードバンドによる語の拡張も使用される。
GEC Journal of Research、Vol.2,No.1、(1984年)
には、R.B.Urquhart及びD.Woodにより、ビットレベルシ
ストリックアレイにおける静的係数(static coefficie
nts)の使用という概念が紹介されている。アレイの各
セルはある係数の対応単一ビットと組合わされ、係数語
は対応アレイ行と組合わされる。セルはキャリビットを
再循環させるように構成され、データは各アレイ行に入
力されてその行上を移動する。累積和はアレイの列を下
りながらカスケード式に形成され、ガードバンドが語成
長を実現する。同じビット重みの複数の部分積は、入力
データが係数ビットに、ビット重みの上昇オーダーで出
会うのか又は逆のオーダーで出会うのかに応じて、相対
的に遅延して又は同期して種々のアレイ列から送出され
る。このような構造にすれば、複雑なクロック装置を使
用しなくてもセルの使用率又はアレイの効率が100%に
なる。
各セルは各クロックサイクル毎に積を演算し、ラッチ
は総て同様にクロックされる。しかしながら残念なこと
に、前述のようなアレイ累算法では正確な畳込み又は相
関結果が得られない。なぜなら、前述のごとき構造は種
々の結果に対応する部分和及びキャリビットの累算に誤
りが多いからである。
デジタル演算回路の分野では、可能であればコンポー
ネントを統一することが重要である。これは、小さい計
算を行うように設計された複数の集積回路をアレイ状に
つなぐか又はカスケード接続して、より大きい計算を実
施できるようにすることが可能であれば極めて容易に実
現できる。また、比較的小さい故障によってアレイ全体
が機能停止することのないようにするためには、このよ
うな集積回路アレイにある程度の故障許容性を与えるこ
とも重要であるが、その実現は極めて難しい。これは、
ウェーハスケールインテグレーション(wafer scale in
tegration)開発分野、即ちある程度の故障許容性がな
くてはウェーハの歩留りが実質的にゼロになり得るよう
な分野では特に重要な問題である。
本発明の目的の1つは故障許容性アセンブリを形成す
べくカスケード接続され得る相関又は畳込みのためのデ
ジタルプロセッサを提供することである。
本発明は、ビットパラレル、ワードシリアル、ビット
ジグザグのMビットワードデータストリームとN単一ビ
ット係数との相関及び畳込み演算を実行するビツト−ス
ライスデジタルプロセッサを提供する。本発明によれ
ば、 (1)プロセッサがN行M列の論理セルアレイを含み、 (2)各論理セルが、(a)データビット、キャリービ
ット及び累積和ビットを入力し、(b)データビットを
出力し、(c)入力データビットと各行のセルに対応す
る係数ビットとの積と、入力累積和と、入力キャリービ
ットとの総和に対応する出力累積和ビットと出力キャリ
ービットとを生成するように構成されており、 (3)セルの相互接続ラインが、アレイの行に沿ってキ
ャリービットを伝送し、データ流と縦続累積和とをアレ
イの列に沿って下降する単一方向で伝送するように構成
されており、 (4)セル相互接続ラインがクロック励起遅延手段を含
んでおり、該遅延手段は、データビットが累積和ビット
の速度の2倍又は1/2倍の速度でアレイの列に沿って下
降しキャリービットがアレイの行に沿ってデータビット
重みが増加する方向で前記累積和ビット及びデータビッ
トの両方よりも高速で伝送されるように構成されてい
る。
本明細書において「ビット伝送速度」なる用語及び該
用語に関連する表現は、物理的な移動距離でなくセル横
断速度を意味することを理解されたい。
本発明のプロセッサは4つの主要な利点をもつ。
第一に、クロック励起のとき全部のセルがリアルデー
タで演算するので効率100%であり、また公知型のオー
バーラップしない2相形クロックを1つだけ使用すれば
よい。参考文献1の従来技術と違って、入力データビッ
ト間に0ビットを挿入する必要がなく、参考文献2のよ
うに1つ置きのサイクルで隣合う行又は列の間にビット
伝送を行なうための複雑なクロック制御構成が不要であ
る。第二に、後述するごとく、より大きい計算を行なう
回路のアレイを構成するための集積回路構築ブロックに
適応し易い。特に、係数ビットスライス毎に1つのプロ
セッサを配備しタイミングとビット桁との適当な調整を
伴ってプロセッサ出力を累加することによってマルチビ
ット係数を含む計算に適応し得る。更に、プロセッサを
カスケード式に直列接続すると大きい係数セットを収納
でき、長いデータワードは各プロセッサに供給される各
バイトに分割されることによって処理され得る。第三
に、データ流と結果の流れとが単一方向の流れになるよ
うに構成されているので、クロック励起ラッチによって
高速スイッチング可能なセクションに分割された入力デ
ータ及び結果のバイパス結線を組み込んだプロセッサを
設計し得る。カスケード式に直列接続されたプロセッサ
連鎖は動作速度の低下という欠点を生じないで故障許容
性をもつことができる。何故なら、連鎖中の故障プロセ
ッサは、バイパス結線全長の時定数によって動作速度を
制限されることなくバイパスされ得るからである。かか
る設計は、データと結果とが向流的に伝送されクロック
励起バイパスラッチが計算タイミングを破壊する例えば
参考文献1のプロセッサでは可能でない。第四に、入力
データのガードバンドの延長が不要であり、このために
データスループット速度の低下という欠点も生じない。
各論理セルは夫々の定常係数ビットに対応してもよ
い。しかし乍ら好ましくは、付加的セル相互接続ライン
とクロック励起遅延手段とを配備し係数ビットが各アレ
イの行に沿ってキャリービットと同方向に同じ速度で伝
送されるように構成する。これにより行係数入力を介し
た係数のプログラミングが容易である。本発明のかかる
具体例の別の利点は、100%のセル利用率を維持し乍ら
係数のプログラミングが得られることである。例えば参
考文献3では、効率100%を達成するためには定常係数
が必要である。
本発明のプロセッサはアレイ出力をマルチビット全加
算器の第1入力に転送し得るプログラマブルな遅延手段
を含み得る。この加算器は第2プロセッサからの出力を
受信すべく構成された第2入力をもち、第3プロセッサ
の等価加算器の第2入力に接続されるべく構成された出
力をもつ。この形態のプロセッサは長いデータワード又
は係数セットを含む計算のためのプロセッサアレイ又は
マルチビット係数を含むプロセッサアレイを構成する構
築ブロックとしての使用に適する。プログラマブル遅延
手段は、種々のプロセッサからの出力の相対タイミング
を調整すべく使用されプロセッサ間の出力ビット桁の差
は適当な加算器入力結線によって修正される。
符号ビット延長が適宜付加されているならばプロセッ
サは全部が正の即ち2の補数のデータ及び係数を用いて
使用され得る。しかし乍ら、プロセッサはアレイ行に収
納され得ないキャリービットを生成しないデータを演算
する必要がある。言い替えると結果の累加によるワード
成長がアレイ寸法を超過してはならない。必要ならば、
アレイ行を半加算器で延長することによってワード成長
に適応できるようにアレイ寸法を拡大し得る。n番目の
行はlog2n半加算器(n=1,2…)又はlog2(n−1)加
算器(n=2,3…)を含み、同時に(n−1)番目の行
のキャリー出力と適当なn番目の行の半加算器の和入力
との間の遅延手段が挿入された結線を含む。
添付図面に示す以下の記載より本発明がより十分に理
解されよう。
第1図は本発明のビットスライスプロセッサ10を示
す。プロセッサ10を相関関数の演算に関して記載し解析
するが、該プロセッサは後述する如く数学的に等価の畳
込み演算にも適している。プロセッサ10は、個々のビッ
ト×▲b n▼(b=0〜3)をもつ連続する4ビット数×
n(n=0,1,2,…)のデータストリームと4つの1ビッ
ト係数ai(i=0〜3)との相関を演算するように構成
されている。この説明例ではデータと係数とを正の値に
とる。
プロセッサ10は4行4列に配置されたゲート制御全加
算論理セルアレイ12を含む。各セルを符号14で示し、各
セルの添字が行及び列の位置を示す。例えばセル14ij
i番目の行のj番目の列のセルである。プロセッサは更
に5つの半加算論理セル16を含み、該セルでも添字によ
って行及び列の位置を示す。
次に第2図及び第3図によれば、各論理セル14は、以
下の如くゲート制御全加算論理関数を計算すべく構成さ
れている。
y←y′(a.x)c′ (1.1) c←y′.c′+y′(a.x)+c′(a.x) (1.2) [式中、y′及びyは夫々、入力及び出力の累積和ビ
ット、 c′及びcは夫々、入力及び出力のキャリービット、 aは入力1ビット係数、 xは入力データビット、 −判り易くするためにビット桁及びワード数に関する添
字は省略。
各論理セル14は直上に接するセルから入力データビッ
トxと入力累積和ビットy′とを受信するように構成さ
れている。更に右隣のセルから入力係数ビットaと入力
キャリービットcとを受信するように構成されている該
セルは式(1.1)及び(1.2)の論理関数を演算し、出力
累積和ビットyとキャリービットcとを生成する。これ
らの出力ビットは、aとxとの積にc′とy′とを加算
した和に相当する。キャリー出力ビットa及び係数出力
ビットcは、夫々のクロック励起ラッチ18a及び18cを介
して左隣のセルに出力される。データ出力ビットx及び
累積和出力ビットyは、xの場合は1つのクロック励起
ラッチ18xを介しyの場合は2つのクロック励起ラッチ1
8y1,18y2を介して出力される。
第3図に示す如く、各半加算セル16は右隣及び直上の
セルからキャリー及び累積和の入力ビットc′及びy′
を夫々受信する。該セルはこれらを加算してキャリー及
び累積和の出力ビットc及びyを生成し、クロック励起
ラッチ20c、20y1及び20y2を介して左隣及び直下のセル
に出力する。半加算セル16は以下の論理関数を演算す
る。
y←y′c′ (2.1) c y′ c′ (2.2) 式中の各項は前記と同義である。
ラッチ18,20の各々は、アレイ12の全部のセル14と半
加算器16とのタイミングを制御する(第1図に図示しな
い)1つのクロック22によって励起される。クロック22
はオーバーラップしない2相信号を発生し、各ラッチ18
又は20は直列の2つの半ラッチから成る。第1相クロッ
クパルスで、第2ハーフラッチの各々がラッチビットを
出力し第1ハーフラッチの各々が新しいラッチビットを
入力する。第2相クロックパルスで、第1ハーフラッチ
の各々がラッチビットを各自の第2ハーフラッチに転送
する。従って連続クロックサイクル中に連続ビットが各
ラッチでクロック制御される。セル14及び16は各自のセ
ル出力に18aの如き全ラッチを有するが、これがセル入
力に配置されてもよく、又は入力及び出力に夫々半ラッ
チずつ分割されても、同様のアレイ動作が維持される。
また、各全ラッチの代わりに半ラッチを使用することも
公知であり、これは記載の具体例の変形例になる。かか
るラッチの動作はビットレベルシストリックアレイ業界
で十分に公知であり、参考文献1の第10図及び第11図に
示されているので本文では特に説明しない。
ラッチ18及び20のクロック制御効果は、係数ビットa
と連続計算されたキャリービットcとをアレイの行に沿
って1クロックサイクルに1セルずつ矢印24及び26で示
すように転送することである。データビットxは1クロ
ックサイクル毎に1セルずつ移動する。係数およびデー
タビットは不変化でアレイ12を通過するが、新しく計算
されたキャリービットの各々は、左隣のセル14又は16に
よって1クロックサイクル後に演算される1レベル上の
ビット桁の計算のための入力になる。
新しく計算された出力累積和ビットyの各々は、2ク
ロックサイクル後に直下のセル14又は16の入力y′にな
る。その他のビットは1つのラッチ18a,18c,18x又は20c
しか通過しないのにこれらのビットの各々が2つのラッ
チ18y1と18y2又は20y1と20y2とを通過するからである。
プロセッサ10は、4つの隣接セルに完全に接続された
5つだけの論理セル1412,1411,1422,1421及び1624
含む。セル1400〜1403,1614,及び1625のy′入力はO
に設定されている。セル1400〜1430のc′入力はOに設
定されている。セル1403〜1433は未接続の係数即ちa出
力をもち、セル1403,1614,1625,及び1635は未接続の
c出力をもつ。セル1430〜1433のx出力も未接続であ
る。第1行のセル1400〜1403はx入力をもち、データは
この入力から後述する如くビットパラレル,ワードシリ
アル,ビットジグザグでプロセッサ10に供給される。第
1列のセル1400〜1430はプロセッサ10に係数を供給する
a入力をもつ。プロセッサ10からの出力は、最終行のセ
ル1430〜1435のy出力から得られる。
プロセッサ10の実際の設計では冗長セル結線と対応す
るラッチとを省略してもよい。しかし乍ら、論理セルの
タイプをできるだけ少なくするのが有利であろう。冗長
度を最小にすればプロセッサ10に2種類のセルを組込む
だけでよい。更に、半加算16の代わりにOに設定された
a及び/又はx入力をもつゲート制御全加算器14を使用
すると、更に冗長度は低くなるが1種類のセルを使用す
るだけでよい。このため、例えばコンピュータを用いた
設計技術によって集積回路を簡単に製造できるという利
点が得られる。更に後述する如く。この補数演算では第
1図のプロセッサ10の如く左側上端にスペースを残すよ
りもゲート制御全加算セルの矩形アレイを構成するほう
が有利である。
次にプロセッサ10の動作を第4,5及び6図に基いて説
明する。プロセッサ10は次式で定義される相関演算を行
なうように構成されている。
[式中、Ynは連続相関結果ワード,係数ai及びxn+1
xn〜xn+N-1の範囲の一般データワードを示す]。
第4,5及び6図によれば、単一ビット係数ワードa0〜a
3のストリーム40はプロセッサ10内で左方向に転送され
る。各係数は夫々の相関行に入力される。データストリ
ーム42はプロセッサ10内で下向きに移動し、結果ストリ
ーム44は第5図及び第6図に示されるようにプロセッサ
10の下方から出る。第4図は演算の第1クロックサイク
ルの直前のプロセッサ10を示し、第5図及び第6図は第
11サイクル及び第14サイクルに於けるデータ及び結果の
ビット位置を示す。第4図〜第6図はデータ流及び係数
流のタイミングと結果の累積とを図式的に示す。
プロセッサ10の上方又は右方に伸びる連続ビット位置
は、次第に遅くなるデータ入力、結果出力又は係数入力
を示す。係数,データ及び結果のストリーム40〜44の対
角線立上がり40′,42′及び44′はプロセッサ10への時
間ジグザグビット入力を示す。データワードxn+iは、ワ
ードシリアル,ビットパラレル及び累積時間ジグザグに
プロセッサ10に入力される。従って、ビット▲x0 0▼〜
▲x3 0▼は隣接セル間で1クロックサイクルの遅延を伴
なって第1行のセル1400〜1403に入力される。従ってセ
ル140n(n=1〜3)への入力▲xn 0▼はセル1400への
入力▲x0 0▼にnクロックサイクルだけ遅れる。
式(1)の論理関数によって、第4図から1クロック
サイクル後、即ち、クロックサイクル1でセル1400は入
力▲x0 0▼及びa0を受信する。その結果このセルは積a0
▲x0 0▼を計算しこれにキャリー及び和の入力ビット即
ちc′及びy′を加算する。これらは常時0である。従
って対応する累積和出力yはa0▲x0 0▼でありセル1401
へのキャリー出力cは0であろう。クロックサイクル3,
5及び7において、セル1410〜1430はデータ入力▲x
0 1▼,▲x0 2▼及び▲x0 3▼を受信し、これにa1,a2及び
a3を夫々乗算する。対応するキャリー入力は全て0であ
るが、各セル14n0(n=1〜3)は、2サイクル以前に
直上のセル14(n-1)0によって計算された累積和出力を累
積和入力として受信する。2サイクルの遅延は夫々のラ
ッチ18y1及び18y2によって得られる。従ってセル1410
サイクル3で被乗数a1及び▲x0 1▼の入力と同期してセ
ル1400からa0▲x0 0▼を受信し、 の最下位ビット(lsb)とより高い桁のビット(hob)と
から成るy及びc出力を生成する。キャリービットcは
サイクル4でセル1411に移り、累積和出力ビットyはサ
イクル5でセル1420に移る。セル1420はサイクル5で のlsb及びhobとしてy及びcを生成する。cはサイクル
6でセル1421に移り、yはサイクル7でセル1430に移
る。これは被乗数a3及び▲x0 3▼の入力と同期する。従
ってサイクル7でのセル1430のy及びc出力は のlsb及びhobである。サイクル7でのセル1430の累積和
出力は次式で示される。
式(4)は次式と等価である。
式(5)は級数Yn(n=0,1…)の第1相関項たるY0のl
sbである。従って、右端列のセル1400〜1430は第4図か
ら7クロックサイクル後にY0のlsb▲y0 0▼を生成する。
累積和出力と直列に2つのラッチが存在するので▲y0 0
▼はこの図から8クロックサイクル後にセル1430のラッ
チ18y2から送出される。
次に第2列のセル1401〜1431について考察する。サイ
クル2でセル1401はc′及びy′入力0を▲x1 0▼及びa
0被乗数入力と共に受信する。従って該セルは、左隣の
セル1402に対してキャリー出力0を発生し、直下のセル
1411に対してy出力a0▲x1 0▼を発生する。サイクル4,
6,8でセル1411,1421及び1431は夫々、a1/▲x1 1▼,a2
/▲x1 2▼及びa3/▲x1 3▼を受信する。従ってサイクル
9でのセル1431の第2ラッチ18y2のy出力は次式で与え
られる。
即ち ▲y1 0▼はY0の最下位の1つ上の桁のビットでありサイ
クル9で第2列のセル1401〜1431から送出されるか又は
第1列のセルからlsb▲y0 0▼の1クロックサイクル後に
送出される。
▲y1 0▼形成中に発生したキャリービットは次式に従
って第3列のセル1402〜1432に転送される。サイクル3,
cell 1402:c′=0 (8.1) 同様の解析によってサイクル10及びサイクル11で▲y2
0▼及び▲y3 0▼が第3列及び第4列のセルから発生し、
同時にキャリービットが前記の如く左方向に転送される
ことが理解されよう。
第1行のセルへのc′及びy′入力は全て常に0であ
る。任意の4ビット数とa0(1又は0に等しい)との乗
算によって得られる積の最大値は同数4ビットの長さを
もつ。従って第1行の最終セル1403のc出力は常に0で
ある。第2行の最終セル1413のc出力は2つの4ビット
数の加算によって得られるので0でないこともある。半
加算セル1614はこのキャリービットをアレイの第3行に
転送するように構成されている。第3行及び第4行は夫
々、6ビットに加算され得る夫々3つ及び4つの4ビッ
ト数を加算するので、2つのキャリービットを使用する
必要がある。一般に、N番目の相関行(N=1,2,3又
4)は横に進むキャリービットを加算するために、log2
N半加算器を組込む必要がある。但し、log2Nは必要な場
合、丸めて整数にしてもよい。この効果は第6図に示さ
れる。第6図においては、第4桁及び第5桁のビット即
ち▲y4 n▼又は▲y5 n▼(n=0,1,2…)が、夫々半加算
器から成る第5列及び第6列によって計算されている。
回路を小型化するために、半加算器1614及び1625に代え
て単一クロック制御ラッチを使用してもよい。これらラ
ッチは入力和と出力キャリーとが接続していないとき単
独で遅延を与える機能をもつ。従って、一般にはN番目
の相関行がlog2(N−1)半加算器[但しN=2,3,…]
を必要とするであろう。サイクル12及び13で第4列及び
第5列の最終行の半加算セル1634及び1635から最終2ビ
ット▲y4 0▼及び▲y5 0▼が夫々発生する。
前記の解析により、Y0の第p桁のビット▲yp 0▼が第
4図から(p+8)サイクル後にセルのp番目の列から
発生することが理解されよう。[但しp=0〜5]。こ
の解析を拡大してYn(一般相関結果)のp番目のビット
▲yp n▼が第4図から(n+p+8)サイクル後にp列
目のセルから生成されることを容易に証明できる。従っ
て連続相関結果Ynは8クロックサイクルの待ち時間でプ
ロセッサ10からワードシリアル,ビットパラレル的に生
成される。即ち、対応データビットの入力後、結果ビッ
トを得るまでに8サイクルが必要である。
第1図から第6図に基いて説明した本発明の具体例
は、移動する単一ビット係数を使用するプロセッサであ
る。このタイプのプロセッサは種々の相関を演算するた
めに係数を時々交換することが望ましい場合には適して
いる。しかし乍ら常に一定の相関が必要である場合に
は、各セルが定常的で且つ恐らくはプレプログラムされ
た係数を夫々有するであろう。この場合、係数転送用の
セル間結線及びラッチは不要であろう。
再び第4図を参照すると、プロセッサ10からの正しい
計算結果の出力に先行して少数の不要項が存在すること
が理解されよう。特にセル1430は図示サイクルの4サイ
クル後にa3と▲x0 0▼との関を計算するであろうが、こ
れは無意味な結果である。演算の最初の7サイクル間は
セル1430からの結果を無視し、最初の8サイクル間はセ
ル1431からの結果を無視する必要があり、その後も同様
である。必要ならばこのために、各場合に適当数のサイ
クル中の出力を抑止するように構成された手段を配備し
てもよい。しかし乍ら実際にはプロセッサ10は極めて多
数のサイクル、通常は106を上回るサイクルにわたって
演算を実行する。
従って、数百万の結果のうちでは最初の短い級数のい
くつかの無意味な結果が存在しても問題はない。これ
は、デジタル演算回路業界で公知の回路設定時間に対応
する程度にすぎない。
初期結果を無視する方法の変形例として、第4図に示
すように、不要項に対応する係数入力を0に設定しても
よい。このためにはプロセッサ10のn番目の行に係数an
を入力する前に2n個の0(n=0〜3)を入力する必要
がある。言い換えると、係数の入力以前に必要な0の数
はプロセッサ内で1行下降する毎に2つずつ増加する。
従って第1行には0を入力しない。これはまた、不要項
を導入しないで係数セットを交換する方法を示す。係数
a0〜a3を係数b0〜b3に交換するためには、(n−1)番
目の行のan-1がbn-1に交換されてから2クロックサイク
ル後にn番目の行へのanの入力をbnに交換する。第4図
では係数が0からa0〜a3に交換される場合が示されてい
る。
次に第7図を参照する。第7図は本発明の別のプロセ
ッサ50の概略図であり、前出の部分を同じ参照符号で示
す。これは、より複雑な計算に適応するように補助手段
を備えたプロセッサ10を組込んでいる。最終行のセル14
30〜1635は累積和出力30を有し、この出力はプログラマ
ブルクロック励起遅延ユニット52を介して11ビットクロ
ック励起全加算器54に接続されている。最終行のデータ
出力28はデータ出力ライン560〜563に接続されている。
加算器54は別々の11個の1ビット加算セル580〜5810
有し、その1つが第8図により詳細に示されている。各
加算セル58は第1及び第2の和入力60a,60bとキャリー
入力62とキャリー出力64と和入力66とをもつ。和入力60
a,60b及びキャリー入力62は夫々クロック励起される1
ビットラッチ68a,68b,68cと直列である。キャリービ
ットは加算器54に沿って左方向、例えば加算セル58n
ら加算セル58n+1(n=0〜10)に転送される。加算セ
ル58nはn番目の桁のビットを受信及び発生し、アレイ
セル143n(n=0〜3)又は163n(n=4又は5)から
の出力を受信すべく接続された第1入力60aをもつ。加
算セル586〜5810の第1入力は0に設定されている。従
ってプロセッサ10は、最下位から6桁の第1入力を11ビ
ット加算器54に与える。
加算セル580〜5810の第2入力60bは入力ライン700〜7
010に夫々接続されている。加算器出力66は夫々の出力
ライン720〜7210に接続されている。遅延ユニット52は
同様にプログラマブルな数のクロックサイクルによって
プロセッサ10の最終行のセルの各々からの信号を遅延さ
せるように構成されている。ユニット52は例えば、アレ
イの各出力毎に直列の1ビットクロック励起ラッチを含
んでおり、直列ラッチの数は所望の遅延に応じて変更で
きる。
プロセッサ10と遅延ユニット52と加算器54の全部のラ
ッチとは、(図示しない)同じ2相クロックによって同
期的に励起される。
プロセッサ50は以下の如き演算を行なう。相関は加算
演算であるから、正確なタイミングとビット桁とを与え
ることができれば、演算をサブ計算に分割し後で再結合
することが可能である。遅延ユニット52は、正確なタイ
ミングを与え、11ビット長の加算器54はビット桁の調整
を与える。これに関しては個々の場合について後述す
る。プロセッサ50は、全部が同じ2相クロックで励起さ
れる同様のクロック群と共に使用されるように構成され
ている。
12の単一ビット係数a0〜a11を含む相関が必要なら
ば、3つのプロセッサ50を使用する。データは第1プロ
セッサに導入され、第1プロセッサを通過しデータ出力
ライン560〜563を介して第2プロセッサに転送される。
データストリームは前記の如く、ビットパラレル、ビッ
トジグザグでワードシリアルである。同様にして、第2
プロセッサのデータ出力は第3プロセッサの入力にな
る。第1プロセッサは係数a0〜a3で演算し、第2プロセ
ッサは係数a4〜a7、3つのプロセッサは係数a8〜a11
演算する。3つのプロセッサの遅延ユニット52は、第1
プロセッサの出力が14クロックサイクル遅延し、第2プ
ロセッサからの出力が7クロックサイクル遅延し第3プ
ロセッサからの出力が遅延0になるように設定されてい
る。第1プロセッサ加算器54の第2入力60bは全て0に
設定されており、その出力ライン720〜7210はライン700
〜7010を夫々介して第2プロセッサ加算器54の第2入力
60bに接続されている。同様に、第2プロセッサ加算器5
4の出力ライン720〜7210は第3プロセッサ加算器の入力
ライン700〜7010に接続されており、その出力ラインが
所望の相関結果を与える。
3つのプロセッサ50のこのような構成が所望の12の係
数計算を与えることは以下の如く確認できる。再び第1
図から第6図を参照すると、プロセッサ10は1つの結果
を出すために8クロックサイクル、即ち各行に2サイク
ルを必要とする。12行をもつ同様のプロセッサは1つの
結果を出すために24サイクル必要であろう。後者のプロ
セッサを同じデータを順次的に受信する3つの4行プロ
セッサに分割すると、第1プロセッサは8サイクル後に
結果を与え、第2プロセッサは16サイクル後、第3プロ
セッサは24サイクル後に結果を与える。従って、隣合う
プロセッサの出力の間に8サイクルの相対遅延が存在す
る。更に、各11ビット加算器54はクロック制御ラッチを
もつので1つの加算を行なうためには1クロックサイク
ルを要する。加算器54の効果は、1段に1クロックサイ
クルずつ相対遅延を短縮することである。従ってプロセ
ッサ遅延ユニット52の各々は後続プロセッサの数と7と
の積に等しい数のクロックサイクルの遅延を導入する必
要がある。従って第1及び第2のプロセッサの遅延ユニ
ット52は夫々、14クロックサイクル及び7クロックサイ
クルの遅延を与える必要がある。より一般的には、各々
がM行をもつN個のプロセッサの連鎖でn番目のプロセ
ッサの遅延ユニットは(2M−1)(N−n)クロックサ
イクルの遅延[但し、n=1〜N]をもつように設定さ
れる。
各々が6ビット出力を与える3つのプロセッサ50の場
合、和入力の最大値は8ビットである。これは、加算器
54の幅より3ビットだけ小さい。従ってより長いプロセ
ッサ連鎖を収納し得る。
また、マルチビット係数が複数のプロセッサ50によっ
て収納されてもよい。例えば3ビット係数では3つのプ
ロセッサ50が使用される。第1プロセッサは各係数のms
b(最上位ビット)を受信し、第2プロセッサは最下位
の1つ上の桁のビットを受信し、第3プロセッサはlsb
(最下位ビット)を受信する。従って、各プロセッサ毎
の係数セットは、マルチビット係数セットの夫々のビッ
トスライスである。データストリームは、前記の直列デ
ータ流配列と対称的に並列の3つのプロセッサ全部に同
期的に供給される。第3プロセッサはビット桁0〜5の
出力を生成し、第2プロセッサは1〜6、第1プロセッ
サは2〜7の出力を生成する。これは、これらプロセッ
サが夫々、桁0,1及び2の係数ビットを乗算するからで
ある。異なるビット桁を補正するために、第1プロセッ
サ加算器出力ライン720〜729は第2プロセッサの加算器
入力ライン701〜7010に夫々接続されている。第1プロ
セッサの出力ライン7210は未接続であり、第2プロセッ
サの入力ライン700は0に接続されている。ビット桁の
加算シフトを実行するために第2プロセッサの加算器出
力と第3プロセッサの加算器入力との間にも同様の接続
が行なわれている。これにより、第1及び第2のプロセ
ッサの出力は夫々、第3プロセッサの出力に対して2段
階及び1段階のビット桁シフトをもつ。その結果例え
ば、第1プロセッサの第1列即ち右端列の出力は第2及
び第3プロセッサの夫々第2列及び第3列からの出力に
加算される。しかし乍ら、再び第5図を参照すると、プ
ロセッサ10の隣合う列の出力間には1クロックサイクル
の相対遅延が存在する。3つのプロセッサ全部にデータ
が同期的に供給されるので、例えば第2プロセッサの第
2列の出力と第1プロセッサの第1列の出力との間に同
様の遅延が存在する。これに対して、第1プロセッサの
出力は出力加算器54で1サイクル遅延しており、第2プ
ロセッサの出力は第2プロセッサの加算器で更に1サイ
クル遅延する。従って双方のプロセッサは第3プロセッ
サの出力に合せて加算のタイミングを補正するための適
当な遅延を生じる。
従って3つのプロセッサ全部の遅延ユニット52は遅延
0に設定される。
6ビット、7ビット及び8ビットの3つの数を加算し
て得られる最大値は9ビットの長さであり、これは第3
プロセッサ出力加算器の11ビット内に容易に収納され
る。
また、前記のプロセッサ10は4ビットデータのみに適
しているが、4ビットより大きい幅のデータワードを使
用する必要が生じるかもしれない。より広いアレイも使
用できるが、多数のプロセッサ50を使用してもよい。8
ビットデータワードには2つのプロセッサ50が使用され
る。上4桁のビットは第1プロセッサに供給され、下4
桁のビットは第2プロセッサに供給される。第1プロセ
ッサの加算器出力ライン720〜726は第2プロセッサの加
算器入力ライン704〜7010に接続され、第1出力ライン7
27〜7210は未接続であり、第2入力ライン700〜703は0
に設定されている。これによりビット桁の4段相対シフ
トが行なわれる。相対遅延の調整はデータ入力タイミン
グに従う。8ビット全部についてデータが隣合うビット
間に1ビットの時間ジグザグを伴って入力されるなら
ば、第1プロセッサ加算器によって導入された1クロッ
クサイクルの相対遅延に対する調整を要するだけであ
る。この場合、第2プロセッサ遅延ユニット52は1サイ
クルの遅延を与えるように設定される。しかし乍ら、ビ
ットジグザグが各4ビットワード部分だけに存在し両方
のプロセッサへの入力が同期であると、第1プロセッサ
の出力は4ビット遅延を必要とする。これを得るために
は、第1プロセッサ遅延ユニット52が3サイクルの遅延
を与えるように設定し、第2プロセッサの遅延を0に設
定する。この変形例として、入力データ遅延を与えるこ
とによって等価の出力遅延効果をもつ構造が得られる。
遅延ユニット52の使用に対する変形例として、同様の
遅延ユニットを加算器54の第2入力700〜7010と直列、
又は加算器出力720〜7210と直列に配備してもよい。必
要な遅延クロックサイクル数は遅延ユニットの位置に依
存する。
この構成においては、第2プロセッサが10ビット及び
6ビットワードの和の出力を与える。これは最大値11ビ
ットをもつ。従ってこの具体例では、全幅の出力加算器
54が必要である。幅4Nビットのデータワードを含む演算
を行なう必要があるときは、少なくとも最終プロセッサ
において、より大きい出力加算器(4N+3)ビット幅が
必要であろう。しかし乍ら、個々の論理セルアレイの各
々は第1図及び第7図に示すセル14及び16をもつだけで
よい。これは、54の如き出力加算器による1段毎の累算
の利点を示す。各論理セルアレイは、プロセッサ10は4
から6までのような限定量のワード成長を収納するよう
に構成されるだけでよい。より大きい演算は出力加算器
を用いて別々に累算される。
前記の記載より、データワード長の延長、マルチビッ
ト係数の使用及び相関長さの延長が全て、プロセッサ50
の如き適当数のプロセッサを使用することによって得ら
れることが理解されよう。厳密には、組合せプロセッサ
50における第1出力加算器54は不要である。しかし乍
ら、デジダル演算回路の設計においては、この場合各々
が出力加算器を含む1つの構築ブロックに標準化するの
が便利である。
第9図は本発明の別のプロセッサ90の概略説明図であ
る。これは、第7図及び第8図のプロセッサ50と等価の
プロセッサにバイパス手段を付加したもので、等価の部
分は同じ参照符号で示される。必要以上に複雑な図にな
らないように多数のライン接続はバスとして示されてい
る。プロセッサ90はプロセッサ50を含む。入力データバ
ス92はプロセッサ50と第1マルチプレクサ96との双方に
接続され、後者には2つのクロック励起遅延ラッチ94a,
94bのバンクを介して接続されている。プロセッサ50か
らのデータ出力はバス98を介してマルチプレクサ96に入
る。マルチプレクサ96はデータ出力バス100をもつ。マ
ルチプレクサ96は、制御入力102の信号が0であるか1
であるかに従って出力バス100をバス92又は98に接続す
る。
結果の入力バス104は出力加算器54と第2マルチプレ
クサ106との双方に接続されており、後者には2つのク
ロック励起遅延ラッチ108a,108bのバンクを介して接続
されている。第2マルチプレクサ106はまた、加算器出
力バス110と結果の出力バス112とに接続されている。結
果の出力バス112は制御入力114の信号が0であるか1で
あるかに従って結果の入力バス104又は結果の出力バス1
12に接続されている。
第9図のプロセッサ90は以下の如く作動する。これは
同様のプロセッサの連鎖の一部として構成され、隣合う
2つのプロセッサは鎖線116及び118で示されている。プ
ロセッサ50が無故障のとき、マルチプレクサ96及び106
に論理1の制御入力信号が供給され、動作モードは前記
と同様である。しかし乍らプロセッサ50に故障があると
き、論理0の制御入力がマルチプレクサ96,106に供給さ
れ、入力データと結果とはラッチバンク94a,94b,108a及
び108bを介してプロセッサ50からバイパスされる。ラッ
チバンクの各々は、対応するバスの各ラインに対し1サ
イクルの遅延を与える。(図示しない)個々のラッチは
前記ラッチと等価であり、プロセッサ50に使用されるの
と同じクロックで励起される。
従って、故障プロセッサ50はデータ及び結果の流れに
2クロックサイクルの遅延を導入するラッチバンクを介
してバイパスされる。従って、データ流及び結果の流れ
は等しい遅延を生じ、それまでと同様に同期を維持す
る。更に最も重要なことは、バイパスバスの各々がラッ
チバンクによって比較的短い3つのセクションに分割さ
れることである。必要ならば、更に細かく分割するため
に付加的バイパスラッチを挿入してもよい。この利点
は、バイパスバスの各セクションが十分に短く、プロセ
ッサ50と少なくとも同じクロック周波数でスイッチング
できることである。プロセッサ50は現状の集積回路技術
を用いて製造でき、20MHz以上の高いクロック周波数で
作動できる。高いクロック周波数で作動できる理由は、
例えば第1図の論理セル14と16との間の結線が隣合うセ
ル間にのみ存在するからである。しかし乍ら必然的にバ
イパスバスの長さが大幅に遅延され、これに対応してRC
時定数が大きくなる。かかる時定数は直列プロセッサ連
鎖の最大周波数を好ましくない低い値に制限する。従っ
て、バイパスバスを高速スイッチング可能なセクション
に細かく分割しないとき、故障プロセッサをバイパスす
ることによって最大クロック周波数の急激な下降が生じ
るであろう。第2図及び第3図のクロック22の周波数を
下回る程に周波数が減少すると、直列連鎖は1つのプロ
セッサがバイパスされていても機能しないであろう。従
って、クロック励起ラッチによって高速スイッチング可
能なセクションに細分されたバイパスバスを使用する
と、動作速度に不利な影響を与えることなく故障許容性
プロセッサを構成することが可能である。
典型的な故障許容プロセッサ連鎖は、例えば4つのプ
ロセッサを要する演算のために直列の5つのプロセッサ
90を組込んでいる。従って任意の1つの故障プロセッサ
又は不要プロセッサをバイパスできる。より大きい故障
許容範囲が必要なときは、付加的プロセッサを追加し得
る。参考文献1に記載の如き従来のプロセッサは、動作
速度を低下させないで故障許容範囲を得るこのような構
成を用いることはできない。その理由は、本発明によれ
ばデータと結果とが同方向でプロセッサ10又は連鎖プロ
セッサ90を通過するからである。バイパスラッチはデー
タストリームと結果ストリームとを等しく遅延させ、両
者間に相対遅延は導入されない。従って故障プロセッサ
のバイパスによって、連鎖の先行プロセッサから後続プ
ロセッサまでのデータストリームと結果ストリームとの
相対的タイミングが維持される。参考文献1に記載のプ
ロセッサはデータと結果とが向流的に移動するように設
計されている。かかる連鎖デバイスでは中央プロセッサ
が一方の隣接プロセッサからデータを受信し他方の隣接
プロセッサから結果を受信する。これら隣合うプロセッ
サの1つをラッチ付きバスでバイパスするときは、デー
タストリーム又は結果ストリームの一方が中央プロセッ
サで遅延されるが、両方が遅延されることはできない。
このため演算のタイミングが破壊され無意味な結果が発
生する。その結果、高速故障許容性プロセッサ連鎖の構
造を従来技術の向流アーキテクチャーの使用によって得
ることはできない。このような構造を得るためには、単
一方向のデータ流及び結果の流れが生じるように構成さ
れた本発明のプロセッサを使用する必要がある。これが
本発明の重要な利点である。現在、集積回路技術はウェ
ーハ規模の集積に移りつつあり、ここでは高速故障許容
性アーキテクチャーが不可欠である。ある程度の故障許
容性がないと、ウェーハ規模の回路効率が実質的に0に
なる。何故なら、数百個の素子を担持するウェーハで1
つの故障素子が生じるとウェーハ全体の作動が無効にな
るからである。
次に第10図を参照する。第10図では第2図と等価の素
子を200を加えた同じ参照符号で示す。これは、プロセ
ッサ10,50又は90での使用に適した変形例のゲート制御
全加算器論理セル214である。セル214とセル14との唯1
つの違いは、セル214が2つのデータ出力ラッチ218x1
び218x2をもち唯1つの結果出力ラッチ218yをもつこと
である。セル214は第1図のセル14と完全に等しい相互
接続を伴う(図示しない)プロセッサで使用される。論
理セル214を組込んだプロセッサでは結果がデータの2
倍の速度で移動する。プロセッサへの係数入力は第4図
〜第6図と逆の順序で行なわれる。例えば相関係数a0
a3は、第4図の如くセル1400〜1430でなくセル1430〜41
00に夫々入力される。前記と同様にプロセッサの動作を
解析すると、セル214を組込んだプロセッサへの係数入
力の流れ図から相関計算が得られることが理解されよ
う。この解析は前記と同様であるからここでは説明しな
い。係数セットの交換方法が若干異なっている。即ち、
第4図では隣合う行間の係数セットの交換に2クロック
サイクルの遅延が導入されるが、第10図では1クロック
サイクルの遅延が導入される。データ流が遅く結果の流
が速いことを補償するために、セル214を組込んだプロ
セッサ50,90のアレイでは、前出のアレイに比較して結
果累算タイミングの調整が必要である。必要な調整はデ
ジタルエレクトロニクスの当業者に明らかであるからこ
こでは説明しない。
本発明のプロセッサは、2つの補数データ及び/又は
係数を伴って動作するように構成されている。これまで
に記載の具体例は4ビットデータストリームを使用す
る。これが2の補数形のとき、各入力データワードが出
力結果と同じ幅をもつまで符号ビット又は最上位ビット
を複製する必要があろう。従って、6ビットの入力デー
タが必要であろう。より詳細には、ビットabcdをもつ2
つの補数形の4ビットデータワードがaaabcdで示され
る。プロセッサ10は6ビット入力を受信しない。第1図
の4×4のゲート制御全加算器アレイと5つの半加算器
との代わりに、4×6のゲート制御全加算器アレイが第
1図の相互結線を伴って使用される。かかるアレイは4
ビットで正のデータ全部を演算するプロセッサ50と同様
に、6ビットに延長された2つの補数データ符号ビット
を4ビットで演算する。一般に、所要アレイの形状は矩
形であり、各行のセル数は最終行からの出力結果のビッ
ト幅に等しい。
また、第7,8及び9図に記載の如く構成されたマルチ
プルプロセッサにこの補数データを収納してもよい。加
算器54と等価の1つの出力加算器に供給される結果、及
び、1バイト入力データ又は別々に処理すべく複数バイ
トに分割された最上位バイトに対して、符号延長部を与
える必要がある。特に、出力加算器に入る符号ビットを
含む結果は、総合結果の完全幅まで符号延長される必要
がある。総合結果は、集合プロセッサの最終出力加算器
から得られる。
本発明のプロセッサでもこの補数係数を使用し得る。
単一ビット係数の場合、乗算は0又は1によって行なわ
れ後者は負である。0が正の寄与を与えないので結果は
完全に負である。従って計算は全部が正の係数の場合と
等価である。マルチビット係数の場合、最上位のプロセ
ッサだけが負の係数を含み、その結果は完全に負であ
る。この結果のこの補数は公知のゲート制御手段によっ
て使用され、最終出力加算器に入力される前に総合結果
の完全幅まで符号延長される。
この補数のためのデジタル演算回路の原理は公知であ
るから、ここでは詳しく説明しない。
プロセッサ50と同様のマルチプルプロセッサは、各々
が各結果のビット幅に等しい数のセルを各行に含むゲー
ト制御全加算セルの矩形アレイを組込んでいるならば、
この補数データを使用し得る。別々に処理するために入
力データが個々のバイトに分割されている場合、最上位
バイトを受信するプロセッサの出力結果の最上位ビット
は、総合結果、即ち第4図の加算器54と等価の最上位出
力加算器からの結果出力の完全幅まで符号延長される。
本発明の具体例を相関に関して説明したが、これを畳
込みに使用することも可能である。これは例えば参考文
献1に記載されており、以下の如く算出される。畳込み
演算は次式で定義される。
相関演算は次式で定義される。
式(9)より、4点計算(N=4)の第5番目の畳込
み結果Y4は以下の如く与えられる。
Y4(畳込み)=A0X4+A1X3+A2X2+A3X1 (11) 式(10)より、4点計算の2番目の相関結果Y1は以下
の如く与えられる。
Y1(相関)=A0X1+A1X2+A2X3+A3X4 (12) 式(12)の右辺の順序を逆にしてBi=A3-i、i=0〜
3を代入すると Y1(相関)=B0X4+B1X3+B2X2+B3X1 (13) である。
式(11)と(13)とは等価であり、畳込みと相関とが
等価の数学的演算であることを示す。係数セットによる
データの畳込みは、逆の順序で同じ係数を用いた同じデ
ータの相関と等価である。所与の係数セットA0〜Akの場
合、係数ワードA0が最初の行又は最終行のいずれから入
力開始されるかに従って本発明のプロセッサが畳み込み
演算又は相関演算を行なう。この逆のことが第10図のセ
ル214を組み込んだプロセッサに用いられる。畳込み結
果級数の最初の若干の項は対応する相関級数には無いと
いう少しばかりの相違がある。例えば式(10)は(9)
のY0〜Y2を生成することはできない。しかし乍ら実用上
はこのことが重要でないデジタル演算回路は極めて多数
の結果を生成すべく使用されるので、例えば数百万の級
の初端でいくつかの結果が付加されたり欠如していても
これを無視してもよい。
【図面の簡単な説明】
第1図は相関演算を実行すべく構成された本発明のプロ
セッサの概略説明図、第2図及び第3図は夫々、第1図
のプロセッサのゲート制御全加算セル及び半加算セルの
詳細図、第4図、第5図及び第6図は第1図のプロセッ
サにおけるデータ流と結果との夫々のクロックサイクル
でのタイミングを示す説明図、第7図は、大型計算機用
プロセッサアレイを構成するために出力遅延手段と解累
算手段と共に第1図のプロセッサを含む本発明のプロセ
ッサの概略説明図、第8図は第7図の累算手段に使用さ
れる全加算セルの詳細図、第9図は故障許容性プロセッ
サアレイを構成するために必要なバイパス結線を伴う第
7図のプロセッサの概略説明図、第10図は第1図のプロ
セッサで使用されるゲート制御全加算セルの変形例の説
明図である。 10……プロセッサ、12……アレイ、14……論理セル、16
……半加算セル、18,20……ラッチ、22……クロック、5
2……遅延ユニット。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 リチヤード・アンソニー・エバンス イギリス国、ヒアフオードシヤー・エイ チ・アール・8・1・ジエイ・ジエイ、レ ドベリイ、コデイントン、ニユー・クラフ ト(番地なし) (72)発明者 ジョン・グラハム・マクウアーター イギリス国、ウスターシヤー・ダブリユ・ アール・14・4・ピイ・エス、ウエルズ、 アルバーン、ムーアランズ・27

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】ビットパラレル、ワードシリアル、ビット
    ジグザグのMビットワードデータストリームとN単一ビ
    ット係数との相関及び畳込み演算を実行するデジタルプ
    ロセッサであって、 (a)プロセッサがN行M列の論理セルアレイを含み、 (b)各論理セルが、(i)データビット、キャリービ
    ット及び累積和ビットを入力し、(ii)データビットを
    出力し、(iii)入力データビットと各行のセルに対応
    する係数ビットとの積と、入力累積和と、入力キャリー
    ビットとの総和に対応する出力累積和ビットと出力キャ
    リービットとを生成するように構成されており、 (c)セルの相互接続ラインが行及び列を介してビット
    を伝送するように構成されており、該ラインが、ビット
    の記憶及び伝送のためのクロック励起遅延手段を含んで
    おり、 セル相互接続ラインと遅延手段とは、累積和ビットとデ
    ータビットとがアレイの列に沿って下降する単一方向で
    一方の速度が他方の速度の2倍であるような速度で伝送
    されるように構成され、キャリービットがアレイの行に
    沿ってデータビットの重みを増加する方向で前記累積和
    ビット及びデータビットの両方よりも高速で伝送される
    ように構成されていることを特徴とするデジタルプロッ
    セッサ。
  2. 【請求項2】キャリービットの伝送速度及び伝送方向で
    アレイの行に沿って係数ビットを伝送すべく構成された
    付加的セル相互接続ラインとクロック励起遅延手段とを
    含むことを特徴とする特許請求の範囲第1項に記載のプ
    ロセッサ。
  3. 【請求項3】アレイ出力を遅延させるべく構成されたプ
    ログラマブルクロック励起遅延手段と、遅延アレイ出力
    を第2加算入力に加算すべく構成されたマルチビットク
    ロック励起全加算器とを含むことを特徴とする特許請求
    の範囲第1項又は第2項に記載のプロセッサ。
  4. 【請求項4】入力データ及び第2加算入力のためのバイ
    パス結線を含み、該結線がクロック励起ラッチによって
    再分割されていることを特徴とする特許請求の範囲第3
    項に記載のプロセッサ。
  5. 【請求項5】全加算器の幅が入力間のビット桁の相対差
    を収納するのに十分であることを特徴とする特許請求の
    範囲第3項又は第4項に記載のプロセッサ。
  6. 【請求項6】全加算器の幅がMビットのビット桁の相対
    差を収納するのに十分であることを特徴とする特許請求
    の範囲第5項に記載のプロセッサ。
  7. 【請求項7】論理セルの第n行の延長上のlog2n半加算
    器を含み、nが1からNであり必要に応じてlog2nが整
    数に丸められることを特徴とする特許請求の範囲第1項
    から第6項までのいずれかに記載のプロセッサ。
  8. 【請求項8】論理セルの第n行の延長上のlog2(n−
    1)半加算器を含み、第(n−1)行のキャリー出力と
    適当な第n行の半加算器の和入力との間の遅延手段を備
    えた結線を含み、nが2からNであり必要に応じてlog2
    (n−1)が整数に丸められることを特徴とする特許請
    求の範囲第1項から第6項までのいずれかに記載のプロ
    セッサ。
JP62049882A 1986-03-05 1987-03-04 相関及び畳込みを行なうビツト−スライスデジタルプロセツサ Expired - Lifetime JPH0833878B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB8605367 1986-03-05
GB868605367A GB8605367D0 (en) 1986-03-05 1986-03-05 Bit-slice digital processor

Publications (2)

Publication Number Publication Date
JPS62229470A JPS62229470A (ja) 1987-10-08
JPH0833878B2 true JPH0833878B2 (ja) 1996-03-29

Family

ID=10594045

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62049882A Expired - Lifetime JPH0833878B2 (ja) 1986-03-05 1987-03-04 相関及び畳込みを行なうビツト−スライスデジタルプロセツサ

Country Status (6)

Country Link
US (1) US4833635A (ja)
EP (1) EP0237204B1 (ja)
JP (1) JPH0833878B2 (ja)
CA (1) CA1263758A (ja)
DE (1) DE3776366D1 (ja)
GB (1) GB8605367D0 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2624283B1 (fr) * 1987-12-08 1992-09-18 Thomson Csf Circuit integre de calcul numerique pour calculs glissants du type convolution
FR2634084A1 (fr) * 1988-07-08 1990-01-12 Labo Electronique Physique Circuit integre et dispositif de traitement d'images
US5243551A (en) * 1989-05-17 1993-09-07 The Secretary Of State For Defence In Her Britannic Majesty's Government Of The United Kingdom Of Great Britain And Northern Ireland Processor suitable for recursive computations
US5142488A (en) * 1989-08-31 1992-08-25 General Electric Company Serial memories operated for re-ordering samples
US5138695A (en) * 1989-10-10 1992-08-11 Hnc, Inc. Systolic array image processing system
US5109356A (en) * 1990-05-29 1992-04-28 Environmental Research Institute Of Michigan Apparatus for computation of discrete Fourier transform using array parallel processor
FR2663138B1 (fr) * 1990-06-08 1992-09-11 France Etat Procede et circuit de traitement de signaux numeriques representatifs de vecteurs ou tuples de meme dimension et leur application a des ensembles de cardinalite et a des vecteurs ou tuples de dimensions quelconques.
US5280607A (en) * 1991-06-28 1994-01-18 International Business Machines Corporation Method and apparatus for tolerating faults in mesh architectures
US5513313A (en) * 1993-01-19 1996-04-30 International Business Machines Corporation Method for generating hierarchical fault-tolerant mesh architectures
US6401194B1 (en) * 1997-01-28 2002-06-04 Samsung Electronics Co., Ltd. Execution unit for processing a data stream independently and in parallel
US6732126B1 (en) * 1999-05-07 2004-05-04 Intel Corporation High performance datapath unit for behavioral data transmission and reception
US8650470B2 (en) 2003-03-20 2014-02-11 Arm Limited Error recovery within integrated circuit
US8185812B2 (en) * 2003-03-20 2012-05-22 Arm Limited Single event upset error detection within an integrated circuit
FR2895539B1 (fr) * 2005-12-22 2008-03-07 Francois Oustry Dispositif de synthese d'un signal numerique composite avec controle explicite de ses trois premiers moments
US8171386B2 (en) * 2008-03-27 2012-05-01 Arm Limited Single event upset error detection within sequential storage circuitry of an integrated circuit
US8161367B2 (en) * 2008-10-07 2012-04-17 Arm Limited Correction of single event upset error within sequential storage circuitry of an integrated circuit
US8493120B2 (en) 2011-03-10 2013-07-23 Arm Limited Storage circuitry and method with increased resilience to single event upsets

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4533993A (en) * 1981-08-18 1985-08-06 National Research Development Corp. Multiple processing cell digital data processor
US4493048A (en) * 1982-02-26 1985-01-08 Carnegie-Mellon University Systolic array apparatuses for matrix computations
GB8320362D0 (en) * 1983-07-28 1983-09-01 Secr Defence Digital data processor
GB8326690D0 (en) * 1983-10-05 1983-11-09 Secr Defence Digital data processor

Also Published As

Publication number Publication date
GB8605367D0 (en) 1986-04-09
US4833635A (en) 1989-05-23
JPS62229470A (ja) 1987-10-08
EP0237204B1 (en) 1992-01-29
EP0237204A2 (en) 1987-09-16
DE3776366D1 (de) 1992-03-12
EP0237204A3 (en) 1989-05-24
CA1263758A (en) 1989-12-05

Similar Documents

Publication Publication Date Title
US4885715A (en) Digital processor for convolution and correlation
JPH0833878B2 (ja) 相関及び畳込みを行なうビツト−スライスデジタルプロセツサ
US4639857A (en) Digital data processor incorporating an orthogonally connected logic cell array
JP3244506B2 (ja) 小型乗算器
US4639888A (en) Circuit arrangement for accelerated carry formation in an adder device
US5010510A (en) Multiplying unit circuit
EP0281132B1 (en) Vector calculation circuit capable of rapidly carrying out vector calculation of three input vectors
Elleithy et al. A systolic architecture for modulo multiplication
McWhirter et al. Multibit convolution using a bit level systolic array
EP0331717A1 (en) Fast multiplier circuit
EP0112186B1 (en) Modular high-speed multipliers, and integrated circuit chip modules for such multipliers
US5153849A (en) Multiplier having an optimum arrangement of anding circuits and adding circuits
US5883825A (en) Reduction of partial product arrays using pre-propagate set-up
JP2608600B2 (ja) 2つの数の和のパリティビットの計算装置
GB2192474A (en) Processor for correction and convolution
Ramamoorthy et al. Fast multiplication cellular arrays for LSI implementation
Satyanarayana et al. Design and fpga implementation of digit-serial modified booth multipliers
JPH0398346A (ja) セル同期回路
Fritsche A programmable cellular array
SU798863A1 (ru) Цифровое устройство дл реше-Ни СиСТЕМ АлгЕбРАичЕСКиХ уРАВ-НЕНий
GB2187579A (en) Processor for convolution and correlation
Dadda Byte-serial convolvers
SU1137479A1 (ru) Устройство дл преобразовани по функци м Уолша
JP2918945B2 (ja) 再帰的計算に適するプロセッサ
Makarenko et al. A VLSI multiprecision matrix multiplier and polynomial evaluator