JP3971557B2 - Data setting device in SIMD processor - Google Patents
Data setting device in SIMD processor Download PDFInfo
- 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
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
[0004]
The
[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
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
[0015]
FIG. 2 is a block diagram showing a more detailed configuration of the
A
A
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
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
[0017]
As shown in FIG. 1, each
[0018]
Further, as shown in FIG. 2, the single
A shift /
For example, a plurality of general purpose registers such as A
An arithmetic logic unit (ALU) 36 that processes the data from the
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
including. The output of the arithmetic logic unit (ALU) 36 is set so as to be temporarily stored in the
[0019]
The
[0020]
FIG. 3 is a block diagram showing the function of the multiplexer that connects the
[0021]
Here, a name including the number of the
[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
[0024]
It has been possible in the past to set the PE number in the
[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
[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
[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
[0031]
LDNM / 1 # 11111100b
[0032]
In the above description, the input values from
[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
・ 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
[0035]
When using the prior art, if the PE number is once set in the
・ 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
[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
・ 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
[0040]
[0041]
In the above-described instruction, the selection circuit 35 of each
[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
[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
[0045]
Each PEi
-
-
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
[0047]
LDRB
[0048]
By this instruction, all the setting contents of the
-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
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
[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
[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
[0058]
Here, the
[0059]
Each bit in the
[0060]
ADD /
[0061]
This instruction is an addition instruction, the value of the
[0062]
In the example of FIG. 8, the input to the
An input from the overflow flag (V) and carry flag (C) generated in the
-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
Etc.
[0063]
According to the
[0064]
<< Fifth Embodiment >>
A
[0065]
In each
[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
[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
[0069]
<< Sixth Embodiment >>
A
[0070]
In each
[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
[0072]
LDTN /
[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
[0074]
<< Seventh Embodiment >>
A
[0075]
In each
[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
[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
[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' ...
Claims (4)
各プロセッサエレメントは、プロセッサエレメントに含まれる算術論理演算装置の演算結果を所定の汎用レジスタに格納する際の可否を決定するための値を有する演算制御レジスタを持ち、
各プロセッサエレメントには、識別のための整数番号が順に付されており、
上記の識別のための整数番号を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.
各プロセッサエレメントは、プロセッサエレメントに含まれる算術論理演算装置の演算結果を所定の汎用レジスタに格納する際の可否を決定するための値を有する演算制御レジスタを持ち、
各プロセッサエレメントには、識別のための整数番号が順に付されており、
各々のプロセッサエレメントでは、
識別のための整数番号を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.
各プロセッサエレメントは、プロセッサエレメントに含まれる算術論理演算装置の演算結果を所定の汎用レジスタに格納する際の可否を決定する演算制御レジスタを持ち、
各プロセッサエレメントには、識別のための整数番号が順に付されており、
各々のプロセッサエレメントは、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.
各プロセッサエレメントは、プロセッサエレメントに含まれる算術論理演算装置の演算結果を所定の汎用レジスタに格納する際の可否を決定する演算制御レジスタを持ち、
各プロセッサエレメントには、識別のための整数番号が順に付されており、
各々のプロセッサエレメントでは、
接続線部と、マスク信号を取り込む論理回路部が、ビットパターンデータ出力回路を構成し、上記接続線部を構成するビット信号の夫々と上記マスク信号の各ビット夫々が、論理回路部を構成する個別の論理回路の入力となっており、
接続線部は、個別の接続線に分割され、この分割はプロセッサエレメント全体を通して共通かつ固定であり、
各個別の接続線は、プロセッサエレメントに順に付される識別のための整数番号に対応して、周期的に変動するビット信号を、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.
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)
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 |
-
2000
- 2000-09-28 JP JP2000297115A patent/JP3971557B2/en not_active Expired - Fee Related
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 |