JP3971557B2 - Data setting device in SIMD processor - Google Patents

Data setting device in SIMD processor Download PDF

Info

Publication number
JP3971557B2
JP3971557B2 JP2000297115A JP2000297115A JP3971557B2 JP 3971557 B2 JP3971557 B2 JP 3971557B2 JP 2000297115 A JP2000297115 A JP 2000297115A JP 2000297115 A JP2000297115 A JP 2000297115A JP 3971557 B2 JP3971557 B2 JP 3971557B2
Authority
JP
Japan
Prior art keywords
processor
processor element
identification
register
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000297115A
Other languages
Japanese (ja)
Other versions
JP2002108832A (en
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 JP2000297115A priority Critical patent/JP3971557B2/en
Publication of JP2002108832A publication Critical patent/JP2002108832A/en
Application granted granted Critical
Publication of JP3971557B2 publication Critical patent/JP3971557B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Image Processing (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、画像データ等を高速処理するために同一の命令で複数データに対して同じ処理を行うSIMD(Single Instruction−stream Multiple Data−stream)型マイクロプロセッサに関する。
【0002】
【従来の技術】
近年、デジタル複写機やファクシミリ装置等の画像処理においては、画素数の増加、画像処理の多様化などにより画質の向上が図られている。このような画像処理では、複数(多数)のデータに対して同時に同じ処理を施すことが多い。その際、高速性を高めるため、1命令で1つのデータを処理するSISD(Single Instruction−stream Single Data−stream)型マイクロプロセッサよりも、1命令で複数のデータを同時処理する、SIMD(Single Instruction−stream Multiple Data−stream)型マイクロプロセッサが用いられることが多い。
【0003】
図1は、一般的なSIMD型マイクロプロセッサ2の概略の構成を示すブロック図である。該SIMD型マイクロプロセッサ2は、概略、グローバルプロセッサ(以下では、GPと言う。)4、及びプロセッサエレメント3により構成されるのであるが、複数のデータを一度に処理するためにプロセッサエレメント3を複数個装備している。各プロセッサエレメント3は、レジスタファイル6と演算アレイ8を備える。GP4は、プロセッサ2全体の制御を行ない、プロセッサエレメント3は、外部入出力装置からデータを入力しデータ処理を行ない、外部入出力装置に出力する。
【0004】
上記のSIMD型マイクロプロセッサ2は、通常、1クロックサイクルで1命令を処理するが、1命令でプロセッサエレメント3の個数分のデータを一度に処理することができる。SIMD型マイクロプロセッサ2の性能を表す際には、SIMD型マイクロプロセッサ2の動作周波数や、プロセッサエレメント3の個数、即ち1命令で処理できるデータの数などが重要視されるが、更に、命令サイクル数も重要な要素とされる。つまり、同じ画像処理を行う限り1命令サイクルでも少ないほうが性能がよいとされるのである。しかし、1命令で複雑な処理を行うために、複雑な回路を設計・利用するならば、どうしてもコストが増大する。
【0005】
【発明が解決しようとする課題】
本発明は、有効な命令と命令を実現する簡素な手段を設けることにより、上記のような画像データ処理に伴う命令の命令実行サイクル数を減らすことを目的とする。
【0006】
【課題を解決するための手段】
本発明は、上記の目的を達成するためになされたものである。本発明に係る請求項1に記載のSIMD型マイクロプロセッサは、
各プロセッサエレメントは、プロセッサエレメントに含まれる算術論理演算装置の演算結果を所定の汎用レジスタに格納する際の可否を決定するための値を有する演算制御レジスタを持ち、
各プロセッサエレメントには、識別のための整数番号が順に付されており、
上記の識別のための整数番号をVCCとGNDで形成する接続線部を有し、
更に、
上記の識別のための整数番号と、グローバルプロセッサにおける命令コードにより指定された数値を、全プロセッサエレメントに渡って同時に比較し、比較結果を各プロセッサエレメントの上記演算制御レジスタに含まれるフラグに設定することを特徴とするSIMD型マイクロプロセッサである。
【0007】
本発明に係る請求項2に記載のSIMD型マイクロプロセッサは、
各プロセッサエレメントは、プロセッサエレメントに含まれる算術論理演算装置の演算結果を所定の汎用レジスタに格納する際の可否を決定するための値を有する演算制御レジスタを持ち、
各プロセッサエレメントには、識別のための整数番号が順に付されており、
各々のプロセッサエレメントでは、
識別のための整数番号をVCCとGNDで形成する接続線部と、識別のための整理番号に対するマスク信号とを取り込む論理回路部が、識別のための整理番号に対するマスク回路を構成し、上記接続線部を構成するビット信号の夫々と上記マスク信号の各ビット夫々が、論理回路部を構成する個別の論理回路の入力となっており、
更に、
グローバルプロセッサから指定されるマスク信号により、各プロセッサエレメントの論理回路部は、識別のための整数番号の、上記マスク信号により指定されたビットを、上記マスク信号の内容でマスクして出力し、
これにより、各プロセッサエレメントに対する識別のための整理番号に対応して、論理回路部の出力におけるマスクが為されて出力される部分とマスクが為されずに出力される部分との組み合わせが、周期的規則を有しており、
更に、
上記の各プロセッサエレメントの上記マスク回路にて生成されたデータと、グローバルプロセッサにおける命令コードにより指定された数値を全プロセッサエレメントに渡って同時に比較し、比較結果を各プロセッサエレメントの上記演算制御レジスタに含まれるフラグに設定することを特徴とするSIMD型マイクロプロセッサである。
【0008】
本発明に係る請求項3に記載のSIMD型マイクロプロセッサは、
各プロセッサエレメントは、プロセッサエレメントに含まれる算術論理演算装置の演算結果を所定の汎用レジスタに格納する際の可否を決定する演算制御レジスタを持ち、
各プロセッサエレメントには、識別のための整数番号が順に付されており、
各々のプロセッサエレメントは、VCCとGNDで形成する接続線部と、該接続線部に繋がりグローバルプロセッサから指定される入力値選択信号を受けるマルチプレクサ部を有し、
該接続線部は、複数の部分接続線部に分割され、この分割はプロセッサエレメント全体を通して共通かつ固定であり、各部分接続部は一つ又は複数のビット信号部を有し、
各部分接続線部は、プロセッサエレメントに順に付される識別のための整数番号に対応して、VCCとGNDに繋がることにより周期的に変動するビット信号を出力するように形成されており、
更に、
グローバルプロセッサから指定される入力値選択信号により、マルチプレクサ部は、各プロセッサエレメントの有する接続線部を構成する部分接続線部のうち共通のものを選択して、選択された部分接続部の出力する信号を出力し、
これにより、各プロセッサエレメントに対する識別のための整理番号に対応して、上記マルチプレクサ部の出力が、周期的規則を有しており、
更に、
上記の各プロセッサエレメントの上記マルチプレクサ部にて生成される周期的規則を有する出力値と、グローバルプロセッサにおける命令コードにより指定された数値を全プロセッサエレメントに渡って同時に比較し、比較結果を各プロセッサエレメントの上記演算制御レジスタに含まれるフラグに設定することを特徴とするSIMD型マイクロプロセッサである。
【0009】
本発明に係る請求項4に記載のSIMD型マイクロプロセッサは、
各プロセッサエレメントは、プロセッサエレメントに含まれる算術論理演算装置の演算結果を所定の汎用レジスタに格納する際の可否を決定する演算制御レジスタを持ち、
各プロセッサエレメントには、識別のための整数番号が順に付されており、
各々のプロセッサエレメントでは、
接続線部と、マスク信号を取り込む論理回路部が、ビットパターンデータ出力回路を構成し、上記接続線部を構成するビット信号の夫々と上記マスク信号の各ビット夫々が、論理回路部を構成する個別の論理回路の入力となっており、
接続線部は、個別の接続線に分割され、この分割はプロセッサエレメント全体を通して共通かつ固定であり、
各個別の接続線は、プロセッサエレメントに順に付される識別のための整数番号に対応して、周期的に変動するビット信号を、VCC若しくはGNDの接続により出力するように形成されており、
更に、
グローバルプロセッサから指定されるマスク信号により、各プロセッサエレメントの論理回路部は、指定されたビットを、上記マスク信号の内容でマスクして出力し、
これにより、各プロセッサエレメントに対する識別のための整理番号に対応して、論理回路部の出力におけるマスクが為されて出力される部分とマスクが為されずに出力される部分との組み合わせが、周期的規則を有しており、
更に、
上記の各プロセッサエレメントのビットパターンデータ出力回路にて生成されるデータと、グローバルプロセッサにおける命令コードにより指定された数値を全プロセッサエレメントに渡って同時に比較し、比較結果を各プロセッサエレメントの上記演算制御レジスタに含まれるフラグに設定することを特徴とするSIMD型マイクロプロセッサである。
【0013】
【発明の実施の形態】
以下、図面を参照して本発明に係る好適な実施の形態を説明する。
【0014】
図1は、本発明を含む一般的なSIMD型マイクロプロセッサ2の概略の構成を示すブロック図である。主としてプロセッサ2全体を制御するグローバルプロセッサ(以下、GPと言う。)4と、主として外部入出力装置からデータを入力しデータ処理を行い、外部入出力装置にデータを出力するプロセッサエレメント3とから、構成される。プロセッサエレメント3は、複数データを同時に処理するために複数用意されている。図1では、1個のGP4と、256個のプロセッサエレメント3とにより、SIMD型マイクロプロセッサ2が構成されている。
【0015】
図2は、本発明に係るSIMD型マイクロプロセッサ2のより詳細な構成を示すブロック図である。図に示されるようにGP4は、
・命令コードで構成されるプログラムを格納するためのプログラムRAM10と、
・GP4での演算データを格納するデータRAM12と、
・プログラムを解読し各種ブロックに各種制御信号を送るシーケンシャルユニット(SCU)9と、
・データを格納する複数の汎用レジスタ(G0〜G3)と、
・SCU9にプログラムの命令コードを送るためにプログラムのアドレスを保持するプログラムカウンタ(PC)14と、
・データメモリにスタックを形成するためデータメモリのアドレスを格納するスタックポインタ(SP)24と、
・プログラムの途中でサブルーチン処理を行う際には分岐が発生するが分岐前のアドレスを格納する複数のリンクレジスタ(LS、LI、LN)と、
・データメモリのデータ、命令コード中に記述された数値(即値)データ、若しくは汎用レジスタに格納されているデータのいずれかの組み合わせで算術論理演算を行う算術論理演算装置(ALU)11と、
・プロセッサの状態を保持するプロセッサステータスレジスタ(図示せず。)と、
・ハードウェア割り込みとソフトウェア割り込みを制御する割り込み制御回路(図示せず。)と、
・外部入出力に直接接続され外部からのデータの入出力を制御する外部I/O制御回路(図示せず。)と
を含む。
【0016】
図2では示していないが、上記SCU9は、GP命令を解読し主にGP内の各ブロックに制御信号を発生するGPインストラクションデコーダと、プロセッサエレメント命令を解読し主にプロセッサエレメント内の各ブロックに制御信号を発生するプロセッサエレメントインストラクションデコーダとで、構成される。即ち、本プロセッサに係る命令コードは、主にGP4内の各ブロックを制御し、プログラムのシーケンスを決定したり、プロセッサエレメント3に転送する共通データをGP4内のALU11で加工したりするGP命令と、外部入出力から一度に入力されたデータをプロセッサエレメント3毎に処理をさせるプロセッサエレメント命令とに、分類される。
【0017】
図1に示すように、各プロセッサエレメント3は、外部からの入出力データを一時的に保持するレジスタファイル6と、プロセッサエレメント3内で算術論理演算やビット演算のデータ処理を行うための演算アレイ8を含む。さらに図2に示すようにレジスタファイル6には、例えば、R0〜R31までの8ビットのレジスタ34が32本用意されている。これらのレジスタ34からデータが演算アレイ8に転送され、又逆に演算アレイ8からデータが転送されてレジスタ34に格納される。レジスタ34と演算アレイ6とのバスは、8ビットの双方向バスである。
【0018】
更に図2に示すように、単体の演算アレイ8は演算ユニットであり、
・レジスタファイル6からのデータをシフトして符号付き拡張もしくは符号無し拡張をし16ビットデータに加工するシフト・拡張器44と、
・例えば、Aレジスタ36とFレジスタ40のような複数の汎用レジスタと、
・レジスタファイル6からのデータをシフト・拡張器44を経由して加工し1入力とし、他方の入力をAレジスタ36からの入力とする算術論理演算装置(ALU)36と、
・(後で説明する)本発明に係るPE番号マスク回路、固定値選択回路、及びnおきビットパターンデータ出力回路の夫々からの出力を入力とし、自らの出力をAレジスタ38やTレジスタ54に繋げる選択回路35と
を含む。算術論理演算装置(ALU)36の出力は、Aレジスタ36もしくはFレジスタ40に一時格納されように設定されているが、Aレジスタ36からレジスタファイル6の所定の1レジスタ34にデータ転送されることも可能である。
【0019】
また、演算アレイ8は、後でも説明するように、「Tレジスタ」と呼ばれる演算制御レジスタ54を備える。ALU36からの出力は、該Tレジスタ54によって、Aレジスタ36もしくはFレジスタ40への書き込み内容が制御される。例えば、演算制御レジスタ(Tレジスタ)54の中の所定の1ビットの状態に応じて、“1”あればAレジスタ36もしくはFレジスタ54への書き込みを行い、“0”であれば行わないというような制御が行なわれる。
【0020】
図3は、レジスタファイル6のレジスタ34と演算アレイ8とを結び付けるマルチプレクサの機能を示すブロック図である。PEi(i=0,1,2,・・・255)のプロセッサエレメントに備わるマルチプレクサは7to1(7対1)のマルチプレクサであり、PEi−3(PEiの3つ左隣り)、PEi−2(PEiの2つ左隣り)、PEi−1(PEiの1つ左隣り)、PEi、PEi+1(PEiの1つ右隣り)、PEi+2(PEiの2つ右隣り)、PEi+3(PEiの3つ右隣り)のプロセッサエレメント3のレジスタファイル6からのデータを入出力することができるように設定されている。この機能を、PEシフト機能と称する。マルチプレクサによって選択されたデータは、演算アレイ8のシフト・拡張部44に転送される。
【0021】
ここで、プロセッサエレメント3の番号を含む呼称について定義する。図2に示すように、本発明に係るSIMD型マイクロプロセッサ2には256個のプロセッサエレメント3が設置されており、それらプロセッサエレメント3の個々に対し、(図では左側から)PE0、PE1、PE2、PE3、・・・、PE254、PE255というように、プロセッサエレメント番号(PE番号)を付すと定義する。
【0022】
≪第1の実施の形態≫
図4は、本発明の第1の実施の形態に係るPE(プロセッサエレメント)番号マスク回路の回路図である。上記PE番号マスク回路は、(従来技術である)PE番号を所定の汎用レジスタに入力する接続線に対し、GP4からのマスク制御信号(即ち、PE番号マスク信号)を取り入れる論理回路を挿入することにより形成される。後でも説明するように、この図4の回路構成では、“0”によりマスクすることになる。
【0023】
各PEi(i=0,1,2,・・・255)においては、各PE番号を形成する接続線部50とPE番号マスク信号を取り込む論理回路(AND回路)部51とが結合して設置されている。そこからの出力は、後で説明するように、各プロセッサエレメント3毎に設置されている選択回路35(図2参照)に繋がる。その選択回路35を介して例えばAレジスタ38にて上記出力が格納される。
【0024】
(従来技術である)各PE番号を形成する接続線部50を利用して、Aレジスタ38にPE番号を設定することは従来も可能であった。例えば、「LDPN」(Load PE Number)という命令を実行することにより、上記機能を実現していたとする。ここで、本発明の第1の実施の形態に係る回路によっても、全く同じ機能を実現すること、即ち各PE番号を各選択回路35に送ることを「LDPN」の命令の利用によって実現するように設定することができる。なお、図4からも明白なように、LDPN命令を用いるときのPE番号マスク信号は(8ビット)すべて“1”となる。このような設定により、VCCとGNDとで形成されるパターンでPE番号を表すデータが、各プロセッサエレメント3の選択回路35に入力されることになる。
【0025】
具体的に示すと、選択回路35に入力されるデータは、
・PE0、PE1、PE2、・・・PE255の順に、
・0、1、2、・・・255
の値となる。
【0026】
更に、本発明の第1の実施の形態に係る回路においては、SIMD型マイクロプロセッサ2への命令にて指定するビットを“0”に設定することにより、入力データをマスクすることができる。そのような処理を行なう命令として、「LDNM」(Load PE Number Masking)命令が用意されている。LDNM命令は、マスクパターンを即値で指定することで出力データをマスクする。その即値はPEマスク信号として図4の回路に取り込まれる。LDNM命令は、次のように、記述される。
【0027】
LDNM/0 #00000011b
【0028】
上記の記述で「00000011b」の末尾のbは、2進数表記であることを示す。上記の命令では、PE番号のビット3からビット7までの出力値に対しマスクが施されることになる。また、“/0”は、“0”によるマスクを表すオプション記述である。
【0029】
よって、各選択回路35に入力されるデータは、
・PE0、PE1、PE2、PE3、PE4、PE5、PE6、・・・PE254、PE255の順に、
・0、1、2、3、0、1、2、・・・2、3
の値となる。
【0030】
図4の第1の実施の形態にかかる回路では、AND回路が利用されているが、これをOR回路に置き換えることも想定され得る。即ち、各PEi(i=0,1,2,・・・255)において、各PE番号を形成する接続線部50とPE番号マスク信号を取り込む論理回路(OR回路)部(図示せず。)とが結合して設置されることになる。このとき、上記(図4)の回路構成では“0”によりマスクをしていたが、OR回路に置き換える回路の場合、“1”によるマスクとなる。命令は以下のように記述される。
【0031】
LDNM/1 #11111100b
【0032】
上記の記述では、PE番号のビット3からビット7までの入力値が、“1”でマスクされることになる。/1は“1”によるマスクを表すオプション記述である。
【0033】
このとき、各選択回路35に入力されるデータは、
・PE0、PE1、PE2、PE3、PE4、PE5、PE6、・・・PE254、PE255の順に、
・252(11111100b)、253(11111101b)、254(11111110b)、255(11111111b)、252、253、254、・・・254、255
の値となる。
【0034】
図4に示される本発明の第1の実施の形態に係る回路を利用することにより、マスク制御信号(PE番号マスク信号)にて“0”であるビットに対応する制御線がマスクされ、所定のビットのみで表され且つ繰り返しの規則性を備えるデータを、1命令で設定(形成)することができる。例えば、上位6ビットを全てマスクすることにより、下位2ビットのみが有効となり、PE0、PE1、PE2、PE3、PE4、PE5、PE6、・・・のプロセッサエレメント3の各選択回路35に対し、
・0、1、2、3、0、1、2、3、・・・
の規則性のある繰り返しの値を1命令で出力することができる。また、図4の回路において、AND回路を全てOR回路にすることによっても、PE0、PE1、PE2、PE3、PE4、PE5、PE6、・・・のプロセッサエレメント3の各選択回路35に対し、規則性のある繰り返しの値を1命令で出力することができる。但し、このときは“1”によりマスクがなされることになる。
【0035】
従来技術を利用する場合、LDPN命令でPE番号を一旦Aレジスタ38に設定し、更にそのAレジスタ38の値を4で割ったときの剰余を同じくAレジスタ38に設定すれば、図4と同様の結果が得られる。しかし、
・LDPN命令で1命令サイクル、
・(乗除算器があると仮定して、)除算命令で1命令サイクル、
計2命令サイクルが必要である。然も、乗除算器をSIMD型マイクロプロセッサ2の全プロセッサエレメント3内に設定するならば、莫大な回路規模が必要となる。通常のSIMD型マイクロプロセッサ2には乗除算器は設定されてないため、除算の実施は、ALU36を利用して被除数のビット数の分までの減算を行なうことで実現される。汎用レジスタであるAレジスタ38は、例えば16ビットであるならば、最短16回の減算が必要となる(現実には除算前の設定が数命令サイクル必要になる)。ここで16命令サイクルかかり、結局、全体で最短18命令サイクルとなる。
【0036】
以上、明白なように、本発明の第1の実施の形態に係る回路によって、相当数の命令サイクルの削減が行なえる。
【0037】
≪第2の実施の形態≫
図5は、本発明の第2の実施の形態に係る固定値選択回路の回路図である。上記固定値選択回路は、n(nは自然数)おきの周期変動を備え1周期内では単調に0から1ずつ増加する数値を、(後で説明する)選択回路35に対し、入力値選択信号による選択制御の下、出力する回路である。図5に示される回路では、nの値として、3、5、7が想定されている。
【0038】
図5に示されるように、各プロセッサエレメント3においては、各別の接続線部50’とマルチプレクサ部51’が備わる。接続線部50’は、9ビットの信号を生成するのであるが、左方2ビットは「3」おきの周期変動を備え、中位3ビットは「5」おきの周期変動を備え、右方4ビットは「7」おきの周期変動を備えるように、接続線が設定されている。図5から明白なように、3おきの周期変動は、
・PE0、PE1、PE2、PE3、PE4、PE5、PE6、・・・の順に、
・0、1、2、0、1、2、0、・・・
となる。5おきの周期変動は、
・PE0、PE1、PE2、PE3、PE4、PE5、PE6、...の順に、
・0、1、2、3、4、0、1、・・・
となる。7おきの周期変動は、
・PE0、PE1、PE2、PE3、PE4、PE5、PE6、PE7、PE8、・・・の順に、
・0、1、2、3、4、5、6、0、1、・・・
となる。
【0039】
どの周期変動の出力を選択するかは、入力値選択信号により与えられる。該入力値選択信号は、各プロセッサエレメント3におけるマルチプレクサ部51’に指示を与えるものである。上記の周期変動の抽出に係る命令として、次の命令「LDRN」(Load Repeating Number)が設定されている。
【0040】
LDRN #3
【0041】
上記の命令では、各プロセッサエレメント3の選択回路35に対し、3おきの周期変動を備え1周期内では単調に0から2まで1ずつ増加する数値が、プロセッサエレメント3の有するPE番号の順に従い、出力されることになる。
【0042】
図5に示される本発明の第2の実施の形態に係る固定値選択回路を利用すれば、上記のような、選択回路35(Aレジスタ38)への数値入力を、1命令サイクルで行なうことができる。ここで、上記の例に示される3、5、7という数字は、一般的に、画像処理において頻繁に使用される値であることが知られている。
【0043】
≪第3の実施の形態≫
図6は、本発明の第3の実施の形態に係るnおきビットパターンデータ出力回路の回路図である。上記nおきビットパターンデータ出力回路は、個別のビットにおいて(PE番号の順に従い)nおきに“1”を設定する接続線に対し、GP4からのビットマスク信号を取り入れる論理回路を挿入することにより形成される。
【0044】
各PEi(i=0,1,2,・・・255)においては、夫々のビットにおいてnおきの“1”を設定する接続線部50”とビットマスク信号を取り込む論理回路(AND回路)部51”が結合して設置されている。そこからの出力は、第1の実施の形態に係る回路、及び第2の実施の形態に係る回路と同様に、各プロセッサエレメント3に設置されている選択回路35(図2参照)に繋がる。その選択回路35を介して例えばAレジスタ38にて上記出力が格納される。
【0045】
各PEiの接続線部50”は、8ビットの個別ビットを備える。例えば、ビット0は「2おき」、ビット1は「3おき」、ビット2は「5おき」、ビット3は「7おき」、ビット4は「11おき」、ビット5は「13おき」、ビット6は「17おき」、及びビット7は「23おき」の周期特性を備えている。夫々のビットにおいて各周期特性に相当するPE番号であれば、該ビットが“1”となるように、各PEiの接続線部50”が設定されている(即ち、該当するビットがVCCに接続されている)(図6)。即ち、
・2おきの周期特性を有するビット0は、PE0、PE2、PE4、PE6、PE8、・・・において、
・3おきの周期特性を有するビット1は、PE0、PE3、PE6、PE9、PE12、・・・において、
・5おきの周期特性を有するビット2は、PE0、PE5、PE10、PE15、PE20、・・・において
VCCに接続されている。
【0046】
上記のように設定される各PEiの接続線部50”の設定内容の抽出に係る命令として、次の命令「LDRB」(Load Repeating Bit)が用意されている。
【0047】
LDRB
【0048】
この命令により、各PEiの接続線部50”の設定内容が全て、例えば、選択回路35(乃至Aレジスタ38)に入力される。上記の命令では、
・PE0、PE1、PE2、PE3、PE4、PE5、PE6、PE7、PE8、PE9、PE10、PE11、・・・の順に、
・11111111b(2進数表記。以下同様である。)、00000000b、00000001b、00000010b、00000001b、00000100b、00000011b、00001000b、00000001b、00000110b、00000001b、・・・
となる。
【0049】
但し、上述したように、上記接続線に対し、GP4からのビットマスク信号を取り入れる論理回路が挿入されているため、命令コードにおいて指定するビットが“0”に設定されることにより、選択回路35(乃至Aレジスタ38)への入力データがマスクされ得る。そのマスク処理を行なうときには、命令は次のように記述される。マスクパターンは、即値で指定されてビットマスク信号として図6の回路に取り込まれ、選択回路35(乃至Aレジスタ38)への入力データをマスクする。
【0050】
LDRB/0 #00000100b
【0051】
上記の命令では、ビット2に“1”が設定されるPEに係る出力データのみ“00000100b”の数値となる。“00000100b”が、例えばAレジスタ38に設定されるのは、
・PE0、PE5、PE10、PE15、PE20、...
である。それ以外のPEにおいては、“00000000b”となる。
【0052】
第3の実施の形態に係るnおきビットパターンデータ出力回路では、上記のような選択回路35(Aレジスタ38)への数値入力を、1命令サイクルで行なうことができる。
【0053】
≪第4の実施の形態≫
本発明の第4の実施の形態に係るSIMD型マイクロプロセッサ2について説明する。
【0054】
本発明の第1の実施の形態に係る「LDPM」命令において、即値(PE番号マスク信号)をすべてマスクしない数値(#11111111b)とした場合、PE番号がそのまま選択回路35(乃至Aレジスタ38)に入力される。また、前に説明したように、GP4からのPE番号マスク信号を取り入れる論理回路が挿入されない、PE番号を所定の汎用レジスタ等に入力する接続線を、そのまま利用することによっても、PE番号がそのまま選択回路35(乃至Aレジスタ38)に入力される。
【0055】
従って、選択回路35には、
・PE0、PE1、PE2、・・・PE255の順に、
・0、1、2、...255
の値が入力される。
【0056】
各プロセッサエレメント3において、上記の選択回路35に入力された値を、選択回路35に備わるコンパレータ80(図7)にて(SIMD型マイクロプロセッサ2への)命令で指定された即値と比較し、その結果をTレジスタ(演算制御レジスタ)54の所定の位置のビットに格納する。このTレジスタ54への結果格納により、次命令以降の演算にて、256個あるプロセッサエレメント3のうち特定の1つのプロセッサエレメント3においてのみ演算を行ない、その他のプロセッサエレメント3の演算を行なわないという設定をすることができる。
【0057】
図7は、本発明に係る選択回路35の概略回路ブロック図を示す。図4、図5及び図6の、PE番号マスク回路、固定値選択回路及びnおきビットパターンデータ出力回路からの出力データは、図2に示す演算アレイ8内の選択回路35に繋がる。GP4からの制御信号である入力データ選択信号2によってマルチプレクサ78にて選択され、3者のうちいずれか1データがAレジスタ38に入力される。また、選択された1データは、命令コード中の即値データIMM2とコンパレータ80にて比較され、その結果一致した場合には “1”を出力する。一致しなかった場合“0”を出力する。
【0058】
ここで、本発明に係るTレジスタ54について説明する。図2のように、各プロセッサエレメント3には、実行条件指定のための演算制御レジスタ(Tレジスタ)54が装備されている。図8は、Tレジスタ54の回路ブロック図の例である。図8では、Tレジスタ54は8ビットのレジスタ(T0、T1、・・・T7)を備え、夫々の1ビットのレジスタは別々に制御される。そのため、1つのプロセッサエレメント3にて8通りの制御パターンを保持できる。
【0059】
Tレジスタ54における夫々のビットは、各プロセッサエレメント3の演算実行の無効/有効の制御を行ない、特定のプロセッサエレメント3だけを演算対象として選択するという制御を行なうことができる。例えば、次のような命令が想定される。
【0060】
ADD/T1 #12
【0061】
この命令は加算命令であり、Aレジスタ38の値と即値“12”とが加算されて結果がAレジスタ38に格納される。この命令において、“/T1”という実行制御オプションを記述することにより、Tレジスタ38のうちT1の(ビット)フラグの値が“1”であるプロセッサエレメント3のみ、Aレジスタ38へのALU36からのデータの格納が行なわれる。T1フラグが“0”であるプロセッサエレメント3のAレジスタ54へのデータの格納は行なわれない。
【0062】
図8の例では、このTレジスタ54への入力へは、
・PE3内の演算ユニット6のALU36にて発生したオーバーフローフラグ(V)、キャリーフラグ(C)からの入力、
・全Tフラグへの即値IMM2によるマスク操作の結果に対する、OR操作の結果からの入力、
・図2に示される記憶手段2からの入力、
・図7の選択回路35でのコンパレータ80出力からの入力
などである。
【0063】
以上説明した本発明の第4の実施の形態に係るSIMD型マイクロプロセッサ2によれば、特定のPE番号のプロセッサエレメント3のみ演算を行なわせるという処理を、少ない命令数で行なうことができる。従来の技術であれば、全プロセッサエレメント3のTレジスタ54に対し先ず“0”を設定し、更に、演算を行なうプロセッサエレメント3のTレジスタ54に“1”を設定することにより、上記の機能は実現されるが、本発明の第4の実施の形態に比べて命令数は必然的に増加してしまう。
【0064】
≪第5の実施の形態≫
本発明の第5の実施の形態に係るSIMD型マイクロプロセッサ2について説明する。
【0065】
第5の実施の形態に係るSIMD型マイクロプロセッサ2の各プロセッサエレメント3においては、第1の実施の形態に係るPE番号マスク回路から選択回路35に繋げられる(データ)値を、選択回路35に備わるコンパレータ80(図7)にて、命令コード中に指定された即値データと比較し、その結果をTレジスタ54の所定の位置のビットに格納する。このTレジスタ54への結果格納により、次命令以降の演算にて、「2のべき乗」おきのPE番号を備えるプロセッサエレメント3のみの演算を実行させるという制御を行うことができる。
【0066】
図4に示されるPE番号マスク回路の出力は図7の選択回路35に入力され、該選択回路35では(予め用意されている)「LDTM」(Load to Tregister Masked PE Number)命令を実行することで、入力データ選択信号2によりそのPE番号マスク回路の出力のデータが選択される。更に、上記LDTM命令の実行時に、即値データ(の1つ)がIMM2に入力され、PE番号マスク回路の出力データとIMM2とがコンパレータ80にて比較される。一致するとそのプロセッサエレメント3のコンパレータ80の出力が“1”となり、一致しなかったプロセッサエレメント3では“0”となる。次の命令は、実行される命令の例である。
【0067】
LDTM/T2 #00000011b、#1
【0068】
上記命令において、即値オペランドのうち第1オペランドがマスクパターンである。第2オペランドが比較値である。但し、マスクパターンは2進数表記、比較値は10進表記としている。
・PE0、PE1、PE2、PE3、PE4、PE5、PE6、PE7、・・・
にマスクした結果の値は、
・0、1、2、3、0、1、2、3、・・・
のような繰り返しの値となるが、比較値と一致する値のPE、即ち、
・PE1、PE5、PE9、・・・
のTレジスタ54のT2フラグに“1”が設定される。他のPEのTレジスタ54のT2フラグには“0”が設定される。これによって以降の命令でTレジスタ54のT2フラグを実行制御に用いれば、特定のPE、即ちPE1から始まり「22」おきのPE番号を備えるプロセッサエレメント3のみの演算を実行させることができる。
【0069】
≪第6の実施の形態≫
本発明の第6の実施の形態に係るSIMD型マイクロプロセッサ2について説明する。
【0070】
第6の実施の形態に係るSIMD型マイクロプロセッサ2の各プロセッサエレメント3においては、第2の実施の形態に係る固定値選択回路から選択回路35に繋げられる(データ)値を、選択回路35に備わるコンパレータ80(図7)にて、命令コード中に指定された即値データと比較し、その結果をTレジスタ54の所定の位置のビットに格納する。このTレジスタ54への結果格納により、次命令以降の演算にて、3、5、7のような特定の数値おきのPE番号を備えるプロセッサエレメント3のみの演算を実行させるという制御を行うことができる。
【0071】
図5に示される固定値選択回路の出力は図7の選択回路に入力され、該選択回路35では(予め用意されている)「LDTN」(Load to T register Predefined Number)命令を実行することで、入力データ選択信号2によりその固定値選択回路の出力データが選択される。更に、上記LDTN実行時に、即値データ(の1つ)がIMM2に入力され、固定値選択回路の出力データとIMM2とがコンパレータ80にて比較される。一致するとそのプロセッサエレメント3のコンパレータ80の出力が“1”となり、一致しなかったプロセッサエレメント3では“0”となる。次の命令は、実行される命令の例である。
【0072】
LDTN/T2 #3、#2
【0073】
上記命令において、即値オペランドのうち第1オペランドが選択固定値である。第2オペランドが比較値である。
・PE0、PE1、PE2、PE3、PE4、PE5、PE6、PE7、・・・
に結果の値は、
・0、1、2、0、1、2、0、1、...
のような繰り返しの値となるが、比較値と一致する値のPE、即ち、
・PE2、PE5、PE8、・・・
のTレジスタ54のT2フラグに“1”が設定される。他のPEのTレジスタ54のT2フラグには“0”が設定される。これによって以降の命令でTレジスタ54のT2フラグを実行制御に用いれば、特定のPE、即ちPE2から始まり「3」おきのPE番号を備えるプロセッサエレメント3のみの演算を実行させることができる。
【0074】
≪第7の実施の形態≫
本発明の第7の実施の形態に係るSIMD型マイクロプロセッサ2について説明する。
【0075】
第7の実施の形態に係るSIMD型マイクロプロセッサ2の各プロセッサエレメント3においては、第3の実施の形態に係るnおきビットパターンデータ出力回路から選択回路35に繋げられる(データ)値を、選択回路35に備わるコンパレータ80(図7)にて、命令コード中に指定された即値データと比較し、その結果をTレジスタ54の所定の位置のビットに格納する。このTレジスタ54への結果格納により、次命令以降の演算にて、2、3、5、7、11のような特定の数値おきのPE番号を備えるプロセッサエレメント3のみの演算を実行させるという制御を行うことができる。
【0076】
図6に示されるnおきビットパターンデータ出力回路の出力は図7の選択回路35に出力され、該選択回路35では(予め用意されている)「LDTB」(Load to T register Bit Number)命令を実行することで、入力データ選択信号2によりそのnおきビットパターンデータ出力回路の出力のデータが選択される。更に、上記LDTB命令の実行時に、即値データ(の1つ)がIMM2に入力され、nおきビットパターンデータ出力回路の出力データとIMM2とがコンパレータ80にて比較される。一致するとそのプロセッサエレメント3のコンパレータの出力が“1”となり、一致しなかったプロセッサエレメント3では“0”となる。次の命令は、実行される命令の例である。
【0077】
LDTB/T2 #00000010b、#1
【0078】
上記命令において、即値オペランドのうち第1オペランドがnおきビット指定である。第2オペランドが比較値である。
・PE0、PE1、PE2、PE3、PE4、PE5、PE6、PE7、・・・
に結果の値は、
・1、0、0、1、0、0、1、0、...
のような繰り返しの値となるが、比較値と一致する値のPE、即ち、
・PE0、PE3、PE6、・・・
のTレジスタ54のT2フラグに“1”が設定される。他のPEのTレジスタ54のT2フラグには“0”が設定される。これによって以降の命令でTレジスタ54のT2フラグを実行制御に用いれば、特定のPE、即ちPE0から始まり「3」おきのPE番号を備えるプロセッサエレメント3のみの演算を実行させることができる。
【0079】
【発明の効果】
本発明を利用することにより、特に、画像データ処理に伴う命令の命令実行サイクル数を減らすことができる。そのために増設の必要な回路は、簡素なものであるに過ぎない。
【図面の簡単な説明】
【図1】 一般的なSIMD型マイクロプロセッサの概略の構成を示すブロック図である。
【図2】 本発明に係るSIMD型マイクロプロセッサのより詳細な構成を示すブロック図である。
【図3】 レジスタファイルのレジスタと演算アレイとを結び付けるマルチプレクサの機能を示すブロック図である。
【図4】 本発明の第1の実施の形態に係るPE番号マスク回路の回路図である。
【図5】 本発明の第2の実施の形態に係る固定値選択回路の回路図である。
【図6】 本発明の第3の実施の形態に係るnおきビットパターンデータ出力回路の回路図である。
【図7】 本発明に係る選択回路の概略回路ブロック図を示す。
【図8】 演算制御レジスタ(Tレジスタ)の回路ブロック図の例である。
【符号の説明】
2・・・SIMD型マイクロプロセッサ、3・・・プロセッサエレメント、4・・・グローバルプロセッサ、6・・・レジスタファイル、8・・・演算アレイ、34・・・レジスタ、35・・・演算回路、36・・・ALU(算術論理演算装置)、38・・・Aレジスタ、50、50’、50”・・・接続線部、51、51”・・・論理回路部、51’・・・マルチプレクサ部、54・・・Tレジスタ(演算制御レジスタ)、78・・・マルチプレクサ、80・・・コンパレータ。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a single instruction-stream multiple data-stream (SIMD) type microprocessor that performs the same processing on a plurality of data with the same instruction in order to process image data and the like at high speed.
[0002]
[Prior art]
In recent years, in image processing such as digital copying machines and facsimile machines, image quality has been improved by increasing the number of pixels and diversifying image processing. In such image processing, the same processing is often performed simultaneously on a plurality (many) of data. At this time, in order to improve the high speed, a single instruction-single instruction-simulation (single instruction-stream) single-stream data (SIMD) type microprocessor that processes one piece of data simultaneously with a single instruction. -Stream (Multiple Data-stream) type microprocessor is often used.
[0003]
FIG. 1 is a block diagram showing a schematic configuration of a general SIMD type microprocessor 2. The SIMD type microprocessor 2 is roughly composed of a global processor (hereinafter referred to as GP) 4 and a processor element 3, and a plurality of processor elements 3 are used to process a plurality of data at a time. Equipped with pieces. Each processor element 3 includes a register file 6 and an operation array 8. The GP 4 controls the entire processor 2, and the processor element 3 inputs data from the external input / output device, performs data processing, and outputs the data to the external input / output device.
[0004]
The SIMD type microprocessor 2 normally processes one instruction in one clock cycle, but can process data for the number of processor elements 3 at one time with one instruction. When expressing the performance of the SIMD type microprocessor 2, the operating frequency of the SIMD type microprocessor 2 and the number of processor elements 3, that is, the number of data that can be processed by one instruction, are emphasized. Number is also an important factor. In other words, as long as the same image processing is performed, the performance is better when the number of instruction cycles is small. However, in order to perform complicated processing with one instruction, if a complicated circuit is designed and used, the cost inevitably increases.
[0005]
[Problems to be solved by the invention]
It is an object of the present invention to reduce the number of instruction execution cycles of instructions associated with image data processing as described above by providing effective instructions and simple means for realizing the instructions.
[0006]
[Means for Solving the Problems]
  The present invention has been made to achieve the above object. According to the first aspect of the present invention, there is provided a SIMD type microprocessor.
  Each processor element determines whether or not to store the operation result of the arithmetic logic unit included in the processor element in a predetermined general-purpose register.Have a value forHas a calculation control register,
  Each processor element is given an integer number for identification, in order,
It has a connecting line part that forms an integer number for the above identification with VCC and GND,
Furthermore,
  An integer number for the above identification,In global processorsThe numerical value specified by the instruction code is compared simultaneously across all processor elements, and the comparison result isFor each processor elementThe SIMD type microprocessor is characterized in that it is set in a flag included in the arithmetic control register.
[0007]
  According to a second aspect of the present invention, there is provided a SIMD type microprocessor.
  Each processor element determines whether or not to store the operation result of the arithmetic logic unit included in the processor element in a predetermined general-purpose register.Have a value forHas a calculation control register,
  Each processor element is given an integer number for identification, in order,
In each processor element
A connection line part that forms an integer number for identification with VCC and GND, and a logic circuit part that captures a mask signal for the identification number for identification constitutes a mask circuit for the identification number for identification, and the connection Each of the bit signals constituting the line part and each bit of the mask signal is an input of an individual logic circuit constituting the logic circuit part,
Furthermore,
With the mask signal specified by the global processor, the logic circuit part of each processor element masks and outputs the bit specified by the mask signal of the integer number for identification with the contents of the mask signal,
Accordingly, in accordance with the reference number for identification for each processor element, the combination of the portion that is output with the mask in the output of the logic circuit portion and the portion that is output without being masked is the cycle Rules,
Furthermore,
  Each processor element aboveOf the above mask circuitAnd the data generated inIn global processorsThe numerical value specified by the instruction code is compared simultaneously across all processor elements, and the comparison result isFor each processor elementThe SIMD type microprocessor is characterized in that it is set in a flag included in the arithmetic control register.
[0008]
  According to the third aspect of the present invention, there is provided a SIMD type microprocessor.
  Each processor element has an operation control register that determines whether or not to store the operation result of the arithmetic logic unit included in the processor element in a predetermined general-purpose register,
  Each processor element is given an integer number for identification, in order,
Each processor element has a connection line part formed by VCC and GND, and a multiplexer part connected to the connection line part for receiving an input value selection signal designated by a global processor,
The connection line portion is divided into a plurality of partial connection line portions, the division being common and fixed throughout the processor element, each partial connection portion having one or a plurality of bit signal portions,
Each partial connection line portion is formed so as to output a bit signal that varies periodically by being connected to VCC and GND, corresponding to an integer number for identification sequentially attached to the processor element,
Furthermore,
In response to an input value selection signal designated by the global processor, the multiplexer unit selects a common connection line part that constitutes the connection line part of each processor element and outputs the selected partial connection part. Output signal,
Thereby, corresponding to the serial number for identification for each processor element, the output of the multiplexer unit has a periodic rule,
Furthermore,
  Each processor element aboveAn output value having a periodic rule generated by the multiplexer unit ofWhen,In global processorsThe numerical value specified by the instruction code is compared simultaneously across all processor elements, and the comparison result isFor each processor elementThe SIMD type microprocessor is characterized in that it is set in a flag included in the arithmetic control register.
[0009]
  The SIMD type microprocessor according to claim 4 according to the present invention includes:
  Each processor element has an operation control register that determines whether or not to store the operation result of the arithmetic logic unit included in the processor element in a predetermined general-purpose register,
  Each processor element is given an integer number for identification, in order,
In each processor element
The connection line portion and the logic circuit portion that captures the mask signal constitute a bit pattern data output circuit, and each of the bit signals constituting the connection line portion and each bit of the mask signal constitutes a logic circuit portion. It is an input to an individual logic circuit,
The connection line part is divided into individual connection lines, this division being common and fixed throughout the processor element,
Each individual connection line is formed to output a periodically varying bit signal by connection of VCC or GND in correspondence with an integer number for identification sequentially given to the processor elements.
Furthermore,
With the mask signal specified by the global processor, the logic circuit portion of each processor element masks the specified bit with the content of the mask signal and outputs it,
Accordingly, in accordance with the reference number for identification for each processor element, the combination of the portion that is output with the mask in the output of the logic circuit portion and the portion that is output without being masked is the cycle Rules,
Furthermore,
  Each processor element aboveBit pattern data output circuitData generated inIn global processorsThe numerical value specified by the instruction code is compared simultaneously across all processor elements, and the comparison result isFor each processor elementThe SIMD type microprocessor is characterized in that it is set in a flag included in the arithmetic control register.
[0013]
DETAILED DESCRIPTION OF THE INVENTION
DESCRIPTION OF THE PREFERRED EMBODIMENTS Preferred embodiments according to the present invention will be described below with reference to the drawings.
[0014]
FIG. 1 is a block diagram showing a schematic configuration of a general SIMD type microprocessor 2 including the present invention. From a global processor (hereinafter referred to as GP) 4 that mainly controls the entire processor 2, and a processor element 3 that mainly inputs data from an external input / output device, performs data processing, and outputs data to the external input / output device. Composed. A plurality of processor elements 3 are prepared for simultaneously processing a plurality of data. In FIG. 1, a SIMD type microprocessor 2 is configured by one GP 4 and 256 processor elements 3.
[0015]
FIG. 2 is a block diagram showing a more detailed configuration of the SIMD type microprocessor 2 according to the present invention. As shown in the figure, GP4 is
A program RAM 10 for storing a program composed of instruction codes;
A data RAM 12 for storing calculation data in GP4;
A sequential unit (SCU) 9 that decodes the program and sends various control signals to various blocks;
A plurality of general purpose registers (G0 to G3) for storing data;
A program counter (PC) 14 that holds the address of the program to send the instruction code of the program to the SCU 9;
A stack pointer (SP) 24 for storing the address of the data memory in order to form a stack in the data memory;
-When performing subroutine processing in the middle of a program, a branch occurs, but a plurality of link registers (LS, LI, LN) for storing addresses before branching;
An arithmetic and logic unit (ALU) 11 that performs an arithmetic and logical operation on any combination of data in data memory, numeric (immediate) data described in an instruction code, or data stored in a general-purpose register;
A processor status register (not shown) that holds the state of the processor;
An interrupt control circuit (not shown) for controlling hardware interrupts and software interrupts;
An external I / O control circuit (not shown) that is directly connected to the external input / output and controls input / output of data from the outside.
including.
[0016]
Although not shown in FIG. 2, the SCU 9 decodes the GP instruction and generates a control signal mainly in each block in the GP, and decodes the processor element instruction and mainly in each block in the processor element. And a processor element instruction decoder for generating a control signal. That is, the instruction code related to this processor is a GP instruction that mainly controls each block in GP4, determines a program sequence, and processes common data to be transferred to processor element 3 by ALU11 in GP4. These are classified into processor element instructions for processing data input at a time from the external input / output for each processor element 3.
[0017]
As shown in FIG. 1, each processor element 3 includes a register file 6 that temporarily holds input / output data from the outside, and an operation array for performing data processing of arithmetic logic operations and bit operations in the processor element 3. 8 is included. Further, as shown in FIG. 2, the register file 6 includes 32 8-bit registers 34 from R0 to R31, for example. Data is transferred from these registers 34 to the operation array 8, and conversely, data is transferred from the operation array 8 and stored in the register 34. The bus between the register 34 and the arithmetic array 6 is an 8-bit bidirectional bus.
[0018]
Further, as shown in FIG. 2, the single arithmetic array 8 is an arithmetic unit,
A shift / extension unit 44 that shifts data from the register file 6 to perform signed extension or unsigned extension to process the data into 16-bit data;
For example, a plurality of general purpose registers such as A register 36 and F register 40,
An arithmetic logic unit (ALU) 36 that processes the data from the register file 6 via the shift / extension unit 44 to make one input and the other input from the A register 36;
The outputs from the PE number mask circuit, fixed value selection circuit, and n-th bit pattern data output circuit according to the present invention are input to the A register 38 and the T register 54 (described later). Connected selection circuit 35 and
including. The output of the arithmetic logic unit (ALU) 36 is set so as to be temporarily stored in the A register 36 or the F register 40, but data is transferred from the A register 36 to a predetermined one register 34 of the register file 6. Is also possible.
[0019]
The arithmetic array 8 includes an arithmetic control register 54 called “T register” as will be described later. The output from the ALU 36 is controlled by the T register 54 to be written to the A register 36 or the F register 40. For example, according to the state of a predetermined 1 bit in the arithmetic control register (T register) 54, if “1”, writing to the A register 36 or the F register 54 is performed, and if “0”, it is not performed. Such control is performed.
[0020]
FIG. 3 is a block diagram showing the function of the multiplexer that connects the register 34 of the register file 6 and the operation array 8. The multiplexers provided in the processor elements of PEi (i = 0, 1, 2,... 255) are 7 to 1 (7 to 1) multiplexers, PEi-3 (3 left neighbors of PEi), PEi-2 (PEi 2), PEi-1 (one left next to PEi), PEi, PEi + 1 (one right next to PEi), PEi + 2 (two right next to PEi), PEi + 3 (three right next to PEi) It is set so that data from the register file 6 of the processor element 3 can be input / output. This function is referred to as a PE shift function. The data selected by the multiplexer is transferred to the shift / extension unit 44 of the arithmetic array 8.
[0021]
Here, a name including the number of the processor element 3 is defined. As shown in FIG. 2, the SIMD type microprocessor 2 according to the present invention is provided with 256 processor elements 3, and each of the processor elements 3 (from the left side in the figure) PE0, PE1, PE2 , PE3,..., PE254, PE255, and so on, are defined as processor element numbers (PE numbers).
[0022]
<< First Embodiment >>
FIG. 4 is a circuit diagram of a PE (processor element) number mask circuit according to the first embodiment of the present invention. In the PE number mask circuit, a logic circuit that takes in a mask control signal (ie, PE number mask signal) from GP4 is inserted into a connection line for inputting a PE number (which is a prior art) to a predetermined general-purpose register. It is formed by. As will be described later, in the circuit configuration of FIG. 4, masking is performed with “0”.
[0023]
In each PEi (i = 0, 1, 2,... 255), a connection line unit 50 that forms each PE number and a logic circuit (AND circuit) unit 51 that captures a PE number mask signal are combined and installed. Has been. The output from there is connected to a selection circuit 35 (see FIG. 2) installed for each processor element 3, as will be described later. The output is stored in the A register 38 through the selection circuit 35, for example.
[0024]
It has been possible in the past to set the PE number in the A register 38 by using the connecting line portion 50 that forms each PE number (which is a conventional technique). For example, it is assumed that the above function is realized by executing an instruction “LDPN” (Load PE Number). Here, even with the circuit according to the first embodiment of the present invention, the same function is realized, that is, the transmission of each PE number to each selection circuit 35 is realized by using the instruction “LDPN”. Can be set to As is apparent from FIG. 4, the PE number mask signal when the LDPN instruction is used (8 bits) is all “1”. With this setting, data representing the PE number in a pattern formed by VCC and GND is input to the selection circuit 35 of each processor element 3.
[0025]
Specifically, the data input to the selection circuit 35 is
-PE0, PE1, PE2, ... PE255 in this order
・ 0, 1, 2, ... 255
The value of
[0026]
Furthermore, in the circuit according to the first embodiment of the present invention, the input data can be masked by setting the bit designated by the instruction to the SIMD type microprocessor 2 to “0”. As an instruction for performing such processing, an “LDNM” (Load PE Number Masking) instruction is prepared. The LDNM instruction masks output data by designating a mask pattern with an immediate value. The immediate value is taken into the circuit of FIG. 4 as a PE mask signal. The LDNM instruction is described as follows.
[0027]
LDNM / 0 # 00000011b
[0028]
In the above description, “b” at the end of “00000011b” indicates binary notation. In the above instruction, the output values from bit 3 to bit 7 of the PE number are masked. “/ 0” is an optional description representing a mask by “0”.
[0029]
Therefore, the data input to each selection circuit 35 is
-PE0, PE1, PE2, PE3, PE4, PE5, PE6, ... PE254, PE255 in this order,
・ 0, 1, 2, 3, 0, 1, 2, ... 2, 3
The value of
[0030]
In the circuit according to the first embodiment of FIG. 4, an AND circuit is used, but it may be assumed that this is replaced with an OR circuit. That is, in each PEi (i = 0, 1, 2,... 255), a connection line portion 50 that forms each PE number and a logic circuit (OR circuit) portion that captures a PE number mask signal (not shown). Will be installed in combination. At this time, in the circuit configuration described above (FIG. 4), masking is performed with “0”. However, in the case of a circuit that is replaced with an OR circuit, masking with “1” is performed. The instructions are written as follows:
[0031]
LDNM / 1 # 11111100b
[0032]
In the above description, the input values from bit 3 to bit 7 of the PE number are masked with “1”. / 1 is an optional description representing a mask by “1”.
[0033]
At this time, the data input to each selection circuit 35 is:
-PE0, PE1, PE2, PE3, PE4, PE5, PE6, ... PE254, PE255 in this order,
252 (11111100b), 253 (11111101b), 254 (11111110b), 255 (11111111b), 252, 253, 254, ... 254, 255
The value of
[0034]
By using the circuit according to the first embodiment of the present invention shown in FIG. 4, a control line corresponding to a bit of “0” is masked by a mask control signal (PE number mask signal), and a predetermined value is masked. It is possible to set (form) data represented by only this bit and having repetitive regularity with one instruction. For example, by masking all the upper 6 bits, only the lower 2 bits are valid, and for each selection circuit 35 of the processor element 3 of PE0, PE1, PE2, PE3, PE4, PE5, PE6,.
・ 0, 1, 2, 3, 0, 1, 2, 3, ...
It is possible to output a repeated value with regularity in one instruction. In the circuit of FIG. 4, even if all the AND circuits are OR circuits, the rules for the selection circuits 35 of the processor elements 3 of PE0, PE1, PE2, PE3, PE4, PE5, PE6,. It is possible to output a repeated value with a single instruction. However, at this time, the mask is made by “1”.
[0035]
When using the prior art, if the PE number is once set in the A register 38 by the LDPN instruction, and the remainder when the value of the A register 38 is divided by 4 is also set in the A register 38, the same as in FIG. Result is obtained. But,
・ One instruction cycle with LDPN instruction
-1 instruction cycle with division instruction (assuming there is a multiplier / divider)
A total of two instruction cycles are required. However, if the multiplier / divider is set in all the processor elements 3 of the SIMD type microprocessor 2, an enormous circuit scale is required. Since a multiplier / divider is not set in the normal SIMD type microprocessor 2, division is performed by subtracting up to the number of bits of the dividend using the ALU 36. If the A register 38, which is a general-purpose register, is 16 bits, for example, subtraction is required at least 16 times (actually, setting before division requires several instruction cycles). Here, it takes 16 instruction cycles, and the total is 18 instruction cycles at the shortest.
[0036]
As is apparent from the above, a considerable number of instruction cycles can be reduced by the circuit according to the first embodiment of the present invention.
[0037]
<< Second Embodiment >>
FIG. 5 is a circuit diagram of a fixed value selection circuit according to the second embodiment of the present invention. The fixed value selection circuit has a cycle variation every n (n is a natural number), and inputs a numerical value monotonously increasing from 0 to 1 within one cycle to the selection circuit 35 (described later). It is a circuit that outputs under the selection control by. In the circuit shown in FIG. 5, 3, 5, and 7 are assumed as the value of n.
[0038]
As shown in FIG. 5, each processor element 3 includes a separate connection line portion 50 ′ and a multiplexer portion 51 ′. The connecting line section 50 'generates a 9-bit signal, but the left 2 bits have periodic fluctuations every "3", and the middle 3 bits have periodic fluctuations every "5". The connection lines are set so that the 4 bits have periodic fluctuations every "7". As is apparent from FIG. 5, every third periodic variation is
・ PE0, PE1, PE2, PE3, PE4, PE5, PE6, ...
・ 0, 1, 2, 0, 1, 2, 0, ...
It becomes. Periodic fluctuation every 5th
PE0, PE1, PE2, PE3, PE4, PE5, PE6,. . . In the order
・ 0, 1, 2, 3, 4, 0, 1, ...
It becomes. Periodic fluctuation every 7th
-PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8,.
・ 0, 1, 2, 3, 4, 5, 6, 0, 1, ...
It becomes.
[0039]
Which period variation output is selected is given by an input value selection signal. The input value selection signal gives an instruction to the multiplexer unit 51 ′ in each processor element 3. The next instruction “LDRN” (Load Repeating Number) is set as an instruction related to the above-described extraction of the period variation.
[0040]
LDRN # 3
[0041]
In the above-described instruction, the selection circuit 35 of each processor element 3 has a period variation every third, and a numerical value that increases monotonically from 0 to 2 within one period follows the order of PE numbers of the processor element 3. Will be output.
[0042]
If the fixed value selection circuit according to the second embodiment of the present invention shown in FIG. 5 is used, the numerical value input to the selection circuit 35 (A register 38) as described above is performed in one instruction cycle. Can do. Here, it is known that the numbers 3, 5, and 7 shown in the above example are values that are frequently used in image processing.
[0043]
<< Third Embodiment >>
FIG. 6 is a circuit diagram of an n-th bit pattern data output circuit according to the third embodiment of the present invention. The n-bit bit pattern data output circuit inserts a logic circuit that takes in a bit mask signal from GP4 to a connection line that sets “1” every n (in the order of PE numbers) in individual bits. It is formed.
[0044]
In each PEi (i = 0, 1, 2,... 255), a connection line portion 50 for setting every n to “1” in each bit and a logic circuit (AND circuit) portion for taking in a bit mask signal 51 ″ are installed in combination. The output from there is connected to a selection circuit 35 (see FIG. 2) installed in each processor element 3 in the same manner as the circuit according to the first embodiment and the circuit according to the second embodiment. The output is stored in the A register 38 through the selection circuit 35, for example.
[0045]
Each PEi connection line section 50 "includes 8 individual bits. For example, bit 0 is" every 2 ", bit 1 is" every 3 ", bit 2 is" every 5 ", and bit 3 is" every 7 ". , Bit 4 is “every 11”, bit 5 is “every 13”, bit 6 is “every 17”, and bit 7 is “every 23”. If each bit has a PE number corresponding to each periodic characteristic, the connection line portion 50 ”of each PEi is set so that the bit is“ 1 ”(that is, the corresponding bit is connected to the VCC). (FIG. 6) That is,
Bit 0 having every other periodic characteristic is PE0, PE2, PE4, PE6, PE8,.
-Bit 1 having periodic characteristics of every third is PE0, PE3, PE6, PE9, PE12, ...
-Bit 2 having a periodic characteristic of every 5 is in PE0, PE5, PE10, PE15, PE20, ...
Connected to VCC.
[0046]
The next instruction “LDRB” (Load Repeating Bit) is prepared as an instruction relating to the extraction of the setting contents of the connection line portion 50 ″ of each PEi set as described above.
[0047]
LDRB
[0048]
By this instruction, all the setting contents of the connection line portion 50 ″ of each PEi are input to, for example, the selection circuit 35 (or the A register 38).
-PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11,.
11111111b (binary notation; the same applies hereinafter), 00000000b, 00000001b, 00000010b, 00000001b, 00000100b, 00000011b, 00001000b, 00000001b, 00000110b, 00000001b, ...
It becomes.
[0049]
However, as described above, since the logic circuit for taking in the bit mask signal from GP4 is inserted into the connection line, the selection circuit 35 is set by setting the bit specified in the instruction code to “0”. Input data to (or A register 38) may be masked. When performing the mask processing, the instruction is described as follows. The mask pattern is designated as an immediate value and is taken into the circuit of FIG. 6 as a bit mask signal to mask input data to the selection circuit 35 (or A register 38).
[0050]
LDRB / 0 # 00000100b
[0051]
In the above instruction, only the output data related to the PE in which “1” is set in bit 2 has a numerical value of “00000100b”. For example, “00000100b” is set in the A register 38.
PE0, PE5, PE10, PE15, PE20,. . .
It is. For other PEs, the value is “00000000b”.
[0052]
In the n-bit bit pattern data output circuit according to the third embodiment, the numerical value input to the selection circuit 35 (A register 38) as described above can be performed in one instruction cycle.
[0053]
<< Fourth Embodiment >>
A SIMD type microprocessor 2 according to a fourth embodiment of the present invention will be described.
[0054]
In the “LDPM” instruction according to the first embodiment of the present invention, when the immediate value (PE number mask signal) is a numerical value (# 11111111b) that does not mask all, the PE number is directly selected by the selection circuit 35 (or A register 38). Is input. In addition, as described above, the PE number is not changed by using the connection line for inputting the PE number to a predetermined general-purpose register or the like without inserting a logic circuit for taking in the PE number mask signal from GP4. The data is input to the selection circuit 35 (or A register 38).
[0055]
Therefore, the selection circuit 35 includes
-PE0, PE1, PE2, ... PE255 in this order
・ 0, 1, 2,. . . 255
The value of is entered.
[0056]
In each processor element 3, the value input to the selection circuit 35 is compared with the immediate value specified by the instruction (to the SIMD type microprocessor 2) in the comparator 80 (FIG. 7) provided in the selection circuit 35. The result is stored in a bit at a predetermined position of the T register (arithmetic control register) 54. By storing the result in the T register 54, the calculation after the next instruction is performed only in one specific processor element 3 among the 256 processor elements 3, and the other processor elements 3 are not operated. You can set it.
[0057]
FIG. 7 shows a schematic circuit block diagram of the selection circuit 35 according to the present invention. Output data from the PE number mask circuit, the fixed value selection circuit and the n-th bit pattern data output circuit shown in FIGS. 4, 5, and 6 is connected to the selection circuit 35 in the arithmetic array 8 shown in FIG. The input data selection signal 2 which is a control signal from the GP 4 is selected by the multiplexer 78, and one of the three data is input to the A register 38. Also, the selected 1 data is compared with the immediate data IMM2 in the instruction code by the comparator 80, and when the result is coincident, “1” is output. If they do not match, “0” is output.
[0058]
Here, the T register 54 according to the present invention will be described. As shown in FIG. 2, each processor element 3 is equipped with an operation control register (T register) 54 for specifying an execution condition. FIG. 8 is an example of a circuit block diagram of the T register 54. In FIG. 8, the T register 54 includes 8-bit registers (T0, T1,... T7), and each 1-bit register is controlled separately. Therefore, eight control patterns can be held by one processor element 3.
[0059]
Each bit in the T register 54 can be controlled to invalidate / validate the execution of the operation of each processor element 3 and to select only a specific processor element 3 as an operation target. For example, the following instructions are assumed.
[0060]
ADD / T1 # 12
[0061]
This instruction is an addition instruction, the value of the A register 38 and the immediate value “12” are added, and the result is stored in the A register 38. In this instruction, by describing the execution control option “/ T1”, only the processor element 3 whose T1 (bit) flag value is “1” in the T register 38 is sent from the ALU 36 to the A register 38. Data is stored. Data is not stored in the A register 54 of the processor element 3 whose T1 flag is “0”.
[0062]
In the example of FIG. 8, the input to the T register 54 is
An input from the overflow flag (V) and carry flag (C) generated in the ALU 36 of the arithmetic unit 6 in the PE 3
-Input from the result of OR operation to the result of mask operation by immediate value IMM2 to all T flags,
Input from the storage means 2 shown in FIG.
・ Input from comparator 80 output in selection circuit 35 of FIG.
Etc.
[0063]
According to the SIMD type microprocessor 2 according to the fourth embodiment of the present invention described above, it is possible to perform the process of performing the operation only on the processor element 3 having a specific PE number with a small number of instructions. According to the conventional technique, first, “0” is set to the T registers 54 of all the processor elements 3, and further, “1” is set to the T registers 54 of the processor elements 3 that perform the operation. However, the number of instructions inevitably increases as compared with the fourth embodiment of the present invention.
[0064]
<< Fifth Embodiment >>
A SIMD type microprocessor 2 according to a fifth embodiment of the present invention will be described.
[0065]
In each processor element 3 of the SIMD type microprocessor 2 according to the fifth embodiment, the (data) value connected to the selection circuit 35 from the PE number mask circuit according to the first embodiment is transferred to the selection circuit 35. The provided comparator 80 (FIG. 7) compares the immediate data specified in the instruction code and stores the result in a bit at a predetermined position of the T register 54. By storing the result in the T register 54, it is possible to perform control such that only the processor element 3 having the PE number every “power of 2” is executed in the calculation after the next instruction.
[0066]
The output of the PE number mask circuit shown in FIG. 4 is input to the selection circuit 35 of FIG. 7, and the selection circuit 35 executes an “LDTM” (Load to Tregister Masked PE Number) instruction (prepared in advance). Thus, the output data of the PE number mask circuit is selected by the input data selection signal 2. Further, when the LDTM instruction is executed, immediate data (one of them) is input to the IMM 2, and the output data of the PE number mask circuit and the IMM 2 are compared by the comparator 80. If they match, the output of the comparator 80 of the processor element 3 becomes “1”, and the processor element 3 that does not match becomes “0”. The following instruction is an example of an instruction to be executed.
[0067]
LDTM / T2 # 00000011b, # 1
[0068]
In the above instruction, the first operand of the immediate operand is a mask pattern. The second operand is a comparison value. However, the mask pattern is expressed in binary notation, and the comparison value is expressed in decimal.
・ PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, ...
The result value masked by
・ 0, 1, 2, 3, 0, 1, 2, 3, ...
It is a repetitive value like
・ PE1, PE5, PE9, ...
"1" is set in the T2 flag of the T register 54. “0” is set in the T2 flag of the T register 54 of another PE. As a result, if the T2 flag of the T register 54 is used for execution control in the subsequent instructions, “2” starts from a specific PE, ie, PE1.2The operation of only the processor element 3 having every other PE number can be executed.
[0069]
<< Sixth Embodiment >>
A SIMD type microprocessor 2 according to a sixth embodiment of the present invention will be described.
[0070]
In each processor element 3 of the SIMD type microprocessor 2 according to the sixth embodiment, a (data) value connected to the selection circuit 35 from the fixed value selection circuit according to the second embodiment is transferred to the selection circuit 35. The provided comparator 80 (FIG. 7) compares the immediate data specified in the instruction code and stores the result in a bit at a predetermined position of the T register 54. By storing the result in the T register 54, it is possible to perform control such that only the processor element 3 having a PE number every specific numerical value such as 3, 5, 7 is executed in the calculation after the next instruction. it can.
[0071]
The output of the fixed value selection circuit shown in FIG. 5 is input to the selection circuit of FIG. 7, and the selection circuit 35 executes an “LDTN” (Load to T register Predefined Number) instruction (prepared in advance). The output data of the fixed value selection circuit is selected by the input data selection signal 2. Furthermore, when the LDTN is executed, immediate data (one of them) is input to the IMM 2, and the output data of the fixed value selection circuit and the IMM 2 are compared by the comparator 80. If they match, the output of the comparator 80 of the processor element 3 becomes “1”, and the processor element 3 that does not match becomes “0”. The following instruction is an example of an instruction to be executed.
[0072]
LDTN / T2 # 3, # 2
[0073]
In the above instruction, the first operand of the immediate operands is a selected fixed value. The second operand is a comparison value.
・ PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, ...
The resulting value is
0, 1, 2, 0, 1, 2, 0, 1,. . .
It is a repetitive value like
・ PE2, PE5, PE8, ...
"1" is set in the T2 flag of the T register 54. “0” is set in the T2 flag of the T register 54 of another PE. As a result, if the T2 flag of the T register 54 is used for execution control in subsequent instructions, only the processor element 3 having a PE number starting with PE2 and having every other “3” PE number can be executed.
[0074]
<< Seventh Embodiment >>
A SIMD type microprocessor 2 according to a seventh embodiment of the present invention will be described.
[0075]
In each processor element 3 of the SIMD type microprocessor 2 according to the seventh embodiment, the (data) value connected to the selection circuit 35 from the n-th bit pattern data output circuit according to the third embodiment is selected. The comparator 80 (FIG. 7) provided in the circuit 35 compares it with the immediate data specified in the instruction code, and stores the result in a bit at a predetermined position of the T register 54. By storing the result in the T register 54, the control is executed so that only the processor element 3 having a PE number every specific numerical value such as 2, 3, 5, 7, 11 is executed in the operation after the next instruction. It can be performed.
[0076]
The output of the n-bit pattern data output circuit shown in FIG. 6 is output to the selection circuit 35 of FIG. 7, and the selection circuit 35 executes an “LDTB” (Load to T register Bit Number) instruction (prepared in advance). As a result, the output data of the n-th bit pattern data output circuit is selected by the input data selection signal 2. Further, when the LDTB instruction is executed, immediate data (one of them) is input to the IMM 2, and the output data of the n-th bit pattern data output circuit is compared with the IMM 2 by the comparator 80. If they match, the output of the comparator of the processor element 3 becomes “1”, and the processor element 3 that does not match becomes “0”. The following instruction is an example of an instruction to be executed.
[0077]
LDTB / T2 # 00000010b, # 1
[0078]
In the above instruction, the first operand of the immediate operand is designated every n bits. The second operand is a comparison value.
・ PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, ...
The resulting value is
1, 0, 0, 1, 0, 0, 1, 0,. . .
It is a repetitive value like
・ PE0, PE3, PE6, ...
"1" is set in the T2 flag of the T register 54. “0” is set in the T2 flag of the T register 54 of another PE. As a result, if the T2 flag of the T register 54 is used for execution control in subsequent instructions, only the processor element 3 having a PE number starting from PE0 and having every other “3” PE number can be executed.
[0079]
【The invention's effect】
By using the present invention, it is possible to reduce the number of instruction execution cycles of instructions associated with image data processing. Therefore, the circuit that needs to be added is only a simple one.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a schematic configuration of a general SIMD type microprocessor;
FIG. 2 is a block diagram showing a more detailed configuration of a SIMD type microprocessor according to the present invention.
FIG. 3 is a block diagram illustrating a function of a multiplexer that connects a register of a register file and an arithmetic array;
FIG. 4 is a circuit diagram of a PE number mask circuit according to the first embodiment of the present invention.
FIG. 5 is a circuit diagram of a fixed value selection circuit according to a second embodiment of the present invention.
FIG. 6 is a circuit diagram of an n-th bit pattern data output circuit according to a third embodiment of the present invention.
FIG. 7 shows a schematic circuit block diagram of a selection circuit according to the present invention.
FIG. 8 is an example of a circuit block diagram of an arithmetic control register (T register).
[Explanation of symbols]
2 ... SIMD type microprocessor, 3 ... processor element, 4 ... global processor, 6 ... register file, 8 ... arithmetic array, 34 ... register, 35 ... arithmetic circuit, 36 ... ALU (arithmetic logic unit), 38 ... A register, 50, 50 ', 50 "... connection line part, 51, 51" ... logic circuit part, 51' ... multiplexer 54, T register (operation control register), 78, multiplexer, 80, comparator.

Claims (4)

全体制御を行うグローバルプロセッサと、複数のプロセッサエレメントを含むSIMD型マイクロプロセッサにおいて、
各プロセッサエレメントは、プロセッサエレメントに含まれる算術論理演算装置の演算結果を所定の汎用レジスタに格納する際の可否を決定するための値を有する演算制御レジスタを持ち、
各プロセッサエレメントには、識別のための整数番号が順に付されており、
上記の識別のための整数番号をVCCとGNDで形成する接続線部を有し、
更に、
上記の識別のための整数番号と、グローバルプロセッサにおける命令コードにより指定された数値を、全プロセッサエレメントに渡って同時に比較し、比較結果を各プロセッサエレメントの上記演算制御レジスタに含まれるフラグに設定することを特徴とするSIMD型マイクロプロセッサ。
A global processor that performs overall control, in SIMD microprocessor including a plurality of processor elements,
Each processor element has an operation control register having a value for determining whether or not to store the operation result of the arithmetic logic unit included in the processor element in a predetermined general-purpose register,
Each processor element is given an integer number for identification, in order,
It has a connecting line part that forms an integer number for the above identification with VCC and GND,
In addition,
The integer number for identification and the numerical value specified by the instruction code in the global processor are simultaneously compared across all the processor elements, and the comparison result is set in the flag included in the arithmetic control register of each processor element. SIMD type microprocessor characterized by the above.
全体制御を行うグローバルプロセッサと、複数のプロセッサエレメントを含むSIMD型マイクロプロセッサにおいて、
各プロセッサエレメントは、プロセッサエレメントに含まれる算術論理演算装置の演算結果を所定の汎用レジスタに格納する際の可否を決定するための値を有する演算制御レジスタを持ち、
各プロセッサエレメントには、識別のための整数番号が順に付されており、
各々のプロセッサエレメントでは、
識別のための整数番号をVCCとGNDで形成する接続線部と、識別のための整理番号に対するマスク信号とを取り込む論理回路部が、識別のための整理番号に対するマスク回路を構成し、上記接続線部を構成するビット信号の夫々と上記マスク信号の各ビット夫々が、論理回路部を構成する個別の論理回路の入力となっており、
更に、
グローバルプロセッサから指定されるマスク信号により、各プロセッサエレメントの論理回路部は、識別のための整数番号の、上記マスク信号により指定されたビットを、上記マスク信号の内容でマスクして出力し、
これにより、各プロセッサエレメントに対する識別のための整理番号に対応して、論理回路部の出力におけるマスクが為されて出力される部分とマスクが為されずに出力される部分との組み合わせが、周期的規則を有しており、
更に、
上記の各プロセッサエレメントの上記マスク回路にて生成されたデータと、グローバルプロセッサにおける命令コードにより指定された数値を全プロセッサエレメントに渡って同時に比較し、比較結果を各プロセッサエレメントの上記演算制御レジスタに含まれるフラグに設定することを特徴とするSIMD型マイクロプロセッサ。
A global processor that performs overall control, in SIMD microprocessor including a plurality of processor elements,
Each processor element has an operation control register having a value for determining whether or not to store the operation result of the arithmetic logic unit included in the processor element in a predetermined general-purpose register,
Each processor element is given an integer number for identification, in order,
In each processor element
A connection line part that forms an integer number for identification with VCC and GND, and a logic circuit part that captures a mask signal for the identification number for identification constitutes a mask circuit for the identification number for identification, and the connection Each of the bit signals constituting the line part and each bit of the mask signal is an input of an individual logic circuit constituting the logic circuit part,
Furthermore,
With the mask signal specified by the global processor, the logic circuit part of each processor element masks and outputs the bit specified by the mask signal of the integer number for identification with the contents of the mask signal,
Accordingly, in accordance with the reference number for identification for each processor element, the combination of the portion that is output with the mask in the output of the logic circuit portion and the portion that is output without being masked is the cycle Rules,
In addition,
The data generated by the mask circuit of each processor element described above and the numerical value specified by the instruction code in the global processor are simultaneously compared across all the processor elements, and the comparison result is stored in the arithmetic control register of each processor element. A SIMD type microprocessor characterized in that the flag is set to an included flag.
全体制御を行うグローバルプロセッサと、複数のプロセッサエレメントを含むSIMD型マイクロプロセッサにおいて、
各プロセッサエレメントは、プロセッサエレメントに含まれる算術論理演算装置の演算結果を所定の汎用レジスタに格納する際の可否を決定する演算制御レジスタを持ち、
各プロセッサエレメントには、識別のための整数番号が順に付されており、
各々のプロセッサエレメントは、VCCとGNDで形成する接続線部と、該接続線部に繋がりグローバルプロセッサから指定される入力値選択信号を受けるマルチプレクサ部を有し、
該接続線部は、複数の部分接続線部に分割され、この分割はプロセッサエレメント全体を通して共通かつ固定であり、各部分接続部は一つ又は複数のビット信号部を有し、
各部分接続線部は、プロセッサエレメントに順に付される識別のための整数番号に対応して、VCCとGNDに繋がることにより周期的に変動するビット信号を出力するように形成されており、
更に、
グローバルプロセッサから指定される入力値選択信号により、マルチプレクサ部は、各プロセッサエレメントの有する接続線部を構成する部分接続線部のうち共通のものを選択して、選択された部分接続部の出力する信号を出力し、
これにより、各プロセッサエレメントに対する識別のための整理番号に対応して、上記マルチプレクサ部の出力が、周期的規則を有しており、
更に、
上記の各プロセッサエレメントの上記マルチプレクサ部にて生成される周期的規則を有する出力値と、グローバルプロセッサにおける命令コードにより指定された数値を全プロセッサエレメントに渡って同時に比較し、比較結果を各プロセッサエレメントの上記演算制御レジスタに含まれるフラグに設定することを特徴とするSIMD型マイクロプロセッサ。
A global processor that performs overall control, in SIMD microprocessor including a plurality of processor elements,
Each processor element has an operation control register that determines whether or not to store the operation result of the arithmetic logic unit included in the processor element in a predetermined general-purpose register,
Each processor element is given an integer number for identification, in order,
Each processor element has a connection line part formed by VCC and GND, and a multiplexer part connected to the connection line part for receiving an input value selection signal designated by a global processor,
The connection line portion is divided into a plurality of partial connection line portions, the division being common and fixed throughout the processor element, each partial connection portion having one or a plurality of bit signal portions,
Each partial connection line portion is formed so as to output a bit signal that varies periodically by being connected to VCC and GND, corresponding to an integer number for identification sequentially attached to the processor element,
Furthermore,
In response to an input value selection signal designated by the global processor, the multiplexer unit selects a common connection line part that constitutes the connection line part of each processor element and outputs the selected partial connection part. Output signal,
Thereby, corresponding to the serial number for identification for each processor element, the output of the multiplexer unit has a periodic rule,
In addition,
The output value having a periodic rule generated in the multiplexer unit of each processor element is compared with the numerical value specified by the instruction code in the global processor simultaneously over all the processor elements, and the comparison result is compared with each processor element. A SIMD type microprocessor characterized in that it is set in a flag included in the arithmetic control register.
全体制御を行うグローバルプロセッサと、複数のプロセッサエレメントを含むSIMD型マイクロプロセッサにおいて、
各プロセッサエレメントは、プロセッサエレメントに含まれる算術論理演算装置の演算結果を所定の汎用レジスタに格納する際の可否を決定する演算制御レジスタを持ち、
各プロセッサエレメントには、識別のための整数番号が順に付されており、
各々のプロセッサエレメントでは、
接続線部と、マスク信号を取り込む論理回路部が、ビットパターンデータ出力回路を構成し、上記接続線部を構成するビット信号の夫々と上記マスク信号の各ビット夫々が、論理回路部を構成する個別の論理回路の入力となっており、
接続線部は、個別の接続線に分割され、この分割はプロセッサエレメント全体を通して共通かつ固定であり、
各個別の接続線は、プロセッサエレメントに順に付される識別のための整数番号に対応して、周期的に変動するビット信号を、VCC若しくはGNDの接続により出力するように形成されており、
更に、
グローバルプロセッサから指定されるマスク信号により、各プロセッサエレメントの論理回路部は、指定されたビットを、上記マスク信号の内容でマスクして出力し、
これにより、各プロセッサエレメントに対する識別のための整理番号に対応して、論理回路部の出力におけるマスクが為されて出力される部分とマスクが為されずに出力される部分との組み合わせが、周期的規則を有しており、
更に、
上記の各プロセッサエレメントのビットパターンデータ出力回路にて生成されるデータと、グローバルプロセッサにおける命令コードにより指定された数値を全プロセッサエレメントに渡って同時に比較し、比較結果を各プロセッサエレメントの上記演算制御レジスタに含まれるフラグに設定することを特徴とするSIMD型マイクロプロセッサ。
A global processor that performs overall control, in SIMD microprocessor including a plurality of processor elements,
Each processor element has an operation control register that determines whether or not to store the operation result of the arithmetic logic unit included in the processor element in a predetermined general-purpose register,
Each processor element is given an integer number for identification, in order,
In each processor element
The connection line portion and the logic circuit portion that captures the mask signal constitute a bit pattern data output circuit, and each of the bit signals constituting the connection line portion and each bit of the mask signal constitutes a logic circuit portion. It is an input to an individual logic circuit,
The connection line part is divided into individual connection lines, this division being common and fixed throughout the processor element,
Each individual connection line is formed to output a periodically varying bit signal by connection of VCC or GND in correspondence with an integer number for identification sequentially given to the processor elements.
Furthermore,
With the mask signal specified by the global processor, the logic circuit portion of each processor element masks the specified bit with the content of the mask signal and outputs it,
Accordingly, in accordance with the reference number for identification for each processor element, the combination of the portion that is output with the mask in the output of the logic circuit portion and the portion that is output without being masked is the cycle Rules,
Furthermore,
The data generated by the bit pattern data output circuit of each processor element and the numerical value specified by the instruction code in the global processor are simultaneously compared across all the processor elements, and the comparison result is controlled by the arithmetic operation of each processor element. A SIMD type microprocessor characterized in that a flag included in a register is set.
JP2000297115A 2000-09-28 2000-09-28 Data setting device in SIMD processor Expired - Fee Related JP3971557B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000297115A JP3971557B2 (en) 2000-09-28 2000-09-28 Data setting device in SIMD processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000297115A JP3971557B2 (en) 2000-09-28 2000-09-28 Data setting device in SIMD processor

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2006258862A Division JP4398965B2 (en) 2006-09-25 2006-09-25 Data setting device in SIMD processor

Publications (2)

Publication Number Publication Date
JP2002108832A JP2002108832A (en) 2002-04-12
JP3971557B2 true JP3971557B2 (en) 2007-09-05

Family

ID=18779281

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000297115A Expired - Fee Related JP3971557B2 (en) 2000-09-28 2000-09-28 Data setting device in SIMD processor

Country Status (1)

Country Link
JP (1) JP3971557B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4516495B2 (en) * 2005-07-25 2010-08-04 株式会社リコー Data processing method in SIMD type microprocessor
CN112764810B (en) * 2021-01-20 2022-09-20 重庆邮电大学 Register control SIMD instruction expansion method applied to processor

Also Published As

Publication number Publication date
JP2002108832A (en) 2002-04-12

Similar Documents

Publication Publication Date Title
US5859789A (en) Arithmetic unit
JP3573755B2 (en) Image processing processor
US5778241A (en) Space vector data path
JP2008071130A (en) Simd type microprocessor
EP0766169B1 (en) Processor and control method for performing proper saturation operation
JPH07287567A (en) Arithmetical logical unit with plural independent segments and register that stores result from each fraction
JPH087083A (en) Three-input arithmetic and logic unit for formation of arithmetic and logic mixed combination
JPH087084A (en) Three-input arithmetic and logic unit for formation of sum of first boolean combination of first, second and third inputs plus second boolean combination of first, second and third inputs
JPH07210369A (en) Circuit and method for execution of parallel addition and average operation
JPH086544A (en) Rotary register for orthogonal data conversion
US8060726B2 (en) SIMD microprocessor, image processing apparatus including same, and image processing method used therein
JP3971557B2 (en) Data setting device in SIMD processor
JPS6027030A (en) Microprocessor
JP4398965B2 (en) Data setting device in SIMD processor
JP3652518B2 (en) SIMD type arithmetic unit and arithmetic processing unit
JP3971543B2 (en) SIMD type processor
JP3742745B2 (en) Arithmetic processing unit
JP4442907B2 (en) SIMD type processor
JP4516495B2 (en) Data processing method in SIMD type microprocessor
JP3837293B2 (en) SIMD type microprocessor having constant selection function
JP3895267B2 (en) SIMD processor
US5473774A (en) Method for conflict detection in parallel processing system
US7010562B2 (en) Arithmetic circuit
JP3594212B2 (en) Associative memory
JP4346039B2 (en) Data processing device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041206

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