JPH0830577A - Simdプロセッサ - Google Patents

Simdプロセッサ

Info

Publication number
JPH0830577A
JPH0830577A JP6164333A JP16433394A JPH0830577A JP H0830577 A JPH0830577 A JP H0830577A JP 6164333 A JP6164333 A JP 6164333A JP 16433394 A JP16433394 A JP 16433394A JP H0830577 A JPH0830577 A JP H0830577A
Authority
JP
Japan
Prior art keywords
output
data
processing elements
processing
bus
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.)
Pending
Application number
JP6164333A
Other languages
English (en)
Inventor
Yoshitsugu Inoue
喜嗣 井上
Hiroyuki Kawai
浩行 河合
Sutoraitenberugaa Robaato
ロバート・ストライテンベルガー
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP6164333A priority Critical patent/JPH0830577A/ja
Priority to US08/465,245 priority patent/US5729758A/en
Priority to DE19524862A priority patent/DE19524862A1/de
Publication of JPH0830577A publication Critical patent/JPH0830577A/ja
Pending 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
    • 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/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator

Landscapes

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

Abstract

(57)【要約】 【目的】 多様な処理を実行可能なSIMDプロセッサ
を提供する。 【構成】 各プロセシングエレメントPEa0〜PEa
n内に3本のローカルバスLB0〜LB2および3本の
複合演算用バスMOB0〜MOB2を備える。算術論理
演算器AL、乗算器MP、ビット演算器BM、および累
算器AUはそれぞれローカルバスLB0〜LB2および
複合演算用バスMOB0〜MOB2と接続される。この
結果、各演算器は機能の異なる複数のバスを用いて効率
よくデータを転送することができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数の並列プロセシン
グエレメントが同期して動作し、単一のプログラムカウ
ンタで指示される単一の命令によって制御されるSIM
D(単一命令ストリーム・複数データストリーム)プロ
セッサに関し、特に、画像処理用に適したSIMDプロ
セッサに関するものである。
【0002】
【従来の技術】以下、従来の画像処理用SIMDプロセ
ッサについて図面を参照しながら説明する。図22は、
従来のSIMDプロセッサの構成を示すブロック図であ
る。
【0003】図22を参照して、SIMDプロセッサ
は、プログラマブルに全体の制御を行なうコントロール
ユニット100、荷重係数やテンプレートデータを格納
するメモリユニット101、画像データ転送を行なうシ
フトレジスタ121a〜121cを含むデータユニット
102、算術論理演算器(ALU)132および乗算器
(MPY)133を含むプロセシングエレメント(P
E)131a〜131dが複数個並列に配置されたプロ
セッサユニット103、算術論理演算器141、142
を含むリンケージユニット104、比較器によって構成
されるエバリュエーションユニット105を含む。
【0004】プロセッサユニット103内の複数個のプ
ロセシングエレメント131a〜131dの各々は、デ
ータユニット102またはメモリユニット101から並
列に転送される異なるデータに対して、コントロールユ
ニット100からの制御信号に応じて同一の処理を実行
する。各プロセシングエレメント131a〜131dの
演算結果は、リンケージユニット104に転送され、プ
ロセシングエレメント131a〜131d間での統合処
理が行なわれる。たとえば、画像のフィルタリング処理
を行なう場合、局所ウィンドウの各水平方向の画素と荷
重係数の乗算を並列に各プロセシングエレメント131
a〜131dで行ない、その結果がリンケージユニット
104で加算される。
【0005】画像処理としては、上記のフィルタリング
処理だけでなく、画像間の演算、画像の面積あるいは中
心等の計測、パターンマッチング等のように他に多くの
処理がある。上記の各処理のほとんどが大量のデータに
対する単一演算の処理で実行可能な処理である。したが
って、SIMDプロセッサを用いてプログラムを変更す
ることにより種々のアルゴリズムを実行することがハー
ドウェアの節約の観点からも有効な手法である。
【0006】
【発明が解決しようとする課題】しかしながら、従来の
SIMDプロセッサでは、上記のように構成されている
ため、フィルタリング処理は実行できるが、プロセシン
グエレメントの機能が乏しいため、積和演算やビット演
算等の画像処理特有の演算を処理することができなかっ
たり、また、長大な処理ステップ数を必要としていた。
また、プロセシングエレメント間での演算結果がリンケ
ージユニットを通してのみ統合され、その統合結果をプ
ロセシングエレメントに反映することができないため、
統合結果を用いた処理ができないという問題点もあっ
た。上記のように、従来のSIMDプロセッサでは、プ
ログラマブルであっても、その処理速度が遅く、十分な
機能を持たず、画像処理分野の一部の処理に対してのみ
有効であり、その応用範囲が非常に狭いという問題点が
あった。
【0007】本発明は上記課題を解決するためのもので
あって、多様な処理を実行することができ、適用範囲が
広いSIMDプロセッサを提供することを目的とする。
【0008】本発明の他の目的は、高速な処理を実行す
ることができるSIMDプロセッサを提供することであ
る。
【0009】本発明のさらに他の目的は、プロセシング
エレメント間のデータ転送を高速に行なうことができる
SIMDプロセッサを提供することである。
【0010】本発明のさらに他の目的は、回路規模を削
減することができるSIMDプロセッサを提供すること
である。
【0011】本発明のさらに他の目的は、制御バスの本
数を削減することができるSIMDプロセッサを提供す
ることである。
【0012】本発明のさらに他の目的は、命令の記述を
簡略化することができるSIMDプロセッサを提供する
ことである。
【0013】
【課題を解決するための手段】請求項1記載のSIMD
プロセッサは、全体制御手段と、複数のプロセシングエ
レメントと、複数のプロセシングエレメントの各々を一
次元的に並列に接続するグローバルバスと、全体制御手
段と複数のプロセシングエレメントの各々とを接続する
制御バスとを含み、複数のプロセシングエレメントの各
々は、ローカルメモリと、複数の演算手段と、データ入
出力手段と、ローカルメモリ、複数の演算手段、および
データ入出力手段とに接続され、データを伝送するため
の3本のローカルバスと、複数の演算手段の各々に接続
され、複合演算を行なうためのデータを伝送するための
複合演算用バスとを含み、全体制御手段は、同一演算を
行なうように複数のプロセシングエレメントの各々の動
作を制御する。
【0014】請求項2記載のSIMDプロセッサは、請
求項1記載のSIMDプロセッサの構成に加え、上記3
本のローカルバスは、複数の演算手段へデータを入力す
るための2本のデータ入力用ローカルバスと、複数の演
算手段からデータを出力するための1本のデータ出力用
ローカルバスとを含む。
【0015】請求項3記載のSIMDプロセッサは、請
求項2記載のSIMDプロセッサの構成に加え、上記複
数の演算手段は、算術論理演算器と、乗算器と、ビット
演算器と、累算器とを含み、上記複合演算用バスは、算
術論理演算器の出力データを乗算器、ビット演算器、お
よび累算器へ出力するための第1複合演算用バスと、乗
算器の出力データをビット演算器、および累算器へ出力
するための第2複合演算用バスと、ビット演算器の出力
データを累算器へ出力するための第3複合演算用バスと
を含む。
【0016】請求項4記載のSIMDプロセッサは、全
体制御手段と、各々がローカルメモリを含む複数のプロ
セシングエレメントと、複数のプロセシングエレメント
の各々を一次元的に並列に接続するグローバルバスと、
全体制御手段と複数のプロセシングエレメントの各々と
を接続する制御バスとを含み、グローバルバスは、全体
制御手段の出力データを複数のプロセシングエレメント
の各々へ伝送するための第1グローバルバスと、複数の
プロセシングエレメントの各々の出力データを複数のプ
ロセシングエレメントの各々へ出力するための第2グロ
ーバルバスと、複数のプロセシングエレメントのうち1
つのプロセシングエレメントのローカルメモリのデータ
を他のプロセシングエレメントへ出力するための第3グ
ローバルバスとを含む。
【0017】請求項5記載のSIMDプロセッサは、請
求項4記載のSIMDプロセッサの構成に加え、上記複
数のプロセシングエレメントの各々は、さらに、複数の
演算手段と、データ入出力手段と、ローカルメモリ、複
数の演算手段、およびデータ入出力手段とに接続され、
データを伝送するためのローカルバスとを含み、上記ロ
ーカルメモリは、データ入出力手段を介して第3グロー
バルバスと接続される。
【0018】請求項6記載のSIMDプロセッサは、並
列に備えられた8つのプロセシングエレメントと、8つ
のプロセシングエレメント間を論理的に等間隔で接続す
る8本のグローバルバスとを含み、8つのプロセシング
エレメントの各々は、8本のグローバルバスのうち所定
の4本のグローバルバスからデータが入力され、残り4
本のグローバルバスのうち所定の2本のグローバルバス
へデータを出力する。
【0019】請求項7記載のSIMDプロセッサは、請
求項6記載のSIMDプロセッサの構成に加え、上記8
本のグローバルバスは、第1ないし第8グローバルバス
を含み、上記8つのプロセシングエレメントは、第1な
いし第8プロセシングエレメントを含み、上記8つのプ
ロセシングエレメントの各々は、第1および第2出力ポ
ートおよび第1ないし第4入力ポートを含み、第1プロ
セシングエレメントは、第1および第2出力ポートから
第1および第5グローバルバスへそれぞれデータを出力
し、かつ、第1ないし第4グローバルバスから第1ない
し第4入力ポートへそれぞれデータを入力され、第2プ
ロセシングエレメントは、第1および第2出力ポートか
ら第2および第6グローバルバスへそれぞれデータを出
力し、かつ、第2ないし第4、第1グローバルバスから
第1ないし第4入力ポートへそれぞれデータを入力さ
れ、第3プロセシングエレメントは、第1および第2出
力ポートから第3および第7グローバルバスへそれぞれ
データを出力し、かつ、第3、第4、第1、第2グロー
バルバスから第1ないし第4入力ポートへそれぞれデー
タを入力され、第4プロセシングエレメントは、第1お
よび第2出力ポートから第4および第8グローバルバス
へそれぞれデータを出力し、かつ、第4、第1ないし第
3グローバルバスから第1ないし第4入力ポートへそれ
ぞれデータを入力され、第5プロセシングエレメント
は、第1および第2出力ポートから第5および第1グロ
ーバルバスへそれぞれデータを出力し、かつ、第5ない
し第8グローバルバスから第1ないし第4入力ポートへ
それぞれデータを入力され、第6プロセシングエレメン
トは、第1および第2出力ポートから第6および第2グ
ローバルバスへそれぞれデータを出力し、かつ、第6な
いし第8、第5グローバルバスから第1ないし第4入力
ポートへそれぞれデータを入力され、第7プロセシング
エレメントは、第1および第2出力ポートから第7およ
び第3グローバルバスへそれぞれデータを出力し、か
つ、第7、第8、第5、第6グローバルバスから第1な
いし第4出力ポートへそれぞれデータを入力され、第8
プロセシングエレメントは、第1および第2出力ポート
から第8および第4グローバルバスへそれぞれデータを
出力し、かつ、第8、第5ないし第7グローバルバスか
ら第1ないし第4入力ポートへそれぞれデータを入力さ
れる。
【0020】請求項8記載のSIMDプロセッサは、複
数のプロセシングエレメントを含むSIMDプロセッサ
であって、複数のプロセシングエレメントの各々は、ロ
ーカルメモリと、隣接する1つのプロセシングエレメン
トのローカルメモリの出力データを選択的に自身のロー
カルメモリへ入力するための入力手段とを含み、ローカ
ルメモリは、直列に接続される。
【0021】請求項9記載のSIMDプロセッサは、請
求項8記載のSIMDプロセッサの構成に加え、入力手
段は、外部から入力されるデータ、隣接する1つのプロ
セシングエレメントのローカルメモリの出力データ、お
よび自身のローカルメモリの出力データのうち一方のデ
ータを選択的に入力する選択入力手段を含む。
【0022】請求項10記載のSIMDプロセッサは、
複数のプロセシングエレメントを含むSIMDプロセッ
サであって、複数のプロセシングエレメントの各々は、
ローカルメモリを含み、ローカルメモリは、各々が独立
に制御可能な3つのバンクメモリを含む。
【0023】請求項11記載のSIMDプロセッサは、
請求項10記載のSIMDプロセッサの構成に加え、上
記SIMDプロセッサは、さらに、全体制御手段を含
み、上記複数のプロセシングエレメントの各々は、さら
に、複数の演算手段を含み、上記ローカルメモリは、さ
らに、演算手段の演算結果を格納するためのレジスタ
と、全体制御手段から出力されるアドレスとレジスタに
格納された演算結果のうち一方を選択的にバンクメモリ
のアドレスとして出力する選択手段とを含む。
【0024】請求項12記載のSIMDプロセッサは、
全体制御手段と、複数のプロセシングエレメントと、複
数のプロセシングエレメントの各々を一次元的に並列に
接続するグローバルバスと、全体制御手段と複数のプロ
セシングエレメントの各々とを接続する制御バスとを含
み、複数のプロセシングエレメントは、各々が制御信号
に応じて動作する複数の演算手段と、全体制御手段から
制御バスを介して伝送されるオペレーションコードをデ
コードし、複数の演算手段に対応した複数の制御信号お
よびパイプ遅延信号を出力するデコード手段と、複数の
制御信号ごとに設けられ、複数の制御信号のうち対応す
る制御信号を受け、複数のパイプ遅延信号のうち対応す
るパイプ遅延信号に応答して、所定のタイミングで制御
信号を出力する複数のパイプラインレジスタ手段とを含
む。
【0025】請求項13記載のSIMDプロセッサは、
請求項12に記載のSIMDプロセッサの構成に加え、
上記複数の演算手段は、算術論理演算器と、乗算器と、
ビット演算器と、累算器とを含み、上記複数のパイプラ
インレジスタ手段は、デコード手段から出力される算術
論理演算器用の制御信号を格納する1段の第1レジスタ
と、デコード手段から出力される乗算器用の制御信号を
格納し、乗算器用のパイプ遅延信号に応答して所定のタ
イミングで乗算器用の制御信号を出力する2段の第2レ
ジスタと、デコード手段から出力されるビット演算器用
の制御信号を格納し、ビット演算器用のパイプ遅延信号
に応答して所定のタイミングでビット演算器用の制御信
号を出力する3段の第3レジスタと、デコード手段から
出力される累算器用の制御信号を格納し、累算器用のパ
イプ遅延信号に応答して所定のタイミングで累算器用の
制御信号を出力する4段の第4レジスタとを含む。
【0026】請求項14記載のSIMDプロセッサは、
全体制御手段と、複数のプロセシングエレメントと、複
数のプロセシングエレメントの各々を一次元的に並列に
接続するグローバルバスと、全体制御手段と複数のプロ
セシングエレメントの各々とを接続する制御バスとを含
み、複数のプロセシングエレメントの各々は、各々が制
御信号に応じて動作する複数の演算手段と、複数の演算
手段の各々が出力する演算結果に対応するフラグと、全
体制御手段から制御バスを介して出力される条件判定コ
ードとを比較する比較手段と、比較手段の比較結果に応
じて、全体制御手段から制御バスを介して複数の演算手
段ごとに出力される制御信号にマスクをかけ、制御信号
を出力するマスク手段とを含む。
【0027】請求項15記載のSIMDプロセッサは、
請求項14記載のSIMDプロセッサの構成に加え、上
記比較手段は、複数のフラグのうち所定のフラグを選択
するセレクタと、セレクタの出力と条件判定コードとを
比較し、所定の比較結果を出力ずる比較判定器とを含
み、上記マスク手段は、比較判定器が出力する比較結果
を格納するレジスタと、複数の制御信号ごとに設けら
れ、レジスタの出力と制御信号の各々との論理積を複数
の演算手段のうち対応する演算手段へ出力する複数のA
ND回路とを含む。
【0028】請求項16記載のSIMDプロセッサは、
全体制御手段と、各々が制御信号に応じて動作する複数
の演算手段を含む複数のプロセシングエレメントと、全
体制御手段と複数のプロセシングエレメントの各々とを
一次元的に並列に接続するグローバルバスおよび制御バ
スとを含み、全体制御手段は、複数の演算手段ごとに対
応した制御信号をパイプ遅延させるパイプライン手段を
含み、パイプライン手段は、制御バスを介して複数のプ
ロセシングエレメントの各々に、パイプ挿入に必要な複
数のパイプ遅延値とパイプ遅延した制御信号とを出力
し、上記複数のプロセシングエレメントの各々は、さら
に、複数の演算手段の各々が出力する演算結果に対応す
るフラグと、全体制御手段から制御バスを介して出力さ
れる条件判定コードとを比較する比較手段と、複数のパ
イプ遅延値および比較手段の比較結果に応じて、パイプ
ライン手段から出力される制御信号にマスクをかけ、制
御信号を対応する複数の演算手段に出力するマスク手段
とを含む。
【0029】請求項17記載のSIMDプロセッサは、
請求項16記載のSIMDプロセッサの構成に加え、上
記比較手段は、複数のフラグのうち所定のフラグを選択
するセレクタと、セレクタの出力と条件判定コードとを
比較し、所定の比較結果を出力する比較判定器とを含
み、上記マスク手段は、比較判定器が出力する比較結果
を格納するレジスタと、複数のパイプ遅延値に応じて、
比較手段の比較結果を出力する比較結果出力手段と、制
御信号ごとに設けられ、比較結果出力手段から出力され
る比較結果と全体制御手段から出力される制御信号の各
々との論理積を複数の演算手段のうち対応する演算手段
へ出力する複数のAND回路とを含む。
【0030】請求項18記載のSIMDプロセッサは、
複数のプロセシングエレメントと、リンク処理手段と、
複数のプロセシングエレメントの各々とリンク処理手段
とを一次元的に並列に接続するグローバルバスとを含
み、リンク処理手段は、少なくとも、加算、および最大
値/最小値演算が可能な算術論理演算器と、データを記
憶するローカルメモリとを含む。
【0031】請求項19記載のSIMDプロセッサは、
請求項18記載のSIMDプロセッサの構成に加え、上
記リンク処理手段は、さらに、グローバルバスにより伝
送されるデータの入出力を行なうインタフェース手段
と、インタフェース手段の出力およびローカルメモリの
出力のうち一方を選択的に算術論理演算器へ出力する第
1セレクタと、算術論理演算器の出力を格納するレジス
タと、レジスタの出力およびローカルメモリの出力のう
ち一方を選択的に算術論理演算器へ出力する第2セレク
タとを含み、上記ローカルメモリは、算術論理演算器の
出力を記憶する。
【0032】請求項20記載のSIMDプロセッサは、
8つのプロセシングエレメントと、リンク処理手段と、
8つのプロセシングエレメントの各々とリンク処理手段
とを一次元的に並列に接続するグローバルバスとを含
み、リンク処理手段は、8つのプロセシングエレメント
の各々の出力データを上位データと下位データとに分割
して上位データおよび下位データのうち一方を選択的に
出力する8つの分割手段を含み、リンク処理手段は、8
つの分割手段のうち2つの出力データを合わせてそれぞ
れ4つの出力データを出力する。
【0033】請求項21記載のSIMDプロセッサは、
請求項20記載のSIMDプロセッサの構成に加え、上
記リンク処理手段は、少なくとも、加算、および最大値
/最小値演算が可能な算術論理演算器と、データを記憶
するローカルメモリとを含む。
【0034】請求項22記載のSIMDプロセッサは、
複数のプロセシングエレメントと、リンク処理手段と、
複数のプロセシングエレメントの各々とリンク処理手段
とを一次元的に並列に接続するグローバルバスとを含
み、リンク処理手段は、複数のプロセシングエレメント
からグローバルバスを介して入力される複数のデータに
対してソーティングを行なうためのソーティング手段
と、ソーティング手段によりソーティングされる複数の
データの各々に対して所定のコードを割付けるコード割
付手段とを含む。
【0035】請求項23記載のSIMDプロセッサは、
請求項22記載のSIMDプロセッサの構成に加え、上
記コード割付手段は、ソーティング手段によるデータの
移動および格納と同様にコードを移動および格納させ
る。
【0036】
【作用】請求項1ないし請求項3記載のSIMDプロセ
ッサにおいては、複数の演算手段の各々が、3本のロー
カルバスおよび複合演算用バスにより選択的にデータを
転送することができるので、プロセシングエレメント内
のデータ転送の効率が高くなる。
【0037】請求項4および請求項5記載のSIMDプ
ロセッサにおいては、3本の第1ないし第3グローバル
バスを具備することにより、プロセシングエレメント間
でのデータの転送をフレキシブルかつ高速に実行するこ
とができる。
【0038】請求項6および請求項7記載のSIMDプ
ロセッサにおいては、各プロセシングエレメントがグロ
ーバルバスにより論理的に等間隔で接続されているの
で、プロセシングエレメント間でのデータ転送を高速に
行なうことが可能となる。
【0039】請求項8および請求項9記載のSIMDプ
ロセッサにおいては、各プロセシングエレメント内のロ
ーカルメモリが直列にチェーン状に接続されるため、ロ
ーカルメモリを画像処理に有効なラインメモリとして機
能させることができる。
【0040】請求項10および請求項11記載のSIM
Dプロセッサにおいては、ローカルメモリが、独立に制
御可能な3つのバンクメモリから構成されているので、
同時に2つのバンクメモリが読出動作を行ない、1つの
バンクメモリが書込動作を行なうことができるので、高
速な処理が可能となる。
【0041】請求項12および請求項13記載のSIM
Dプロセッサにおいては、各プロセシングエレメントが
命令用のパイプラインレジスタ手段を具備し、全体制御
手段からのオペレーションコードをデコードして複数の
演算手段に対応した複数の制御信号を、パイプ遅延信号
に応答して所定のタイミングで出力しているので、全体
制御手段から出力される制御信号はオペレーションコー
ドのみとなり、制御バスの本数を削減することが可能と
なる。
【0042】請求項14および請求項15記載のSIM
Dプロセッサにおいては、各制御手段から出力されるフ
ラグを全体制御手段から出力される条件判定コードに応
じて比較判定し、制御信号にマスクをかけているので、
同じ制御信号で並列に動作している複数のプロセシング
エレメントを演算手段の演算結果に応じて選択的に動作
させることができる。
【0043】請求項16および請求項17記載のSIM
Dプロセッサにおいては、パイプ遅延値および比較手段
の比較結果に応じて全体制御手段からの制御信号にマス
クをかけ、演算手段に制御信号を出力しているので、制
御信号の命令記述が容易となり、任意の位置で条件判定
命令を記述できる。
【0044】請求項18および請求項19記載のSIM
Dプロセッサにおいては、加算、最大値/最小値演算が
可能な算術論理演算器およびローカルメモリを具備して
いるので、各プロセシングエレメント間でのデータ転送
を行なうことなくソーティング処理を行なうことが可能
となる。
【0045】請求項20および請求項21記載のSIM
Dプロセッサにおいては、各プロセシングエレメントの
出力を上位および下位のデータに分割して選択的に出力
することができるので、様々なモードでデータを出力す
ることが可能となる。
【0046】請求項22および請求項23記載のSIM
Dプロセッサにおいては、リンク処理手段においてソー
ティングされたデータに対して所定のコードを割付けて
いるので、各プロセシングエレメント内でコードを生成
する必要がなくなる。
【0047】
【実施例】以下、本発明の第1の実施例のSIMDプロ
セッサについて図面を参照しながら説明する。図1は、
本発明の第1の実施例のSIMDプロセッサの構成を示
す図である。
【0048】図1を参照して、SIMDプロセッサは、
各プロセシングエレメントの制御を行なう全体制御部
(CU)CUa、複数のプロセシングエレメント(P
E)PEa0〜PEan、プロセシングエレメントPE
a0〜PEanの各々を一次元的に並列に接続するグロ
ーバルバスGB、全体制御部CUaと各プロセシングエ
レメントPEa〜PEnとを接続する制御バスCBを含
む。
【0049】各プロセシングエレメントPEa0〜PE
anは、ローカルメモリ(LM)LMa、データ入出力
部(IO)IOa、ALUブロックALB、MPYブロ
ックMB、BMUブロックBB、AUブロックAUB、
ローカルバスLB0〜LB2、複合演算用バスMOB0
〜MOB2を含む。
【0050】AULブロックALBは、レジスタR1
(REG)R1〜R3、セレクタ(SEL)S1、算術
論理演算器(ALU)ALを含む。MPYブロックMB
は、セレクタS2〜S4、レジスタR5〜R7、乗算器
(MPY)MPを含む。BMUブロックBBは、セレク
タS5〜S7、レジスタR8〜R10、ビット演算器
(BMU)BMを含む。AUブロックAUBは、セレク
タS8、S9、レジスタR11、S12、累算器(A
U)AUを含む。
【0051】複数のプロセシングエレメントPEa0〜
PEanは、全体制御部CUから制御バスCBを介して
出力される制御信号によって制御される。各プロセシン
グエレメントは同一の処理を実行し、プロセシングエレ
メント間でのデータの転送はグローバルバスGBにより
行なわれる。
【0052】プロセシングエレメント内のALUブロッ
クALB、MPYブロックMB、BMUブロックBB、
およびAUブロックAUBはローカルバスLB0〜LB
2により接続されている。
【0053】ローカルメモリLMaは、制御バスCBを
介して伝送される制御信号によって制御され、ローカル
バスLB2から読出したデータを記憶する。ローカルメ
モリLMaから読出されたデータは、ローカルバスLB
0、LB1に出力される。
【0054】データ入出力部IOaは、各プロセシング
エレメントPEa0〜PEan内のデータを他のプロセ
シングエレメント間で交換する場合にデータの入出力の
制御を行なう。
【0055】算術論理演算器ALは、レジスタR1およ
びR2を介してローカルバスLB0およびLB1により
転送されたデータをソースとする2つの入力に対して、
加算、減算、絶対値等の算術演算、または、論理和、論
理積、排他的論理和等の論理演算を全体制御部CUaか
ら出力される制御信号に応じて実行する。算術論理演算
器ALの演算結果は、複合演算用バスMOB0を介して
レジスタR3、MPYブロックMB、BMUブロックB
B、AUブロックAUBへ出力される。
【0056】セレクタS2には、ローカルバスLB0の
データおよび複合演算用バスMOB0のデータが入力さ
れ、いずれか一方のデータをレジスタR5へ出力する。
セレクタS3も同様にローカルバスLB1および複合演
算用バスMOB0のデータを選択的にレジスタR6へ出
力する。乗算器MPはレジスタR5およびR6のデータ
を受ける。つまり、乗算器MPは、ローカルバスLB0
および算術論理演算器AUの出力のうち一方を第1の入
力とし、ローカルバスLB1および算術論理演算器AU
の出力のうち一方を第2の入力とした2つの入力データ
の乗算を行なう。乗算器MPの演算結果は、レジスタR
7、または複合演算用バスMOP1を介してMPYブロ
ックMBおよびAUブロックAUBへ出力される。
【0057】セレクタS5にはローカルバスLB0およ
び複合演算用バスMOB1のデータが入力され、いずれ
か一方を選択的にレジスタR8へ出力する。セレクタS
6も同様にローカルデータバスLB1および複合演算用
バスMOB1のデータのうちいずれか一方をレジスタR
9へ出力する。ビット演算器BMは、レジスタR8およ
びR9のデータを受ける。つまり、ビット演算器BM
は、ローカルデータバスLB0および乗算器MPの出力
のうち一方を第1の入力とし、ローカルバスLB1およ
び算術論理演算器ALの出力のうち一方を第2の入力と
した2つの入力データに対して、大別して以下の2種類
の演算のうちいずれか一方を実行する。
【0058】図2は、図1に示すビット演算器の構成を
示すブロック図である。図2を参照して、ビット演算器
BMは、論理演算器BM1、ビットカウンタBM2、シ
フタBM3、セレクタS11を含む。
【0059】ビット演算器BMにおける第1の演算は、
論理演算器BM1およびシフタBM3によって行なわれ
るシフト演算である。つまり、レジスタR8から出力さ
れる第1の入力BS1とレジスタR9から出力される第
2の入力BS2の論理和または論理積を実行した結果、
または2つの入力BS1、BS2のうち一方に対して、
論理シフト、算術シフトを実行する。
【0060】第2の演算は、ビットカウンタBM2にお
いて第2の入力BS2中に含まれる“1”の数を計測す
る。第1および第2の演算結果のうち一方がセレクタS
11により選択され、出力BS3として出力される。出
力BS3は、レジスタR10、および複合演算用バスM
OB2を介してAUブロックAUBへ出力される。
【0061】再び図1を参照して、セレクタS8には、
複合演算用バスMOB0〜MOB1を介して算術論理演
算器AL、乗算器MP、およびビット演算器BMの各デ
ータが入力され、入力した3つのデータのうち1つを選
択し、レジスタR11へ出力する。累算器AUには、レ
ジスタR11のデータおよびレジスタR12を介して自
身の出力が入力される。累算器AUは、セレクタS8に
より選択されたデータ、または選択されたデータとレジ
スタR12のデータとの間で加算した結果をレジスタR
11にセットする。
【0062】各演算器の出力側のレジスタR3、R7、
R10、R12の各データは、セレクタS1、S4、S
7、S9を経由して、ローカルバスLB0〜LB2に選
択的に出力される。
【0063】演算は、一般に2つのデータを入力して1
つの結果を得る。したがって、本実施例では、ローカル
バスLB0およびLB1を2つの入力用データバスとし
て用い、演算結果をローカルメモリLMaに書込む。ま
た、各プロセシングエレメント間でデータを交換するた
めの出力用データバスとしてローカルバスLB2を用い
る。したがって、上記のように3本のローカルバスLB
0〜LB3をプロセシングエレメント内に具備すること
により、1つの演算命令に対して必要なデータ転送を独
立して同時に実行することができ、高速な処理が可能と
なる。
【0064】また、差分自乗和のような複数の演算器を
順番に経由して処理する必要がある複合演算に対して
は、各演算器の出力側のレジスタR3、R7、R10お
よびローカルバスLB0〜LB2を介してデータを転送
することなく、各演算器間を直接接続した複合演算用バ
スMOB0〜MOB2を介してデータの転送を行なう。
したがって、本実施例のプロセシングエレメントでは、
各マシンサイクルごとに同じ差分自乗和演算を実行する
ことができる。つまり、差分自乗和演算の場合には、ロ
ーカルメモリLMaから同時に読出された2つのデータ
が、ローカルバスLB0およびLB1を経由して、算術
論理演算器ALに入力され、入力の減算が実行される。
減算結果は、複合演算用バスMOB0を介して伝送さ
れ、乗算器MPの2つの入力となる。乗算器MPは、2
つの入力により自乗演算を実行する。自乗演算結果は、
複合演算用バスMOB1を介して伝送され、ビット演算
器BMの入力となる。入力されたデータは論理演算器B
M1をそのまま通過し、シフタBM3により桁合わせの
ための算術シフトが行なわれる。シフト結果は、複合演
算用バスMOB2を介して伝送され、累算器AUの入力
となる。累算器AUによりレジスタR12のデータと入
力との加算が行なわれる。上記の処理により、算術論理
演算器ALは常に減算を行ない、乗算器MPは常に乗算
を行ない、ビット演算器BMは常に算術シフトを行な
い、累算器AUは常に累算を行なうことができる。この
結果、データ転送命令を間に挿入することなく、差分自
乗和演算を絶え間なく繰返し実行することが可能とな
る。
【0065】他に複合演算としては、差分絶対値和、ま
たは、2値画像に対する処理で頻繁に行なわれるローカ
ルメモリデータに対するマスク演算後のデータ中に含ま
れる“1”の数の累算がある。このような複合演算で
も、本実施例では上記と同様に高速に処理することが可
能である。また、複合演算実行中に、その複合演算処理
で使われない演算器、または複合演算処理で既に演算が
終了している演算器に対しては、複合演算処理が終了す
るのを待つことなく、複合演算命令と同時に異なる演算
命令に属する処理を実行することが可能である。
【0066】さらに、各演算器出力は、出力側のレジス
タR3、R7、R10、R12に格納された後に、ロー
カルバスLB2を介してローカルメモリLMaまたはデ
ータ入出力部IOaへ転送される。したがって、レジス
タR3、R7、R10、R12を一次レジスタとして使
用することが可能である。この結果、ローカルメモリL
Maを介さず、またはローカルメモリLMaへの書込と
同時に書込まれるデータを次の命令のソースとすること
が可能となる。
【0067】上記のように第1の実施例では、並列に配
置された複数のプロセシングエレメントを含むSIMD
プロセッサにおいて、ローカルメモリ、データ入出力
部、算術論理演算器、乗算器、ビット演算器、累算器の
各機能ブロックと2入力1出力用の3本のローカルバス
を具備するとともに、各演算器出力が出力側のレジスタ
あるいは他の演算器の入力側のセレクタに入力され、さ
らに、出力側のレジスタからは選択的にローカルバスに
出力可能な構成になっているので、プロセシングエレメ
ント内におけるデータ転送の効率が高く、高速に種々の
演算を実行することができる。
【0068】次に、本発明の第2の実施例のSIMDプ
ロセッサについて説明する。図3は、本発明の第2の実
施例のSIMDプロセッサの主要部の構成を示すブロッ
ク図である。
【0069】図3を参照して、SIMDプロセッサは、
全体制御部CUa、複数のプロセシングエレメントPE
b0〜PEbnを含む。各プロセシングエレメントPE
b0〜PEbnはデータ入出力部IOb、ローカルメモ
リLMb、ローカルバスLB0〜LB2を含む。図3に
示すプロセシングエレメントPEb0〜PEbnは、図
1に示すプロセシングエレメントPEa0〜PEanと
同様にALUブロックALB、MPYブロックMB、B
MUブロックBB、AUブロックAUBを含むが、説明
を簡略化するため図示を省略している。したがって、こ
れらの各ブロックの動作は図1に示すプロセシングエレ
メントPEa0〜PEanと同様であるので詳細な説明
は省略する。
【0070】次に、第2の実施例の特徴部分について詳
細に説明する。ローカルメモリLMbから読出されたデ
ータは、ローカルバスLB0、LB1に出力されるとと
もに、データ入出力部IObにも出力される。データ入
出力部IObは、全体制御部CUaから出力されるデー
タを伝送するためのグローバルバスGIB、プロセシン
グエレメントPEb0〜PEbn間のデータの交換を行
なうためのグローバルバスGPB、ローカルメモリLM
bからデータ入出力部IObへ入力されたデータを出力
するためのグローバルバスGMBにより外部と接続され
ている。
【0071】グローバルバスGIBにおいて、全体制御
部CUaに入力される命令中に含まれた即値データまた
は全体制御部CUa中のレジスタデータが転送される。
演算命令で既知の共通のデータとの演算を行なう場合、
または全体に共通のデータをローカルメモリLMb、演
算器出力レジスタ(図示省略)にセットする場合に、グ
ローバルバスGIBを介してデータの転送が行なわれ
る。
【0072】グローバルバスGPBは、プロセシングエ
レメントPEb0〜PEbnの数だけその本数があり、
プロセシングエレメントPEb0〜PEbn間で同時に
データの転送を行なうことができる。並列に接続された
プロセシングエレメントPEb0〜PEbnの演算結果
の総和を求める場合、または、一定の間隔を置いたプロ
セシングエレメントPEb0〜PEbn間でのデータの
転送を行なう場合、グローバルバスGPBを介してデー
タの転送が行なわれる。
【0073】グローバルバスGMBは、並列に接続され
た複数個のプロセシングエレメントPEb0〜PEbn
のうちの任意の1つのプロセシングエレメントに含まれ
るローカルメモリLMbのデータを他のすべてのプロセ
シングエレメントに転送する場合に用いられる。
【0074】上記の構成により、第2の実施例では、デ
ータ転送を行なうグローバルバスとして、全体制御部C
UaからすべてのプロセシングエレメントPEb0〜P
Ebnにデータを分配するバスGIB、データ入出力部
IObを介してすべてのプロセシングエレメントPEb
0〜PEbn内の出力用ローカルバスLB2と接続され
たバスGPB、すべてのプロセシングエレメントPEb
0〜PEbnのうちの任意の1つのプロセシングエレメ
ント内のローカルメモリLMbから読出されたデータを
他のすべてのプロセシングエレメントに出力するバスG
MBの3組のバスを具備することにより、各プロセシン
グエレメント間でのデータの授受をフレキシブルにかつ
高速に実行することが可能となる。また、複数のグロー
バルバスを介してデータ転送を行なうことができるた
め、種々の演算をより高速に行なうことができ、多様な
処理を実行することが可能となる。
【0075】次に、本発明の第3の実施例のSIMDプ
ロセッサについて説明する。図4は、本発明の第3の実
施例である8並列のプロセシングエレメントを有するS
IMDプロセッサの主要部の構成を示すブロック図であ
る。
【0076】図4を参照して、SIMDプロセッサは、
8個のプロセシングエレメントPEc0〜PEc7、8
本のグローバルバスGP0〜GP7を含む。各プロセシ
ングエレメントPEc0〜PEc7はデータ入出力部I
Oc0〜IOc3を含む。図4では、説明を容易にする
ため、全体制御部、制御バス、ローカルメモリ、MPY
ブロック、BMUブロック、AUブロックについては図
示を省略しているが、これらの各ユニットは図1に示す
ものと同様であり同様に動作を行なうので、以下その説
明を省略する。
【0077】プロセシングエレメントPEc0およびP
Ec4には、データ入出力部IOc0が、プロセシング
エレメントPEc1およびPEc5にはデータ入出力部
IOc1が、プロセシングエレメントPEc2およびP
Ec6にはデータ入出力部IOc2が、プロセシングエ
レメントPEc3およびPEc7にはデータ入出力部I
Oc3がそれぞれグローバルバスGP0〜GP7とのイ
ンタフェース部として具備されている。
【0078】各データ入出力部IOc0〜IOc3は、
プロセシングエレメントからのデータの出力部として2
つの出力ポートd0およびd1、入力部として4つの入
力ポートs0〜s3を含み、各ポートがグローバルバス
GP0〜GP7の所定のバスと接続されている。具体的
には、プロセシングエレメントPEc0およびPEc4
のデータ入出力部IOc0からの出力は、グローバルバ
スGP0およびGP4に、プロセシングエレメントPE
c1およびPEc5のデータ入出力部IOc1からの出
力は、グローバルバスGP1およびGP5に、プロセシ
ングエレメントPEc2およびPEc6のデータ入出力
部IOc2からの出力は、グローバルバスGP2および
GP6に、プロセシングエレメントPEc3およびPE
c7のデータ入出力部IOc3からの出力は、グローバ
ルバスGP3およびGP7に、それぞれ接続され、出力
ポートd0およびd1が異なるグローバルバスに接続さ
れる。また、プロセシングエレメントPEc0〜PEc
3への4つの入力は、グローバルバスGP0〜GP3か
らのデータを受け、プロセシングエレメントPEc4〜
PEc7への入力はグローバルバスGP4〜GP7から
入力され、それぞれ入力ポートs0〜s3とグローバル
バスの順序が1つずつシフトして接続されている。
【0079】次に、図4に示すデータ入出力部について
さらに詳細に説明する。図5は、図4に示すデータ入出
力部IOc0の一実施例の構成を示す図である。
【0080】図5を参照して、データ入出力部IOc0
は、判定部I1、セレクタS21、S22、バスドライ
バI2、I3を含む。
【0081】ローカルバスLB2上のデータは、セレク
タS21により出力d0またはd1のいずれか一方へ選
択的に出力される。また、入力S0〜S3の中から1つ
のデータがセレクタS22によって選択される。選択さ
れたデータはバスドライバI2およびI3へ入力され、
制御バスCBを介して入力された制御信号に応じてロー
カルバスLB0またはLB1に出力される。また、セレ
クタS21およびS22の動作は、制御バスCBを介し
て入力された制御信号SGを基に判定部I1が出力する
制御信号により制御される。
【0082】データ入出力部の構成は、データ入出力部
IOc0〜IOc3でほぼ同様であるが、グローバルバ
スGP0〜GP7との間でのデータの入出力の選択を決
定する判定部I1の機能がそれぞれ異なる。判定部I1
には、制御バスCBから3ビットのグローバルバス入出
力制御信号SGが入力される。グローバルバス入出力制
御信号SGは、すべてのプロセシングエレメントに共通
して入力され、データ入出力部ごとにグローバルバスと
の間の入出力選択信号の指定が異なる。
【0083】次に、グローバルバス入出力制御信号SG
とデータ入出力部の入出力選択との関係について説明す
る。図6は、グローバルバス入出力制御信号とデータ入
出力部の入出力選択との関係を示す図である。
【0084】グローバルバス入出力制御信号SGは、デ
ータを交換するプロセシングエレメント間の距離を表わ
し、たとえば、SG=“011”の場合は、プロセシン
グエレメントPEc0はプロセシングエレメントPEc
3から、プロセシングエレメントPEc1はプロセシン
グエレメントPEc4からというように、各プロセシン
グエレメントがそれぞれ3つ右隣のプロセシングエレメ
ントからのデータを受け取ることを意味する。
【0085】制御信号SGが“001”〜“100”の
場合には、データ入出力部IOc0は出力ポートd1か
らデータを出力し、それ以外は出力ポートd0からデー
タを出力する。データ入出力部IOc1は、グローバル
バス入出力制御信号SGが“010”〜“101”の場
合に出力ポートdからデータを出力し、それ以外は出力
ポートd0からデータを出力する。データ入出力部IO
c2は、グローバルバス入出力制御信号SGが“01
1”〜“110”の場合に、出力ポートd1からデータ
を出力し、それ以外は出力ポートd0からデータを出力
する。データ入出力部IOc3は、グローバルバス入出
力制御信号SGが“100”〜“111”の場合に、出
力ポートd1からデータを出力し、それ以外は出力ポー
トd0からデータを出力する。また、グローバルバスと
データ入出力部との接続順序はデータ入出力部ごとにシ
フトしているので、入力の選択はすべてのデータ入出力
部で共通する。つまり、グローバルバス入出力制御信号
SGの下位2ビットが“00”の場合には、入力ポート
s0を、“01”の場合は入力ポートs1を、“10”
の場合は入力ポートs2を、“11”の場合は入力ポー
トs3をそれぞれ選択する。
【0086】以上の構成により、第3の実施例である8
並列のプロセシングエレメントを有するSIMDプロセ
ッサにおいては、グローバルバスとの接続を4入力2出
力として、各プロセシングエレメントでグローバルバス
との接続と入出力の選択を異なるものとしたため、グロ
ーバルバスとの接続の組合せと入出力の選択の組合せと
によって、各プロセシングエレメントが論理的に等間隔
でデータの転送を行なうことが可能となる。したがっ
て、各プロセシングエレメントとグローバルバスとの接
続本数が削減されるとともに、各プロセシングエレメン
トの回路規模が削減される。さらに、各プロセシングエ
レメントが論理的に等間隔でデータの転送を行なうこと
ができるので、プロセシングエレメント間でのデータの
転送を高速にかつ様々なプロセシングエレメントの組合
せに対して実行することが可能となる。
【0087】次に、本発明の第4の実施例のSIMDプ
ロセッサについて説明する。図7は、本発明の第4の実
施例のSIMDプロセッサの主要部の構成を示すブロッ
ク図である。
【0088】図7を参照して、SIMDプロセッサは、
複数のプロセシングエレメントPEd0〜PEdnを含
む。プロセシングエレメントPEd0は、セレクタS3
0、ローカルメモリLMc0、ローカルバスLB0〜L
B2を含む。他のプロセシングエレメントPEd1〜P
Ednも同様である。また、図4では、説明を容易にす
るため、全体制御部、制御バス、グローバルバス、デー
タ入出力部、ALUブロック、MPUブロック、BMU
ブロック、AUブロックについては図示を省略している
が、これらは図1に示すものと同様であり同様に動作す
るので以下その説明を省略する。
【0089】セレクタS32は、外部入力EX、EX
0、ローカルバスLB2のデータが入力される。セレク
タS30は入力されたデータを選択し、ローカルメモリ
LMc0へ出力する。ローカルメモリLMc0は入力し
たデータを記憶し、記憶したデータをローカルバスLB
0およびLB1、セレクタS31へ出力する。以降同様
にローカルメモリのデータが次段のローカルメモリに順
次出力される。つまり、ローカルメモリから読出された
データは、ローカルバスLB0、LB1に出力され、そ
の一方が右隣のプロセシングエレメントのローカルメモ
リへ出力される。書込まれるデータは、左隣のプロセシ
ングエレメントのローカルメモリから出力されたデータ
LD0〜LDn−1、外部入力EX0〜EXn、ローカ
ルバスLB2のデータの3つのデータから1つのデータ
がセレクタS30〜S3nにより選択される。最左端の
プロセシングエレメントにおける隣接するプロセシング
エレメントからの入力は、外部入力EXである。各プロ
セシングエレメントに接続された外部入力EX0〜EX
nはそれぞれ独立した固有の外部入力である。
【0090】次に、フィルタリングにおける局所処理に
ついて説明する。図8は、フィルタリングにおける局所
処理を説明するための図である。画像PCに対してフィ
ルタリングにおける3×3の局所処理を施す場合、以下
のようになる。プロセシングエレメントPEd0は、常
に局所ウィンドウWの最下列に対する処理を行ない、プ
ロセシングエレメントPEd1はその1つ上の水平ライ
ンを、プロセシングエレメントPEd2はさらにその1
つ上の水平ラインを処理する。3つのプロセシングエレ
メントは、常に水平方向画像が同じ位置の画素に対する
処理を行なう。プロセシングエレメントPEd0の外部
入力EXとして画像Pをラスタ操作して得られる画像デ
ータLDiが順次入力され、ローカルメモリLMc0に
書込まれる。画像Pの水平方向の1ライン分のデータの
転送が終了すると、次のラインのデータ転送を開始する
とともに既に書込まれたラインに対する処理を開始す
る。
【0091】すべてのプロセシングエレメントのローカ
ルメモリから1ラインずつずれたラインの同じ水平方向
位置の画素データが読出される。読出された画素データ
は、隣接するプロセシングエレメントのローカルメモリ
の書込データとなり、同じアドレスに格納される。上記
操作を繰返すことにより、1ライン分の処理が終了した
時点で、各ローカルメモリにあった水平方向の1ライン
の画素データはすべて隣接するローカルメモリへ転送さ
れる。
【0092】また、画像Pを領域分割して、プロセシン
グエレメントがその分割された領域に対する処理を分担
する場合には、ローカルメモリへはそれぞれ独立した外
部入力から画像データを選択入力する。
【0093】以上の処理により、第4の実施例における
SIMDプロセッサのローカルメモリでは、ローカルメ
モリに対する書込データとして、隣接するローカルメモ
リの読出データを選択することができるので、ローカル
メモリをチェーン状に直列に接続することができ、ロー
カルメモリを画像処理に有効なラインメモリとして機能
させることができる。また、個々のローカルメモリが独
立した外部入力を書込可能とすることにより、高速なデ
ータ転送を実現し、かつ、並列に動作させることができ
る。この結果、高速な処理が可能となり、また、上記の
各処理を選択的に行なえるので幅広い用途に使用するこ
とが可能となる。
【0094】次に、本発明の第5の実施例のSIMDプ
ロセッサについて説明する。図9は、本発明の第5の実
施例のSIMDプロセッサの主要部の構成を示すブロッ
ク図である。
【0095】図9を参照して、SIMDプロセッサは、
プロセシングエレメントPEe、制御バスCBを含む。
プロセシングエレメントPEeは、ローカルメモリLM
d、ローカルバスLB0〜LB2を含む。ローカルメモ
リLMdは、セレクタS41〜S46、レジスタR2
1、バンクメモリBa〜Bcを含む。図9では、説明を
容易にするため、全体制御部、グローバルバス、ALU
ブロック、MPYブロック、BMUブロック、AUブロ
ック、データ入出力部については図示を省略している
が、これらは図1に示すものと同様であり同様に動作す
るので以下その説明を省略する。また、プロセシングエ
レメントとして1つのプロセシングエレメントPEeの
みを表わしているが、複数のプロセシングエレメントを
具備してもよい。
【0096】ローカルメモリLMdは、同じ容量を持つ
3つのバンクメモリBa〜Bcが並列に配置された3バ
ンク構成をなし、各バンクメモリBa〜Bcは、制御バ
スCBを介して読出および書込のイネーブル信号ena
bleA〜enableCおよびアドレスadrA〜a
drCが与えられる。また、同時に、3つのバンクメモ
リのうち2つのバンクメモリを読出に用い、他の1つの
バンクメモリを書込に用いることができる。各バンクメ
モリBa〜Bcの出力は、ローカルバスLB0およびL
B1とセレクタS45およびS46を介してそれぞれ接
続され、制御バスCBのアドレス選択信号selS0お
よびselS1によっていずれかのバンクメモリの出力
がローカルバスLB0およびLB1へ出力される。書込
データとしては、ローカルバスLB2上のデータまたは
プロセシングエレメントPEe外部から入力されたデー
タのいずれかが制御信号selWによってセレクタS4
1により選択される。
【0097】また、アドレスとしては、ローカルバスL
B2上のデータをレジスタR21に格納しておき、全体
制御部(図示省略)から制御バスCBを介して与えられ
るアドレスadrA〜adrCとレジスタR21のデー
タのうち一方をアドレス選択信号selA〜selCに
よってセレクタS42〜S44により選択可能である。
演算結果を用いてテーブルルックアップ処理を行なう場
合、ルックアップテーブルを格納しているバンクメモリ
は予めわかっているので、そのバンクメモリに対して読
出のイネーブル信号を出力し、レジスタR21に格納し
ておいた演算結果をアドレスとして選択するようにアド
レス選択信号を出力することにより、すべてのプロセシ
ングエレメントで同じバンクメモリからデータが読出さ
れる。したがって、レジスタR21に格納された演算結
果をアドレスとして選択できるので、読出されるアドレ
スは各プロセシングエレメントで異なるという処理が実
行できる。さらに、演算結果を読出アドレスとしてだけ
でなく、書込アドレスとしても選択可能である。したが
って、演算結果から得られるアドレスのデータに対して
演算を行なった結果を再び同じアドレスに書込むリード
モデファイ動作も実行することができる。
【0098】以上の構成により、本発明の第5の実施例
におけるSIMDプロセッサのローカルメモリにおいて
は、個々に制御可能な3つのバンクメモリを具備するこ
とにより、そのうち同時に2つが読出動作、1つが書込
動作を実行することができる。したがって、高速な処理
が可能となる。また、演算結果を格納するレジスタR2
1を具備し、レジスタR21に格納した演算結果をアド
レスとして選択することができるので、同一の制御信号
で並列動作しているプロセシングエレメントにおいて各
自独自のアドレッシングが可能となり、より高度な処理
を実現することが可能となる。
【0099】次に、本発明の第6の実施例のSIMDプ
ロセッサについて説明する。図10は、本発明の第6の
実施例のSIMDプロセッサの構成を示すブロック図で
ある。図10に示すSIMDプロセッサと図1に示すS
IMDプロセッサとで異なる点は、PE演算制御部PO
Caが付加され、各演算器ブロックへ制御信号cAL
U、cMPY、cBMU、cAUがそれぞれ出力される
点であり、その他の点は図1に示すものと同様であるの
で同一部分には同一符号を付し以下その説明を省略す
る。
【0100】全体制御部CUbは、後述するニーモニッ
クが2値のコードに変換された命令列を格納し、プロセ
シングエレメントPEf0〜PEfnが順次実行するよ
うに制御信号を制御バスCBを介して出力する。PE演
算制御部POCaは、制御バスCBを介して上記命令中
の6ビットのオペレーションコードopcodeが入力
される。
【0101】次に、図10に示すPE演算制御部につい
てさらに詳細に説明する。図11は、図10に示すPE
演算制御部の構成を示すブロック図である。
【0102】図11を参照して、PE演算制御部POC
aは、オペレーションコードopcodeをデコードす
るデコード部DU、各演算器に対する制御信号cAL
U、cMPY、cBMU、cAUを転送するためのセレ
クタS51〜S59およびレジスタR31〜R40を含
む。
【0103】各演算器に対するシフトレジスタはその段
数が異なり、算術論理演算器に対するレジスタは1段、
乗算器に対するレジスタは2段、ビット演算器に対する
レジスタは3段、累算器に対するレジスタは4段となっ
ている。レジスタ間に挿入されたセレクタS51〜S5
9は、前段のレジスタからの入力とデコード部DUから
の制御信号のいずれか一方をデコード部DUからのパイ
プ遅延信号p1〜p3によって選択し、次段のレジスタ
へ渡す。
【0104】次に、上記のPE演算制御部の動作につい
てさらに詳細に説明する。図12は、図11に示すSI
MDプロセッサにおける命令と制御との関係を示す図で
ある。たとえば、図12に示すニーモニックsubsr
aで示される差分自乗和を実行する場合、4ステージを
かけてすべての演算器に順次演算結果を渡して、最終結
果を得るパイプ処理を行なう必要がある。この場合、全
体制御部CUbからオペレーションコードopcode
=“000011”がデコード部DUに与えられる。デ
コード部DUは、算術論理演算器に対して差分を実行す
るためのsub命令を発行する。また、乗算器に対して
は、sub命令の処理の次のステージで乗算を行なうた
めに、パイプ遅延信号p1は、算術論理演算器への制御
の1段後のレジスタにmpy命令を挿入するように“1
0”とする。また、乗算結果を累算するための桁合わせ
として算術右シフトを実行するように、ビット演算器に
対してars命令が発行され、パイプ遅延信号p2は、
乗算器への制御の1段後のレジスタにars命令を挿入
するように“100”となる。さらに、シフトした結果
を累算するように累算器に対してadd命令が発行さ
れ、パイプ遅延信号p3は、ビット演算器への制御の1
段後のレジスタにadd命令を挿入するように“100
0”となる。
【0105】上記の命令発行とパイプ遅延信号の生成は
同時に行なわれ、所定のパイプステージに命令が挿入さ
れる。この結果、命令が挿入された次のステージでは、
算術論理演算器に対してsub命令を行なうように制御
信号が与えられる。また、他の演算器に対しては、上記
subsra命令以前の複合命令の演算の第2ステージ
以降に含まれていた命令または動作しないこと(no
p)に相当する制御信号が与えられ、シフトレジスタは
与えられた制御信号を1段シフトさせる。このとき、与
えられた命令に対する制御信号のシフトレジスタへの挿
入も上記subsra命令と同様に行なわれる。
【0106】次のステージでは、乗算器に対するmpy
命令を行なうための制御信号が出力され、他の演算器に
対しては、上記subsra命令以前の複合命令の演算
の第3ステージ以降に含まれていた命令に相当する制御
信号、または上記subsra命令の次に与えられた命
令の第1ステージの命令に相当する制御信号、またはn
opに相当する制御信号が与えられ、シフトレジスタは
制御信号を1段シフトさせる。また、同時に、このステ
ージで与えられた命令に対する制御信号のシフトレジス
タへの挿入も上記subsra命令と同様にして行なわ
れる。
【0107】上記処理を順次繰返すことによって、算術
論理演算器に対するsub命令から4ステージかけてs
ubsra命令が実行される。また、subsra命令
の終了を待たずに、subsra命令に継続して次々に
与えられた命令のデコードとパイプ段数の判定が行なわ
れて、順次命令が実行されていく。
【0108】以上の構成により、第6の実施例における
SIMDプロセッサにおいては、各プロセシングエレメ
ントが命令のパイプラインレジスタを用い、全体制御部
からのオペレーションコードをデコードして、デコード
結果をパイプラインレジスタに挿入する位置をも判定す
る構成となっている。したがって、可変パイプライン構
成を持つSIMDプロセッサの演算処理部に対する制御
信号が各プロセシングエレメント内部で生成されるの
で、全体制御部から出力される演算器への制御信号はオ
ペレーションコードのみとなり、制御バスの本数を削減
することが可能となる。
【0109】次に、本発明の第7の実施例のSIMDプ
ロセッサについて説明する。図13は、本発明の第7の
実施例のSIMDプロセッサの構成を示すブロック図で
ある。
【0110】図13を参照して、SIMDプロセッサ
は、全体制御部CUa、制御バスCB、グローバルバス
GB、複数のプロセシングエレメントPEg0〜PEg
nを含む。
【0111】各プロセシングエレメントPEg0〜PE
gnは、ローカルメモリLMa、データ入出力部IO
a、ALUブロックALB、MPYブロックMB、BM
UブロックBB、AUブロックAUB、PE演算制御部
POCbを含む。
【0112】PE演算制御部POCbは、セレクタS6
1、S62、比較判定器CP、PE活性化信号レジスタ
PAR、AND回路G1〜G3を含む。
【0113】図13に示すSIMDプロセッサと、図1
に示すSIMDプロセッサとで異なる点は、PE演算制
御部POCbが付加された点であり、その他の点は図1
に示すSIMDプロセッサと同様であるので同一部分に
は同一符号を付し以下その説明を省略する。また、AL
UブロックALB、MPYブロックMB、BMUブロッ
クBB、AUブロックAUBはそれぞれ、演算結果に対
応して、演算結果がオーバフロー、負数、0であった場
合にはフラグflagALU、flagMPY、fla
gBMU、flagAUを生成し、PE演算制御部PO
Cbへ出力する。
【0114】PE演算制御部POCbは、全体制御部C
Uaから制御バスCBを介して各演算器への制御信号f
0〜f3および条件判定コードCDCが与えられる。全
体制御部CUaから与えられた条件判定コードCDC
は、フラグを出力する演算器を指定する。条件判定コー
ドCDCは比較判定器CPに入力され、セレクタS61
を介して入力されたフラグが所望のフラグか否かを比較
する。比較判定器CPは、選択された演算器のフラグと
全体制御部からの条件判定コードCDCが一致する場合
には“1”を出力し、一致しない場合には“0”をセレ
クタS62を介してPE活性化信号レジスタPARに出
力する。PE活性化信号レジスタPARは、全体制御部
CUbから出力されるリセット信号rstによりセレク
タS62が強制的に“1”にリセットされるまで、その
値を保持する。
【0115】PE活性化信号レジスタPARに格納され
たデータは、全体制御部CUaからPE演算制御部PO
Cbに与えられる各演算器に対する制御信号f0〜f3
との論理積がAND回路G1〜G4によりとられ、その
結果が各演算器の制御信号cALU、cMPY、cBM
U、cAUとなる。したがって、条件判定コードCDC
が与えられて、判定結果が“1”の場合には、全体制御
部CUaからの各演算器への制御信号f0〜f3はその
まま各演算器に与えられ、各演算器は制御信号に応じて
所定の演算を実行する。一方、判定結果が“0”の場合
には、全体制御部から与えられる命令にマスクがかけら
れて、各演算器へnopに相当する制御信号が出力され
る。したがって全体制御部CUaによってPE活性化信
号レジスタPARに格納されたデータが“1”にリセッ
トされるまで演算器は動作しない。
【0116】以上の構成により、第7の実施例のSIM
Dプロセッサにおいては、各演算器が演算結果に対する
フラグflagALU、flagMPY、flagBM
U、flagAUを生成してPE演算制御部POCbへ
出力する。さらに、PE演算制御部POCbでは、全体
制御部CUaからの条件判定コードCDCに応じて演算
器のフラグを比較判定し、以降の命令に対するマスク信
号を生成する。この結果、同じ制御信号で並列動作して
いる複数のプロセシングエレメントを各演算器の演算結
果に応じて選択的に動作させることが可能となる。した
がって、第7の実施例のSIMDプロセッサでは、より
多様な処理を実行することが可能となる。
【0117】次に、本発明の第8の実施例のSIMDプ
ロセッサについて説明する。図14は、本発明の第8の
実施例のSIMDプロセッサの構成を示すブロック図で
ある。図14に示すSIMDプロセッサと、図13に示
すSIMDプロセッサとで異なる点は、全体制御部CU
b内部に図11に示すデコード部DUで生成したパイプ
遅延信号p1〜p3と同様のパイプ遅延信号p1〜p3
を出力するパイプライン演算制御部PLCが具備され、
さらに、PE演算制御部POCc内部にパイプラインレ
ジスタPLRが付加された点である。その他の点は図1
3に示すSIMDプロセッサと同様であるので同一部分
には同一符号を付し、以下その説明を省略する。
【0118】PE活性化信号レジスタPARとAND回
路G1〜G4との間に、パイプラインレジスタPLRが
挿入される。PE演算制御部POCcは、パイプライン
レジスタPLRにより、PE活性化信号レジスタPAR
から出力されるデータをパイプ遅延信号p1〜p3に応
じてパイプ遅延させる。さらにAND回路G1〜G4に
より、パイプ遅延させたデータと、全体制御部CUbか
ら出力される制御信号f0〜f3との間で論理積をとっ
て、各演算器へ制御信号cALU、cMPY、cBM
U、cAUをそれぞれ出力する。また、パイプライン演
算制御部PLCは、図11に示すような命令のパイプラ
インレジスタを具備し、複合命令に対応して各命令は、
パイプラインディレイがかけられて、すべてのプロセシ
ングエレメントPEh0〜PEhnへ出力される。
【0119】次に、図14に示すパイプラインレジスタ
についてさらに詳細に説明する。図15は、図14に示
すパイプラインレジスタの構成を示すブロック図であ
る。
【0120】図14を参照して、パイプラインレジスタ
PLRは、レジスタR51〜R60、セレクタS81〜
S89を含む。
【0121】パイプラインレジスタPLRは、図11に
示すPE演算制御部の制御信号のシフトレジスタ部分と
類似した構成をとるが、レジスタR51〜R60のビッ
ト幅は1ビットであり、挿入される信号はすべて同じ条
件判定結果を格納したPE活性化信号レジスタPARか
ら出力されるPE活性化信号enablePEである。
PE活性化信号enablePEの挿入方法は、図11
に示すPE演算制御部における制御信号の挿入方法と全
く同様である。
【0122】次に、図15に示すパイプラインレジスタ
の動作についてさらに詳細に説明する。図16は、任意
の1つのプロセシングエレメントのパイプラインレジス
タの動作を説明するための図である。
【0123】図16を参照して、時刻t3まで、sub
sra命令を全体制御部CUbがデコードし、パイプラ
イン演算制御部PLC内の演算制御信号パイプラインレ
ジスタで各演算器への制御信号が遅延させられながら、
各プロセシングエレメントPEh0〜PEhnへ与えら
れる。時刻t4において、いずれかの演算器のフラグを
判定する命令が与えられ、判定結果が全体制御部CUb
からの条件判定コードCDCと一致せず、PE活性化信
号レジスタPARには“0”が格納されたものとする。
【0124】条件判定結果が得られるまで、パイプライ
ンレジスタPLRには、常に演算器を動作させるべくす
べてのレジスタに“1”が格納されている。条件判定命
令実行時には、パイプラインレジスタPLRには、すべ
ての演算器に対してnopが挿入される。
【0125】条件判定命令の次の命令にmac命令(積
和演算命令)が続くものとすると、パイプ遅延信号は、
subsra命令よりもそれぞれ1つ遅延値が少なく、
p1=“01”、p2=“010”、p3=“010
0”となる。したがって、パイプラインレジスタPLR
では、直前の命令すなわち条件判定命令であるパイプラ
インレジスタの最終段に挿入されたnopが次段に伝達
されることなく、mac命令に必要とされるmpy、a
rs、add命令に相当する制御信号がパイプ遅延値に
従って挿入される。同様に、パイプラインレジスタPL
Rにおいても、パイプラインレジスタの最終段に挿入さ
れた“1”が次段に伝達されることなく、条件判定結果
である“0”がパイプ遅延値p1〜p3に従って挿入さ
れる。
【0126】時刻t5のmac命令に対するPE制御信
号enablePEのパイプへの挿入時においては、条
件判定を実行する以前のsubsra命令に対するビッ
ト演算器および累算器に対する制御信号enableB
MU,enableAU=“1”が残っている。この制
御信号は、パイプ遅延して出力され、PE活性化信号e
nablePEは既に“0”となっているが、条件判定
を実行する以前のsubsra命令は最後まで実行され
る。そして、時刻t5のmac命令以降は、パイプライ
ンレジスタPLRには“0”が挿入される。
【0127】上記の説明では、条件判定結果が“0”で
ある場合のプロセシングエレメントについて説明した
が、他のプロセシングエレメントでは条件判定結果が
“1”のものも存在し得る。その場合、そのプロセシン
グエレメントでは、パイプラインレジスタPLRに
“1”が挿入され、それ以前のすべての命令を実行す
る。
【0128】次に、時刻t8において、PE活性化信号
レジスタPARに“1”をセットする命令が与えられて
いるものとする。すべてのプロセシングエレメントにお
いてPE活性化信号レジスタPARは“1”となり、そ
れ以降の命令はすべてのプロセシングエレメントで実行
されるべく、パイプラインレジスタPLRには“1”が
挿入される。図16では、時刻t9以降に続くsubs
ra命令に対しては、時刻t0からt3で行なわれた処
理と同様の処理により、パイプラインレジスタPLRと
PE活性化信号レジスタPARとで挿入が行なわれ、s
ubsra命令を順次実行していく。
【0129】以上の処理により、第8の実施例における
SIMDプロセッサにおいては、全体制御部CUbから
のパイプ遅延値p1〜p3に応じて、PE活性化信号e
nablePEを各演算器ごとのパイプラインレジスタ
PLRに挿入し、PE演算制御部POCcから出力され
る制御信号cALU、cMPY、cBMU、cAUも、
全体制御部CUbから出力される制御信号F0〜F3と
同じパイプディレイを持って、各演算器に与えられる前
に演算器活性化信号となる制御信号enableAL
U、enableMPY、enableBMU、ena
bleAUと制御信号F0〜F3とのそれぞれの論理積
をとる構成となっている。したがって、条件判定を行な
ってプロセシングエレメントを選択的に活性化させる場
合に、それ以前の複合命令が完全に終了するのを待って
条件判定命令を発行する必要がなく、また命令列にno
pを挿入する必要もない。したがって、命令記述が容易
となり、任意の位置で条件判定命令を記述することがで
き、命令ステップ数が削減されるとともに処理の高速化
を実現することができる。また、1つの全体制御部CU
bでパイプライン処理を行なっているので、各プロセシ
ングエレメントPEh0〜PEhnの回路規模を削減す
ることが可能となる。
【0130】次に、本発明の第9の実施例のSIMDプ
ロセッサについて説明する。図17は、本発明の第9の
実施例のSIMDプロセッサの構成を示すブロック図で
ある。
【0131】図17を参照して、SIMDプロセッサ
は、全体制御部CUa、制御バスCB、グローバルバス
GB(GP0〜GPn)、プロセシングエレメントPE
a0〜PEan、リンク処理部LOUaを含む。リンク
処理部LOUaは、シーケンス部SEQ、インタフェー
ス部IFa、セレクタS91、S92、レジスタR7
1、算術論理演算器AL1、ローカルメモリLMLを含
む。図17に示すSIMDプロセッサと図1に示すSI
MDプロセッサとで異なる点は、リンク処理部LOUa
が付加された点である。その他の点は図1に示すSIM
Dプロセッサと同様であるので同一部分には同一符号を
付し以下その説明を省略する。
【0132】リンク処理部LOUaはすべてのグローバ
ルバスGP0〜GPnおよび制御バスCBと接続され
る。リンク処理部LOUaは、全体制御部CUaからの
制御信号に従ってリンク処理部内の処理シーケンスを管
理するシーケンス部SEQ、グローバルバスGBとのイ
ンタフェース部IFa、加算、最大値/最小値演算を実
行する算術論理演算器ALa、算術論理演算器ALaの
出力を格納するレジスタR71およびローカルメモリL
ML、セレクタS91、S92を含む。
【0133】各プロセシングエレメントPEa0〜PE
anからグローバルバスGBに出力されたデータの総和
をとるように、全体制御部CUaから制御バスCBを介
してシーケンス部SEQに制御信号が与えられると、シ
ーケンス制御部SEQは、以下に示す動作を実行するよ
うにリンク処理部内の各要素に対して制御信号を生成す
る。
【0134】まず、インタフェース部IFaは、同時並
列に出力されたすべてのプロセシングエレメントからの
出力データをグローバルバスGP0〜GPnを介して同
時にリンク処理部LOUaに取り込む。次に、グローバ
ルバスGP0〜GPnまでのデータが順にセレクタS9
1を介して算術論理演算器ALaに与えられ、算術論理
演算器ALaはレジスタR71を用いて順次入力される
データの累算を行なう。
【0135】また、全プロセシングエレメントの出力か
ら最大値/最小値を抽出する場合には、累算と同様にし
てすべてのプロセシングエレメントの出力をリンク処理
部LOUaに取り込み、取り込んだデータが算術論理演
算器ALaに順次与えられる。レジスタR71に常に最
大値/最小値が格納され、格納した最大値/最小値を次
に与えられる入力との比較データとすることにより、す
べてのプロセシングエレメントの出力の最大値/最小値
を抽出することができる。
【0136】さらに、最大値/最小値の機能を用いて、
プロセシングエレメントの出力の降順/昇順ソーティン
グを実行することができる。図18は、すべてのプロセ
シングエレメントの出力のうち大きい方から上位3つの
データを抽出するソーティング処理を説明するための図
である。
【0137】上位3個のデータは、ローカルメモリLM
Lに格納され、そのアドレス=“0”に最大値を、アド
レス=“1”に2番目に大きい値を、アドレス=“2”
に3番目に大きい値をそれぞれ格納し、上位3位以内に
入らなかったデータは廃棄する。ソーティングを開始す
る前には、ローカルメモリLMLの各アドレスには、ソ
ートするデータのとり得る最小値を格納しておく。
【0138】まず、すべてのプロセシングエレメントの
出力が、リンク処理部LOUaに取り込まれると、グロ
ーバルバスGP0とローカルメモリLMLのアドレス=
“0”に格納された値とにより最大値演算が行なわれ、
大きい値をローカルメモリLMLのアドレス=“0”に
書込み、小さい方をレジスタR71に格納する。次に、
ローカルメモリLMLのアドレス=“1”のデータと、
レジスタR71に格納されている前回の最大値検出演算
で小さかった方の値との間で、最大値検出演算を前回と
同様にして行なう。このとき、大きい方の値をローカル
メモリLMLのアドレス=“1”に書込み、小さい方の
値をレジスタR71に格納する。ローカルメモリLML
のアドレス=“2”のデータに対しても同様に、レジス
タR71のデータとの間で最大値検出演算を行なう。
【0139】上記の処理により、1つのプロセシングエ
レメントの出力に対して、ローカルメモリLMLに格納
されている上位3個のデータとの間で、最大値検出演算
とデータの交換を3回行なう。上記処理をグローバルバ
スGP0からGPnまで繰返すことにより、n+1個の
プロセシングエレメントの出力のうち大きい方から上位
3位までのデータを抽出することができる。また、この
プロセシングエレメントの出力に続いて次のプロセシン
グエレメントの出力に対しても同様の操作を行なうこと
により、2(n+1)個のデータの上位3位までのデー
タを抽出することができる。
【0140】また、上記に説明した最大値検出演算を最
小値検出演算に変更することにより、プロセシングエレ
メントの出力の小さい方から順にソートすることも可能
である。
【0141】以上の動作により、第9の実施例における
SIMDプロセッサにおいては、グローバルバスに接続
されるリンク処理部LOUaを有し、リンク処理部LO
Uaは、加算、最大値/最小値演算が可能な算術論理演
算器ALaおよびローカルメモリLMLを具備する。し
たがって、プロセシングエレメントの出力の累算やソー
ティングをプロセシングエレメント間でのデータ交換を
行なうことなく、演算することができるので、並列化に
よる処理の高速化と並列プロセシングエレメントのデー
タの統合機能がさらに高まる。
【0142】次に、本発明の第10の実施例のSIMD
プロセッサについて説明する。図19は、本発明の第1
0の実施例のSIMDプロセッサの構成を示すブロック
図である。図19に示すSIMDプロセッサと図17に
示すSIMDプロセッサとで異なる点は、インタフェー
ス部IFaが複数出力のインタフェース部IFbに変更
された点であり、その他の点は同様であるので同一部分
には同一番号を付し以下その説明を省略する。
【0143】インタフェース部IFbの出力は4つの出
力out0〜out3であり、リンク処理部LOUbか
ら出力される。各出力out0〜out3のデータのビ
ット幅は16ビットである。
【0144】次に、インタフェース部IFbについてさ
らに詳細に説明する。図20は、図19に示すインタフ
ェース部の構成を示すブロック図である。
【0145】図20を参照して、インタフェース部IF
bは、レジスタR81〜R88、セレクタS101〜S
110を含む。インタフェース部IFbは、すべてのプ
ロセシングエレメントの出力データに対する演算を行な
うため、8個の16ビットのレジスタR81〜R88に
よりすべてのプロセシングエレメントの出力を取り込
む。取り込まれた出力は8入力セレクタS110および
セレクタS91を介して算術論理演算器ALaに渡され
る。リンク処理部LOUb内での演算結果aluOUT
は、2入力セレクタS109を介して出力out0とし
て出力される。
【0146】プロセシングエレメント間でのデータの演
算が必要ない場合、各データを上位および下位の8ビッ
トに分割して、4つの出力部に接続された4入力セレク
タS101〜S108を介して出力する。4入力セレク
タS101〜S108へのデータの入力方法は、図20
に示すとおりである。たとえば、GP7<15:8>
は、グローバルバスGP7の上位8ビットのデータを示
し、GP7<7:0>は、グローバルバスGP7の下位
8ビットのデータを示している。
【0147】第1の出力方法として、プロセシングエレ
メントPEa0〜PEa3のデータを出力させる場合
は、すべての4入力セレクタS101〜S108におい
て4入力データの最下段を選択する。したがって、プロ
セシングエレメントPEa0の出力は出力out0とし
て、プロセシングエレメントPEa1の出力は出力ou
t1として、プロセシングエレメントPEa2の出力は
出力out2として、プロセシングエレメントPEa3
の出力は出力out3として出力される。
【0148】第2の出力方法として、プロセシングエレ
メントPEa4〜PEa7のデータを出力させる場合、
すべての4入力セレクタS101〜S108において4
入力データの下から2番目のデータを選択する。プロセ
シングエレメントPEa4の出力は出力out0とし
て、プロセシングエレメントPEa5の出力は出力ou
t1として、プロセシングエレメントPEa6の出力は
出力out2として、プロセシングエレメントPEa7
の出力は出力out3として、それぞれ出力される。
【0149】第3の出力方法として、すべてのプロセシ
ングエレメントの出力データの下位8ビットを出力させ
る場合、すべての4入力セレクタS101〜S108に
おいて4入力データの下から3番目のデータを選択す
る。プロセシングエレメントPEa0の下位8ビットは
出力out0の下位8ビットに、プロセシングエレメン
トPEa1の下位8ビットは出力out0の上位8ビッ
トに、プロセシングエレメントPEa2の下位8ビット
は出力out1の下位8ビットに、プロセシングエレメ
ントPEa3の下位8ビットは出力out1の上位8ビ
ットに出力され、以降プロセシングエレメントPEa4
〜PEa7も同様にして出力out2およびout3と
して出力される。
【0150】第4の出力方法として、全プロセシングエ
レメントの出力データの上位8ビットを出力させる場
合、すべての4入力セレクタS101〜S108におい
て4入力データの最上段のデータを選択する。プロセシ
ングエレメントPEa0の上位8ビットは出力out0
の下位8ビットに、プロセシングエレメントPEa1の
上位8ビットは出力out0の上位8ビットに、プロセ
シングエレメントPEa2の上位8ビットは出力out
1の下位8ビットに、プロセシングエレメントPEa3
の上位8ビットは出力out1の上位8ビットに出力さ
れ、以降プロセシングエレメントPEa4〜PEa7も
同様に出力out2およびout3として出力される。
【0151】以上の動作により、第10の実施例におけ
る8並列プロセシングエレメントを具備するSIMDプ
ロセッサにおいては、プロセシングエレメントの出力を
リンク処理部LOUbを介して出力し、リンク処理部L
OUbの出力を4出力として各プロセシングエレメント
の出力を上位および下位に分割して選択的に出力するこ
とができる。したがって、様々な出力モードでプロセシ
ングエレメントの出力を外部に出力することができ、か
つ、8並列の出力に対して少ない外部出力本数で出力可
能となる。
【0152】次に、本発明の第11の実施例のSIMD
プロセッサについて説明する。図21は、本発明の第1
1の実施例のSIMDプロセッサの構成を示すブロック
図である。図21に示すSIMDプロセッサは図17に
示すSIMDプロセッサの構成に加え、さらに、セレク
タS93〜S96、レジスタR72、R73、ローカル
メモリLMLb、インクリメンタADUを含む。その他
の部分は図17に示すSIMDプロセッサと同様である
ので同一部分には同一符号を付し以下その説明を省略す
る。
【0153】インクリメンタADUは、インタフェース
部IFaから算術論理演算器ALbにソーティング演算
を行なうためにデータが与えられるごとにその値を1つ
増加させて、ローカルメモリLMLbとのデータ交換に
備えて次段のセレクタS93に与える。上記の動作によ
り、インタフェース部IFaを介して入力されるプロセ
シングエレメントの出力に固有のコードを割り当てるこ
とができる。ローカルメモリLMLbに対するアドレッ
シングおよび第1段の2つの2入力セレクタS93およ
びS94に対する制御は、算術論理演算器ALbに接続
されたローカルメモリLMLaおよびセレクタS91お
よびS92に対するものと同様である。
【0154】第2段の2つの2入力セレクタS93およ
びS94は、算術論理演算器ALbの演算結果による制
御を受けて、算術論理演算器ALbにおけるデータの交
換と同様にデータの交換を行なう。したがって、2入力
セレクタS95およびS96に接続されたレジスタR7
2およびローカルメモリLMLbは、プロセシングエレ
メントの出力データの交換に並行して、各データに付加
された固有のコードを格納している。この結果、並列プ
ロセシングエレメントPEa0〜PEanからリンク処
理部LOUcに入力されたデータのソーティングによっ
て抽出された上位または下位数項のデータがどのプロセ
シングエレメントの出力であったかを容易に特定するこ
とができる。また、リンク処理部LOUcへのデータの
入力を繰返しても、抽出されたデータがどのプロセシン
グエレメントの何番目の出力かを特定することが可能と
なる。
【0155】以上の構成により、第11の実施例におけ
るSIMDプロセッサにおいては、リンク処理部LOU
cにおいて、プロセシングエレメントの出力のソーティ
ングを行なう場合に、各プロセシングエレメントの出力
に対してコードを割り当ててソーティングを行なうこと
が可能となる。したがって、ベクトルマッチング処理の
ようにデータにコードを割り当てて識別が必要な処理に
対して、プロセシングエレメント自体がコードを生成す
る必要がなく、プロセシングエレメントの回路規模を削
減することができる。また、プロセシングエレメントに
おける演算と並行してコード付けとソーティングが実行
されるので、処理がより高速化される。
【0156】上記第1〜第11実施例の各構成は任意に
組合わせることができ、その場合は各実施例で説明した
効果と同様の効果を得ることができる。
【0157】
【発明の効果】請求項1〜請求項3記載のSIMDプロ
セッサにおいては、3本のローカルバスおよび複合演算
用バスにそれぞれデータを転送することができるので、
プロセシングエレメント間におけるデータ転送の効率を
向上させるとともに、高速に種々の演算を実行すること
が可能となる。
【0158】請求項4および請求項5記載のSIMDプ
ロセッサにおいては、機能の異なる第1ないし第3グロ
ーバルバスを具備することにより、プロセシングエレメ
ント間でのデータの転送をフレキシブルにかつ高速に実
行することが可能となる。
【0159】請求項6および請求項7記載のSIMDプ
ロセッサにおいては、8つのプロセシングエレメント間
が論理的に等間隔で接続されるため、プロセシングエレ
メント間でのデータの転送を高速にかつ様々なプロセシ
ングエレメントの組合せに対して実行することが可能と
なる。
【0160】請求項8および請求項9記載のSIMDプ
ロセッサにおいては、内部に具備したローカルメモリを
単独および直列に接続して使用することができるので、
画像処理に有効なラインメモリとして機能させることが
できるとともに個々のローカルメモリに独立した外部デ
ータを入力することが可能となる。この結果、高速なデ
ータ転送を実現するとともに、並列に動作させることで
高速な処理が可能となり、幅広い用途に使用することが
可能となる。
【0161】請求項10および請求項11記載のSIM
Dプロセッサにおいては、個々に独立に制御可能な3つ
のバンクメモリを具備しているので、同時に2つのバン
クメモリを読出用に、1つのバンクメモリを書込用に用
いることができ、高速な処理が可能となる。
【0162】請求項12および請求項13記載のSIM
Dプロセッサにおいては、演算手段に対する制御信号を
各プロセシングエレメント内部で生成することができる
ので、全体制御手段からの出力はオペレーションコード
のみとなり、制御バスの本数を削減することが可能とな
る。
【0163】請求項14および請求項15記載のSIM
Dプロセッサにおいては、各演算器が演算結果に対応し
たフラグを生成し、全体制御手段からの条件判定コード
に応じて演算器のフラグを判定し、演算器に対する制御
信号にマスクをかけているので、同じ制御信号で並列動
作している複数のプロセシングエレメントを演算結果に
応じて選択的に動作させることが可能となる。この結
果、より多様な処理を実行することができる。
【0164】請求項16および請求項17記載のSIM
Dプロセッサにおいては、命令記述が容易になり、任意
の位置で条件判定命令を記述できるので、命令ステップ
数が削減され、処理を高速化することができる。
【0165】請求項18および請求項19記載のSIM
Dプロセッサにおいては、プロセシングエレメント間で
のデータ転送を行なうことなくプロセシングエレメント
の出力の累算やソーティングを行なうことができるの
で、各プロセシングエレメントでの処理が高速化され、
プロセシングエレメント間のデータの統合機能が高ま
る。
【0166】請求項20および請求項21記載のSIM
Dプロセッサにおいては、プロセシングエレメントの出
力を上位および下位に分割して選択的に出力することが
できるので、様々なモードでプロセシングエレメントの
出力を外部に出力することができるとともに、8並列の
出力に対して少ない外部出力本数で出力可能となる。
【0167】請求項22および請求項23記載のSIM
Dプロセッサにおいては、リンク処理手段においてソー
ティングされたデータに対して所定のコードを割付けて
いるので、プロセシングエレメントでコードを生成する
必要がなく、回路規模を削減することができる。また、
プロセシングエレメントとの演算と並行してコード付け
とソーティングが実行されるので処理がより高速化され
る。
【図面の簡単な説明】
【図1】 本発明の第1の実施例のSIMDプロセッサ
の構成を示すブロック図である。
【図2】 図1に示すビット演算器の構成を示すブロッ
ク図である。
【図3】 本発明の第2の実施例のSIMDプロセッサ
の主要部の構成を示すブロック図である。
【図4】 本発明の第3の実施例のSIMDプロセッサ
の主要部の構成を示すブロック図である。
【図5】 図4に示すデータ入出力部の構成を示す図で
ある。
【図6】 グローバルバス入出力制御信号とデータ入出
力部の入出力選択との関係を示す図である。
【図7】 本発明の第4の実施例のSIMDプロセッサ
の主要部の構成を示すブロック図である。
【図8】 フィルタリングにおける局所処理を説明する
ための図である。
【図9】 本発明の第5の実施例のSIMDプロセッサ
の主要部の構成を示すブロック図である。
【図10】 本発明の第6の実施例のSIMDプロセッ
サの主要部の構成を示すブロック図である。
【図11】 図10に示すPE演算制御部の構成を示す
ブロック図である。
【図12】 図11に示すSIMDプロセッサにおける
命令と制御との関係を示す図である。
【図13】 本発明の第7の実施例のSIMDプロセッ
サの構成を示すブロック図である。
【図14】 本発明の第8の実施例のSIMDプロセッ
サの構成を示すブロック図である。
【図15】 図14に示すパイプラインレジスタの構成
を示すブロック図である。
【図16】 図15に示すパイプラインレジスタの動作
を説明するための図である。
【図17】 本発明の第9の実施例のSIMDプロセッ
サの構成を示すブロック図である。
【図18】 ソーティング処理を説明するための図であ
る。
【図19】 本発明の第10の実施例のSIMDプロセ
ッサの構成を示すブロック図である。
【図20】 図19に示すインタフェース部の構成を示
すブロック図である。
【図21】 本発明の第11の実施例のSIMDプロセ
ッサの構成を示すブロック図である。
【図22】 従来のSIMDプロセッサの構成を示すブ
ロック図である。
【符号の説明】
CUa 全体制御部、CB 制御バス、GB グローバ
ルバス、PEa0〜PEan プロセシングエレメン
ト、LMa ローカルメモリ、IOa データ入出力
部、ALB ALUブロック、MB MPYブロック、
BB BMUブロック、AUB AUブロック、R1〜
R12 レジスタ、S1〜S9 セレクタ、AL 算術
論理演算器、MP 乗算器、BM ビット演算器、AU
累算器、LB0〜LB2 ローカルバス、MOB0〜
MOB2 複合演算用バス。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ロバート・ストライテンベルガー 兵庫県伊丹市瑞原4丁目1番地 三菱電機 株式会社システムエル・エス・アイ開発研 究所内

