JP3958336B2 - インターフェースの設計方法 - Google Patents

インターフェースの設計方法 Download PDF

Info

Publication number
JP3958336B2
JP3958336B2 JP2005290349A JP2005290349A JP3958336B2 JP 3958336 B2 JP3958336 B2 JP 3958336B2 JP 2005290349 A JP2005290349 A JP 2005290349A JP 2005290349 A JP2005290349 A JP 2005290349A JP 3958336 B2 JP3958336 B2 JP 3958336B2
Authority
JP
Japan
Prior art keywords
library
unit
main
performance analysis
interface
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
JP2005290349A
Other languages
English (en)
Other versions
JP2006092561A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2005290349A priority Critical patent/JP3958336B2/ja
Publication of JP2006092561A publication Critical patent/JP2006092561A/ja
Application granted granted Critical
Publication of JP3958336B2 publication Critical patent/JP3958336B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明は、システムLSIなどの半導体集積回路装置中のバスの構造,インターフェースの設計方法及びインターフェースの設計などに用いるためのデータベースに関する。
従来より、半導体回路のCPUとこれによって制御される回路との間を接続するインターフェースと呼ばれる部分は、CPUや各回路間の通信を行なう上で重要な部分である。このインターフェースの中心となる部分は“バス”と呼ばれる信号線であり、データを送る際にはこのバスへのアクセス権をいかに獲得するか、などのデータの入出力を制御するためのシステムが重要である。すなわち、バス構造も含めたインターフェースは最終的なデバイスの性能を大きく左右する要素である。
ここで、図1に示すように、従来のバスの構造としては、ノイマン系プロセッサに用いられるノイマン系バス構造と、ハーバード系プロセッサに用いられるハーバード系バス構造とが知られている。ノイマン系バス構造は、アドレスとデータとのみを区別して、アドレスとデータとを1つの線で表現したり、アドレスとデータとを2つの線で表現する構造のものである。ノイマン系バス構造として、アドレス及びデータを共通のバスを介して流通させるマルチプレクサ型と、アドレスとデータとを別系統のバスつまりアドレスバスとデータバスとを介して個別に流通させるデマルチプレクサ型とが知られている。
また、ハーバード型プロセッサとは、データに対して制御データと実際の転送ファイルのデータとを内容によって分離するための構造である。従来開発されているハーバード系バス構造としては、アドレスバスをさらにIOアドレスバスとメモリアドレスバスとに分け、データバスを制御データバスと転送データバスとに分けたもの(以下、これを情報分離型という)が知られている。
マルチプレクサ型バス構造は、アドレス,データの制御と転送とを逐次処理していくために用いられるバス構造であり、これを用いたときの処理能力は比較的低いがバスの占有面積(バンド幅)は小さい。デマルチプレクサ型バス構造は、アドレスの制御及び転送と、データの制御及び転送とを並列的に処理していくために用いられるバス構造であり、これを用いたときには並列処理が可能なので処理スピードは高くなる。
また、従来のハーバード系バス構造である情報分離型バス構造は、アドレスとデータの双方について、それぞれ制御と転送とを並列的に処理していくために用いられるバス構造であり、これを用いたときの処理能力はさらに高くなる。
米国特許第5907698号明細書 米国特許第5541849号明細書 米国特許第6493351号明細書 米国特許第6516379号明細書
ところが、従来のシステムLSIなどの大規模のデバイスを構築する際に、インターフェースの構造をいかに構築するかという点については、未だ適切な手法が確立されていないのが現状である。すなわち、バス構造だけについてみても、各種のバス構造の利点と欠点とがあり、これらを各回路の動作との関連で統一的に評価するための手法は未だ確立されていない。
また、半導体集積回路装置の規模が大きくなり、例えばシステムLSIと呼ばれる複数の半導体回路を組み合わせたデバイスを設計するようになると、上記従来のようなバス構造だけでは、インターフェースを設計する際に、バス構造をフレキシブルに利用できないという不具合もある。
本発明の目的は、システムLSIなどの大規模の半導体デバイスのインターフェースを構築するための設計方法と、その設計に用いるためのバス構造やデータベースを提供することにある。
本発明のインターフェースの設計方法は、ハードウェアおよびソフトウェア協調設計におけるアプリケーションを実現するためのハードウェア部及びソフトウェア部により構成される動作モデルであって、前記ハードウェア部とソフトウェア部の構成比率が異なる複数の動作モデルを含むライブラリを記憶したデータベースとライブラリ選択部と性能解析部とインタフェース合成部とを有する設計装置を用いて、半導体集積回路の制御機能部と複数の動作モデルまたはハードウェア部及びソフトウェア部とを接続するためのインターフェースを設計する方法であって、前記性能解析部が、上記半導体集積回路の価値を最終的に評価するための複数の主パラメータを前記ライブラリ選択部が選択した前記複数の動作モデルに設定し、上記主パラメータに対して影響を与える複数の副パラメータを前記主パラメータに設定するステップ(a)と、前記性能解析部が、上記各主パラメータごとに、各ライブラリの副パラメータによって主パラメータを評価して、主パラメータの目標値を満たすライブラリ群を選び出すステップ(b)と、前記性能解析部が、上記選び出されたライブラリ群ごとに定まる複数の主パラメータを評価して、前記ライブラリ群を最適化することにより、前記インターフェース合成部が、インターフェースを決定するステップ(c)とを含んでいる。
この方法により、一度にすべてのパラメータから性能を評価するのに比べ、より統一的な手法で最適なライブラリ群を選び出し、最終的に最適なインターフェースを決定することができる。
上記インターフェースの設計方法において、前記性能解析部が、上記ステップ(a)の前に、上記複数のアプリケーションの動作モデルとして上記複数のライブラリを順次用いて、上記各ライブラリについての動作シミュレーションを行なうことにより、より正確に最適なインターフェースを決定することができる。この方法の具体的な手法としては、以下のような手法がある。
例えば、上記ステップ(a)では、前記性能解析部が、3つの主パラメータを設定し、各主パラメータごとに3つの副パラメータを設定して、上記ステップ(b)では、前記性能解析部が、3つの副パラメータを座標軸とする3次元座標系を構成して、各副パラメータの値によって定まる3角形の面積が目標値以下のライブラリ群を選び出し、上記ステップ(c)では、前記性能解析部が、3つの主パラメータを座標軸とする3次元座標系を構成して、選び出されたライブラリ群から求まる主パラメータの値によって定まる3角形の面積が最小のライブラリ群からインターフェースを決定することができる。
また、上記ステップ(a)の後ステップ(b)の前に、前記性能解析部が、上記複数の副パラメータのうち特定の副パラメータに着目して、特定の副パラメータが目標値を満たしているライブラリ群を選び出し、上記ステップ(b)では、前記性能解析部が、上記複数の主パラメータのうち特定の主パラメータを除く主パラメータが目標値を満たしているライブラリ群を選び出し、上記ステップ(c)では、前記性能解析部が、上記特定の主パラメータが最小となるライブラリ群を最適なライブラリ群として選び出すこともできる。
さらに、上記ステップ(a)では、前記性能解析部が、主パラメータに対する複数の副パラメータの影響係数を設定し、上記ステップ(b)では、前記性能解析部が、影響係数と副パラメータの値とに基づいて各主パラメータの目標値を満たすライブラリ群を選び出し、上記ステップ(b)では、前記性能解析部が、選び出されたライブラリ群から求まる複数の主パラメータに重み付けを行なってから、ライブラリ群を決定するための演算を行なうこともできる。
本発明のインターフェースの設計方法によれば、アプリケーションやバス構造ごとにその動作モデルとなる複数のライブラリを記憶したデータベースを用い、半導体集積回路の制御機能部と複数のアプリケーションとを接続するためのインターフェースを設計する方法として、バスの混雑度を解析する動作シミュレーションを行なったり、システム全体の性能の評価を行うなどにより、設計者の要望する性能を持ったシステムを構築するためのインターフェースを合成することができる。
(第1の実施形態)
図1は、従来のノイマン系バス構造と、従来のハーバード系バス構造と、本実施形態のハーバード系バス構造との構造上の相違を概略的に示すブロック図である。
本実施形態におけるハーバード系バス構造は、“方向分離型バス構造”というべきものであって、情報分離型バス構造における転送データをさらに分離して処理するものといえる。この方向分離型バス構造は、プロセッサ(制御回路)を中心として対象リソース(被制御回路)を配置したときの転送データが送られる方向を、“上り”と“下り”とに分けるものであるが、さらに、転送データの被制御回路をメモリ用データとIO用データとに分ける場合もある。ここで、制御データとは、例えば認識,応答などのコントロールの情報を持ったものである。転送データとは、例えば画像ファイルのデータなどのまとまったデータをいう。
図2(a)は、従来のバス構造を示す図である。同図に示すように、従来のバス構造では、CPUと対象リソース(ここでは1次局IO)との間には1つのバスしか設けられていなかった。
それに対し、本実施形態の方向分離型バス構造においては、図2(b),(c)に示すように、プロセッサ(CPU)と一次局との間の通信をも、上り側バスと下り側バスとに分けて行なうように構成されている。ここで、図2(b)は、各々1次局を挟んでCPUと通信を行なう2次局と3次局とが存在している場合の方向分離型バス構造を示す図であり、図2(c)は、図2(b)における3次局が存在しない場合の方向分離型バス構造を示す図である。
図3(a)〜(d)は、順に、ノイマン系のマルチプレクサ型バス構造,ノイマン系のデマルチプレクサ型バス構造,ハーバード系の情報分離型バス構造及び方向分離型バス構造(方向型)におけるアドレス及びデータの処理を時間軸で示す図である。
図3(a)に示すように、マルチプレクサ型バス構造は、アドレスとデータとをいわば1つの線上でシリアルに処理していくためのバス構造である。例えば対象リソースAに対して何らかのコマンドを生成する場合に、対象リソースAの制御アドレスを指定し、対象リソースAの制御データを送り、対象リソースAに転送するためのアドレスを送り、次にAへの転送データを送る。“B”に対するコマンドを生成する際にも、同様の手順による処理を逐次(シリアルに)行なうのである。
図3(b)に示すように、デマルチプレクサ型バス構造は、アドレスとデータとを並列的に処理していくためのバス構造である。例えば対象リソースAに対して何らかのコマンドを生成する場合に、対象リソースAの制御アドレスを指定しながらAの制御データを送
り、Aに転送するためのアドレスを送っている間に対象リソースAへの転送データを送る。対象リソースBに対するコマンドを生成する際にも、同様の手順による処理を並列的に行なうのである。
図3(c)に示すように、情報分離型バス構造は、制御アドレス,転送アドレス,制御データ及び転送データをそれぞれ並列的に処理していくためのバス構造である。例えば対象リソースAに対して何らかのコマンドを生成する場合に、対象リソースAの制御アドレスの指定と、対象リソースAへの制御データの送信と、対象リソースAに転送するためのアドレスの送信と、対象リソースAへの転送データの送信とを並列的に処理する。対象リソースBに対するコマンドを生成する際にも、同様の手順による処理を並列的に行なう。
図3(d)に示すように、情報分離型バス構造は、制御アドレス,転送アドレス,制御データ及び転送データをそれぞれ並列的に処理していくに加えて、アドレス及びデータの転送を、上りと下りとに分けて並列的に行なうためのバス構造である。例えば対象リソースA,B,Cに対して何らかのコマンドを生成する場合に、対象リソースA,B,Cの制御アドレスを指定するとともに上りアドレスと下りアドレスとも指定しておく。そして、上りアドレスを指定しているときには上り側バスを介して上り側の転送アドレス及び転送データ(例えば対象リソースA,Cについてのもの)の送信を、下りアドレスを指定しているときには下り側バスを利用して下り側の転送アドレス及び転送データ(例えば対象リソースB,Aについてのもの)を送信することができる。言い換えると、制御アドレスの指定や制御データの送信とは無関係に、転送アドレスの送信と転送データの送信とを行なうことができる。
例えば、図2(b)に示すバス構造を有する場合、1次局IO1が対象リソースAで、1次局IO2が対象リソースBで、2次局が対象リソースCであるとする。このとき、対象リソースA(1次局IO1)のアドレスを指定している際にも、対象リソースB(1次局IO2)には対象リソースA(1次局IO1)のアドレスの指定が入力されないので、転送アドレスAを指定して転送データを対象リソースAに転送している間に、転送アドレスBを指定して転送データを対象リソースBに送ることが可能になる。そして、データをインプット(上り)すると、すぐにデータをアウトプット(下り)することが可能になる。
図4は、対象リソースAがメモリで、対象リソースB,CがIOである場合のリソース分離型バス構造を示すブロック図である。対象リソースC(IO2)からのデータの入力を受け、対象リソースA(メモリ)にこれを記憶させながら、対象リソースB(IO1)にデータを転送するという動作が同時に行えることになる。
その結果、従来の情報分離型バス構造を用いた場合には、データ転送に要する時間は、図3(d)に示すように、データ転送A,データ転送B,データ転送C及びデータ転送Aに要する時間をシリアルに加算したものになる(転送A,B,C,Aアドレスの時間も同じ)が、本実施形態の方向分離型バス構造を用いた場合には、図3(d)に示すように短縮されることになる。つまり、上り側バスと下り側バスとに分けることによって、対象リソースA,Cに対する上り側の転送アドレス及び転送データの送信と、対象リソースB,Aに対する下り側の転送アドレス及び転送データの送信とを同時に行なうことが可能になるからである。
(第2の実施形態)
次に、バス構造をも含めたIFの設計方法に関する第2の実施形態について説明する。ここでは、最適なIFを設計する手順について説明する。
−準備するデータ−
ここでは、まず性能解析を行なうために必要なデータ(ライブラリモデル)について説明する。単体アプリケーションごとに、動作モデルを作成する必要があるが、その動作モデルの1つの作成方法として、基本的にソフトウェアで作成し、あるものはここまでをハードウェアで作成し、他のものは別の部分までをハードウェアで行なうように決定する。なお、単体アプリケーションとは、1つのアプリケーションの入出力関係を定義したもので、範囲の大きさは定義していない。例えば、単体アプリケーションの例として、IrDAを用いたプリントデータ転送の動作や、USBを用いたマウスの位置データの転送や、JPEGを用いた静止画像データの圧縮,解凍動作などがある。ここで、“IrDA”と呼ばれる赤外線通信を用いてデータの転送についてのアプリケーションを使用するときには、コンピュータ側で例えばプリントするデータを事前に加工しなければならない。例えば、静止画を圧縮するためにJPEGで圧縮する加工を施して、そのデータを赤外線として表現するためのフォーマット変換を行なってから、データを送るという赤外線通信を行なうことになる。その場合に、ここでいう単体アプリケーションとは、赤外線通信(IrDA)を行なう前の処理は除いて、IrDAと呼ばれているアプリケーションの入力と出力とを規定している部分だけを意味している。
ここで、動作モデルをハードウェアで作成するか、ソフトウェアで作成するかによって処理時間が異なってくる。本実施形態では、1つのプロトコルの表現において各層がある程度明確に分かれている部分で、動作モデルをハードウェアで作成するかソフトウェアで作成するかを分ける。
図5(a),(b)は、設計用のデータベースに記憶されている単体アプリケーションA,Bでのライブラリ及び性能テーブルの例を示す図である。例えば、アプリケーションA,Bに対して、仕様レベルのライブラリA,Bがあるとすると、動作レベルにおいては、同図に示すように、アプリケーションA,Bごとに、CPU(バス構造)として、ノイマン型CPU(バス構造),従来のハーバード型CPU(バス構造),方向分離型CPU(バス構造)を採用したときの動作を記述した動作モデルとなるライブラリが登録されている。そして、各ライブラリの性能テーブルにおいては、各ライブラリの性能指数が、処理能力(P),バス幅(B),命令量(M),メモリ量(E)という変数(パラメータ)の関数として表されている。
図5(a),(b)において、ライブラリの動作を記述した部分のうちハッチング部分がソフトウェアによって実現する部分を、白地の部分がハードウェアによって実現する部分をそれぞれ示している。例えばアプリケーションAにおいて、各機能のすべてをソフトウェアで実現すると性能指数が100になるとすると、ハードウェアで40%をソフトウェアで残りの60%をそれぞれ実現させる場合には、例えば性能指数が50になり、ハードウェアで60%を実現した場合には、性能指数が10になる。このように、ソフトウェアのうちの何%をハードウェアで置き換えると性能指数がいくらで済むかについての性能テーブルが準備されている。
ここで、動作モデルの機能のうち,“FLOW”とは、例えばa,bという処理がある場合に、“処理aを行なってから処理bを行なう”というような処理のフローを記述した層をいう。“MANG”とは、例えば、別々のファイル転送アプリケーション同士が接続されているときに、その各々に必要なデータ交換のマルチプレクサなどのアプリケーション間の通信をマネジメントする方法を記述した層をいう。“LINK”とは、例えば1つの情報データが、同期ビット,コントロールデータ,MACデータ,終了などの一連のデータによって囲まれた範囲をデータとして認識させるというような,接続の手順を定めている層をいう。“PHY”とは、実際のコーディングの仕方、例えば“1”を表現するときに、あるパルス幅においてすべて“1”になっているか、あるパルス幅の中央部で“1
”になっているか、などを区別している層をいう。また、“CAL”とは、例えば演算処理の場合には、演算処理(かけ算など)をハードウェアで行なうのか、ソフトウェアで行なうのかを示す層をいう。
また、ソフトウェアで行なう場合には高い性能が必要となるが、ハードウェアがある程度あることによって性能が低くても済むことが多いことに留意しておく必要がある。そして、図5(a),(b)に示すような性能テーブルが、多数のアプリケーションについて準備されているが、図5(a),(b)にはアプリケーションA,Bのみが例示されている。
−動作シミュレーション−
図6は、複数のアプリケーションを用いて動作シミュレーションを行なう方法の例を示すブロック図である。ここでは、アプリケーションAには100%ソフトウェア化したライブラリを、アプリケーションにBは20%だけハード化したライブラリろ、アプリケーションCには40%だけハード化したライブラリを用いると仮定して、この3つのアプリケーションの転送処理の性能解析を行なうとする。
ここで、図6に示す接続関係において、インプット,アウトプットをカウントする部分(入出力カウント部)と、命令処理をカウントする部分(命令処理カウント部)とを、動作解析シミュレーション中に記述しておく。入出力カウント部とは、例えば、転送処理アイル(システム動作制御)に対してアプリケーションA,B,Cが接続されている場合に、何も処置を施さずに転送処理を行なったとすると、プロセッサと各機器との間における入出力が互いに衝突(バストランザクションの衝突)する回数をカウントする。つまり、バスの混雑度を測定するのである。また、命令処理がどのぐらいの数だけ発生しているかを、その衝突も含めてカウントしておく。
図7は、この性能解析のうちのトランザクション解析の表示方法を示す図である。同図に示すように、各アプリケーションA,B,Cについてノイマン型バス構造(デマルチプレクサ型)のライブラリを採用した場合と、従来のハーバード型バス構造(情報分離型)のライブラリを採用した場合と、方向分離型バス構造のライブラリ採用した場合とについて、入出力カウント部で測定されたアプリケーションA−B間、アプリケーションB−C間、アプリケーションA−C間のトランザクション密度を処理時間軸の方向にまとめる。図7において、ハッチングの密度が濃いほど衝突回数が多くなるものとする。ノイマン型バス構造を採用した場合は、並列処理を行なうとどうしても衝突が多くなることがわかる。それに対し、方向分離型バス構造を採用した場合は、並列処理が容易な構造であるので、衝突回数は比較的少なくなる。そして、この衝突回数の多い箇所にFIFOを挿入する。例えば、ノイマン型バス構造を採用する場合には、A−B間にFIFOをk段(例えば10段)挿入し、B−C間にFIFOをl段(例えば8段)挿入し、A−C間にFIFOをl段挿入する。また、従来のハーバード型バス構造(情報分離型)を採用した場合には、A−B間にFIFOをl段挿入し、B−C間にFIFOをm段(例えば6段)挿入し、A−C間にFIFOをm段挿入する。また、方向分離型バス構造を採用した場合には、A−B間にFIFOをn段(例えば4段)挿入し、B−C間にFIFOをn段挿入し、A−C間にもFIFOをn段挿入する。CPUが処理している間に、FIFOで情報をためておく処理が必要となるが、バスの混雑度に応じてFIFOの段数を解析しておくのである。もちろん、バストランザクションの衝突回数が少ないほど、挿入すべきFIFOの段数は少なくなる。このようにして、それぞれのバス構造の構造つまりCPUにつながるバスの構造に応じて、FIFOを何段挿入する必要があるかが解析される。
次に、図8は、この性能解析のうちの命令処理解析の表示方法を示す図である。同図に示すように、アプリケーションA,B,Cについて、ノイマン型バス構造(デマルチプレ
クサ型)のライブラリを採用した場合と、従来のハーバード型バス構造(情報分離型)のライブラリを採用した場合と、方向分離型バス構造のライブラリを採用した場合とについて、命令処理カウント部で測定されたアプリケーションA−B間、アプリケーションB−C間、アプリケーションA−C間の同時命令密度を処理時間軸の方向にまとめる。図8において、ハッチングの密度が濃いほど同時命令回数が多くなり、システム全体の処理能力が高いことを示している。ノイマン型バス構造を採用した場合は、同時命令回数が少ないことがわかる。それに対し、方向分離型バス構造を採用した場合は、同時命令回数が比較的多くなる。同時命令回数が多い場合には、処理時間が短くなり応答スピードが速くなるが、反面、CPUの負荷率が増大し、瞬間的な電流値も増大するという不具合もある。
図9(a),(b)は、この同時命令の多い箇所にクロスバスを設けた場合のバス構造の一部を示す図である。図9(a)に示すように、CPUの機能に余力がある場合には、通常使用していない部分にアプリケーションBの転送機能を持たせるようにしておいて、CPUによりクロスバスの切り替えを制御する。あるいは、図9(b)に示すように、CPUに余力がないなどの場合には、DMAを配置する。このDMA(ダイレクト・メモリ・アクセス)とは、入出力コントローラと主記憶との間でCPUを介さず直接データをやりとりさせるという転送機能を持ったものである。すなわち、CPUですべてを行なうのではなく、DMAという機能を利用し、スイッチング機能を有するクロスバスを設けることで、例えばアプリケーションAはCPUで、アプリケーションBはDMAで処理するような切り替えを行なうことにより、CPUの負荷率の低減と電流値の分散とを図るのである。この新たに配置するものは転送機能さえ有していればよいのであるが、DMAの代わりにCPUを配置してもよいことはいうまでもない。そして、同時命令回数がもっとも多い部分に着目し、その型のCPUを採用したときにおける同時命令回数の最高値に応じて、クロスバスを設けないか、一重クロスバスを設けるか、二重クロスバスを設けるかを選択する。
−解析指標−
次に、以上の解析結果で得られる性能のうち最適なものを決定する方法について説明する。本実施形態の解析方法においては、システムの価値を決定する最も重要なパラメータを主パラメータとする。ここでは、性能,電力,面積を主パラメータとする。そして、これらの主パラメータに影響を与える3つの副パラメータを総合し、各主パラメータが目標とする範囲に収まるライブラリ群をまず選び出し、選び出された各ライブラリの主パラメータの値に基づいて、総合的に最適なライブラリ群を選択する方法である。
以下、具体的な方法について順に説明する。
1.交差面積の最小のものを選択する方法
図10(a)〜(d)は、各パラメータを満たしているものの中で交差面積が最小のものを選択する方法の手順を示す図である。
まず、図10(a)に示すように、“性能”という共通の主パラメータに影響を与える副パラメータとして、バストランザクションの衝突回数,処理量及び応答時間という3つの副パラメータを設定し、この副パラメータを座標軸とする3次元の座標系を作成する。この3つの副パラメータの値は、各アプリケーションの動作モデルである各ライブラリを用いて動作シミュレーションを行なった解析結果から求められる。例えばCPUに接続される単体アプリケーションA,B,Cの構成を、ノイマン型バス構造を採用するか、従来のハーバード系バス構造を採用するか、方向分離型バス構造を採用するかということと、さらに、各アプリケーションの動作におけるハードウェアの割合をどのように設定するかによって、一意的に定まる。例えば、図7,図8に示す解析結果から、バストランザクションの衝突回数や処理時間が求まる。このとき、各IO間のトランザクションの衝突回数の最悪値もしくは平均値、あるいは全体の平均値、ある区間の平均値などをトランザクシ
ョンTの点とすることができる。応答時間Rは、図7,図8に示すデータ解析を行なったときに実行(シミュレーション)時間である。処理量Eは、図7,図8に示す解析を行なったときの実行処理量(合計値)である。
そして、バストランザクションTが少ないほど、処理量Eが少ないほど,応答時間Rが短いほどシステムLSIの性能が高いことから、3次元座標系における交差面積が小さいほど性能という主パラメータの1つがベターになる。そこで、この座標系における各座標軸上の各点(副パラメータの値)を結んで形成される平面と座標軸との交差面積がある目標値以下となるライブラリ群を選別しておく。そして、この交差面積を相対的には“性能”の値としても差し支えない。
また、図10(b)に示すように、“電力”という共通の主パラメータに影響を与える3つの副パラメータとして、処理量Eと、ハードウェア化率Hと、同時アクティブ密度Aとを設定し、この3つの副パラメータを座標軸とする3次元の座標系を作成する。ハード化率Hは、図6に示すライブラリモデルにおけるハードウェアの割合である。同時アクティブ密度Aは、図7,図8に示す解析における同時に活性になっているバスの割合である。このときには、処理量Eが少ないほど,ハードウェア化率Hが小さいほど,同時アクティブ密度Aが小さいほど電力は少なくて済むので、3次元座標系における交差面積が小さいほど電力という主パラメータがベターになる。そこで、この座標系における各座標軸上の各点(副パラメータの値)を結んで形成される平面と座標軸との交差面積がある目標値以下となるライブラリ群を選別しておく。そして、この交差面積を相対的には“電力”の値としても差し支えない。ただし、この方法には、電力の最大値(ピーク値)で評価するか、電力の平均値で評価するかの2通りの方法があり、いずれでもよいものとする。
さらに、図10(c)に示すように、“面積(コスト)”という共通の主パラメータに影響を与える3つの副パラメータとして、必要なバス幅Bと、必要なメモリ量Mと、挿入しなければならないFIFO量Fとを設定し、この副パラメータを座標軸とする3次元の座標系を作成する。バス幅Bは、図6に示すモデルにおけるバス構造におけるバスの合計幅である。メモリ量Mは、図6に示すライブラリモデルで使用するメモリ量である。FIFO量Fは、図7,図8に示す解析の結果必要とされるFIFO段数の合計である。このとき、バス幅Bが小さいほど,メモリ量Mが少ないほど,FIFO量Fが少ないほど面積という主パラメータがベターになる。そこで、この座標系における各座標軸上の各点(副パラメータの値)を結んで形成される平面と座標軸との交差面積がある目標値以下となるライブラリ群を選別しておく。そして、この交差面積を相対的には“面積”の値としても差し支えない。
そして、図10(d)に示すように、主パラメータ、つまり、性能,電力,面積を座標軸とする3次元座標系を作成する。そして、図3(a)〜(c)の処理によって選び出された各ライブラリ群によってそれぞれ定まる主パラメータの値、つまり、性能,電力,面積の値(図10(a)〜(c)の交差面積)を示す座標軸上の各点を結んで形成される平面と座標軸との交差面積(3角形の面積)が最小となるライブラリ群を選び出し、このライブラリ群によって決定されるインターフェースを最適なインターフェースとして決定する。
2.特定のパラメータを重視して選択する方法
例えば、図7,図8に示す解析結果から、副パラメータである目標応答時間を満たしているライブラリ群の中で、副パラメータであるバストランザクションが所定値以下のもの、副パラメータである目標応答時間を満たしているライブラリ群の中で副パラメータである処理量が所定値以下のもの、副パラメータである目標メモリ量を満たしているライブラリ群の中で副パラメータであるバス幅が所定値以下のもの、副パラメータである目標FIFO量を満たしているライブラリ群の中で副パラメータであるバス幅が所定値以下のもの
を選択する。
次に、上記の処理によって選び出されたものの中から、さらに以下の基準によって総合的に最適と思われるものを決定する。この処理には、設計対象の種類等に応じて以下のような方法がある。
第1は、選び出されたライブラリ群の中から、性能,最大電力という主パラメータが目標最低性能,目標最大電力を満たしているものを選別する。そして、その中で主パラメータである面積が最小のライブラリ群を選択する方法である。
第2は、選び出されたライブラリ群の中から、性能,電力という主パラメータが目標最低性能,目標最大電力を満たしているものを選別する。そして、その中で主パラメータである平均電力が最小のライブラリ群を選択する方法である。
第3は、選び出されたライブラリ群の中から、面積,最大電力という主パラメータが目標最大面積,目標最大電力を満たしているものを選別する。そして、その中で主パラメータである性能が最小のライブラリ群を選択する方法である。
第4は、選び出されたライブラリ群の中から、面積,最大電力という主パラメータが目標最大面積,目標最大電力を満たしているものを選別する。そして、その中で主パラメータである平均電力が最小のライブラリを選択する方法である。
3.重み付けを行なって指数化する方法
この方法は、図11(a)〜(d)に示すように、主パラメータである性能に対する性能指数x,主パラメータである電力に対する平均電力指数yav(又は最大電力指数ymx),主パラメータである面積に対する面積指数zについてそれぞれ重み付けa,b,cを行なってから加算し、その加算値である最適指数が最小のものを選択する方法である。
ここで、性能指数xは、以下の手順により算出する。つまり、図11(a)に示すように、応答時間R及びその性能影響係数lx と、バストランザクションT及びその性能影響係数mx と、処理量E及びその性能影響係数nx とを算出し、下記式
性能指数x=Rlx ×Tmx ×Enx
により、性能指数xを算出する。ただし、応答時間の性能影響係数lx は、例えば1secのときを“1”とする。つまり、応答時間が3secのときには応答時間の性能影響係数lx は“3”となる。バストランザクションの性能影響係数mx は、10回の衝突があるときを“1”とする。つまり、20回の衝突があるときには、バストランザクションの性能影響係数は“2”となる。処理量の性能影響係数nx は、10MIPSのとき(1MIPSは100万回の命令数を意味する)を“1”とする。つまり、50MIPSのときには、処理量の性能影響係数nx は“5”となる。
電力指数yは、以下の手順により算出する。つまり、図11(b)に示すように、平均処理量Eav(又は最大処理量Emx)及びその電力影響係数ly と、ハード化率H及びその電力影響係数my と、平均同時アクティブ率Aav(又は最大同時アクティブ率Amx)及びその電力影響係数ny とを算出し、下記式
電力指数y=Eavly ×Hmy ×Aavny
or=Emxly ×Hmy ×Amxny
により、電力指数yを算出する。ただし、平均処理量(又は最大処理量)の電力影響係数ly は、例えば10MIPSのときを“1”とする。ハード化率の電力影響係数my は、20%のときを“1”とする。つまり、40%のハード化率のときには、ハード化率の電力影響係数は“2”となる。平均同時アクティブ率(又は最大同時アクティブ率)の電力影響係数ny は、25%のときを“1”とする。つまり、10%のときには、平均同時アクテ
ィブ率の電力影響係数ny は“0.5”となる。
面積指数zは、以下の手順により算出する。つまり、図11(b)に示すように、メモリ量M及びその面積影響係数lz と、FIFO量F及びその面積影響係数mz と、バス幅B及びその面積影響係数nz とを算出し、下記式
面積指数z=Mlz ×Fmz ×Bnz
により、面積指数zを算出する。ただし、メモリ量の面積影響係数lz は、例えば1kByteのときを“1”とする。つまり、10kByteのときにはメモリ量の面積影響係数lz は10である。FIFO量の面積影響係数mz は、128Byteのときを“1”とする。つまり、256Byteのメモリ量のときには、メモリ量の面積影響係数は“2”となる。バス幅の面積影響係数nz は、16bit のときを“1”とする。つまり、8bit のときには、バス幅の面積影響係数nz は“0.5”となる。
そして、図11(d)に示すように、解析指標の判断は、上述の処理によって算出された性能指数x,電力指数y,面積指数zについて、それぞれの影響係数(重み付け係数)a,b,cを決定し、それを加算した値を最適指数とする。つまり、下記式
最適指数Op=ax+by+cz
に基づき、最適指数Opを算出する。そして、最適指数Opが最小のものを最終的に選択するのである。
−最適IF合成−
図12は、上述の処理を用いて合成される最適IFの構造を示すブロック図である。上述の解析指標に基づいて選択されたバス構造において、FIFOを挿入する必要のある箇所にはFIFOを挿入し、同時処理可能なバス構造を生成するのである。なお、同図において、DMAを除いて一点鎖線で囲まれた部分がIF(インターフェース)の部分である。すなわち、データバス,制御バス,クロスバス等を含むバス構造と挿入されたFIFOとにより、ライブラリA,B,Cのハードウェアと、CPU(動作モデル)と、記憶装置(RAM,ROMなど)とを接続するIFが構成されている。
図13は、本実施形態において説明した最適IFの合成を含むシステム設計の手順を示すフローチャート図である。
まず、データバースとして、図5に示すライブラリA,B,Cや、第1の実施形態で説明したハーバード型バス構造,ノイマン型バス構造(デマルチプレクサ型),方向分離型バス構造などを記憶しておく。
そして、ステップST1で、選択されたライブラリに対してバス構造を選択し、ステップST2で、システム接続図,転送処理ファイル,新規ライブラリ等を入力する。
次に、ステップST3で、トランザクションや命令処理の解析を行なう。このとき、図6に示す動作シミュレーションを行なって、図7に示すトランザクション解析と、図8に示す命令処理解析とを行なって、挿入すべきFIFOの段数や必要なクロスバスの配置などを行なう。
そして、ステップST4で、例えば上述の3つの手法(図10,図11など参照)による解析指標の判断を行なう。このステップST1〜ST4の処理を繰り返し行なって、最適指数Opが最小のシステムを選択する。このステップST3,ST4においては、ハードウェアとソフトウェアとを併せた性能評価(HW/SW性能評価)を行なうのである。
次に、ステップST5〜ST7で、最適なシステムをハードウェアとソフトウェアとに
分割する。すなわち、ステップST5で、最適IFの合成を行ない、ステップST6で、図12に示すようなシステム接続図を生成する。一方、ステップST7で、アプリケーション,フロー制御(FLOW),OS(オペレーションシステム)などのソフトウェアの選択(条件設定)を行なう。
最後に、ステップST8で、ハードウェア/ソフトウェアの協調検証を行なう。つまり、ハードウェアを用いてソフトウェアがうまく機能するかどうかを検証するのである。
本実施形態のインターフェースの設計方法によると、アプリケーションについてバス構造ごとに登録された動作モデルとなるライブラリを用いて動作シミュレーションを行ない、この動作シミュレーションの結果から求められる副パラメータ及び主パラメータに基づいて、インターフェースによって接続されるシステム全体の性能を実動作に近い環境で正確に評価することができる。そして、この評価に基づいて、設計者の要望にもっとも適したインターフェースを選択することができ、システム全体の構築に供することができる。
本発明に係るインターフェースの設計方法は、アプリケーションやバス構造ごとにその動作モデルとなる複数のライブラリを記憶したデータベースを用い、半導体集積回路の制御機能部と複数のアプリケーションとを接続するためのインターフェースを設計する方法として、バスの混雑度を解析する動作シミュレーションを行なったり、システム全体の性能の評価を行うなどにより、設計者の要望する性能を持ったシステムを構築するためのインターフェースを合成することができるという効果を有し、システムLSIなどの半導体集積回路装置に関するインターフェースの設計方法等として有用である。
従来のノイマン系バス構造,従来のハーバード系バス構造及び本発明の第1の実施形態のハーバード系バス構造の構造上の相違を概略的に示すブロック図である。 (a)〜(c)は、従来のバス構造,第1の本実施形態の方向分離型バス構造(3次局がある場合及びない場合)の例を順に示す図である。 (a)〜(d)は、順に、ノイマン系のマルチプレクサ型,デマルチプレクサ型,ハーバード系の情報分離型及び第1の実施形態の方向分離型バス構造におけるアドレス及びデータの処理を時間軸で示す図である。 第1の実施形態における対象リソースAがメモリで、対象リソースB,CがIOである場合のリソース分離型バス構造を示すブロック図である。 (a),(b)は、第2の実施形態における設計用のデータベースに記憶されている単体アプリケーションA,Bでのライブラリ及び性能テーブルの例を示す図である。 第2の実施形態における複数のアプリケーションを用いて動作シミュレーションを行なう方法の例を示すブロック図である。 第2の実施形態における性能解析のうちのトランザクション解析の表示方法を示す図である。 第2の実施形態における性能解析のうちの命令処理解析の表示方法を示す図である。 (a),(b)は、第2の実施形態において同時命令の多い箇所にクロスバスを設けた場合のバス構造の一部を示す図である。 (a)〜(d)は、各パラメータが目標値を満たしているライブラリの中で交差面積が最小のものを選択する方法の手順を示す図である。 (a)〜(d)は、性能指数,平均電力指数(又は最大電力指数)及び面積指数についてそれぞれ重み付け行なってから加算し、その加算値である最適指数が最小のものを選択する方法である。 第2の実施形態のインターフェースの設計方法を用いて合成される最適IFの構造を示すブロック図である。 第2の実施形態における最適IFの合成を含むシステム設計の手順を示すフローチャート図である。

