JP2004062401A - Arithmetic processor and camera device using it - Google Patents

Arithmetic processor and camera device using it Download PDF

Info

Publication number
JP2004062401A
JP2004062401A JP2002218190A JP2002218190A JP2004062401A JP 2004062401 A JP2004062401 A JP 2004062401A JP 2002218190 A JP2002218190 A JP 2002218190A JP 2002218190 A JP2002218190 A JP 2002218190A JP 2004062401 A JP2004062401 A JP 2004062401A
Authority
JP
Japan
Prior art keywords
instruction
data
flag
register
selecting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002218190A
Other languages
Japanese (ja)
Inventor
Yuji Kiba
木庭 優治
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2002218190A priority Critical patent/JP2004062401A/en
Publication of JP2004062401A publication Critical patent/JP2004062401A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions

Abstract

<P>PROBLEM TO BE SOLVED: To provide an arithmetic processor capable of executing conditional branching and maximum or minimum value computation at a high speed. <P>SOLUTION: Instruction executing parts 10 of processor elements 13<SB>1</SB>-13<SB>n</SB>compare magnitudes of data inputted from data input ports 200, 201, and either of the output value of the comparison result and a value of a flag register 8<SB>1</SB>is selected according to the input value of an instruction code 203. Based on this result, one of the data input from the data input ports 200, 201 is selected and outputted from a data output port 204. Thus, for example, the procedure of executing a process "r2 = max (r0, r1)" for determining the greater of two figures r0, r1 and storing the result in r2 is described as "MAX r2, ro, r1," and can be executed in one instruction step. A MAX instruction is a maximum value instruction (an instruction to store the greater of the two figures r0, r1 in r2). <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、条件分岐(条件付き分岐命令)や最大値演算または最小値演算の処理を効率良く実行させるための演算プロセッサおよび当該演算プロセッサを用いたカメラ装置に関する。
【0002】
【従来の技術】
従来、SIMD(Single Instruction Multiple Data)型並列演算プロセッサでは、複数のデータに対して同じ演算を同時に実行することにより、演算処理を高速化している。すなわち、当該演算プロセッサでは、複数のプロセッサエレメントの各々において、1つの命令ストリームに対する処理を並列で行う構成であるため、そのままでは処理結果に依存してその後の処理が与えられるような命令ステップ(例えば、条件分岐の命令ステップ)を含む一連の命令ステップを、この1つの命令ストリームに沿って、各プロセッサエレメントにおいて並列に実行することができない。
【0003】
この問題を解決するため、文献:「Y.Fujita et al(NEC) “IMAP:Integrated Memory Array Processor”, Journal of Circuits, Systems and Computers, Vol.2, No.3, pp227−245, 1992」では、プロセッサエレメント毎に、命令バス上の命令ストリームに従って処理をするかどうかを表すマスクレジスタを設置し、命令バスに条件分岐のそれぞれの分岐先に相当する命令ストリームを時分割で流すことにより、条件分岐を実行している。すなわち、ハードウェアにおいて、この条件分岐を専門に行う回路を設ける構成とし、これにより条件分岐を実行し、その結果、分岐先が同じとなるプロセッサエレメント同士は並列に実行することができるようにして、条件分岐処理の高速化を実現している。
【0004】
従来のSIMD(Single Instruction Multiple Data)型並列演算プロセッサとしては、例えば図4に示すようなものがある。図4は、文献:「Y.Fujita et al(NEC) “IMAP:Integrated Memory Array Processor”, Journal of Circuits,Systems and Computers, Vol.2, No.3, pp227−245, 1992」におけるSIMD型並列演算プロセッサの主要な構成を示すブロック図である。但し、同図では、上記プロセッサの主要な構成要素として命令発行部900と演算処理部901のみを示している。
【0005】
図4に示すように、演算処理部901は複数のプロセッサエレメント903〜903を備えて構成されている。また、命令発行部900は、命令バス902を介して複数のプロセッサエレメント903〜903に接続されている。各プロセッサエレメント903〜903は、対応する汎用レジスタ906〜906と、マスクレジスタ907〜907と、演算実行部908〜908とを有している。
【0006】
以下、図4に示した従来の演算プロセッサにおいて、条件分岐を処理する場合の動作について説明する。図4に示す演算プロセッサでは、条件分岐(条件付き分岐命令の略語とする)を処理する場合に、各プロセッサエレメント903〜903において、マスクレジスタ907〜907がそれぞれ参照され、マスクレジスタ907〜907のうち、値が1となっているマスクレジスタに対応するプロセッサエレメントのみが命令バス902上の条件分岐を実行する。
【0007】
図5は、一般的な演算プロセッサにおける条件分岐の実行手順を説明するフローチャートである。図5のフローチャートに示す条件分岐の処理を、図4に示した従来の演算プロセッサで実行する場合、例えば、以下に示すような命令ステップ列となり、この場合、この条件分岐の処理に6命令ステップを要していることになる。
【0008】
CMP r0,r1
SETMR
MUL r2,r0,r3
INVMR
ADD r2,r1,r3
CLRMR
【0009】
ここで、r0〜r3はレジスタを表し、CMP命令は比較命令、MUL命令は乗算命令、ADD命令は加算命令を表し、SETMR命令、INVMR命令、CLRMR命令は、それぞれ比較命令の結果、フラグの値をマスクレジスタ407〜407にセットする命令、マスクレジスタ407〜407の値を反転する命令、マスクレジスタ407〜407の値をクリア(1をセット)する命令を表すものとする。
【0010】
まず、“CMP r0,r1”の命令ステップで、各プロセッサエレメントでは、r0とr1との大小関係を比較し、この比較結果(真偽にそれぞれ対応する“1”または“0”)を、SETMR命令によりマスクレジスタ407〜407にセットする。その結果、“CMP r0,r1”の命令ステップでの比較結果が真であったプロセッサエレメントのみが、対応するマスクレジスタに1がセットされて、次の“MUL r2,r0,r3”の命令ステップが実行されることになる。
【0011】
次に、その下に位置するINVMRの命令ステップにより、マスクレジスタ407〜407の値が反転されるため、その結果として、前述の比較結果が真であったプロセッサエレメントのマスクレジスタの値は0に反転され、これとは逆に、前述の比較結果が偽であったプロセッサエレメントのマスクレジスタの値は1に反転されるため、この時、1に反転されたプロセッサエレメントのみが次の“ADD r2,r1,r3”の命令ステップを実行することになる。最後にCLRMRの命令ステップにより、マスクレジスタ407〜407の値を全て1にクリア(リセット)し、通常処理に戻る。
【0012】
【発明が解決しようとする課題】
しかしながら、上記従来の演算プロセッサにあっては、マスクレジスタ407の値を設定するためにSETMR,INVMR,CLRMR等の分岐制御用の命令を実行する必要があり、実際に必要な演算処理の実行命令数に比較してSETMR等の分岐制御用命令の実行命令数の割合が多くなり、条件分岐処理の高速化を妨げるという問題点があった。この問題点は、分岐後の実行命令数が少ない条件分岐、すなわち規模の小さい条件分岐の場合には特に顕著な問題点となっていた。
【0013】
本発明は、上記従来の問題点に鑑みてなされたものであって、条件分岐を高速に実行可能な演算プロセッサおよび当該演算プロセッサを用いたカメラ装置を提供することを目的としている。また、最大値演算または最小値演算を高速に実行可能な演算プロセッサおよび当該演算プロセッサを用いたカメラ装置を提供することも目的としている。
【0014】
【課題を解決するための手段】
上記目的を達成するために、本発明に係る演算プロセッサは、条件分岐処理を行う演算プロセッサであって、演算を実行する演算実行手段と、前記演算実行手段で得られた演算結果を置数するためのレジスタ手段と、前記演算実行手段で得られた演算結果から生成されるフラグを格納するフラグレジスタ手段と、前記フラグレジスタ手段に格納されているフラグの中から選択されたフラグの値に応じて、前記レジスタ手段から入力された複数の入力データから1つを選択し、当該選択されたデータを前記レジスタ手段に出力する選択命令実行手段と、を備えている。したがって、データに依存して演算内容が変わる条件分岐処理を高速化することができる。
【0015】
また、本発明に係る演算プロセッサは、命令コードに基づいて、複数のデータの中から適当なデータを選択する演算プロセッサであって、演算を実行する演算実行手段と、前記演算実行手段で得られた演算結果を置数するためのレジスタ手段と、前記演算実行手段で得られた演算結果から生成されるフラグを格納するフラグレジスタ手段と、指示された命令コードに基づいて所定の処理を行う命令実行手段と、を備え、前記命令実行手段は、複数の入力データの値をそれぞれ比較して、前記複数の入力データの中で値が最大または最小のデータを示す情報を出力する比較手段と、指定された命令コードに応じて、前記比較手段から出力された情報または前記フラグレジスタ手段に格納されているフラグの中から選択されたフラグのいずれかを選択して出力する第1の選択手段と、前記第1の選択手段から出力された情報またはフラグに基づいて、前記レジスタ手段から入力された複数の入力データから1つを選択し、当該選択されたデータを前記レジスタ手段に出力する第2の選択手段と、を有している。したがって、僅かなハードウェアの追加で、データに依存して演算内容が変わる条件分岐処理または最大値演算若しくは最小値演算を高速化することができる。
【0016】
また、本発明に係る演算プロセッサは、前記指定された命令コードが、前記フラグレジスタ手段に格納されているフラグの中から選択されたフラグの値に応じて、前記複数の入力データから1つを出力するよう指示する命令コードである場合、前記第1の選択手段は、前記フラグレジスタ手段に格納されているフラグの中から選択されたフラグを出力し、前記第2の選択手段は、前記選択されたフラグの値に応じて、前記レジスタ手段から入力された複数の入力データから1つを選択する。したがって、データに依存して演算内容が変わる条件分岐処理を高速化することができる。
【0017】
また、本発明に係る演算プロセッサは、前記指定された命令コードが、前記レジスタ手段から入力された複数の入力データの中で値が最大のデータを出力するよう指示する命令コードである場合、前記比較手段は、前記複数の入力データの中で値が最大のデータを示す情報を出力し、前記第1の選択手段は、前記比較手段から出力された情報を出力し、前記第2の選択手段は、前記第1の選択手段から出力された情報が示すデータを選択し、前記指定された命令コードが、前記レジスタ手段から入力された複数の入力データの中で値が最小のデータを出力するよう指示する命令コードである場合、前記比較手段は、前記複数の入力データの中で値が最小のデータを示す情報を出力し、前記第1の選択手段は、前記比較手段から出力された情報を出力し、前記第2の選択手段は、前記第1の選択手段から出力された情報が示すデータを選択する。したがって、データに依存して演算内容が変わる最大値演算または最小値演算を高速化できる。
【0018】
さらに、本発明に係るカメラ装置は、画像信号を処理する画像処理手段として請求項1、2、3または4記載の演算プロセッサを利用している。したがって、高速撮影を可能にすると共に、仕様変更が容易なカメラ装置を提供することができる。
【0019】
【発明の実施の形態】
以下、本発明に係る演算プロセッサの実施の形態について、〔第1の実施形態〕,〔第2の実施形態〕の順に図面を参照して詳細に説明する。また、本発明に係るカメラ装置を〔第3の実施形態〕として、図面を参照して詳細に説明する。なお、第1および第2の実施形態の演算プロセッサはSIMD(Single Instruction Multiple Data)型並列演算プロセッサである。
【0020】
〔第1の実施形態〕
図1は、本発明に係る第1の実施形態の演算プロセッサの構成を示すブロック図である。同図に示すように、第1の実施形態の演算プロセッサは、命令発行部1と、命令バス2と、複数のプロセッサエレメント3〜3とを備えて構成されている。
【0021】
各プロセッサエレメント3〜3は、後述する演算実行部7〜7での演算結果の置数等に用いられる特許請求の範囲のレジスタ手段に該当する汎用レジスタ6〜6と、演算実行手段に該当する演算実行部7〜7と、演算実行部7〜7での演算結果により生成される様々なフラグを格納するフラグレジスタ手段に該当するフラグレジスタ8〜8と、選択命令実行手段に該当する選択命令実行部9〜9とを有している。また、選択命令実行部9は、汎用レジスタ6に接続されたデータ入力ポート100,101と、データ出力ポート102と、条件入力ポート103と、選択器104とを有している。なお、図示は省略しているが、選択命令実行部9〜9の構成も選択命令実行部9の構成と同じであり、プロセッサエレメント3〜3の構成もプロセッサエレメント3の構成と同じである。
【0022】
このような構成の演算プロセッサにおいて、命令発行部1から読み出された命令は命令バス2を介して各プロセッサエレメント3〜3に供給される。そして、プロセッサエレメント3において、選択命令実行部9の選択器104は、条件入力ポート103から入力されたフラグの値に応じて、データ入力ポート100,101から入力された2つのデータのいずれか一方を選択し、データ出力ポート102から出力する。データ入力ポート100,101およびデータ出力ポート102は汎用レジスタ6に接続されており、汎用レジスタ6には演算実行部7による現在までの演算結果が置数されている。また、条件入力ポート103はフラグレジスタ8に接続されており、複数ある演算結果フラグの中から任意のフラグの値を入力できるようになっている。
【0023】
以下、本実施形態の演算プロセッサにおける条件分岐の所要命令ステップ数を、従来の演算プロセッサと比較する。図5のフローチャートに示した条件分岐の処理を行う場合の、本実施形態の演算プロセッサによる命令ステップ列を以下に示す。
【0024】
MUL r2,r0,r3
ADD r4,r1,r3
CMP r0,r1
SEL r2,r2,r4
【0025】
ここで、上記SEL命令は本発明で提案する選択命令を表すものとし、より具体的には、“SEL r2,r2,r4”は、各プロセッサエレメント3〜3において直前のCMP命令の実行結果によるフラグ値を条件入力ポート103に入力し、レジスタr2,r4の値をデータ入力ポート100,101に入力し、データ出力ポート102からの出力値をレジスタr2に格納することにより、上記CMP命令ステップの実行結果に応じて、レジスタr2の値とr4の値のいずれか1つを選択してレジスタr2に代入する処理を実行することを意味する命令ステップであるものとする。
【0026】
図5に示した両方の分岐先の処理ステップ501,502に対応する命令“MUL r2,r0,r3”および“ADD r4,r1,r3”を比較処理ステップ500に対応する命令“CMP r0,r1”よりも先に実行し、両方の演算結果を一時的にレジスタr2,r4に退避しておく。その後で“CMP r0,r1”を実行し、その比較結果に応じてレジスタr2またはr4から値を選択する選択命令“SEL r2,r2,r4”を実行することにより、レジスタr2に適切な演算結果が代入される。
【0027】
このような命令ステップの配置としたため、全てのプロセッサエレメント3〜3で、命令列のシーケンスを乱すことなく各プロセッサエレメントで同時に実行することが可能となり、しかも、各プロセッサエレメントでそれぞれ適切な結果を得ることができる。
【0028】
また、図1に示した構成の演算プロセッサで図5に示したフローの処理を実行した場合、従来では6命令ステップを要していたが、本実施形態では選択命令実行部9によって選択命令SELを行うことによって4命令ステップで実行可能である。したがって、データに依存して演算内容が変わる条件分岐処理を高速化することができる。
【0029】
なお、本実施形態の説明ではデータ入力ポートを2つ、条件入力ポートを1つとしたが、データ入力ポートを3つ以上、条件入力ポートを2つ以上有し、3つ以上のデータから1つを選択しても良い。この場合、3つ以上に分岐する条件分岐処理を高速に実行することができる。
【0030】
〔第2の実施形態〕
図2は、本発明に係る第2の実施形態の演算プロセッサの構成を示すブロック図である。同図に示すように、第2の実施形態のプロセッサエレメント13〜13は、図1に示したプロセッサエレメント3〜3が有する選択命令実行部9の代わりに、選択命令に基づく条件分岐処理や最大値演算または最小値演算を行う特許請求の範囲の命令実行手段に該当する命令実行部10〜10を有している。命令実行部10〜10は、2つのデータ入力ポート200,201と、1ビットの条件入力ポート202と、命令コード入力ポート203と、データ出力ポート204と、第2の選択手段に該当する選択器205と、第1の選択手段に該当する選択器206と、比較手段に該当する比較器207とを有している。なお、図示は省略しているが、プロセッサエレメント13〜13の構成は、プロセッサエレメント13の構成と同じである。
【0031】
選択器205は、選択器206からの出力値に応じて、データ入力ポート200,201から入力された2つのデータのいずれか一方を選択し、データ出力ポート204から出力する。比較器207は、データ入力ポート200,201から入力された2つのデータの値の大小を比較し、最大または最小のデータを示す情報を1ビットで選択器206に出力する。選択器206は、命令コード入力ポート203に入力された命令コードに応じて、条件入力ポート202から入力されたデータと比較器207から出力された情報のいずれか一方を選択し、選択器205に出力する。データ入力ポート200,201およびデータ出力ポート204は汎用レジスタ6に接続されており、条件入力ポート202はフラグレジスタ8に接続されており、命令コード入力ポート203は命令バス2に接続されている。
【0032】
以下、本実施形態の演算プロセッサにおける条件分岐処理、最大値演算または最小値演算を実行する場合の動作について説明する。
【0033】
<条件分岐処理>
選択命令を用いて条件分岐処理を実行する場合は、第1の実施形態で説明した手順と同様の手順で行う。但し、選択器206から選択器205に入力するデータとして条件入力ポート202から入力されたデータの方を選択するために、命令コード入力ポート203に選択命令であることを示す命令コードを入力する。
【0034】
<最大値演算、最小値演算>
最大値演算または最小値演算を実行する場合には、命令コード入力ポート203に最大命令または最小命令であることを示す命令コードを入力し、選択器206から選択器205に入力するデータとして比較器207から出力されたデータを選択する。比較器207がデータ入力ポート200,201に入力されたデータの値の大小を比較し、その比較結果が選択器205に入力されることにより、データ入力ポート200,201に入力されたデータのうち、値の大きい方(または小さい方)がデータ出力ポート204から出力される。したがって、プロセッサエレメント毎に最大値または最小値を得ることができる。
【0035】
本実施形態の演算プロセッサを用いて、例えば、2つの数r0,r1のうち大きい方の値を求め、その結果をr2に格納する処理“r2=max(r0,r1)”を実行する場合、その実行手順は以下に示すように1命令ステップで実行することができる。なお、下記MAX命令は最大値命令を表すものとし、2つの数r0,r1のうちの大きい方の値をr2に格納することを表す。
【0036】
MAX r2,r0,r1
【0037】
一方、選択命令を実行する場合、その実行手順は次のようになり、2命令ステップを要する。
【0038】
CMP r0,r1
SEL r2,r0,r1
【0039】
このように、命令実行部10〜10を有することで、データに依存して演算内容が変わる最大値演算または最小値演算を高速化できる。また、本実施形態の命令実行部10〜10は、第1の実施形態の選択命令実行部9〜9に比較器207〜207と1ビットの選択器206〜206を付け加えるだけで実現可能である。さらに、一般的なプロセッサの命令セットの中には、通常、比較命令が存在するので、比較器についても元々存在しているのが普通であり、この比較器を利用すれば新たに追加しなければならないハードウェアはほとんどなく、僅かなハードウェアの追加だけで最大値演算や最小値演算を高速に実行することができる。
【0040】
なお、本実施形態では比較器207を例に説明したが、比較器207の代わりに減算器を用いても良い。その場合は、減算器の結果の符号を表すビットを選択器206に入力する構成となり、同様の効果を得ることができる。
【0041】
また、本実施形態ではデータ入力ポートを2つ、条件入力ポートを1つとし、比較手段は2つの数の大小を比較する比較器207としたが、データ入力ポートを3つ以上、条件入力ポートを2つ以上、比較手段として3つ以上の数の大小を比較する比較器を有し、選択命令として実行する場合は3つ以上の数の中から1つを選択し、最大値命令または最小値命令として実行する場合は3つ以上の数の最大値または最小値を求めても良い。
【0042】
〔第3の実施形態〕
図3は、本発明に係る第3の実施形態のカメラ装置の構成を示すブロック図である。同図に示すように、本実施形態のカメラ装置は、撮像部300と、A/D変換器301と、特許請求の範囲の画像処理手段に該当する画像処理プロセッサ302と、画像蓄積部または画像伝送部303を備えて構成されている。なお、画像処理プロセッサ302には、上記第1または第2の実施形態の演算プロセッサが用いられる。
【0043】
撮像部300によって撮影された画像はA/D変換器301によってデジタル信号に変換された後、画像処理プロセッサ302によって処理され、画像蓄積部または画像伝送部303に送られる。本実施形態によれば、専用の画像処理回路を用いたカメラ装置に比べて、画像処理プロセッサ302を制御するソフトウェアを変更するだけで画像処理仕様を変えることができる。また、画像処理プロセッサ302として高速の演算プロセッサを用いているため、高速撮像、すなわち画像処理を高速に行えるカメラ装置を実現できる。
【0044】
【発明の効果】
以上説明したように、本発明に係る演算プロセッサによれば、データに依存して演算内容が変わる条件分岐処理または最大値演算若しくは最小値演算を高速化することができる。また、高速撮影を可能にすると共に仕様変更が容易なカメラ装置を提供することができる。
【図面の簡単な説明】
【図1】本発明に係る第1の実施形態の演算プロセッサの構成を示すブロック図
【図2】本発明に係る第2の実施形態の演算プロセッサの構成を示すブロック図
【図3】本発明に係る第3の実施形態のカメラ装置の構成を示すブロック図
【図4】文献「Y.Fujita et al(NEC) “IMAP:Integrated Memory Array Processor”,Journal of Circuits, Systems and Computers, Vol.2, No.3, pp227−245, 1992」における演算プロセッサの主要な構成を示すブロック図
【図5】一般的な演算プロセッサにおける条件分岐の実行手順を説明するフローチャート
【符号の説明】
1 命令発行部
2 命令バス
〜3 プロセッサエレメント
〜6 汎用レジスタ
〜7 演算実行部
〜8 フラグレジスタ
〜9 選択命令実行部
10 選択命令・最大値命令・最小値命令実行部
100,101 データ入力ポート
102 データ出力ポート
103 条件入力ポート
104 選択器
200,201 データ入力ポート
202 条件入力ポート
203 命令コード入力ポート
204 データ出力ポート
205 選択器
206 選択器
207 比較器
300 撮像部
301 A/D変換器
302 画像処理プロセッサ
303 画像蓄積部または画像伝送部
900 命令発行部
901 演算処理部
902 命令バス
903〜403 プロセッサエレメント
906〜906 汎用レジスタ
907〜907 マスクレジスタ
908〜908 演算実行部
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an arithmetic processor for efficiently executing a conditional branch (conditional branch instruction), a maximum value operation, or a minimum value operation, and a camera device using the arithmetic processor.
[0002]
[Prior art]
2. Description of the Related Art Conventionally, in a SIMD (Single Instruction Multiple Data) type parallel operation processor, the same operation is performed simultaneously on a plurality of data to thereby speed up the operation process. That is, since the arithmetic processor has a configuration in which processing for one instruction stream is performed in parallel in each of the plurality of processor elements, an instruction step (for example, an instruction step (eg, , A conditional branch instruction step) cannot be executed in parallel in each processor element along this one instruction stream.
[0003]
In order to solve this problem, the literature: “Y. Fujita et al (NEC)“ IMAP: Integrated Memory Array Processor ”, Journal of Circuits, Systems and Computers, Vol. 2, No. 2, p. For each processor element, a mask register indicating whether or not to perform processing in accordance with the instruction stream on the instruction bus is installed, and the instruction stream corresponding to each branch destination of the conditional branch is flowed in the instruction bus in a time-division manner. The branch is being executed. That is, the hardware is provided with a circuit dedicated to performing conditional branching, thereby executing conditional branching. As a result, processor elements having the same branch destination can be executed in parallel. In addition, high-speed conditional branch processing is realized.
[0004]
As a conventional SIMD (Single Instruction Multiple Data) type parallel operation processor, for example, there is one shown in FIG. Fig. 4 shows the literature: "Y. Fujita et al (NEC)" IMAP: Integrated Memory Array Processor ", Journal of Circuits, Systems and Computers, Vol. FIG. 2 is a block diagram illustrating a main configuration of an arithmetic processor. However, FIG. 1 shows only the instruction issuing unit 900 and the arithmetic processing unit 901 as main components of the processor.
[0005]
As shown in FIG. 4, the processing unit 901 is configured to include a plurality of processor elements 903 1 ~903 n. The instruction issuance unit 900 via the instruction bus 902 is connected to a plurality of processor elements 903 1 ~903 n. Each of the processor elements 903 1 to 903 n has a corresponding general-purpose register 906 1 to 906 n , a mask register 907 1 to 907 n, and an operation execution unit 908 1 to 908 n .
[0006]
Hereinafter, the operation of the conventional arithmetic processor shown in FIG. 4 when processing a conditional branch will be described. In the arithmetic processor shown in FIG. 4, when processing a conditional branch (abbreviated as a conditional branch instruction), the mask registers 907 1 to 907 n are referred to in each of the processor elements 903 1 to 903 n , and the mask registers 907 1 to 907 n are respectively referred to. Only the processor element corresponding to the mask register having a value of 1 among 907 1 to 907 n executes the conditional branch on the instruction bus 902.
[0007]
FIG. 5 is a flowchart illustrating a procedure for executing a conditional branch in a general arithmetic processor. When the processing of the conditional branch shown in the flowchart of FIG. 5 is executed by the conventional arithmetic processor shown in FIG. 4, for example, a sequence of instruction steps as shown below is performed. Is required.
[0008]
CMP r0, r1
SETMR
MUL r2, r0, r3
INVMR
ADD r2, r1, r3
CLRMR
[0009]
Here, r0 to r3 represent registers, the CMP instruction represents a comparison instruction, the MUL instruction represents a multiplication instruction, the ADD instruction represents an addition instruction, and the SETMR, INVMR, and CLRMR instructions respectively represent the result of the comparison instruction and the value of the flag. In the mask registers 407 1 to 407 n , an instruction to invert the values of the mask registers 407 1 to 407 n , and an instruction to clear (set 1) the values of the mask registers 407 1 to 407 n .
[0010]
First, in the instruction step of “CMP r0, r1”, each processor element compares the magnitude relation between r0 and r1, and compares the comparison result (“1” or “0” corresponding to true or false, respectively) with SETMR. It is set in a mask register 407 1 to 407 n by an instruction. As a result, only the processor element for which the comparison result in the instruction step of “CMP r0, r1” is true is set to 1 in the corresponding mask register, and the instruction step of the next “MUL r2, r0, r3” is set. Will be executed.
[0011]
Next, the value of the mask register 407 1 to 407 n is inverted by the instruction step of INVMR located therebelow. As a result, the value of the mask register of the processor element for which the comparison result is true is On the contrary, since the value of the mask register of the processor element whose comparison result is false is inverted to 1, only the processor element inverted to 1 at this time is changed to the next " The instruction step ADD r2, r1, r3 "will be executed. Finally, all the values of the mask registers 407 1 to 407 n are cleared (reset) to 1 by the CLRMR instruction step, and the process returns to the normal processing.
[0012]
[Problems to be solved by the invention]
However, in the above-described conventional arithmetic processor, it is necessary to execute a branch control instruction such as SETMR, INVMR, or CLRMR in order to set the value of the mask register 407. The ratio of the number of executed instructions for branch control instructions such as SETMR is larger than the number of instructions, and there is a problem in that speeding up of conditional branch processing is hindered. This problem has been particularly remarkable in the case of a conditional branch having a small number of executed instructions after the branch, that is, a conditional branch having a small scale.
[0013]
The present invention has been made in view of the above-described conventional problems, and has as its object to provide an arithmetic processor capable of executing conditional branching at high speed and a camera device using the arithmetic processor. It is another object of the present invention to provide an arithmetic processor capable of executing a maximum value operation or a minimum value operation at high speed and a camera device using the arithmetic processor.
[0014]
[Means for Solving the Problems]
In order to achieve the above object, an arithmetic processor according to the present invention is an arithmetic processor that performs conditional branch processing, and includes an arithmetic execution unit that executes an operation, and an operation result obtained by the operation execution unit. Register means for storing a flag generated from the calculation result obtained by the calculation execution means, and a flag register selected from the flags stored in the flag register means. And selecting command execution means for selecting one from a plurality of input data input from the register means and outputting the selected data to the register means. Therefore, it is possible to speed up the conditional branch processing in which the operation content changes depending on the data.
[0015]
Further, an arithmetic processor according to the present invention is an arithmetic processor that selects appropriate data from a plurality of data based on an instruction code, and is obtained by an arithmetic execution unit that executes an arithmetic operation and the arithmetic execution unit. Register means for registering the calculated operation result, flag register means for storing a flag generated from the operation result obtained by the operation execution means, and an instruction for performing a predetermined process based on the specified instruction code. Executing means, wherein the instruction executing means compares values of a plurality of input data, and outputs information indicating a maximum or minimum value of the plurality of input data, In accordance with the designated instruction code, either the information output from the comparing means or the flag selected from the flags stored in the flag register means Selecting one of a plurality of input data input from the register means based on first selection means for selecting and outputting and information or a flag output from the first selection means; Second selecting means for outputting the data to the register means. Therefore, it is possible to speed up the conditional branch processing or the maximum value operation or the minimum value operation in which the operation content changes depending on the data by adding a small amount of hardware.
[0016]
In the arithmetic processor according to the present invention, the specified instruction code may be one of the plurality of input data in accordance with a value of a flag selected from the flags stored in the flag register means. If the instruction code is an instruction code to output, the first selecting means outputs a flag selected from the flags stored in the flag register means, and the second selecting means outputs the selected flag. One of a plurality of input data input from the register means is selected according to the value of the flag thus set. Therefore, it is possible to speed up the conditional branch processing in which the operation content changes depending on the data.
[0017]
Further, the arithmetic processor according to the present invention, when the specified instruction code is an instruction code instructing to output data having a maximum value among a plurality of input data input from the register means, The comparing means outputs information indicating the data having the largest value among the plurality of input data, the first selecting means outputs the information output from the comparing means, and the second selecting means Selects the data indicated by the information output from the first selecting means, and outputs the data having the minimum value among the plurality of input data input from the register means, by the specified instruction code. If the instruction code is such that the instruction code indicates, the comparing means outputs information indicating the data having the smallest value among the plurality of input data, and the first selecting means outputs the information output from the comparing means. Output, the second selecting means selects the data indicated by the information output from said first selecting means. Therefore, it is possible to speed up the maximum value operation or the minimum value operation in which the operation content changes depending on the data.
[0018]
Further, a camera device according to the present invention uses the arithmetic processor according to claims 1, 2, 3 or 4 as an image processing means for processing an image signal. Therefore, it is possible to provide a camera device that enables high-speed shooting and easily changes specifications.
[0019]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of an arithmetic processor according to the present invention will be described in detail in the order of [first embodiment] and [second embodiment] with reference to the drawings. Further, a camera device according to the present invention will be described in detail as a third embodiment with reference to the drawings. Note that the arithmetic processors of the first and second embodiments are SIMD (Single Instruction Multiple Data) type parallel arithmetic processors.
[0020]
[First Embodiment]
FIG. 1 is a block diagram showing a configuration of the arithmetic processor according to the first embodiment of the present invention. As shown in the figure, the arithmetic processor in the first embodiment, the instruction issue unit 1, an instruction bus 2 is constructed by a plurality of processor elements 3 1 to 3 n.
[0021]
The processor elements 3 1 to 3 n include general-purpose registers 6 1 to 6 n corresponding to register means used in the arithmetic execution units 7 1 to 7 n described later, which are used for registering arithmetic results, and the like. and operation executing section 7 1 to 7-n corresponding to the operation execution unit, the flag register 8 1-8 corresponding to the flag register means for storing a variety of flags generated by the operation result of the arithmetic execution unit 7 1 to 7-n and n, and a selection instruction execution unit 9 1 to 9 n corresponding to the selected instruction execution unit. The selection instruction execution unit 9 1 includes a data input port 100 and 101 connected to the general-purpose register 61, a data output port 102, and a condition input port 103, and a selector 104. Incidentally, although not shown, a selection command is configured in the execution unit 9 2 to 9 n be the same as selected instruction execution unit 9 1 configuration, configuration of processors elements 3 1 processor element 3 2 to 3 n The configuration is the same.
[0022]
In the arithmetic processor of this structure, the instruction read from the instruction issue unit 1 is supplied to each processor element 3 1 to 3 n through the instruction bus 2. Then, the processor element 3 1, selector 104 selects the instruction execution unit 9 1, depending on the value of the flag input from the condition input port 103, either of the two data input from the data input port 100 and 101 One of them is selected and output from the data output port 102. Data input port 100 and 101 and the data output port 102 is connected to the general-purpose register 61, the current to the operation result by the operation execution unit 71 in the general register 61 is numeric. The condition input port 103 is connected to the flag register 81, and to be able to enter values for any of the flags among the plurality of calculation result flag.
[0023]
Hereinafter, the number of instruction steps required for the conditional branch in the arithmetic processor of the present embodiment will be compared with the conventional arithmetic processor. An instruction step sequence by the arithmetic processor of the present embodiment when performing the processing of the conditional branch shown in the flowchart of FIG. 5 is shown below.
[0024]
MUL r2, r0, r3
ADD r4, r1, r3
CMP r0, r1
SEL r2, r2, r4
[0025]
Here, the SEL command is intended to refer to a selection instruction proposed by the present invention, more specifically, "SEL r2, r2, r4", the execution of the CMP instruction immediately before each processor element 3 1 to 3 n By inputting the flag value based on the result to the condition input port 103, inputting the values of the registers r2 and r4 to the data input ports 100 and 101, and storing the output value from the data output port 102 in the register r2, the CMP instruction is executed. It is assumed that the instruction step is to execute a process of selecting one of the value of the register r2 and the value of r4 in accordance with the execution result of the step and substituting the value into the register r2.
[0026]
The instructions “MUL r2, r0, r3” and “ADD r4, r1, r3” corresponding to the processing steps 501, 502 at both branch destinations shown in FIG. 5 are compared with the instructions “CMP r0, r1” corresponding to the comparison processing step 500. ", And both operation results are temporarily saved in the registers r2 and r4. After that, “CMP r0, r1” is executed, and a selection instruction “SEL r2, r2, r4” for selecting a value from the register r2 or r4 according to the comparison result is executed. Is substituted.
[0027]
With such an arrangement of instruction steps, it becomes possible for all processor elements 3 1 to 3 n to execute simultaneously in each processor element without disturbing the sequence of the instruction sequence, and furthermore, for each processor element, an appropriate The result can be obtained.
[0028]
Also, when the processing of the flow shown in FIG. 5 is executed by the arithmetic processor having the configuration shown in FIG. 1, six instruction steps were conventionally required. In the present embodiment, the selection instruction SEL is selected by the selection instruction execution unit 9. By performing the above operation, the program can be executed in four instruction steps. Therefore, it is possible to speed up the conditional branch processing in which the operation content changes depending on the data.
[0029]
In the description of the present embodiment, two data input ports and one condition input port are used. However, three or more data input ports and two or more condition input ports are provided, and one out of three or more data is provided. May be selected. In this case, the conditional branch processing for branching into three or more branches can be executed at high speed.
[0030]
[Second embodiment]
FIG. 2 is a block diagram illustrating a configuration of the arithmetic processor according to the second embodiment of the present invention. As shown in the figure, the processor elements 13 1 to 13 n of the second embodiment are different from the processor elements 3 1 to 3 n shown in FIG. and a command execution unit 10 1 to 10 n corresponding to the instruction execution unit in the claims to perform branch processing or maximum value calculation or minimum value operation. The instruction execution units 10 1 to 10 n correspond to two data input ports 200 and 201, a 1-bit condition input port 202, an instruction code input port 203, a data output port 204, and a second selection unit. The selector 205 includes a selector 205, a selector 206 corresponding to a first selector, and a comparator 207 corresponding to a comparator. Incidentally, although not shown, the configuration of the processor element 13 2 to 13 n are the same as the configuration of the processor element 13 1.
[0031]
The selector 205 selects one of the two data input from the data input ports 200 and 201 according to the output value from the selector 206 and outputs the selected data from the data output port 204. The comparator 207 compares the values of the two data input from the data input ports 200 and 201 and outputs the information indicating the maximum or minimum data to the selector 206 in one bit. The selector 206 selects one of the data input from the condition input port 202 and the information output from the comparator 207 according to the instruction code input to the instruction code input port 203. Output. Data input port 200, 201 and the data output port 204 is connected to the general-purpose register 61, the condition input port 202 is connected to the flag register 81, the instruction code input port 203 is connected to the instruction bus 2 I have.
[0032]
Hereinafter, the operation in the case where the conditional branch processing, the maximum value operation, or the minimum value operation is executed in the arithmetic processor of the present embodiment will be described.
[0033]
<Conditional branch processing>
When the conditional branch processing is executed using the selection instruction, the processing is performed in the same procedure as the procedure described in the first embodiment. However, in order to select data input from the condition input port 202 as data to be input from the selector 206 to the selector 205, an instruction code indicating a selection instruction is input to the instruction code input port 203.
[0034]
<Maximum value calculation, Minimum value calculation>
To execute the maximum value operation or the minimum value operation, an instruction code indicating that the instruction is the maximum instruction or the minimum instruction is input to the instruction code input port 203, and the comparator 206 is used as data to be input from the selector 206 to the selector 205. The data output from 207 is selected. The comparator 207 compares the values of the data input to the data input ports 200 and 201, and the result of the comparison is input to the selector 205. , Is output from the data output port 204. Therefore, the maximum value or the minimum value can be obtained for each processor element.
[0035]
For example, when the processing “r2 = max (r0, r1)” of obtaining the larger value of the two numbers r0 and r1 and storing the result in r2 is performed using the arithmetic processor of the present embodiment, The execution procedure can be executed in one instruction step as shown below. The MAX instruction below indicates a maximum value instruction, and indicates that a larger one of two numbers r0 and r1 is stored in r2.
[0036]
MAX r2, r0, r1
[0037]
On the other hand, when the selection instruction is executed, the execution procedure is as follows and requires two instruction steps.
[0038]
CMP r0, r1
SEL r2, r0, r1
[0039]
As described above, the provision of the instruction execution units 10 1 to 10 n can speed up the maximum value operation or the minimum value operation in which the operation content changes depending on the data. The instruction execution unit 10 1 to 10 n of the present embodiment, the first embodiment of the selection instruction execution unit 9 1 to 9 n to comparator 207 1 to 207 n and 1-bit selector 206 1 -206 n It can be realized simply by adding. Furthermore, since a comparison instruction is usually present in the instruction set of a general processor, it is common that a comparator is originally present, and if this comparator is used, a new one must be added. There is almost no hardware required, and the maximum value operation and the minimum value operation can be executed at high speed by adding only a small amount of hardware.
[0040]
In the present embodiment, the comparator 207 is described as an example, but a subtractor may be used instead of the comparator 207. In that case, a bit representing the sign of the result of the subtractor is input to the selector 206, and the same effect can be obtained.
[0041]
Further, in the present embodiment, two data input ports and one condition input port are used, and the comparing means is the comparator 207 which compares the two numbers. However, three or more data input ports and three or more condition input ports are used. And a comparator for comparing three or more numbers as comparison means. When executing as a selection instruction, one of three or more numbers is selected, and a maximum value instruction or a minimum value instruction is selected. When executing as a value instruction, the maximum value or the minimum value of three or more numbers may be obtained.
[0042]
[Third embodiment]
FIG. 3 is a block diagram illustrating a configuration of a camera device according to a third embodiment of the present invention. As shown in the figure, the camera device according to the present embodiment includes an imaging unit 300, an A / D converter 301, an image processing processor 302 corresponding to an image processing unit in the claims, an image storage unit or an image storage unit. The transmission unit 303 is configured. Note that the arithmetic processor of the first or second embodiment is used as the image processor 302.
[0043]
The image captured by the imaging unit 300 is converted into a digital signal by the A / D converter 301, processed by the image processor 302, and sent to the image storage unit or the image transmission unit 303. According to the present embodiment, the image processing specification can be changed only by changing the software that controls the image processing processor 302, as compared with a camera device using a dedicated image processing circuit. Further, since a high-speed arithmetic processor is used as the image processing processor 302, a camera device that can perform high-speed imaging, that is, high-speed image processing can be realized.
[0044]
【The invention's effect】
As described above, according to the arithmetic processor according to the present invention, it is possible to speed up conditional branch processing or maximum value operation or minimum value operation in which the operation content changes depending on data. Further, it is possible to provide a camera device that enables high-speed shooting and easily changes specifications.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration of an arithmetic processor according to a first embodiment of the present invention. FIG. 2 is a block diagram illustrating a configuration of an arithmetic processor according to a second embodiment of the present invention. FIG. 4 is a block diagram showing a configuration of a camera device according to a third embodiment of the present invention; FIG. , No. 3, pp. 227-245, 1992 "is a block diagram showing a main configuration of an arithmetic processor. [FIG. 5] A flowchart for explaining an execution procedure of a conditional branch in a general arithmetic processor.
1 instruction issue unit 2 instruction bus 3 1 to 3 n processor elements 6 1 to 6 n general purpose registers 7 1 to 7-n execution unit 8 1 to 8 n flag register 9 1 to 9 n selection instruction execution unit 10 selects instruction-up Value command / minimum value command execution unit 100, 101 data input port 102 data output port 103 condition input port 104 selector 200, 201 data input port 202 condition input port 203 instruction code input port 204 data output port 205 selector 206 selector 207 Comparator 300 Imaging unit 301 A / D converter 302 Image processor 303 Image storage unit or image transmission unit 900 Command issuing unit 901 Operation processing unit 902 Command buses 903 1 to 403 n Processor elements 906 1 to 906 n General purpose register 907 1 ~907 n mask register 9 8 1 ~908 n execution unit

Claims (5)

条件分岐処理を行う演算プロセッサであって、
演算を実行する演算実行手段と、
前記演算実行手段で得られた演算結果を置数するためのレジスタ手段と、
前記演算実行手段で得られた演算結果から生成されるフラグを格納するフラグレジスタ手段と、
前記フラグレジスタ手段に格納されているフラグの中から選択されたフラグの値に応じて、前記レジスタ手段から入力された複数の入力データから1つを選択し、当該選択されたデータを前記レジスタ手段に出力する選択命令実行手段と、を備えたことを特徴とする演算プロセッサ。
An arithmetic processor that performs conditional branch processing,
Operation execution means for executing an operation;
Register means for setting the operation result obtained by the operation execution means,
Flag register means for storing a flag generated from the calculation result obtained by the calculation execution means,
According to the value of the flag selected from the flags stored in the flag register means, one of a plurality of input data input from the register means is selected, and the selected data is stored in the register means. And a selection instruction executing means for outputting the selected instruction to the processor.
命令コードに基づいて、複数のデータの中から適当なデータを選択する演算プロセッサであって、
演算を実行する演算実行手段と、
前記演算実行手段で得られた演算結果を置数するためのレジスタ手段と、
前記演算実行手段で得られた演算結果から生成されるフラグを格納するフラグレジスタ手段と、
指示された命令コードに基づいて所定の処理を行う命令実行手段と、を備え、
前記命令実行手段は、
複数の入力データの値をそれぞれ比較して、前記複数の入力データの中で値が最大または最小のデータを示す情報を出力する比較手段と、
指定された命令コードに応じて、前記比較手段から出力された情報または前記フラグレジスタ手段に格納されているフラグの中から選択されたフラグのいずれかを選択して出力する第1の選択手段と、
前記第1の選択手段から出力された情報またはフラグに基づいて、前記レジスタ手段から入力された複数の入力データから1つを選択し、当該選択されたデータを前記レジスタ手段に出力する第2の選択手段と、を有することを特徴とする演算プロセッサ。
An arithmetic processor that selects appropriate data from a plurality of data based on an instruction code,
Operation execution means for executing an operation;
Register means for setting the operation result obtained by the operation execution means,
Flag register means for storing a flag generated from the calculation result obtained by the calculation execution means,
Instruction execution means for performing predetermined processing based on the instructed instruction code,
The instruction execution means includes:
A comparing unit that compares values of a plurality of input data and outputs information indicating a maximum or a minimum value of the plurality of input data,
First selecting means for selecting and outputting either the information output from the comparing means or the flag selected from the flags stored in the flag register means according to the designated instruction code; ,
A second step of selecting one of a plurality of input data input from the register means based on information or a flag output from the first selection means, and outputting the selected data to the register means; And a selecting means.
前記指定された命令コードが、前記フラグレジスタ手段に格納されているフラグの中から選択されたフラグの値に応じて、前記複数の入力データから1つを出力するよう指示する命令コードである場合、
前記第1の選択手段は、前記フラグレジスタ手段に格納されているフラグの中から選択されたフラグを出力し、
前記第2の選択手段は、前記選択されたフラグの値に応じて、前記レジスタ手段から入力された複数の入力データから1つを選択することを特徴とする請求項2記載の演算プロセッサ。
When the specified instruction code is an instruction code instructing to output one from the plurality of input data in accordance with a value of a flag selected from the flags stored in the flag register means. ,
The first selecting means outputs a flag selected from the flags stored in the flag register means,
3. The processor according to claim 2, wherein said second selecting means selects one from a plurality of input data input from said register means according to a value of said selected flag.
前記指定された命令コードが、前記レジスタ手段から入力された複数の入力データの中で値が最大のデータを出力するよう指示する命令コードである場合、
前記比較手段は、前記複数の入力データの中で値が最大のデータを示す情報を出力し、
前記第1の選択手段は、前記比較手段から出力された情報を出力し、
前記第2の選択手段は、前記第1の選択手段から出力された情報が示すデータを選択し、
前記指定された命令コードが、前記レジスタ手段から入力された複数の入力データの中で値が最小のデータを出力するよう指示する命令コードである場合、
前記比較手段は、前記複数の入力データの中で値が最小のデータを示す情報を出力し、
前記第1の選択手段は、前記比較手段から出力された情報を出力し、
前記第2の選択手段は、前記第1の選択手段から出力された情報が示すデータを選択することを特徴とする請求項2または3記載の演算プロセッサ。
When the specified instruction code is an instruction code instructing to output data having a maximum value among a plurality of input data input from the register means,
The comparing means outputs information indicating data having a maximum value among the plurality of input data,
The first selecting means outputs information output from the comparing means,
The second selecting means selects data indicated by the information output from the first selecting means,
When the specified instruction code is an instruction code instructing to output data having a minimum value among a plurality of input data input from the register means,
The comparing means outputs information indicating data having a minimum value among the plurality of input data,
The first selecting means outputs information output from the comparing means,
4. The processor according to claim 2, wherein said second selecting means selects data indicated by the information outputted from said first selecting means.
画像信号を処理する画像処理手段として請求項1、2、3または4記載の演算プロセッサを利用したことを特徴とするカメラ装置。A camera device using the arithmetic processor according to claim 1, 2, 3, or 4 as image processing means for processing an image signal.
JP2002218190A 2002-07-26 2002-07-26 Arithmetic processor and camera device using it Pending JP2004062401A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002218190A JP2004062401A (en) 2002-07-26 2002-07-26 Arithmetic processor and camera device using it

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002218190A JP2004062401A (en) 2002-07-26 2002-07-26 Arithmetic processor and camera device using it

Publications (1)

Publication Number Publication Date
JP2004062401A true JP2004062401A (en) 2004-02-26

Family

ID=31939452

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002218190A Pending JP2004062401A (en) 2002-07-26 2002-07-26 Arithmetic processor and camera device using it

Country Status (1)

Country Link
JP (1) JP2004062401A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006112045A1 (en) * 2005-03-31 2006-10-26 Matsushita Electric Industrial Co., Ltd. Processor
JP2009524167A (en) * 2006-01-20 2009-06-25 クゥアルコム・インコーポレイテッド Early conditional selection of operands
US8954483B2 (en) 2011-08-10 2015-02-10 Renesas Electronics Corporation Arithmetic circuit and arithmetic apparatus

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006112045A1 (en) * 2005-03-31 2006-10-26 Matsushita Electric Industrial Co., Ltd. Processor
US8086830B2 (en) 2005-03-31 2011-12-27 Panasonic Corporation Arithmetic processing apparatus
JP2009524167A (en) * 2006-01-20 2009-06-25 クゥアルコム・インコーポレイテッド Early conditional selection of operands
US9710269B2 (en) 2006-01-20 2017-07-18 Qualcomm Incorporated Early conditional selection of an operand
US8954483B2 (en) 2011-08-10 2015-02-10 Renesas Electronics Corporation Arithmetic circuit and arithmetic apparatus

Similar Documents

Publication Publication Date Title
JP3573755B2 (en) Image processing processor
US20080072011A1 (en) SIMD type microprocessor
US20050289327A1 (en) Reconfigurable processor and semiconductor device
JPH06105460B2 (en) Multiprocessor processor switching device
US5274777A (en) Digital data processor executing a conditional instruction within a single machine cycle
JPH06243161A (en) Discreteness cosine converting circuit
EP1612694A1 (en) Processor with a reconfigurable ALU array
JPH06162228A (en) Data flow processor device
US10613861B2 (en) Programmable linear feedback shift register
WO2019023910A1 (en) Data processing method and device
JP2004062401A (en) Arithmetic processor and camera device using it
US20050289328A1 (en) Reconfigurable processor and semiconductor device
JPH1153189A (en) Operation unit, operation method and recording medium readable by computer
CN113841134A (en) Processing device with vector transformation execution
EP0542318B1 (en) Digital processor and method for controlling the same
JPH05274143A (en) Composite condition processing system
JP3504033B2 (en) Data transfer method between processors and parallel computer
JP3982324B2 (en) Vector operation processing device, vector operation method, and vector operation program
JP2003244190A (en) Processor for data flow control switch and data flow control switch
US9250898B2 (en) VLIW processor, instruction structure, and instruction execution method
JP2001229135A (en) Simd type parallel computer
JPH04184535A (en) Parallel arithmetic units
JP2925842B2 (en) Pipeline processing equipment
JPS63141131A (en) Pipeline control system
JPH07191955A (en) Data-driven information processor