JPH10254839A - Simd制御並列プロセッサおよび演算方法 - Google Patents

Simd制御並列プロセッサおよび演算方法

Info

Publication number
JPH10254839A
JPH10254839A JP9056232A JP5623297A JPH10254839A JP H10254839 A JPH10254839 A JP H10254839A JP 9056232 A JP9056232 A JP 9056232A JP 5623297 A JP5623297 A JP 5623297A JP H10254839 A JPH10254839 A JP H10254839A
Authority
JP
Japan
Prior art keywords
data
held
register
unit
output
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.)
Withdrawn
Application number
JP9056232A
Other languages
English (en)
Inventor
Kromb Jonathan
クロンブ ジョナタン
Seiichiro Iwase
清一郎 岩瀬
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP9056232A priority Critical patent/JPH10254839A/ja
Priority to US09/034,856 priority patent/US6404439B1/en
Publication of JPH10254839A publication Critical patent/JPH10254839A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Image Processing (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 小型化、低コスト化を図る。 【解決手段】 ローカルメモリ4、DFU5、選択部3
2を、プロセッサエレメント7−0乃至7−1079毎
に、ローカルメモリ4−0乃至4−1079、DFU5
−0乃至5−1079、選択部32−0乃至32−10
79で構成する。処理すべきデータのビット数をnとす
るとき、演算結果のパターンは2n個存在する。そこ
で、それぞれのパターンを記憶させた2n個の演算部3
1−0乃至31−(2n−1)を予め用意する。選択部
32−0乃至32−1079では、2n個の演算部31
−0乃至31−(2n−1)の出力の中から、DFU5
−0乃至5−1079に入力されたデータに対応するも
のを選択させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、SIMD制御並列
プロセッサおよび演算方法に関し、特に、構成を簡略化
し、より小型化、低コスト化を可能とするSIMD制御
並列プロセッサおよび演算方法に関する。
【0002】
【従来の技術】最近、画像信号をディジタル化し、復
調、画像処理、圧縮、伸長などの加工処理を施すこと
が、通常のテレビジョン受像機などにおいても行われる
ようになってきた。このような処理をプログラマブルに
実現するプロセッサとして、SIMD(Single Instruct
ion Stream/Multiple Data Stream)制御の並列プロセッ
サが知られている。この並列プロセッサは、例えば、米
国特許4,939,575に開示されている。また、本
出願人も、この並列プロセッサに関し、特願平7−24
6627号として、先に出願している。
【0003】図18は、従来のこのようなSIMD制御
並列プロセッサの原理的な構成を表している。同図に示
すように、このプロセッサは、演算されるデータと演算
された結果を記憶するローカルメモリ4を有している。
このローカルメモリ4には、例えば、処理されるべき複
数ラインの画素データが記憶される。DFU(Data Fetc
hing Unit)5は、ローカルメモリ4に保持されている画
素データの中から、演算対象とされるデータの入力を受
け、これを保持する。ALU(Arithmetic andLogic Uni
t)6は、DFU5に記憶されている画素データの供給を
受け、所定の演算を施した後、その演算結果をローカル
メモリ4に供給する。
【0004】これらのローカルメモリ4、DFU5およ
びALU6は、各画素毎に同時に並行処理ができるよう
に、複数(この構成例の場合、1080個)のプロセッ
サエレメント7−0乃至7−1079に区分されてい
る。すなわち、ローカルメモリ4、DFU5およびAL
U6は、それぞれ各プロセッサエレメント7−0乃至7
−1079を構成するように、ローカルメモリ4−0乃
至4−1079、DFU5−0乃至5−1079、およ
びALU6−0乃至6−1079に区分されている。そ
して、各プロセッサエレメント7−0乃至7−1079
毎に、独立して演算が行われる。但し、各プロセッサエ
レメント7−0乃至7−1079において行われる演算
は共通しており、その演算式は、SIMDコントローラ
1が、インストラクションコントロールバス3を介し
て、ALU6に指令する。SIMDコントローラ1のプ
ログラムは、外部からダウンロードされる。
【0005】図19は、DFU5−0とALU6−0の
構成例を表している。図示は省略するが、他のDFU5
−1乃至5−1079およびALU6−1乃至6−10
79も、このDFU5−0またはALU6−0と同様の
構成を有している。
【0006】DFU5−0は、ローカルメモリ4−0よ
り、2ビットの画素データの供給を受け、それぞれレジ
スタ11(レジスタA)とレジスタ12(レジスタB)
に保持させる。また、レジスタ13(レジスタC)は、
ALU6−0が有するフルアダー(FA)22の出力す
るキャリーオーバーのデータを保持するようになされて
いる。
【0007】ALU6−0のフルアダー22には、DF
U5−0のレジスタ11乃至レジスタ13に保持されて
いるデータが供給されている。フルアダー22は、これ
らの3つの入力の加算を行い、その演算結果生成された
和(sum)とキャリーオーバーとを、セレクタ24に
出力するようになされている。このうちのキャリーオー
バーは、DFU5−0のレジスタ13にも供給されてい
る。
【0008】セレクタ24は、フルアダー22からの2
つの入力のうちのいずれか1つを選択し、レジスタ25
(レジスタW)に出力している。セレクタ24による選
択は、インストラクションコントロールバス3を介し
て、SIMDコントローラ1により制御されている。レ
ジスタ25により保持されたデータは、ローカルメモリ
4−0に供給されている。
【0009】フルアダー22は、レジスタ11とレジス
タ12に保持されている、ローカルメモリ4−0から供
給されたデータ、およびレジスタ13に保持されている
前回の演算時に発生したキャリーオーバーのデータを加
算し、その加算結果と、新たに生成したキャリーオーバ
ーのデータをセレクタ24に出力する。キャリーオーバ
ーはまた、レジスタ13に供給され、保持される。
【0010】SIMDコントローラ1は、インストラク
ションコントロールバス3を介して、セレクタ24を制
御し、フルアダー22の、例えば加算結果(sum)を
選択させ、レジスタ25に保持させる。このレジスタ2
5に保持された演算結果は、ローカルメモリ4−0に供
給される。
【0011】SIMDコントローラ1はまた、セレクタ
24を制御して、フルアダー22の出力するキャリーオ
ーバーを選択し、レジスタ25を介して、ローカルメモ
リ4−0に出力させることができる。
【0012】以上のような演算は、他のプロセッサエレ
メント7−1乃至7−1079においても、同様に行わ
れる。
【0013】図20は、従来のSIMD制御並列プロセ
ッサの原理的な他の構成例を表しており、図18におけ
る場合と対応する部分には、同一の符号を付してある。
この構成例では、SIMDコントローラ1がデータコン
トロールバス2を介してDFU5を制御するようになさ
れている。そして、DFU5−0とALU6−0は、図
21に示すように構成されている。図示は省略するが、
他のDFU5−1乃至5−1079およびALU6−1
乃至6−1079も、このDFU5−0またはALU6
−0と同様の構成を有している。
【0014】DFU5−0は、ローカルメモリ4−0よ
り、2ビットの画素データの供給を受け、それぞれレジ
スタ11(レジスタA)とレジスタ12(レジスタB)
に保持させる。セレクタ15は、予め設定されている値
1、レジスタ11に供給されるデータ、およびレジスタ
14(レジスタM)に保持されているデータの中から、
1つのデータを選択し、レジスタ14に供給するように
なされている。このセレクタ15が、3つの入力のいず
れを選択するかは、データコントロールバス2を介し
て、SIMDコントローラ1により指示される。また、
レジスタ13(レジスタC)は、ALU6−0が有する
フルアダー(FA)22の出力するキャリーオーバーの
データを保持するようになされている。
【0015】ALU6−0のアンド回路20は、レジス
タ11とレジスタ14に保持されているデータの論理積
を演算するようになされている。イクスクルーシブオア
回路21は、アンド回路20の出力と、インストラクシ
ョンコントロールバス3を介してSIMDコントローラ
1より供給されるデータとの排他的論理和を演算し、そ
の演算結果をフルアダー22に出力している。フルアダ
ー22にはまた、DFU5−0のレジスタ12とレジス
タ13に保持されているデータが供給されている。フル
アダー22は、これらの3つの入力の加算を行い、その
演算結果生成された和(sum)とキャリーオーバーと
を、セレクタ24に出力するようになされている。この
うちのキャリーオーバーは、DFU5−0のレジスタ1
3にも供給されている。
【0016】セレクタ23は、イクスクルーシブオア回
路21から供給されるデータと、DFU5−0のレジス
タ12より供給されるデータの一方を選択し、セレクタ
24に出力している。セレクタ24は、セレクタ23か
らの入力、フルアダー22からの2つの入力の、合計3
つの入力のうちのいずれか1つを選択し、レジスタ25
(レジスタW)に出力している。セレクタ23とセレク
タ24の選択は、インストラクションコントロールバス
3を介して、SIMDコントローラ1により制御されて
いる。レジスタ25により保持されたデータは、ローカ
ルメモリ4−0に供給されている。
【0017】例えば、ローカルメモリ4−0に記憶され
ているデータをそのままALU6−0に供給するとき、
SIMDコントローラ1は、データコントロールバス2
を介してセレクタ15を制御し、そこに入力されている
値1を選択させ、レジスタ14に保持させる。その結
果、アンド回路20の一方の入力に、レジスタ14に保
持されている論理1が入力されるので、ローカルメモリ
4−0より供給され、レジスタ11に保持されているデ
ータは、そのままアンド回路20を通過し、ALU6−
0のイクスクルーシブオア回路21を介して、フルアダ
ー22に入力される。フルアダー22は、イクスクルー
シブオア回路21より入力されるデータ(レジスタ11
から供給されたデータ)、ローカルメモリ4−0より供
給され、レジスタ12に保持されたデータ、およびレジ
スタ13に保持されている前回の演算時に発生したキャ
リーオーバーのデータを加算し、その加算結果と、新た
に生成したキャリーオーバーのデータをセレクタ24に
出力する。キャリーオーバーはまた、レジスタ13に供
給され、保持される。
【0018】SIMDコントローラ1は、さらに、イン
ストラクションコントロールバス3を介して、セレクタ
24を制御し、フルアダー22の、例えば加算結果(s
um)を選択させ、レジスタ25に保持させる。このレ
ジスタ25に保持された演算結果は、ローカルメモリ4
−0に供給される。
【0019】SIMDコントローラ1はまた、セレクタ
24を制御して、フルアダー22の出力するキャリーオ
ーバーを選択し、レジスタ25を介して、ローカルメモ
リ4−0に出力させることができる。あるいはまた、セ
レクタ23で、イクスクルーシブオア回路21またはレ
ジスタ12より供給されたデータの一方を選択し、これ
をさらにセレクタ24で選択させて、レジスタ25を介
して、ローカルメモリ4−0に供給することができる。
【0020】SIMDコントローラ1は、アンド回路2
0より出力されるデータの論理を反転して、フルアダー
22に供給したいとき、イクスクルーシブオア回路21
の一方の入力に論理1を出力する。このようにすると、
イクスクルーシブオア回路21は、アンド回路20より
論理1が出力されたとき、論理0を出力し、アンド回路
20より論理0が入力されたとき、論理1を出力する。
【0021】また、SIMDコントローラ1は、新たに
入力されたデータと、前回のデータとの論理積を演算さ
せる場合には、セレクタ15がレジスタ14の保持して
いるデータを再び選択する。こうすることで、レジスタ
11に次のデータが保持されるので、アンド回路20に
は、現在のデータと直前のデータとが入力され、その論
理積が演算される。セレクタ15によるレジスタ14の
出力の選択を繰り返すことにより、新たな入力データと
過去のデータの演算が可能となる。
【0022】以上のような演算は、他のプロセッサエレ
メント7−1乃至7−1079においても、同様に行わ
れる。
【0023】
【発明が解決しようとする課題】従来のSIMD制御並
列プロセッサは、上述したように、各プロセッサエレメ
ント7−0乃至7−1079が、それぞれALU(フル
アダー22)を有している。その結果、構成が複雑にな
り、これをIC化した場合、その専有面積が大きくな
り、装置が大型化するばかりでなく、コスト高となる課
題があった。
【0024】本発明はこのような状況に鑑みてなされた
ものであり、構成を簡略化し、専有面積を小さくして、
小型化を図るとともに、低コスト化を可能とするもので
ある。
【0025】
【課題を解決するための手段】請求項1に記載のSIM
D制御並列プロセッサは、nビットで規定される演算デ
ータを、エレメント毎に保持する第1の保持手段と、n
ビットで規定される演算データのあり得る組み合わせを
所定の演算式で演算した演算結果を予め保持する第2の
保持手段と、第2の保持手段により保持されている演算
結果の中から、第1の保持手段に保持されている演算デ
ータに対応するものを、エレメント毎に選択する選択手
段とを備えることを特徴とする。
【0026】請求項9に記載の演算方法は、nビットで
規定される演算データを、エレメント毎に保持するステ
ップと、nビットで規定される演算データのあり得る組
み合わせを所定の演算式で演算した演算結果を予め保持
するステップと、保持されている演算結果の中から、保
持されている演算データに対応するものを、エレメント
毎に選択することを特徴とする。
【0027】請求項1に記載のSIMD制御並列プロセ
ッサおよび請求項9に記載の演算方法においては、nビ
ットで規定される演算データのあり得る組み合わせを所
定の演算式で演算した演算結果が予め保持される。そし
て、保持されている演算結果の中から、演算データに対
応するものが、エレメント毎に選択される。
【0028】
【発明の実施の形態】以下に本発明の実施の形態を説明
するが、特許請求の範囲に記載の発明の各手段と以下の
実施の形態との対応関係を明らかにするために、各手段
の後の括弧内に、対応する実施の形態(但し一例)を付
加して本発明の特徴を記述すると、次のようになる。但
し勿論この記載は、各手段を記載したものに限定するこ
とを意味するものではない。
【0029】請求項1に記載のSIMD制御並列プロセ
ッサは、nビットで規定される演算データを、エレメン
ト毎に保持する第1の保持手段(例えば図1のDFU
5)と、nビットで規定される演算データのあり得る組
み合わせを所定の演算式で演算した演算結果を予め保持
する第2の保持手段(例えば図1の演算部31)と、第
2の保持手段により保持されている演算結果の中から、
第1の保持手段に保持されている演算データに対応する
ものを、エレメント毎に選択する選択手段(例えば図1
の選択部32)とを備えることを特徴とする。
【0030】請求項2に記載のSIMD制御並列プロセ
ッサは、第2の保持手段に対して、演算式を指示する指
示手段(例えば図1のSIMDコントローラ1)をさら
に備えることを特徴とする。
【0031】請求項3に記載のSIMD制御並列プロセ
ッサは、第1の保持手段が、新たなデータと過去のデー
タの論理積を演算する演算手段(例えば図16のアンド
回路176−0)をさらに備えることを特徴とする。
【0032】請求項4に記載のSIMD制御並列プロセ
ッサは、選択手段が、第2の保持手段に保持されている
演算結果の中から、第1の保持手段に保持されている演
算データに対応するものを選択するためにスイッチング
動作するスイッチ手段(例えば図4のトランジスタ14
3−0−0,144−0−0)を備えることを特徴とす
る。
【0033】請求項5に記載のSIMD制御並列プロセ
ッサは、選択手段が、スイッチ手段を切り替える切り替
え信号を、第1の保持手段に保持されている演算データ
に対応して生成する生成手段(例えば図4のデコーダ1
45−0)をさらに備えることを特徴とする。
【0034】図1は、本発明のSIMD制御並列プロセ
ッサの基本的な構成を示す図であり、図18における場
合と対応する部分には、同一の符号を付してあり、その
説明は適宜省略する。このプロセッサにおいては、図1
8におけるALU6が省略され、その代わりに、演算部
31と選択部32が設けられている。
【0035】各プロセッサエレメント7−0乃至7−1
079において、それぞれnビットの演算を行う場合、
演算部31には、そのnビットにより規定される全ての
組み合わせの数(通常、2n個)の演算部31−0乃至
31−(2n−1)が設けられる。2n個の演算部31−
0乃至31−(2n−1)においては、それぞれ予め定
められている所定のnビットのデータが保持されてお
り、その保持されているデータを演算した結果を選択部
32に出力するようになされている。各プロセッサエレ
メント7−0乃至7−1079の選択部32−0乃至3
2−1079は、2n個の演算部31−0乃至31−
(2n−1)の出力の中から、所定のものを選択し、対
応するロ−カルメモリ4−0乃至4−1079に出力す
るようになされている。その他の構成は、図18におけ
る場合と同様である。
【0036】図2は、n=3である場合における図1に
示したプロセッサの構成例を表している。すなわち、D
FU5−0乃至5−1079においては、対応するロー
カルメモリ4−0乃至4−1079から2ビットのデー
タが入力され、さらにこれに、直前の演算結果からのキ
ャリーオーバーの1ビットを加えて、合計3ビットのデ
ータが保持される。3ビットで規定される組み合わせ
は、000乃至111で表される8通りとなる。従っ
て、DFU5−0乃至5−1079には、この000乃
至111の8通りの3ビットのデータのうちの1つの組
み合わせが保持されることになる。
【0037】
【表1】
【0038】1ビットで構成される3個のデータを加算
して得られる結果は、表1に示すようになる。すなわ
ち、3個のデータ(X,Y,Z)が000であるとき、
その演算結果(0+0+0)は、00となる。入力が1
00である場合には、その演算結果(1+0+0)は、
01となる。入力が010であるとき、その演算結果
(0+1+0)は、01となる。これに対して、入力が
110であるとき、その演算結果(1+1+0)は、1
0となる。そして、入力が001のときの演算結果(0
+0+1)は、01となり、101のときの演算結果
(1+0+1)は、10となり、011のときの演算結
果(0+1+1)は、10となり、111であるときの
演算結果(1+1+1)は、11となる。従って、演算
部31のフルアダー(例えば、図3のフルアダー95−
1)は、2ビットの出力のうちのLSBを出力S(su
m)とし、MSBをキャリーオーバーを表す出力Cとす
ることになる。
【0039】そこで、この構成例においては、演算部3
1として、演算部31−0乃至31−7を設け、それぞ
れにおいて、入力が000乃至111である場合の演算
を行わせる。従って、演算部31−0は、(出力C,出
力S)として00を出力し、演算部31−1と演算部3
1−2は、01を出力する。以下、同様に、演算部31
−3は、10を出力し、演算部31−4は、01を出力
し、演算部31−5と演算部31−6は、10を出力
し、演算部31−7は、11を出力する。
【0040】選択部32は、プロセッサエレメント7−
0乃至7−1079に対応して、32−0乃至32−1
079に区分されており、例えば、選択部32−0は、
さらに、演算部31−0乃至31−7のいずれかの出力
を選択するための選択部として、選択部32−0−0乃
至32−0−7に区分されている。その他のプロセッサ
エレメントにおける選択部32−1乃至32−1079
においても、同様に、その内部が、さらに8個に区分さ
れている。
【0041】そして、選択部32−0乃至32−107
9は、演算部31−0乃至31−7の2ビットの出力の
中から、DFU5−0乃至5−1079に保持されてい
る3ビットのデータに対応するものを選択し、選択した
結果のうち、キャリーオーバー成分(MSB)をDFU
5−0乃至5−1079に出力し、sum成分(LS
B)をローカルメモリ4−0乃至4−1079に出力す
るようになされている。
【0042】以下、図3乃至図7を参照して、各プロセ
ッサエレメントのより詳細な構成を説明するが、基本的
に、例えば選択部32−j−iのように、所定の構成を
示す数字(32)に、1080個のプロセッサエレメン
トのいずれかに対応する位置を示す数字jと、8個の演
算部31のいずれかに対応する位置を示す数字iを付加
するものとする。
【0043】図3は、演算部31−1の構成例を表して
いる。発生回路91−1乃至93−1は、それぞれデー
タ0,0,1を保持している。この発生回路91−1乃
至93−1は、例えば0または1にそれぞれ対応する所
定の電位を供給する回路で構成することができる。
【0044】この発生回路91−1乃至93−1には、
演算部31−1がデータ001の演算を行うものである
ために、このようなデータが保持されるが、例えば演算
部31−0においては、ここにデータ000が保持さ
れ、演算部31−2においては、データ010が保持さ
れることになる。
【0045】発生回路91−1乃至発生回路93−1の
出力は、フルアダー95−1にそのまま入力されてい
る。フルアダー95−1は、それぞれ1ビットずつで構
成される3個の入力データを加算し、2ビットの加算結
果をセレクタ97−1に出力している。2ビットの出力
のうち、MSB側のキャリーオーバーは、レジスタ98
−1(レジスタCy)にも供給され、保持される。レジ
スタ98−1に保持されたデータは、ライン42−1に
接続されている端子103−1から、選択部32−j−
1(j=1乃至1079)に供給されている。
【0046】セレクタ97−1は、SIMDコントロー
ラ1より、インストラクションコントロールバス3を介
して、端子102−1から供給される1ビットの制御信
号に対応して、2つの入力のうちの1つを選択し、レジ
スタ99−1(レジスタW)に出力するようになされて
いる。レジスタ99−1に保持されたデータは、ライン
43−1に接続されている端子104−1から選択部3
2−j−1に供給されている。
【0047】演算部31−1においては、基本的に、0
01の3ビットで規定される演算を行うのであるから、
表1に示したように、その出力は、01となり、その場
合、レジスタ98−1は、0を出力し、レジスタ99−
1は、1を出力することになる。
【0048】図示は省略するが、演算部31−0,31
−2,31−3,・・・,31−7も、同様に構成され
ている。ただし、その各発生回路91−i乃至93−i
に保持されているデータが異なっている。
【0049】図4は、選択部32−0−0の構成例を表
している。デコーダ145−0には、DFU5−0から
ライン44−0を介して3ビットのデータが入力されて
いる。すなわち、後述する図6の端子181−0,18
2−0,183−0からライン44−0を介して供給さ
れるデータが、それぞれ端子139−0−0,140−
0−0,141−0−0に、データX,Y,Zとして入
力される。デコーダ145−0は、この3ビットのデー
タ(Z,Y,X)をデコードして、端子0乃至7のいず
れか1つから、論理1の選択信号を出力する。すなわ
ち、入力ZYXが000であるとき、番号0の端子から
論理1が出力され、入力が001であるとき、番号1の
端子から論理1が出力され、入力が010であるとき、
番号2の端子から論理1が出力される。以下、同様に、
入力が011乃至111であるとき、番号3乃至番号7
の端子から、それぞれ論理1が出力される。
【0050】選択部32−0−0は、演算部31−0
が、ライン42−0を介して出力するキャリーオーバー
のデータと、ライン43−0を介して出力するsumの
データを選択する場合に動作する部分である。すなわ
ち、入力が000である場合に、ライン42−0とライ
ン43−0を介して入力されるデータを選択して、ライ
ン45−0とライン46−0に出力する回路である。
【0051】そこで、この選択部32−0−0において
は、入出力がそれぞれライン42−0とライン45−0
に接続されているトランジスタ143−0−0と、入出
力がライン43−0とライン46−0に接続されている
トランジスタ144−0−0が設けられている。そし
て、これらのトランジスタ143−0−0,144−0
−0は、そのベースがいずれもデコーダ145−0の端
子0に接続されている。その結果、デコーダ145−0
の端子0から論理1が出力されたとき、トランジスタ1
43−0−0と144−0−0がオンし、それぞれライ
ン42−0に出力されているキャリーオーバーのデータ
をライン45−0に転送し、また、ライン43−0に出
力されているsumのデータをライン46−0に転送す
るようになされている。
【0052】ライン45−0の端子135−0−0は、
後述する図6のDFU5−0の端子184−0に接続さ
れており、キャリーオーバーのデータをレジスタ173
−0に供給するようになされている。また、ライン46
−0の端子136−0−0は、図6のDFU5−0の端
子185−0に接続されており、その他方の端子179
−0からローカルメモリ4−0にsumデータを転送す
るようになされている。
【0053】ライン45−0とライン46−0の他方の
端子137−0−0と端子138−0−0は、下に隣接
する選択部32−0−1の端子135−0−1と端子1
36−0−1(いずれも図示せず)に接続されている。
また、ライン42−0とライン43−0の端子133−
0−0と端子134−0−0は、右側に隣接する選択部
32−1−0の端子131−1−0と端子132−1−
0(いずれも図示せず)に接続されている。
【0054】図5は、選択部32−3−1の構成を表し
ている。この選択部32−3−1は、演算部31−1が
ライン42−1から出力するキャリーオーバーのデータ
を、ライン45−3を介してDFU5−3のレジスタ1
73−3(図示せず)に転送するとともに、演算部31
−1がライン43−1を介して出力するsumのデータ
を、ライン46−3を介してローカルメモリ4−3に転
送するとき動作する回路である。そこで、この選択部3
2−3−1においては、入出力がライン42−1とライ
ン45−3に接続されているトランジスタ143−3−
1と、入出力がライン43−1とライン46−3に接続
されているトランジスタ144−3−1のベースが、そ
れぞれ選択部32−3−0に配置されているデコーダ1
45−3の番号3の端子に、端子151−3−3−1を
介して接続されている。
【0055】図5に示すように、この選択部32−3−
1には、図4に示したデコーダ145−0に対応するデ
コーダ145−3が設けられていない。このようなデコ
ーダ145−0乃至145−1079は、それぞれ各プ
ロセッサエレメント7−0乃至7−1079に1個だけ
設けられており、それらは図2に示すように、選択部3
2−0乃至32−1079のうちの先頭(図2におい
て、最も上方)の選択部32−0−0乃至32−107
9−0だけに設けられている。そして、各プロセッサエ
レメント7−0乃至7−1079において設けられてい
るデコーダ145−0乃至145−1079の出力が、
対応するプロセッサエレメント7−0乃至7−1079
の他の選択部(演算部31−1乃至31−7に対応する
選択部)に、ライン47−0乃至47−1079を介し
て供給されるようになされている。
【0056】なお、他の選択部32−j−iも、図4ま
たは図5に示した場合と同様に構成されている。
【0057】図6は、DFU5−0の構成例を表してい
る。この構成例においては、ローカルメモリ4−0より
出力された2ビットのデータが、それぞれ端子177−
0と端子178−0を介して、レジスタ171−0(レ
ジスタA)とレジスタ172−0(レジスタB)に供給
されるようになされている。
【0058】レジスタ171−0とレジスタ172−0
に保持されたデータは、端子181−0と端子182−
0からそれぞれ出力されるようになされている。さら
に、レジスタ173−0(レジスタC)は、端子184
−0からライン45−0を介して供給されてきたデータ
を保持し、その保持した結果を端子183−0から出力
するようになされている。上述したように、端子181
−0,182−0,183−0は、それぞれ図4の端子
139−0−0,140−0−0,141−0−0に接
続されている。上述したように、端子181−0,18
2−0,183−0からライン44−0を介して出力さ
れる3ビットのデータは、デコーダ145−0でデコー
ドされ、その端子0乃至7のいずれかが、論理1を出力
することになる。
【0059】図6の端子185−0は、図4の選択部3
2−0−0の端子136−0−0に接続されており、ラ
イン46−0の他方の端子179−0から、ローカルメ
モリ4−0に、選択部32−0より入力されたsumの
データを転送するようになされている。
【0060】演算部31、選択部32、およびDFU5
の接続状態をまとめると、図7に示すようになる。な
お、図7においては、演算部31−0,31−1、選択
部32−0−0,32−1−0,32−0−1,32−
1−1、並びにDFU5−0,5−1の接続状態が表さ
れている。
【0061】次に、その動作について説明する。ローカ
ルメモリ4には、処理すべき画素データが複数ライン分
記憶されているものとする。図2の構成例の場合、第0
番目乃至第1079番目の画素が、それぞれプロセッサ
エレメント7−0乃至7−1079のローカルメモリ4
−0乃至4−1079に記憶されている。すなわち、例
えば、ローカルメモリ4−0には、5水平走査線分の第
0番目の画素データが保持され、ローカルメモリ4−1
には、5水平走査線分の第1番目の画素データが保持さ
れる。以下、同様である。
【0062】SIMDコントローラ1は、データコント
ロールバス2を介して、各DFU5−0乃至5−107
9を制御し、それぞれのレジスタ171−jとレジスタ
172−jに、処理すべき2ビットのデータを保持させ
る。このとき、DFU5−jのレジスタ173−jに
は、前回の演算におけるキャリーオーバーのデータが保
持されている。以上のようにして、例えば図2に示すよ
うに、DFU5−0においては、レジスタ171−0乃
至171−3に、それぞれ0,1,0のデータが保持さ
れ、DFU5−1においては、レジスタ171−1乃至
171−3に、それぞれ1,1,1が保持され、DFU
5−2においては、レジスタ171−2乃至173−2
に、それぞれ0,0,1が保持されたものとする。以
下、同様に、DFU5−3では、0,1,0が、DFU
5−4では、0,0,0が、DFU5−5では、0,
0,1が、DFU5−6では、1,1,1が、DFU5
−1079では、0,1,0が、それぞれ保持されてい
るものとする。
【0063】このとき、例えば、プロセッサエレメント
7−0においては、1ビットの3個のデータ0,1,0
を加算し、その加算した結果得られる2ビットのデータ
のうち、キャリーオーバー成分をレジスタ173−0に
保持し、sum成分をローカルメモリ4−0に転送し、
記憶する処理を行うことになる。上述したように、演算
データが0,1,0である場合における演算は、演算部
31−2で行われている。
【0064】すなわち、演算部31−2においては、発
生回路91−2,92−2,93−2に、それぞれ0,
1,0のデータが保持されている。フルアダー95−2
は、これらの発生回路91−2乃至93−2の出力する
データを加算し、その加算結果を出力する。この演算
は、0+1+0の演算であるため、その加算結果は、0
1となる。従って、フルアダー95−2は、そのキャリ
ーオーバーとして、0を出力し、レジスタ98−2に保
持させる。また、sum成分として、フルアダー95−
2から1が出力され、セレクタ97−2を介して、レジ
スタ99−2に保持されている。従って、ライン42−
2からキャリーオーバーのデータ0が出力されており、
ライン43−2を介して、sum成分のデータ1が出力
されている。
【0065】選択部32−0−0のデコーダ145−0
には、DFU5−0の端子181−0乃至183−0か
ら、それぞれ0,1,0が、データX,Y,Zとして入
力される。この入力010は、10進数で2であるか
ら、デコーダ145−0は、番号2の端子から論理1を
出力する。
【0066】デコーダ145−0の番号2の端子に、そ
のベースが接続されているトランジスタを有する選択部
は、選択部32−0−2である。選択部32−0の他の
選択部32−0−0,32−0−1,32−0−3乃至
32−0−7の各トランジスタは、デコーダ145−0
の番号2の端子には接続されていない。その結果、選択
部32−0−2のトランジスタ143−0−2とトラン
ジスタ144−0−2だけがオンし、ライン42−2に
出力されているキャリーオーバーデータが、トランジス
タ143−0−2を介してライン45−0に転送され、
sumのデータが、ライン43−2からライン46−0
に転送される。
【0067】ライン45−0のデータは、DFU5−0
のレジスタ173−0に転送され、保持される。ライン
46−0に出力されたデータは、ローカルメモリ4−0
に転送され、保持される。
【0068】一方、プロセッサエレメント7−1におい
ては、次のような動作が行われる。
【0069】すなわち、そのDFU5−1のレジスタ1
71−1乃至173−1には、図2に示すように、1,
1,1が保持されている。その結果、選択部32−0−
1のデコーダ145−1は、そのXYZに111が入力
されるので、その端子7から論理1を出力する。デコー
ダ145−1の番号7の端子に接続されているトランジ
スタを有するのは、選択部32−1−0乃至32−1−
7のうち、選択部32−1−7だけである。従って、選
択部32−1−7のトランジスタ143−1−7とトラ
ンジスタ144−1−7がオンし、演算部31−7のレ
ジスタ98−7が保持するキャリーオーバーのデータ1
が、ライン42−7からトランジスタ143−1−7を
介してライン45−1に転送される。また、演算部31
−7のレジスタ99−7が保持するsumのデータ1
が、ライン43−7からトランジスタ144−1−7を
介してライン46−1に転送される。
【0070】ライン45−1に転送されたデータは、D
FU5−1のレジスタ173−1に供給され、保持され
る。また、ライン46−1に転送されたデータは、ロー
カルメモリ4−1にさらに転送される。
【0071】以下、他のプロセッサエレメント7−2乃
至7−1079においても、それぞれ各DFU5−2乃
至5−1079に保持された演算データに対応する演算
部31の演算結果が、選択部32で選択され、対応する
DFUまたはローカルメモリに転送される。
【0072】各プロセッサエレメント7−0乃至7−1
079はSIMD制御され、連動して一斉に演算処理プ
ログラムを進めるので、以上のようにして、1水平走査
線上の全画素について1ビット分のデータの演算が完了
したとき、次に処理されるべきデータがローカルメモリ
4からDFU5に転送される。そして、上述した場合と
同様の処理が行われる。本プロセッサは、ビット処理プ
ロセッサであり、1ビットずつ処理を進める。
【0073】以上のようにして、一水平走査期間の時間
のうちに、ローカルメモリ4からDFU5へのデータの
転送、必要な演算処理、そして演算結果のDFU5とロ
ーカルメモリ4への転送が、ビットを単位とするSIM
D制御プログラムで制御され、実行される。このプログ
ラム処理は、水平走査期間を単位として、繰り返し行わ
れる。
【0074】なお、 1.外部からの画像データの入力 2.ローカルメモリ4に蓄積されたデータのDFU5へ
の転送その転送されたデータに対応する選択部32にお
ける選択処理(演算処理)演算結果(選択結果)のDF
U5とローカルメモリ4への転送 3.演算結果としての画像データの出力 の3つの動作は、映像信号の一水平走査期間を単位とす
るパイプライン動作により、平行して行われる。
【0075】次に、演算部31のより簡略化した構成に
ついて説明する。上述したように、演算部31において
は、固定値が入力されている。従って、そのフルアダー
95−iによる演算結果も、表1に示すように固定され
たものとなる。そこで、演算部31−0乃至31−7
は、図8に示すように構成することができる。この構成
例においては、各演算部31−iにおいて、固定された
キャリーオーバーの成分とsumの成分とが固定値とし
て与えられている。
【0076】例えば、演算部31−0においては、キャ
リーオーバー成分Cとsum成分Sとして、それぞれ0
0が固定入力とされており、演算部31−1と演算部3
1−2においては、01が固定入力とされている。以
下、同様に、演算部31−3においては、10が、演算
部31−4においては、01が、演算部31−5と演算
部31−6においては、10が、演算部31−7におい
ては、11が、それぞれ固定入力とされている。このう
ちのキャリーオーバー成分は、各演算部から、そのまま
出力される。そして、各演算部31−0乃至31−7
に、セレクタ97−0乃至97−7が設けられ、キャリ
ーオーバー成分とsum成分の一方を、インストラクシ
ョンコントロールバス3からの制御に対応して選択し、
出力するようにしている。
【0077】このような図8に示す構成は、さらに図9
に示すように簡略化することができる。すなわち、各演
算部31−0乃至31−7のセレクタ97−0乃至97
−7において、選択するデータは、00,01,10,
11のいずれかであるから、図9の構成例においては、
それらに対応する専用のセレクタを、セレクタ31−A
乃至31−Dとして設けている。そして、セレクタ31
−Aの出力を、演算部31−0に供給し、セレクタ31
−Bの出力を、演算部31−1,31−2,31−4に
供給し、セレクタ31−Cの出力を、演算部31−3,
31−5,31−6に供給し、セレクタ31−Dの出力
を、演算部31−7に供給するようになされている。各
演算部において、セレクタ31−A乃至31−Dから供
給されてきたsum成分は、そのまま出力され、キャリ
ーオーバー成分は、それぞれ固定値として与えられてい
るものが出力される。
【0078】さらに、図9に示すセレクタ31−A乃至
31−Dは、図10に示すように、2個のアンド回路3
1−F,31−G、1個のインバータ31−E、および
1個のオア回路31−Hにより構成することができる。
例えば、アンド回路31−Gの一方の入力に、インスト
ラクションコントロールバス3から制御信号として論理
1が入力された場合には、アンド回路31−Fの制御信
号の入力は、インバータ31−Eにより反転されるの
で、論理0とされる。従って、この場合、アンド回路3
1−Gの出力が、オア回路31−Hから出力される。こ
れに対して、制御信号を論理0にすると、今度は逆に、
アンド回路31−Fの出力が、オア回路31−Hから出
力されることになる。
【0079】従って、図9に示すセレクタ31−A乃至
31−Dは、図11に示すように構成することができ
る。セレクタ31−Aは、2つの入力がいずれも0であ
るから、セレクタ31−Aの出力は常に0となる。従っ
て、セレクタ31−Aを省略し、固定値0を常に出力す
るようにすることができる。
【0080】セレクタ31Bにおいては、セレクタに対
する制御信号が論理1である場合には、1を出力し、0
である場合には、0を出力することになるので、結局、
制御信号をそのまま出力すればよいことになる。
【0081】セレクタ31−Cにおいては、制御信号が
論理1であるとき、論理0を出力し、論理0であると
き、論理1を出力すればよいので、結局、制御信号をイ
ンバータ31−Jで反転して出力することができる。
【0082】さらに、セレクタ31−Dにおいては、2
つの入力がいずれも1であるから、その出力は常に1と
なる。従って、固定値1を常に出力するようにすればよ
い。
【0083】以上の原理に従って、図9に示すセレクタ
31−A乃至31−Dをさらに簡略化すると、演算部3
1は、図12に示すように構成することができる。すな
わち、キャリーオーバー成分としては、各演算部31−
0乃至31−7において、固定値が用意され、それが出
力される。また、演算部31−0と演算部31−7にお
いては、それぞれsum成分として、0と1の固定値が
用意され、それが常に出力される。
【0084】演算部31−1,31−3,31−4にお
いては、入力された制御信号が、そのままsum成分と
して出力される。演算部31−2,31−5,31−6
においては、インバータ31−Jで反転した制御信号
が、そのままsum成分として出力される。
【0085】図13は、最も簡単な、n=2である場合
のSIMD制御並列プロセッサの構成例を模式的に表し
ている。すなわち、この構成例においては、論理演算が
想定されている。
【0086】この場合、n=2であるので、演算部31
には、00,01,10,11の演算データに対応する
演算結果を出力する演算部31−0乃至31−3が設け
られている。選択部32は、プロセッサエレメント7−
0乃至7−mに対応して、選択部32−0乃至32−m
に区分されている。そして、各選択部32−jは、演算
部31−0乃至31−3の出力の中から、そのプロセッ
サエレメントのDFU5−jに保持されたデータに対応
するものを選択し、ローカルメモリ4−0乃至4−mに
出力する。
【0087】例えば、DFU5−0には、データ01が
保持されているので、選択部32−0は、演算部31−
1の出力を選択し、ローカルメモリ4−0に出力する。
【0088】また、DFU5−1には、データ11が保
持されているので、選択部32−1は、データ11に対
する演算を行う演算部31−3の出力を選択し、ローカ
ルメモリ4−1に出力する。
【0089】図14は、n=3である場合におけるプロ
セッサの他の構成例を表している。この構成例において
は、SIMDコントローラ1は、データコントロールバ
ス2を介してDFU5を制御するようになされている。
そしてこの構成例では、演算部31−1とDFU5−0
が、それぞれ図15と図16に示すように構成されてい
る。選択部32の構成は、図4と図5に示した場合と同
様である。
【0090】図15の構成例において、発生回路91−
1乃至93−1は、それぞれデータ0,0,1を保持し
ている。上述した場合と同様に、この発生回路91−1
乃至93−1には、演算部31−1がデータ001の演
算を行うものであるために、このようなデータが保持さ
れるが、例えば演算部31−0においては、ここにデー
タ000が保持され、演算部31−2においては、デー
タ010が保持されることになる。
【0091】イクスクルーシブオア回路94−1は、発
生回路91−1より出力されたデータと、SIMDコン
トローラ1より、インストラクションコントロールバス
3を介して、端子100−1より入力されるデータの排
他的論理和を演算し、端子100−1が論理Hであると
き、その演算結果を反転して、フルアダー(FA)95
−1に出力する。発生回路92−1と発生回路93−1
の出力は、フルアダー95−1にそのまま入力されてい
る。フルアダー95−1は、それぞれ1ビットずつで構
成される3個の入力データを加算し、2ビットの加算結
果をセレクタ97−1に出力している。2ビットの出力
のうち、MSB側のキャリーオーバーは、レジスタ98
−1(レジスタCy)にも供給され、保持される。レジ
スタ98−1に保持されたデータは、ライン42−1に
接続されている端子103−1から、選択部32−j−
1(j=1乃至1079)に供給されている。
【0092】セレクタ96−1は、端子101−1か
ら、SIMDコントローラ1よりインストラクションコ
ントロールバス3を介して入力される制御信号に対応し
て、イクスクルーシブオア回路94−1の出力または発
生回路92−1の出力を選択し、選択したデータをセレ
クタ97−1に出力している。セレクタ97−1は、S
IMDコントローラ1より、インストラクションコント
ロールバス3を介して、端子102−1から供給される
2ビットの制御信号に対応して、3つの入力のうちの1
つを選択し、レジスタ99−1(レジスタW)に出力す
るようになされている。レジスタ99−1に保持された
データは、ライン43−1に接続されている端子104
−1から選択部32−j−1に供給されている。
【0093】演算部31−1においては、基本的に、0
01の3ビットで規定される演算を行うのであるから、
表1に示したように、その出力は、01となり、その場
合、レジスタ98−1は、0を出力し、レジスタ99−
1は、1を出力することになる。
【0094】図示は省略するが、演算部31−0,31
−2,31−3,・・・,31−7も、同様に構成され
ている。ただし、その各発生回路91−i乃至93−i
に保持されているデータが異なっている。
【0095】図16は、DFU5−0の構成例を表して
いる。この構成例においては、ローカルメモリ4−0よ
り出力された2ビットのデータが、それぞれ端子177
−0と端子178−0を介して、レジスタ171−0
(レジスタA)とレジスタ172−0(レジスタB)に
供給されるようになされている。セレクタ174−0に
は、論理1のデータ、端子177−0より入力されたデ
ータ、およびレジスタ175−0(レジスタM)に保持
されているデータが入力されており、そのいずれかが選
択されて、レジスタ175−0に出力されるようになさ
れている。セレクタ174−0には、端子180−0
に、SIMDコントローラ1よりインストラクションコ
ントロールバス3を介して、2ビットの切り替え制御信
号が入力されている。アンド回路176−0は、レジス
タ171−0の出力と、レジスタ175−0の出力の論
理積を演算し、その出力を端子181−0から出力して
いる。
【0096】なお、アンド回路176−0は、より高速
なナンド回路に置き換えることもできる。この場合、演
算部31−jのイクスクルーシブオア回路94−j(例
えば、図15のイクスクルーシブオア回路94−1)
を、イクスクルーシブノア回路に置き換える必要があ
る。
【0097】レジスタ172−0に保持されたデータ
は、端子182−0から出力されるようになされてい
る。さらに、レジスタ173−0(レジスタC)は、端
子184−0からライン45−0を介して供給されてき
たデータを保持し、その保持した結果を端子183−0
から出力するようになされている。上述したように、端
子181−0,182−0,183−0は、それぞれ図
4の端子139−0−0,140−0−0,141−0
−0に接続されている。上述したように、端子181−
0,182−0,183−0からライン44−0を介し
て出力される3ビットのデータは、デコーダ145−0
でデコードされ、その端子0乃至7のいずれかが、論理
1を出力することになる。
【0098】図16の端子185−0は、図4の選択部
32−0−0の端子136−0−0に接続されており、
ライン46−0の他方の端子179−0から、ローカル
メモリ4−0に、選択部32−0より入力されたsum
のデータを転送するようになされている。
【0099】他のDFU5−1乃至5−1079も、D
FU5−0と同様に構成されている。
【0100】演算部31、選択部32、およびDFU5
の接続状態をまとめると、図17に示すようになる。な
お、図17においては、演算部31−0,31−1、選
択部32−0−0,32−1−0,32−0−1,32
−1−1、並びにDFU5−0,5−1の接続状態が表
されている。
【0101】この構成例においては、図15に示すよう
に、セレクタ96−1が設けられているので、イクスク
ルーシブオア回路94−1の出力、または発生回路92
−1の出力を、セレクタ97−1を介してライン43−
1に出力することができる。
【0102】また、図16に示すように、DFU5−0
において、レジスタ175−0の出力を繰り返し選択さ
せるように、セレクタ174をデータコントロールバス
2を介して制御することで、過去のデータ(レジスタ1
75−0に保持されているデータ)と、新たなデータ
(レジスタ171−0に保持されているデータ)との論
理積をアンド回路176−0で演算させることができ
る。
【0103】その他の動作は、図2乃至図7の構成例に
おける場合と同様であるので、その説明は省略する。
【0104】なお、図示は省略するが、図14乃至図1
7に示した構成例においても、図8乃至図12を参照し
て説明した場合と同様に、演算部31の構成を、より簡
略化することができる。
【0105】以上の構成例においては、演算部31とし
て、nビットの入力で規定される全ての組み合わせの
数、すなわち2n個の演算部を予め設けるようにした
が、そのうちの所定の組み合わせが存在しないことが予
め分かっているような場合には、その組み合わせの演算
を行う演算部は省略するようにすることも可能である。
実際にあり得る全ての組み合わせの数だけの演算部を用
意すればよい。
【0106】算術処理を行う演算部31への入力ビット
数nは、元々それほど大きい値ではない。これに対し
て、例えば、画像用リニアアレイ型並列プロセッサの場
合、そのプロセッサエレメントの数は、図1と図2の構
成例では1080個としたが、その数は、一水平走査ラ
インを構成する画素数に対応するので、数100個以上
であって、1000個前後の数となる。従来の場合、上
述したように、各プロセッサエレメント毎にALUを設
けるようにしたので、その数は、数100以上1000
前後の数となる。これに対して、本発明によれば、入力
ビット数をnとするとき、最大でも2n個でよいので、
演算部31の数(ALUの数)を、極めて小さいものと
することができる。その結果、構成が簡略化され、これ
をIC化した場合における専有面積を小さくすることが
でき、小型化、低コスト化を実現することができる。
【0107】さらにまた、本発明における演算部31と
して用意する回路は、演算用のデータの入力が固定され
ているため、実質的に、ALUを構成する論理素子など
に、部分的に論理変化が生じない場合が発生し、そのよ
うな論理素子を削除することができる。その結果、演算
部31におけるALUは、従来の場合におけるALUに
較べて、素子数をより少なくすることができる。このこ
とからも、より小型化が実現されることになる。
【0108】なお、選択部32の部分は、単なるセレク
タの場合もあるが、クロスバースイッチ回路で構成する
ことも可能であり、その場合、より少ない半導体素子数
で実現することができる。
【0109】また、上記実施の形態においては、画素デ
ータを処理するようにしたが、その他のデータを処理す
る場合にも本発明を適用することが可能である。
【0110】
【発明の効果】以上の如く、請求項1に記載のSIMD
制御並列プロセッサおよび請求項9に記載の演算方法に
よれば、保持されている演算結果の中から、保持されて
いる演算データに対応するものを、エレメント毎に選択
するようにしたので、構成を簡略化し、小型化、低コス
ト化が可能となる。
【図面の簡単な説明】
【図1】本発明のSIMD制御並列プロセッサの構成を
示すブロック図である。
【図2】入力ビット数が3である場合におけるSIMD
制御並列プロセッサの構成例を示すブロック図である。
【図3】図2の演算部31−1の構成例を示すブロック
図である。
【図4】図2の選択部32−0−0の構成例を示すブロ
ック図である。
【図5】図2の選択部32−3−1の構成例を示すブロ
ック図である。
【図6】図2のDFU5−0の構成例を示すブロック図
である。
【図7】図2の構成例のより詳細な接続状態を示すブロ
ック図である。
【図8】図2の演算部31の他の構成例を示すブロック
図である。
【図9】図8の演算部31のより簡略化された構成例を
示すブロック図である。
【図10】図9のセレクタ31−Aの構成例を示すブロ
ック図である。
【図11】図9のセレクタ31−A乃至31−Dのより
簡略化された構成例を示すブロック図である。
【図12】図9の演算部31のより簡略化された構成例
を示すブロック図である。
【図13】入力ビット数が2である場合におけるSIM
D制御並列プロセッサの構成例を示すブロック図であ
る。
【図14】入力ビット数が3である場合におけるSIM
D制御並列プロセッサの他の構成例を示すブロック図で
ある。
【図15】図14の演算部31−1の構成例を示すブロ
ック図である。
【図16】図14のDFU5−0の構成例を示すブロッ
ク図である。
【図17】図14の構成例のより詳細な接続状態を示す
ブロック図である。
【図18】従来のSIMD制御並列プロセッサの構成例
を示す図である。
【図19】図18のDFUとALUの構成例を示すブロ
ック図である。
【図20】従来のSIMD制御並列プロセッサの他の構
成例を示す図である。
【図21】図20のDFUとALUの構成例を示すブロ
ック図である。
【符号の説明】
1 SIMDコントローラ, 2 データコントロール
バス, 3 インストラクションコントロールバス,
4,4−0乃至4−1079 ローカルメモリ, 5,
5−0乃至5−1079 DFU, 6,6−0乃至6
−1079 ALU, 7−0乃至7−1079 プロ
セッサエレメント, 31,31−0乃至31−(2n
−1) 演算部, 32,32−0乃至32−1079
選択部, 91−1乃至93−1 発生回路

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 複数のエレメントで共通した演算を並列
    に行うSIMD制御並列プロセッサにおいて、 nビットで規定される演算データを、前記エレメント毎
    に保持する第1の保持手段と、 nビットで規定される前記演算データのあり得る組み合
    わせを所定の演算式で演算した演算結果を予め保持する
    第2の保持手段と、 前記第2の保持手段により保持されている前記演算結果
    の中から、前記第1の保持手段に保持されている前記演
    算データに対応するものを、前記エレメント毎に選択す
    る選択手段とを備えることを特徴とするSIMD制御並
    列プロセッサ。
  2. 【請求項2】 前記第2の保持手段に対して、前記演算
    式を指示する指示手段をさらに備えることを特徴とする
    請求項1に記載のSIMD制御並列プロセッサ。
  3. 【請求項3】 前記第1の保持手段は、新たなデータと
    過去のデータの論理積を演算する演算手段をさらに備え
    ることを特徴とする請求項1に記載のSIMD制御並列
    プロセッサ。
  4. 【請求項4】 前記選択手段は、前記第2の保持手段に
    保持されている前記演算結果の中から、前記第1の保持
    手段に保持されている前記演算データに対応するものを
    選択するためにスイッチング動作するスイッチ手段を備
    えることを特徴とする請求項1に記載のSIMD制御並
    列プロセッサ。
  5. 【請求項5】 前記選択手段は、前記スイッチ手段を切
    り替える切り替え信号を、前記第1の保持手段に保持さ
    れている前記演算データに対応して生成する生成手段を
    さらに備えることを特徴とする請求項4に記載のSIM
    D制御並列プロセッサ。
  6. 【請求項6】 前記第2の保持手段は、2n個の前記演
    算結果を保持することを特徴とする請求項1に記載のS
    IMD制御並列プロセッサ。
  7. 【請求項7】 前記演算データは、画像データであり、 前記エレメントは、画素毎に割り当てられていることを
    特徴とする請求項1に記載のSIMD制御並列プロセッ
    サ。
  8. 【請求項8】 前記SIMD制御並列プロセッサは、1
    ビットエレメントプロセッサであることを特徴とする請
    求項1に記載のSIMD制御並列プロセッサ。
  9. 【請求項9】 複数のエレメントで共通した演算を並列
    に行うSIMD制御並列プロセッサの演算方法におい
    て、 nビットで規定される演算データを、前記エレメント毎
    に保持するステップと、 nビットで規定される前記演算データのあり得る組み合
    わせを所定の演算式で演算した演算結果を予め保持する
    ステップと、 保持されている前記演算結果の中から、保持されている
    前記演算データに対応するものを、前記エレメント毎に
    選択することを特徴とする演算方法。
JP9056232A 1997-03-11 1997-03-11 Simd制御並列プロセッサおよび演算方法 Withdrawn JPH10254839A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP9056232A JPH10254839A (ja) 1997-03-11 1997-03-11 Simd制御並列プロセッサおよび演算方法
US09/034,856 US6404439B1 (en) 1997-03-11 1998-03-04 SIMD control parallel processor with simplified configuration

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9056232A JPH10254839A (ja) 1997-03-11 1997-03-11 Simd制御並列プロセッサおよび演算方法

Publications (1)

Publication Number Publication Date
JPH10254839A true JPH10254839A (ja) 1998-09-25

Family

ID=13021368

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9056232A Withdrawn JPH10254839A (ja) 1997-03-11 1997-03-11 Simd制御並列プロセッサおよび演算方法

Country Status (2)

Country Link
US (1) US6404439B1 (ja)
JP (1) JPH10254839A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010086256A (ja) * 2008-09-30 2010-04-15 Mitsubishi Electric Corp 並列処理型プロセッサ

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2352154B (en) * 1999-07-16 2003-08-27 Ibm Automatic target enlargement for simplified selection
US6732253B1 (en) 2000-11-13 2004-05-04 Chipwrights Design, Inc. Loop handling for single instruction multiple datapath processor architectures
US6931518B1 (en) 2000-11-28 2005-08-16 Chipwrights Design, Inc. Branching around conditional processing if states of all single instruction multiple datapaths are disabled and the computer program is non-deterministic
DE10206830B4 (de) * 2002-02-18 2004-10-14 Systemonic Ag Verfahren und Anordnung zur Zusammenführung von Daten aus parallelen Datenpfaden
US7493607B2 (en) 2002-07-09 2009-02-17 Bluerisc Inc. Statically speculative compilation and execution
US7437729B2 (en) * 2003-04-23 2008-10-14 Micron Technology, Inc. Method for load balancing a loop of parallel processing elements
US7447720B2 (en) 2003-04-23 2008-11-04 Micron Technology, Inc. Method for finding global extrema of a set of bytes distributed across an array of parallel processing elements
US7263543B2 (en) * 2003-04-23 2007-08-28 Micron Technology, Inc. Method for manipulating data in a group of processing elements to transpose the data using a memory stack
US7454451B2 (en) 2003-04-23 2008-11-18 Micron Technology, Inc. Method for finding local extrema of a set of values for a parallel processing element
US7913062B2 (en) * 2003-04-23 2011-03-22 Micron Technology, Inc. Method of rotating data in a plurality of processing elements
US7574466B2 (en) * 2003-04-23 2009-08-11 Micron Technology, Inc. Method for finding global extrema of a set of shorts distributed across an array of parallel processing elements
US7472392B2 (en) * 2003-04-23 2008-12-30 Micron Technology, Inc. Method for load balancing an n-dimensional array of parallel processing elements
US7676648B2 (en) * 2003-04-23 2010-03-09 Micron Technology, Inc. Method for manipulating data in a group of processing elements to perform a reflection of the data
US7503046B2 (en) * 2003-04-23 2009-03-10 Micron Technology, Inc. Method of obtaining interleave interval for two data values
US7581080B2 (en) * 2003-04-23 2009-08-25 Micron Technology, Inc. Method for manipulating data in a group of processing elements according to locally maintained counts
US7430742B2 (en) 2003-04-23 2008-09-30 Micron Technology, Inc. Method for load balancing a line of parallel processing elements
US7448038B2 (en) * 2003-04-23 2008-11-04 Micron Technology, Inc. Method for using filtering to load balance a loop of parallel processing elements
US7437726B2 (en) * 2003-04-23 2008-10-14 Micron Technology, Inc. Method for rounding values for a plurality of parallel processing elements
US7373645B2 (en) * 2003-04-23 2008-05-13 Micron Technology, Inc. Method for using extrema to load balance a loop of parallel processing elements
US7596678B2 (en) * 2003-04-23 2009-09-29 Micron Technology, Inc. Method of shifting data along diagonals in a group of processing elements to transpose the data
US20040252547A1 (en) * 2003-06-06 2004-12-16 Chengpu Wang Concurrent Processing Memory
US20050114850A1 (en) 2003-10-29 2005-05-26 Saurabh Chheda Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control
US7996671B2 (en) 2003-11-17 2011-08-09 Bluerisc Inc. Security of program executables and microprocessors based on compiler-architecture interaction
US8607209B2 (en) 2004-02-04 2013-12-10 Bluerisc Inc. Energy-focused compiler-assisted branch prediction
US20080126766A1 (en) 2006-11-03 2008-05-29 Saurabh Chheda Securing microprocessors against information leakage and physical tampering
US20080154379A1 (en) * 2006-12-22 2008-06-26 Musculoskeletal Transplant Foundation Interbody fusion hybrid graft

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5046023A (en) * 1987-10-06 1991-09-03 Hitachi, Ltd. Graphic processing system having bus connection control capable of high-speed parallel drawing processing in a frame buffer and a system memory
EP0410719A3 (en) * 1989-07-25 1992-01-22 Seiko Instruments Inc. Colour correction system and method
US5581773A (en) * 1992-05-12 1996-12-03 Glover; Michael A. Massively parallel SIMD processor which selectively transfers individual contiguously disposed serial memory elements
JP3546437B2 (ja) * 1993-03-31 2004-07-28 ソニー株式会社 適応形ビデオ信号演算処理装置
JPH07281652A (ja) * 1994-04-07 1995-10-27 Sony Corp 画像処理装置
JP3458518B2 (ja) * 1994-08-30 2003-10-20 ソニー株式会社 並列プロセッサ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010086256A (ja) * 2008-09-30 2010-04-15 Mitsubishi Electric Corp 並列処理型プロセッサ

Also Published As

Publication number Publication date
US6404439B1 (en) 2002-06-11

Similar Documents

Publication Publication Date Title
JPH10254839A (ja) Simd制御並列プロセッサおよび演算方法
KR100401087B1 (ko) 여러종류의부호신호를복호하는복호장치
US7533249B2 (en) Reconfigurable integrated circuit, circuit reconfiguration method and circuit reconfiguration apparatus
US7543014B2 (en) Saturated arithmetic in a processing unit
US6523146B1 (en) Operation processing apparatus and operation processing method
US20070250685A1 (en) Operation-processing device, method for constructing the same, and operation-processing system and method
US6240524B1 (en) Semiconductor integrated circuit
US20070139424A1 (en) DSP System With Multi-Tier Accelerator Architecture and Method for Operating The Same
KR20020002334A (ko) 정렬된 simd용 범용 레지스터 파일 구조
US7676527B2 (en) Processor
US8185600B2 (en) Programming system and method for a video network
US7542041B2 (en) Runtime configurable virtual video pipeline
US6732131B1 (en) Discrete cosine transformation apparatus, inverse discrete cosine transformation apparatus, and orthogonal transformation apparatus
JP4342798B2 (ja) デジタル処理装置及びデジタル復号装置
US6405301B1 (en) Parallel data processing
JPH07200258A (ja) 加算デコード装置
JPH08329038A (ja) データ処理装置
EP1088266A1 (en) Parallel data processing
JPH07253872A (ja) プロセッサの入出力回路
US6741294B2 (en) Digital signal processor and digital signal processing method
US6363408B1 (en) Method and apparatus for summing selected bits from a plurality of machine vectors
JP3250363B2 (ja) 演算装置
JP2002007117A (ja) 情報処理装置
JP2000270207A (ja) 画像処理装置及びこれを用いたディスプレイ装置
WO2004044731A2 (en) Device and method for performing shift/rotate operations

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20040511