Claims (3)

  1. ハードウェアおよびソフトウェア協調設計におけるインタフェースを実現するためのハードウェア部及びソフトウェア部により構成される動作モデルであって、前記ハードウェア部とソフトウェア部の構成比率が異なる複数の動作モデルを含むライブラリを記憶したデータベースとライブラリ選択部と性能解析部とインタフェース合成部とを有する設計装置を用いて、半導体集積回路の制御機能部と複数の動作モデルまたはハードウェア部及びソフトウェア部とを接続するためのインターフェースを設計する方法であって、
    前記性能解析部が、上記半導体集積回路の価値を最終的に評価するための複数の主パラメータを前記ライブラリ選択部が選択した前記複数の動作モデルに設定し、上記主パラメータに対して影響を与える複数の副パラメータを前記主パラメータに設定するステップ(a)と、
    前記性能解析部が、上記各主パラメータごとに、各ライブラリの副パラメータによって主パラメータを評価して、主パラメータの目標値を満たすライブラリ群を選び出すステップ(b)と、
    前記性能解析部が、上記選び出されたライブラリ群ごとに定まる複数の主パラメータを評価して、最適と判断したライブラリ群を選ぶことにより、前記インターフェース合成部が、インターフェースを決定するステップ(c)と
    を含み、
    上記ステップ(a)では、前記性能解析部が、3つの主パラメータを設定し、各主パラメータごとに3つの副パラメータを設定して、
    上記ステップ(b)では、前記性能解析部が、3つの副パラメータを座標軸とする3次元座標系を構成して、各副パラメータの値によって定まる3角形の面積が目標値以下のライブラリ群を選び出し、
    上記ステップ(c)では、前記性能解析部が、3つの主パラメータを座標軸とする3次元座標系を構成して、選び出されたライブラリ群から求まる主パラメータの値によって定まる3角形の面積が最小のライブラリ群からインターフェースを決定することを特徴とするインターフェースの設計方法。
  2. ハードウェアおよびソフトウェア協調設計におけるインタフェースを実現するためのハードウェア部及びソフトウェア部により構成される動作モデルであって、前記ハードウェア部とソフトウェア部の構成比率が異なる複数の動作モデルを含むライブラリを記憶したデータベースとライブラリ選択部と性能解析部とインタフェース合成部とを有する設計装置を用いて、半導体集積回路の制御機能部と複数の動作モデルまたはハードウェア部及びソフトウェア部とを接続するためのインターフェースを設計する方法であって、
    前記性能解析部が、上記半導体集積回路の価値を最終的に評価するための複数の主パラメータを前記ライブラリ選択部が選択した前記複数の動作モデルに設定し、上記主パラメータに対して影響を与える複数の副パラメータを前記主パラメータに設定するステップ(a)と、
    前記性能解析部が、上記各主パラメータごとに、各ライブラリの副パラメータによって主パラメータを評価して、主パラメータの目標値を満たすライブラリ群を選び出すステップ(b)と、
    前記性能解析部が、上記選び出されたライブラリ群ごとに定まる複数の主パラメータを評価して、最適と判断したライブラリ群を選ぶことにより、前記インターフェース合成部が、インターフェースを決定するステップ(c)と
    を含み、
    上記ステップ(a)の後ステップ(b)の前に、前記性能解析部が、上記複数の副パラメータのうち特定の副パラメータに着目して、特定の副パラメータが目標値を満たしているライブラリ群を選び出し、
    上記ステップ(b)では、前記性能解析部が、上記複数の主パラメータのうち特定の主パラメータを除く主パラメータが目標値を満たしているライブラリ群を選び出し、
    上記ステップ(c)では、前記性能解析部が、上記特定の主パラメータが最小となるライブラリ群を最適なライブラリ群として選び出すことを特徴とするインターフェースの設計方法。
  3. ハードウェアおよびソフトウェア協調設計におけるインタフェースを実現するためのハードウェア部及びソフトウェア部により構成される動作モデルであって、前記ハードウェア部とソフトウェア部の構成比率が異なる複数の動作モデルを含むライブラリを記憶したデータベースとライブラリ選択部と性能解析部とインタフェース合成部とを有する設計装置を用いて、半導体集積回路の制御機能部と複数の動作モデルまたはハードウェア部及びソフトウェア部とを接続するためのインターフェースを設計する方法であって、
    前記性能解析部が、上記半導体集積回路の価値を最終的に評価するための複数の主パラメータを前記ライブラリ選択部が選択した前記複数の動作モデルに設定し、上記主パラメータに対して影響を与える複数の副パラメータを前記主パラメータに設定するステップ(a)と、
    前記性能解析部が、上記各主パラメータごとに、各ライブラリの副パラメータによって主パラメータを評価して、主パラメータの目標値を満たすライブラリ群を選び出すステップ(b)と、
    前記性能解析部が、上記選び出されたライブラリ群ごとに定まる複数の主パラメータを評価して、最適と判断したライブラリ群を選ぶことにより、前記インターフェース合成部が、インターフェースを決定するステップ(c)と
    を含み、
    上記ステップ(a)では、前記性能解析部が、主パラメータに対する複数の副パラメータの影響係数を設定し、
    上記ステップ(b)では、前記性能解析部が、影響係数と副パラメータの値とに基づいて各主パラメータの目標値を満たすライブラリ群を選び出し、
    上記ステップ(b)では、前記性能解析部が、選び出されたライブラリ群から求まる複数の主パラメータに重み付けを行なってから、ライブラリ群を決定するための演算を行なうことを特徴とするインターフェースの設計方法。
JP2005290349A 2005-10-03 2005-10-03 インターフェースの設計方法 Expired - Fee Related JP3958336B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005290349A JP3958336B2 (ja) 2005-10-03 2005-10-03 インターフェースの設計方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005290349A JP3958336B2 (ja) 2005-10-03 2005-10-03 インターフェースの設計方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP21644399A Division JP3853114B2 (ja) 1999-07-30 1999-07-30 インターフェースの設計方法

Publications (2)

Publication Number Publication Date
JP2006092561A JP2006092561A (ja) 2006-04-06
JP3958336B2 true JP3958336B2 (ja) 2007-08-15

Family

ID=36233406

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005290349A Expired - Fee Related JP3958336B2 (ja) 2005-10-03 2005-10-03 インターフェースの設計方法

Country Status (1)

Country Link
JP (1) JP3958336B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4974638B2 (ja) * 2006-10-16 2012-07-11 キヤノン株式会社 シミュレーション装置及びシミュレーション方法
JP2008241488A (ja) * 2007-03-28 2008-10-09 National Institute Of Information & Communication Technology アンテナ特性表示装置、アンテナ特性表示方法およびアンテナ特性表示プログラム
JP5166194B2 (ja) * 2008-10-03 2013-03-21 株式会社東芝 アーキテクチャ検証装置
JP5123255B2 (ja) * 2009-06-09 2013-01-23 株式会社東芝 アーキテクチャ検証装置
JP6173644B1 (ja) * 2016-10-04 2017-08-02 三菱電機株式会社 情報処理装置、情報処理方法及び情報処理プログラム
JP6761182B2 (ja) * 2017-03-14 2020-09-23 富士通株式会社 情報処理装置、情報処理方法及びプログラム

Also Published As

Publication number Publication date
JP2006092561A (ja) 2006-04-06

Similar Documents

Publication Publication Date Title
JP3958336B2 (ja) インターフェースの設計方法
KR100674933B1 (ko) 온 칩 버스(On Chip Bus)에서 최적화된코어-타일-스위치(core-tile-switch)맵핑(mapping) 구조를 결정하는 방법 및 그 방법을기록한 컴퓨터로 읽을 수 있는 기록 매체
Lahiri et al. Efficient exploration of the SoC communication architecture design space
CN1276618C (zh) 管理网络中的设备的方法和系统
KR100674934B1 (ko) 온 칩 버스(On Chip Bus)에서 최적화된타일-스위치(tile-switch)맵핑(mapping) 구조를 결정하는 방법 및 그 방법을기록한 컴퓨터로 읽을 수 있는 기록 매체
CN111142938B (zh) 一种异构芯片的任务处理方法、任务处理装置及电子设备
JP2021157771A (ja) ネットワークオンチップによるデータ処理方法及び装置
CN106358289A (zh) 基于众包的数据采集方法、装置和服务器
US20030158986A1 (en) Bus system and path decision method therefor
CN103914585A (zh) 用于金属堆栈的导线标记列表的自动生成
CN111352697B (zh) 灵活的物理功能和虚拟功能映射
US20050246667A1 (en) Bus structure, database and method of designing interface
CN1313957C (zh) 使用综合用于有效数据加载和下载的基于分组的协议的逻辑的硬件辅助的设计验证系统
CN111026697A (zh) 核间通信方法、系统、电子器件以及电子设备
CN113112026A (zh) 一种联邦学习模型优化方法及装置
KR102539572B1 (ko) 네트워크 온칩 데이터 처리 방법 및 장치
CN108874297A (zh) 合并文件的方法、存储装置、存储设备和存储介质
CN111274193A (zh) 数据处理装置及方法
CN113919266A (zh) 可编程器件的时钟规划方法、装置、电子设备及存储介质
Diamantopoulos et al. Plug&chip: A framework for supporting rapid prototyping of 3d hybrid virtual socs
CN116670660A (zh) 片上网络的仿真模型生成方法、装置、电子设备及计算机可读存储介质
CN112347733A (zh) 集成电路布局初始化与优化方法、装置、存储介质及设备
CN117319373A (zh) 数据传输方法、装置、电子设备和计算机可读存储介质
US8688428B2 (en) Performance evaluation device, performance evaluation method and simulation program
CN115348181B (zh) 一种数据传输建模方法、系统、设备及存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061003

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061130

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070116

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070214

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070328

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070509

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110518

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120518

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees