JP3562583B2 - プロセッサ・ローカル・バスを管理する装置、方法およびコンピュータ・プログラム・プロダクト - Google Patents

プロセッサ・ローカル・バスを管理する装置、方法およびコンピュータ・プログラム・プロダクト Download PDF

Info

Publication number
JP3562583B2
JP3562583B2 JP2001185459A JP2001185459A JP3562583B2 JP 3562583 B2 JP3562583 B2 JP 3562583B2 JP 2001185459 A JP2001185459 A JP 2001185459A JP 2001185459 A JP2001185459 A JP 2001185459A JP 3562583 B2 JP3562583 B2 JP 3562583B2
Authority
JP
Japan
Prior art keywords
plb
address phase
read
write
generating
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
JP2001185459A
Other languages
English (en)
Other versions
JP2002049579A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2002049579A publication Critical patent/JP2002049579A/ja
Application granted granted Critical
Publication of JP3562583B2 publication Critical patent/JP3562583B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Bus Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、一般にシステム・オン・ア・チップ(system−on−a−chip、SOC)アプリケーションに関し、より詳細には、そのようなSOCアプリケーションにおいて使用されるオンチップ・バス(on−chip buses)に関する。
【0002】
【従来の技術】
最近のシリコン密度の向上は、多数の機能を単一のシリコン・チップ上に統合することを可能にする。この密度の増加に伴い、以前カード・レベルでプロセッサに接続されていた周辺装置は、プロセッサと同じダイ上に統合される。結果としてチップ設計者は、伝統的にシステム設計者によって処理された問題を取り扱わなければならない。このタイプの単一ダイ上の複合的な回路の実施は、システム・オン・ア・チップ(SOC)と呼ばれる。
【0003】
通常、SOCは多数の論理ゲートを代表する多数の機能ブロックを含む。そのようなシステムの設計は、マクロに基づく手法により実現される。マクロに基づく設計は、論理エントリおよび検証、ならびに特定の機能を有するマクロの再使用を容易にする。マクロは、ネットリスト(netlist)の形態でライブラリ内に提供される再使用可能なテスト済み設計である。総称的シリアル・ポートから複合的なメモリ・コントローラおよびプロセッサ・コアにおよぶアプリケーションにおいて、各SOCはいくつかの共通マクロを使用する。コアは、VHDL、Verilogなど任意のハードウェア記述ランゲージにおいて再使用可能なテスト済み設計である。
【0004】
そのようなアプリケーションにおいて使用される多数の単一チップ・ソリューションは、それぞれが自分自身の内部アーキテクチャを有するカスタム・チップとして設計される。そのようなチップ内の論理ユニットはしばしば、異なるアプリケーションにおいて抽出し再使用することが困難である。結果として同じ機能が、1つのアプリケーションから他のアプリケーションに何度も再設計される。
【0005】
【発明が解決しようとする課題】
したがってそのようなSOC実施例において使用される、柔軟かつ堅固に多種多様な組込みシステム要件をサポートするオンチップ・バスのための改善されたアーキテクチャの必要性が明らかに存在する。
【0006】
【課題を解決するための手段】
本発明の第1の態様によれば、読取りおよび書込みデータ・バスを有するプロセッサ・ローカル・バス(Processor Local Bus、PLB)を管理する装置がここに提供される。この装置は、PLBに結び付けられた読取りデータのためのアドレス・フェーズ(address phase)を生成する第1モジュールおよびPLBに結び付けられた書込みデータのためのアドレス・フェーズを生成する第2モジュールを含む。第2アドレス・フェーズ生成モジュールは、書込みデータ・バスがアイドルで読取りデータ・バスがビジーであるときに書込みオペレーションを実行するように構成され、その逆も同様である。第1および第2アドレス・フェーズ生成モジュールは、読取りおよび書込み要求を同時に処理するように構成されることが好ましい。この装置は、第1アドレス・フェーズ生成モジュールに結び付けられた読取りデータを処理するモジュール、および第2アドレス・フェーズ生成モジュールに結び付けられた書込みデータを処理するモジュールもまた含むことができる。この装置は、読取りデータ処理モジュールに結び付けられた読取りデータ要求モジュール、および書込みデータ処理モジュールに結び付けられた書込みデータ要求モジュールを含むことがさらに好ましい。
【0007】
本発明の第2の態様によれば、システム・オン・ア・チップがここに提供される。このシステムは、
プロセッサ・ローカル・バス(PLB)、
PLBに結び付けられたアービタ(arbiter)、および
PLBに結び付けられた少なくとも2つのマスタを含み、前記少なくとも2つのマスタの第1マスタは、PLBに結び付けられた読取りデータのための第1アドレス・フェーズを生成する第1モジュール、およびPLBに結び付けられた書込みデータのための第2アドレス・フェーズを生成する第2モジュールを含む。第2アドレス・フェーズ生成モジュールは、書込みデータ・バスがアイドルで読取りデータ・バスがビジーであるときに書込みオペレーションを実行するように構成され、その逆も同様である。
【0008】
本発明の第3の態様によれば、読取りおよび書込みデータ・バスを有するプロセッサ・ローカル・バス(PLB)を管理する方法がここに提供される。本方法は、PLBに結び付けられた読取りデータのための第1アドレス・フェーズを生成するステップと、PLBに結び付けられた書込みデータのための第2アドレス・フェーズを生成するステップとを含む。第2アドレス・フェーズ生成ステップは、書込みデータ・バスがアイドルで読取りデータ・バスがビジーであるときに書込みオペレーションを実行することができ、逆も同様である。
【0009】
本発明の第4の態様によれば、システム・オン・ア・チップを提供する方法がここに提供される。本システムは、プロセッサ・ローカル・バス(PLB)、PLBに結び付けられたアービタ、およびPLBに結び付けられた少なくとも2つのマスタを有する。本方法は、PLBを介して提供される読取りデータのための第1アドレス・フェーズを生成するステップと、PLBを介して提供される書込みデータのための第2アドレス・フェーズを生成するステップとを含む。第2アドレス・フェーズ生成ステップは、書込みデータ・バスがアイドルで読取りデータ・バスがビジーであるときに書込みオペレーションを実行することができ、逆も同様である。
【0010】
本発明の第5の態様によれば、読取りおよび書込みデータ・バスを有するプロセッサ・ローカル・バス(PLB)を管理するコンピュータ・プログラムが中に記録されたコンピュータ可読媒体を有するコンピュータ・プログラム・プロダクトがここに提供される。本コンピュータ・プログラム・プロダクトは、PLBを介して読取りデータのための第1アドレス・フェーズを生成するコンピュータ・プログラム・コード・モジュールと、PLBを介して書込みデータのための第2アドレス・フェーズを生成するコンピュータ・プログラム・コード・モジュールを含む。第2アドレス・フェーズ生成は、書込みデータ・バスがアイドルで読取りデータ・バスがビジーであるときに書込みオペレーションを実行することができ、逆も同様である。
【0011】
本発明の第6の態様によれば、システム・オン・ア・チップを提供するコンピュータ・プログラムが中に記録されたコンピュータ可読媒体を有するコンピュータ・プログラム・プロダクトがここに提供され、前記コンピュータ・プログラム・プロダクトは、
プロセッサ・ローカル・バス(PLB)を提供するコンピュータ・プログラム・コード・モジュールと、PLBに結び付けられたアービタを提供するコンピュータ・プログラム・コード・モジュールと、PLBに結び付けられた少なくとも2つのマスタを提供するコンピュータ・プログラム・コード・モジュールとを含み、前記少なくとも2つのマスタの第1マスタが、PLBに結び付けられた読取りデータのための第1アドレス・フェーズを生成する第1手段と、PLBに結び付けられた書込みデータのための第2アドレス・フェーズを生成する第2手段とを含み、前記第2アドレス・フェーズ生成手段が、書込みデータ・バスがアイドルで読取りデータ・バスがビジーであるときに書込みオペレーションを実行するように構成され、逆も同様である。
【0012】
【発明の実施の形態】
読取りおよび書込みデータ・バスを有するプロセッサ・ローカル・バス(PLB)を管理する方法、装置およびコンピュータ・プログラム・プロダクトを述べる。次の記述において多数の詳細を述べる。しかしこれらの具体的詳細なしで本発明を実施できることが当業者には明らかであろう。他の例では、本発明をあいまいにしないために、よく知られている機能を詳細には述べない。
【0013】
本発明の諸実施形態は一般に、SOC設計において使用されるオンチップ・バスを対象とし、柔軟かつ堅固であり、その結果多種多様な組込みシステムのニーズをサポートする。詳細には、インタマクロ通信のために共通バスが使用され、その結果マクロ相互接続性を保証することにより、そのようなSOCアプリケーション内の論理ユニットの再使用を促進する。この目的のために、相互接続コア、ライブラリ・マクロ、およびカスタム論理回路のための3つのバスが利用される。それらのバスは、プロセッサ・ローカル・バス(PLB)、オンチップ周辺バス(OPB)、およびデバイス制御レジスタ(DCR)バスを含む。
【0014】
プロセッサ・ローカル・バス(PLB)は、多数のシステム・オン・チップ(SOC)アプリケーションにおいて使用される高性能オンチップ・バスである。PLBは、マスタおよびスレーブが接続されるPLBコア(アービタ、制御およびゲート論理回路)からなる。PLBアーキテクチャは、最大16のマスタをサポートする。個々のシステムの複雑性次第で、PLBコアは、設計されるか、または標準ライブラリから選択される。一般に標準ライブラリにおいて提供されるPLBコアは、4/8マスタまたは最大16のマスタをサポートする。PLBアーキテクチャは、別々の読取りおよび書込みバスを有するので、アドレス・パイプライン処理の実行後に、マスタは同時に読取りおよび書込みオペレーションを実行することができる。しかしPLBアーキテクチャは、読取りおよび書込み両方の要求を同時には起動することができない。所与のシステム・オン・チップ(SOC)アプリケーションにおいて、PLBアーキテクチャの重複読取りおよび書込み転送機能を用いてPLBバス利用を改善することができる。
【0015】
図1は、本発明の諸実施形態を実施することができるPLBシステム100の一実施例を示すブロック図である。システム100は、プロセッサ・ローカル・バス130、プロセッサ・コア110、PLBアービタ120、外部周辺装置コントローラ140、およびメモリ・コントローラ150を含む。またシステム100は、他のマスタも有し、このマスタは、例えばOHCIリンク・コントローラ160とすることができる。OHCIリンク・コントローラ160は、プロセッサ・ローカル・バス130を1394PHYに結び付ける。IEEE1394は、シリアル通信プロトコルであり、PHYはこのプロトコルの物理層インタフェースである。PLBアービタ120は、プロセッサ・ローカル・バス130に直接結び付けられる。プロセッサ・コア110は、データ・キャッシュ・ユニット114および命令キャッシュ・ユニット116もまた含む。データ・キャッシュ・ユニット114は、プロセッサ・ローカル・バス130と双方向に結合され、両者間の両方向の矢印によってこれが示されている。命令キャッシュ・ユニット116は、プロセッサ・ローカル・バス130に一方向に結合され、プロセッサ・ローカル・バス130から命令キャッシュ・ユニット116に達する一方向の矢印でこれが示されている。
【0016】
外部周辺装置コントローラ140は、プロセッサ・ローカル・バス130と双方向に結合され、両者間の両方向の矢印によってこれが示されている。このコントローラ140は、SRAM/ROM144、外部周辺装置146、および外部バス・マスタ148を含む。
【0017】
メモリ・コントローラ150もまた、プロセッサ・ローカル・バス130に双方向に結合され、両者間にわたる両方向の矢印によってこれが示されている。メモリ・コントローラ150はSDRAMコントローラ154を含む。メモリ・コントローラ150、外部周辺装置コントローラ140、PLBアービタ120、およびプロセッサ・コア110は、リング状デバイス制御レジスタ(DCR)バス170によってもまた相互接続される。例えばDCRバス170Cは、PLBアービタ120とプロセッサ・コア110の間にわたり、PLBアービタ120からプロセッサ・コア110に達する一方向の矢印によってこれが示されている。同様の方法で、OCRバス170Aは、メモリ・コントローラ150から外部周辺装置コントローラ140に達し、170Bは、後者140からPLBアービタ120に達する。DCRループはバス・セグメント170Dおよび170Eで完結する。
【0018】
命令キャッシュ・ユニット116は、メモリからの読取りしか実行せず、その結果ユニット116は、一方向の矢印によって示されるように、読取り転送しか要求しない。データ・キャッシュ・ユニット114は、両方向の矢印によって示されるように、PLB130上の読取りおよび書込みオペレーションを実行する。
【0019】
マスタとスレーブの結合を、図2により詳細に示す。図2に示す構成200は、アービタ220に結び付けられた3つのPLBマスタ230、232、234を含む。代わってアービタ220は、共用バス250を介して3つのPLBスレーブ240、242、244に結合される。スレーブの数およびマスタの数は、本発明の範囲および精神から逸脱することなく変動し得る。図面を単純化するために、1つのマスタ230および1つのPLBスレーブ240だけを詳細に示す。しかしマスタ230およびPLBスレーブ240の詳細が他のマスタおよびスレーブにそれぞれ等しく適用されることが、当業者には理解されよう。
【0020】
アービタ220は、中央バス・アービタおよびPLBマクロを含む。裁定信号(マスタによる要求)は、PLBマスタ230からアービタ220の中央バス・アービタに達する。同様に、アドレスおよび転送クオリファイヤ、書込みデータ・バス、ならびに制御論理回路は、PLBマスタ230からアービタ220のゲート論理回路内のバス制御に達する。アービタ220は、PLBマスタ230に対する読取りデータ・バスならびに状況および制御情報もまた提供する。PLBスレーブ240、242、244の読取りデータ・バスならびに状況および制御信号は、「OR」ゲート260および262を介し、共用バス250を経てアービタ120(220)のPLBマクロに結合される。代わって、アービタ120(220)は、アドレスおよび転送クオリファイヤ、書込みデータ・バス、ならびにPLBスレーブ240、242、244に対する制御信号を提供する。
【0021】
図3は、図1および2のPLBマスタを実施するために使用することができる単一マスタ300を示すブロック図である。単一マスタ300は、PLB310に結合される。マスタ300は、アドレス・フェーズ生成器340、内部アービタ342を含む。マスタ300は、読取りデータ・ハンドラ344および書込みデータ・ハンドラ346もまた含む。さらにマスタ300は、読取りリクエスタ(requester)330および書込みリクエスタ332を有する。アドレス・フェーズ生成器340、内部アービタ342、および読取りおよび書込みデータ・ハンドラ344、346は、破線によって示されるように、単一モジュール320として実施されることが好ましい。読取りデータ・ハンドラ344および書込みデータ・ハンドラ346は、内部アービタ342に双方向に結合され、内部アービタ342は、アドレス・フェーズ生成器340に結合される。代わって読取りデータ・ハンドラ344は、読取りリクエスタ330に双方向に結合される。同様に書込みデータ・ハンドラ346は、書込みリクエスタ332に双方向に結合される。
【0022】
図3を参照すると、PLB310に接続されたマクロまたはコアが読取りまたは書込みオペレーションを実行したい場合、マクロまたはコアは、読取りリクエスタ330または書込みリクエスタ332を介して要求を渡す。最終的にこれらの2つの要求は、内部アービタ342により裁定され、アドレス・フェーズ生成器340に向けて1つの要求として渡される。アドレス・フェーズ生成器340は1度に1つの要求しか処理できないので、読取りデータ・ハンドラ344および書込みデータ・ハンドラ346は、読取りおよび書込みデータを処理するためにデータ・フェーズが進行中のときに使用される。
【0023】
図4は、図3のマスタ300を用いてPLB130上の読取りおよび書込みオペレーションを処理する方法を示すタイミング図である。最初に、マスタおよびアービタのアドレス・フェーズ内の書込みアドレス・フェーズ(A2)412の前に、読取りアドレス・フェーズ(A1)410が始まる。この例に示すように、読取りデータ・フェーズ内の読取りデータ・バスは、最初ビジー420である。(A1)422のための読取りデータ・フェーズは、読取りアドレス・フェーズ410が肯定応答され、読取りデータ・バスが利用可能になってから実行される。読取りデータ・バスがビジー420であるとき、書込みデータ・バスはアイドル430である。しかし、書込み(A2)オペレーション432は、書込みデータ・バスがアイドル430であるという事実にもかかわらず、読取りアドレス・フェーズ410が完了する後まで書込みデータ・フェーズ内で実行することができない。
【0024】
したがって図4は、マスタ300がアドレスA1で読取りオペレーションを、アドレスA2で書込みオペレーションを実行したい場合を示す。読取りデータ・バスがビジー420であり、パイプライン処理できないので、マスタ300はアドレス肯定応答を得ない。マスタ300は、読取り410のためのアドレス・フェーズを完了する前に、書込み412のための新たなアドレス・フェーズを出すことができない。その結果、単一のPLBマスタ300は、読取りおよび書込みを同時には要求できない。PLBマスタ300が読取りおよび書込み両方の転送を行いたい場合、PLBマスタ300は、読取りを最初に要求する。読取りデータ・バスがビジーである場合、読取り要求は、直ちに肯定応答される可能性も、そうでない可能性もある。その場合、書込み転送は不必要に損害を受け、逆も同様である。
【0025】
本発明の諸実施形態は、マスタを2つ、すなわち読取りオペレーションを実行する一部分および書込みオペレーションを実行する他の部分、に分割することを要する。これは、選ばれたPLBコアの既存の一実施例が他のマスタをサポートできる場合に容易に行うことができる。この手法は、読取りおよび書込みを同時に実行したい単一マスタのためのアドレス・フェーズ(要求フェーズ)のボトルネックを取り除く。
【0026】
したがって例えば図1を参照すると、OHCIリンク・コントローラ160(または他のマスタ)がPLB130の読取りバスをビジーに保持する場合、読取り付与を待つ代わりに、本発明の諸実施形態によるデータ・キャッシュ・ユニット114は、二重マスタが実施されていれば書込みオペレーションを開始することができる。
【0027】
さらに図2を参照すると、PLBコア220が4つのマスタをサポートできる場合、読取りおよび書込みオペレーションを同時に実行する必要のあるこれらの3つのマスタ230、232、234の1つは、2つのマスタに分割することができる。本発明の諸実施形態によれば、諸マスタの1つは、読取りオペレーションを実行することができ、他のマスタは書込みオペレーションを実行する。
【0028】
図5は、本発明の第1の実施形態による二重マスタ500のブロック図である。二重マスタ500は、読取りリクエスタ・モジュール530、書込みリクエスタ・モジュール532、読取りデータ・ハンドラ・モジュール544、書込みデータ・ハンドラ・モジュール546、および図3のアドレス生成器340と同じ機能を有する2つのアドレス・フェーズ生成器540、542を含む。アドレス・フェーズ生成器540、542ならびに読取りおよび書込みデータ・ハンドラ544、546は、破線により示されるように、単一モジュール520に実施されることが好ましい。二重マスタ500の構成は、アドレス・フェーズ生成器が今度は、書込みデータ・ハンドラ546および読取りデータ・ハンドラ544にそれぞれ結び付けられた2つのモジュール540、542として実施されることを除いて、図3の単一マスタ300の構成と同様である。
【0029】
本発明の諸実施形態は、(必要なときは)図3の単一マスタ・モードおよび図5の二重マスタ・モードを選択可能に実施できる総称的マスタ・インタフェースとして実施されることが好ましい。PLB510に接続されたマクロまたはコアが読取りまたは書込みオペレーションを実行しようと努める場合、マクロは読取りリクエスタ544または書込みリクエスタ546を介して要求を渡すべきである。それぞれの要求は、アドレス・フェーズ生成器542および540に向けて別々に渡される。これらの2つのアドレス・フェーズ生成器は、それぞれアドレス・フェーズ生成器340と同じである。読取りおよび書込みデータ・ハンドラ544、546は、データ・フェーズが読取りおよび書込みデータを処理するために進行中であるときに使用される。
【0030】
マスタ500は、読取りオペレーションを実行するマスタと書込みオペレーションを実行する他のマスタに分割される。マスタ500は、両方の要求をPLB510上に同時に出すことができる。読取りおよび書込みオペレーションの間の内部裁定を実行する代わりに、2つのマスタの実施により、PLBアービタ120(220)がPLBアクティビティの完全な状況を有し、読取りまたは書込みオペレーションを開始できるので、PLBアービタ120(220)が裁定できるようになる。書込みデータ・バスがアイドルなので、PLBアービタ120(220)は、バスに書込みオペレーションを付与する。マスタ500は、より速く転送を終了することができる。したがって第1の実施形態による二重マスタ500は、システム性能を向上させる。
【0031】
したがって図5の総称的マスタ・インタフェースは、そのインタフェースをPLB130上の二重マスタ、すなわち読取り要求だけを実行する1つのマスタ、およびデバイスから書込み要求だけを実行する他のマスタ、としてカスタマイズする柔軟性をユーザに提供する。図4の処理(および図3のマスタ300)は、読取りおよび書込み要求が同時には来ないか、または読取りと書込み要求に何らかのデータ依存性があって順序付けられた転送が必要であるときに、使用することができる。しかし他の情況において二重マスタ500は、図6のタイミング図にしたがって動作することができる。
【0032】
図1のPLBコア130がもう1つのマスタをサポートできる場合、本発明の諸実施形態にしたがって、データ・キャッシュ・ユニット114は、2つのマスタ、すなわち読取りオペレーションだけを実行するマスタ、と書込みオペレーションだけを実行する他のマスタ、として実施することができる。これらのオペレーションは、図1において破線の矢印により示される。読取りと書込み要求の間で内部的に裁定を行い、PLBバス130上に1つの要求を出す代わりに、プロセッサ・コア110は、データ依存性の問題がなければ、本発明の諸実施形態を用いて、この裁定をPLBアービタ120に残す。
【0033】
図6は、二重マスタ500のオペレーションを示すタイミング図である。この実施形態では、第1および第2マスタ(読取りオペレーションのためのマスタAおよび書込みオペレーションのためのマスタB)は、読取りおよび書込みアドレス要求を求めて、読取り要求(A1)610および書込み要求(A2)612をPLB130上に同時に置くことができる。アービタでのアドレス・フェーズ中に、書込みアドレス・フェーズ(A2)622、次いで読取りアドレス・フェーズ(A1)620が実行される。これは、書込みデータ・バスは最初アイドルであるが、読取りデータ・バスは最初、読取りデータ・フェーズ中はビジー630であるために起こり、その結果、書込みオペレーション(A2)640は、読取りデータ・バスがビジーである間に実行することができる。書込みデータ・バスは次いでアイドル642になる。読取りオペレーション(A1)632は、読取りデータ・バスがもうビジーでなくなった後に読取りデータ・フェーズにおいて実行することができる。この方法で、書込みオペレーションを実行する時間を節約することができる。
【0034】
プロセッサ・ローカル・バス(PLB)を管理する方法のコンポーネントは、モジュールとして実施することができる。モジュール、および特にその機能は、ハードウェアまたはソフトウェアのいずれかの中に実施することができる。ソフトウェアの意味においてモジュールは、通常、特定機能または関連機能を実行するプロセス、プログラムまたはその一部である。ハードウェアの意味においてモジュールは、他のコンポーネントまたはモジュールと共に使用するように設計された機能的ハードウェア・ユニットである。例えばモジュールは、別々の電子素子を用いて実施することができるか、または特定用途向けIC(ASIC)などの全電子回路の一部を形成することができる。他の多数の可能性が存在する。システムをハードウェアおよびソフトウェア・モジュールの組合わせとして実施することもまたできることを、当業者は理解するであろう。
【0035】
プロセッサ・ローカル・バス(PLB)を管理する本方法の諸ステップは、処理コアによって実行されるソフトウェア内の命令により達成することができる。再び、ソフトウェアは、本方法の諸ステップを実施する1つまたは複数のモジュールとして実施することができる。
【0036】
詳細には、ソフトウェアは記憶装置を含むコンピュータ可読媒体内に格納することができる。コンピュータ可読媒体は、記録されたそのようなソフトウェアまたはプログラム・コードを格納することができ、その結果ソフトウェアまたはプログラム・コードの諸命令を実行することができる。諸実施形態の処理は、コンピュータ可読媒体内に記録されたソフトウェアまたはコンピュータ可読プログラム・コードとして存在することができる。
【0037】
前述の方法で、プロセッサ・ローカル・バス(PLB)を管理する方法、装置およびコンピュータ・プログラム・プロダクトが開示される。少数の実施形態しか述べられていないが、当業者には、本発明の範囲および精神から逸脱することなく、多数の変更および/または修正が可能であることが、この開示を見て明らかであろう。
【0038】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0039】
(1)読取りおよび書込みデータ・バスを有するプロセッサ・ローカル・バス(PLB)を管理する装置であって、
前記PLBに結び付けられた読取りデータのための第1アドレス・フェーズを生成する第1手段と、
前記PLBに結び付けられた書込みデータのための第2アドレス・フェーズを生成する第2手段とを含み、前記第2アドレス・フェーズ生成手段が、前記書込みデータ・バスがアイドルで前記読取りデータ・バスがビジーであるときに書込みオペレーションを実行するように構成され、逆も同様である装置。
(2)前記第1および第2アドレス・フェーズ生成手段が、読取りおよび書込み要求を同時に処理するように構成される、上記(1)に記載の装置。
(3)前記第1アドレス・フェーズ生成手段に結び付けられた読取りデータを処理する手段と、
前記第2アドレス・フェーズ生成手段に結び付けられた書込みデータを処理する手段とをさらに含む、上記(1)に記載の装置。
(4)前記読取りデータ処理手段に結び付けられた読取りデータを要求する手段と、
前記書込みデータ処理手段に結び付けられた書込みデータを要求する手段とをさらに含む、上記(3)に記載の装置。
(5)プロセッサ・ローカル・バス(PLB)と、
前記PLBに結び付けられたアービタと、
前記PLBに結び付けられた少なくとも2つのマスタとを含み、前記少なくとも2つのマスタの第1マスタが、
前記PLBに結び付けられた読取りデータのための第1アドレス・フェーズを生成する第1手段と、
前記PLBに結び付けられた書込みデータのための第2アドレス・フェーズを生成する第2手段とを含み、前記第2アドレス・フェーズ生成手段が、前記書込みデータ・バスがアイドルで前記読取りデータ・バスがビジーであるときに書込みオペレーションを実行するように構成され、逆も同様であるシステム・オン・ア・チップ。
(6)前記第1および第2アドレス・フェーズ生成手段が読取りおよび書込み要求を同時に処理するように構成される、上記(5)に記載のシステム。
(7)前記第1アドレス・フェーズ生成手段に結び付けられた読取りデータを処理する手段と、
前記第2アドレス・フェーズ生成手段に結び付けられた書込みデータを処理する手段とをさらに含む、上記(6)に記載のシステム。
(8)前記読取りデータ処理手段に結び付けられた読取りデータを要求する手段と、
前記書込みデータ処理手段に結び付けられた書込みデータを要求する手段とをさらに含む、上記(7)に記載のシステム。
(9)読取りおよび書込みデータ・バスを有するプロセッサ・ローカル・バス(PLB)を管理する方法であって、
前記PLBに結び付けられた読取りデータのための第1アドレス・フェーズを生成するステップと、
前記PLBに結び付けられた書込みデータのための第2アドレス・フェーズを生成するステップとを含み、前記第2アドレス・フェーズ生成ステップが、前記書込みデータ・バスがアイドルで前記読取りデータ・バスがビジーであるときに書込みオペレーションを実行し、逆も同様である方法。
(10)前記第1および第2アドレス・フェーズ生成ステップが読取りおよび書込み要求を同時に処理する、上記(9)に記載の方法。
(11)前記第1アドレス・フェーズ生成ステップに結び付けられた読取りデータを処理するステップと、
前記第2アドレス・フェーズ生成ステップのための書込みデータを処理するステップとをさらに含む、上記(9)に記載の方法。
(12)前記読取りデータ処理ステップのための読取りデータを要求するステップと、前記書込みデータ処理ステップのための書込みデータを要求するステップとをさらに含む上記(11)に記載の方法。
(13)システム・オン・ア・チップを提供する方法であって、前記システムが、プロセッサ・ローカル・バス(PLB)、前記PLBに結び付けられたアービタ、および前記PLBに結び付けられた少なくとも2つのマスタを有し、前記方法が、
前記PLBを介して提供される読取りデータのための第1アドレス・フェーズを生成するステップと、
前記PLBを介して提供される書込みデータのための第2アドレス・フェーズを生成するステップとを含み、前記第2アドレス・フェーズ生成ステップが、前記書込みデータ・バスがアイドルで前記読取りデータ・バスがビジーであるときに書込みオペレーションを実行し、逆も同様である方法。
(14)前記第1および第2アドレス・フェーズ生成ステップが読取りおよび書込み要求を同時に処理する、上記(13)に記載の方法。
(15)前記第1アドレス・フェーズ生成ステップのための読取りデータを処理するステップと、
前記第2アドレス・フェーズ生成ステップのための書込みデータを処理するステップとをさらに含む、上記(14)に記載の方法。
(16)前記読取りデータ処理ステップのための読取りデータを要求すること、および
前記書込みデータ処理ステップのための書込みデータを要求することをさらに含む、上記(15)に記載の方法。
(17)読取りおよび書込みデータ・バスを有するプロセッサ・ローカル・バス(PLB)を管理する記録されたコンピュータ・プログラムを中に有するコンピュータ可読媒体を有するコンピュータ・プログラム・プロダクトであって、
前記PLBを介して読取りデータのための第1アドレス・フェーズを生成するコンピュータ・プログラム・コード手段と、
前記PLBを介して書込みデータのための第2アドレス・フェーズを生成するコンピュータ・プログラム・コード手段とを含み、前記第2アドレス・フェーズ生成が、前記書込みデータ・バスがアイドルで前記読取りデータ・バスがビジーであるときに書込みオペレーションを実行することができ、逆も同様であるコンピュータ・プログラム・プロダクト。
(18)前記第1および第2アドレス・フェーズを生成する前記コンピュータ・プログラム・コード手段が、読取りおよび書込み要求を同時に処理するように構成される上記(17)に記載のコンピュータ・プログラム・プロダクト。
(19)前記第1アドレス・フェーズを生成する前記コンピュータ・プログラム・コード手段のための読取りデータを処理するコンピュータ・プログラム・コード手段と、
前記第2アドレス・フェーズを生成する前記コンピュータ・プログラム・コード手段に結び付けられた書込みデータを処理するコンピュータ・プログラム・コード手段とをさらに含む、上記(17)に記載のコンピュータ・プログラム・プロダクト。
(20)読取りデータを要求するコンピュータ・プログラム・コード手段と、
書込みデータを要求するコンピュータ・プログラム・コード手段とをさらに含む、上記(19)に記載のコンピュータ・プログラム・プロダクト。
(21)システム・オン・ア・チップを提供するために、記録されたコンピュータ・プログラムを中に有するコンピュータ可読媒体を有するコンピュータ・プログラム・プロダクトであって、
プロセッサ・ローカル・バス(PLB)を提供するためのコンピュータ・プログラム・コード手段と、
前記PLBに結び付けられたアービタを提供するためのコンピュータ・プログラム・コード手段と、
前記PLBに結び付けられた少なくとも2つのマスタを提供するためのコンピュータ・プログラム・コード手段とを含み、前記少なくとも2つのマスタの第1マスタが、
前記PLBに結び付けられた読取りデータのための第1アドレス・フェーズを生成する第1手段と、
前記PLBに結び付けられた書込みデータのための第2アドレス・フェーズを生成する第2手段とを含み、前記第2アドレス・フェーズ生成手段が、前記書込みデータ・バスがアイドルで前記読取りデータ・バスがビジーであるときに書込みオペレーションを実行するように構成され、逆も同様であるコンピュータ・プログラム・プロダクト。
(22)前記第1および第2アドレス・フェーズ生成手段が、読取りおよび書込み要求を同時に処理するように構成される、上記(21)に記載のコンピュータ・プログラム・プロダクト。
(23)前記第1マスタが、
前記第1アドレス・フェーズ生成手段に結び付けられた読取りデータを処理する手段と、
前記第2アドレス・フェーズ生成手段に結び付けられた書込みデータを処理する手段とをさらに含む、上記(22)に記載のコンピュータ・プログラム・プロダクト。
(24)前記第1マスタが、
前記読取りデータ処理手段に結び付けられた読取りデータを要求する手段と、前記書込みデータ処理手段に結び付けられた書込みデータを要求する手段とをさらに含む、上記(23)に記載のコンピュータ・プログラム・プロダクト。
【図面の簡単な説明】
【図1】本発明の諸実施形態を実施することができるプロセッサ・ローカル・バス(PLB)アーキテクチャを有するシステム・オン・ア・チップ(SOC)の一部のブロック図である。
【図2】図1のPLBマスタとスレーブの間のPLBマクロまたはコアを介したPLB相互接続の一例の詳細をさらに示すブロック図である。
【図3】図1および2のPLBに結び付けられた単一マスタを示すブロック図である。
【図4】図3の単一マスタを用いてPLBの読取りおよび書込みアドレス・フェーズを処理する第1の手法を示すタイミング図である。
【図5】本発明の第1の実施形態による図1および2のPLBに結び付けられた二重マスタのブロック図である。
【図6】本発明の第1の実施形態によるPLBの読取りおよび書込みアドレス・フェーズを処理する図5の二重マスタの手法を示すタイミング図である。
【符号の説明】
500 二重マスタ
510 PLBバス
530 読取りリクエスタ
532 書込みリクエスタ
540 アドレス・フェーズ生成器
542 アドレス・フェーズ生成器
544 読取りデータ・ハンドラ
546 書込みデータ・ハンドラ

