JP2002297377A - ソート機能を有するsimd型マイクロプロセッサ - Google Patents

ソート機能を有するsimd型マイクロプロセッサ

Info

Publication number
JP2002297377A
JP2002297377A JP2001103145A JP2001103145A JP2002297377A JP 2002297377 A JP2002297377 A JP 2002297377A JP 2001103145 A JP2001103145 A JP 2001103145A JP 2001103145 A JP2001103145 A JP 2001103145A JP 2002297377 A JP2002297377 A JP 2002297377A
Authority
JP
Japan
Prior art keywords
data
register
general
specific
instruction
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.)
Granted
Application number
JP2001103145A
Other languages
English (en)
Other versions
JP3955741B2 (ja
Inventor
Kazuhiko Iwanaga
和彦 岩永
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 JP2001103145A priority Critical patent/JP3955741B2/ja
Priority to US10/113,766 priority patent/US7500089B2/en
Publication of JP2002297377A publication Critical patent/JP2002297377A/ja
Application granted granted Critical
Publication of JP3955741B2 publication Critical patent/JP3955741B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/24Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • 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/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • 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/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3828Multigauge devices, i.e. capable of handling packed numbers without unpacking them
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Image Processing (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】 SIMD型マイクロプロセッサの各プロセッ
サエレメントにおいてデータのソート処理を高速に行
う。 【解決手段】 複数のプロセッサエレメントを有するS
IMD型マイクロプロセッサにおいて、各プロセッサエ
レメントの備える特定のレジスタに格納される値と、オ
ペランド指示されたソースレジスタに格納される値と
の、大小比較を行う第1のインストラクションにて、比
較の結果、大きい方のデータを該特定のレジスタに格納
し、小さい方のデータを、ソースレジスタに格納するか
若しくはソースレジスタ以外のオペランド指示されたデ
ィスティネーションレジスタに格納することを特徴とす
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、SIMD(Sin
gle Instructin−streamMult
iple Data−stream;単一命令多データ
処理)型マイクロプロセッサに関する。
【0002】
【従来の技術】SIMD型マイクロプロセッサでは、複
数のデータに対して1つの命令で同時に同一の演算処理
が実行可能である。この構造により、演算は同一である
がデータ量が非常に多い処理(例えば、画像処理)に係
る用途において、頻用される。
【0003】SIMD型マイクロプロセッサにおける通
常の演算処理では、複数の演算ユニット(Proces
sor Element〔PE〕;プロセッサエレメン
ト)を並べ同一の演算を同時に複数のデータに対して実
行する。このことにより高速な演算処理が可能となって
いる。
【0004】ところで、「画像データ処理」において
は、画質補正のために様々なフィルタ処理がなされる。
通常のフィルタ処理は、画像の主走査方向、あるいは副
走査方向に隣接する画素と対象となる画素との重み付け
演算であるため、SIMD型マイクロプロセッサの同時
演算性の利点が如何なく発揮され得る。通常の重み付け
フィルタは、入力画像データのノイズ成分除去手法とし
ても、用いられることがあるが、このような重み付けフ
ィルタにおいては、輪郭部がぼやける等の欠点がある。
【0005】そこで、入力画像データのノイズ除去の有
用な手法として、「メディアン・フィルタ」が知られて
いる。輪郭部を保持したままでノイズ成分のみを除去す
ることができるため、画像処理において頻用されるフィ
ルタ(処理)である。
【0006】この「メディアン・フィルタ」とは、注目
画素を中心として、隣接している画素(例えば注目画素
の左、右、上、下、左上、右上、左下、右下に隣接して
いる8画素)と注目画素とを合わせた複数の画素中か
ら、「メディアン」、すなわちデータの大きい順に並べ
たときにちょうど中心の順位となるデータを求め、その
データを注目画素のデータとして置き換える、という処
理である。
【0007】SIMD型マイクロプロセッサにおいて
は、図5(1)のように、画素データは主走査方向に各
PEのレジスタ(図ではR2レジスタ)に並べられてい
る。副走査方向に画素を参照しようとするには、いった
ん現ライン画素データを別のレジスタ(図ではR1レジ
スタ)にコピーして、SIMD型マイクロプロセッサの
外部に設置されたFIFOメモリなどのラインバッファ
に格納することによって、ラインディレイを作ってい
る。この操作を複数回繰り返すことによって副走査方向
の画素が複数ライン分参照できる(図ではR1レジスタ
をラインディレイさせてR0レジスタを作ってい
る。)。
【0008】メディアン・フィルタ処理では、全てのP
Eにおいて、自身の画素を中心にして隣接する画素との
「メディアン」を取る(確定する)処理が必要となる。
例えば、図5(2)において、番号[5]が付されたP
E、即ちPE[5]に着目する。ここで、注目画素を、
自身(PE[5])のR1レジスタに格納されている画
素「E」とする。すると、左上、左、左下の画素のデー
タは1つ前のPE(PE[4])のR0レジスタ(図で
は「A」の画素)、R1(図では「D」の画素)、R2
(図では「G」の画素)に格納され、右上、右、右下の
画素のデータは1つ後のPE(PE[6])のR0レジ
スタ(図では「C」)、R1レジスタ(図では
「F」)、R2(図では「I」)に格納されている。な
お、PEに付される番号、及び(R0、R1、R2など
の)レジスタの種類については、後で説明する。
【0009】上記のような9画素(「A」「B」「C」
「D」「E」「F」「G」「H」「I」)のデータをソ
ートしてメディアン(中心値)である5番目に大きい画
素データを求めるためには、従来技術においては、画素
データのソート処理を相当に多数回行なうことが欠かせ
ない。そのような相当量のソート処理を軽減する若しく
は高速化する方策が模索されている。
【0010】メディアン・フィルタ処理を高速化するた
めの手法はSIMD型マイクロプロセッサに関するもの
だけではない。例えば、特開平6−274617号は、
「3×3」画素でのメディアン・フィルタの処理を取り
上げている。そこでは、ソートする処理を3画素のソー
ト、6画素のマージソート、9画素のマージソートと3
つの段階に分けて処理の高速化を図る手法について、開
示されている。また、特開平5−2645号には、対象
となるデータをビットスライスに分割し、上位ビットか
ら順に“1”の立っているデータの数を計数し、所望の
順位のデータを求める方法について開示されている。い
ずれも、SISD型プロセッサあるいは画像処理専用L
SIにおいては有効であり、メディアン・フィルタ処理
を高速に行うことが可能となっている。
【0011】しかし、SIMD型マイクロプロセッサを
用いる画像処理において、上記発明を適用するのは、以
下に述べるように、困難である。
【0012】特開平6−274617号の発明を利用す
ると、6画素及び9画素でのマージソートにおいて、S
ISDなど分岐処理が可能であるプロセッサにおいては
全体での処理速度が向上する。しかし、SIMD型マイ
クロプロセッサにおいては各PE毎に分岐処理を行うこ
とができないため、全ての分岐先の演算を実行する必要
が生じかえって処理時間がかかってしまう。
【0013】また、特開平5−2645号においては、
対象となるデータをビットスライスに分割し、上位ビッ
トから順に“1”の立っているデータの数を計数し、所
望の順位のデータを求める方法について、開示されてい
る。このことを利用しようとすると、SIMD型マイク
ロプロセッサにおいては、注目画素の左右の画素データ
が隣接するPEのレジスタにデータが格納されているた
め、ビットスライスにまで分割されたデータを作るには
隣接するPEからデータを引用してくる必要がある。そ
うすると、結果として配線数が増大してしまう。更に、
ビットスライスに対する計数器、加算器を全ビット分ま
で各PEに保有させると、回路規模が非現実的なまでに
増大してしまう。各ビットにまで処理を分割して実行さ
せると、膨大なサイクル数がかかってしまうことにもな
る。
【0014】特開平11−149554号では、SIM
D型マイクロプロセッサにおけるメディアン・フィルタ
処理が開示されている。そこでは、「3×3画素」での
計算方法が示されている。まず、3画素のソート処理を
「列」方向に行い、次にソート後のデータに対して、
「行」方向に3画素のソート処理を行い、最後に対角線
方向にソートを行うというものである。
【0015】上記の開示内容においては、基本となる
「3画素のソート処理」に関しては示されていない。こ
の「3画素のソート処理」を高速に行なえない、即ち
「3画素のソート処理」に時間がかかってしまうと、全
体処理時間も比例して増えてしまうことになる。3画素
のデータをソート処理する場合、従来のSIMD型マイ
クロプロセッサでは、以下のような順序で行なってい
る。
【0016】以下では、比較対象となる3画素のデータ
が、各PEのR0、R1、R2レジスタに格納されてお
り、ソート処理後のデータは、各PEのR16、R1
7、R18に降順に格納される。「MAX」命令とは、
2つのソースレジスタの値の比較を行い、大きい方のデ
ータを指定したレジスタに書き戻す命令であり、同様に
「MIN」命令とは、小さい方のデータを指定したレジ
スタに書き戻す命令である。
【0017】1.R0とR1とのMAX演算を行い、結
果をR16に格納する。 2.R0とR1とのMIN演算を行い、結果をR17に
格納する。 3.R2とR17とのMIN演算を行い、結果をR18
に格納する。 4.R2とR17とのMAX演算を行い、結果をR17
に格納する。 5.R16とR17とのMAX演算を行い、結果をR1
6に格納する。 6.R16とR17とのMIN演算を行い、結果をR1
7に格納する。
【0018】以上のように、6サイクルの処理サイクル
が必要となる。
【0019】特開平11−149554号の手法によ
り、「3×3画素」のメディアン・フィルタ処理を行な
うには、 (1)「列」方向に3画素のデータをソートする(「S
IMD」であるから、3列分、同時実行可能であ
る。)。;6サイクル (2)「行」方向に3画素のデータをソートする。;3
行で10サイクル (3)対角線方向に3画素のデータをソートする。;6
サイクル となり、全体で22サイクルが必要となる。上記(2)
においては、3画素のMAX、MINを求める際に、ソ
ート処理が不要であり2サイクルで求められる。よっ
て、処理時間が3行分のソートに必要な18サイクルよ
りは短く済む。
【0020】
【発明が解決しようとする課題】本発明は、SIMD型
マイクロプロセッサの各プロセッサエレメントにおい
て、データのソート処理を高速に行ない得ることを目的
としている。
【0021】
【課題を解決するための手段】本発明は、上記目的を達
成するために為されたものである。本発明に係る請求項
1に記載のSIMD型マイクロプロセッサは、複数のプ
ロセッサエレメントを有するSIMD型マイクロプロセ
ッサであって、各プロセッサエレメントの備える特定の
レジスタに格納される値と、オペランド指示されたソー
スレジスタに格納される値との、大小比較を行う第1の
インストラクションにて、比較の結果、大きい方のデー
タを該特定のレジスタに格納し、小さい方のデータを、
ソースレジスタに格納するか若しくはソースレジスタ以
外のオペランド指示されたディスティネーションレジス
タに格納することを特徴とする、SIMD型マイクロプ
ロセッサである。
【0022】本発明に係る請求項2に記載のSIMD型
マイクロプロセッサは、複数のプロセッサエレメントを
有するSIMD型マイクロプロセッサであって、各プロ
セッサエレメントの備える特定のレジスタに格納される
値と、オペランド指示されたソースレジスタに格納され
る値との、大小比較を行う第2のインストラクションに
て、比較の結果、小さい方のデータを該特定のレジスタ
に格納し、大きい方のデータを、ソースレジスタに格納
するか若しくはソースレジスタ以外のオペランド指示さ
れたディスティネーションレジスタに格納することを特
徴とする、SIMD型マイクロプロセッサである。
【0023】本発明に係る請求項3に記載のSIMD型
マイクロプロセッサは、複数のプロセッサエレメントを
有するSIMD型マイクロプロセッサであって、各プロ
セッサエレメントの備える特定のレジスタに格納される
値と、オペランド指示されたソースレジスタに格納され
る値との、大小比較を行う第1のインストラクションに
て、比較の結果、大きい方のデータを該特定のレジスタ
に格納し、小さい方のデータを、ソースレジスタに格納
するか若しくはソースレジスタ以外のオペランド指示さ
れたディスティネーションレジスタに格納し、更に、各
プロセッサエレメントの備える特定のレジスタに格納さ
れる値と、オペランド指示されたソースレジスタに格納
される値との、大小比較を行う第2のインストラクショ
ンにて、比較の結果、小さい方のデータを該特定のレジ
スタに格納し、大きい方のデータを、ソースレジスタに
格納するか若しくはソースレジスタ以外のオペランド指
示されたディスティネーションレジスタに格納すること
を特徴とする、SIMD型マイクロプロセッサである。
【0024】本発明に係る請求項4に記載のソート処理
方法は、請求項3に記載のSIMD型マイクロプロセッ
サを利用し、各プロセッサエレメントにて各プロセッサ
エレメントに備わるn個(nは4以上の自然数)の、第
1の汎用レジスタから第n番目の汎用レジスタを、ソー
トバッファとして使用し、上記ソートバッファにおいて
は、第1番目の汎用レジスタから第n番目の汎用レジス
タへ大きい数値から順に格納し、よって、各プロセッサ
エレメントにて、n個のデータをソート処理する方法で
ある。そのソート処理方法は、(1)1番目の比較対象
データを特定のレジスタにロードする、工程1と、
(2)2番目の比較対象データと特定のレジスタのデー
タとの、第1のインストラクションの演算を行い、第n
番目の汎用レジスタには小さい方のデータを書き戻し、
特定のレジスタには大きい方のデータを残す、工程2
と、(3)3番目の比較対象データと特定のレジスタの
データとの、第2のインストラクションの演算を行い、
第(n−2)番目の汎用レジスタには大きい方のデータ
を書き戻し、特定のレジスタには小さい方のデータを残
し、続いて、第n番目の汎用レジスタのデータと特定の
レジスタのデータとの、第2のインストラクションの演
算を行い、第(n−1)番目の汎用レジスタには大きい
方のデータを書き戻し、特定のレジスタには小さい方の
データを残す、工程3と、(4)4番目の比較対象デー
タと特定のレジスタのデータとの、第1のインストラク
ションの演算を行い、第n番目の汎用レジスタには小さ
い方のデータを書き戻し、特定のレジスタには大きい方
のデータを残し、続いて、第(n−1)番目の汎用レジ
スタのデータと特定レジスタのデータとの、第1のイン
ストラクションの演算を行い、第(n−1)番目の汎用
レジスタに小さい方のデータを書き戻し、特定のレジス
タには大きい方のデータを残し、更に続いて、第(n−
2)番目の汎用レジスタのデータと特定レジスタのデー
タとの、第1のインストラクションの演算を行い、第
(n−2)番目の汎用レジスタに小さい方のデータを書
き戻し、特定のレジスタには大きい方のデータを残す、
工程4と、(5)(2i−1)番目(iは3以上の自然
数)の比較対象データと特定のレジスタのデータとの、
第2のインストラクションの演算を行い、第[n−(2
i−2)]番目の汎用レジスタには大きい方のデータを
書き戻し、特定のレジスタには小さい方のデータを残
し、続いて、第[n−(2i−4)]番目の汎用レジス
タのデータと特定のレジスタのデータとの、第2のイン
ストラクションの演算を行い、第[n−(2i−3)]
番目のレジスタには大きい方のデータを書き戻し、特定
のレジスタには小さい方のデータを残し、この後、同様
にソートバッファにて1つずつ序数の大きい汎用レジス
タに移行しつつ、ソートバッファの汎用レジスタのデー
タと特定のレジスタのデータとの、第2のインストラク
ションの演算を行い、大きい方のデータを1つ序数が小
さい汎用レジスタに書き戻すことを繰り返し、最後に第
n番目の汎用レジスタのデータと特定のレジスタのデー
タとの、第2のインストラクションの演算を行い、第
(n−1)番目の汎用レジスタに大きい方のデータを書
き戻し、特定のレジスタには小さい方のデータを残す、
工程5と、(6)2i番目の比較対象データと特定のレ
ジスタのデータとの、第1のインストラクションの演算
を行い、第n番目の汎用レジスタには小さい方のデータ
を書き戻し、特定のレジスタには大きい方のデータを残
し、続いて、第(n−1)番目の汎用レジスタのデータ
と特定のレジスタのデータとの、第1のインストラクシ
ョンの演算を行い、第(n−1)番目の汎用レジスタに
小さい方のデータを書き戻し、特定のレジスタには大き
い方のデータを残し、この後、同様にソートバッファに
て1つずつ序数の小さい汎用レジスタに移行しつつ、ソ
ートバッファの汎用レジスタのデータと特定のレジスタ
のデータとの、第1のインストラクションの演算を行
い、小さい方のデータを同じ汎用レジスタに書き戻すこ
とを繰り返し、最後に第[n−(2i−2)]番目の汎
用レジスタのデータと特定のレジスタのデータとの、第
1のインストラクションの演算を行い、第[n−(2i
−2)]番目の汎用レジスタに小さい方のデータを書き
戻し、特定のレジスタには大きい方のデータを残す、工
程6と、を含み、工程1、工程2、工程3及び工程4を
実施し、その後、工程5及び工程6を、両工程が一回実
施される毎にiを1ずつインクリメントしながら、比較
対象データがn番目のものになるまで継続し、nが偶数
の場合は、ソートバッファの最大値の端部にてソート処
理を終えて終了し、一方、nが奇数の場合は、ソートバ
ッファの最小値の端部にてソート処理を終えて終了す
る、ソート処理方法である。
【0025】本発明に係る請求項5に記載のソート処理
方法は、請求項3に記載のSIMD型マイクロプロセッ
サを利用し、各プロセッサエレメントにて各プロセッサ
エレメントに備わるn個(nは4以上の自然数)の、第
1の汎用レジスタから第n番目の汎用レジスタを、ソー
トバッファとして使用し、上記ソートバッファにおいて
は、第1番目の汎用レジスタから第n番目の汎用レジス
タへ大きい数値から順に格納し、よって、各プロセッサ
エレメントにて、n個のデータをソート処理する方法で
ある。そのソート処理方法は、(1)1番目の比較対象
データを特定のレジスタにロードする、工程1と、
(2)2番目の比較対象データと特定のレジスタのデー
タとの、第2のインストラクションの演算を行い、第1
番目の汎用レジスタには大きい方のデータを書き戻し、
特定のレジスタには小さい方のデータを残す、工程2
と、(3)3番目の比較対象データと特定のレジスタの
データとの、第1のインストラクションの演算を行い、
第3番目の汎用レジスタには小さい方のデータを書き戻
し、特定のレジスタには大きい方のデータを残し、続い
て第1番目の汎用レジスタのデータと特定のレジスタの
データとの、第1のインストラクションの演算を行い、
第2番目の汎用レジスタには小さい方のデータを書き戻
し、特定のレジスタには大きい方のデータを残す、工程
3と、(4)4番目の比較対象データと特定のレジスタ
のデータとの、第2のインストラクションの演算を行
い、第1番目の汎用レジスタには大きい方のデータを書
き戻し、特定のレジスタには小さい方のデータを残し、
続いて、第2番目の汎用レジスタのデータと特定のレジ
スタのデータとの、第2のインストラクションの演算を
行い、第2番目の汎用レジスタに大きい方のデータを書
き戻し、特定のレジスタには小さい方のデータを残し、
更に続いて、第3番目の汎用レジスタのデータと特定の
レジスタのデータとの、第2のインストラクションの演
算を行い、第3番目の汎用レジスタに大きい方のデータ
を書き戻し、特定のレジスタには小さい方のデータを残
す、工程4と、(5)(2i−1)番目(iは3以上の
自然数)の比較対象データと特定のレジスタのデータと
の、第1のインストラクションの演算を行い、第(2i
−1)番目のレジスタには小さい方のデータを書き戻
し、特定のレジスタには大きい方のデータを残し、続い
て、第(2i−3)番目の汎用レジスタのデータと特定
のレジスタのデータとの、第1のインストラクションの
演算を行い、第(2i−2)番目のレジスタには小さい
方のデータを書き戻し、特定のレジスタには大きい方の
データを残し、この後、同様にソートバッファにて1ず
つ序数の小さい汎用レジスタに移行しつつ、ソートバッ
ファの汎用レジスタのデータと特定のレジスタのデータ
との、第1のインストラクションの演算を行い、小さい
方のデータを序数が1つ小さい汎用レジスタに書き戻す
ことを繰り返し、最後に第1番目の汎用レジスタのデー
タと特定のレジスタのデータとの第1のインストラクシ
ョンの演算を行い、第2番目の汎用レジスタに小さい方
のデータを書き戻し、特定のレジスタには大きい方のデ
ータを残す、工程5と、(6)2i番目の比較対象デー
タと特定のレジスタのデータとの、第2のインストラク
ションの演算を行い、第1番目の汎用レジスタには大き
い方のデータを書き戻し、特定のレジスタには小さい方
のデータを残し、続いて、第2番目の汎用レジスタのデ
ータと特定のレジスタのデータとの、第2のインストラ
クションの演算を行い、第2番目の汎用レジスタに大き
い方のデータを書き戻し、特定のレジスタには小さい方
のデータを残し、この後、同様にソートバッファにて1
つずつ序数の大きい汎用レジスタに移行しつつ、ソート
バッファの汎用レジスタのデータと特定のレジスタのデ
ータとの、第2のインストラクションの演算を行い、大
きい方のデータを同じ汎用レジスタに書き戻すことを繰
り返し、最後に第(2i−1)番目の汎用レジスタのデ
ータと特定のレジスタのデータとの、第2のインストラ
クションの演算を行い、第(2i−1)番目の汎用レジ
スタに大きい方のデータを書き戻し、特定のレジスタに
は小さい方のデータを残す、工程6と、を含み、工程
1、工程2、工程3及び工程4を実施し、その後、工程
5及び工程6を、両工程が一回実施される毎にiを1ず
つインクリメントしながら、比較対象データがn番目の
ものになるまで継続し、nが偶数の場合は、ソートバッ
ファの最小値の端部にてソート処理を終えて終了し、一
方、nが奇数の場合は、ソートバッファの最大値の端部
にてソート処理を終えて終了する、ソート処理方法であ
る。
【0026】
【発明の実施の形態】以下、図面を参照して、本発明に
係る好適な実施形態を説明する。
【0027】図1は、本発明に係るSIMD型マイクロ
プロセッサ2の概略の構成を示すブロック図である。該
SIMD型マイクロプロセッサ2は、概略、グローバル
プロセッサ4、レジスタファイル6、及び演算アレイ8
から構成される。
【0028】(1)グローバルプロセッサ4 このグローバルプロセッサ4そのものは、いわゆるSI
SD型のプロセッサであり、プログラムRAM10とデ
ータRAM12を内蔵し(図2参照)、プログラムを解
読し各種制御信号を生成する。この制御信号は内蔵する
各種ブロック以外に、レジスタファイル6、演算アレイ
8にも供給される。また、GP(グローバルプロセッ
サ)命令実行時は内蔵する汎用レジスタ、ALU(算術
論理演算器)等を使用して各種演算処理、プログラム制
御処理をおこなう。
【0029】(2)レジスタファイル6 PE(プロセッサエレメント)命令で処理されるデータ
を保持している。PE(プロセッサエレメント)3は、
公知のように、SIMD(Single Instru
ction−Stream,Multiple Dat
a−Stream)型プロセッサにおいて個別の演算を
実行する構成単位である。図2のレジスタファイル6及
び演算アレイ8が示すように、図2のSIMD型マイク
ロプロセッサ2では256個のPE3を含んでいる。上
記のPE命令はSIMD型の命令であり、レジスタファ
イル6に保持されている複数のデータに対し、同時に同
じ処理を行なう。このレジスタファイル6からのデータ
の読み出し/書き込みの制御はグローバルプロセッサ4
からの制御によって行なわれる。読み出されたデータは
演算アレイ8に送られ、演算アレイ8での演算処理後に
レジスタファイル6に書き込まれる。
【0030】また、レジスタファイル6はプロセッサ2
外部からのアクセスが可能であり、グローバルプロセッ
サ4の制御とは別に、外部から特定のレジスタに対し読
み出し/書き込みが行なわれる。
【0031】(3)演算アレイ PE命令の演算処理が行なわれる。処理の制御はすべて
グローバルプロセッサ4から行なわれる。
【0032】図2は、本発明に係るSIMD型マイクロ
プロセッサ2の、更に詳細な構成を示すブロック図であ
る。
【0033】グローバルプロセッサ4には、本プロセッ
サ2のプログラム格納用のプログラムRAM10と、演
算データ格納用のデータRAM12が内蔵されている。
さらに、プログラムのアドレスを保持するプログラムカ
ウンタ(PC)14、演算処理のデータ格納のための汎
用レジスタであるG0、G1、G2及びG3レジスタ
(16、18、20、22)、レジスタ退避・復帰時に
退避先データRAMのアドレスを保持しているスタック
ポインタ(SP)24、サブルーチンコール時にコール
元のアドレスを保持するリンクレジスタ(LS)26、
同じくIRQ(Interrupt ReQuest;
割込み要求)時とNMI(Non−Maskable
Interrupt request;禁止不能割込み
要求)時の分岐元アドレスを保持するLIレジスタ28
及びLNレジスタ30、プロセッサの状態を保持してい
るプロセッサステータスレジスタ(P)32が内蔵され
ている。
【0034】これらのレジスタと、(図示していない)
命令デコーダ、ALU、SCU(シーケンシャルユニッ
ト)、メモリ制御回路、割り込み制御回路、外部I/O
制御回路及びGP演算制御回路とを使用して、GP命令
の実行が行なわれる。
【0035】また、PE命令実行時には、命令デコーダ
(図示せず。)、レジスタファイル制御回路(図示せ
ず。)、PE演算制御回路(図示せず。)を使用して、
レジスタファイル6の制御と演算アレイ8の制御を行な
う。さらに、データRAM12から複数のPEレジスタ
ファイル6にデータを転送できるように、設定されてい
る。
【0036】レジスタファイル6においては、1つのP
E単位に8ビットのレジスタ34が32本内蔵されてお
り、256個のPE分の(32本の)組が、アレイ構成
になっている。レジスタ34はPE毎に、R0、R1、
R2、...R31と呼ばれる。それぞれのレジスタ3
4は、演算アレイ8に対して1つの読み出しポートと1
つの書き込みポートを備えており、8ビットのリード/
ライト兼用のバスで演算アレイ8からアクセスされる。
32本のレジスタの内、24本(R0〜R23)はプロ
セッサ外部からアクセス可能であり、外部からはクロッ
ク(CLK)とアドレス(Address)、リード/
ライト制御(RWB)を入力することで、任意のレジス
タ34に対し、読み書きできる。残りの8本(R24〜
R31)のレジスタ34は、PE演算の一時的な演算デ
ータ保存用として使用される。
【0037】演算アレイ8は、16ビットALU36と
16ビットAレジスタ38、1つ又は複数のFレジスタ
40を内蔵している。PE命令による演算は、レジスタ
ファイル6から読み出されたデータ若しくはグローバル
プロセッサ4から与えられたデータをALU36の片側
の入力とし、Aレジスタ38の内容をもう片側の入力と
して、通常、行なわれるものである。その演算結果は、
Aレジスタ38に格納される。したがって、R0〜R3
1レジスタ34若しくはグローバルプロセッサ4から与
えられたデータと、Aレジスタ38に格納されるデータ
との、演算が通常行なわれることになる。
【0038】レジスタファイル6と演算アレイ8との接
続に、7to1(7対1)のマルチプレクサ42が置か
れている。図2に示すように、あるマルチプレクサ42
から見て、左方向の3つのPE3に含まれるR0〜R3
1レジスタ34のデータと、右方向の3つのPE3に含
まれるR0〜R31レジスタ34のデータと、自らが属
するPE3に含まれるR0〜R31レジスタ34のデー
タを、演算対象として選択し得るように設定されてい
る。また、レジスタファイル6の8ビットのデータは、
シフト・拡張回路44により任意のビット分だけ、左シ
フトしてALU36に入力する。
【0039】さらに、8ビットの条件レジスタ(図示せ
ず。)により、PE3別に演算実行の無効/有効の制御
をしており、特定のPE3だけを演算対象として選択で
きるようになっている。
【0040】各PE3には、PE番号と呼ばれる通し番
号が付されている。図2のSIMD型マイクロプロセッ
サ2では、PEの個数が256個であるので、8ビット
のビット列(即ち、00000000b〜111111
11bの256通り。ここで、上記のような末尾の
“b”は2進法表記であることを表す。)が、各PE3
にPE番号データとして与えられる。PE番号は、各P
E3に対し、PEの位置とは無関係に与えられても構わ
ないが、本明細書においては、(左)端から順に付され
ているものとする。また、PE番号が「n」であるPE
を、 ・PE[n] と表すことにする。従って、図2のSIMD型マイクロ
プロセッサ2は、左方から、PE[0]、PE[2]、
PE[3]、・・・PE[254]、PE[255]に
より、構成される。
【0041】なお、上記のPE番号データは、各PE3
にて8ビットの入力端子を備えさせその端子をVCC若
しくはGNDに結ぶ組み合わせを変えることにより、作
成している。
【0042】≪第1の実施の形態≫図3は、本発明の第
1の実施の形態に係るSIMD型マイクロプロセッサ2
のブロック図、特に、1つのPE3部分を拡大したブロ
ック図を示す。
【0043】各PEの演算部(演算アレイ8)は、 ・ALU36、 ・2つのALUラッチ(ALT[1]50−1、ALT
[2]50−2)、 ・演算結果を格納するAレジスタ38、 ・テンポラリレジスタとして利用される2つのFレジス
タ(F1レジスタ40−1、F2レジスタ40−2)、 ・ALU36より出力されるキャリーをラッチするCF
(キャリーフラグ)54、を含んでいる。Aレジスタ3
8とALU36との間には、マルチプレクサ52が挿入
されて設置されており、Aレジスタ38に格納する値と
して、ALU36での演算結果、若しくは2つのALU
ラッチ(ALT[1]50−1、ALT[2]50−
2)の内容の、都合3つから1つのデータが選択される
ことが可能となっている。このマルチプレクサ52の選
択を制御する選択信号として、 ・グローバルプロセッサ4からの制御信号[1]と、 ・ALU36から出力されたキャリーとが入力されてい
る。ここで、ALU36においては、通常の演算命令を
行う場合には、ALU36の演算結果をAレジスタ38
に入力するようにし、(後で説明する)「MAXS」命
令若しくは「MINS」命令を実行する場合には、キャ
リーによってALT[1]とALT[2]のどちらかが
選択されてAレジスタ38に入力するように、上記選択
信号により制御されるのが望ましい。
【0044】F1レジスタ40−1及びF2レジスタ4
0−2は、ALT[1]もしくはALT[2]からのデ
ータを転送することができるように構成されている。ど
ちらのデータを入力して保持するかは図示していない
が、グローバルプロセッサ4よりの制御線によって決定
される。Aレジスタ38及び2つのFレジスタ(F1レ
ジスタ40−1、F2レジスタ40−2)は、データバ
ス55にデータを出力するための経路を有している。こ
こで、Aレジスタ38の出力制御は、グローバルプロセ
ッサ4よりの制御信号2によって、2つのFレジスタ
(F1レジスタ40−1、F2レジスタ40−2)の出
力制御は、グローバルプロセッサ4よりの制御信号3、
制御信号4、及びCF54の値によって、制御される。
【0045】上記の第1の実施の形態に係るSIMD型
マイクロプロセッサ2の動作を説明する。
【0046】先ず、「MAXS」命令時について示す。
最初、Aレジスタ38の値が、ALT[2]50−2に
入力され、オペランド指示されたソースレジスタの値
が、ALT[1]50−1に入力され、ALU36にて
比較(減算演算)される。比較結果は、「キャリー」と
なってALU36より出力される。演算後、Aレジスタ
38には「キャリー」の値に応じて、ALT[1]50
−1及びALU[2]50−2のうち大きい(即ち、M
AXS命令)値が入力される。
【0047】F1レジスタ40−1にはALT[1]5
0−1の値が入力され、F2レジスタ40−2にはAL
T[2]50−2の値が入力されるように、グローバル
プロセッサ4より制御される。
【0048】ディスティネーションレジスタへのデータ
転送に関しては、キャリーをラッチしたCF54の値に
応じてF1レジスタ40−1とF2レジスタ40−2の
うちで、どちらがデータバス55にデータを出力するか
が決定される。そのため、小さい(MAXS命令時)値
を転送することが可能となる。
【0049】上記の説明では、ソースレジスタとディス
ティネーションレジスタとは別々にオペランド指示され
ていることが想定されている。ソースレジスタとディス
ティネーションとが同一のオペランド(ソースオペラン
ドのみ)で指定されてもよい。この場合はオペランド数
が少なくてすむため命令マッピング上有利である。
【0050】続いて、「MINS」命令時について示
す。MINS命令は、ALU36における比較(減算演
算)の順序を、MAXS命令と逆の順序にすることで実
現できる。若しくは、Aレジスタ38の入力を選択する
マルチプレクサ52において、「キャリー」を反転して
入力するようにし、F1レジスタ40−1にALT
[2]50−2の値を入力し、F2レジスタ40−1に
はALT[1]50−1の値を入力するように、グロー
バルプロセッサ4より制御することでも実現できる。か
かる構成によれば、上記MAXS命令実行時と逆に、小
さい方のデータがAレジスタ38に格納され、大きい方
のデータがディスティネーションレジスタに格納され
る。
【0051】≪第2の実施の形態≫2つの比較対象デー
タが符号無しデータの場合は、上記のように比較結果を
キャリー出力によって判断することが可能である。しか
し、2つの比較対象データが符号付きデータの場合に
は、比較結果は、ネガティブビット(ALU36の減算
結果の最上位ビット)と、オーバフロービットとの、排
他的論理和によって判断される必要がある。
【0052】図4は、本発明の第2の実施の形態に係る
SIMD型マイクロプロセッサ2のブロック図、特に、
1つのPE3部分を拡大したブロック図を示す。
【0053】図4のPEの構成によれば、符号無しデー
タ、符号付きデータの何れにも対応し得る。ALU36
より出力される各フラグ(C:キャリー、V:オーバフ
ロー、N:ネガティブ)は、Aレジスタ38への入力を
選択するマルチプレクサ52及び、フラグレジスタブロ
ック(PSR)68へと入力されている。マルチプレク
サ52は、比較対象データが符号なしの場合には、キャ
リーによってAレジスタ38に入力するデータを選択
し、符号ありの場合はオーバフロービットとネガティブ
ビットとの排他的論理和によってAレジスタ38に入力
するデータを選択するように構成される。フラグレジス
タブロック(PSR)68では、各フラグのラッチを行
っている。内蔵しているマルチプレクサ68によって、
比較対象データが符号無しデータの場合はCF(キャリ
ーフラグ)を、符号ありの場合はNF(ネガティブフラ
グ)とVF(オーバフローフラグ)との排他的論理和
を、F1レジスタ40−1、F2レジスタ40−2の出
力イネーブル制御信号として出力する。
【0054】≪基本的なソート処理の実施について≫ま
ず、上記の図3又は図4にて示されるSIMD型マイク
ロプロセッサ2を利用すれば、すでにソート済みのデー
タに対して、引き続き新たなデータが付加更新されてき
た場合に、ソート処理を効率よく行うことができる。
【0055】以下において、5個のソート済みデータが
あり、R0、R1、R2、R3、R4の各レジスタにそ
れぞれ格納され(但し、R0≧R1≧R2≧R3≧R4
となっている)、更に、1個の未ソートデータが(付
加)更新されてきた場合の、ソート処理について記述す
る。
【0056】1.Aレジスタ38に、未ソートデータを
ロードする。 2.Aレジスタ38とR4とのデータの比較を行い、大
きい方のデータをAレジスタ38に残す。 3.Aレジスタ38とR3とのデータの比較を行い、大
きい方のデータをAレジスタ38に残し、小さい方のデ
ータをR4に格納する。 4.Aレジスタ38とR2とのデータの比較を行い、大
きい方のデータをAレジスタに残し、小さい方のデータ
をR3レジスタに格納する。 5.Aレジスタ38とR1とのデータの比較を行い、大
きい方のデータをAレジスタに残し、小さい方のデータ
をR2レジスタに格納する。 6.Aレジスタ38とR0とのデータの比較を行い、大
きい方のデータをAレジスタに残し、小さい方のデータ
をR1レジスタに格納する。 7.Aレジスタ38の値をR0レジスタに格納する。
【0057】ソートバッファ(R0、R1、R2、R
3、R4)の上位側(即ち、値の大きい側)に伝達すべ
きデータが、Aレジスタ38に残り続けるため、上記の
ように連続して処理を続けることが可能となっている。
以上の処理は、ソートバッファの下位順から上位順側に
向かって処理を行っているが、逆に上位側から下位側に
向かって行っても同様であることは自明である。
【0058】≪3個のデータのソート処理について≫以
下では、本発明の第1の実施の形態若しくは第2の実施
の形態に係るSIMD型マイクロプロセッサ2を利用し
て、3個のデータをソートする処理について説明する。
【0059】比較対象となるデータが各PE3のR0、
R1、R2レジスタに格納されており、ソート後のデー
タが各PE3のR16、R17、R18レジスタに格納
されるものとする。但し、R16≧R17≧R18とな
っている。
【0060】1.Aレジスタ38にR0レジスタの値を
ロードする。 2.Aレジスタ38とR1レジスタの値を比較し、大き
い方のデータをAレジスタ38に残し、小さい方のデー
タをR18レジスタに格納する。 3.Aレジスタ38とR2レジスタの値を比較し、小さ
い方のデータをAレジスタ38に残し、大きい方のデー
タをR16レジスタに格納する。 4.Aレジスタ38とR18レジスタの値を比較し、小
さい方のデータをAレジスタ38に残し、大きい方のデ
ータをR17レジスタに格納する。 5.Aレジスタ38のデータをR18レジスタに格納す
る。
【0061】次の処理でも、上記と同様のソートが行え
る。
【0062】1.Aレジスタ38にR0レジスタの値を
ロードする。 2.Aレジスタ38とR1レジスタの値を比較し、小さ
い方のデータをAレジスタ38に残し、大きい方のデー
タをR16レジスタに格納する。 3.Aレジスタ38とR2レジスタの値を比較し、大き
い方のデータをAレジスタ38に残し、小さい方のデー
タをR18レジスタに格納する。 4.Aレジスタ38とR16のデータを比較し、大きい
方のデータをAレジスタに残し、小さい方のデータをR
17に格納する。 5.Aレジスタ38のデータをR16に格納する。
【0063】従来のSIMD型マイクロプロセッサで
は、6サイクル必要だったソート処理が、上記のように
5サイクルで行えることがわかる。上記の処理におい
て、「1.Aレジスタ38にR0レジスタの値をロード
する。」という処理は、画像処理においては、必ず、ソ
ートを行う以前に実施されているはずである。よって、
(最後に)Aレジスタ38に格納されている画素データ
を最初のソート対象データとすることによって更に1サ
イクルを削減できることとなる。
【0064】≪メディアン・フィルタ処理の実施につい
て≫以下にて、本発明を用いて、「3×3」の画素領域
でのメディアン・フィルタの処理について、説明する。
【0065】上記の場合、メディアン(中心値)は5番
目のデータであるから、ソートバッファとして5個のバ
ッファが必要であることがわかる。5個のバッファとし
て、ここでは、 ・R16、R17、R18、R19、R20の各レジス
タを使用することにする。
【0066】また、各PE3のR0レジスタに、一番上
の行の画素データが格納されており、R1レジスタに中
心の画素データが格納されており、R2レジスタに一番
下の画素データが格納されているとする。SIMD型マ
イクロプロセッサ2においては、PE3は主走査方向に
展開される。また、副走査方向(下向き)の一番下の画
素データ(即ち、R2レジスタのデータ)が現ラインデ
ータとされ、それよりも上の行の画素データに関して
は、FIFOメモリ等を用いるラインバッファにライン
遅延させたデータを持たせることになる。ここではR0
レジスタ、R1レジスタがライン遅延されているデータ
となる(図5)。
【0067】1.R2レジスタのデータを、Aレジスタ
38にロードする(現ラインデータであるから既に実施
されていることが多い。)。 2.Aレジスタ38の値と、1つ左のPEのR0レジス
タの値とを比較し、大きい方のデータをAレジスタ38
に残し、小さい方のデータをR20レジスタに格納す
る。 3.Aレジスタ38の値と、同一PE内のR0レジスタ
の値とを比較し、小さい方のデータをAレジスタ38に
残し、大きい方のデータをR18レジスタに格納する。 4.Aレジスタ38の値と、R20レジスタの値とを比
較し、小さい方のデータをAレジスタ38に残し、大き
い方のデータをR19レジスタに格納する。 5.Aレジスタ38の値と、1つ右のPEのR0レジス
タの値とを比較し、大きい方のデータをAレジスタ38
に残し、小さい方のデータをR20レジスタに格納す
る。 6.Aレジスタ38の値と、R19レジスタの値を比較
し、大きい方のデータをAレジスタ38に残し、小さい
方のデータをR19レジスタに格納する。 7.Aレジスタ38の値と、R18レジスタの値を比較
し、大きい方のデータをAレジスタ38に残し、小さい
方のデータをR18レジスタに格納する。 8.Aレジスタ38の値と、1つ左のPEのR1レジス
タの値とを比較し、小さい方のデータをAレジスタ38
に残し、大きい方のデータをR16レジスタに格納す
る。 9.Aレジスタ38の値と、R18レジスタの値を比較
し、小さい方のデータをAレジスタ38に残し、大きい
方のデータをR17レジスタに格納する。 10.Aレジスタ38の値と、R19レジスタの値を比
較し、小さい方のデータをAレジスタ38に残し、大き
い方のデータをR18レジスタに格納する。 11.Aレジスタ38の値と、R20レジスタの値を比
較し、小さい方のデータをAレジスタ38に残し、大き
い方のデータをR19レジスタに格納する。 12.Aレジスタ38の値と、同一のPEのR1レジス
タの値とを比較し、大きい方のデータをAレジスタ38
に残す。 13.Aレジスタ38の値と、R19レジスタの値を比
較し、大きい方のデータをAレジスタレジスタに残し、
小さい方のデータをR20レジスタに格納する。 14.Aレジスタ38の値と、R18レジスタの値を比
較し、大きい方のデータをAレジスタ38に残し、小さ
い方のデータをR19レジスタに格納する。 15.Aレジスタ38の値と、R17レジスタの値を比
較し、大きい方のデータをAレジスタ38に残し、小さ
い方のデータをR18レジスタに格納する。 16.Aレジスタ38の値と、R16レジスタの値を比
較し、大きい方のデータをAレジスタ38に残し、小さ
い方のデータをR17レジスタに格納する。 17.Aレジスタ38の値と、1つ右のPEのR1レジ
スタの値とを比較し、小さい方のデータをAレジスタ3
8に残し、大きい方のデータをR16レジスタに格納す
る。 18.Aレジスタ38の値と、R17レジスタの値を比
較し、小さい方のデータをAレジスタ38に残し、大き
い方のデータをR17レジスタに格納する。 19.Aレジスタ38の値と、R18レジスタの値を比
較し、小さい方のデータをAレジスタ38に残し、大き
い方のデータをR18レジスタに格納する。 20.Aレジスタ38の値と、R19レジスタの値を比
較し、小さい方のデータをAレジスタ38に残し、大き
い方のデータをR19レジスタに格納する。 21.Aレジスタ38の値と、R20レジスタの値を比
較し、大きい方のデータをAレジスタ38に残す。 22.Aレジスタ38の値と、1つ左のPEのR2レジ
スタの値とを比較し、大きい方のデータをAレジスタ3
8に残す。 23.Aレジスタ38の値と、R19レジスタの値を比
較し、大きい方のデータをAレジスタ38に残し、小さ
い方のデータをR20レジスタに格納する。 24.Aレジスタ38の値と、R18レジスタの値を比
較し、大きい方のデータをAレジスタ38に残し、小さ
い方のデータをR19レジスタに格納する。ここで、残
り1画素を除いて「4位」が確定するので、これ以上ソ
ートの必要はない。 25.Aレジスタ38に1つ右のPEのR2レジスタの
データをロードする。 26.Aレジスタ38の値と、R20レジスタの値を比
較して、大きい方のデータをAレジスタ38に残す。 27.Aレジスタ38の値と、R19レジスタの値を比
較して、小さい方のデータを所望のレジスタに格納す
る。
【0068】図6、図7、図8及び図9において、上記
のソート処理の概念図及びフロー図を順に示す。図にお
いて、「空」は、ソートバッファが空であることを、灰
色に塗られた部分はソース指示(3×3の画素群)、デ
ィスティネーション指定(R16〜R20のソートバッ
ファ)されていることを示す。また斜線掛けされている
部分はすでにデータが比較し終わっている(3×3の画
素群)、すでにデータが格納されている(R16〜R2
0のソートバッファ)ことを示している。
【0069】上記の処理は、「1.」の処理を含めて2
7サイクルであり、「1.」の処理を省いても26サイ
クル必要である。よって、特開平11−149554号
に開示される発明よりも、若干処理サイクルは多く必要
となる。但し、特開平11−149554号では、ソー
ト対象となるデータ数が自然数の積で表わされることを
利用している都合上、適用できるデータ数に制限がある
(3×3など)のに対して、本発明では、ソート対象の
データ数に依存せずにソート処理を行えることが利点で
ある。
【0070】
【発明の効果】以上の説明から明白なように、本発明を
利用することにより以下のような効果を得ることができ
る。
【0071】本発明に係る第1の実施の形態若しくは第
2の実施の形態のSIMD型マイクロプロセッサ2を利
用すると、2つのデータを比較して、大きい(あるいは
小さい)データを特定のレジスタに残し、且つ、小さい
(あるいは大きい)データをオペランド指示したレジス
タに格納することができる。よって、ソート用のハード
ウェアをSIMD型マイクロプロセッサに実装すること
無しに、未ソートデータをソート済みデータとマージす
る際の処理時間が短縮できる。
【0072】更に、未ソートのデータをソートする際に
処理時間を短縮できるような、処理フローを実現でき
る。
【図面の簡単な説明】
【図1】 本発明に係るSIMD型マイクロプロセッサ
の概略の構成を示すブロック図である。
【図2】 本発明に係るSIMD型マイクロプロセッサ
の更に詳細な構成を示すブロック図である。
【図3】 本発明の第1の実施の形態に係るSIMD型
マイクロプロセッサのブロック図、特に、1つのプロセ
ッサエレメント部分を拡大したブロック図を示す。
【図4】 本発明の第2の実施の形態に係るSIMD型
マイクロプロセッサのブロック図、特に、1つのプロセ
ッサエレメント部分を拡大したブロック図を示す。
【図5】 画素とレジスタの対応を示す概念図である。
【図6】 本発明を利用する、「3×3」の画素領域で
のメディアン・フィルタのソート処理の、概念図及びフ
ロー図(1)を示す。
【図7】 本発明を利用する、「3×3」の画素領域で
のメディアン・フィルタのソート処理の、概念図及びフ
ロー図(2)を示す。
【図8】 本発明を利用する、「3×3」の画素領域で
のメディアン・フィルタのソート処理の、概念図及びフ
ロー図(3)を示す。
【図9】 本発明を利用する、「3×3」の画素領域で
のメディアン・フィルタのソート処理の、概念図及びフ
ロー図(4)を示す。
【符号の説明】
2・・・SIMD型マイクロプロセッサ、3・・・プロ
セッサエレメント、4グローバルプロセッサ、6・・・
レジスタファイル、8・・・演算アレイ、36・・・1
6ビットALU、38・・・Aレジスタ、40−1・・
・F1レジスタ、40−2・・・F2レジスタ、42・
・・マルチプレクサ、48・・・マルチプレクサ、50
−1・・・ALUラッチ[1]、50−2・・・ALU
ラッチ[2]、52・・・マルチプレクサ、54・・・
キャリーフラグ、68・・・フラグレジスタブロック
(PSR)。
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 17/10 G06T 1/20 B G06T 1/20 G06F 9/30 340C Fターム(参考) 5B013 DD01 DD05 5B033 AA03 BE05 BF00 DD04 5B045 AA01 GG14 5B056 BB28 HH03 5B057 CE06 CH02 CH09 CH11

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 複数のプロセッサエレメントを有するS
    IMD型マイクロプロセッサにおいて、 各プロセッサエレメントの備える特定のレジスタに格納
    される値と、オペランド指示されたソースレジスタに格
    納される値との、大小比較を行う第1のインストラクシ
    ョンにて、 比較の結果、大きい方のデータを該特定のレジスタに格
    納し、小さい方のデータを、ソースレジスタに格納する
    か若しくはソースレジスタ以外のオペランド指示された
    ディスティネーションレジスタに格納することを特徴と
    する、SIMD型マイクロプロセッサ。
  2. 【請求項2】 複数のプロセッサエレメントを有するS
    IMD型マイクロプロセッサにおいて、 各プロセッサエレメントの備える特定のレジスタに格納
    される値と、オペランド指示されたソースレジスタに格
    納される値との、大小比較を行う第2のインストラクシ
    ョンにて、 比較の結果、小さい方のデータを該特定のレジスタに格
    納し、大きい方のデータを、ソースレジスタに格納する
    か若しくはソースレジスタ以外のオペランド指示された
    ディスティネーションレジスタに格納することを特徴と
    する、SIMD型マイクロプロセッサ。
  3. 【請求項3】 複数のプロセッサエレメントを有するS
    IMD型マイクロプロセッサにおいて、 各プロセッサエレメントの備える特定のレジスタに格納
    される値と、オペランド指示されたソースレジスタに格
    納される値との、大小比較を行う第1のインストラクシ
    ョンにて、 比較の結果、大きい方のデータを該特定のレジスタに格
    納し、 小さい方のデータを、ソースレジスタに格納するか若し
    くはソースレジスタ以外のオペランド指示されたディス
    ティネーションレジスタに格納し、 更に、 各プロセッサエレメントの備える特定のレジスタに格納
    される値と、オペランド指示されたソースレジスタに格
    納される値との、大小比較を行う第2のインストラクシ
    ョンにて、 比較の結果、小さい方のデータを該特定のレジスタに格
    納し、大きい方のデータを、ソースレジスタに格納する
    か若しくはソースレジスタ以外のオペランド指示された
    ディスティネーションレジスタに格納することを特徴と
    する、SIMD型マイクロプロセッサ。
  4. 【請求項4】 請求項3に記載のSIMD型マイクロプ
    ロセッサを利用し、各プロセッサエレメントにて各プロ
    セッサエレメントに備わるn個(nは4以上の自然数)
    の、第1の汎用レジスタから第n番目の汎用レジスタ
    を、ソートバッファとして使用し、 上記ソートバッファにおいては、第1番目の汎用レジス
    タから第n番目の汎用レジスタへ大きい数値から順に格
    納し、よって、各プロセッサエレメントにて、n個のデ
    ータをソート処理する方法において、(1)1番目の比
    較対象データを特定のレジスタにロードする、工程1
    と、(2)2番目の比較対象データと特定のレジスタの
    データとの、第1のインストラクションの演算を行い、
    第n番目の汎用レジスタには小さい方のデータを書き戻
    し、特定のレジスタには大きい方のデータを残す、工程
    2と、(3)3番目の比較対象データと特定のレジスタ
    のデータとの、第2のインストラクションの演算を行
    い、第(n−2)番目の汎用レジスタには大きい方のデ
    ータを書き戻し、特定のレジスタには小さい方のデータ
    を残し、 続いて、第n番目の汎用レジスタのデータと特定のレジ
    スタのデータとの、第2のインストラクションの演算を
    行い、第(n−1)番目の汎用レジスタには大きい方の
    データを書き戻し、特定のレジスタには小さい方のデー
    タを残す、工程3と、(4)4番目の比較対象データと
    特定のレジスタのデータとの、第1のインストラクショ
    ンの演算を行い、第n番目の汎用レジスタには小さい方
    のデータを書き戻し、特定のレジスタには大きい方のデ
    ータを残し、続いて、第(n−1)番目の汎用レジスタ
    のデータと特定レジスタのデータとの、第1のインスト
    ラクションの演算を行い、第(n−1)番目の汎用レジ
    スタに小さい方のデータを書き戻し、特定のレジスタに
    は大きい方のデータを残し、更に続いて、第(n−2)
    番目の汎用レジスタのデータと特定レジスタのデータと
    の、第1のインストラクションの演算を行い、第(n−
    2)番目の汎用レジスタに小さい方のデータを書き戻
    し、特定のレジスタには大きい方のデータを残す、工程
    4と、(5)(2i−1)番目(iは3以上の自然数)
    の比較対象データと特定のレジスタのデータとの、第2
    のインストラクションの演算を行い、第[n−(2i−
    2)]番目の汎用レジスタには大きい方のデータを書き
    戻し、特定のレジスタには小さい方のデータを残し、 続いて、第[n−(2i−4)]番目の汎用レジスタの
    データと特定のレジスタのデータとの、第2のインスト
    ラクションの演算を行い、第[n−(2i−3)]番目
    のレジスタには大きい方のデータを書き戻し、特定のレ
    ジスタには小さい方のデータを残し、この後、同様にソ
    ートバッファにて1つずつ序数の大きい汎用レジスタに
    移行しつつ、ソートバッファの汎用レジスタのデータと
    特定のレジスタのデータとの、第2のインストラクショ
    ンの演算を行い、大きい方のデータを1つ序数が小さい
    汎用レジスタに書き戻すことを繰り返し、最後に第n番
    目の汎用レジスタのデータと特定のレジスタのデータと
    の、第2のインストラクションの演算を行い、第(n−
    1)番目の汎用レジスタに大きい方のデータを書き戻
    し、特定のレジスタには小さい方のデータを残す、工程
    5と、(6)2i番目の比較対象データと特定のレジス
    タのデータとの、第1のインストラクションの演算を行
    い、第n番目の汎用レジスタには小さい方のデータを書
    き戻し、特定のレジスタには大きい方のデータを残し、 続いて、第(n−1)番目の汎用レジスタのデータと特
    定のレジスタのデータとの、第1のインストラクション
    の演算を行い、第(n−1)番目の汎用レジスタに小さ
    い方のデータを書き戻し、特定のレジスタには大きい方
    のデータを残し、この後、同様にソートバッファにて1
    つずつ序数の小さい汎用レジスタに移行しつつ、ソート
    バッファの汎用レジスタのデータと特定のレジスタのデ
    ータとの、第1のインストラクションの演算を行い、小
    さい方のデータを同じ汎用レジスタに書き戻すことを繰
    り返し、最後に第[n−(2i−2)]番目の汎用レジ
    スタのデータと特定のレジスタのデータとの、第1のイ
    ンストラクションの演算を行い、第[n−(2i−
    2)]番目の汎用レジスタに小さい方のデータを書き戻
    し、特定のレジスタには大きい方のデータを残す、工程
    6と、を含み、 工程1、工程2、工程3及び工程4を実施し、その後、
    工程5及び工程6を、両工程が一回実施される毎にiを
    1ずつインクリメントしながら、比較対象データがn番
    目のものになるまで継続し、nが偶数の場合は、ソート
    バッファの最大値の端部にてソート処理を終えて終了
    し、一方、nが奇数の場合は、ソートバッファの最小値
    の端部にてソート処理を終えて終了する、ソート処理方
    法。
  5. 【請求項5】 請求項3に記載のSIMD型マイクロプ
    ロセッサを利用し、各プロセッサエレメントにて各プロ
    セッサエレメントに備わるn個(nは4以上の自然数)
    の、第1の汎用レジスタから第n番目の汎用レジスタ
    を、ソートバッファとして使用し、 上記ソートバッファにおいては、第1番目の汎用レジス
    タから第n番目の汎用レジスタへ大きい数値から順に格
    納し、よって、各プロセッサエレメントにて、n個のデ
    ータをソート処理する方法において、(1)1番目の比
    較対象データを特定のレジスタにロードする、工程1
    と、(2)2番目の比較対象データと特定のレジスタの
    データとの、第2のインストラクションの演算を行い、
    第1番目の汎用レジスタには大きい方のデータを書き戻
    し、特定のレジスタには小さい方のデータを残す、工程
    2と、(3)3番目の比較対象データと特定のレジスタ
    のデータとの、第1のインストラクションの演算を行
    い、第3番目の汎用レジスタには小さい方のデータを書
    き戻し、特定のレジスタには大きい方のデータを残し、
    続いて第1番目の汎用レジスタのデータと特定のレジス
    タのデータとの、第1のインストラクションの演算を行
    い、第2番目の汎用レジスタには小さい方のデータを書
    き戻し、特定のレジスタには大きい方のデータを残す、
    工程3と、(4)4番目の比較対象データと特定のレジ
    スタのデータとの、第2のインストラクションの演算を
    行い、第1番目の汎用レジスタには大きい方のデータを
    書き戻し、特定のレジスタには小さい方のデータを残
    し、 続いて、第2番目の汎用レジスタのデータと特定のレジ
    スタのデータとの、第2のインストラクションの演算を
    行い、第2番目の汎用レジスタに大きい方のデータを書
    き戻し、特定のレジスタには小さい方のデータを残し、 更に続いて、第3番目の汎用レジスタのデータと特定の
    レジスタのデータとの、第2のインストラクションの演
    算を行い、第3番目の汎用レジスタに大きい方のデータ
    を書き戻し、特定のレジスタには小さい方のデータを残
    す、工程4と、(5)(2i−1)番目(iは3以上の
    自然数)の比較対象データと特定のレジスタのデータと
    の、第1のインストラクションの演算を行い、第(2i
    −1)番目のレジスタには小さい方のデータを書き戻
    し、特定のレジスタには大きい方のデータを残し、 続いて、第(2i−3)番目の汎用レジスタのデータと
    特定のレジスタのデータとの、第1のインストラクショ
    ンの演算を行い、第(2i−2)番目のレジスタには小
    さい方のデータを書き戻し、特定のレジスタには大きい
    方のデータを残し、この後、同様にソートバッファにて
    1ずつ序数の小さい汎用レジスタに移行しつつ、ソート
    バッファの汎用レジスタのデータと特定のレジスタのデ
    ータとの、第1のインストラクションの演算を行い、小
    さい方のデータを序数が1つ小さい汎用レジスタに書き
    戻すことを繰り返し、最後に第1番目の汎用レジスタの
    データと特定のレジスタのデータとの第1のインストラ
    クションの演算を行い、第2番目の汎用レジスタに小さ
    い方のデータを書き戻し、特定のレジスタには大きい方
    のデータを残す、工程5と、(6)2i番目の比較対象
    データと特定のレジスタのデータとの、第2のインスト
    ラクションの演算を行い、第1番目の汎用レジスタには
    大きい方のデータを書き戻し、特定のレジスタには小さ
    い方のデータを残し、続いて、第2番目の汎用レジスタ
    のデータと特定のレジスタのデータとの、第2のインス
    トラクションの演算を行い、第2番目の汎用レジスタに
    大きい方のデータを書き戻し、特定のレジスタには小さ
    い方のデータを残し、この後、同様にソートバッファに
    て1つずつ序数の大きい汎用レジスタに移行しつつ、ソ
    ートバッファの汎用レジスタのデータと特定のレジスタ
    のデータとの、第2のインストラクションの演算を行
    い、大きい方のデータを同じ汎用レジスタに書き戻すこ
    とを繰り返し、最後に第(2i−1)番目の汎用レジス
    タのデータと特定のレジスタのデータとの、第2のイン
    ストラクションの演算を行い、第(2i−1)番目の汎
    用レジスタに大きい方のデータを書き戻し、特定のレジ
    スタには小さい方のデータを残す、工程6と、を含み、 工程1、工程2、工程3及び工程4を実施し、その後、
    工程5及び工程6を、両工程が一回実施される毎にiを
    1ずつインクリメントしながら、比較対象データがn番
    目のものになるまで継続し、nが偶数の場合は、ソート
    バッファの最小値の端部にてソート処理を終えて終了
    し、一方、nが奇数の場合は、ソートバッファの最大値
    の端部にてソート処理を終えて終了する、ソート処理方
    法。
JP2001103145A 2001-04-02 2001-04-02 ソート機能を有するsimd型マイクロプロセッサ Expired - Fee Related JP3955741B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001103145A JP3955741B2 (ja) 2001-04-02 2001-04-02 ソート機能を有するsimd型マイクロプロセッサ
US10/113,766 US7500089B2 (en) 2001-04-02 2002-04-01 SIMD processor with exchange sort instruction operating or plural data elements simultaneously

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001103145A JP3955741B2 (ja) 2001-04-02 2001-04-02 ソート機能を有するsimd型マイクロプロセッサ

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2006294342A Division JP2007102799A (ja) 2006-10-30 2006-10-30 ソート機能を有するsimd型マイクロプロセッサ

Publications (2)

Publication Number Publication Date
JP2002297377A true JP2002297377A (ja) 2002-10-11
JP3955741B2 JP3955741B2 (ja) 2007-08-08

Family

ID=18956252

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001103145A Expired - Fee Related JP3955741B2 (ja) 2001-04-02 2001-04-02 ソート機能を有するsimd型マイクロプロセッサ

Country Status (2)

Country Link
US (1) US7500089B2 (ja)
JP (1) JP3955741B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010082529A1 (ja) * 2009-01-13 2010-07-22 日本電気株式会社 Simd型並列データ処理装置及びデータソート方法並びにプロセッシングエレメント

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004066141A2 (en) * 2003-01-15 2004-08-05 Globespanvirata Incorporated Apparatus and method for determining extreme values
US7434034B2 (en) * 2004-09-13 2008-10-07 Ati Technologies Inc. SIMD processor executing min/max instructions
US7328330B2 (en) * 2005-08-16 2008-02-05 International Business Machines Corporation Queue design supporting dependency checking and issue for SIMD instructions within a general purpose processor
JP4686435B2 (ja) * 2006-10-27 2011-05-25 株式会社東芝 演算装置
JP5763472B2 (ja) * 2011-08-10 2015-08-12 ルネサスエレクトロニクス株式会社 演算回路及び演算装置
US10223111B2 (en) * 2011-12-22 2019-03-05 Intel Corporation Processors, methods, systems, and instructions to generate sequences of integers in which integers in consecutive positions differ by a constant integer stride and where a smallest integer is offset from zero by an integer offset
US10866807B2 (en) 2011-12-22 2020-12-15 Intel Corporation Processors, methods, systems, and instructions to generate sequences of integers in numerical order that differ by a constant stride
US10565283B2 (en) 2011-12-22 2020-02-18 Intel Corporation Processors, methods, systems, and instructions to generate sequences of consecutive integers in numerical order
US9651424B2 (en) 2015-02-26 2017-05-16 Sciaps, Inc. LIBS analyzer sample presence detection system and method
US20160283549A1 (en) * 2015-03-27 2016-09-29 Intel Corporation Value sorter
US9939383B2 (en) 2016-02-05 2018-04-10 Sciaps, Inc. Analyzer alignment, sample detection, localization, and focusing method and system
US10379854B2 (en) * 2016-12-22 2019-08-13 Intel Corporation Processor instructions for determining two minimum and two maximum values
US10831503B2 (en) 2018-11-06 2020-11-10 International Business Machines Corporation Saving and restoring machine state between multiple executions of an instruction
US10831478B2 (en) * 2018-11-06 2020-11-10 International Business Machines Corporation Sort and merge instruction for a general-purpose processor
US10831502B2 (en) 2018-11-06 2020-11-10 International Business Machines Corporation Migration of partially completed instructions

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62208167A (ja) * 1986-03-10 1987-09-12 Hitachi Ltd ベクトル処理装置
JPH052645A (ja) 1991-06-26 1993-01-08 Kawasaki Steel Corp 順序フイルタリング方法
JP3204562B2 (ja) 1993-03-18 2001-09-04 富士通株式会社 メディアンフィルタ処理方法
JPH0830577A (ja) 1994-07-15 1996-02-02 Mitsubishi Electric Corp Simdプロセッサ
JPH11149554A (ja) 1997-08-21 1999-06-02 Motorola Inc 3x3グリッドのランクに基づくフィルタのSIMD計算

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010082529A1 (ja) * 2009-01-13 2010-07-22 日本電気株式会社 Simd型並列データ処理装置及びデータソート方法並びにプロセッシングエレメント

Also Published As

Publication number Publication date
JP3955741B2 (ja) 2007-08-08
US20020174325A1 (en) 2002-11-21
US7500089B2 (en) 2009-03-03

Similar Documents

Publication Publication Date Title
JP3955741B2 (ja) ソート機能を有するsimd型マイクロプロセッサ
EP0539595A1 (en) Data processor and data processing method
JP4913685B2 (ja) Simd型マイクロプロセッサおよびsimd型マイクロプロセッサの制御方法
US20050257026A1 (en) Bit serial processing element for a SIMD array processor
JPS6053349B2 (ja) 画像処理プロセツサ
JPH07210369A (ja) 並列加算および平均演算を行うための回路およびその方法
US5274777A (en) Digital data processor executing a conditional instruction within a single machine cycle
JP3458518B2 (ja) 並列プロセッサ
JP4237046B2 (ja) 画像処理装置
JP2002026721A (ja) 情報処理装置
JP2007102799A (ja) ソート機能を有するsimd型マイクロプロセッサ
JPH1074141A (ja) 信号処理装置
EP1936492A1 (en) SIMD processor with reduction unit
JP4482356B2 (ja) Simdプロセッサを用いた画像処理方法及び画像処理装置
JP3837293B2 (ja) 定数選択機能を有するsimd型マイクロプロセッサ
JP2007108913A (ja) ピーク値検出を行うsimd型マイクロプロセッサ
JP2008071037A (ja) Simd型マイクロプロセッサ
WO2008077803A1 (en) Simd processor with reduction unit
US6792442B1 (en) Signal processor and product-sum operating device for use therein with rounding function
JP2004192405A (ja) Simd型プロセッサ
JP2001357395A (ja) 画像処理装置およびその方法
JPH08212168A (ja) アレイプロセッサ
JPH04184535A (ja) 並列演算装置
JPH07146781A (ja) プロセツサ
JP3547316B2 (ja) プロセッサ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060829

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061030

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070507

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120511

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120511

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130511

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20140511

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees