JP3742745B2 - 演算処理装置 - Google Patents

演算処理装置 Download PDF

Info

Publication number
JP3742745B2
JP3742745B2 JP2000088428A JP2000088428A JP3742745B2 JP 3742745 B2 JP3742745 B2 JP 3742745B2 JP 2000088428 A JP2000088428 A JP 2000088428A JP 2000088428 A JP2000088428 A JP 2000088428A JP 3742745 B2 JP3742745 B2 JP 3742745B2
Authority
JP
Japan
Prior art keywords
data
register
unit
processor
arithmetic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000088428A
Other languages
English (en)
Other versions
JP2001273268A (ja
Inventor
貴雄 片山
慎一 山浦
和彦 原
和彦 岩永
浩資 高藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2000088428A priority Critical patent/JP3742745B2/ja
Publication of JP2001273268A publication Critical patent/JP2001273268A/ja
Application granted granted Critical
Publication of JP3742745B2 publication Critical patent/JP3742745B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Advance Control (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、プロセッサを有する演算処理装置に関し、特に、コピー、FAX、プリンタ等の画像データを高速処理するために単一の命令で複数データに対して同じ処理を行うSIMD方式の演算処理装置に関する。
【0002】
【従来の技術】
近年、コピー、FAX及びプリンタ等の画像処理においては、画素数の増加、デジタル化及びカラー対応といった画質向上等によって、処理するデータ数が増加し、データの処理方法の複雑化が進んでいる。このような画像データの高速処理を行うために、1つの命令で1つのデータを処理するSISD(Single Instruction-stream Single Data-stream)方式のプロセッサから、1つの命令で複数のデータを処理するSIMD(Single Instruction-stream Multiple Data-stream)方式のプロセッサ又は複数の命令で複数のデータを処理するMIMD(Multiple Instruction-stream Multiple Data-stream)方式のプロセッサが用いられている。
【0003】
SIMD方式のプロセッサは、一般的に複数のデータを処理するために演算アレイとレジスタファイルを備えたプロセッサエレメントと呼ばれるブロックを有し、複数のデータを一度に処理するために複数のプロセッサエレメントを備えている。プロセッサエレメントの制御はシーケンサと呼ばれる、プログラムメモリに格納された命令コードを解読して制御信号をプロセッサエレメントのレジスタファイル及び演算ユニットに送信するブロックが1つ存在する。シーケンサは1つであり同じ制御信号をすべてのプロセッサエレメントに送信するため、各プロセッサエレメントでの処理は同じ処理となる。
【0004】
一方、MIMD方式のプロセッサは、上記SIMD方式のプロセッサと同様に、複数のデータを一度に処理するために複数のプロセッサエレメントを備えている点ではSIMD方式のプロセッサと同じであるが、SIMD方式のプロセッサとの相違点は、各プロセッサエレメントごとに1つのシーケンサが存在することにある。プロセッサエレメントごとに1つのシーケンサが存在するため、プロセッサエレメントごとに異なる命令を実行してデータ処理を行うことが可能である。
【0005】
【発明が解決しようとする課題】
このように、SIMD方式のプロセッサは、シーケンサが1つの命令のデコードだけ行えればよいため、構成が単純で回路規模も少なくてすむという長所があるが、各プロセッサエレメントごとに異なる命令を実行してデータ処理を行うことができなかった。これに対して、MIMD方式のプロセッサは、各プロセッサエレメントごとに異なる命令を実行してデータ処理を行うことができるが、1つのプロセッサエレメントに対して1つのシーケンサが必要であり、複数のプロセッサエレメントを有する場合は、該各プロセッサエレメントに対応した数のシーケンサが必要となる。このため、MIMD方式のプロセッサでは、命令コードを格納するプログラムメモリの制御、容量及びシーケンサの構成等が複雑となり、回路規模も増大するという問題があった。
【0006】
本発明は、上記のような問題を解決するためになされたものであり、1つのシーケンサで各プロセッサエレメントごとに異なる命令を実行してデータ処理を行うことができるSIMD方式の演算処理装置を得ることを目的とする。
【0007】
なお、特開平5−189585号公報では、複数の演算ユニットをもち、該各演算ユニットに演算制御回路をそれぞれ設けたSIMD方式のプロセッサが開示され、該演算制御回路には演算ユニットの命令実行条件を条件フラグによって修飾する点では本発明と同じである。また、特開平7−219919号公報では、複数の演算器ごとにフラグレジスタを設け、演算結果によって状態を変化させ、状態を条件にして命令の実行を制御するSIMD方式のプロセッサが開示されている。しかし、本発明は、条件フラグ間のデータ転送、及び複数条件による設定を可能にしていることから、特開平5−189585号公報及び特開平7−219919号公報で開示された各SIMD方式のプロセッサとは異なるものである。
【0008】
また、特開平10−289305号公報では、ステータスフラグに演算結果を出力し、ステータスフラグによって演算器における現命令の演算結果出力の格納を制御するSIMD方式のプロセッサが開示されているが、ステータスフラグから演算制御フラグ条件ビットにデータを転送し、次命令の実行条件を制御する点で本発明とは異なるものである。
【0009】
【課題を解決するための手段】
この発明に係る演算処理装置は、複数のプロセッサエレメントと、プログラムに従って該各プロセッサエレメントの演算制御を行う少なくとも1つのグローバルプロセッサとで構成された、単一命令多データ処理方式の演算処理装置において、各プロセッサエレメントは、少なくとも1つのレジスタファイルからなるレジスタファイル部と、該レジスタファイル部から読み出されたデータ、又はグローバルプロセッサから入力されるデータを一時的に格納するデータ格納部と、アキュムレータを有し、該データ格納部に格納されたデータ及び該アキュムレータに格納されたデータを用いて所定の演算を行う演算部と、該演算部におけるアキュムレータに対するラッチ動作を制御するラッチ制御部とを備え、該ラッチ制御部は、グローバルプロセッサから入力されるデータをマスクしてアキュムレータに対するラッチ制御信号を生成するものである。
【0010】
具体的には、上記ラッチ制御部は、グローバルプロセッサから入力されるデータを用いてマスクする。
【0011】
また、上記ラッチ制御部は、データ格納部に格納されたデータを、グローバルプロセッサから入力されるデータでマスクしてラッチ制御信号を生成するようにしてもよい。
【0012】
また、上記ラッチ制御部は、前回生成したラッチ制御信号を、グローバルプロセッサから入力されるデータでマスクしてラッチ制御信号を生成するようにしてもよい。
【0013】
一方、上記演算部は、所定の演算を行う算術論理演算処理装置と、該算術論理演算処理装置のステータス情報を格納するステータスレジスタとを有し、ラッチ制御部は、該ステータスレジスタに格納されたステータス情報を示すデータを、グローバルプロセッサから入力されるデータでマスクしてラッチ制御信号を生成するようにしてもよい。
【0014】
具体的には、上記ラッチ制御部は、複数の入力信号のいずれか1つをグローバルプロセッサからの信号に応じて選択し出力する入力信号選択部と、該入力データ信号選択部から出力された信号が示すデータ、グローバルプロセッサから入力されるデータ又はデータ格納部に格納されたデータのいずれかを、グローバルプロセッサからの信号に応じて選択的に格納するレジスタ部と、グローバルプロセッサから入力されるデータを用いて該レジスタ部に格納されたデータのマスキングを行うマスク部とを備える。
【0015】
【発明の実施の形態】
次に、図面に示す実施の形態に基づいて、本発明を詳細に説明する。
図1は、本発明の実施の形態における演算処理装置の例を示した概略の構成図である。
図1において、演算処理装置1は、グローバルプロセッサ(Global Processor)と呼ばれるSISD方式(Single Instruction-stream Single Data-stream)のプロセッサ2からの制御信号が、レジスタファイル部3と演算アレイ部4で構成されたプロセッサエレメント部5を制御する。プロセッサエレメント部5は、レジスタファイル及び演算アレイをそれぞれ有する複数のプロセッサエレメント(Processor Element)で構成されており、レジスタファイル部3は、各プロセッサエレメントのそれぞれのレジスタファイルで構成されており、演算アレイ部4は、各プロセッサエレメントのそれぞれの演算アレイで構成されている。
【0016】
グローバルプロセッサ2は、レジスタファイル部3の各レジスタファイルに対する制御信号を出力すると共に演算アレイ部4の各演算アレイに対する制御信号を出力する。また、グローバルプロセッサ2と演算アレイ部4の各演算アレイとがデータバスで接続されており、レジスタファイル部3の各レジスタファイルと演算アレイ部4の対応する演算アレイとがデータバスで接続されている。更に、レジスタファイル部3の各レジスタファイルは、データバスを介して対応する外部入出力端子に接続されている。該各外部入出力端子は、外部とデータの入出力を行う端子である。
【0017】
図2は、図1で示した演算処理装置1をもう少し詳細に示したブロック図であり、グローバルプロセッサ2及びプロセッサエレメント部5におけるプロセッサエレメントの構成をより詳細に示している。なお、図2では、プロセッサエレメント部5が256個のプロセッサエレメントで構成されている場合を例にして示している。
図2において、グローバルプロセッサ2は、シーケンサをなすシーケンシャルユニットのSCU10と、算術論理演算器であるALU11と、命令コードを格納するプログラムRAM12と、グローバルプロセッサ2内の演算結果データを格納したり演算に使用するデータを格納するデータRAM13と、プログラムRAM12、データRAM13又は各プロセッサエレメントからのデータを一時的に格納したり転送する複数の汎用レジスタG0〜G3からなる汎用レジスタ部14とを備えている。
【0018】
更に、グローバルプロセッサ2は、プログラムのアドレスを保持するプログラムカウンタ(図2ではPCと示す)15と、レジスタ退避、復帰時に退避先であるデータRAM13のアドレスを保持しているスタックポインタ(図2ではSPと示す)16と、サブルーチンコール時にコール元のアドレスを保持するリンクレジスタ(図2ではLSと示す)17と、IRQ時の分岐元アドレスを保持するLIレジスタ(図2ではLIと示す)18と、同じくNMI時の分岐元アドレスを保持するLNレジスタ(図2ではLNと示す)19と、及びグローバルプロセッサ2の状態を保持しているプロセッサステータスレジスタであるPレジスタ(図2ではPと示す)20とを備えている。なお、グローバルプロセッサ2内の構成は公知であることから、図2では各部の接続を省略している。
【0019】
SCU10は、1サイクルに1つの命令を実行することが可能であり、プログラムRAM12に格納された命令コードをプログラムカウンタ15に格納されたアドレスを参照しながら1ワードずつロードする。更にSCU10は、該ロードした命令コードをデコードして、グローバルプロセッサ2内の各ブロック及びプロセッサエレメント部5の各プロセッサエレメントPE0〜PE255に対して、プロセッサエレメントPE0〜PE255の動作制御を行うための各信号及びデータを複数の信号線からなるPE制御信号線Speを介してそれぞれ出力する。
【0020】
グローバルプロセッサ2における命令は、グローバルプロセッサ2内での演算処理に対するGP命令と、プロセッサエレメント内又はプロセッサエレメント間での演算処理に対するPE命令に分類することができる。図2では図示していないが、SCU10には、GP命令を解読し主にグローバルプロセッサ2内の各ブロックに制御信号を発生するGPインストラクションデコーダと、PE命令を解読し主にプロセッサエレメント内の各ブロックに対する制御信号を発生するPEインストラクションデコーダが含まれている。
【0021】
なお、プロセッサエレメントPE0〜PE255は、それぞれ同じ回路構成で形成されていることから、図2では、プロセッサエレメントPEm(mは、0≦m≦255の自然数)の内部回路例のみを示しており、他のプロセッサエレメントの内部回路は省略している。このことから、以下、プロセッサエレメントPEmの動作について説明し、他のプロセッサエレメントの動作についてはプロセッサエレメントPEmと同様であるのでその説明を省略する。
【0022】
プロセッサエレメントPEmは、複数、例えば32個のレジスタR0〜R31からなるレジスタファイル21と、演算アレイ22とで構成されている。レジスタファイル21において、各レジスタR0〜R31は、それぞれ8ビットのレジスタであり、レジスタR0〜R23は外部入出力端子に接続されており、レジスタR24〜R31は、プロセッサエレメントPEm内でのみ使用される。レジスタファイル21と演算アレイ22との間におけるデータの入出力は、双方向バスであるDBバス23を介して行われる。
【0023】
演算アレイ22は、データのシフト及び拡張を行うシフト・拡張部31と、第1記憶部32、第2記憶部33、ALU34、プロセッサステータスレジスタであるPPレジスタ35、アキュムレータであるAレジスタ36、データを一時的に保持するテンポラリレジスタであるFレジスタ37及び演算制御を行うマルチビットの演算制御レジスタであるTレジスタ38で構成されている。PPレジスタ35は、ALU34による演算結果に対する、キャリーやボローの発生を示すキャリーフラグ(以下、これをCフラグと呼ぶ)FC、及びALU34による演算がオーバーフローしたことを示すオーバーフローフラグ(以下、これをVフラグと呼ぶ)FV等が格納されるマルチビットのレジスタである。
【0024】
シフト・拡張部31は、DBバス23を介してレジスタファイル21に接続されており、レジスタファイル21からの入力データを8ビットまで左シフトする、すなわち8ビットデータを16ビットデータに拡張することができ、この時、扱うデータの範囲によって符号付き拡張、ゼロ拡張を決定することができる。例えば、8ビット16進数で−80h〜7fhのデータの場合は符号付き拡張を行い、8ビット16進数で0h〜ffhのデータの場合はゼロ拡張を行う。8ビットデータの−80hを16ビットに符号付き拡張すると0ff80h、すなわち16ビットの−80hであるが、ゼロ拡張すると16ビットの80hとなる。
【0025】
シフト・拡張部31は、このように処理したデータを第2記憶部33に出力して格納させる。また、シフト・拡張部31は、Aレジスタ36、Fレジスタ37及びTレジスタ38からのデータをレジスタファイル21に出力することもできる。一方、第1記憶部32には、Aレジスタ36に格納されたデータが読み出されて格納される。ALU34は、第1記憶部32のデータと第2記憶部33のデータがそれぞれ入力され、該入力された各データに対して所定の算術論理演算処理を行う。ALU34は、演算した結果を16ビットのAレジスタ36又は16ビットのFレジスタ37のいずれかに格納する。また、第2記憶手段33に格納されたデータは、Tレジスタ38にも出力される。
【0026】
また、ALU34による算術論理演算処理中にオーバフローが発生すると、PPレジスタ35のVフラグFVがセットされ、ALU34による算術論理演算処理中にキャリーやボローが発生すると、PPレジスタ35のCフラグFCがセットされる。PPレジスタ35のVフラグFV及びCフラグFCは、Tレジスタ38に出力される。なお、VフラグFVとCフラグFCの2ビットをPPレジスタ35として説明しているが、他に通常のALUで検知されるゼロフラグ、ネガティブフラグ等もPPレジスタ35の構成に含めることができる。また、PPレジスタ35のデータをTレジスタ38に格納するようにしてもよい。
【0027】
また、グローバルプロセッサ2の汎用レジスタG0とプロセッサエレメントPE0〜PE255における各Aレジスタ36とは、汎用レジスタG0から各Aレジスタ36にデータ転送するための16ビットのGAバス41と、各Aレジスタ36から汎用レジスタG0にデータ転送するための16ビットのAGバス42でそれぞれ接続されている。このため、グローバルプロセッサ2での演算結果のデータを各プロセッサエレメントのAレジスタ36に格納することができると共に、各プロセッサエレメントでの演算の結果をグローバルプロセッサ2の汎用レジスタG0に格納することができる。
【0028】
ここで、グローバルプロセッサ2のSCU10から出力された各信号は、PE制御信号線Speを介してレジスタファイル21及び演算アレイ22に入力され、SCU10から出力された各データは、PE制御信号線Speを介して演算アレイ22に入力される。Tレジスタ38は、PE制御信号線Speから入力される各種信号及びデータ、並びにPPレジスタ35から入力されるVフラグFV及びCフラグFCから、Aレジスタ36に対するラッチ制御を行う。以下、演算アレイ22の各部、特にTレジスタ38とPE制御信号線Speとの関係について説明する。
【0029】
図3は、図2の演算アレイ22の各部とPE制御信号線Speとの関係を示したブロック図であり、信号の流れを示している。
図3において、PE制御信号線SpeにおけるデータバスIMM1が、シフト・拡張部31及びTレジスタ38に接続されている。グローバルプロセッサ2のSCU10は、命令コード中に即値が記述されていると、該即値データをデータバスIMM1を介してシフト・拡張部31及びTレジスタ38にそれぞれ出力する。
【0030】
更に、Tレジスタ38には、データバスIMM2が接続され、グローバルプロセッサ2のSCU10は、命令コードに応じて、データバスIMM1と同じデータか、又は任意の1ビットが例えば「1」でその他のビットがすべて「0」であるデータのいずれかをデータバスIMM2を介してTレジスタ38に出力する。また、SCU10は、命令コードに応じて、PPレジスタ35に対してラッチ動作をさせるための制御信号であるPPラッチ信号を、Tレジスタ38に対してラッチ動作をさせるための制御信号であるTラッチ信号をそれぞれPE制御信号線Speを介して出力する。PPレジスタ35は、ラッチ回路等の記憶回路で構成されるため、上記PPラッチ信号によってラッチする。
【0031】
また、SCU10は、命令コードに応じて、Tレジスタ38に対して入力データを選択する入力選択信号をPE制御信号線Speを介して出力する。Tレジスタ38は、各種入力信号及び入力データに応じて生成した、Aレジスタ36に対してラッチ動作を制御するための信号であるAラッチ信号を出力する。
【0032】
このような構成で、SCU10が、例えば下記の命令を実行したとする。
ADD #1234h………………(1)
なお、上記(1)で示した「ADD」命令は、Aレジスタ36にラッチされているデータと16進数の「1234h」を加算してAレジスタ36に格納するというものである。
このとき第1記憶部32にはAレジスタ36に格納されているデータが、第2記憶部33にはシフト・拡張部31を介してデータバスIMM1からのデータ「1234h」が格納され、ALU34によって、第1記憶部32に格納されているデータと第2記憶部33に格納されているデータとが加算されて、Aレジスタ36に格納される。
【0033】
図4は、図2及び図3で示したTレジスタ38の回路例を示した図である。
図4において、Tレジスタ38は、3入力のレジスタT0〜T7からなる8ビットのレジスタ部51と、レジスタ部51への入力データを選択する3入力のマルチプレクサ52と、AND回路A0〜A7と、8入力のOR回路53と、ラッチ回路54とで構成されている。
【0034】
マルチプレクサ52には、PPレジスタ35のVフラグFVとCフラグFCがそれぞれ入力されており、更に、Tレジスタ38の出力信号であるAラッチ信号が入力される。マルチプレクサ52は、PE制御信号線Speを介して入力されるSCU10からの入力選択信号に応じて、入力されているデータのいずれか1つを選択してレジスタ部51の各レジスタT0〜T7に出力する。更に、各レジスタT0〜T7には、データバスIMM1からの即値データ及び第2記憶部33からのデータがそれぞれ入力され、PE制御信号線Speを介して入力されるSCU10からのTラッチ信号に応じて入力されているデータのいずれか1つを選択してそれぞれラッチする。
【0035】
各レジスタT0〜T7でラッチされたデータは、対応するAND回路A0〜A7の一方の入力端にそれぞれ出力される。また、AND回路A0〜A7の各他方の入力端は、PE制御信号線SpeのデータバスIMM2に接続され、SCU10からのデータが入力される。また、AND回路A0〜A7の各出力端は、OR回路53の対応する入力端にそれぞれ接続され、OR回路53の出力端は、ラッチ回路54を介してAレジスタ36及びマルチプレクサ52に接続され、Aラッチ信号を出力する。該ラッチ回路54は、レジスタT0〜T7から出力された8ビットデータに対して、AND回路A0〜A7及びOR回路53で演算された結果を一時的に格納するものである。
【0036】
PPレジスタ35は、VフラグFVをラッチするラッチ回路57とCフラグFCをラッチするラッチ回路58とで構成されており、該各ラッチ回路57,58には、PE制御信号線Speを介してSCU10からPPラッチ信号がそれぞれ入力される。PPラッチ信号は2ビットのラッチ制御信号で構成されており、ラッチ回路57及び58には、対応する1ビットのラッチ制御信号が入力される。
【0037】
また、データバスIMM1及びIMM2はそれぞれ8ビットのデータバスであり、各レジスタT0〜T7には、データバスIMM1の対応する1ビットの信号線がそれぞれ接続され、AND回路A0〜A7には、データバスIMM2の対応する1ビットの信号線がそれぞれ接続されている。同様に、第2記憶部33から出力された8ビットのデータは、1ビットデータごとに対応するレジスタT0〜T7に入力される。一方、レジスタT0〜T7のラッチ制御を行うTラッチ信号は、各レジスタT0〜T7ごとに対応して入力される3ビットの信号で構成されている。なお、ラッチ回路54には、図示していないがPE制御信号線Speから1ビットのラッチ信号が入力され、各レジスタのラッチ回路等の記憶回路には、図示していないがグローバルプロセッサ2からのクロックも入力されている。
【0038】
このような構成において、PPレジスタ35ではPPラッチ信号によってALU34からのVフラグFV及び/又はCフラグFCをラッチし、該ラッチされたフラグはマルチプレクサ52にそれぞれ転送される。マルチプレクサ52では、PPレジスタ35からの各入力データ及びラッチ回路54からの出力データの計3ビットデータの内、1ビットを入力選択信号に応じて選択する。選択された入力データは、Tラッチ信号に応じてレジスタ部51の選択されたレジスタにラッチされる。
【0039】
レジスタT0〜T7は3入力となっており、第2記憶部33からのデータ、データバスIMM1からのデータ又はマルチプレクサ52からの出力データのいずれかをラッチする。レジスタ部51にラッチされたデータは、AND回路A0〜A7によってデータバスIMM2から入力されるデータの各ビットとのAND演算が行われ、AND回路A0〜A7から出力されるデータはデータバスIMM2からのデータによってマスクされたデータとなる。各AND回路A0〜A7の出力はOR回路53でOR演算が行われた後、ラッチ回路54に格納される。なお、本実施の形態では、レジスタ部51は、8ビットのレジスタ構成であるが、16ビット又は32ビットのレジスタ構成でも問題はない。
【0040】
上記のような構成において、レジスタ部51の各レジスタT0〜T7には、Aラッチ信号生成するための条件フラグ、すなわちプロセッサエレメントで行われる演算を制御するための演算制御フラグを格納することができると共に、プロセッサエレメントごとに異なる該演算制御フラグの設定を行うことによって、プロセッサエレメントごとに様々な異なった演算を行わせることができる。以下、このようにした場合の例について説明する。
【0041】
図2から図4で示したように、Tレジスタ38のレジスタ部51は、レジスタファイル21からDBバス23を経由して第2記憶部33にデータを格納した後、転送されるという入力経路と、グローバルプロセッサ2のSCU10からデータバスIMM1を経由した入力経路とを有している。Tレジスタ38のレジスタ部51に対する該2つの入力経路を使用してデータの格納を行わせるPE命令の例を下記に示す。
LDT/T1 #11001100b………………(2)
LDT/T2 R0………………(3)
【0042】
上記(2)の記述が2進数の即値「11001100」をTレジスタ38に格納するというPE命令で、即値の上位から順にレジスタT7からレジスタT0へデータが格納される。ただし、レジスタT1の状態が「1」であるプロセッサエレメントにはデータの格納を行い、「0」であるプロセッサエレメントにはデータの格納を行わない。また、上記(3)の記述で、レジスタファイル21のレジスタR0から8ビットのデータを、上位から順にレジスタT7からレジスタT0へデータが格納される。ただし、レジスタT1の状態が「1」であるプロセッサエレメントにはデータの格納を行い、「0」であるプロセッサエレメントにはデータの格納を行わない。
【0043】
「LDT」というPE命令は、レジスタファイル21における特定のレジスタの値をTレジスタ38に転送するか、又はプログラムコードに書かれた即値データをTレジスタ38に転送する処理を行わせるものである。レジスタファイル21から出力されたデータは、DBバス23を経由して第2記憶部33に格納されると共に、Tレジスタ38に格納されて設定される。このように、グローバルプロセッサ2のSCU10で抽出された即値データは、直接各プロセッサエレメントに転送され、データバスIMM1の入力経路でTレジスタ38に転送される。
【0044】
一方、Tレジスタ38に格納されているデータは複数ビットあり、該データの状態も各プロセッサエレメント間で異なる。
例えば、プロセッサエレメントPE0〜PE3におけるTレジスタ38のレジスタT0〜T3に格納されているデータが下記のようであったとする。
プロセッサエレメントPE0…………T0=1,T1=0,T2=0,T3=0
プロセッサエレメントPE1…………T0=1,T1=1,T2=0,T3=0
プロセッサエレメントPE2…………T0=1,T1=1,T2=1,T3=0
プロセッサエレメントPE3…………T0=1,T1=1,T2=1,T3=1
【0045】
このようの状態で、プロセッサエレメントPE0〜PE3における各Aレジスタ36の値がすべて12であったとして、下記(4)から(7)の命令を実行する。
ADD/T0 #12………………(4)
ADD/T1 #12………………(5)
ADD/T2 #12………………(6)
ADD/T3 #12………………(7)
なお、「ADD」は加算命令であり、上記(4)〜(7)の場合、第1オペランド「12」とAレジスタ36の内容を加算してAレジスタ36に格納するという命令である。ただし、レジスタT1の状態が「1」であるプロセッサエレメントには加算を、「0」であるプロセッサエレメントには加算を行わせない。
【0046】
上記(4)〜(7)の命令を実行すると、プロセッサエレメントPE0のAレジスタ36の値は12×2=24、プロセッサエレメントPE1のAレジスタ36の値は12×3=36、プロセッサエレメントPE2のAレジスタ36の値は12×4=48、プロセッサエレメントPE3のAレジスタ36の値は12×5=60といったように、異なった結果を1つのシーケンサで同じ命令を使用して得ることができる。ただし、プロセッサエレメントPE0は、レジスタT1の状態が「0」であることから、加算処理は行われない。
【0047】
また、Tレジスタ38のレジスタ部51には複数のビットのデータが格納され、該複数ビットのデータの設定が可能なため、レジスタ部51のビットデータを更新することなく一度の設定で複数の命令を実行することができるため、レジスタ部51内のデータ更新に伴う命令の実行を削減でき、命令コードを減らすことができる。
【0048】
次に、図4で示したように、レジスタ部51から出力されたすべてのビットデータとデータバスIMM2からのデータとでAND演算を行い、該演算を行って得られたすべてのビットデータに対してOR演算を行うことで、各レジスタT0〜T7のビットデータの条件をとった演算が可能となる。このような処理は、下記(8)で示したような、PE命令における「TSTF」命令で行う。
TSTF/T2 #11001100b………………(8)
上記(8)で示した命令は、レジスタT0〜T7において、即値で表されたビットデータの「1」となる位置のすべてのビットデータのOR演算を行い、該演算結果をレジスタT2に格納するというものである。
【0049】
2進数の即値「11001100」は、グローバルプロセッサ2のSCU10でデコードされてデータバスIMM2に転送される。データバスIMM2からのデータは、各ビットデータと対応するレジスタT0〜T7の出力データとでAND演算が行われ、該演算結果のすべてのビットデータに対してOR演算が行われる。すなわち、データバスIMM2からのデータで「1」となっているビットデータに対応するレジスタ部51のビットデータが少なくとも1つ「1」であれば、「1」のデータがOR回路53から出力される。また、データバスIMM2からのデータで「1」となっているビットデータに対応するレジスタ部51のビットデータがすべて「1」でなければ、OR回路53から「0」のデータが出力される。
【0050】
OR回路53から出力されたデータは、マルチプレクサ52で入力選択信号によって選択されると、レジスタ部51の任意のレジスタに格納される。
このように、即値で指定されたレジスタ部51のデータに対して更に条件を付けて処理することができるため、複雑な演算条件を設定することができ、プロセッサエレメント間で異なる実行結果を簡単に得ることができる。
【0051】
また、レジスタ部51のレジスタ間でのデータ転送は、例えば下記(9)で示しているように、上記「TSTF」命令で1ビットのみ「1」を設定することで可能である。
TSTF/T1 #10000000b………………(9)
上記(9)で示した命令は、即値で表されたビット7のみに注目し、ビット7のデータとレジスタ部51のレジスタT7に格納されているデータとのOR演算を行った結果を、レジスタ部51のレジスタT1に格納することを意味している。すなわち、レジスタT7からレジスタT1にデータを転送したことになり、回路の追加を行わずにレジスタ部51における所望のレジスタ間でのデータの転送が行える。
【0052】
一方、上記「TSTF」命令には、下記(10)で示すように、VフラグFV又はCフラグFCのオペランドを記述することができる。
TSTF/T1 C………………(10)
上記(10)で示した命令は、CフラグFCのデータをレジスタ部51のレジスタT1に転送することを意味している。Tレジスタ38は、VフラグFV及びCフラグFCが格納されている各ラッチ回路57及び58からの入力経路が設けられていることから、VフラグFV及びCフラグFCのデータ入力が可能である。VフラグFV及びCフラグFCは、各プロセッサエレメントでの演算によって結果が異なるため、前回の命令に対する演算結果から演算制御フラグをレジスタ部51内に設定でき、プロセッサエレメント間でより多くの異なった処理が可能となる。
【0053】
このように、本実施の形態における演算処理装置は、第2記憶部33からのデータ、データバスIMM1からのデータ又はマルチプレクサ52からの出力データのいずれかをラッチするレジスタ部51を有し、レジスタ部51にラッチされたデータを、AND回路A0〜A7によってデータバスIMM2から入力されるデータでマスクされたデータにし、各AND回路A0〜A7の出力をOR回路53でOR演算を行った後、Aレジスタ36に対するラッチ制御信号として出力するTレジスタ38を備えた。このことから、プロセッサエレメントで行われる演算を制御するための演算制御フラグを格納することができると共に、プロセッサエレメントごとに異なる該演算制御フラグの設定を行うことによって、プロセッサエレメントごとに様々な異なった演算を行わせることができるため、1つのシーケンサで各プロセッサエレメントごとに異なる命令を実行してデータ処理を行うことができる。
【0054】
【発明の効果】
上記の説明から明らかなように、本発明の演算処理装置によれば、各プロセッサエレメントにおいて、グローバルプロセッサから入力されるデータをマスクして、演算部のアキュムレータに対するラッチ制御信号を生成するようにした。このことから、プロセッサエレメントごとに異なる演算制御フラグの設定を行うことによって、プロセッサエレメントごとに様々な異なった演算を行わせることができるため、1つのシーケンサで各プロセッサエレメントごとに異なる命令を実行してデータ処理を行うことができる。
【0055】
具体的には、グローバルプロセッサから入力されるデータを用いてマスクするようにしたことから、プロセッサエレメントごとに更に様々な異なった演算を行わせることができるため、1つのシーケンサで各プロセッサエレメントごとに異なる命令を実行して、より複雑なデータ処理を行うことができる。
【0056】
また、データ格納部に格納されたデータを、グローバルプロセッサから入力されるデータでマスクして、演算部のアキュムレータに対するラッチ制御信号を生成するようにしてもよい。このようにすることによって、プロセッサエレメントごとに様々な異なる演算制御フラグの設定を行うことができるため、プロセッサエレメントごとに更に様々な異なった演算を行わせることができ、1つのシーケンサで各プロセッサエレメントごとに多様な異なる命令を実行してデータ処理を行うことができる。
【0057】
また、前回生成したラッチ制御信号を、グローバルプロセッサから入力されるデータでマスクしてラッチ制御信号を生成するようにしてもよい。このようにすることによって、プロセッサエレメントごとに様々な異なる演算制御フラグの設定を行うことができるため、プロセッサエレメントごとに更に一層様々な異なった演算を行わせることができるため、1つのシーケンサで各プロセッサエレメントごとに更に多様な異なる命令を実行してデータ処理を行うことができる。更に、ラッチ制御信号を生成するためのデータをグローバルプロセッサから入力する必要がないため、演算制御フラグの設定を簡単に行うことができる。
【0058】
また、ステータスレジスタに格納された算術論理演算処理装置のステータス情報を示すデータを、グローバルプロセッサから入力されるデータでマスクしてラッチ制御信号を生成するようにしてもよい。このようにすることによって、算術論理演算処理装置におけるステータス情報を使用して、プロセッサエレメントごとに様々な異なる演算制御フラグの設定を行うことができるため、プロセッサエレメントごとに更に様々な異なった演算を行わせることができ、1つのシーケンサで各プロセッサエレメントごとに多様な異なる命令を実行してデータ処理を行うことができる。
【0059】
具体的には、データ格納部からのデータ、グローバルプロセッサからのデータ又は入力信号選択部からの出力データのいずれかをラッチするレジスタ部を有し、レジスタ部にラッチされたデータを、マスク部によってグローバルプロセッサから入力されるデータでマスクされたデータにし、アキュムレータに対するラッチ制御信号として出力するようにした。このことから、プロセッサエレメントで行われる演算を制御するための演算制御フラグを格納することができると共に、プロセッサエレメントごとに異なる該演算制御フラグの設定を行うことによって、プロセッサエレメントごとに様々な異なった演算を行わせることができるため、1つのシーケンサで各プロセッサエレメントごとに異なる命令を実行して複雑なデータ処理を行うことができる。
【図面の簡単な説明】
【図1】 本発明の実施の形態における演算処理装置の例を示した概略の構成図である。
【図2】 図1のグローバルプロセッサ2及びプロセッサエレメント部5におけるプロセッサエレメントの構成を示したブロック図である。
【図3】 図2の演算アレイ22の各部とPE制御信号線Speとの関係を示したブロック図である。
【図4】 図2及び図3で示したTレジスタ38の回路例を示した図である。
【符号の説明】
1 演算処理装置
2 グローバルプロセッサ
3 レジスタファイル部
4 演算アレイ部
10 SCU
21 レジスタファイル
22 演算アレイ
31 シフト・拡張部
32 第1記憶部
33 第2記憶部
34 ALU
35 PPレジスタ
36 Aレジスタ
37 Fレジスタ
38 Tレジスタ
51 レジスタ部
52 マルチプレクサ
PE0〜PE255 プロセッサエレメント
T0〜T7 レジスタ

Claims (6)

  1. 複数のプロセッサエレメントと、プログラムに従って該各プロセッサエレメントの演算制御を行う少なくとも1つのグローバルプロセッサとで構成された、単一命令多データ処理方式の演算処理装置において、
    上記各プロセッサエレメントは、
    少なくとも1つのレジスタファイルからなるレジスタファイル部と、
    該レジスタファイル部から読み出されたデータ、又は上記グローバルプロセッサから入力されるデータを一時的に格納するデータ格納部と、
    アキュムレータを有し、該データ格納部に格納されたデータ及び該アキュムレータに格納されたデータを用いて所定の演算を行う演算部と、
    該演算部におけるアキュムレータに対するラッチ動作を制御するラッチ制御部と、
    を備え、
    該ラッチ制御部は、上記グローバルプロセッサから入力されるデータをマスクして上記アキュムレータに対するラッチ制御信号を生成することを特徴とする演算処理装置。
  2. 上記ラッチ制御部は、上記グローバルプロセッサから入力されるデータを用いてマスクすることを特徴とする請求項1に記載の演算処理装置。
  3. 上記ラッチ制御部は、上記データ格納部に格納されたデータを、上記グローバルプロセッサから入力されるデータでマスクして上記ラッチ制御信号を生成することを特徴とする請求項1又は請求項2のいずれかに記載の演算処理装置。
  4. 上記ラッチ制御部は、前回生成したラッチ制御信号を、上記グローバルプロセッサから入力されるデータでマスクして上記ラッチ制御信号を生成することを特徴とする請求項1から請求項3のいずれかに記載の演算処理装置。
  5. 上記演算部は、所定の演算を行う算術論理演算処理装置と、該算術論理演算処理装置のステータス情報を格納するステータスレジスタとを有し、上記ラッチ制御部は、該ステータスレジスタに格納されたステータス情報を示すデータを、上記グローバルプロセッサから入力されるデータでマスクして上記ラッチ制御信号を生成することを特徴とする請求項1から請求項4のいずれかに記載の演算処理装置。
  6. 上記ラッチ制御部は、
    複数の入力信号のいずれか1つを、グローバルプロセッサからの信号に応じて選択し出力する入力信号選択部と、
    該入力データ信号選択部から出力された信号が示すデータ、上記グローバルプロセッサから入力されるデータ又は上記データ格納部に格納されたデータのいずれかを、上記グローバルプロセッサからの信号に応じて選択的に格納するレジスタ部と、
    上記グローバルプロセッサから入力されるデータを用いて該レジスタ部に格納されたデータのマスキングを行うマスク部と、
    を備えることを特徴とする請求項1から請求項5のいずれかに記載の演算処理装置。
JP2000088428A 2000-03-28 2000-03-28 演算処理装置 Expired - Fee Related JP3742745B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000088428A JP3742745B2 (ja) 2000-03-28 2000-03-28 演算処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000088428A JP3742745B2 (ja) 2000-03-28 2000-03-28 演算処理装置

Publications (2)

Publication Number Publication Date
JP2001273268A JP2001273268A (ja) 2001-10-05
JP3742745B2 true JP3742745B2 (ja) 2006-02-08

Family

ID=18604310

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000088428A Expired - Fee Related JP3742745B2 (ja) 2000-03-28 2000-03-28 演算処理装置

Country Status (1)

Country Link
JP (1) JP3742745B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2437836B (en) * 2005-02-25 2009-01-14 Clearspeed Technology Plc Microprocessor architectures

Also Published As

Publication number Publication date
JP2001273268A (ja) 2001-10-05

Similar Documents

Publication Publication Date Title
KR100348950B1 (ko) 데이타처리장치
KR100348951B1 (ko) 조건부레지스터쌍으로부터의메모리저장
EP0655680B1 (en) Arithmetic and logic unit having a plurality of independent sections and a register for storing the status bits
EP0657803A2 (en) Three input arithmetic logic unit forming the sum of a first input added with a first boolean combination of a second input and third input plus a second boolean combination of the second and third inputs
US4658355A (en) Pipeline arithmetic apparatus
EP0660227A2 (en) Three input arithmetic logic unit forming the sum of a first and a second boolean combination of the inputs
KR100348952B1 (ko) 데이타처리장치
JP2008071130A (ja) Simd型マイクロプロセッサ
US5704052A (en) Bit processing unit for performing complex logical operations within a single clock cycle
JPH05150979A (ja) 即値オペランド拡張方式
JP3742745B2 (ja) 演算処理装置
JP2703884B2 (ja) データ書込み制御方式
JP5732139B2 (ja) データ要素の条件付き選択
JP3971543B2 (ja) Simd型プロセッサ
JP3971557B2 (ja) Simdプロセッサにおけるデータ設定装置
JP3837293B2 (ja) 定数選択機能を有するsimd型マイクロプロセッサ
JP4398965B2 (ja) Simdプロセッサにおけるデータ設定装置
JP3969580B2 (ja) データ処理装置、画像処理装置、画像形成装置、プログラム及び記憶媒体
JP3895267B2 (ja) Simdプロセッサ
JPH0616287B2 (ja) マスク付きベクトル演算処理装置
JP4442907B2 (ja) Simd型プロセッサ
US6792442B1 (en) Signal processor and product-sum operating device for use therein with rounding function
JP4516495B2 (ja) Simd型マイクロプロセッサにおけるデータ処理方法
JP4346039B2 (ja) データ処理装置
JP2005267362A (ja) Simdプロセッサを用いた画像処理方法及び画像処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040712

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050317

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050510

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: 20051108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051114

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: 20081118

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20091118

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20101118

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111118

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111118

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121118

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20131118

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees