JP2001202351A - Simd型プロセッサ - Google Patents

Simd型プロセッサ

Info

Publication number
JP2001202351A
JP2001202351A JP2000009879A JP2000009879A JP2001202351A JP 2001202351 A JP2001202351 A JP 2001202351A JP 2000009879 A JP2000009879 A JP 2000009879A JP 2000009879 A JP2000009879 A JP 2000009879A JP 2001202351 A JP2001202351 A JP 2001202351A
Authority
JP
Japan
Prior art keywords
processor
register
data
processor element
bit
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.)
Granted
Application number
JP2000009879A
Other languages
English (en)
Other versions
JP3971543B2 (ja
Inventor
Takao Katayama
貴雄 片山
Shinichi Yamaura
慎一 山浦
Kazuhiko Hara
和彦 原
Kazuhiko Iwanaga
和彦 岩永
Kosuke Takato
浩資 高藤
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2000009879A priority Critical patent/JP3971543B2/ja
Priority to US09/761,122 priority patent/US7191310B2/en
Publication of JP2001202351A publication Critical patent/JP2001202351A/ja
Priority to US11/591,754 priority patent/US20070083732A1/en
Application granted granted Critical
Publication of JP3971543B2 publication Critical patent/JP3971543B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】 この発明は、画像データ処理に伴う命令の命
令実行サイクルを減らすことを目的とする。 【解決手段】 この発明は、プログラムを解読しプロセ
ッサ全体を制御するグローバルプロセッサ2と、複数デ
ータを処理するための複数のプロセッサエレメント3a
を備えたプロセッサエレメントブロック3と、を有する
SIMD型プロセッサにおいて、グローバルプロセッサ
2は、対応するPE番号を複数のプロセッサエレメント
3aに転送し、グローバルプロセッサ2のG0レジスタ
からのデータを任意のプロセッサエレメント3aのAレ
ジスタ35aに転送する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は同一の命令で複数デー
タに対して同じ処理を行うSIMD(Single I
nstruction-stream Multipl
e Data-stream)方式のプロセッサに関
し、特に、画像データの高速処理に適したSIMD型プ
ロセッサに関する。
【0002】
【従来の技術】近年、デジタル複写機やファクリミリ装
置等における画像処理では、画素数の増加、画像処理の
多様化などにより画質の向上が図られている。この画質
の向上に伴い、処理すべき画素データ数の増加やデータ
の処理方法が複雑化している。こういった画像処理のデ
ータ処理は複数のデータに対して同じ処理をすることが
多いため、1命令で1つのデータを処理するSISD
(Single Instruction-strea
m Single Data-stream)方式のプ
ロセッサより、1命令で複数のデータを処理する、SI
MD(SingleInstruction-stre
am Multiple Data-stream)方
式のプロセッサが用いられていることが多い。
【0003】SIMD型プロセッサは、複数のデータを
処理するために算術論理演算器とレジスタファイルを備
えたプロセッサエレメント(PE)と呼ばれるブロック
を持ち、複数のデータを一度に処理するためにプロセッ
サエレメントを複数個備えている。また、SIMD型プ
ロセッサにはプログラムによってプロセッサ全体を制御
するために、プログラム解読部、制御部、算術論理演算
器、レジスタ、メモリをもったグローバルプロセッサと
呼ばれるブロックを1つ備える。
【0004】グローバルプロセッサからプロセッサエレ
メントにデータの転送を行うときには、プロセッサエレ
メントにシフトレジスタを設け、すべてのプロセッサエ
レメントのシフトレジスタをチェーン構造に接続し、プ
ロセッサエレメントの片端をグローバルプロセッサに接
続し、シフトレジスタをシフトしていくことでデータを
転送したり、或いは、グローバルプロセッサからすべて
のプロセッサエレメントにバスを設け、直接データを転
送するようにしている。
【0005】プロセッサエレメントをシフトする場合
は、全プロセッサエレメント分のシフトを行う必要があ
る。また、直接データを書き換える場合は、全プロセッ
サエレメントを書き換えるか、特定の1つのプロセッサ
エレメントを制御部から選択信号によって選択し、書き
換えることになる。1つのプロセッサエレメントの書き
換えなら1命令サイクルですむが、複数プロセッサエレ
メントなどでは複数命令サイクルが必要となる。
【0006】
【発明が解決しようとする課題】プロセッサエレメント
の演算は通常実行条件フラグによって演算の有無を決定
する。実行条件フラグはプロセッサエレメントの演算ア
レイで行われる演算の結果によりセット/リセットした
り、また、グローバルプロセッサの制御部からの制御信
号により直接セット/リセットする。
【0007】従来のSIMD型プロセッサでは演算の結
果によって書き換えるか、全プロセッサエレメントの条
件フラグにデータを転送することでセット/リセットし
たりしていた。しかし、プロセッサエレメントの演算が
特定部分であった場合、例えばある範囲内のプロセッサ
エレメントを演算対象としたり、n個(n=1、2、3
・・・)おきのプロセッサエレメントを演算対象とした
りする場合、実行条件フラグの設定を対象とするプロセ
ッサエレメントに設定するのは困難であった。このため
意図的に対象と非対象のプロセッサエレメントで異なる
データを設定し演算させることで条件フラグを立てた
り、対象とするプロセッサエレメントの条件フラグに1
つずつ設定したりした。
【0008】また、画素データ数の増加やデータ処理方
法の複雑化に伴い、同時に処理すべきデータ数も増加
し、プロセッサエレメントの数の増加となっている。プ
ロセッサエレメントを増加させた場合、論理検証、IC
試験などで使用するテストパターンの量も増加する。1
つのプロセッサエレメントに対して行うテストを全プロ
セッサエレメントに対して行うためには、プロセッサエ
レメント数のテストパターンが必要となるか、全プロセ
ッサエレメントに対してテスト用の回路を設けたり、テ
スト結果を出力するポートを設ける必要がある。
【0009】この発明は、上記した従来の難点に鑑みな
されたものにして、有効な命令と命令を実現する手段を
設けることで、このような画像データ処理に伴う命令の
命令実行サイクルを減らすことを目的とする。
【0010】
【課題を解決するための手段】この発明は、プログラム
を解読しプロセッサ全体を制御するグローバルプロセッ
サと、複数データを処理するための複数のプロセッサエ
レメントを備えたプロセッサエレメントブロックと、を
有するSIMD型プロセッサにおいて、前記グローバル
プロセッサは、プロセッサエレメント番号を全プロセッ
サエレメントに設定する命令を設け、命令実行によって
プロセッサエレメントに対して制御信号を出力し、制御
信号によりプロセッサエレメントに対応するプロセッサ
エレメント番号を演算アレイの入力データとして用いる
手段を設ける。
【0011】上記した構成によれば、グローバルプロセ
ッサからの制御信号によってプロセッサエレメント(P
E)番号をプロセッサエレメントのAレジスタに入力で
きる。各プロセッサエレメントに格納されたPE番号
は、プロセッサエレメントのテストをするときに用いる
ことができる。例えば、PEシフトをテストする場合な
ど有効になる。
【0012】上記の構成において、グローバルプロセッ
サの汎用レジスタから、汎用レジスタのビットサイズを
持ったバスを1組設け、全プロセッサエレメントの演算
アレイ内のレジスタに接続し、データを転送する手段を
設ける。
【0013】上記した構成によれば、例えば、グローバ
ルプロセッサのG0レジスタからバスでプロセッサエレ
メントのAレジスタに接続し、任意のプロセッサエレメ
ントのAレジスタにG0の値を転送することができる。
【0014】さらに、前記データ転送手段は、前記プロ
セッサエレメント番号入力手段からのプロセッサエレメ
ント番号と即値による範囲指定の上限値、下限値との比
較を行うコンパレータを設け、特定のプロセッサエレメ
ントのみ制御を行う。
【0015】従来であればある範囲だけのデータ転送は
その範囲内の実行条件フラグを一つずつセットし、実行
条件フラグによって転送の有無を決定していたため、転
送数だけのサイクルを必要としたが、上記した構成によ
れば、ある範囲だけのプロセッサエレメントを指定でき
るMGAA命令を使用することで、1サイクルでの処理
が可能である。
【0016】また、前記データ転送手段は、前記プロセ
ッサエレメント番号入力手段からのプロセッサエレメン
ト番号と、即値のビットパターンによる範囲指定を行う
ビット位置指定と、即値のビットパターンによるマスキ
ングを行うビットマスク指定によってプロセッサエレメ
ントを選択する、パターンマッチングブロックを設け、
特定のプロセッサエレメントにのみ制御を行う。
【0017】上記した構成によれば、1つおき、3つお
き等のN個おきのプロセッサエレメントの指定を行いデ
ータを転送することができる。
【0018】また、前記データ転送手段は、グローバル
プロセッサ内の汎用レジスタからの値を、前記コンパレ
ータもしくはパターンマッチングブロックに転送する経
路を設け、ポインタ指定により行う。
【0019】上記した構成により、グローバルプロセッ
サ命令での演算の結果を繰り張るプロセッサ内の汎用レ
ジスタに格納し、ダイナミックな指定が可能となる。
【0020】前記ポインタ指定で、指定後の汎用レジス
タにおけるデータのインクリメントを行うこと特徴とす
る。
【0021】上記した構成によれば、演算後に1加算し
次の演算範囲の縮小が可能となる。
【0022】また、前記プロセッサエレメントには、演
算の結果をレジスタに格納するか否かを制御し、演算の
結果もしくはグローバルプロセッサからのからの制御信
号によりセット/リセット可能な複数のフラグビットを
持ち、セット/リセット前のフラグビットの状態と、新
しくセット/リセットする値との倫理演算を行う。AN
D/OR論理演算器を設け、演算後の値をフラグビット
にセット/リセットを行うことを特徴とする。
【0023】前記フラグビット指定は、オペランドの即
値指定によって特定のプロセッサエレメントから特定の
プロセッサエレメントまでの範囲を指定することにより
行われることを特徴とする。
【0024】また、前記フラグビット指定は、オペラン
ドの即値指定によって、2進数で表わされたプロセッサ
エレメント番号にマッチするプロセッサエレメントを指
定するビット位置指定と、そのビット位置指定の任意ビ
ットをマスクするビットマスクによるプロセッサエレメ
ント指定により行われることを特徴とする。
【0025】前記フラグビット指定は、グローバルプロ
セッサの汎用レジスタを使用し、ポインタ指定により行
われることを特徴とする。
【0026】上記した構成によれば、複数のまたがった
不規則なエリアの指定を行うとき有効となる。
【0027】
【発明の実施の形態】以下、この発明の実施の形態につ
き図面を参照して説明する。図1は、この発明の実施の
形態にかかるSIMD型プロセッサの構成を示すブロッ
ク図である。
【0028】まず、この発明にかかるSIMD型プロセ
ッサの全体構成について、図1に従い説明する。この発
明のSIMD型プロセッサ1は、図1に示すように、グ
ローバルプロセッサ(GP)2、本実施形態では256
組の後述するプロセッサエレメント(PE)3aを備え
たプロセッサエレメントブロック3、インタフェース4
から構成される。インタフェース4はグローバルプロセ
ッサ2の命令に基づき、例えば外部のイメージスキャナ
などから演算対象となるデータをプロセッサ内部の入出
力用のレジスタフィル31に与えるとともに、演算処理
されたデータをレジスタファイル31から外部のプリン
タなどへ転送するものである。
【0029】プロセッサエレメントブロック3は、SI
MD型プロセッサの外部に設けられたスキャナなどの入
力装置から画像データを入力したり、外部のプリンタな
どの出力装置に画像データを出力したり、グローバルプ
ロセッサ2から演算アレイ36を経由してデータの入出
力を行うレジスタファイル31と、レジスタファイル3
1からのデータやグローバルプロセッサ2からのデータ
を演算処理する演算アレイ36をそなえる。SIMD方
式では、複数のデータを同時に処理するため、プロセッ
サエレメントブロック3は、複数のプロセッサエレメン
ト3a…で構成される。
【0030】グローバルプロセッサ2は、プロセッサエ
レメントブロック3、インタフェース4を制御する。こ
のグローバルプロセッサ2は、各種制御信号を送るSI
SD方式のプロセッサで構成されている。
【0031】グローバルプロセッサ2の構成は図2に示
すように、命令を解読し、各種制御信号を発生するシー
ケンスユニット(以下、SCUという)22と、グロー
バルプロセッサ命令により算術論理演算を行う算術論理
演算器(以下、ALUという。)23、このプロセッサ
のプログラム格納用のプログラムRAM21と演算デー
タ格納用のデータRAM24、図には明記していない
が、割り込み制御回路、外部I/O制御回路、GP演算
制御回路とを、備える。
【0032】さらに、グローバルプロセッサ2は、プロ
グラムのアドレスを保持するプログラムカウンタ(P
C)、演算処理のデータ格納のための汎用レジスタであ
るG0〜G3レジスタ、レジスタ退避、復帰時に退避先
データRAMのアドレスを保持しているスタックポイン
タ(SP)、サブルーチンコール時にコール元のアドレ
スを保持するリンクレジスタ(LS)、同じくIRQ時
とNMI時の分岐元アドレスを保持するLI、LNレジ
スタ、プロセッサの状態を保持しているプロセッサステ
ータスレジスタ(P)が内蔵されている。
【0033】前述したSCU22には、図示はしていな
いが、GP命令を解読し、主にグローバルプロセッサ2
内の各ブロックに制御信号を発生するGPインストラク
ションデコーダ(以下、GDCという)と、プロセッサ
エレメント(PE)命令を解読し、主にプロセッサエレ
メントブロック3内の各ブロックに制御信号を発生する
PEインストラクションデコーダ(以下、PDCとい
う)を、備える。すなわち、このプロセッサには、主に
グローバルプロセッサ2内での演算処理を受け持つGP
命令と、プロセッサエレメントブロック3内もしくはプ
ロセッサエレメント3a…間での演算処理を受け持つP
E命令に分類される。
【0034】また、前述したプロセッサエレメントブロ
ック3の演算アレイ36は、マルチプレクサ32、シフ
ト拡張回路33、算術論理演算器34(以下、「ALU
34」という)、及びAレジスタ35a、Fレジスタ3
5bを備える。
【0035】前述したグローバルプロセッサ2のSCU
22は、インタフェース4に対してデータ転送のための
動作設定用データ及びコマンド等を送る。インタフェー
ス4は、シーケンスユニット22の動作設定用データ及
びコマンドに基づき、プロセッサエレメント3aのアド
レス指定のためのアドレス制御信号、プロセッサエレメ
ント3aを構成するレジスタ31bにデータのリード/
ライトを指示するためのリード/ライト制御信号、クロ
ック信号を与えるためのクロック制御信号を生成する。
【0036】ここで、リード/ライト制御信号のうちラ
イト制御信号とは、演算処理されるデータをデータバス
より取得して、プロセッサエレメント3aのレジスタフ
ァイル31に保持させるための信号をいう。一方、リー
ド/ライト制御信号のうちリード制御信号とは、プロセ
ッサエレメント3aのレジスタファイル31が保持して
いる演算処理されたデータを、データバスへ与えるよう
レジスタに指示するための信号をいう。
【0037】次に、この実施形態におけるプロセッサエ
レメントブロック3につき、図3を参照してさらに説明
する。
【0038】この実施の形態におけるプロセッサエレメ
ントブロック3は、隣り合う2つのプロセッサエレメン
ト3aに偶数番号、奇数番号を割り付けて1組とすると
共に、この1組のプロセッサエレメント3aには同一の
アドレスを割り付けている。
【0039】上記したメモリコントローラ5は、グロー
バルプロセッサ2からのコマンドを受けて、プロセッサ
エレメントブロック3を構成するプロセッサエレメント
3aのアドレスを指定する信号(以下、「アドレス指定
信号」という。)を作成し、インタフェース4からアド
レスバス41aを介してプロセッサエレメント3aのレ
ジスタコントローラ31aヘ送る。また、インタフェー
ス4は、プロセッサエレメント3aを構成するレジスタ
31bに対して、データのリード/ライトを指示するた
めの信号(以下、「リード/ライト指示信号」とい
う。)を、リード/ライト信号線45a(45b)を介
してプロセッサエレメント3aのレジスタコントローラ
31aヘリード/ライト信号を与える。偶数用リード/
ライト信号線45aは、偶数のプロセッサエレメント3
aにリード/ライト信号を与え、奇数用リード/ライト
信号線45bは、奇数のプロセッサエレメント3aにリ
ード/ライト信号を与える。
【0040】また、インタフェース4は、クロック信号
線41cを介してプロセッサエレメント3aのレジスタ
コントローラ31aへクロック信号を与える。
【0041】さらに、上述したように、SIMD型プロ
セッサ1の外部に設けられたイメージスキャナ等で読み
取られた画像データは一端図示しないバッファメモリに
格納され、インタフェース4は、バッファメモリからデ
ータを、本実施形態では16ビットのパラレルデータと
して取り込む。この16ビットのデータは、偶数番号が
割り付けられたプロセッサエレメント3aに与えられる
8ビットと、奇数番号が割り付けられたプロセッサエレ
メント3aに与えられる8ビットとから構成されてい
る。それぞれ8ビットデータは偶数用データバス46a
及び奇数用データバス46bに与えられる。この8ビッ
トのパラレルデータについては、データに応じて適宜変
更しても問題ない。このデータバス46a,46bは、
レジスタ31bに保持されている演算処理されたデータ
が、SIMD型プロセッサ1の外部に設けられたプリン
タなどへバッファメモリを介して送られる時にも使用さ
れる。
【0042】また、グローバルプロセッサ2の内蔵する
レジスタは、プロセッサエレメントブロック3のAレジ
スタ35a、Fレジスタ35bに接続されており、この
レジスタ35a、35bとの間でシーケンスユニット2
2の制御によりデータの交換が行われる。
【0043】プロセッサエレメントブロック3は、図2
及び図3に示すように、レジスタファイル31、マルチ
プレクサ32、シフト・拡張回路33、ALU34、レ
ジスタ35a、35b、35c、を一単位とする複数の
プロセッサエレメント3aを備える。レジスタファイル
31には、1つのプロセッサエレメント3a単位に8ビ
ットのレジスタが32本内蔵されており、本実施形態で
は256個のプロセッサエレメント分の組がアレイ構成
になっている。
【0044】レジスタの外部からのアクセスは1つの外
部ポートで各プロセッサエレメント3aの1つのレジス
タがアクセス可能であり、外部から入力されたアドレス
でプロセッサエレメントの番号(0〜255)を指定す
る。したがって、レジスタアクセスの外部ポートは全部
で24組搭載されている。また、外部からアクセスされ
るデータは上述したように、偶数のプロセッサエレメン
ト3aと奇数のプロセッサエレメント3aの1組で16
ビットデータとなっており、1回のアクセスで2つのレ
ジスタを同時にアクセスしている。
【0045】本実施形態では、プロセッサエレメント3
aの数を256個として説明するが、これに限定される
ものでなく適宜変更して使用してもよい。このプロセッ
サエレメント3aには、グローバルプロセッサ2のシー
ケンスユニット22により、インタフェース4に近い順
に0から255までのアドレスが割り付けられる。
【0046】プロセッサエレメント3aのレジスタファ
イル31は、レジスタコントローラ31a、2種類のレ
ジスタ31b、31cを備える。本実施形態では、図3
に示すように、一単位のプロセッサエレメント3a毎
に、レジスタコントローラ31aとレジスタ31bとを
24組備え、さらにレジスタ31cを8個備えている。
【0047】本実施形態では、レジスタ31b、31c
を8ビットのものとして扱うが、これに限定されるもの
でなく適宜変更して使用してもよい。
【0048】レジスタファイル31の2種類のレジスタ
31b、31cは、内蔵するR0、R1、R2...R
31と呼ばれているレジスタを上記のように区分したも
のである。それぞれのレジスタファイル31は演算アレ
イ36に対して1つの読み出しポートと1つの書き込み
ポートを備えており、8ビットのリード/ライト兼用の
バスで演算アレイ36からアクセスされる。32本のレ
ジスタの内、24本はすなわち、レジスタ31bは、プ
ロセッサ外部からアクセス可能であり、外部からクロッ
クとアドレス、リード/ライト制御を入力することで任
意のレジスタを読み書きできる。
【0049】レジスタコントローラ31aは、インタフ
ェース4と、上述したアドレスバス41a、偶数用リー
ド/ライト信号線45a、奇数用リード/ライト信号線
45b、クロック信号線41cを介して接続されてい
る。
【0050】インタフェース4は、アドレス制御信号を
受けると、アドレス指定信号をアドレスバス41aを介
してプロセッサエレメントブロック3ヘ送る。これによ
り、一組のプロセッサエレメント3a、即ち2つのプロ
セッサエレメント3aが同時にアドレス指定される。レ
ジスタコントローラ31aは、送られてきたアドレス指
定信号をデコードし、デコードしたアドレスと、自己に
割り付けられたアドレスとが一致する場合には、クロッ
ク信号41cを介して送られてきたクロック信号に同期
して、リード/ライト信号45a或いは45bを介して
送られてきたリード/ライト指示信号を得る。具体的に
は、偶数番号が割り付けられているレジスタコントロー
ラ31aは、偶数用リード/ライト信号45aを介して
インタフェース4から送られてきたリード/ライト指示
信号を得る。一方、奇数番号が割り付けられているレジ
スタコントローラ31aは、奇数用リード/ライト信号
45bを介してインタフェース4から送られてきたリー
ド/ライト指示信号を得る。このとき一組を構成するプ
ロセッサエレメント3aのレジスタコントローラ31a
へ送られるリード/ライト指示信号はそれぞれ異なるも
のであってもよい。即ち、偶数番号が割り付けられてい
るレジスタコントローラ31aへ送られる指示信号がリ
ード指示であるとき、奇数番号が割り付けられているレ
ジスタコントローラ31aへ送られる指示信号はライト
指示であってもよい。そして、このリード/ライト指示
信号はレジスタ31bに与えられる。
【0051】レジスタコントローラ31aから双方のプ
ロセッサエレメント3aに対し、ライト指示信号が送ら
れてきた場合には、偶数番号が割り付けられたプロセッ
サエレメント3aのレジスタ31bは、演算処理される
データ(8ビット)を偶数用データバス46aより取得
して保持する。また、奇数番号が割り付けられたプロセ
ッサエレメント3aのレジスタ31bは、演算処理され
るデータ(8ビット)を奇数用データバス46bより取
得して保持する。一方、レジスタコントローラ31aか
ら双方のプロセッサエレメント3aに対し、リード指示
信号が送られてきた場合には、偶数番号が割り付けられ
たプロセッサエレメント3aのレジスタ31bは、演算
処理されたデータ(8ビット)を偶数用データバス46
aへ送る。また、奇数番号が割り付けられたプロセッサ
エレメント3aのレジスタ31bは、演算処理されたデ
ータ(8ビット)を奇数用データバス46bへ送る。
【0052】このように、一度のアドレス指定により、
偶数番号が割り付けられたプロセッサエレメント3aに
データ転送できるとともに、奇数番号が割り付けられた
プロセッサエレメント3aにもデータ転送できる。この
ため、データの転送回数を少なくすることができ、デー
タ転送を高速にできる。
【0053】レジスタ31bは、後述するALU34で
これから演算される外部から入力されたデータを保持し
たり、或いはALU34で演算処理されたデータを外部
へ出力するために保持するものであり、いわゆる入力レ
ジスタとしても、或いは出力レジスタとしても機能す
る。また、演算処理されるデータ、或いは演算されたデ
ータを一時的に保持するといった、後述するレジスタ3
1cとしての機能も有する。なお、本実施形態では、レ
ジスタ31bは8ビットのデータを保持できるものとし
て扱うが、データに応じて適宜変更しても問題ない。上
述したレジスタコントローラ31aからライト指示信号
が与えられると、レジスタ31bは演算処理されるデー
タをデータバス46aまたはデータバス46bより取得
して保持する。一方、レジスタコントローラ31aから
リード指示信号が送られてくると、レジスタ31bは保
持している演算処理されたデータをデータバス46aま
たはデータバス46bへ与える。このデータはインタフ
ェース4から図示しないバッファメモリから外部へ出力
される。
【0054】また、レジスタ31bは、本実施形態にお
いては8ビットデータをパラレルで転送するデータバス
37を介してマルチプレクサ32に接続されている。A
LU34で演算処理されるデータ、或いはALU34で
演算処理されたデータは、このデータバス37を介し
て、レジスタ31bとの間で転送される。この転送は、
グローバルプロセッサ2のSCU22からの指示によっ
て、グローバルプロセッサ2に接続されたリード信号線
26a、ライト信号線26bを介して行われる。具体的
には、グローバルプロセッサ2のシーケンスユニット2
2から、リード信号線26aを介してリード指示信号が
送られてくると、レジスタ31bは保持している演算処
理されるデータをデータバスへ置く。このデータはAL
U34へ送られ演算処理される。一方、グローバルプロ
セッサ2のSCU22から、ライト信号線26bを介し
てライト指示信号が送られてくると、レジスタ31bは
データバス37を介して送られてきたALU34で演算
処理されたデータを保持する。
【0055】レジスタ31cは、レジスタ31bより与
えられた演算処理されるデータ、或いは演算されたデー
タがレジスタ31bに与えられる前に、そのデータを一
時的に保持するものである。このレジスタ31cは、上
述したレジスタ31bと異なり、インタフェース4を介
して、外部との間においてデータ転送はしない。
【0056】演算アレイ36は、マルチプレクサ32シ
フト/拡張回路33、16ビットALU34及び16ビ
ットのAレジスタ35a、Fレジスタ35bを備えてい
る。
【0057】プロセッサエレメント3aの命令による演
算は、基本的にレジスタファイル31から読み出された
データをALU34の片側の入力としてもう片側にはレ
ジスタ35のAレジスタの内容を入力として結果をAレ
ジスタに格納する。したがって、Aレジスタ35aとレ
ジスタファイル31のR0〜R31レジスタとの演算が
行われることとなる。レジスタファイル31と演算アレ
イ36との接続に(7to1)のマルチプレクサ32を
置いており、プロセッサエレメント方向で左に1、2、
3つ離れたデータと右に1、2、3つ離れたデータ、中
央のデータを演算対象として選択している。また、レジ
スタファイル31の8ビットのデータはシフト/拡張回
路33により任意ビットの左シフトしてALU34に入
力される。さらに、図2に示すように、8ビットの条件
レジスタ(T)35cにより、プロセッサエレメント3
aごとに演算実行の無効/有効の制御をしており、特定
のプロセッサエレメント3aだけを演算対象として選択
できるように構成している。
【0058】上記したように、マルチプレクサ32は、
自己のプロセッサエレメント3aに備えられた上記デー
タバス37に接続されるとともに、両隣3つのプロセッ
サエレメント3aに備えられたデータバス37にも接続
されている。このマルチプレクサ32は7つのプロセッ
サエレメント3aから1つを選択し、その選択したプロ
セッサエレメント3aにおけるレジスタ31b、31c
で保持されているデータをALU34へ送る。或いはA
LU34で演算処理されたデータを、選択したプロセッ
サエレメント3aにおけるレジスタ31b、31cへ送
る。これによって、隣のプロセッサエレメント3aにお
けるレジスタ31b、31cで保持されているデータを
利用した演算処理が可能になり、SIMD型プロセッサ
1の演算処理能力を高めることができる。
【0059】シフト/拡張回路33は、マルチプレクサ
32から送られてきたデータを所定ビットシフトしてA
LU34へ送る。或いはALU34から送られてきた演
算処理されたデータを所定ビットシフトしてマルチプレ
クサ32へ送る。
【0060】ALU34は、シフト/拡張回路33から
送られてきたデータと、レジスタ35に保持されている
データとに基づき算術論理演算を行う。なお、本実施形
態では、ALU34は16ビットのデータに対応できる
ものとして扱うが、データに応じて適宜変更しても問題
ない。演算処理されたデータは、レジスタ35に保持さ
れ、シフト/拡張回路33へ転送されたり、或いはグロ
ーバルプロセッサ2の汎用レジスタ25へ転送される。
【0061】グローバルプロセッサ2からインタフェー
ス4へはI/O用のアドレス、データ、コントロール信
号がバスを介して与えられる。グローバルプロセッサ2
がインタフェース4のいくつかの動作設定レジスタ(図
示せず)へ動作方法等のコマンドを設定している。
【0062】次に、この発明にかかるSIMD型プロセ
ッサ1の構成につき、図2、図4,図5を参照して説明
する。上述したように、プロセッサエレメント3aの演
算は、実行条件フラグによって演算の有無が決定され
る。従来、実行条件フラグのセット/リセットは全プロ
セッサエレメントの条件フラグにデータを転送して行わ
れており、同じ演算処理などを繰り返さなければなら
い。この発明は、命令の実行サイクルを減らすことが可
能なように構成するものである。
【0063】図2に示すように、この発明では、全プロ
セッサエレメント3a…に対して、グローバルプロセッ
サ2からの制御信号に基づいて、プロセッサエレメント
(PE)番号(i=0,1,…、n)が転送される。こ
のPE番号を転送するために、グローバルプロセッサ2
は、LDPN(Load PE Number)命令を
出す。PE番号は、各プロセッサエレメント3aに予め
設定された番号に基づいて、例えば、8ビットデータを
GND、VCCとの組み合わせにより設定し、GNDの
トランジスタをLDPN命令に基づく制御信号よりオン
/オフすることにより、PE番号が各プロセッサエレメ
ント3aに転送される。
【0064】上記したLDPN命令は、全プロセッサエ
レメント3a…に対してPE番号を自プロセッサエレメ
ント3aのAレジスタ35aに設定するものである。P
E0のAレジスタ35aには”0”が、PE127のA
レジスタ35aには”127”が設定される。このPE
番号は2進数で表したデータが与えられるが、前記した
例では理解を容易にするために、十進法で表記してい
る。
【0065】LDPNが実行されると、グローバルプロ
セッサ2のSCU22から制御信号が全プロセッサエレ
メント3aに対して出力され、各プロセッサエレメント
3a…にはALU34の片側にPE番号を設定し、PE
番号はALU34を通ってAレジスタ35aに格納され
る。
【0066】図2に示すように、グローバルプロセッサ
2からの与えられる制御信号、すなわちLPDN命令に
よってPE番号が各プロセッサエレメント3a…のAレ
ジスタ35aにそれぞれ入力することができる。各プロ
セッサエレメント3a…に格納されたPE番号は、プロ
セッサエレメントのテストをするときに用いられる。例
えば、PEシフトをテストする場合など有効になる。
【0067】PEシフトは上記した演算アレイ36にあ
るマルチプレクサ32を使用し、注目するプロセッサエ
レメント3aをPEn(n=0、1、2、3...25
5)とした場合、PEnの演算アレイ36に入力するデ
ータをPEn+3、PEn+2、PEn+1、PEn、
PEn−1、PEn−2、PEn−3のいずれかの指定
レジスタから選択行うもので、演算アレイ36の演算結
果をAレジスタ35aもしくはFレジスタ35bからP
En+3、PEn+2、PEn+1、PEn、PEn−
1、PEn−2、PEn−3のレジスタに格納すること
もできる。
【0068】例えば命令では以下のように記述する。 ADD R1:L3 ;ADDは加算命令で、PEnの
Aレジスタの値と、PEn−3のR1レジスタの値を加
算してPEnのAレジスタに格納する。 STA #12h、R1:U3 ;STAはストア命令
で、PEnのAレジスタの値を、PEn+3のR1レジ
スタに格納する。
【0069】上記のPEシフトをテストする場合、従来
であれば、SIMDプロセッサでは全プロセッサエレメ
ントに同じデータしか設定できないため、PE0、PE
1、PE2...と1PEずつAレジスタにデータを転
送しなければ異なる値を設定することができなかった。
PEシフトを行った結果が全プロセッサエレメントで同
じ値になればどのPEから転送されてきたが判明できな
い。この発明であれば、LDPN命令によって異なるデ
ータが一度にAレジスタ35aに設定できる。LDPN
命令で一度にすべてのプロセッサエレメント3a...
のAレジスタ35aにそれぞれのPE番号の値をセット
する。プロセッサエレメントの下位番号から順に、Aレ
ジスタに0、1、2、3...が設定される。PEシフ
トでレジスタファイル31のいずれかのレジスタにスト
アする。例えば2下位にシフトし、R1にストアした場
合、プロセッサエレメントの下位番号から順に、R0レ
ジスタに2、3、4、5...がストアされる。最後に
AレジスタとR0レジスタを比較すれば全てのプロセッ
サエレメントで(Aレジスタの値)−(R0レジスタの
値)=2となる。PEシフトがうまく行われていないプ
ロセッサエレメントでは2以外の値となる。
【0070】また、LDPN命令は、n個おきのプロセ
ッサエレメント3a…の演算指定にも使用できる。例え
ば、5個おき(PE0,PE5,PE9,…)の選択を
行いたい場合には、 LDPN命令で全プロセッサエレ
メント3a…にPE番号を設定する。PE0,PE1,
PE2,…PE255のAレジスタ35aの値を順に指
定すると、0,1,2,3…255となる。Aレジスタ
35aの値を5で除算し、余りを格納すると(これらの
演算はALUによる減算の繰り返しで最終にAレジスタ
に残った値が余りとなる。除算の引き放し法、引き戻し
法で可能。)、0,1,2,3,4,0,1,2,3,
4,0,1,…0となり、PE命令でCMP命令(CM
P命令はAレジスタ35aとレジスタファイル31のデ
ータを比較し、結果をTレジスタ35cの指定ビットに
反映させる。)を使用し、結果をTレジスタ35cに反
映させることで、次の演算のプロセッサエレメント3a
選択ができる。
【0071】このように、この発明であれば、プロセッ
サエレメント3aの指定数にかかわらず、LDPN命令
で1サイクル、除算で16サイクル、CMP命令で1サ
イクルで対象とするプロセッサエレメント3aの選択が
完了する。
【0072】図2に示すように、グローバルプロセッサ
2からプロセッサエレメント3aへのデータ転送にはG
Aバス211が使われる。GAバス211はグローバル
プロセッサ2のG0レジスタに接続されており、G0レ
ジスタのデータを指定されたプロセッサエレメント3a
のAレジスタ35aにデータが転送される。また、プロ
セッサエレメント3aのAレジスタ35aはAGバス2
12が接続されており、Aレジスタ35aに格納された
データがAGバス212からG0レジスタに与えられ
る。
【0073】グローバルプロセッサ2からAレジスタ3
5aへのデータ転送には、MGAA(Move G0
to A by Area Assignment)命
令、MGAB(Move G0 to A by Bi
t Assignment)命令といった命令が使用さ
れる。
【0074】MGAA命令はPEi〜PEjまでの(i
≦j、i,j=0,1,…,255)プロセッサエレメ
ントのAレジスタ35aにG0レジスタの値を転送す
る。指定には即値指定とレジスタ指定があり、例えば、
次のように記述する。
【0075】(MGAA #12,#23);PE12
〜PE23までのプロセッサエレメントのAレジスタ3
5aにG0レジスタの値を転送する。
【0076】(MGAA G2,G3);PE(G2)
〜PE(G3)までのプロセッサエレメントのAレジス
タ35aにG0レジスタの値を転送する。G2の値が2
3でG3の値が45であればPE23〜PE45が対象
となる。
【0077】(MGAA G2+,G3);PE(G
2)〜PE(G3)までのプロセッサエレメントのAレ
ジスタ35aにG0レジスタの値を転送する。転送した
後、G2の値を1インクリメントする。
【0078】MGAB命令はn個おきといったプロセッ
サエレメント3aの選択をする場合に使用される。指定
には、MGAA命令と同じように即値指定とレジスタ指
定がある。即値はわかりやすいようにビット指定で記述
している。
【0079】MGAB命令の場合は最初のオペランドに
プロセッサエレメント3aのビット指定値を、2番目の
オペランドにプロセッサエレメント3aのマスク値を記
述する。
【0080】次の式を満たすPE番号が選択される。 (指定したいPEの番号)&  ̄(マスク値)=(ビッ
ト指定値)&  ̄(マスク値)
【0081】例えば、次のように記述する。 (MGAB #00000000b,#0000000
1b);PE0、PE2、PE4、…PE2*i(i=
0,1,2,…127)のプロセッサエレメントのAレ
ジスタ35aにG0レジスタの値を転送する。
【0082】(MGAB G2,G3);G2をビット
指定値、G3をマスク値として前述の式を満たす番号の
プロセッサエレメントのAレジスタ35aにG0レジス
タの値を転送する。
【0083】(MGAB G2+,G3);G2をビッ
ト指定値、G3をマスク値として前述の式を満たす番号
のプロセッサエレメントのAレジスタにG0を転送す
る。G2は転送後に1インクリメントされる。
【0084】上記したように、グローバルプロセッサ2
のG0レジスタにGAバス211によりすべてのプロセ
ッサエレメント3aのAレジスタ35aを接続すること
で、MGAA命令、MGAB命令により、任意のプロセ
ッサエレメント3aのAレジスタ35aにG0レジスタ
の値を転送することができる。
【0085】上述のMGAA命令、MGAB命令は、図
5に示すような各プロセッサエレメント3aに装備され
ているコンパレータ301、パターンマッチング回路3
02によって、そのプロセッサエレメント3aが演算対
象であるか、否かを判断するためにも用いられる。
【0086】グローバルプロセッサ2のSCU22から
MGAA命令、MGAB命令及び制御信号が出力され、
即値は即値バス221、即値バス222に与えられる。
即値バス221に与えられた即値はセレクタ204に与
えられる。セレクタ203からはPEMSKデータ、P
EHデータがプロセッサエレメント3aに出力される。
PEMSKデータはプロセッサエレメント3aのパター
ンマッチング回路302に、PEHデータはコンパレー
タ301に与えられる。セレクタ204からはPESL
データ、PELデータがプロセッサエレメント3aに出
力される。PESLデータはプロセッサエレメント3a
のパターンマッチング回路302に、PELデータはコ
ンパレータ301に与えられる。
【0087】コンパレータ301及びパターンマッチン
グ回路302にはPE番号データが与えられる。
【0088】各ブロックの条件に適合すれば信号が出力
され、グローバルプロセッサ2からの制御信号をもとに
セレクタ303でそれが範囲指定であるか、マスク指定
であるか選択し、信号を出力する。
【0089】コンパレータ301、パターンマッチング
回路302に入力されるPE番号データは、各プロセッ
サエレメント3aでVCC、GNDにつなげることでデ
ータを生成する。例えば、PE6のプロセッサエレメン
トであれば、8ビットの信号線を上位ビットからGN
D、GND、GND、GND、GND、GND、VC
C、VCC、GNDに接続する。接続は各ビットに取り
付けられたスイッチで行う。スイッチの制御信号はグロ
ーバルプロセッサ2から出力されONになるとPE番号
が入力できる。図2に示すように、PE番号はALU3
4の片側入力にも接続されている。切り離しは同じ様に
グローバルプロセッサ2からの制御信号によって行われ
る。
【0090】上記したMGAA命令により、各プロセッ
サエレメント3aの保持しているPE番号と、即値オペ
ランドで指定した値の上限値と下限値の比較をコンパレ
ータ301で行い、範囲内にあればそのプロセッサエレ
メント3aの演算を実行する。演算の実行、非実行はA
LU34の結果をAレジスタ35aが更新しないように
制御する(ラッチ信号を更新しない)。従来であればあ
る範囲だけのデータ転送はその範囲内の実行条件フラグ
を一つずつセットし、実行条件フラグによって転送の有
無を決定していたため、転送数だけのサイクルを必要と
したが、ある範囲だけのプロセッサエレメントを指定で
きるMGAA命令を使用することで、1サイクルでの処
理が可能である。
【0091】また、グローバルプロセッサ2からのプロ
セッサエレメント3aへのデータ転送は、図5に示すよ
うな各プロセッサエレメント3aに装備されたビットマ
スク指定を行うパターンマッチング回路302により1
つおき、3つおき等のN個おきのPEの指定を行いデー
タを転送することができる。
【0092】選択されるパターンは次式を満たすPE番
号が対象となる。 (指定したいPEの番号)&  ̄(マスク値)=(ビッ
ト指定値)&  ̄(マスク値)
【0093】例えば、奇数番号のプロセッサエレメント
にデータを転送するためプロセッサエレメントの選択を
する場合、つまりPE1、PE3、PE5、PE
7、...のプロセッサエレメントを選択する場合、ビ
ット指定値を00000001b、マスク値を1111
1110bにすればPE番号の下位1ビットが1である
PE番号はすべて上式が成り立つため選択されたことに
なる。
【0094】また、ビット指定値を00001100b
(10進で12)、マスク値を00000010bとし
た場合、前述の式を満たすプロセッサエレメントはPE
12とPE14となり、偶数番号のプロセッサエレメン
ト選択に範囲を指定することもできる。
【0095】図5に示すように、グローバルプロセッサ
2のG2レジスタ201とG3レジスタ202は全プロ
セッサエレメント3aに対してバス接続されている。S
CU22からの即値データとセレクタ203,204に
てセレクトされるためG2レジスタ201とG3レジス
タ202による指定が行える。これによりグローバルプ
ロセッサ命令での演算の結果をG2、G3レジスタ20
1、202に格納して、ダイナミックな指定が行える。
【0096】また、グローバルプロセッサ2ではALU
23によってG2レジスタ201の値の減算が可能なた
め、オペランドにインクリメント演算を設けることで、
演算後に1加算し次の演算範囲の縮小が行える。
【0097】また、この実施の形態においては、図2に
示すように、各プロセッサエレメント3aには実行条件
指定のための条件レジスタ(Tレジスタ)35cが装備
されている。図4に、この実施の形態におけるプロセッ
サエレメント3aに設けられたTレジスタ35cの構成
を示す。
【0098】図4に示すように、プロセッサエレメント
3aは8ビットのTレジスタ35cを備える、そして、
このTレジスタ35cで1ビットずつで制御されるた
め、1プロセッサエレメント3aで8通りの制御パター
ンを保持できる。全てのプロセッサエレメント3a…で
あれば8×256通りのパターンになる。Tレジスタ3
5cの1ビットはプロセッサエレメント3aごとに演算
実行の無効/有効の制御を行い、特定のプロセッサエレ
メント3aだけを演算対象として選択できる。Tレジス
タ35cには、グローバルプロセッサ2からのPE命令
で値を変更することが可能である。
【0099】Tレジスタ35cは、グローバルプロセッ
サ2からの制御信号と、Tレジスタ35cの特定ビット
の値をAND/OR論理演算器351で論理演算した結
果を特定ビットに格納する構成となっている。格納はグ
ローバルプロセッサ2からの制御信号によって格納先が
決定する。すなわち、図4に示すように、この実施形態
においては、Tレジスタ35cの入力データ側には、A
ND/ORを行う論理演算器351が設けられ、さらに
Tレジスタ35からの出力がセレクタ352に与えら
れ、このセレクタ352により、Tレジスタ35cの値
をフィードバック及び出力が行われている。
【0100】Tレジスタ35cの任意のプロセッサエレ
メント3aの特定ビットをセット・リセットする命令に
は、SETTA(Set T by Area Ass
ignment)命令、SETTB(Set T by
Bit Assignment)命令がある。また、
Tレジスタ35cにデータを転送する命令は、LDT
(Load to T register)がある。L
DT命令は、オペランドに即値もしくはレジスタ値で、
グローバルプロセッサ2は信号線210を介してそれら
の値の下位8ビットを全プロセッサエレメント3aのT
レジスタ35cに転送する。
【0101】SETTA命令はオペランドで指定された
範囲に該当するプロセッサエレメント3aに対して演算
対象とし、対象となるプロセッサエレメント3aのTレ
ジスタ35cの特定ビットに対してセット・リセットを
行うものである。指定の方法は前述のMGAAと同じ
で、指定された範囲内のTレジスタ35cの特定ビット
の値を”1”にセットする。範囲外のプロセッサエレメ
ント3aのTレジスタ35cには”0”がセットされ
る。さらに、SETTA命令は、前命令までのTレジス
タ35cの値との演算が指定できる。例えば、以下のよ
うに記述する。
【0102】SETTA/T2/A #12,#23
【0103】上記の命令では、命令につづいて、Tレジ
スタ35cの特定ビットの指定(/T2で下位から2ビ
ット目を示す。)と、続いて演算の種類(/AでAND
演算を行う。/O指定であればOR演算を行う。)の指
定が記述されている。演算が指定されているため、PE
12〜PE23までのプロセッサエレメント3aのT2
ビットの値と”1”のAND結果をT2に格納する。
【0104】SETTB命令は前述のMGAB命令と同
じオペランドのビット指定とマスク指定によってプロセ
ッサエレメント3aの選択を行う。また、前述のSET
TA命令で行った/A、/OによるTレジスタの特定ビ
ットの旧値との論理演算も同じようにできる。
【0105】上記したように、Tレジスタ35cからの
出力はセレクタ352により選択され、前のTレジスタ
35cの値をフィードバックさせ、新しいデータを論理
演算器351にて論理演算させることで、Tレジスタ3
5cのセット、リセットだけでなく、AND/OR演算
ができるように構成されている。これによって、例え
ば、複数のまたがった不規則なエリアの指定を行うとき
有効となる。
【0106】例えば、PE10〜PE15、PE26〜
PE40、PE100〜PE111といったエリアを指
定する場合、前述のLDT命令、SETTA命令などで
全プロセッサエレメントの特定フラグとクリアしてお
き、SETTAのOR演算(/Oを記述)を3回行うこ
とで可能である。記述は以下のとおりである。
【0107】(LDT #0);すべてのプロセッサエ
レメントのTレジスタのすべてのBITに”0”を転送
する。
【0108】 SETTA/T1/O #10,#15 SETTA/T1/O #26,#40 SETTA/T1/O #100,#111
【0109】上記した図3に示した実施の形態において
は、一度のアドレス指定により、SIMDプロセッサ1
の偶数番号が割り付けられたプロセッサエレメント3a
に外部メモリ6からデータ転送できるとともに、奇数番
号が割り付けられたプロセッサエレメント3aにもデー
タ転送できるように構成しているが、SIMD型プロセ
ッサ1へ外部からデータを入出力する方法は、この方法
に限られるものではない。たとえば、図6に示すよう
に、SIMDプロセッサ1のプロセッサエレメント3a
に、奇数、偶数の区別を付けずに、アドレス指定により
順次データを転送するように構成したものにおいても、
この発明は適用できる。すなわち、図6に示すように、
レジスタコントローラ31aは、インタフェース4と、
アドレスバス41a、リード/ライト信号45c、クロ
ック信号41cを介して接続されている。このレジスタ
コントローラ31aは、インタフェース4に与えられ、
アドレスバス41aを介してアドレス指定信号が送られ
てくると、そのアドレス指定信号をデコードする。そし
て、デコードしたアドレスと、自己のプロセッサエレメ
ント3aに割り付けられたアドレスとが一致する場合に
は、インタフェース4に与えられ、クロック信号41c
からのクロック信号に同期して、リード/ライト信号4
1bを介してリード/ライト指示信号を得る。このリー
ド/ライト指示信号は、レジスタ31bへ与えられる。
【0110】SIMD型プロセッサ1の外部に設けられ
たイメージスキャナからの画像データを、この実施形態
では8ビットのパラレルデータとして、データバス46
cに置く。このデータバス46cは、レジスタ31bに
保持されている演算処理されたデータが、SIMD型プ
ロセッサ1の外部に設けられたプリンタ等に送る時にも
使用される。
【0111】インタフェース4から与えられるアドレ
ス、リード/ライト、クロック、データの信号はレジス
タファイル31の各レジスタに供給される。そして、各
プロセッサエレメント3a…ごとにアドレスをデコード
して各プロセッサエレメント3a…を示すアドレスと一
致したプロセッサエレメント3aだけがリード/ライト
の動作をおこなう。
【0112】このように構成されるSIMD型プロセッ
サ1は、外部からのデータをプロセッサエレメント3a
に送る場合、プロセッサエレメント3aに割り付けられ
たアドレスを指定することにより、1回のクロック信号
が入力されるだけで、その指定したプロセッサエレメン
ト3aにデータが送られる。なお、この例では、偶数、
奇数のプロセッサエレメント3aに同時にデータは送ら
れないので、第1の実施の形態に比べると、データ転送
に時間はかかるが、回路構成は簡略化できる。
【0113】上述した実施形態においては、プロセッサ
エレメント3aをアドレス指定しているが、プロセッサ
エレメント3aの指定をアドレス指定する方式ではな
く、ポインタ指定する方式、即ちシリアルアクセスメモ
リ方式においても、この発明は適用できる。この例につ
き図7に従い説明する。なお、ここでは上述した第1の
実施形態と異なる点について説明することとし、同じ点
については説明を省略する。また、上述した第1実施形
態と同じ構成部分については、同一の符号を付する。
【0114】まず、グローバルプロセッサ2からインタ
フェース4へはI/O用のアドレス、データ、コントロ
ール信号がバスを介して与えられる。インタフェース4
は、グローバルプロセッサ2のコマンドに基づき、この
リセット信号を生成し、リセット信号47を介してプロ
セッサエレメントブロック3ヘ送る。これにより、レジ
スタコントローラ31aは、リセットされる。そして、
インタフェース4に最も近いレジスタコントローラ31
aへクロック信号41cを介してクロック信号が送られ
る。このクロック信号に同期して、レジスタコントロー
ラ31a’は、リード/ライト信号45a或いは45b
を介してインタフェース4から送られてきたリード/ラ
イト指示信号を得る。このリード/ライト指示信号は、
偶数番号が割り付けられたプロセッサエレメント3aの
レジスタ31b、及び奇数番号が割り付けられたプロセ
ッサエレメント3aのレジスタ31bにそれぞれ与えら
れる。このとき一組を構成するプロセッサエレメント3
aのレジスタコントローラ31a’へ送られるリード/
ライト指示信号は、上記第1実施形態の場合と同様それ
ぞれ異なるものであってもよい。
【0115】これにより、上述した第1実施形態の場合
と同様、一度のポインタ指定により、偶数番号が割り付
けられたプロセッサエレメント3aにデータ転送できる
とともに、奇数番号が割り付けられたプロセッサエレメ
ント3aにもデータ転送できる。
【0116】また、上記したポインタ指定する方式にお
いて、一度のポインタ指定により1つの番号が割り付け
られたプロセッサエレメント3aにデータ転送する方式
においても、この発明は適用できる。
【0117】
【発明の効果】上記した請求項1によれば、図2に示す
ように、グローバルプロセッサからの制御信号によって
PE番号をAレジスタに入力できる。各プロセッサエレ
メントに格納されたPE番号は、プロセッサエレメント
のテストをするときに用いる。たとえばPEシフトをテ
ストする場合など有効になる。従来であれば同じ値をA
レジスタにセットしプロセッサエレメントの全Aレジス
タの値を外部に出力する手段を設けるか、全プロセッサ
エレメントのAレジスタに違った値をひとつずつ転送
し、それら順番にグローバルプロセッサに転送し、グロ
ーバルプロセッサで比較するなどする。前者であれば配
線量が莫大となりコストが増大する。後者であれば命令
サイクルが値をセットするだけで256サイクル必要と
なる(プロセッサエレメントが256個の場合)。この
請求項1の発明であればLDPNの命令で一度に全プロ
セッサエレメントのAレジスタに値をセットし、シフト
したのち、レジスタファイルに結果値を格納し、判定用
にLDPNでセットした値をすべてシフト量にしたがっ
て加減算し期待値を設定し、前述の結果値と期待値を比
較することによってテストが可能となる。値をセットす
るためには1サイクルのみでよい。
【0118】また、LDPNはn個おきのプロセッサエ
レメントの演算指定にも使用できる。たとえば5個おき
(PE0,PE5,PE9,...)の選択を行いたい
場合、従来であればそれぞれのプロセッサエレメント毎
に条件フラグの設定を行うために選択したいプロセッサ
エレメントの数だけの処理を必要とした。この発明で
は、LDPNで全プロセッサエレメントにPE番号を設
定し(PE0,PE1,PE2,...,PE255の
Aレジスタの値を順に指定すると0,1,2,
3,...255となる)、Aレジスタの値を5で除算
し、余りを格納すると(これらの演算はALUによる減
算の繰り返しで最終にAレジスタに残った値が余りとな
る。除算の引き放し法、引き戻し法で可能。)、0,
1,2,3,4,0,1,2,3,4,0,
1,...,0となり、PE命令でCMP命令(CMP
命令はAレジスタとレジスタファイルのデータを比較し
結果をTレジスタの指定ビットに反映させる。)を使用
し、結果をTレジスタに反映させることで次の演算のプ
ロセッサエレメント選択ができる。従来方法であればプ
ロセッサエレメントの指定数分のサイクルが必要であっ
たが、この発明であればプロセッサエレメントの指定数
にかかわらず、LDPNで1サイクル、除算で16サイ
クル、CMP命令で1サイクルで対象とするプロセッサ
エレメントの選択が完了する。
【0119】上記した請求項2によれば、図2に示すよ
うに、グローバルプロセッサのG0からバスですべての
プロセッサエレメントのAレジスタに接続し、MGA
A、MGAB命令を設けることで任意のプロセッサエレ
メントのAレジスタにG0レジスタの値を転送すること
ができる。
【0120】請求項3によれば、MGAA命令を設け、
図5に示すようなコンパレータを各プロセッサエレメン
トに設け、各プロセッサエレメントの保持しているPE
番号と、即値オペランドで指定した値の上限値と下限値
の比較をコンパレータで行い、範囲内にあればそのプロ
セッサエレメントの演算を実行する。演算の実行、非実
行はALUの結果をAレジスタが更新しないように制御
する(ラッチ信号を更新しない)。従来であれば、ある
範囲だけのデータ転送はその範囲内の実行条件フラグを
一つずつセットし、実行条件フラグによって転送の有無
を決定していたため、転送数だけのサイクルを必要とし
たが、以上によりある範囲だけのプロセッサエレメント
を指定できるMGAAを使用することで、1サイクルで
の処理が可能である。
【0121】請求項4によれば、図5に示すのような各
プロセッサエレメントに装備されたビットマスク指定を
行うマスクパターン回路により1つおき、3つおき等の
N個おきのPE指定を行いデータを転送することができ
る。
【0122】請求項5及び6によれば、図5に示すよう
にグローバルプロセッサのG2レジスタとG3レジスタ
は全プロセッサエレメントに対してバス接続されてお
り、SCUからの即値データとセレクトされるためG2
レジスタとG3レジスタによる指定が可能となる。これ
によりグローバルプロセッサ命令での演算の結果をG
2、G3レジスタに格納し、ダイナミックな指定が可能
となる。また、グローバルプロセッサではALUによっ
てG2の減算が可能なため、オペランドにインクリメン
ト演算を設けることで、演算後に1加算し次の演算範囲
の縮小が可能となる。
【0123】請求項7ないし11によれば、図4のよう
にTレジスタの入力データにAND、ORを行う論理演
算器を設け、前のTレジスタの値をフィードバックさ
せ、新しいデータを論理演算させることでTレジスタの
セット、リセットだけでなく、AND、ORを行うこと
ができる。これによってたとえば複数のまたがった不規
則なエリアの指定を行うとき有効となる。PE10〜P
E15、PE26〜PE40、PE100〜PE111
といったエリアを指定する場合、前述のLDT命令、S
ETTA命令などで全プロセッサエレメントの特定フラ
グとクリアしておき、SETTAのOR演算(/Oを記
述)を3回行うことで可能である。従来であれば、対象
のプロセッサエレメントに一つずつセットしなければな
らず、セットするプロセッサエレメント分の命令サイク
ルが必要となる。記述は以下のとおりである。
【0124】LDT #0 ;すべてのプロセッサエレ
メントのTレジスタのすべてのBITに”0”を転送す
る。 SETTA/T1/O #10,#15 SETTA/T1/O #26,#40 SETTA/T1/O #100,#111
【図面の簡単な説明】
【図1】この発明の実施の形態にかかるSIMD型プロ
セッサの全体構成を示すブロック図である。
【図2】この発明の実施の形態にかかるSIMD型プロ
セッサの要部構成を示すブロック図である。
【図3】この発明の実施の形態にかかるプロセッサの内
部構成を示すブロック図である。
【図4】この発明の実施の形態にかかるプロセッサエレ
メントにおけるTレジスタの構成を示すブロック図であ
る。
【図5】この発明の実施の形態にかかるSIMD型プロ
セッサの要部構成を示すブロック図である。
【図6】この発明の他の実施の形態にかかるプロセッサ
の内部構成を示すブロック図である。
【図7】この発明のさらに異なる実施の形態にかかるS
IMD型プロセッサの内部構成を示すブロック図であ
る。
【符号の説明】
1 SIMD型プロセッサ 2 グローバルプロセッサ 3 プロセッサエレメントブロック 3a プロセッサエレメント 31 レジスタファイル 32 演算アレイ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 原 和彦 東京都大田区中馬込1丁目3番6号 株式 会社リコー内 (72)発明者 岩永 和彦 東京都大田区中馬込1丁目3番6号 株式 会社リコー内 (72)発明者 高藤 浩資 東京都大田区中馬込1丁目3番6号 株式 会社リコー内 Fターム(参考) 5B045 AA01 GG14

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 プログラムを解読しプロセッサ全体を制
    御するグローバルプロセッサと、複数のデータを処理す
    るために、レジスタファイルと演算アレイから構成され
    るプロセッサエレメントを複数備えたプロセッサエレメ
    ントブロックと、を有するSIMD型プロセッサにおい
    て、前記グローバルプロセッサは、プロセッサエレメン
    トに対して制御信号を出力し、この制御信号によりプロ
    セッサエレメントに対応するプロセッサエレメント番号
    を全プロセッサエレメントの演算アレイの入力値に設定
    することを特徴とするSIMD型プロセッサ。
  2. 【請求項2】 グローバルプロセッサの汎用レジスタか
    らのデータを任意のプロセッサエレメントに転送するこ
    とを特徴とする請求項1に記載のSIMD型プロセッ
    サ。
  3. 【請求項3】 前記データ転送は、オペランドの即値指
    定によって特定のプロセッサエレメントから特定のプロ
    セッサエレメントまでの範囲を指定することにより行わ
    れることを特徴とする請求項2に記載のSIMD型プロ
    セッサ。
  4. 【請求項4】 データ転送は、オペランドの即値指定に
    よって、2進数で表わされたプロセッサエレメント番号
    にマッチするプロセッサエレメントを指定するビット位
    置指定と、そのビット位置指定の任意ビットをマスクす
    るビットマスクによるプロセッサエレメント指定により
    行われることを特徴とする請求項2に記載のSIMD型
    プロセッサ。
  5. 【請求項5】 前記データ転送は、グローバルプロセッ
    サの汎用レジスタを使用し、ポインタ指定により行われ
    ることを特徴とする請求項2に記載のSIMD型プロセ
    ッサ。
  6. 【請求項6】 前記ポインタ指定で、指定後の汎用レジ
    スタにおけるデータのインクリメントを行うこと特徴と
    する請求項5に記載のSIMD型プロセッサ。
  7. 【請求項7】 前記プロセッサエレメントには条件実行
    を制御するためにデータの状態によって実行又は非実行
    を制御する複数のフラグビットを持ち、複数のフラグビ
    ットの特定のビットにAND/ORの論理演算を行うこ
    とを特徴とする請求項1に記載のSIMD型プロセッ
    サ。
  8. 【請求項8】 前記フラグビット指定は、オペランドの
    即値指定によって特定のプロセッサエレメントから特定
    のプロセッサエレメントまでの範囲を指定することによ
    り行われることを特徴とする請求項7に記載のSIMD
    型プロセッサ。
  9. 【請求項9】 前記フラグビット指定は、オペランドの
    即値指定によって、2進数で表わされたプロセッサエレ
    メント番号にマッチするプロセッサエレメントを指定す
    るビット位置指定と、そのビット位置指定の任意ビット
    をマスクするビットマスクによるプロセッサエレメント
    指定により行われることを特徴とする請求項7に記載の
    SIMD型プロセッサ。
  10. 【請求項10】 前記フラグビット指定は、グローバル
    プロセッサの汎用レジスタを使用し、ポインタ指定によ
    り行われることを特徴とする請求項7に記載のSIMD
    型プロセッサ。
  11. 【請求項11】 前記ポインタ指定で、指定後の汎用レ
    ジスタにおけるデータのインクリメントを行うこと特徴
    とする請求項10に記載のSIMD型プロセッサ。
JP2000009879A 2000-01-19 2000-01-19 Simd型プロセッサ Expired - Fee Related JP3971543B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2000009879A JP3971543B2 (ja) 2000-01-19 2000-01-19 Simd型プロセッサ
US09/761,122 US7191310B2 (en) 2000-01-19 2001-01-16 Parallel processor and image processing apparatus adapted for nonlinear processing through selection via processor element numbers
US11/591,754 US20070083732A1 (en) 2000-01-19 2006-11-01 Parallel processor and image processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000009879A JP3971543B2 (ja) 2000-01-19 2000-01-19 Simd型プロセッサ

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2006259488A Division JP4442907B2 (ja) 2006-09-25 2006-09-25 Simd型プロセッサ

Publications (2)

Publication Number Publication Date
JP2001202351A true JP2001202351A (ja) 2001-07-27
JP3971543B2 JP3971543B2 (ja) 2007-09-05

Family

ID=18537969

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000009879A Expired - Fee Related JP3971543B2 (ja) 2000-01-19 2000-01-19 Simd型プロセッサ

Country Status (1)

Country Link
JP (1) JP3971543B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005316887A (ja) * 2004-04-30 2005-11-10 Ricoh Co Ltd マイクロプロセッサ
JP2007034473A (ja) * 2005-07-25 2007-02-08 Ricoh Co Ltd Simd型マイクロプロセッサにおけるデータ処理方法
JP2007200090A (ja) * 2006-01-27 2007-08-09 Renesas Technology Corp 半導体演算処理装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005316887A (ja) * 2004-04-30 2005-11-10 Ricoh Co Ltd マイクロプロセッサ
JP2007034473A (ja) * 2005-07-25 2007-02-08 Ricoh Co Ltd Simd型マイクロプロセッサにおけるデータ処理方法
JP4516495B2 (ja) * 2005-07-25 2010-08-04 株式会社リコー Simd型マイクロプロセッサにおけるデータ処理方法
JP2007200090A (ja) * 2006-01-27 2007-08-09 Renesas Technology Corp 半導体演算処理装置

Also Published As

Publication number Publication date
JP3971543B2 (ja) 2007-09-05

Similar Documents

Publication Publication Date Title
US20010008563A1 (en) Parallel processor and image processing apparatus
US4685076A (en) Vector processor for processing one vector instruction with a plurality of vector processing units
US6762764B2 (en) System and method for processing image, and compiler for use in this system
EP0539595A1 (en) Data processor and data processing method
KR950015071A (ko) 조건부 레지스터 쌍으로부터의 메모리 저장
JP3971535B2 (ja) Simd型プロセッサ
US8060726B2 (en) SIMD microprocessor, image processing apparatus including same, and image processing method used therein
US6229543B1 (en) Microprocessor, and graphics processing apparatus and method using the same
US4941107A (en) Image data processing apparatus
JP2001202351A (ja) Simd型プロセッサ
JP4442907B2 (ja) Simd型プロセッサ
JP3821198B2 (ja) 信号処理装置
JP4408113B2 (ja) 信号処理方法
JP4482356B2 (ja) Simdプロセッサを用いた画像処理方法及び画像処理装置
US20090187738A1 (en) Simd-type microprocessor, method of processing data, image data processing system, and method of processing image data
JPH06309349A (ja) プログラム制御のプロセッサ
JP4413905B2 (ja) Simd型プロセッサ
JP4294190B2 (ja) 並列プロセッサ及びそれを用いた画像処理装置
JP3742745B2 (ja) 演算処理装置
JP2006344238A (ja) 並列プロセッサ及びそれを用いた画像処理装置
JP3971557B2 (ja) Simdプロセッサにおけるデータ設定装置
JP2007018536A (ja) 並列プロセッサ
EP1120958A2 (en) Polynomial based multi-level screening
WO2011105408A1 (ja) Simdプロセッサ
JP4244619B2 (ja) 画像データ処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040513

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060720

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060725

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060925

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070605

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070608

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110615

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110615

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120615

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130615

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees