JP4430671B2 - データドリブン型アーキテクチャメッシュアレイ中のメモリアクセスデバイス制御 - Google Patents

データドリブン型アーキテクチャメッシュアレイ中のメモリアクセスデバイス制御 Download PDF

Info

Publication number
JP4430671B2
JP4430671B2 JP2006515367A JP2006515367A JP4430671B2 JP 4430671 B2 JP4430671 B2 JP 4430671B2 JP 2006515367 A JP2006515367 A JP 2006515367A JP 2006515367 A JP2006515367 A JP 2006515367A JP 4430671 B2 JP4430671 B2 JP 4430671B2
Authority
JP
Japan
Prior art keywords
data
port
processor
processing unit
memory
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
JP2006515367A
Other languages
English (en)
Other versions
JP2007524142A (ja
Inventor
リッピンコット,ルイス
チアー,チン,ホン
Original Assignee
インテル コーポレイション
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 インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2007524142A publication Critical patent/JP2007524142A/ja
Application granted granted Critical
Publication of JP4430671B2 publication Critical patent/JP4430671B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit

Description

以下に説明する本発明の実施形態は、データドリブンプロセッサの現実的な実施に関し、すなわち、より広い範囲のアプリケーションでよい性能を示し、比較的低コストである実施に関する。
プロセッサのデータドリブン型アーキテクチャは、比較的少ない命令を用いて、大量のデータを処理する問題を解決するために、ノイマン型アーキテクチャよりよいソリューションを提供するために開発された。ノイマン型プロセッサは、メモリのほとんどどこからでも命令とデータを引いてこられるクロックによるアドレススキームにより制御されている。ノイマン型プロセッサは、命令タイプやメモリ中の位置に関する制限が少ないので、異なる広い範囲のプログラムを実行する柔軟性を有している。反対に、データドリブン型プロセッサ(DDP)は、一般的にはメモリ中に連続に格納されたデータブロックが入力され、データに作用する少数の命令だけを有するプログラムにより処理されるように設計されている。このタイプのプログラムは、(例えば、複写コピー)文書及びオーディオもしくはビデオデータのデジタル符号化及びフィルタリング等のアプリケーションに使われている。オーディオ及びビデオデータアプリケーションの例としては、ポータブルなコンシューマ情報機器(例えば、デジタルカメラ)、モバイル汎用コンピュータ、小型媒体装置(例えば、MP3プレーヤ)における圧縮と解凍がある。DDPは、処理する入力データが無いときには、急速にそのパワー消費がほぼゼロに落ち、その固有のパワー効率のため、このようなバッテリ駆動の製品に特に好適である。
DDPを有するほとんどのコンシューマ製品において、内蔵ホストコントローラ(HC)がDDPを補助して、そのDDPの個々の処理エレメントに対する命令と入力データの供給を調整する。例えば、コンシューマ製品の主汎用プロセッサまたは組込プロセッサをHCとして機能するようにプログラムすることができる。HCは、DDPの各処理エレメントに実行すべきタスクを命令する。HCは、出力データである処理エレメントによる処理の結果を受け取るための、DDPと外部メモリ間のデータパスの形成も制御する。DDPは、HCにより特定された連続したアドレスメモリ一に、DDPの個々の処理エレメントからの出力データストリームを送るダイレクトメモリアクセス(DMA)ユニットを備えていてもよい。一般的なDDPの処理エレメントは、入力データの出所は知らず、結果データが最終的にどこ宛であるかも知らない。その情報はHCだけが知っている。
本発明の実施形態を添付した図面に、限定としてではなく例示として示した。同じ参照符号は同じエレメントを示している。
発明の詳細な説明
最初に図1を参照する。この図は、データドリブン型アーキテクチャを有するプロセッサを示すブロック図である。このプロセッサは、広い範囲のアプリケーションにおいてよい性能を示すが、コストが比較的低いと期待されている。このプロセッサは、複数(この場合、6つ)の処理ユニット(PU)104により構成されている。各PU104は、メッシュ構成で示されたように、互いに結合した複数(この場合、16)のデータポートを有する。データポートはプログラマブルであり、1つの処理ユニットから他の処理ユニットへのデータフローと、1つの処理ユニットからメモリアクセスユニット108へのデータフローを可能とする。
本発明の一実施形態によると、少なくとも1つのPU104が制御ポートを備えており、そのPUはその制御ポートからメモリアクセスユニット108に、読み出しまたは外部メモリ120への書き込みをすべきデータの位置に関する情報を送ることができる。データポート及び制御ポートは、図1では明示的にラベルしていないが、それぞれデータライン112及び制御ライン116により黙示的に示されている。メモリアクセスチャネルに関するアドレス情報及びモード情報は、制御ポートを介して送られ、メモリアクセス制御レジスタ127に行く。制御レジスタ127は、例えば、DMAチャネルの動作モードに関するDMAチャネルの設定と、そのチャネルを通して転送されるデータの位置識別子と、を決定する。
PU104は、通常、データが読み書きされる外部メモリ120中の位置を知らない。PU104は、そのPUのためにプログラムされた命令に基づき、その入力ポートを通して受け取るデータを処理し、指定された出力ポートを通して結果データを出力する。出力ポートは、外部メモリ120中の特定位置に結果データを送るために生成されたデータパスの一部である。ホストコントローラ(図示せず)を用いて、通常、PUに命令またはプログラムし、そのデータポートの少なくとも1つとの間でデータを読み書きする。そのデータポートは、メモリアクセスユニット108とプログラムされたデータパスを介して論理的に接続されている。図1に示した実施形態において、少なくとも1つのPU104は、メモリアクセスユニット108に読み出しまたは書き込み要求を送り、ホストコントローラをそのようなタスクから解放することができる。この少なくとも1つのPU104のメモリアドレス能力により、プロセッサは全体として、処理すべき入来データの次のブロックがメモリに連続して格納されていないようなアプリケーションを処理するのに、より適したものとなる。このプロセッサのより詳細な説明に続いて、ビデオ復号アプリケーションの一実施例を説明し、PU104の付加的なメモリアドレス能力の利点を例示する。
プロセッサのメモリアクセスユニット108は、中央演算処理装置(CPU)124が関与しなくても外部メモリ120との間で読み書きができるダイレクトメモリアクセスユニット(DMA)である。メモリアクセスユニット108は、PU104、CPU124、または外部ホストコントローラ(図示せず)の1つの制御ポートから受け取った高レベルの読み出し書き込みコマンドを低レベルのメモリアクセスコマンドに変換するように機能する。高レベルの読み出し書き込みコマンドは、例えば、ビデオ、文書、またはオーディオ等の特定アプリケーションである特定用途向けであってもよい。一例として、PU104は、画像データのフレームにアクセスするが一部のピクセルはスキップするため、メモリアクセスユニット108に対する読み出し要求を生成する。他の実施例として、その読み出し要求は、画像フレーム全体の中の特定ブロックだけに対するものであってもよい。このような高レベル要求は、例えば、ディスプレイ上のカーテシアン座標系によって与えられるピクセル位置を単に参照するものでもよい。それに応じて、メモリアクセスユニット108により生成されたメモリアクセスコマンドは、ピクセル値が格納されている外部メモリ120中の特定のアドレスを参照する。場合によっては、これらの低レベルメモリアクセスが外部メモリ120の信号レベルとタイミングの要求を満たすことを保証するため、図1に示したようなメモリインターフェイス回路128を必要とするかもしれない。複数のDMAチャネルを利用して、読み出し及び書き込み処理を要求したり、外部メモリとの間でデータを転送したりすることができる。
図1に示したプロセッサは、外部デバイス(図示せず)とのI/Oインターフェイス132も有する。PU104の出入力データポートの一部、特に中心から離れたPU1とPU4の出入力データポートがI/Oインターフェイス132と結合していることが分かる。そのインターフェイス132により、入来データと結果データがPU104と外部デバイス(例えば、ハードディスクドライブ、CD-ROMドライブ、及びビデオディスプレイ等)との間で転送できる。インターフェイス132は、PU104のデータポートにより必要な信号とパラレルコンピュータペリフェラルバスまたは高速シリアルバスの信号との間で変換を行うように設計されている。インターフェイス132は、オーディオまたはビデオデータの入来ストリーム及び結果ストリームのために使用されてもよい。他の手段として、すべての入来及び結果データ(例えば、画像フレーム全体)を外部メモリ120に格納して、すべての処理が完了した後に、結果データを大容量記憶デバイスその他の周辺装置に転送する。
外部メモリとの関係でプロセッサの性能をさらに高めるため、追加的メモリアクセスユニット136を設けて、別のメモリインターフェイス138を介して、追加的外部メモリ140中の利用可能な記憶もPU104に使用させてもよい。上記の実施形態において、PU1−PU3の北側のデータポートは、第1のメモリアクセスユニット108に結合し、PU4−PU6の南側のデータポートは、第2のメモリアクセスユニット136に結合している。PU1−PU3に(南側の)外部メモリ140にアクセスさせるため、PU1−PU3の南側データポートがPU4−PU6の北側データポートに結合している。
図1に示したプロセッサの実施形態は、CPU124も有している。CPU124は、PU104のチップ上に設けられ、PU104とメモリアクセスユニット108、136のデータポートを設定する命令を読み出し実行し、1つのPU104から外部メモリ120、140へのデータチャネルを生成する。データポートのメッシュ構成を通るデータパスを生成し、PU104に個別のタスクを命令する機能は、外部のホストコントローラ(図示せず)に担わせてもよい。図2を用いてPU間に複数のデータパスを生成するデータポートの柔軟性を例示する。
図2は、プロセッサの別の実施形態における2つのポイント間に生成できるデータパスの一例を示す。この実施形態において、8つのPU104と5つのデータパスが示され、PU1とPU8がリンクされている。各PU104は、各側に4セットのデータライン112と接続するデータポートを有する(制御ポートとそれに対応する制御ライン116は示さず、図1を参照)。データポートメッシュは、1つのPU104から他のPU104へのデータフロー、及びデータチャネルを通じた外部メモリ120、140へのデータフローをサポートする。外部メモリ120、140は、バッファタイプの専用固体メモリであってもよく、比較的高速アクセスと大容量記憶に好適であり、文書処理及びビデオ・オーディオ処理等のアプリケーションに使用されるものである。あるいは、外部メモリ120、140は、ホストコントローラ(図示せず)のメインメモリや電子システムの他のメインメモリの一部であってもよい。外部メモリ120、140は、ダブルデータレートまたはシンクロナスダイナミックランダムアクセスメモリで構成されてもよい。プロセッサのそのアプリケーションに好適な他のタイプの固体メモリを代替的に用いてもよい。
上述の通り、データポートを設定して、プロセッサの2つのポイントの間に論理的コネクションを確立することができる。この実施形態において、データポートメッシュの設定は、ホストインターフェイス139を通してコンピュータペリフェラルバス(図示せず)により接続されたホストプロセッサ(図示せず)により制御される。比較的低速のグローバルバス(図示せず)がホストインターフェイス139をPU104、メモリアクセスユニット108、プロセッサの他の構成要素に接続する。このグローバルバスを用いて、PU104のための命令またはマイクロコードをロードし、状態レジスタ(図示せず)を読み出すことにより、プロセッサを設定またはプログラムする。また、中心からはずれたPU、すなわちPU1、PU5、PU4、及びPU8の各々は、それぞれの拡張インターフェイス(EI)ユニット141に結合したデータポートのペアを有する。EIユニット141は、データポート通信メッシュを複数のプロセッサにわたって拡張させ、上述の通り、外部周辺デバイス(例えば、ビデオディスプレイ、ハードディスクドライブ、及びプリンター等)をプロセッサに接続させる。
PU104は、複数の辺を有する基本的に同一のユニットであり、各辺には、少なくとも1つが入力ポートであり、少なくとも1つは出力ポートである複数の一方向性のデータポートがある。図2の実施形態において、隣接するPU104からの、データポートの各ペアの結合タイプは、ポイントツーポイント、一方向性接続である。データポートと各PUのプログラミングエレメントへのその接続(図4−7を参照して以下にさらに説明する)は、各PU内のプログラミングエレメントがそのPUのデータポートを通して転送されるデータに関係する必要がないように設計される。このように、図2に示した例において、関係するデータポートを実際に読み出しまたは書き込みしているPU104はPU1とPU8である。それら2つのPUの間に5つの異なるデータパスを設定することができることは、データポートのメッシュ構成が柔軟性を有することを示している。分かりやすくするため、図2には、PU1とPU8の間の可能なデータパスのすべてを示してはいない。また、すでに明らかなように、同様のプログラマブルデータパスをPU104のいずれかと外部メモリ120または140との間に、メモリアクセスユニット108または136を通るどのデータチャネルを介しても生成することができる。
メモリアクセスユニット108(図1参照)の制御レジスタ127を少なくとも1つのPU104の制御ポートを介して書き込めるようにすると、全体としてプロセッサをビデオ処理アプリケーションにより好適なものにすることができる。そのビデオ処理アプリケーションにおいては、処理が必要な入来データの位置は、必ずしもブロックごとに順次変化はしない。一例として、シーン中の動きによる、前フレームからの画像ブロック位置の変化をポイントする、現フレームの動きベクトルを生成することにより、圧縮段階においてフレーム間の時間的冗長性を減らすビデオ圧縮を考える。復号または解凍段階を考えるが、この段階では、PU1が入来ビデオデータを復号して「現」フレームを再構成するように命令される。この入来ビデオデータは動きベクトルを含んでもよい。動きベクトルは前フレームにあった画像データブロックをポイントするので、そのブロックをフェッチするには外部メモリに対する別のアクセスが必要である。言い換えると、動きベクトルは、外部メモリ120に格納されている、現フレームを復号するためにコピーされる必要がある前フレームの画像ブロックをポイントしている。留意すべきことは、ホストコンピュータは、復号プロセスが開始される前、このブロックの正確な表示位置(x,y)を知らないことである。しかし、一旦、その情報が処理ユニット(例えば、PU1)に利用可能となると、外部メモリへのアクセスは以下のように迅速に行われる。最初、PU1は、その制御ポートを通して、メモリアクセスユニットのデータチャネルZを介して位置(x,y)から読み取るコマンドを送る。この結果、メモリアクセスユニット108の制御レジスタ127は、動きベクトル(この場合、データチャネルZを介して位置(x,y)から読み出される)に関するアドレス及びモード情報で設定される。読み出しデータは、メモリアクセスユニット108によりフェッチされ、チャネルZを通して利用可能となる。論理データパスがメモリアクセスユニットのチャネルZとPU5の間で(例えば、外部ホストコントローラにより)前にプログラムされているので、動きベクトルによりポイントされた画像ブロックはそのパスを通じてPU5に経路指定される。PU5は、前に命令されたように、このデータを処理し、現フレームの外部メモリにその結果のデータを書き込む。その結果のデータには、この場合、動きベクトルに基づき前にプログラムされたアルゴリズムによりPU5により生成された復号されたマクロブロックを含む。
一般に、少なくとも1つのPU104を与えられて、どのアドレス情報を外部メモリに送るかを制御することにより、プロセッサのプログラミングを全体として自由かつ柔軟にすることができる。少なくとも1つのPUに制御ポートを備えることにより、アルゴリズムの論理的複雑性をPU104により多く担わせることができ、CPU124(図1参照)またはホストコントローラ(図示せず)がアプリケーションを実行するより複雑なタスクを処理できるようにする。制御ポートを追加してもデータポートのメッシュ構成の利益には悪影響はなく、メッシュ構成によるデータドリブン型アーキテクチャ(タイミング問題の減少とパワー効率の改善を含む)、複数PUの並行処理能力、PU設計のスケーラビリティとモジュール性という利点を維持する。
まだ図2を参照して、メモリインターフェイス回路128は、メモリアクセスユニット108、すべてのPU104、及びホストインターフェイス139とオンチップである。代替案として、これら構成要素は、例えばPU104が別チップ上にあるマルチチップパッケージの一部であってもよい。
次に図3を参照して、上で説明したデータドリブン型プロセッサ304を含む電子システムのブロック図が示されている。そのシステムは、表示または可聴化(例えば、ビデオまたはオーディオファイルの解凍)、格納(例えば、格納前の圧縮)、または印刷のために画像、オーディオ、その他の媒体を処理できるいかなる形のコンピューティングまたは通信装置であってもよい。そのシステムはコネクター308を有し、そのコネクター308により、プロセッサ304は、例えば、I/Oインターフェイス132(図1参照)を介して周辺デバイス(図示せず)に直接的に結果データを供給することができる。システムはホストコントローラ310も有し、そのホストコントローラ310は、バス314を介してプロセッサ304と通信するように結合している。そのバス314は、シリアルまたはパラレルのコンピュータペリフェラルバスである。ホストコントローラ310は、プロセッサ304により与えられた、データドリブン型アーキテクチャによる実行に特に好適なタスクを含む、上に例を示したビデオ符号化等のアプリケーションプログラムを実行するように構成されている。ホストコントローラ310は、組込プロセッサとそれに付随するメインメモリ(図示せず)を含んでもよい。
プロセッサ304により処理されるコンテントデータは、外部メモリ316に格納され(例えば、画像フレーム全体)、プロセッサ304の個々の処理ユニットが上で説明したデータポートのメッシュ接続を介してアクセス可能である。プロセッサ304のホストインターフェイスユニット(図示せず)は、個々の処理ユニットにそのタスクを命令し、その処理ユニットからデータチャネルを介して外部メモリ316へ至るデータパスを生成する命令をホストコントローラ310から受け取る。プロセッサ304は、それのメモリアクセスユニットにデータチャネルアドレス情報を書き込むために用いる、その処理ユニットの少なくとも1つの制御ポートで拡張される。図3に示したシステムは、燃料電池または再充電可能バッテリ330も有し、電圧レギュレータ(VR)モジュール334により外部メモリ316、ホストコントローラ310、プロセッサ304にパワーを供給するために結合される。もちろん、燃料電池または再充電可能バッテリ330の出力電圧が十分安定して、外部メモリ、プロセッサ、及びホストコントローラの要求を満足すれば、VRモジュール334は必要ない。
図4を参照して、PU104のブロック図が示されている。この実施形態において、PU104は、少なくとも1つのコアプログラミングエレメント(PE)を有し、そのコアPEは、8つの入力データポート408のいずれか1つを介して受け取った入来データを処理する。各PEは、ベースライン命令セットアーキテクチャを実施する、命令メモリと算術演算ユニット(ALU)とを有する。また、少なくとも1つのPE416に加えて、乗算・加算ユニット(MAC)がある。追加的PEは、少なくとも1つのアクセラレータユニット420を含む(例えば、2の補数の乗算や、特定アプリケーション用のデジタルフィルタリング等の特殊演算を実行する)。PU104内のデータ、定数、命令をローカル記憶のために内蔵データRAMを有するメモリコマンドハンドラ(MCH)424を備えている。入力PE428は、PU104の入力データポート408のひとつからデータを読み出すことができ、一方、出力PE432は、複数の出力データポート436のいずれかに結果データを書き込むことができる。一組の汎用レジスタ440により、所定のセマフォプロトコルによりPE間でデータを交換することができる。複数の汎用レジスタを介して結合された複数の処理エレメントを有するデータドリブン型デジタル信号プロセッサのさらに別の例については、米国特許出願公開公報第US2002/0147768号(Vevro)を参照せよ。図4の実施形態において、PU104の各コアPUは、そのPUの入力及び出力データポート408、436のペアを通して動作しているデータパスとは独立に、その命令を実行することができることに留意せよ。言い換えると、入力データポート408、入力PE428、汎用レジスタ440、出力PE432、出力データポート436の間にデータパスがあるが、PE412、416、アクセラレータユニット420、及びMCH424の動作とは独立である。入出力データポート408、436に関する詳細は、図5−7を参照して以下で説明する。
次に図5を参照して、入力データポート408(図4参照)の一部のブロック図が示されている。入力データポート408は、他のPUからデータを受け取る。その入力データポートは、そのPUの外からデータとともに要求を受け取る要求/許可プロトコルにより通信する。入力データポートは、そのデータを受領すると許可を返す。この実施形態において、その要求/許可プロトコルは、入力クロック信号のアクティブエッジで要求及び許可信号がアクティブなときはいつもデータが転送されていることを必要とする。この入力データは、先入れ先出し(FIFO)バッファ510に一時的に格納される。そのデータは、複数のいわゆるトランスミッタP0−P7の1つから許可信号を受け取るまで、FIFO510に格納される。マルチプレクサ514が設けられ、この入力データポート408が接続されたデバイスからの(この場合、8つの)許可信号の1つを選択する。入力ポート408は、マルチプレクサ514の選択入力を制御するレジスタ設定によりプログラムされ、8つのトランスミッタのどれがFIFO510からのデータを受け取るかを決定する。このレジスタ設定は、FIFO510へのデータ転送が起こる前または後に変更される。
この場合の8つの可能な許可信号は、このPUの(8つ中)7つの出力データポートと、このPU104(図4参照)の入力PE428を指す。この場合、8つの可能な許可信号があることに留意せよ。その理由は、データを転送できる出力データポートが7つだけあり、8つめのデータポートは、入力データポート408に付随した出力データポートに対応する。図5に示したように、FIFO510からPU104の他のすべてのデバイス(この場合、8つ)に受信データ、要求、及び初期化信号を転送するパスがある。
初期化(Init)信号は、データパスを形成する各データポートを通して送られる。このように、データポートがデータのソースポイントで初期化された場合、初期化信号がデータパスであるすべての論理接続を通して伝送され、データパス全体を初期化する。初期化信号は、プロセッサ中の長い論理接続を通して伝搬遅れが集積するのを防止するため、登録され、データであるがごとくデータポートを通じて送られる。データポートインターフェイス信号(データ及び要求信号を含む)は、論理接続を通じた大きな組み合わせ遅れを防止するために、すべてこのように取り扱われる。入力データポートのパッケージピンと出力データポートのパッケージピンの間に論理接続を確立刺せる入力データポート408の他の実施形態も可能である。図6は、出力データポート436の一部を示すブロック図である。
図6に示した出力データポート436は、他のPU104にデータを送信するので、「トランスミッタ」ポートとも呼ばれる。3つのマルチプレクサ614が一組となって設けられ、PUから送信される要求、データ、及び初期化信号を選択する。各マルチプレクサ614は、この実施形態では、8つの入力を有し、これらの入力は、PUの7つの入力データポートと、1つの出力PE432(図4参照)に対応することに留意せよ。再び、マルチプレクサ614への選択入力は、データ転送が起こる前または後に変更可能なレジスタ設定により制御される。
選択された要求、データ、初期化情報は、FIFO620の一次記憶におかれる。図5を参照して上で説明した入力データポート408の場合のように、出力データポートのFIFO620は、PUの外部のデバイスから許可を受信すると、それに応じてバッファされた要求、データ、及び初期化情報を提供する。
FIFO510とFIFO620の組み合わせは、図7のように2-deepFIFO720として例示できる。この2-deepFIFO720は、与えられたPUを通じた、論理接続の一部であり、入力データポートと出力データポートによりできている。入力側において、data_in、request_in、init_inを受信しFIFO720に格納し、この一組の入力情報が受け入れられるとき、grant_inが信号出力される。FIFO720は、PUの外部のデバイスからgrant_out信号を受信すると、それに応じてdata_out、request_out、init_outを送信する、プログラムされた論理接続の一部である。上述の通り、これらのインターフェイス信号は、論理接続を通じた大きな組み合わせ遅れを防止するように取り扱われる。これにより、データパス経路指定に関して特に心配せずに、システムオンチップ設計を容易にすることができる。データポート間の経路指定はすべて、上述の通り、各データポートに登録された簡単なポイントツーポイント接続である。論理接続は、マルチプレクサ514(図5)及び614(図6)の簡単なレジスタ設定によりプログラムされる。しかし、PU104を通じた論理接続の他の実施形態も可能である。
次に図8を参照して、この図は、フレキシブルなデータドリブン型アーキテクチャに好適な一般化されたデータ処理方法のフロー図を示している。ブロック804で始まり、一組の命令と入来データ(第1のセット)がデータドリブン型プロセッサの第1の処理ユニット(PU)に供給される。上で示唆したように、これらの命令と入来データ(及び、第1のPUに到達する入来データのデータパス)は、プロセッサの比較的低速なグローバル制御バスを通じて、オンチップCPUまたは外部ホストコントローラにより調整され設定される。また、少なくとも1つの制御パスが設定され、第1のPUがメモリチャネルアドレス情報をプロセッサのメモリアクセスユニットに送る。
第1のPUは、入来データを処理する時、この第1のセットの命令が外部メモリとの間で読み書きのいずれかを必要とすることを認識する。従って、ブロック808に進み、第1のPUがメモリアクセスユニットに(コントロールパスを介して)与えられたメモリチャネルとの間でデータをフェッチまたは待機するよう要求する。プロセッサの第2のPUと外部メモリの間の論理データパス(その与えられたメモリチャネルを介した)は、前に生成されており、外部メモリと第2のPUの間の追加的データを転送する。本発明の一実施形態によると、上述の追加された制御ポート構造を用いて、第1のPUは、外部メモリと第2のPUの間に前もってプログラムされたデータパスを通じて、転送すべきデータの位置を特定することができる。この論理データパスは、各処理ユニット内の個々のプログラミングエレメントとは独立なデータポートメッシュ構成を通して経路指定される。
一例として、第1のPUは、第1のセットの命令中の画像処理動きベクトルを認識する。その場合、追加的データは、外部メモリに書き込まれ、動きベクトルに基づき第2のPUにより生成されるマクロブロックを含む。オーディオ圧縮等の多くの他のタイプのデータドリブン型アプリケーションはこの追加された機能により利益を受ける。
図9は、データドリブン型プロセッサの制御ポートメッシュ構成の高レベルブロック図を示す。この図において、理解しやすくするために、制御ポートメッシュ構成のみを示した。本発明のこの実施形態において、DMAチャネルはコマンドを発することができないので、DMAユニットはPUのスレーブである。むしろ、DMAチャネルへのすべてのコマンドはPUの北または南の制御ポートのいずれかにより発せられる。この例において各PUは、北、東、南、西とのラベルを付された4つの制御ポートセットを含む。それぞれポート0とポート1を有する。例えば、PU1のE1ポートはコマンドを受信し、一方、(メッシュ構成の制御パスの一部として設定されている場合)E0はコマンドを送信する。ポイントツーポイントバス接続は、隣接するPUからの(または、PU及びDMAユニットからの)制御ポートのペアによりサポートされている。
トランスミッタポートとレシーバポート(PUの外部)の間のポイントツーポイント接続は、コマンド部分と状態部分を有するパラレルバスを用いて構築されてもよい。コマンド部分は16ビットバスを有し、DMAユニットの特定データチャネルの、DMAユニットに宛てられた設定命令を送信するために用いられる。ステータスバスは、3ビット設けられ、データチャネルのステータスをコマンド発信者に返すために使用される。初期化(Init)信号の使用に加えて、上で説明したデータポートリンクと同様に、要求及び許可の信号プロトコルを用いてもよい。コマンドを完全に送信するには、このように2クロックサイクルかかる。次に図10を参照して、第1のサイクルで、制御ワード1004が送信され、その次に第2のサイクルで、コントロールポート_データワード1008が送信され、コマンドが完了する。図10から分かるように、制御ワードは、経路指定情報(ルータ識別情報、RID)を含み、制御ポートがコマンドを正しい宛先に経路指定するのを助ける。より具体的に、レシーバポートは、RIDビットに基づきコマンドの宛先、及びそのコマンドが読み出しまたは書き込みチャネルを特定しているかどうかを決定する。RIDビットは、この実施例の場合、ポート0またはポート1のいずれかを特定する。このコマンドの最終宛先は、要求された読み出しまたは書き込みコマンドを実行するため、(上述の通り、データポートを通じて利用可能な)データチャネルを設定するDMAユニットであることを思い出して欲しい。ポートビット(RID#1)は、0ポートであるか1ポートであるかに応じて、トランスミッタポートでハードウェアに組み込まれていてもよい。R/Wビットは、コマンド発信者により駆動され、制御パス中の全制御ポートによって変更されずに通過する。
制御ワード1004は、データチャネルの設定を規定するREG_SELビット(この場合、4ビット)も含む。例えば、REG_SEL値0000に続き制御ポート_データワード1008を用いて、メモリ転送の開始の合図をする。他のコマンドが(x,y)データ位置を参照して読み出しまたは書き込みをすることもある(CH_ADDRX及びCH_ADDRY)。他の種類のいろいろなコマンドが図10に記載されている。これらのコマンドは、特に静止が及びビデオ画像処理のアプリケーションに好適である。他のアプリケーションは、異なるコマンドセットを有していてもよいが、ほとんどの場合、(与えられたデータチャネルに付随する別のデータパスを用いて)DMAユニットが外部メモリとの間でコンテントデータの読み書きをできるようにする、データ位置またはアドレス情報を少なくとも含むであろう。このデータパスは、例えば、ホストコントローラによりデータポートメッシュ構成で前もって設定されていてもよいことに留意せよ。
さらに図10を参照して、レシーバポートは、制御ワード1004と制御ポート_データワード1008の受信に応じて、ステータスインディケータ1012を送る。この例において、ステータスインディケータ1012は、2つの条件のうち一方が起こった時に送られる。その2つの条件とは:アイドルタイマーが時間切れとなるか、または「end of swath(EOS)」に到達した場合である。これらの条件が2つとも起こらない場合、コマンド発信者は、ステータス表示を何も受け取らない。例えば、EOS条件が無く、最後に読み出しまたは書き込みを行ってから一定クロック数メモリの読み出しや書き込み動作がない場合、アイドルタイマーが時間切れとなる。書き込みの場合、DMAチャネルが、そのチャネルによる前の読み出しまたは書き込みの後、追加コンテントデータがデータポートで利用可能となるのを一定クロック数待った場合、アイドルタイマーが時間切れとなる。書き込みの場合、データチャネルが、与えられたデータパスを介してPUから受け取るべき追加的コンテントデータを一定クロック数待った場合、アイドルタイマーが時間切れとなる。読み出しの場合、最後のコンテントデータワードが、一定のクロックサイクル数が経過してデータチャネルから出された場合に、アイドルタイマーが時間切れとなる。制御ポートの間で合図を送る要求・許可プロトコルを異なるように規定することも可能である。
コマンド発信者が、アイドルタイマーが時間切れとなったとの状態を受信した場合、制御ポート制御レジスタ(図示せず)のInitビットを所定値にプログラムして、制御パス及びその制御パスに付随したDMAチャネルにあるすべてのコマンドをクリアする。また、書き込みデータチャネルでアイドルタイマーが時間切れとなった状態が検出された場合、コマンド発信者は、データポート制御レジスタ中のInitビットを所定値にプログラムして、データポートパス中のすべてのコンテントデータをクリアし、DMAユニットのキューにあるコマンドにより書き込みデータチャネルを再構成させる。
次に図11を参照して、制御ポート(この場合、ノースポートN0及びN1(図9参照)の1つ)として使用できるアービタの簡略化した図が示されている。アービタ1104は、トランスミッタにあり、この実施例では、関連するPUの8つの可能な接続パスからの要求を調停する(送信要求を受信する6つの制御ポートと、読み出しコマンドを発することができる入力プログラミングエレメント(IPE)と、書き込みコマンドを発することができる出力プログラミングエレメント(OPE)とがあるからである)。他の実施形態において、要求を発することができる制御ポートが6つより少なくても多くてもよい。
次に図12を参照して、制御ポートNorth0の選択レジスタの例を示した。この例において、制御ポートレシーバ選択用に使用される3ビットと、トランスミッタ選択用の3ビットがある。レシーバ選択ビットは、ノースポートを通して到着したコマンドを付随するPUのどのデバイスが受信すべきかを示すことにより制御ポートをプログラムする。同様に、トランスミッタ選択ビットは、(上述の8つのうち)どのデバイスがコマンドを、ノースポートを通して送信することができるかを決める。OPEからのコマンドは、一般的に、DMA書き込みチャネルに向けられ、一方、IPEからのコマンドは、DMA読み出しチャネルに向けられることに留意せよ。コントロールポートをトランスミッタとして(PUからコマンドを送信する)、及びレシーバとして(PUのデバイスへのコマンドを経路指定する)動作するようにプログラムする他の方法もある。
要約すると、広い範囲のアプリケーションを実行するより効率的なデータドリブン型プロセッサのいろいろな実施形態を説明した。上記の説明では、本発明を具体的な実施形態を参照して説明した。しかし、言うまでもなく、添付したクレームに記載した本発明の精神と範囲から逸脱することなく、いろいろな修正や変更をすることが可能である。例えば、図面に示したプロセッサは6つまたは8つのPUからなっているが、PUを2つ以上、または8つより多くメッシュ構成で互いに接続したアーキテクチャも、PUの一部または全部に制御ポートを付加することにより利益がある。従って、明細書と図面は、限定ではなく例示をするものと考えなければならない。
データドリブン型アーキテクチャを有するプロセッサを示すブロック図である。 そのプロセッサの他の実施形態において、生成されるデータパスを示す図である。 そのプロセッサの一実施形態を用いた電子システムを示すブロック図である。 そのプロセッサの一実施形態の構成要素を示すブロック図である。 そのプロセッサにおいて使用される入力データポートを示すブロック図である。 そのプロセッサで使用される出力データポートの一部を示す図である。 入出力データポートで使用される先入れ先出しロジックへの入出力信号を示す図である。 本発明の一実施形態によるデータ処理方法を示すフロー図である。 データドリブン型プロセッサの制御ポートメッシュ構成を示す高レベルのブロック図である。 制御ポートが互いに通信するために使用する制御ワード、制御ポートデータワード、及び状態表示の一例を示す図である。 制御ポートトランスミッタで使用されるアービタを示す簡略化したブロック図である。 制御ポートに設けることができ、その制御ポートのトランスミッタ部分及びレシーバ部分を構成する選択レジスタの一例を示す図である。

Claims (3)

  1. データドリブン型処理方法であって、
    ホストコントローラが、データドリブン型プロセッサの第1の処理ユニットに第1の命令セットを供給し、前記第1の処理ユニットに前記第1の命令セットに応じて入来データを処理させるステップと、
    前記ホストコントローラが、前記データドリブン型プロセッサの第2の処理ユニットと外部メモリとの間にデータを転送するデータパスであって、前記プロセッサのメモリアクセスユニットを介して前記外部メモリに結合するデータパスを設定するステップとを有し、
    前記第1の処理ユニットは、前記第1の命令セットの処理に基づき前記第1の命令セットが外部メモリとの間で読み出し及び書き込みの一方を必要とすると認識すると、その認識に応じて前記第1の処理ユニットの制御ポートを介して前記プロセッサの前記メモリアクセスユニットにアドレス情報を供給し、前記データパスを介して前記外部メモリと前記第2の処理ユニットとの間でさらなるデータの転送を可能とする方法。
  2. 前記第1の処理ユニットは、前記第1の命令セット中の画像処理動きベクトルを認識し、
    前記さらなるデータは、前記外部メモリに書き込むものであり、前記動きベクトルに基づき前記第2の処理ユニットにより生成されたマクロブロックを含む、請求項1に記載の方法。
  3. 前記第1の処理ユニットは、前記メモリアクセスユニットに前記転送が読み出し及び書き込みの一方であることの表示を提供する、請求項1に記載の方法。
JP2006515367A 2003-06-30 2004-06-18 データドリブン型アーキテクチャメッシュアレイ中のメモリアクセスデバイス制御 Expired - Fee Related JP4430671B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/611,377 US7827386B2 (en) 2003-06-30 2003-06-30 Controlling memory access devices in a data driven architecture mesh array
PCT/US2004/019613 WO2005006208A2 (en) 2003-06-30 2004-06-18 Controlling memory access devices in a data driven architecture mesh array

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2009169418A Division JP5301381B2 (ja) 2003-06-30 2009-07-17 データドリブン型アーキテクチャメッシュアレイ中のメモリアクセスデバイス制御

Publications (2)

Publication Number Publication Date
JP2007524142A JP2007524142A (ja) 2007-08-23
JP4430671B2 true JP4430671B2 (ja) 2010-03-10

Family

ID=33541305

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2006515367A Expired - Fee Related JP4430671B2 (ja) 2003-06-30 2004-06-18 データドリブン型アーキテクチャメッシュアレイ中のメモリアクセスデバイス制御
JP2009169418A Expired - Fee Related JP5301381B2 (ja) 2003-06-30 2009-07-17 データドリブン型アーキテクチャメッシュアレイ中のメモリアクセスデバイス制御

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2009169418A Expired - Fee Related JP5301381B2 (ja) 2003-06-30 2009-07-17 データドリブン型アーキテクチャメッシュアレイ中のメモリアクセスデバイス制御

Country Status (8)

Country Link
US (1) US7827386B2 (ja)
EP (1) EP1639496A2 (ja)
JP (2) JP4430671B2 (ja)
KR (1) KR100818818B1 (ja)
CN (1) CN100452018C (ja)
MY (1) MY147182A (ja)
TW (1) TWI266997B (ja)
WO (1) WO2005006208A2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9330060B1 (en) * 2003-04-15 2016-05-03 Nvidia Corporation Method and device for encoding and decoding video image data
KR100640885B1 (ko) * 2004-01-27 2006-11-02 엘지전자 주식회사 듀얼 비디오 디코딩을 위한 비디오 버퍼 제어 장치
US8731071B1 (en) 2005-12-15 2014-05-20 Nvidia Corporation System for performing finite input response (FIR) filtering in motion estimation
KR100874169B1 (ko) 2007-02-02 2008-12-15 엠텍비젼 주식회사 프로세서간 커맨드를 직접 전달하는 듀얼 포트 메모리 및이를 수행하기 위한 방법
US8756482B2 (en) 2007-05-25 2014-06-17 Nvidia Corporation Efficient encoding/decoding of a sequence of data frames
US9118927B2 (en) 2007-06-13 2015-08-25 Nvidia Corporation Sub-pixel interpolation and its application in motion compensated encoding of a video signal
US7669036B2 (en) * 2007-06-14 2010-02-23 Qualcomm Incorporated Direct path monitoring by primary processor to each status register in pipeline chained secondary processors for task allocation via downstream communication
US8873625B2 (en) 2007-07-18 2014-10-28 Nvidia Corporation Enhanced compression in representing non-frame-edge blocks of image frames
JP2009140062A (ja) * 2007-12-04 2009-06-25 Hitachi Ltd ストレージ装置とストレージシステム及びパス情報設定方法
US8078829B2 (en) * 2007-12-12 2011-12-13 Itt Manufacturing Enterprises, Inc. Scaleable array of micro-engines for waveform processing
EP2304577B1 (en) * 2008-05-27 2018-07-04 Stillwater Supercomputing, Inc. Execution engine
US9501448B2 (en) 2008-05-27 2016-11-22 Stillwater Supercomputing, Inc. Execution engine for executing single assignment programs with affine dependencies
KR101849702B1 (ko) 2011-07-25 2018-04-17 삼성전자주식회사 외부 인트린직 인터페이스
US9330028B2 (en) * 2014-03-27 2016-05-03 Intel Corporation Instruction and logic for a binary translation mechanism for control-flow security
JP6503945B2 (ja) 2015-07-13 2019-04-24 富士通株式会社 情報処理装置、並列計算機システム、ファイルサーバ通信プログラム及びファイルサーバ通信方法
US10437483B2 (en) * 2015-12-17 2019-10-08 Samsung Electronics Co., Ltd. Computing system with communication mechanism and method of operation thereof
GB201607981D0 (en) * 2016-05-06 2016-06-22 Vicentra B V Communication handling
KR20180061557A (ko) * 2016-11-29 2018-06-08 삼성전자주식회사 컨트롤러 및 컨트롤러와 불휘발성 메모리 장치들을 포함하는 스토리지 장치
KR102400105B1 (ko) * 2017-07-25 2022-05-19 삼성전자주식회사 리플 보상기, 이를 포함하는 데이터 구동 회로 및 반도체 장치
EP3921739A4 (en) * 2019-02-06 2023-02-15 Fermat International, Inc.. ANALYTICS, ALGORITHM ARCHITECTURE AND DATA PROCESSING SYSTEM AND PROCEDURES

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0646412B2 (ja) * 1987-07-29 1994-06-15 日本電気株式会社 デ−タフロ−プロセツサ
JPH0646413B2 (ja) * 1987-08-10 1994-06-15 日本電気株式会社 デ−タ処理プロセッサ
JPH01320564A (ja) 1988-06-23 1989-12-26 Hitachi Ltd 並列処理装置
US5522083A (en) * 1989-11-17 1996-05-28 Texas Instruments Incorporated Reconfigurable multi-processor operating in SIMD mode with one processor fetching instructions for use by remaining processors
DE58908974D1 (de) * 1989-11-21 1995-03-16 Itt Ind Gmbh Deutsche Datengesteuerter Arrayprozessor.
JP2766404B2 (ja) * 1991-02-12 1998-06-18 三菱電機株式会社 データ駆動形マイクロプロセッサ
US5586281A (en) * 1992-10-27 1996-12-17 Sharp Kabushiki Kaisha Data driven type information processing apparatus
JP3230898B2 (ja) * 1993-06-02 2001-11-19 シャープ株式会社 データ駆動型情報処理システム
US6073185A (en) * 1993-08-27 2000-06-06 Teranex, Inc. Parallel data processor
JP3308770B2 (ja) * 1994-07-22 2002-07-29 三菱電機株式会社 情報処理装置および情報処理装置における計算方法
JPH08249306A (ja) * 1995-03-09 1996-09-27 Sharp Corp データ駆動型情報処理装置
FR2770665B1 (fr) * 1997-11-06 2002-12-20 Alsthom Cge Alkatel Dispositif d'echange entre unites de traitement d'informations a processeurs interconnectes par un bus commun
US6173388B1 (en) * 1998-04-09 2001-01-09 Teranex Inc. Directly accessing local memories of array processors for improved real-time corner turning processing
US6260082B1 (en) 1998-12-23 2001-07-10 Bops, Inc. Methods and apparatus for providing data transfer control
DE60109699T2 (de) * 2000-09-27 2005-09-08 Texas Instruments Inc., Dallas Gerät und Verfahren zum Signalgruppenaustausch zwischen mehreren Teilen in einer Einrichtung zur digitalen Signalverarbeitung der eine Direktspeicherzugriffssteuerung enthält
US7178009B2 (en) 2001-04-04 2007-02-13 Intel Corporation Different register data indicators for each of a plurality of central processing units
US6754763B2 (en) * 2001-07-30 2004-06-22 Axis Systems, Inc. Multi-board connection system for use in electronic design automation
US7889951B2 (en) 2003-06-19 2011-02-15 Intel Corporation Processor to processor communication in a data driven architecture
US20040257372A1 (en) 2003-06-19 2004-12-23 Lippincott Louis A. Communication ports in a data driven architecture

Also Published As

Publication number Publication date
KR20060040610A (ko) 2006-05-10
JP2009238252A (ja) 2009-10-15
JP5301381B2 (ja) 2013-09-25
EP1639496A2 (en) 2006-03-29
CN1813250A (zh) 2006-08-02
US20040268088A1 (en) 2004-12-30
CN100452018C (zh) 2009-01-14
WO2005006208A2 (en) 2005-01-20
MY147182A (en) 2012-11-14
US7827386B2 (en) 2010-11-02
KR100818818B1 (ko) 2008-04-02
TWI266997B (en) 2006-11-21
JP2007524142A (ja) 2007-08-23
WO2005006208A3 (en) 2005-10-27
TW200506640A (en) 2005-02-16

Similar Documents

Publication Publication Date Title
JP5301381B2 (ja) データドリブン型アーキテクチャメッシュアレイ中のメモリアクセスデバイス制御
US7363396B2 (en) Supercharge message exchanger
US7802025B2 (en) DMA engine for repeating communication patterns
US20090089515A1 (en) Memory Controller for Performing Memory Block Initialization and Copy
US20090235047A1 (en) Computer system for electronic data processing
EP1535169B1 (en) Improved inter-processor communication system for communication between processors
US20230004398A1 (en) Asynchronous pipeline merging using long vector arbitration
US8046506B2 (en) FIFO system and operating method thereof
CN116880773A (zh) 一种内存扩展装置及数据处理方法、系统
US11482264B2 (en) Memory module adapted to implementing computing functions
JP2004062900A (ja) バス帯域幅を増加させるためのメモリコントローラ、これを利用したデータ伝送方法及びこれを備えるコンピュータシステム
US8139601B2 (en) Token protocol
US8756356B2 (en) Pipe arbitration using an arbitration circuit to select a control circuit among a plurality of control circuits and by updating state information with a data transfer of a predetermined size
US20090013331A1 (en) Token protocol
US20080052429A1 (en) Off-board computational resources
WO2022227563A1 (zh) 一种硬件电路、数据搬移方法、芯片和电子设备
JPH10334037A (ja) 通信dma装置
CN111126586A (zh) 数据通信电路、电子设备和数据通信方法
WO2008027115A2 (en) Off-board computational resources
CN115328832B (zh) 一种基于pcie dma的数据调度系统与方法
CN117908959A (zh) 用于执行原子操作的方法及其相关产品
JPH05233440A (ja) バッファ機能を備えたデータ転送方式
JP2869100B2 (ja) 並列計算機の要素プロセッサ
CN117851313A (zh) 一种适用于片上网络架构芯片的dma控制系统
JPH0926945A (ja) 情報処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080909

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081204

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081211

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090108

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090116

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090317

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090616

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090623

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090717

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

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

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

Free format text: PAYMENT UNTIL: 20121225

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4430671

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121225

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131225

Year of fee payment: 4

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees