JP3573755B2 - 画像処理プロセッサ - Google Patents

画像処理プロセッサ Download PDF

Info

Publication number
JP3573755B2
JP3573755B2 JP52557697A JP52557697A JP3573755B2 JP 3573755 B2 JP3573755 B2 JP 3573755B2 JP 52557697 A JP52557697 A JP 52557697A JP 52557697 A JP52557697 A JP 52557697A JP 3573755 B2 JP3573755 B2 JP 3573755B2
Authority
JP
Japan
Prior art keywords
input
data
processor
output
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 - Lifetime
Application number
JP52557697A
Other languages
English (en)
Other versions
JP2000503427A (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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Publication of JP2000503427A publication Critical patent/JP2000503427A/ja
Application granted granted Critical
Publication of JP3573755B2 publication Critical patent/JP3573755B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Description

この種のプロセッサは、例えば二次元コンボルーション、ガボール変換、ガウス又はラプラシアンピラミッド、ブロックマッチング、DCT,MPEG2等の集約的コンピュータアルゴリズムの迅速な処理のために必要とされる。
公知文献“Design und Electronic 12,13.06.1995,30−35頁”からは、この目的のために例えば、次のような装置が公知である。すなわち臨界的計算時間の信号処理アルゴリズムが、思い通りのプログラミングが可能な特殊なプロセッサによって処理され、レジスタがオンチップメモリを介して供給を受け、複雑なクロスバースイッチがオンチップメモリとプロセッサの間の最適なコミュニケーションを確保する、装置が公知である。この場合の欠点は、オンチップメモリへの要求が高いことと、並行した演算装置の数が少ないことに基づく計算能力の低さである。さらに4つ以上の並行した信号プロセッサが使用されている場合には、通信コストの上昇と、それに伴うチップ面の増加が累算的となる。
また公知のマイクロプロセッサレポート“The Insider's Guide to Microprocessor−Hardware,Volume 8,Nr.13,Oktober3,1994,5−9頁”からは、2つの積分器と3つの不動小数点ユニットを有する、大規模なパイプライン式スーパースカラー64ビットRISCプロセッサが公知である。これは2つのグラフィックユニット、詳細には加減ユニットと、並列積分演算のための乗算ユニットによって拡張されている。しかしながらこの場合はレジスタポートの数が限られているため、2つの浮動小数点ないしグラフィックコマンドしか同時に処理することができない。このことは、画像処理における多くの要求に対する計算能力が不十分であることを意味する。
さらに同様の公知のマイクロプロセッサレポート“The Insider's Guide to Microprocessor−Hardware,Decmber6,1994,12−15頁”からは、部分的に異なる複数の実行ユニットが設けられ、各命令毎にそれらのうちの5つまでが同時にアドレッシング可能であるプロセッサが公知である。この場合の欠点は比較的複雑なコンパイラである。これはプロセッサの全ての待ち時間を考慮し、パラレル命令がハードウエアに最適に対立なしで使用されることを保証するものである。
1994年にシカゴで開かれたビジュアルコミュニケーションとイメージ処理(VCIP'94)に関する国際会議の議事録や、1993年にカリフォルニアのサンディエゴで開かれたIEEE国際会議“Custom Integrated Circuit Conference"の議事録4.6.1−4.6.3からは、ローカルメモリと、ローカルメモリとプロセッサ素子の間のハイデータレートを有する高度な一次元パラレルSIMDプロセッサアレイが公知である。ここでは複雑な演算が個々の演算から統合的に構築され、この統合的演算の比較的長い実行時間がここでも大量のプロセッサ素子によって補償される。最初のケースではグローバルなマトリックスメモリが設けられ、これが個々のプロセッサ素子に対する二次元画像区分の分配を許可している。第2のケースでは、グローバルなコミュニケーション機能が一度はロードされたデータの多重使用を許容し、プロセッサアレイと外部メモリの間の所要のワイヤリング帯域幅を低減する。この場合の欠点は、困難なプログラミングと、パイプライン型プロセッサ素子の複雑な制御と、非パイプライン型プロセッサ素子の低い周波数と、大容量のオンチップメモリである。
本発明の課題は、僅かな所要チップ面積のもとで、画像処理に頻繁に要される手法毎に可及的に高速な処理速度を達成することのできる、画像処理のためのプロセッサを提供することである。
この課題は請求項1の特徴部分に記載の本発明によって解決される。
本発明の有利な構成例は従属請求項に記載される。
本発明の特に有利な点は、種々のデータフォーマットに対するシステムのスカラー処理性や再構成が容易なことである。また低コストなシステム構造、例えば本発明によるプロセッサの他には実質的に標準的なメモリチップしか必要とされないような画像処理システムやニューロコンピュータへの適合性も高い。さらに大きな利点は、前述したような集約的コンピュータ画像処理アルゴリズムのリアルタイム処理の可能性である。
次に本発明を図面に基づき詳細に説明する。
図1は画像処理のための本発明によるプロセッサのプロセッサ素子のブロック回路図である。
図2Aは図1によるプロセッサ素子の第1部分の詳細な回路図である。図2Bは、図1によるプロセッサ素子の第2部分の詳細な回路図である。
図3は本発明によるプロセッサの第1実施例を示した図である。
図4は本発明によるプロセッサの第2実施例を示した図である。
図1には、画像処理のための本発明によるプロセッサのプロセッサ素子のブロック回路図が示されており、これは、算術論理演算ユニットALU2、レジスタバンクREGS、イメージセクションバッファISB、汎用メモリGPM、さらなる算術論理演算ユニットALU1、乗算器/加算器ユニットMAを有している。算術論理演算ユニットALU2は典型的には、加算部ADD、値領域シフトのためのバレル回転子ROT、ビット幅マッチングのための飽和装置SAT、最上位ビットmsbないし最下位ビットlsbを決定する検出器DET、論理演算ユニットLUを有している。この乗算器/加算器ユニットMAは典型的には乗算器アレイMULTAからなっており、このアレイは一連の個々の乗算器を有している。その個々の結果は、後置接続されている加算器ツリーADDTによって総括的な結果に統合される。バッファISBは、例えば2×2画素毎の情報を保持できる二次元の双方向シフトレジスタとして解されてもよい。バッファISBには画像データが、図中の垂直方向で入力/出力ポートim−down,im−upを介して、そして図中水平方向では入力/出力ポートim−left,im−rightを介して読み込まれたり読み出されたりする。メモリGPMは、標準メモリである。このメモリにはオンチップが設けられており、これはプロセッサ素子において第2のローカルデータ伝送部として使用され、グローバルバスg−busを介して供給されている。このメモリGPMは、係数、回路コア、ビットマスク、ニューラルネットワーク等のための重み付けマトリックスを含んでいる。バッファISBの場合もメモリGPMの場合も読み取りアクセスは、個々のデータに従ってではなく、データフォーマットに応じてマルチコンポーネントベクトルに対して行われる。総体的に全てのプロセッサエレメントのイメージセクションバッファは、分散された二次元イメージセクションバッファをあらわす。
プロセッサエレメント間のローカルコネクションを介して、イメージセクションはピクセル毎に上下に又は左右にシフトされ得る。このことのために、エッジ長さnのイメージセクションに対して、n個のピクセルがバッファISBのセルアレイのそれぞれのエッジに追従されなければならない。プロセッサエレメントは、その画像セグメントに読み取りのみのアクセスしか生じさせない。1つのアクセスによって個別の1個のピクセルだけが読み取られるのではなく、画素フォーマットに応じて、すなわち精度に応じて、画素のベクトル、アレイが読み取られる。
ローカルバッファISB及びメモリGPMからのデータはさらに算術論理演算ユニットALU1に供給される。この算術論理演算ユニットALU1の出力側は、乗算器/加算器ユニットMAの入力側に接続されている。この乗算器/加算器ユニットMAの出力側は、算術論理演算ユニットALU2の入力側に接続されており、この算術論理演算ユニットALU2の出力側はレジスタバンクREGFに接続されている。レジスタバンクREGFの出力側は同時にプロセッサエレメントの出力側alu2−oである。レジスタバンクREGFの出力側並びにプロセッサエレメントの入力側alu2−iは、算術論理演算ユニットALU2の入力側に接続されている。
別の構成例では、入力側alu2−i及び/又はレジスタバンクREGFの出力側は別の算術論理演算ユニットALU1の入力側に接続可能である。
また第3の構成例として、入力側alu2−i及び/又はレジスタバンクREGFの出力側が、乗算器/加算器ユニットMAの入力側に接続されてもよい。
さらに第4の構成例として、入力側alu2−i及び/又はレジスタバンクREGFの出力側が、別の算術論理演算ユニットALU1の入力側にも乗算器/加算器ユニットMAの入力側にも接続されてもよい。
図2Aと図2Bには、本発明による画像処理のためのプロセッサのプロセッサ素子の詳細が示されており、この場合図2Aには実質的にバッファISB、メモリGPM、別の算術論理演算ユニットALU1、乗算加算ユニットMAが含まれており、図2Bには実質的に算術論理演算ユニットALU2、レジスタバンクREGFが含まれている。さらにいくつかのレジスタCREG,MSBREG、STAT、フォーマッタF1〜F4、エキスパンダEXP1〜EXP3、マルチプレクサMUX0からMUX6が設けられている。これらは算術論理演算ユニットALU1,ALU2に加えられ、データの選択ないしはワード長のマッチングに用いられる。算術論理演算ユニットALU1の入力データは、ここでは2つのイメージセクションバッファISB1,ISB2とメモリGPMから供給される。2つのイメージセクションバッファは、例えばステレオイメージの処理の際に特に有利である。さらにここでは次のようなことも可能である。すなわち32×32ビット積の乗算器への供給を直接算術論理演算ユニットALU2の結果レジスタから行うことが可能である。これは信号alu2_loc_out1を介して行われる。この場合最大で3つの入力ベクトルin_a,in_b,in_cが処理可能である。クロスバースイッチは、これらの3つの入力ベクトルに対する完全な融通性を保証する。イメージセクションバッファISB1とISB2は、その隣からないしイメージキャッシュからポートim_up,im_down,im_right,im_leftを介して再ロードされる。イメージセクションバッファへのイメージセクションの事前ロードも再ロードとシフトを介して行われる。読み込みは信号im_opを介して制御される。この信号は、様々なシフト方向とステップサイズを示す。メモリGPMは、そのデータをグローバルバスg_busを介して得るか又はレジスタReg0〜Reg15(これらは算術論理演算ユニットALU2に対する結果レジスタを形成する)を有するレジスタバンクREGFから得る。バッファISB1,ISB2とメモリGPMの出力データのデータフォーマットは、同一であり、例えばそれぞれ128ビット幅のベクトルを形成する。この場合このベクトルは4つの32ビットデータか又は8つの16ビットデータ、又は16の8ビットデータを含む。
論理演算ユニットLU1a,LU1bは、信号alu1a_lopないしalu1b_lopによって制御され、各入力側a,bの論理結合を実行する。これらの入力側はクロスバースイッチを介してバッファISB1,ISB2、メモリGPMに接続されている。これらの入力側のフォーマットは信号alu1_formを介してコミュニケーションされている。全てのバイナリ演算は、2つの入力側のフォーマットと同一でなければならない。それにより各論理演算ユニットは、16の8ビットデータ対か8つの16ビットデータ対又は4つの32ビットデータ対を平行処理することができる。論理演算ユニットLU1aとLU1bは例えば以下の論理演算を支援する。:
a(バイパス)
NEGa、(NOT)
a AND b、
a NAND b、
a OR b、
a NOR b、
a XOR b、
a XNOR b、
演算ユニットAU1は、論理演算ユニットLU1a,LU1bの出力信号の論理結合を実施する。さらにこのユニットAU1は、補助入力側cとdを有する。この場合補助入力側cは一定レジスタCREGの出力側に接続され、補助入力側dは、クロスバースイッチを介してメモりに接続されている。このユニットAU1で実施される演算は、信号alu1_aopと入力側フォーマットalu1_formによって決定される。可能な桁拡張によって、出力フォーマットは、入力フォーマットに依存して9,17,33ビットになり、出力ベクトルは136ビットの幅を有するようになる。演算に関与する全ての入力側は同じフォーマットを有していなければならない。すなわち16個の8ビットデータ対、又は8個の16ビットデータ対、又は4個の32ビットデータ対が並行処理される。演算ユニットAU1は以下の演算を支援する。
a(バイパス)、
−a(2つの補数)、
|a|(絶対値形成)、
a+b、
|a+b|、
−a+b、
|−a+b|、
−(a−b)
−a−b
種々の閾値関数がaとbを比較し、この比較に依存してa,c,d,0の出力がなされる。
乗算器MUX0によって、制御信号alu1_o2_selに依存してユニットLU1a又はLU1bの出力信号log_a又はlog_bの1つが選択され、あるいはバッファ/メモリ内容が乗算器アレイに対するクロスバースイッチを介して選択される。一定レジスタCREGは、例えばそれぞれ128ビットの4つのベクトルを記憶できる。演算ユニットAU1の出力データアイテムを伴う事前ロードは、信号creg_opに依存して行われる。レジスタ内容は、各クロックサイクル毎に送出される。このレジスタは、頻繁に繰り返し発生する定数の記憶とメモリGPMの除去に用いられる。マルチプレクサMUX1とMUX2は、乗算入力データの選択と、信号mult_i1_sel,mult_i2_selに依存した乗算入力側i1,i2の対応付けに用いられる。このマルチプレクサの出力側までは、全てのデータがそれらが乗算ブロックのi1又はi2のどちらに対して定められているかにかかわらず統一されたフォーマットで存在する。入力側i1,i2は、種々のフォーマットと有し、乗算器アレイの個々の乗算器の入力側に直接接続される。マルチプレクサMUX1,MUX2を介してレジスタバンクREGFのレジスタも32×32ビット積に対して選択され得る。フォーマッタF1,F2によって、選択された乗算コンフィグレーション(これは信号mult_formによって確定する)に依存して、乗算器アレイの入力データが処理される。データベクトルの全ての成分が処理されるわけではないコンフィグレーションに対しては、データセグメントを136ビットワード内で選択する必要がある。このことは信号mult_i1_datもしくは信号mult_i2_datを用いて行われる。この制御情報は、演算のアドレスの構成成分とみなされてもよい。例えば16×32ビットのもとでの乗算では、乗算器の入力側i1は2つの16ビットデータを必要とし、入力側i2は2つの32ビットデータを必要とする。これらは、i1に対して供給された8つの16ビットデータと、i2に対して供給された4つの16ビットデータから選択されなければならない。
乗算器アレイMULTAはここでは8つの乗算器からなる。これらはそれぞれ16ビットのビット幅を有している。入力データのフォーマットに応じて、これらの乗算器の(部分)結果は、後置接続された加算器ツリーADDTにおいて正確な桁位置で唯一つの総結果の形成のために加算される。この総結果は、積の和であり、その数値もデータフォーマットに依存している。乗算器に対する唯一の制御ワードは、データフォーマットの確定のための信号mult_formである。それによりどのデータフラグが乗算に対し符号の無い又は2つの補数として補間されるべきかが内部制御される。加算器ツリーは、加算前の個々の積のシフト確定のために、信号mult_formを必要とする。設定されたデータフォーマットに応じて加算器/加算器ユニットMAは、以下の積からの和を計算する。
8つの8×8ビット積、又は
8つの8×16ビット積、又は
4つの16×16ビット積、又は
4つの8×32ビット積、又は
2つの16×32ビット積、又は
1つの32×32ビット積
信号add_selを用いて8つの部分積のそれぞれが選択的にブランク化され得る。このことは積の和の代わりに個々の積を明確にするのに重要である。フォーマッタF3は、結果レジスタREGFからメモリGBMへのデータ転送の際に関与する。フォーマットに応じて、結果データの下方の8,16,32ビットがフォーマッタF3によって収集され、128ビットワードが完全になるまでメモリGBMに転送される。メモリGBMは、個々のデータの書込みも許容するので、フォーマットF3でのバッファなしでも転送が可能である。信号format3を介して、いくつのビットが(例えば8ビット、16ビット、32ビット)算術論理演算ユニット2から考慮されるべきかが通達される。
算術論理演算ユニットALU2のデータ送信部は、図2bにおいて結果レジスタバンクと乱数発生器RNDGの出力により加算器ツリーADDTの出力信号add_tree_outを形成する。結果レジスタバンクの2つの出力側は、バスalu2_bus1,alu2_bus_2を介して算術論理演算ユニットALU1,ALU2並びに乗算器/加算器ユニットMAに接続され、さらに各プロセッサ素子又は隣接するプロセッサ素子のレジスタから入力側alu2_i1又はalu2_i2を介して給電される。バスalu2_bus1は、さらにコントローラから即値を供給される。サイクルの4つの結果は、常時結果レジスタバンクの4セグメントレジスタにファイルされる。この場合1つのセグメントレジスタはそれぞれ例えば4×64ビットを有している。レジスタバンクREGFの結果レジスタは、4つの64ワードを含み、4つのデータアイテムをあらわしている。32×32ビット積の累算のもとで生じる、128ビットの結果の計算の場合、レジスタreg0〜reg15のうちの1つが4つの64最上位ビットを含み、それぞれの隣接レジスタが4つの結果の4つの64最下位ビットを含む。最大/最小に対するインデックスデータは、4つのインデックス値に対するさらなるレジスタを占有する。このレジスタバンクは1つの入力ポートと3つの出力ポートを有する。クロスバースイッチを介して2つのバスalu2_bus1とalu2_bus2は、固有の結果レジスタからデータ又は2つの異なる隣接プロセッサ素子からのデータを供給し得る。隣接プロセッサ素子のデータは、ポートalu2_i1とalu2_i2から得られる。この場合選択は、マルチプレクサMUX5を介して行われる。第3のレジスタ出力側は、プロセッサ素子の出力側alu2_oに接続されている。これは同時に次の隣接プロセッサ素子ないし評価ユニットへの接続をあらわす。評価ユニットへの結果の通過も可能である。これは例えばブロックマッチングの際の例えばグローバルな最大/最小サーチに対して必要とされる。レジスタバンクの書込み入力側は、マルチプレクサMUX4を介して算術論理演算ユニットALU2の出力側に接続されている。レジスタの4つのセグメントの読み込み/読み出し順序は固定ではなく、アドレスに従って制御される。ここに記載されるプロセッサエレメントのレジスタバンクは、16個の4−セグメントレジスタを含み、これは4×4プロセッサユニットを備えたプロセッサの場合、8キロバイトのレジスタ総記憶容量を意味する。チップ面がそれを許容するならば、この数は0.5キロバイト(但し有利には1キロバイト)の細分において任意に高めることができる。
ユーザーは各装置サイクルにおいて5つの機能グループのうちの1つにアクセス可能である。これはソースレジスタから目標レジスタへのパラレルデータパスによって実現される。これらの各ループの待ち時間は、4つのクロックを有する1つの装置サイクルである。5つのデータパスは以下の通りである。
1. 累算加算器ACCADD、最終加算器FDD、マルチプレクサMUX3、エキスパンダEXP1〜EXP3、乱数発生器RNDGとの加算器ループ。この加算器ループの機能は、累算演算、最小/最大サーチ、乱数の加算、丸め演算、加算器ツリーからレジスタバンクの結果レジスタへの出力データの転送である。
2. 算術論理シフト/ローテーションや最小/最大サーチのサポートのためのバーレルローテータROTを有するシフター/ローテーターループ。
3. 64ビット値から8,16,32ビットへの飽和のための及び最小/最大サーチのための飽和ループ。
4. 最上位ビットと最下位ビットの位置を求め、シフト操作又は飽和操作の際のオーバーフロー識別を可能にする検出器ループ。
5. 2つのオペランドの論理結合を可能にする論理ループ。
累算加算器ACCADDは、入力側i1における66ビットのデータを入力側i2における67ビットのデータに加算するか又は、入力側i2におけるデータを入力側i1におけるデータから減算する。この結果は64ビットのデータである。信号acc_opは加算か減算かの決定を下す。入力側i1とi2の2つのデータは、2の補数表示に現れる。ファイナル加算器FADDは、累算加算器ACCADDの出力データから非冗長的な67ビットフォーマットを形成する。そこからは64の下位ビットがマルチプレクサMUX4に転送される。レジスタMSBREGは、装置サイクルのそれぞれ4つのデータからファイナル加算器の3つのmsbsを記憶する。2重の値範囲を伴った加算では、これはその後に続くサイクルにおいて演算の完全性のために再び加算器ACCADDにフィードバックされる。エキスパンダEXP1は、66ビットワードを2の補数表示においてレジスタMSBREGからの3つのビットの拡張によって形成する。この場合レジスタMSBREGからの3つのビットは、下位の3つの桁とその他の63の桁を符号に応じて1と0で充たす。エキスパンダEXP2とEXP3は、符号なしか2の補数で存在する64ビットワードから2の補数表示の66ビットワードを形成する。マルチプレクサMUX3は、累算加算器ACCADDのi1に対する入力データを制御信号acc_i1_selに依存して選択する。この場合はエキスパンダEXP2を介したバスalu_bus2、乱数発生器RNDGの出力側、加算器ツリーの出力側又はエキスパンダEXP1の出力側、換言すれば先行の加算部からの伝送が選択可能である。乱数発生器RNDGは、フィードバックシフトレジスタを介して事前にロードされた初期値に基づいて疑似乱数を発生する。これはバスalu2_bus1のデータに加算可能である。初期値は、信号rnd_ldによってバスalu2_bus1からロードされる。信号rnd_opによって新たな乱数が形成され、送出されるか又は発生器ユニットに再度送出される。この乱数発生器は、定常的丸め効果(例えばディザーリング“dithering")の発生のために必要である。ステータスレジスタSTAは、ファイナル加算器からの符号、オーバーフロー、ゼロ結果に対するフラグを含んでいる。ステータスビットは、各結果の前に算出される。信号status_opは、それが本当にステータスレジスタに受け入れられたか否かの識別を行う。コントローラは、ステータスビットを読み取り評価することが可能である。しかしながらこのステータスビットは、迂回なしでコントローラを介してマルチプレクサMUX4に直接制御入力として得ることも可能である。これは最小/最大サーチやその他の割当ての際に有利である。バーレル回転子ROTによってバスalu2_bus1のデータの算術論理リンク及び計算シフトが0〜63桁まで可能であり、さらに信号shift_opによって制御可能である。シフト係数は定数(これは信号shift_opから直接導出される)か又は変数(これはバスalu2_bus2を介して結果レジスタから供給される)である。一定のシフト係数の場合には、次の桁がバスalu2_bus2から受け入れ可能である。バスalu2_bus1とバスalu2_bus1のデータが同じ場合には、このようにローテーションが生じる。シフト/回転ループは、最小/最大サーチ又は生じ得る割当てのもとでも関与する。これに対してはシフト係数0が設定される。飽和回路SATによってバスalu2_bus2のデータは信号sat_opによって特定された値範囲に適合化される。この場合値範囲が8,16,32ビットで支援される。設定された範囲からはみ出たデータは、表示可能な最大の正の数か又は表示可能な最小の負の数に置換される(飽和)。この飽和か否かの判断は、検出器DETの信号det_resに基づいてコントローラが決定し、各データ毎に飽和回路SATの信号sat_opを介して通知する。論理演算ユニットLUは、バスalu2_bus1のデータとバスalu2_bus2のデータの論理結合を実施する。信号lu_opによって、AND、NAND、OR、NOR、XOR、XNOR、NEGの演算の制御が可能である。マルチプレクサMUX4は、信号alu2_opに依存して前述の5つのデータパスのどれをレジスタに書き込むかを判断する。第2の制御入力側は、制御レジスタSTATによって給電され、生じ得る割合て、例えば最小/最大サーチのもとで支援する。この場合累算加算器ACCADDは、2つのバスバスalu2_bus1のデータとバスalu2_bus2の間の差分を形成し、この差分の符号に基づいて、バスalu2_bus1のデータをバーレル回転子ROTを介して遮断された飽和と共にレジスタバンクへ書き込むのか、バスalu2_bus2のデータのデータを飽和ブロックSATを介して遮断された飽和と共にレジスタバンクへ書き込むのかを選択する。マルチプレクサMUX5は、信号alu_in_selに依存してプロセッサ素子の入力側alu2_i1又はalu2_i2のうちの1つと、隣接プロセッサ素子を選択する。そのデータは、オペランドとして利用される。伝送レジスタTREGは、4つの64ビットワードをバッファ記憶し、必要に応じてフォーマッタF4を介してプロセッサ素子の出力側alu2_0に送出する。伝送レジスタTREGは、さらに結果データの読み出しの際のバッファとして使用され、プロセッサ素子列の右側の隣接プロセッサ素子に対するその伝送に用いられる。それにより結果レジスタは負荷されず、既に後続の演算に対して可用である。フォーマッタF4のもとでは信号format4_formに依存してレジスタバンクのレジスタ出力側reg_outの下位の1,2,4又は8バイトが信号format4_posによって確定されたフォーマッタ出力側のバイトポジションにファイルされる。出力側のその他のバイトは、伝送レジスタから1:1の割合で受け入れられる。このフォーマッタを用いることにより、結果データの伝送の間プロセッサ素子列に沿って複数の結果1,2,又は4バイトが8バイトワードに統合され、それによって64ビットコネクションがプロセッサ素子間で良好に活用される。マルチプレクサMUX6は、制御信号alu2_out_selに依存してプロセッサ押しの出力側slu2_oに対する出力データを選択する。この選択に対してはフォーマッタF4の出力データ又はプロセッサ素子の入力データが用いられる。マルチプレクサMUX6は、プロセッサ素子の2つの入力側の1つと、プロセッサ押しの出力側alu2_oの、伝送レジスタにおけるバッファなしでの直接接続を可能にする。
図3には、16のプロセッサ素子PE11〜PE44を備えた本発明によるプロセッサが示されている。これらのプロセッサ素子はエッジ長さ4の二次元アレイのなかで接続されており、共通のコントローラによって制御されている。個々のプロセッサ素子のバッファISBがこのアレイの4つのエッジに再ロードピクセルを供給するために、これらのアレイを囲むように256ビット幅のピクセルバスp−busが環状に配置されている。このアレイは、グローバルバスg−busを介してさらなる入力データを受け取る。これはイメージキャッシュCACHEか又は入力バッファIBUFか又は評価ユニットDUによって記憶される。この評価ユニットDUを用いて例えばグレー値確定のための除算、ヒストグラム実施がなされるか、又は値テーブルを用いた評価が実施される。キャッシュメモリCACHEに対して多種の出力モードが占められ、入力バッファIBOFは外部メモリとプロセッサ素子のメモリGMPとの間のFIFOとしてのみ用いられる。
評価ユニットDUは、プロセッサ素子の結果レジスタからの入力データを受け入れるタスクを有しており、場合によってはさらに後処理の実行と最終的にデータを出力バッファを介して外部メモリへ伝送するかグローバルバスg−busを介してプロセッサアレイに提供できるようにする。この後処理には、除算、ヒストグラム、テーブルルックアップなどの演算が含まれる。プロセッサ素子内のそれらの実行は、エリア又はメモリ強度にもよる。個々のプロセッサ素子から評価ユニットへの伝送は、プロセッサ素子の入力側alu2_iと出力側alu2_oを介して行われる。1つの行の4つのプロセッサ素子、例えば素子PE11〜PE44は、その入力側alu2_i1とalu2_i2を介してそれぞれ1つのチェーンを形成する。マルチプレクサMUX5を介して、最後の列のプロセッサ素子PE11〜PE44は、1つのチェーンに接続可能である。それにより全ての結果データは、水平及び垂直の値範囲を介して最終的に上方右側のプロセッサ素子PE14に至りそこから評価ユニットDUに到達可能である。同様の接続は、グローバルな演算、例えば極限値サーチなどの場合でも活用され、この場合は右側の列の4つのプロセッサ素子が、上方右側のプロセッサ素子がグローバルな極限値を求める前に、それぞれその行の極限値を求める。
全ての16のプロセッサは、相互に遅延することなく同じクロックで動作する。このことは全てのプロセッサ素子に対する演算が常に同じ時点でトリガされることを意味する。それ故入力側alu2_iと出力側alu2_oを介した結果レジスタの送出又は事前ロードが全てのプロセッサ素子を同時にそのレジスタ内容を出力側に送出し、それと並行して入力側を介して供給されるデータを受け入れる。グローバルな演算の際には、類似の方法が実施され、この場合は本来の演算を実施する1つのチェーンの最後のプロセッサ素子がその入力側のデータをローカル記憶された結果と論理結合させ、その結果を再びローカル記憶する。その他のプロセッサ素子は、結果値の送出の際のような状態となる。
プロセッサ入力データは、入/出力ドライバIOTを介して入力バスI−Busに供給される。これは入力バッファIBUFとキャッシュメモリCACHEに供給される。マルチプレクサMUXを介してグローバルバスg−busは、入力バッファの出力側か又はキャッシュメモリの出力側に接続可能である。評価ユニットDUの出力側は出力バッファOBUFを介して出力バスo−busに接続される。これは入/出力ドライバIOTを介してプロセッサ出力側に接続されている。
図4には、16のプロセッサ素子を備えた本発明によるプロセッサが示されている。これは図3のようにのみ示されているのではなく、いわゆるSIMDアレイ(シングルインストラクションマルチプルデータアレイ)として示されている。この場合は全てのプロセッサ素子が同じ命令を受け取るのではなく、スイッチS1〜S8を用いていわゆるMIMDアレイ(マルチプルインストラクションデータアレイ)としても構築可能である。図4では2つのSIMDアレイを有する1つのMIMDアレイが、8つのプロセッサ素子PE,PE毎に示されている。これらの各SIMDアレイは、固有のコントローラと、固有の評価ユニットDU1,DU2と、固有のイメージキャッシュCACHE1,CACHE2と、付加的なマルチプレクサMUX′〜MUX′″を必要とする。2つのSIMDアレイのそれぞれは、環状のピクセルバスP−bus1とP−bus2を有し、それらは別個のキャッシュCACHE1、CACHE2によって供給される。これらのキャッシュは、それらのデータを、入力バスi−busを介して外部から受け取るか又は評価ユニットDU1ないしDU2から受け取る。キャッシュメモリCACHE2への評価ユニットDU1の結果の供給によっては、処理チェーンを構築することが可能である。この場合は、プロセッサ素子PEを有するSIMDアレイの出力データが、プロセッサ素子PEを有するSIMDアレイに対する入力データとして使用される。帯域幅が許容されるならば、2つのSIMDアレイは異なる演算を外部入力データでも実行可能であり、結果は再び外部メモリに送出される。ここに記載されるMIMD機能を備えたプロセッサアレイは、スイッチS1〜S8を介して再構成可能であり、この場合一方では8つのプロセッサ素子を備えた非依存性のブロックとして構築可能であり、他方では16のプロセッサ素子を備えた固有のSIMDアレイとしても構築可能である。その際スイッチを介して2つのピクセルバスp−bus1とp−bus2がシングルリングバス形成のために再構成される。同様に2つのキャッシュCACHEp1,CACHE2もグローバルなキャッシュ形成のために共に接続可能である。2つの評価ユニットは、コモンSIMDアレイの場合、タスクを共有可能である。

Claims (6)

  1. 同種に構築されマトリックス方式で接続された多数のプロセッサ素子(PE11〜PE44)を備えた、画像処理プロセッサにおいて、
    前記各プロセッサ素子が、レジスタバンク(REGF)を介してフィードバック結合された各算術論理演算ユニット(ALU2)の他に、分割されたイメージセクションバッファの各部分記憶ユニット(ISB)と、各ローカル汎用メモリ(GPM)と、さらなる各算術論理演算ユニット(ALU1)と、各乗算器/加算器ユニット(MA)とを有し、
    前記各乗算器/加算器ユニットの入力側は、前記さらなる各算術論理演算ユニットの出力側と接続され、該さらなる各算術論理演算ユニット自体は、前記各部分記憶ユニットの出力側と前記各ローカル汎用メモリの出力側に接続された入力側を有し、前記乗算器/加算器ユニットの出力側は、前記算術論理演算ユニット(ALU2)の入力側に接続されており、
    前記レジスタバンク(REGF)の出力側が、前記ローカル汎用メモリの入力側及び/又は前記さらなる各算術論理演算ユニット(ALU1)の入力側、及び/又は前記各乗算器/加算器ユニット(MA)の入力側に接続されて出力データ(ALU2−o)を供給し、
    入力データ(ALU2−i)が、前記各算術論理演算ユニット(ALU2)の入力側にも、前記さらなる算術論理演算ユニットの入力側にも(ALU1)及び/又は前記各乗算器/加算器ユニット(MA)の入力側にも供給され、
    前記分割されたイメージセクションバッファの各部分記憶ユニットに画像データ(im−down,im−left,im−up,im−right)が、隣接するプロセッサ素子の部分記憶ユニット(ISB)により供給され、さらに相応の隣接するプロセッサ素子が存在しない場合には、画像データがピクセルバス(p−bus)によって供給され、前記各ローカル汎用メモリ(GPM)がグローバルバス(g−bus)を介して計算データを供給されることを特徴とする、画像処理プロセッサ。
  2. 前記各部分記憶ユニット(ISB)と、各ローカル汎用メモリ(GPM)と、さらなる各算術論理演算ユニット(ALU1)と、各乗算器/加算器ユニット(MA)の入力ワード幅が、フレキシブルに選択可能であり、選択された入力ワード幅に応じて、入力データの多成分ベクトルがさらなる算術論理演算ユニット(ALU1)と各乗算器/加算器ユニット(MA)において並行処理可能である、請求項1記載の画像処理プロセッサ。
  3. 前記各乗算器/加算器ユニットは、並列に動作する多数の乗算器(MULTA)からなり、これらは出力側で加算器ツリー(ADDT)によって統合されている、請求項1又は2いずれか1項記載の画像処理プロセッサ。
  4. 入力データバス(i−bus)がキャッシュメモリ(CACHE)を介してピクセルバス(P−bus)に接続されている、請求項1〜3いずれか1項記載の画像処理プロセッサ。
  5. マルチプレクサ(MUX5)を用いて、マトリックスの最終列のプロセッサ素子(PE14〜PE44)が、同じ行の隣接するプロセッサ素子(例えばPE13)の出力側又は同じ列の隣接するプロセッサ素子(PE24)の出力側に選択的に接続可能であり、データ流の方向において水平方向にも垂直方向にも後続のプロセッサを有さない、最後のプロセッサ素子(PE14)の出力側が、評価ユニット(DU)に接続されている、請求項1〜4いずれか1項記載の画像処理プロセッサ。
  6. 電子スイッチ(S1〜S8)により、マルチプレクサ(MUX′〜MUX′″)を用いて、少なくとも2つの別個のグローバルバス(g−bus1,g−bus2)と少なくとも2つの別個のピクセルバス(p−bus1,p−bus2)と少なくとも2つの別個のキャッシュメモリ(CACHE1,CACHE2)と少なくとも2つの別個の評価ユニット(DU1,DU2)とを備えた少なくとも2つのプロセッサ素子(PE,PE)グループから形成可能である、請求項1〜5いずれか1項記載の画像処理プロセッサ。
JP52557697A 1996-01-15 1996-12-13 画像処理プロセッサ Expired - Lifetime JP3573755B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE19601201 1996-01-15
DE19601201.5 1996-01-15
PCT/DE1996/002404 WO1997026603A1 (de) 1996-01-15 1996-12-13 Prozessor zur bildverarbeitung

Publications (2)

Publication Number Publication Date
JP2000503427A JP2000503427A (ja) 2000-03-21
JP3573755B2 true JP3573755B2 (ja) 2004-10-06

Family

ID=7782779

Family Applications (1)

Application Number Title Priority Date Filing Date
JP52557697A Expired - Lifetime JP3573755B2 (ja) 1996-01-15 1996-12-13 画像処理プロセッサ

Country Status (6)

Country Link
US (1) US6049859A (ja)
EP (1) EP0875031B1 (ja)
JP (1) JP3573755B2 (ja)
KR (1) KR100415417B1 (ja)
DE (1) DE59607143D1 (ja)
WO (1) WO1997026603A1 (ja)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6289434B1 (en) * 1997-02-28 2001-09-11 Cognigine Corporation Apparatus and method of implementing systems on silicon using dynamic-adaptive run-time reconfigurable circuits for processing multiple, independent data and control streams of varying rates
WO2000077652A2 (de) 1999-06-10 2000-12-21 Pact Informationstechnologie Gmbh Sequenz-partitionierung auf zellstrukturen
JP3922859B2 (ja) * 1999-12-28 2007-05-30 株式会社リコー 画像処理装置、画像処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
US7308559B2 (en) * 2000-02-29 2007-12-11 International Business Machines Corporation Digital signal processor with cascaded SIMD organization
US6754801B1 (en) * 2000-08-22 2004-06-22 Micron Technology, Inc. Method and apparatus for a shift register based interconnection for a massively parallel processor array
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US9250908B2 (en) 2001-03-05 2016-02-02 Pact Xpp Technologies Ag Multi-processor bus and cache interconnection system
WO2005045692A2 (en) * 2003-08-28 2005-05-19 Pact Xpp Technologies Ag Data processing device and method
US9552047B2 (en) 2001-03-05 2017-01-24 Pact Xpp Technologies Ag Multiprocessor having runtime adjustable clock and clock dependent power supply
US9411532B2 (en) 2001-09-07 2016-08-09 Pact Xpp Technologies Ag Methods and systems for transferring data between a processing device and external devices
US9436631B2 (en) 2001-03-05 2016-09-06 Pact Xpp Technologies Ag Chip including memory element storing higher level memory data on a page by page basis
US9141390B2 (en) 2001-03-05 2015-09-22 Pact Xpp Technologies Ag Method of processing data with an array of data processors according to application ID
US10031733B2 (en) 2001-06-20 2018-07-24 Scientia Sol Mentis Ag Method for processing data
KR100444990B1 (ko) * 2001-12-29 2004-08-21 삼성전자주식회사 신호 처리 시스템
US9170812B2 (en) 2002-03-21 2015-10-27 Pact Xpp Technologies Ag Data processing system having integrated pipelined array data processor
US7394284B2 (en) 2002-09-06 2008-07-01 Pact Xpp Technologies Ag Reconfigurable sequencer structure
US7126991B1 (en) * 2003-02-03 2006-10-24 Tibet MIMAR Method for programmable motion estimation in a SIMD processor
US20040252547A1 (en) * 2003-06-06 2004-12-16 Chengpu Wang Concurrent Processing Memory
US20060215929A1 (en) * 2005-03-23 2006-09-28 David Fresneau Methods and apparatus for image convolution
US7602395B1 (en) * 2005-04-22 2009-10-13 Nvidia Corporation Programming multiple chips from a command buffer for stereo image generation
US7734114B1 (en) * 2005-12-07 2010-06-08 Marvell International Ltd. Intelligent saturation of video data
US8683106B2 (en) * 2008-03-03 2014-03-25 Nec Corporation Control apparatus for fast inter processing unit data exchange in an architecture with processing units of different bandwidth connection to a pipelined ring bus
US8130229B2 (en) 2009-11-17 2012-03-06 Analog Devices, Inc. Methods and apparatus for image processing at pixel rate
DK177161B1 (en) 2010-12-17 2012-03-12 Concurrent Vision Aps Method and device for finding nearest neighbor
DK177154B1 (da) 2010-12-17 2012-03-05 Concurrent Vision Aps Method and device for parallel processing of images
US9749548B2 (en) 2015-01-22 2017-08-29 Google Inc. Virtual linebuffers for image signal processors
US9772852B2 (en) * 2015-04-23 2017-09-26 Google Inc. Energy efficient processor core architecture for image processor
US9756268B2 (en) 2015-04-23 2017-09-05 Google Inc. Line buffer unit for image processor
US10291813B2 (en) 2015-04-23 2019-05-14 Google Llc Sheet generator for image processor
US9965824B2 (en) 2015-04-23 2018-05-08 Google Llc Architecture for high performance, power efficient, programmable image processing
US9769356B2 (en) 2015-04-23 2017-09-19 Google Inc. Two dimensional shift array for image processor
US9785423B2 (en) 2015-04-23 2017-10-10 Google Inc. Compiler for translating between a virtual image processor instruction set architecture (ISA) and target hardware having a two-dimensional shift array structure
US10095479B2 (en) 2015-04-23 2018-10-09 Google Llc Virtual image processor instruction set architecture (ISA) and memory model and exemplary target hardware having a two-dimensional shift array structure
US10313641B2 (en) 2015-12-04 2019-06-04 Google Llc Shift register with reduced wiring complexity
US9830150B2 (en) 2015-12-04 2017-11-28 Google Llc Multi-functional execution lane for image processor
US10204396B2 (en) 2016-02-26 2019-02-12 Google Llc Compiler managed memory for image processor
US10387988B2 (en) 2016-02-26 2019-08-20 Google Llc Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform
US10380969B2 (en) 2016-02-28 2019-08-13 Google Llc Macro I/O unit for image processor
US20180005346A1 (en) * 2016-07-01 2018-01-04 Google Inc. Core Processes For Block Operations On An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register
US20180007302A1 (en) 2016-07-01 2018-01-04 Google Inc. Block Operations For An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register
US20180005059A1 (en) 2016-07-01 2018-01-04 Google Inc. Statistics Operations On Two Dimensional Image Processor
US10546211B2 (en) 2016-07-01 2020-01-28 Google Llc Convolutional neural network on programmable two dimensional image processor
KR102008287B1 (ko) * 2017-05-23 2019-08-07 고려대학교 산학협력단 양방향 선입 선출 메모리와 이를 이용하는 컨볼루션 연산 처리 장치
CN108550102B (zh) * 2018-04-25 2022-05-17 珠海全志科技股份有限公司 一种硬件加速器

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0727515B2 (ja) * 1987-03-05 1995-03-29 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 2次元メッシュ・アレイの処理要素
US4975843A (en) * 1988-11-25 1990-12-04 Picker International, Inc. Parallel array processor with interconnected functions for image processing
DE4019040A1 (de) * 1990-06-14 1991-12-19 Philips Patentverwaltung Multirechnersystem

Also Published As

Publication number Publication date
KR100415417B1 (ko) 2004-04-17
US6049859A (en) 2000-04-11
EP0875031B1 (de) 2001-06-20
JP2000503427A (ja) 2000-03-21
KR19990077230A (ko) 1999-10-25
EP0875031A1 (de) 1998-11-04
DE59607143D1 (de) 2001-07-26
WO1997026603A1 (de) 1997-07-24

Similar Documents

Publication Publication Date Title
JP3573755B2 (ja) 画像処理プロセッサ
US5287532A (en) Processor elements having multi-byte structure shift register for shifting data either byte wise or bit wise with single-bit output formed at bit positions thereof spaced by one byte
CN110383237B (zh) 可重新配置的矩阵乘法器系统和方法
US4748585A (en) Processor utilizing reconfigurable process segments to accomodate data word length
KR100291383B1 (ko) 디지털신호처리를위한명령을지원하는모듈계산장치및방법
US11436143B2 (en) Unified memory organization for neural network processors
US6349318B1 (en) Arithmetic processor for finite field and module integer arithmetic operations
US8024394B2 (en) Dual mode floating point multiply accumulate unit
US5515520A (en) Data processing system for single-precision and double-precision data
US7725520B2 (en) Processor
US5179714A (en) Parallel bit serial data processor
US4376973A (en) Digital data processing apparatus
US6839831B2 (en) Data processing apparatus with register file bypass
US20120278590A1 (en) Reconfigurable processing system and method
GB1585284A (en) Cpu/parallel processor interface with microcode extension
US20130212353A1 (en) System for implementing vector look-up table operations in a SIMD processor
US6269435B1 (en) System and method for implementing conditional vector operations in which an input vector containing multiple operands to be used in conditional operations is divided into two or more output vectors based on a condition vector
EP2304594B1 (en) Improvements relating to data processing architecture
US4468748A (en) Floating point computation unit having means for rounding the floating point computation result
US5010511A (en) Digit-serial linear combining apparatus useful in dividers
US6026486A (en) General purpose processor having a variable bitwidth
US6728741B2 (en) Hardware assist for data block diagonal mirror image transformation
US6745318B1 (en) Method and apparatus of configurable processing
US10761806B2 (en) Transcendental calculation unit apparatus and method
EP1936492A1 (en) SIMD processor with reduction unit

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040412

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040630

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20080709

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090709

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090709

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100709

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110709

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110709

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120709

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120709

Year of fee payment: 8

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20120709

Year of fee payment: 8

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20120709

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130709

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20130709

Year of fee payment: 9

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term