Claims (23)

    【特許請求の範囲】
  1. 【請求項1】 全体制御手段と、 複数のプロセシングエレメントと、 前記複数のプロセシングエレメントの各々を一次元的に
    並列に接続するグローバルバスと、 前記全体制御手段と前記複数のプロセシングエレメント
    の各々とを接続する制御バスとを含み、 前記複数のプロセシングエレメントの各々は、 ローカルメモリと、 複数の演算手段と、 データ入出力手段と、 前記ローカルメモリ、前記複数の演算手段、および前記
    データ入出力手段とに接続され、データを伝送するため
    のローカルバスと、 前記複数の演算手段の各々と接続され、複合演算を行な
    うためのデータを伝送するための複合演算用バスとを含
    み、 前記全体制御手段は、 同一演算を行なうように前記複数のプロセシングエレメ
    ントの各々の動作を制御するSIMDプロセッサ。
  2. 【請求項2】 前記ローカルバスは、3本のローカルバ
    スを含み、 前記3本のローカルバスは、 前記複数の演算手段へデータを入力するための2本のデ
    ータ入力用ローカルバスと、 前記複数の演算手段からデータを出力するための1本の
    データ出力用ローカルバスとを含む請求項1記載のSI
    MDプロセッサ。
  3. 【請求項3】 前記複数の演算手段は、 算術論理演算器と、 乗算器と、 ビット演算器と、 累算器とを含み、 前記複合演算用バスは、 前記算術論理演算器の出力データを前記乗算器、前記ビ
    ット演算器、および前記累算器へ出力するための第1複
    合演算用バスと、 前記乗算器の出力データを前記ビット演算器、および前
    記累算器へ出力するための第2複合演算用バスと、 前記ビット演算器の出力データを前記累算器へ出力する
    ための第3複合演算用バスとを含む請求項2記載のSI
    MDプロセッサ。
  4. 【請求項4】 全体制御手段と、 各々がローカルメモリを含む複数のプロセシングエレメ
    ントと、 前記複数のプロセシングエレメントの各々を一次元的に
    並列に接続するグローバルバスと、 前記全体制御手段と前記複数のプロセシングエレメント
    の各々とを接続する制御バスとを含み、 前記グローバルバスは、 前記全体制御手段の出力データを前記複数のプロセシン
    グエレメントの各々へ伝送するための第1グローバルバ
    スと、 前記複数のプロセシングエレメントの各々の出力データ
    を前記複数のプロセシングエレメントの各々へ出力する
    ための第2グローバルバスと、 前記複数のプロセシングエレメントのうち1つのプロセ
    シングエレメントの前記ローカルメモリのデータを他の
    プロセシングエレメントへ出力するための第3グローバ
    ルバスとを含むSIMDプロセッサ。
  5. 【請求項5】前記複数のプロセシングエレメントの各々
    は、さらに、 複数の演算手段と、 データ入出力手段と、 前記ローカルメモリ、前記複数の演算手段、および前記
    データ入出力手段とに接続され、データを伝送するため
    のローカルバスとを含み、 前記ローカルメモリは、 前記データ入出力手段を介して前記第3グローバルバス
    と接続される請求項4記載のSIMDプロセッサ。
  6. 【請求項6】 並列に備えられた8つのプロセシングエ
    レメントと、 前記8つのプロセシングエレメント間を論理的に等間隔
    で接続する8本のグローバルバスとを含み、 前記8つのプロセシングエレメントの各々は、 前記8本のグローバルバスのうち所定の4本のグローバ
    ルバスからデータが入力され、残りの4本のグローバル
    バスのうち所定の2本のグローバルバスへデータを出力
    するSIMDプロセッサ。
  7. 【請求項7】 前記8本のグローバルバスは、第1ない
    し第8グローバルバスを含み、 前記8つのプロセシングエレメントは、第1ないし第8
    プロセシングエレメントを含み、 前記第1ないし第8プロセシングエレメントの各々は、
    第1および第2出力ポートおよび第1ないし第4入力ポ
    ートを含み、 前記第1プロセシングエレメントは、 前記第1および第2出力ポートから前記第1および第5
    グローバルバスへそれぞれデータを出力し、かつ、前記
    第1ないし第4グローバルバスから前記第1ないし第4
    入力ポートへそれぞれデータを入力され、 前記第2プロセシングエレメントは、 前記第1および第2出力ポートから前記第2および第6
    グローバルバスへそれぞれデータを出力し、かつ、前記
    第2ないし第4、第1グローバルバスから前記第1ない
    し第4入力ポートへそれぞれデータを入力され、 前記第3プロセシングエレメントは、 前記第1および第2出力ポートから前記第3および第7
    グローバルバスへそれぞれデータを出力し、かつ、前記
    第3、第4、第1、第2グローバルバスから前記第1な
    いし第4入力ポートへそれぞれデータを入力され、 前記第4プロセシングエレメントは、 前記第1および第2出力ポートから前記第4および第8
    グローバルバスへそれぞれデータを出力し、かつ、前記
    第4、第1ないし第3グローバルバスから前記第1ない
    し第4入力ポートへそれぞれデータを入力され、 前記第5プロセシングエレメントは、 前記第1および第2出力ポートから前記第5および第1
    グローバルバスへそれぞれデータを出力し、かつ、前記
    第5ないし第8グローバルバスから前記第1ないし第4
    入力ポートへそれぞれデータを入力され、 前記第6プロセシングエレメントは、 前記第1および第2出力ポートから第6および第2グロ
    ーバルバスへそれぞれデータを出力し、かつ、前記第6
    ないし第8、第5グローバルバスから前記第1ないし第
    4入力ポートへそれぞれデータを入力され、 前記第7プロセシングエレメントは、 前記第1および第2出力ポートから前記第7および第3
    グローバルバスへそれぞれデータを出力し、かつ、前記
    第7、第8、第5、第6グローバルバスから前記第1な
    いし第4出力ポートへそれぞれデータを入力され、 前記第8プロセシングエレメントは、 前記第1および第2出力ポートから前記第8および第4
    グローバルバスへそれぞれデータを出力し、かつ、前記
    第8、第5ないし第7グローバルバスから前記第1ない
    し第4入力ポートへそれぞれデータを入力される請求項
    6記載のSIMDプロセッサ。
  8. 【請求項8】 複数のプロセシングエレメントを含むS
    IMDプロセッサであって、 前記複数のプロセシングエレメントの各々は、 ローカルメモリと、 隣接する1つの前記プロセシングエレメントの前記ロー
    カルメモリの出力データを選択的に自身のローカルメモ
    リへ入力するための入力手段とを含み、 前記ローカルメモリは、直列に接続されるSIMDプロ
    セッサ。
  9. 【請求項9】 前記入力手段は、 外部から入力されるデータ、隣接する1つの前記プロセ
    シングエレメントのローカルメモリの出力データ、およ
    び自身の前記ローカルメモリの出力データのうち一方の
    データを選択的に入力する選択入力手段を含む請求項8
    記載のSIMDプロセッサ。
  10. 【請求項10】 複数のプロセシングエレメントを含む
    SIMDプロセッサであって、 前記複数のプロセシングエレメントの各々は、 ローカルメモリを含み、 前記ローカルメモリは、 各々が独立に制御可能な3つのバンクメモリを含むSI
    MDプロセッサ。
  11. 【請求項11】 前記SIMDプロセッサは、さらに、 全体制御手段を含み、 前記複数のプロセシングエレメントの各々は、さらに、 複数の演算手段を含み、 前記ローカルメモリは、さらに、 前記演算手段の演算結果を格納するためのレジスタと、 前記全体制御手段から出力されるアドレスと前記レジス
    タに格納された前記演算結果のうち一方を選択的に前記
    バンクメモリのアドレスとして出力する選択手段とを含
    む請求項10記載のSIMDプロセッサ。
  12. 【請求項12】 全体制御手段と、 複数のプロセシングエレメントと、 前記複数のプロセシングエレメントの各々を一次元的に
    並列に接続するグローバルバスと、 前記全体制御手段と前記複数のプロセシングエレメント
    の各々とを接続する制御バスとを含み、 前記複数のプロセシングエレメントは、 各々が制御信号に応じて動作する複数の演算手段と、 前記全体制御手段から前記制御バスを介して伝送される
    オペレーションコードをデコードし、前記複数の演算手
    段に対応した複数の前記制御信号およびパイプ遅延信号
    を出力するデコード手段と、 前記複数の制御信号ごとに設けられ、前記複数の制御信
    号のうち対応する制御信号を受け、前記複数のパイプ遅
    延信号のうち対応する遅延信号に応答して、所定のタイ
    ミングで前記制御信号を出力する複数のパイプラインレ
    ジスタ手段とを含むSIMDプロセッサ。
  13. 【請求項13】 前記複数の演算手段は、 算術論理演算器と、 乗算器と、 ビット演算器と、 累算器とを含み、 前記複数のパイプラインレジスタ手段は、 前記デコード手段から出力される前記算術論理演算器用
    の前記制御信号を格納する1段の第1レジスタと、 前記デコード手段から出力される前記乗算器用の前記制
    御信号を格納し、前記乗算器用の前記パイプ遅延信号に
    応答して所定のタイミングで前記乗算器用の制御信号を
    出力する2段の第2レジスタと、 前記デコード手段から出力される前記ビット演算器用の
    前記制御信号を格納し、前記ビット演算器用の前記パイ
    プ遅延信号に応答して所定のタイミングで前記ビット演
    算器用の制御信号を出力する3段の第3レジスタと、 前記デコード手段から出力される前記累算器用の前記制
    御信号を格納し、前記累算器用の前記パイプ遅延信号に
    応答して所定のタイミングで前記累算器用の制御信号を
    出力する4段の第4レジスタとを含む請求項12記載の
    SIMDプロセッサ。
  14. 【請求項14】 全体制御手段と、 複数のプロセシングエレメントと、 前記複数のプロセシングエレメントとを一次元的に並列
    に接続するグローバルバスと、 前記全体制御手段と前記複数のプロセシングエレメント
    の各々とを接続する制御バスとを含み、 前記複数のプロセシングエレメントの各々は、 各々が制御信号に応じて動作する複数の演算手段と、 前記複数の演算手段の各々が出力する演算結果に対応す
    るフラグと、前記全体制御手段から前記制御バスを介し
    て出力される条件判定コードとを比較する比較手段と、 前記比較手段の比較結果に応じて、前記全体制御手段か
    ら前記制御バスを介して前記複数の演算手段ごとに出力
    される前記制御信号にマスクをかけ、前記制御信号を出
    力するマスク手段とを含むSIMDプロセッサ。
  15. 【請求項15】 前記比較手段は、 前記複数のフラグのうち所定のフラグを選択するセレク
    タと、 前記セレクタの出力と前記条件判定コードとを比較し、
    所定の比較結果を出力する比較判定器とを含み、 前記マスク手段は、 前記比較判定器が出力する前記比較結果を格納するレジ
    スタと、 前記制御信号ごとに設けられ、前記レジスタの出力と前
    記制御信号の各々との論理積を前記複数の演算手段のう
    ち対応する演算手段へ出力する複数のAND回路とを含
    む請求項14記載のSIMDプロセッサ。
  16. 【請求項16】 全体制御手段と、 各々が制御信号に応じて動作する複数の演算手段を含む
    複数のプロセシングエレメントと、 前記複数のプロセシングエレメントの各々とを一次元的
    に並列に接続するグローバルバスと、 前記全体制御手段と前記複数のプロセシングエレメント
    の各々とを接続する制御バスとを含み、 前記全体制御手段は、 前記複数の演算手段ごとに対応した前記制御信号をパイ
    プ遅延させるパイプライン手段を含み、 前記パイプライン手段は、 前記制御バスを介して前記複数のプロセシングエレメン
    トの各々に、パイプ挿入に必要な複数のパイプ遅延値と
    パイプ遅延した前記制御信号を出力し、 前記複数のプロセシングエレメントの各々は、さらに、 前記複数の演算手段の各々が出力する演算結果に対応す
    るフラグと、前記全体制御手段から前記制御バスを介し
    て出力される条件判定コードとを比較する比較手段と、 前記複数のパイプ遅延値および前記比較手段の比較結果
    に応じて、前記パイプライン手段から出力される前記制
    御信号にマスクをかけ、前記制御信号を対応する前記複
    数の演算手段に出力するマスク手段とを含むSIMDプ
    ロセッサ。
  17. 【請求項17】 前記比較手段は、 前記複数のフラグのうち所定のフラグを選択するセレク
    タと、 前記セレクタの出力と前記条件判定コードとを比較し、
    所定の比較結果を出力する比較判定器とを含み、 前記マスク手段は、 前記比較判定器が出力する前記比較結果を格納するレジ
    スタと、 前記複数のパイプ遅延値に応じて、前記比較手段の前記
    比較結果を出力する比較結果出力手段と、 前記制御信号ごとに設けられ、前記比較結果出力手段か
    ら出力される前記比較結果と前記全体制御手段から出力
    される前記制御信号の各々との論理積を前記複数の演算
    手段のうち対応する演算手段へ出力する複数のAND回
    路とを含む請求項16記載のSIMDプロセッサ。
  18. 【請求項18】 複数のプロセシングエレメントと、 リンク処理手段と、 前記複数のプロセシングエレメントの各々とリンク処理
    手段とを一次元的に並列に接続するグローバルバスとを
    含み、 前記リンク処理手段は、 少なくとも、加算、および最大値/最小値演算が可能な
    算術論理演算器と、 データを記憶するローカルメモリとを含むSIMDプロ
    セッサ。
  19. 【請求項19】 前記リンク処理手段は、さらに、 前記グローバルバスにより伝送されるデータの入出力を
    行なうインタフェース手段と、 前記インタフェース手段の出力および前記ローカルメモ
    リの出力のうち一方を選択的に前記算術論理演算器へ出
    力する第1セレクタと、 前記算術論理演算器の出力を格納するレジスタと、 前記レジスタの出力および前記ローカルメモリの出力の
    うち一方を選択的に前記算術論理演算器へ出力する第2
    セレクタとを含み、 前記ローカルメモリは、 前記算術論理演算器の出力を記憶する請求項18記載の
    SIMDプロセッサ。
  20. 【請求項20】 8つのプロセシングエレメントと、 リンク処理手段と、 前記8つのプロセシングエレメントの各々と前記リンク
    処理手段とを一次元的に並列に接続するグローバルバス
    とを含み、 前記リンク処理手段は、 前記8つのプロセシングエレメントの各々の出力データ
    を上位データと下位データとに分割して前記上位データ
    および下位データのうち一方を選択的に出力する8つの
    分割手段を含み、 前記リンク処理手段は、 前記8つの分割手段のうち2つの出力データを組合わせ
    て4つの出力データを出力するSIMDプロセッサ。
  21. 【請求項21】 前記リンク処理手段は、さらに、 少なくとも、加算、および最大値/最小値演算が可能な
    算術論理演算器と、 データを記憶するローカルメモリとを含む請求項20記
    載のSIMDプロセッサ。
  22. 【請求項22】 複数のプロセシングエレメントと、 リンク処理手段と、 前記複数のプロセシングエレメントの各々と前記リンク
    処理手段とを一次元的に並列に接続するグローバルバス
    とを含み、 前記リンク処理手段は、 前記複数のプロセシングエレメントから前記グローバル
    バスを介して入力される複数のデータに対してソーティ
    ングを行なうためのソーティング手段と、 前記ソーティング手段によりソーティングされる前記複
    数のデータの各々に対して所定のコードを割付けるコー
    ド割付手段とを含むSIMDプロセッサ。
  23. 【請求項23】 前記コード割付手段は、 前記ソーティング手段によるデータの移動および格納と
    同様に前記コードを移動および格納させる請求項22記
    載のSIMDプロセッサ。
JP6164333A 1994-07-15 1994-07-15 Simdプロセッサ Pending JPH0830577A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP6164333A JPH0830577A (ja) 1994-07-15 1994-07-15 Simdプロセッサ
US08/465,245 US5729758A (en) 1994-07-15 1995-06-05 SIMD processor operating with a plurality of parallel processing elements in synchronization
DE19524862A DE19524862A1 (de) 1994-07-15 1995-07-07 SIMD-Prozessor, welcher mit einer Mehrzahl von Parallelverarbeitungselementen in Synchronisation in Betrieb ist

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6164333A JPH0830577A (ja) 1994-07-15 1994-07-15 Simdプロセッサ

Publications (1)

Publication Number Publication Date
JPH0830577A true JPH0830577A (ja) 1996-02-02

Family

ID=15791185

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6164333A Pending JPH0830577A (ja) 1994-07-15 1994-07-15 Simdプロセッサ

Country Status (3)

Country Link
US (1) US5729758A (ja)
JP (1) JPH0830577A (ja)
DE (1) DE19524862A1 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6380983B1 (en) 1997-03-14 2002-04-30 Kabushiki Kaisha Toshiba TV receiver with selectable signal processing systems
JP2002528786A (ja) * 1998-08-24 2002-09-03 マイクロユニティ システムズ エンジニアリング インコーポレイテッド ワイド・オペランド・アーキテクチャを含むシステムおよび方法
JP2005092252A (ja) * 2003-09-11 2005-04-07 Matsushita Electric Ind Co Ltd 演算処理装置
JP2006099719A (ja) * 2004-08-30 2006-04-13 Sanyo Electric Co Ltd 処理装置
JP2007531072A (ja) * 2003-12-19 2007-11-01 マイクロユニティ システムズ エンジニアリング インコーポレイテッド プログラム可能なプロセッサ及び拡張演算を伴う方法
US7500089B2 (en) 2001-04-02 2009-03-03 Ricoh Company, Ltd. SIMD processor with exchange sort instruction operating or plural data elements simultaneously
US7725681B2 (en) 2003-08-15 2010-05-25 Nxp B.V. Parallel processing array
US7779229B2 (en) 2002-02-18 2010-08-17 Nxp B.V. Method and arrangement for bringing together data on parallel data paths
JP2011028543A (ja) * 2009-07-27 2011-02-10 Renesas Electronics Corp 情報処理システム及びその情報処理方法

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3073388A1 (en) 1998-03-18 2016-09-28 Koninklijke Philips N.V. Data processing device and method of computing the cosine transform of a matrix
JP3971535B2 (ja) * 1999-09-10 2007-09-05 株式会社リコー Simd型プロセッサ
US6961084B1 (en) 1999-10-07 2005-11-01 Ess Technology, Inc. Programmable image transform processor
DE10144904C2 (de) * 2001-09-12 2003-08-21 Infineon Technologies Ag SIMD-Prozessor mit Unterprogramm-Steuereinheit
JP4136432B2 (ja) * 2002-04-15 2008-08-20 松下電器産業株式会社 図形描画装置
KR101132341B1 (ko) * 2003-04-07 2012-04-05 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 데이터 처리 시스템 및 클러스터화된 명령 레벨 병렬성 프로세서
US20040252547A1 (en) * 2003-06-06 2004-12-16 Chengpu Wang Concurrent Processing Memory
JP4477959B2 (ja) * 2004-07-26 2010-06-09 独立行政法人理化学研究所 ブロードキャスト型並列処理のための演算処理装置
KR100821918B1 (ko) * 2005-05-27 2008-04-16 전자부품연구원 데이터 경로의 재구성이 가능한 디지털 신호 처리기
JP4913685B2 (ja) * 2007-07-04 2012-04-11 株式会社リコー Simd型マイクロプロセッサおよびsimd型マイクロプロセッサの制御方法
US7694112B2 (en) * 2008-01-31 2010-04-06 International Business Machines Corporation Multiplexing output from second execution unit add/saturation processing portion of wider width intermediate result of first primitive execution unit for compound computation
KR101275640B1 (ko) * 2011-12-08 2013-06-17 유니슨 주식회사 다수의 버스를 이용하는 논리연산 제어장치
US20190102199A1 (en) * 2017-09-30 2019-04-04 Intel Corporation Methods and systems for executing vectorized pythagorean tuple instructions
US20220171829A1 (en) * 2019-03-11 2022-06-02 Untether Ai Corporation Computational memory
US11342944B2 (en) 2019-09-23 2022-05-24 Untether Ai Corporation Computational memory with zero disable and error detection
US11468002B2 (en) 2020-02-28 2022-10-11 Untether Ai Corporation Computational memory with cooperation among rows of processing elements and memory thereof

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4481580A (en) * 1979-11-19 1984-11-06 Sperry Corporation Distributed data transfer control for parallel processor architectures
US4314349A (en) * 1979-12-31 1982-02-02 Goodyear Aerospace Corporation Processing element for parallel array processors
US4439839A (en) * 1981-08-24 1984-03-27 International Telephone And Telegraph Corporation Dynamically programmable processing element
EP0234785A1 (en) * 1986-02-06 1987-09-02 The British Petroleum Company p.l.c. Improvements relating to control flow in computers
GB8608312D0 (en) * 1986-04-04 1986-05-08 British Petroleum Co Plc Process control units
GB8627490D0 (en) * 1986-11-18 1986-12-17 British Petroleum Co Plc Coordination
JP2889244B2 (ja) * 1988-03-25 1999-05-10 川崎製鉄株式会社 画像処理装置
US5056000A (en) * 1988-06-21 1991-10-08 International Parallel Machines, Inc. Synchronized parallel processing with shared memory
US5136717A (en) * 1988-11-23 1992-08-04 Flavors Technology Inc. Realtime systolic, multiple-instruction, single-data parallel computer system
US5187795A (en) * 1989-01-27 1993-02-16 Hughes Aircraft Company Pipelined signal processor having a plurality of bidirectional configurable parallel ports that are configurable as individual ports or as coupled pair of ports
DE68928980T2 (de) * 1989-11-17 1999-08-19 Texas Instruments Inc Multiprozessor mit Koordinatenschalter zwischen Prozessoren und Speichern
AU645785B2 (en) * 1990-01-05 1994-01-27 Maspar Computer Corporation Parallel processor memory system
JPH05101027A (ja) * 1991-10-04 1993-04-23 Nippon Telegr & Teleph Corp <Ntt> 記号知識とパターン処理の融合方法
JPH05324589A (ja) * 1992-03-25 1993-12-07 Nippon Sheet Glass Co Ltd 並列コンピュータ装置および光結合装置
US5481736A (en) * 1993-02-17 1996-01-02 Hughes Aircraft Company Computer processing element having first and second functional units accessing shared memory output port on prioritized basis
US5606707A (en) * 1994-09-30 1997-02-25 Martin Marietta Corporation Real-time image processor

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6380983B1 (en) 1997-03-14 2002-04-30 Kabushiki Kaisha Toshiba TV receiver with selectable signal processing systems
JP2002528786A (ja) * 1998-08-24 2002-09-03 マイクロユニティ システムズ エンジニアリング インコーポレイテッド ワイド・オペランド・アーキテクチャを含むシステムおよび方法
US7500089B2 (en) 2001-04-02 2009-03-03 Ricoh Company, Ltd. SIMD processor with exchange sort instruction operating or plural data elements simultaneously
US7779229B2 (en) 2002-02-18 2010-08-17 Nxp B.V. Method and arrangement for bringing together data on parallel data paths
US7725681B2 (en) 2003-08-15 2010-05-25 Nxp B.V. Parallel processing array
JP2005092252A (ja) * 2003-09-11 2005-04-07 Matsushita Electric Ind Co Ltd 演算処理装置
JP4663223B2 (ja) * 2003-09-11 2011-04-06 パナソニック株式会社 演算処理装置
JP2007531072A (ja) * 2003-12-19 2007-11-01 マイクロユニティ システムズ エンジニアリング インコーポレイテッド プログラム可能なプロセッサ及び拡張演算を伴う方法
JP2006099719A (ja) * 2004-08-30 2006-04-13 Sanyo Electric Co Ltd 処理装置
JP2011028543A (ja) * 2009-07-27 2011-02-10 Renesas Electronics Corp 情報処理システム及びその情報処理方法

Also Published As

Publication number Publication date
DE19524862A1 (de) 1996-01-18
US5729758A (en) 1998-03-17

Similar Documents

Publication Publication Date Title
JPH0830577A (ja) Simdプロセッサ
US20210406010A1 (en) Processor and control method for processor
CA1324835C (en) Modular crossbar interconnection network for data transaction between system units in a multi-processor system
JP3891609B2 (ja) 並べ換え装置
US3537074A (en) Parallel operating array computer
US6816961B2 (en) Processing architecture having field swapping capability
US8024394B2 (en) Dual mode floating point multiply accumulate unit
US5430885A (en) Multi-processor system and co-processor used for the same
US7350054B2 (en) Processor having array of processing elements whose individual operations and mutual connections are variable
US8006067B2 (en) Flexible results pipeline for processing element
JP2008071130A (ja) Simd型マイクロプロセッサ
EP1384160A2 (en) Apparatus for variable word length computing in an array processor
JPH11212786A (ja) レジスタベースデータ処理のためのデータパスおよび方法
US6195740B1 (en) Constant reconstructing processor that execute an instruction using an operand divided between instructions
US7500089B2 (en) SIMD processor with exchange sort instruction operating or plural data elements simultaneously
US20060236075A1 (en) SIMD microprocessor and data processing method
WO2004010286A2 (en) Self-configuring processing element
US7822955B2 (en) Data processing apparatus and method for utilizing endianess independent data values
US20210216312A1 (en) Semiconductor device
JPH0850651A (ja) 画像処理lsi
JPH02278382A (ja) 図形処理装置用の演算論理機構
US7953938B2 (en) Processor enabling input/output of data during execution of operation
JP2003502753A (ja) レジスタスタックを備えるデータプロセッサ
JPH06309349A (ja) プログラム制御のプロセッサ
JPH07253872A (ja) プロセッサの入出力回路

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20031202