Claims (24)

  1. 読取りおよび書込みデータ・バスを有するプロセッサ・ローカル・バス(PLB)を管理する装置であって、
    前記PLBに結び付けられた読取りデータのための第1アドレス・フェーズを生成する第1手段と、
    前記PLBに結び付けられた書込みデータのための第2アドレス・フェーズを生成する第2手段とを含み、前記第2アドレス・フェーズ生成手段が、前記書込みデータ・バスがアイドルで前記読取りデータ・バスがビジーであるときに書込みオペレーションを実行するように構成され、逆も同様である装置。
  2. 前記第1および第2アドレス・フェーズ生成手段が、読取りおよび書込み要求を同時に処理するように構成される、請求項1に記載の装置。
  3. 前記第1アドレス・フェーズ生成手段に結び付けられた読取りデータを処理する手段と、
    前記第2アドレス・フェーズ生成手段に結び付けられた書込みデータを処理する手段とをさらに含む、請求項1に記載の装置。
  4. 前記読取りデータ処理手段に結び付けられた読取りデータを要求する手段と、前記書込みデータ処理手段に結び付けられた書込みデータを要求する手段とをさらに含む、請求項3に記載の装置。
  5. 読取りおよび書込みデータ・バスを有するプロセッサ・ローカル・バス(PLB)と、
    前記PLBに結び付けられたアービタと、
    前記PLBに結び付けられた少なくとも2つのマスタとを含み、前記少なくとも2つのマスタの第1マスタが、
    前記PLBに結び付けられた読取りデータのための第1アドレス・フェーズを生成する第1手段と、
    前記PLBに結び付けられた書込みデータのための第2アドレス・フェーズを生成する第2手段とを含み、前記第2アドレス・フェーズ生成手段が、前記書込みデータ・バスがアイドルで前記読取りデータ・バスがビジーであるときに書込みオペレーションを実行するように構成され、逆も同様であるシステム・オン・ア・チップ。
  6. 前記第1および第2アドレス・フェーズ生成手段が読取りおよび書込み要求を同時に処理するように構成される、請求項5に記載のシステム。
  7. 前記第1アドレス・フェーズ生成手段に結び付けられた読取りデータを処理する手段と、
    前記第2アドレス・フェーズ生成手段に結び付けられた書込みデータを処理する手段とをさらに含む、請求項6に記載のシステム。
  8. 前記読取りデータ処理手段に結び付けられた読取りデータを要求する手段と、前記書込みデータ処理手段に結び付けられた書込みデータを要求する手段とをさらに含む、請求項7に記載のシステム。
  9. 読取りおよび書込みデータ・バスを有するプロセッサ・ローカル・バス(PLB)を管理する方法であって、
    前記PLBに結び付けられた読取りデータのための第1アドレス・フェーズを生成するステップと、
    前記PLBに結び付けられた書込みデータのための第2アドレス・フェーズを生成するステップとを含み、前記第2アドレス・フェーズ生成ステップにおいて、前記書込みデータ・バスがアイドルで前記読取りデータ・バスがビジーであるときに書込みオペレーションを実行し、逆も同様である方法。
  10. 前記第1および第2アドレス・フェーズ生成ステップにおいて読取りおよび書込み要求を同時に処理する、請求項9に記載の方法。
  11. 前記第1アドレス・フェーズ生成ステップのための読取りデータを処理するステップと、
    前記第2アドレス・フェーズ生成ステップのための書込みデータを処理するステップとをさらに含む、請求項9に記載の方法。
  12. 前記読取りデータ処理ステップのための読取りデータを要求するステップと、前記書込みデータ処理ステップのための書込みデータを要求するステップとをさらに含む請求項11に記載の方法。
  13. 読取りおよび書込みデータ・バスを有するプロセッサ・ローカル・バス(PLB)、前記PLBに結び付けられたアービタ、および前記PLBに結び付けられた少なくとも2つのマスタを有するシステム・オン・ア・チップにおいて、前記少なくとも2つのマスタの第1マスタにより前記PLBを管理する方法であって、前記方法が、
    前記PLBを介して提供される読取りデータのための第1アドレス・フェーズを生成するステップと、
    前記PLBを介して提供される書込みデータのための第2アドレス・フェーズを生成するステップとを含み、前記第2アドレス・フェーズ生成ステップにおいて、前記書込みデータ・バスがアイドルで前記読取りデータ・バスがビジーであるときに書込みオペレーションを実行し、逆も同様である方法。
  14. 前記第1および第2アドレス・フェーズ生成ステップにおいて読取りおよび書込み要求を同時に処理する、請求項13に記載の方法。
  15. 前記第1アドレス・フェーズ生成ステップのための読取りデータを処理するステップと、
    前記第2アドレス・フェーズ生成ステップのための書込みデータを処理するステップとをさらに含む、請求項14に記載の方法。
  16. 前記読取りデータ処理ステップのための読取りデータを要求すること、および前記書込みデータ処理ステップのための書込みデータを要求することをさらに含む、請求項15に記載の方法。
  17. 読取りおよび書込みデータ・バスを有するプロセッサ・ローカル・バス(PLB)を管理するコンピュータ・プログラムが記録されたコンピュータ可読な記録媒体であって、前記コンピュータ・プログラムは、コンピュータを、
    前記PLBを介して読取りデータのための第1アドレス・フェーズを生成するコンピュータ・プログラム・コード手段と、
    前記PLBを介して書込みデータのための第2アドレス・フェーズを生成するコンピュータ・プログラム・コード手段として機能させるように構成され、前記第2アドレス・フェーズ生成において、前記書込みデータ・バスがアイドルで前記読取りデータ・バスがビジーであるときに書込みオペレーションを実行可能にし、逆も同様であるコンピュータ可読な記録媒体
  18. 前記第1および第2アドレス・フェーズを生成する前記コンピュータ・プログラム・コード手段が、読取りおよび書込み要求を同時に処理するように構成される請求項17に記載の記録媒体
  19. 前記第1アドレス・フェーズを生成する前記コンピュータ・プログラム・コード手段のための読取りデータを処理するコンピュータ・プログラム・コード手段と、
    前記第2アドレス・フェーズを生成する前記コンピュータ・プログラム・コード手段に結び付けられた書込みデータを処理するコンピュータ・プログラム・コード手段とをさらに含む、請求項17に記載の記録媒体
  20. 読取りデータを要求するコンピュータ・プログラム・コード手段と、
    書込みデータを要求するコンピュータ・プログラム・コード手段とをさらに含む、請求項19に記載の記録媒体
  21. 読取りおよび書込みデータ・バスを有するプロセッサ・ローカル・バス(PLB)、前記PLBに結び付けられたアービタ、および前記PLBに結び付けられた少なくとも2つのマスタを有するシステム・オン・ア・チップにおいて、前記少なくとも2つのマスタの第1マスタにより前記PLBを管理するコンピュータ・プログラムが記録されたコンピュータ可読な記録媒体であって、前記コンピュータ・プログラムは、コンピュータを、
    前記PLBを提供するためのコンピュータ・プログラム・コード手段と、
    前記PLBに結び付けられたアービタを提供するためのコンピュータ・プログラム・コード手段と、
    前記PLBに結び付けられた少なくとも2つのマスタを提供するためのコンピュータ・プログラム・コード手段として機能させるように構成され、前記少なくとも2つのマスタの第1マスタにおいて
    前記PLBに結び付けられた読取りデータのための第1アドレス・フェーズを生成する第1手段と、
    前記PLBに結び付けられた書込みデータのための第2アドレス・フェーズを生成する第2手段として機能させるように構成され、前記第2アドレス・フェーズ生成手段が、前記書込みデータ・バスがアイドルで前記読取りデータ・バスがビジーであるときに書込みオペレーションを実行するように構成され、逆も同様であるコンピュータ可読な記録媒体
  22. 前記第1および第2アドレス・フェーズ生成手段が、読取りおよび書込み要求を同時に処理するように構成される、請求項21に記載の記録媒体
  23. 前記第1マスタにおいて
    前記第1アドレス・フェーズ生成手段に結び付けられた読取りデータを処理する手段と、
    前記第2アドレス・フェーズ生成手段に結び付けられた書込みデータを処理する手段として機能させるためのコンピュータ・プログラムをさらに含む、請求項22に記載の記録媒体
  24. 前記第1マスタにおいて
    前記読取りデータ処理手段に結び付けられた読取りデータを要求する手段と、前記書込みデータ処理手段に結び付けられた書込みデータを要求する手段として機能させるためのコンピュータ・プログラムをさらに含む、請求項23に記載の記録媒体
JP2001185459A 2000-06-20 2001-06-19 プロセッサ・ローカル・バスを管理する装置、方法およびコンピュータ・プログラム・プロダクト Expired - Fee Related JP3562583B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/597,769 US6654836B1 (en) 2000-06-20 2000-06-20 Dual master device for improved utilization of a processor local bus
US09/597769 2000-06-20

Publications (2)

Publication Number Publication Date
JP2002049579A JP2002049579A (ja) 2002-02-15
JP3562583B2 true JP3562583B2 (ja) 2004-09-08

Family

ID=24392853

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001185459A Expired - Fee Related JP3562583B2 (ja) 2000-06-20 2001-06-19 プロセッサ・ローカル・バスを管理する装置、方法およびコンピュータ・プログラム・プロダクト

Country Status (2)

Country Link
US (1) US6654836B1 (ja)
JP (1) JP3562583B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7610451B2 (en) * 2002-01-25 2009-10-27 Intel Corporation Data transfer mechanism using unidirectional pull bus and push bus
KR100737904B1 (ko) 2003-12-27 2007-07-10 한국전자통신연구원 마스터/슬레이브 디바이스간의 인터페이스 장치 및 그 방법
US7209998B2 (en) * 2004-02-04 2007-04-24 Qualcomm Incorporated Scalable bus structure
US7617343B2 (en) * 2005-03-02 2009-11-10 Qualcomm Incorporated Scalable bus structure
US7774529B2 (en) * 2007-07-03 2010-08-10 Panasonic Corporation Bus communication apparatus that uses shared memory
US9741442B2 (en) * 2013-03-12 2017-08-22 Sandisk Technologies Llc System and method of reading data from memory concurrently with sending write data to the memory

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5739439A (en) 1980-08-18 1982-03-04 Nec Corp Input-output controller
JPH01248264A (ja) 1988-03-30 1989-10-03 Hitachi Ltd システムバス競合制御方式
JPH0225958A (ja) 1988-07-15 1990-01-29 Fuji Electric Co Ltd 高速データ転送システム
JPH03177953A (ja) 1989-12-07 1991-08-01 Yokogawa Medical Syst Ltd データ転送方式
US5925118A (en) * 1996-10-11 1999-07-20 International Business Machines Corporation Methods and architectures for overlapped read and write operations
US6081860A (en) * 1997-11-20 2000-06-27 International Business Machines Corporation Address pipelining for data transfers
US6032238A (en) * 1998-02-06 2000-02-29 Interantional Business Machines Corporation Overlapped DMA line transfers
US6430641B1 (en) * 1999-05-04 2002-08-06 International Business Machines Corporation Methods, arbiters, and computer program products that can improve the performance of a pipelined dual bus data processing system
US6513089B1 (en) * 2000-05-18 2003-01-28 International Business Machines Corporation Dual burst latency timers for overlapped read and write data transfers

Also Published As

Publication number Publication date
US6654836B1 (en) 2003-11-25
JP2002049579A (ja) 2002-02-15

Similar Documents

Publication Publication Date Title
US6587905B1 (en) Dynamic data bus allocation
US7475182B2 (en) System-on-a-chip mixed bus architecture
US6081860A (en) Address pipelining for data transfers
US6055584A (en) Processor local bus posted DMA FlyBy burst transfers
EP0559408B1 (en) A method and apparatus for performing bus arbitration using an arbiter in a data processing system
US20050177664A1 (en) Bus system and method thereof
JP2005235197A (ja) 複数のマスタを含むサブシステムをオープンコアプロトコルを基盤とするバスに連結するためのバスシステム
JP4198376B2 (ja) バスシステム及びバスシステムを含む情報処理システム
JP3562583B2 (ja) プロセッサ・ローカル・バスを管理する装置、方法およびコンピュータ・プログラム・プロダクト
JP4215417B2 (ja) プロセッサ・ローカル・バス・システムでのバス最適化の方法および装置
US7203781B2 (en) Bus architecture with primary bus and secondary or slave bus wherein transfer via DMA is in single transfer phase engagement of primary bus
Manu et al. Design and implementation of AMBA ASB APB Bridge
JPH07295947A (ja) データ転送管理装置及び方法
Remaklus On-chip bus structure for custom core logic designs
US7031337B2 (en) Data processing apparatus and slave interface mechanism for controlling access to a slave logic unit by a plurality of master logic units
JPH09153009A (ja) 階層構成バスのアービトレーション方法
WO1992006432A1 (en) Device for controlling bus
JP3811143B2 (ja) メモリ制御回路
JP2001076027A (ja) システム設計段階におけるシミュレーション方法、その装置及びそのプログラムを記憶した記憶媒体
JPS6160162A (ja) バス調停方式
JPH0562384B2 (ja)
JP2003248653A (ja) デバイスアクセス回路及びデバイスアクセス方法
JP2004139296A (ja) バス・アービトレーション装置
JP2006085732A (ja) バスシステム及びバスシステムを含む情報処理システム
Manu et al. Efficient Design and Implementation of AMBA ASB Decoder

Legal Events

Date Code Title Description
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: 20040518

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20040518

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040525

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20080611

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090611

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100611

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110611

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees