[go: up one dir, main page]

JP4825154B2 - データ処理装置 - Google Patents

データ処理装置 Download PDF

Info

Publication number
JP4825154B2
JP4825154B2 JP2007049413A JP2007049413A JP4825154B2 JP 4825154 B2 JP4825154 B2 JP 4825154B2 JP 2007049413 A JP2007049413 A JP 2007049413A JP 2007049413 A JP2007049413 A JP 2007049413A JP 4825154 B2 JP4825154 B2 JP 4825154B2
Authority
JP
Japan
Prior art keywords
data
decoder
bit
value
bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007049413A
Other languages
English (en)
Other versions
JP2008217065A (ja
Inventor
和彦 岩永
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2007049413A priority Critical patent/JP4825154B2/ja
Publication of JP2008217065A publication Critical patent/JP2008217065A/ja
Application granted granted Critical
Publication of JP4825154B2 publication Critical patent/JP4825154B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)

Description

本発明は、データ処理装置、特にSIMD型マイクロプロセッサに関する。
画像処理においては、所定範囲の全画素データの最大値又は最小値を特徴量として画像処理の計算式を設定・変更するというような処理が必要となることがある。多データを一度に演算するという特徴が画像処理に向いているとされるSIMD型マイクロプロセッサにおいて、各プロセッサエレメント(以下、PEという。)に格納される画素データのうちから、最大値又は最小値を選出することを実現する技術が、従来幾つか開示されている。
特許文献1や特許文献2で開示されている技術は、基本的に逐次処理に関するものである。その技術は、全てのPEから対象画素データを読み出し、逐次大小比較を行った結果大きい方を残す、又は小さい方を残すことにより、全対象画素データの最大値又は最小値を求めるというものである。この技術には、検出までに要する時間が、対象画素の数が大きくなるに従い大きくなるという特徴があり、PE数の多いプロセッサには適切な技術ではないといえる。
特許文献3で開示される技術も基本的に逐次処理に関する。特許文献1や特許文献2で開示されている技術とは異なり、各PEの持つデータを順次、全PEに供給し、比較結果を収集することで最大値あるいは最小値を求めるという技術であるが、特許文献1や特許文献2で開示されている技術と同様の長所・短所を持つといえる。
特許文献4では、PE間にツリー状に演算器を設け、各ツリーにパイプラインを切ることによって演算器の負荷を少なく保持したまま、最大値を検出したり総和を演算したりすることを高速に行う回路構成について開示している。この構成では、PE数が増加すると演算器の数が増加し、回路規模の増大につながること、及びツリーの最後には全PE長の半分の距離を跨いだ演算が必要になることから、動作速度の面で懸念がある。特許文献5でも基本的に同様の技術を開示する。
特許文献6と特許文献7で開示される技術は、上位ビットから順に1ビットずつ比較を行い、フラグを用いることで最大値又は最小値の候補から外れたものを除外していくというものである。このような技術では、対象データのビット幅の数だけ処理を繰り返すと最大値又は最小値を得ることができるが、対象データ数が多いと1回の処理にかかる時間が増大するという問題が生じる。
特許文献8は、比較対象データをまずデコードしておき、そのデコード結果の論理和を求めることで最大値、最小値検出を行う回路構成を開示する。この回路構成では、比較対象データのビット幅が広い場合、対象データ数が多い場合についての問題点が解決されていない。
特開2001−265592号公報 特開平08−030577号公報 特許第2969115号 特公平8−14816号公報 特開2002−207706号公報 特開平05−100824号公報 特開平06−139048号公報 特開平11−85467号公報
本発明は、前述の従来技術の問題点を考慮して、少ない回路規模を保ったまま最大値又は最小値を短いサイクルで選出することのできるデータ処理装置、特にマイクロプロセッサを構築することを目的とする。つまり、マイクロプロセッサにおいて、2進データの数が多い場合にも短いサイクルで最大値又は最小値を求めることができること、2進データのビット幅が広い場合でも回路規模を増やすことなく最大値又は最小値を求めることができること、及び、特にSIMD型などの並列プロセッサが処理しているデータの中から最大値又は最小値を回路規模を増やさずに求めることができることを目的とする。
本発明は、上記の目的を達成するために為されたものである。本発明に係る請求項1に記載のデータ処理装置は、複数の2進データの中から最大値又は最小値を求めるデータ処理装置であって、
2進データと同数以上の条件フラグと、
各2進データをデコードするための2進データと同数以上のデコーダと、
2進データと同数以上の比較器と、
各デコーダからのデコード結果がWired−ORされて出力される1ビット毎のバスを有し、
各条件フラグと各デコーダと各比較器は、対象の2進データに対して関連付けされており、
上記デコーダによるデコード結果は、関連する条件フラグの値が真であれば1ビット毎にWired−ORされてバスに出力され、関連する条件フラグが偽であればバスに出力されず、
各比較器は、関連するデコーダのデコード結果の値とWired−ORされたバスの値とを比較し、Wired−ORされたバス値よりもデコード結果の方が小さい場合には、関連する条件フラグの値をリセットすることを特徴とする。
本発明に係る請求項2に記載のデータ処理装置は、
更に、関連する条件フラグ、デコーダ、及び比較器に対して、ビットシフト回路が関連付けされて設置され、
各ビットシフト回路は各2進データを入力して所定幅だけビットシフトして関連するデコーダに出力し、
複数の2進データのビット幅の中の特定部分のビット幅のデータに関して最大値又は最小値を算出することを特徴とする請求項1に記載のデータ処理装置である。
本発明に係る請求項3に記載のデータ処理装置は、
各デコーダが、
デコード結果として、LSBビットから、入力データをデコードして“1”となったビットまでを、“1”として出力し、それ以外のビットを“0”として出力する、
又は、その負論理を出力するように構成されていることを特徴とする請求項1に記載のデータ処理装置である。
本発明に係る請求項4に記載のデータ処理装置は、
請求項1乃至3のうちのいずれか一に記載のデータ処理装置であって、
比較器が、複数の2進データを演算処理するための算術演算装置(ALU)で構成されていることを特徴とする。
本発明を利用することにより、データ処理装置において、対象となる2進データの数が多い場合にも、短いサイクルでそれら多数の2進データの最大値又は最小値を求めることが可能になる。
以下、図面を参照して本発明に係る好適な実施形態を説明する。
[第1の実施形態]
図10は、本発明に係るマイクロプロセッサ2の概略の構成図である。図10に示されるマイクロプロセッサ2は、プロセッサエレメント(4−(1)、4−(2)、・・・4−(n))を複数(図ではn個)備えており、各プロセッサエレメント4は図示しないレジスタ及び演算部を備える。各プロセッサエレメント4は適宜接続されており、図示しないグローバルプロセッサなどにより動作を制御される。このような並列プロセッサは通常「SIMD型マイクロプロセッサ」と称されるものである。
図1は、本発明の第1の実施形態に係るマイクロプロセッサ2の一部拡大図である。特に、3つのプロセッサエレメントの夫々の一部分を示している。ここでは、比較対象となる2進データが4ビットであり、比較対象となる2進データは対象データ1〜対象データ3までの3つである場合について、図示している。対象データ1〜対象データ3は、例えば夫々レジスタ(図示せず。)に記憶されており、それらがデコーダ(デコーダ1、デコーダ2、デコーダ3)に入力する。
デコーダ(デコーダ1、デコーダ2、デコーダ3)には、上記2進データと、夫々の条件フラグの値とが入力される。各デコーダの構成は、図2に示しているようなものである。各デコーダは2進データをデコードした結果を、3ステートバッファを介して、図1下部に示すバスに出力する。図2に示されるように、3ステートバッファの出力イネーブル信号には条件フラグが接続される。つまり、条件フラグが真の状態であるプロセッサエレメントでは、3ステートバッファを介してデコード結果がバスに出力される。
なお、3ステートバッファに代わりに、ダイナミックバス構成若しくはオープンドレイン構成を採用しても同様の作用を行うことができることは明白である。
比較器(比較器1、比較器2、比較器3)には、各デコーダからの出力とバス上のデータとが入力され、比較器での比較結果が条件フラグのリセット端子に接続されている。
図3は、本発明の第1の実施形態に係るマイクロプロセッサに含まれる比較器の構成図(図3(b))、及び、機能内容(図3(a))を示す。図3(a)は、図3(b)の比較器を構成する2種類の比較素子、即ちCMP1とCMP2の動作内容を示す記述である。
図1、図2及び図3に示す構成を備えるマイクロプロセッサは、以下の工程のようにして、3つの対象データの中から最大値を求める。なお、対象データ1、対象データ2、及び、対象データ3は、例として、(1010b)、(0111b)、(1001b)であるとする。
(工程1);全ての条件フラグを“1”にセットする。
(工程2−1);デコーダの出力及びバス上のデータは、以下の表1のようになる。
Figure 0004825154
(工程2−2);比較結果は以下の表2のようになる。
Figure 0004825154
(工程2−3);結果として条件フラグ2と条件フラグ3はリセットされ、デコーダの出力およびバス上のデータは以下の表3のようになり、最大値が求まる。
Figure 0004825154
ここで、バス上のデータ“( 0000010000000000b )”をエンコードして“1010b”が得られる。
以上、3つのデータにおける最大値を求めることについて説明をしたが、これより多数のデータにおける最大値を求める場合も同様にすればよい。また、2進データの反転をデコーダに入力し、バス上のデータのビット順をスワップ(交換)してエンコードすることで、最小値を求めることが可能である。
[第2の実施形態]
図4は、本発明の第2の実施形態に係るマイクロプロセッサ2の一部拡大図である。特に、3つのプロセッサエレメントの夫々の一部分を示している。本発明の第2の実施形態に係るマイクロプロセッサは、本発明の第1の実施形態に係るマイクロプロセッサと略同様のものであるので、両者の差異を中心に説明する。
ここでは、比較対象となる2進データが16ビットであり、比較対象となる2進データは対象データ1〜対象データ3までの3つである場合について図示している。対象データ1〜対象データ3は、例えば夫々レジスタ(図示せず。)に記憶されており、それらがバレルシフタに入力され、バレルシフタで任意のビット数だけシフトされその結果の4ビットがデコーダ(デコータ1、デコーダ2、デコーダ3)に入力される。
例えば、16ビットデータが右シフトされ、シフト結果の下位4ビットがデコーダに入力される。かかる構成によれば、以下のようにして3つの16ビットデータの中から最大値が求められ得る。なお、対象データ1、対象データ2、及び、対象データ3は、例として、(32FFh)、(3750h)、(289Ch)であるとする。
(工程1);全ての条件フラグを“1”にセットする。
(工程2-1);バレルシフタで右12ビットシフトした結果の下位4ビットをデコーダに出力する。デコーダの出力およびバス上のデータは以下の表4のようになる。
Figure 0004825154
(工程2−2);各比較器における比較結果は以下の表5のようになる。
Figure 0004825154
結果として条件フラグ3はリセットされ、デコーダの出力およびバス上のデータは以下の表6のようになり、ビット15〜12における最大値が求まる。
Figure 0004825154
ここで、バス上のデータ“( 0000000000001000b )”をエンコードして“0011b (3h)”が得られる。
(工程3-1);バレルシフタで右8ビットシフトした結果の下位4ビットをデコーダに出力する。デコーダの出力およびバス上のデータは以下の表7のようになる。
Figure 0004825154
(工程3−2);各比較器における比較結果は以下の表8のようになる。
Figure 0004825154
結果として条件フラグ1と条件フラグ3はリセットされ、デコーダの出力およびバス上のデータは以下の表9のようになり、ビット11〜8における最大値が求まる。
Figure 0004825154
ここで、バス上のデータ“( 0000000010000000b )”をエンコードして“0111b (7h)”が得られる。
上記例では、ここで最大値が求まったことになる。この時点で未だ求まらなければ、前述と同様に、バレルシフタで右4ビットシフトした結果の下位4ビットをデコーダに出力することで、ビット7〜4における最大値を求めて、全体の最大値を求める。その時点でも未だ求まらなければ、更にバレルシフタで右0ビットシフトした(即ち、シフトしない)結果の下位4ビットをデコーダに出力することで、ビット3〜0における最大値を求めて、全体の最大値を求める。つまり、最後までリセットされない条件フラグを含むプロセッサエレメントにおける対象データが、最大値である。
以上、3つのデータにおける最大値を求めることについて説明をしたが、これより多数のデータにおける最大値を求める場合も同様にすればよい。
[第3の実施形態]
図5は、本発明の第3の実施形態に係るマイクロプロセッサにおけるデコーダの回路構成図である。
図1に示す第1の実施形態に係るマイクロプロセッサ、および図4に示す第2の実施形態に係るマイクロプロセッサにおいて、デコーダを、図2に示すものから図5に示すものに入れ替えると、比較器の構成を通常の比較器又は減算器にすることが可能である。
対象データ1(1010b)、対象データ2(0111b)、対象データ3(1001b)の場合で説明すると、デコーダの出力およびバス上のデータは以下の表10のようになる。
Figure 0004825154
このように、バス上のデータは最大数を持つデコーダ1と全く同一となることがわかる。従って、比較器として、図6で示すような単純なコンパレータ、若しくは、(図示しない)減算器を用いることが可能となる。
[第4の実施形態]
図7は、本発明の第4の実施形態に係るマイクロプロセッサ2の一部拡大図である。特に、3つのプロセッサエレメントの夫々の一部分を示している。本発明の第4の実施形態に係るマイクロプロセッサは、本発明の第3の実施形態に係るマイクロプロセッサと略同様のものであるので、両者の差異を中心に説明する。
図7に示す第4の第4の実施形態に係るマイクロプロセッサでは、図1に示す第1の実施形態に係るマイクロプロセッサ、および図4に示す第2の実施形態に係るマイクロプロセッサにおいて、デコーダを、図2に示すものから図5に示すものに入れ替え、更に、比較器(比較器1、比較器2、比較器3)を、ALU(Arithmetic Logical Unit;数値演算ユニット)(ALU1、ALU2、ALU3)に入れ替える。更に、(図示していないが、)ALU(ALU1、ALU2、ALU3)には、デコーダの出力とバスのデータのみならず、(図示しない)アキュムレータのデータと(図示しない)レジスタからの2進データとが入力されるように構成されている。
かかる構成は、通常の並列マイクロプロセッサに対して、デコーダ、条件フラグ、及びデコード結果のWired−OR結果を出力するバスを追加設定すれば、実現される。このような追加設定によって、多数のデータにおける最大値又は最小値を求めることができるようになる。
更に、図8は、本発明の第4の実施形態に係るマイクロプロセッサ2の別例の一部拡大図である。この別例では、デコーダの出力がバスに出力されるのではなく、一旦アキュムレータ12に格納され、アキュムレータ12の出力が条件フラグの値に拠ってバスに供給される。アキュムレータ12は、多数のデータにおける最大値又は最小値を求めるとき以外は、ALUでの演算結果を格納する。即ち、通常のアキュムレータとして機能する。
この構成は、多数のデータにおける最大値又は最小値を求めるときに必要なバスと、その他の通常の演算で利用されるバスとを共通化するものである。この構成により、回路全体をコンパクトにできるといえる。
[第5の実施形態]
図9は、本発明の第5の実施形態に係るマイクロプロセッサ2の一部拡大図である。本発明の第5の実施形態に係るマイクロプロセッサは、図8に示す本発明の第4の実施形態に係るマイクロプロセッサの別例と略同様のものである。
図9に示す第5の実施形態に係るマイクロプロセッサでは、アキュムレータよりバスに出力された値が一度、外部レジスタ20に格納され、そのレジスタ20の値が別のバスを介してALU(ALU1、ALU2、ALU3)に入力される。
かかる構成によれば、Wired−ORされた結果の値が一度、レジスタ20に格納されるため、次のサイクルでWired−OR結果の値と各アキュムレータの値との比較を行うことができる。このように構成することによって、プロセッサエレメントの数が増加してもマイクロプロセッサ全体において高速動作を行うことが可能となる。
本発明の第1の実施形態に係るマイクロプロセッサの一部拡大図である。 本発明の第1の実施形態に係るマイクロプロセッサで利用されるデコーダの概略の構成図である。 本発明の第1の実施形態に係るマイクロプロセッサに含まれる比較器の構成図(図3(b))、及び、機能内容(図3(a))である。 本発明の第2の実施形態に係るマイクロプロセッサの一部拡大図である。 本発明の第3の実施形態に係るマイクロプロセッサにおけるデコーダの回路構成図である。 本発明の第3の実施形態に係るマイクロプロセッサで利用されるコンパレータの概略の構成図である。 本発明の第4の実施形態に係るマイクロプロセッサの一部拡大図である。 本発明の第4の実施形態に係るマイクロプロセッサの別例の一部拡大図である。 本発明の第5の実施形態に係るマイクロプロセッサの一部拡大図である。 本発明に係るマイクロプロセッサの概略の構成図である。
符号の説明
2・・・マイクロプロセッサ、4・・・プロセッサエレメント、10・・・バレルシフタ、12・・・アキュムレータ、20・・・外部レジスタ。

Claims (4)

  1. 複数の2進データの中から最大値又は最小値を求めるデータ処理装置であって、
    2進データと同数以上の条件フラグと、
    各2進データをデコードするための2進データと同数以上のデコーダと、
    2進データと同数以上の比較器と、
    各デコーダからのデコード結果がWired−ORされて出力される1ビット毎のバスを有し、
    各条件フラグと各デコーダと各比較器は、対象の2進データに対して関連付けされており、
    上記デコーダによるデコード結果は、関連する条件フラグの値が真であれば1ビット毎にWired−ORされてバスに出力され、関連する条件フラグが偽であればバスに出力されず、
    各比較器は、関連するデコーダのデコード結果の値とWired−ORされたバスの値とを比較し、Wired−ORされたバス値よりもデコード結果の方が小さい場合には、関連する条件フラグの値をリセットすることを特徴とするデータ処理装置。
  2. 更に、関連する条件フラグ、デコーダ、及び比較器に対して、ビットシフト回路が関連付けされて設置され、
    各ビットシフト回路は各2進データを入力して所定幅だけビットシフトして関連するデコーダに出力し、
    複数の2進データのビット幅の中の特定部分のビット幅のデータに関して最大値又は最小値を算出することを特徴とする請求項1に記載のデータ処理装置。
  3. 各デコーダは、
    デコード結果として、LSBビットから、入力データをデコードして“1”となったビットまでを、“1”として出力し、それ以外のビットを“0”として出力する、
    又は、その負論理を出力するように構成されていることを特徴とする請求項1に記載のデータ処理装置。
  4. 請求項1乃至3のうちのいずれか一に記載のデータ処理装置であって、
    比較器が、複数の2進データを演算処理するための算術演算装置(ALU)で構成されていることを特徴とするデータ処理装置。
JP2007049413A 2007-02-28 2007-02-28 データ処理装置 Expired - Fee Related JP4825154B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007049413A JP4825154B2 (ja) 2007-02-28 2007-02-28 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007049413A JP4825154B2 (ja) 2007-02-28 2007-02-28 データ処理装置

Publications (2)

Publication Number Publication Date
JP2008217065A JP2008217065A (ja) 2008-09-18
JP4825154B2 true JP4825154B2 (ja) 2011-11-30

Family

ID=39837082

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007049413A Expired - Fee Related JP4825154B2 (ja) 2007-02-28 2007-02-28 データ処理装置

Country Status (1)

Country Link
JP (1) JP4825154B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58205252A (ja) * 1982-05-25 1983-11-30 Nec Corp 非加算混合回路
US4539549A (en) * 1982-12-30 1985-09-03 International Business Machines Corporation Method and apparatus for determining minimum/maximum of multiple data words
JPH06139048A (ja) * 1992-10-30 1994-05-20 Hitachi Ltd 最大/最小値検出回路

Also Published As

Publication number Publication date
JP2008217065A (ja) 2008-09-18

Similar Documents

Publication Publication Date Title
JP3898712B2 (ja) 3バイトのエスケープ・オペコードを使用した命令セットの拡張
JP4750850B2 (ja) 並列中央値フィルタリングに基づいた命令を有するプロセッサおよび方法
JP2008071130A (ja) Simd型マイクロプロセッサ
JP2009015556A (ja) Simd型マイクロプロセッサ
KR101105474B1 (ko) 범위 검출을 수행하기 위한 명령어 및 로직
CN112416256B (zh) 数据写入方法、装置及数据读取方法、装置
JP2008083795A (ja) ビットフィールド操作回路
JP4825154B2 (ja) データ処理装置
JP2009093513A (ja) 命令ビット長削減方法
US7668897B2 (en) Result partitioning within SIMD data processing systems
US11403727B2 (en) System and method for convolving an image
JP2016045721A (ja) データ格納方法、三値内積演算回路、それを備えた半導体装置、及び、三値内積演算処理プログラム
WO2019023910A1 (zh) 数据处理方法和设备
JP2000322235A (ja) 情報処理装置
JPH1153189A (ja) 演算装置、演算方法及びコンピュータ読み取り可能な記録媒体
US20050163381A1 (en) Image processing apparatus with SIMD-type microprocessor to perform labeling
EP2600241B1 (en) VLIW processor, instruction structure, and instruction execution method
JP4896839B2 (ja) マイクロプロセッサおよびデータ処理方法
JP4482356B2 (ja) Simdプロセッサを用いた画像処理方法及び画像処理装置
TWI740860B (zh) 基於截斷的確定性有限自動機利用硬體過濾器施行複雜正規表示法樣式匹配的方法與設備
JP2012059131A (ja) Simd型マイクロプロセッサ及びその処理方法
JP4516495B2 (ja) Simd型マイクロプロセッサにおけるデータ処理方法
JP4129280B2 (ja) バレルシフト装置
JP2008071037A (ja) Simd型マイクロプロセッサ
TWI423121B (zh) 判斷系統及方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091021

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110909

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees