(57)【要約】【課題】デッドロックを回避でき、各種の優先順位方式による調停を実現できるインタフェース回路を容易に設計すること。【解決手段】複数のバスとの間のインタフェース回路であるハブ１についての論理表現を作成するインタフェース回路生成装置において、複数のバスの各々に対応したポートをグループとして定義する定義ファイルを備えており、定義ファイルを用い、一のバスに対応したグループから他のバスに対応したグループへのアクセスが同時に発生した場合に優先順位の低いグループのアクセス要求についてはリトライを返信する回路の論理表現を作成するものである。【選択図】図１
2006065457.tif 000002
【特許請求の範囲】
【請求項１】
複数のバスとの間のインタフェース回路についての論理表現を作成するインタフェース回路生成装置において、
前記複数のバスの各々に対応したポートをグループとして定義する定義ファイルを備えており、
前記定義ファイルを用い、一のバスに対応したグループから他のバスに対応したグループへのアクセスが同時に発生した場合に優先順位の低いグループのアクセス要求についてはリトライを返信する回路の論理表現を作成する
ことを特徴とするインタフェース回路生成装置。
【請求項２】
一つのターゲットポートに対して複数のマスターポートからの要求がある場合の調停を行う調停回路を備えたインタフェース回路についての論理表現を作成するインタフェース回路生成装置において、
前記複数のマスターポートについての優先順位を決定する定義ファイルを備えており、
前記定義ファイルを用い、前記優先順位に基づく順番で前記複数のマスターポートのうち一つを選択して前記ターゲットポートとの接続を行う回路の論理表現を作成する
ことを特徴とするインタフェース回路生成装置。
【請求項３】
前記定義ファイルの優先順位は固定順位となっている
ことを特徴とする請求項２記載のインタフェース回路生成装置。
【請求項４】
前記定義ファイルの優先順位は巡回順位となっている
ことを特徴とする請求項２記載のインタフェース回路生成装置。
【請求項５】
複数のバスとの間のインタフェース回路において、
前記複数のバスの各々に対応したポートをグループとして、前記複数のバスのうち一のバスに対応したグループから他のバスに対応したグループへのアクセスが同時に発生した場合、優先順位の低いグループのアクセス要求についてはリトライを返信する回路を備える
ことを特徴とするインタフェース回路。
【請求項６】
一つのターゲットポートに対して複数のマスターポートからの要求がある場合の調停を行う調停回路を備えたインタフェース回路において、
前記調停回路は、前記複数のマスターポートについて定義された優先順位に基づく順番で前記複数のマスターポートのうち一つを選択して前記ターゲットポートとの接続を行う
ことを特徴とするインタフェース回路。
【請求項７】
前記優先順位は固定順位となっている
ことを特徴とする請求項６記載のインタフェース回路。
【請求項８】
前記優先順位は巡回順位となっている
ことを特徴とする請求項６記載のインタフェース回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の項目を入力することでシミュレーションおよび論理合成可能な論理表現を生成するインタフェース回路生成装置、および所定の機能を有するモジュール間を接続するためのインタフェース回路に関する。
【背景技術】
【０００２】
近年、半導体プロセスの進化に伴い、１チップに集積できる機能が増えている。従来、この各機能を処理するモジュール(以下「ＩＰ（Intellectual Property）」と言う。)間を接続するためのオンチップバスおよびハブは人手で設計されている。しかし、ＩＰの増加、ＩＰの外部調達（Ｉ／Ｆ（インタフェース）の多様化）、ＩＰ間でのデータ転送の効率化の必要性により、人手で設計していたのでは効率がよくない。そこで、オンチップバスのインタフェースを標準化して、ＩＰとのインタフェース回路を自動的に生成する技術が開示されている（例えば、特許文献１参照。）。
【０００３】
【特許文献１】特開平７−３３４５６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、ＩＰとのインタフェース回路を自動的に生成する技術を用いても、バスそのものを生成するわけではないので、ＩＰを選択する機構や調停方法やデッドロック回避のための機構は別に用意しなければならないという問題が生じる。
【課題を解決するための手段】
【０００５】
本発明はこのような課題を解決するために成されたものである。すなわち、本発明は、複数のバスとの間のインタフェース回路についての論理表現を作成するインタフェース回路生成装置において、複数のバスの各々に対応したポートをグループとして定義する定義ファイルを備えており、この定義ファイルを用い、一のバスに対応したグループから他のバスに対応したグループへのアクセスが同時に発生した場合に優先順位の低いグループのアクセス要求についてはリトライを返信する回路の論理表現を作成するものである。
【０００６】
また、本発明は、複数のバスとの間のインタフェース回路において、複数のバスの各々に対応したポートをグループとして、複数のバスのうち一のバスに対応したグループから他のバスに対応したグループへのアクセスが同時に発生した場合、優先順位の低いグループのアクセス要求についてはリトライを返信する回路を備えるものである。
【０００７】
このような本発明では、インタフェース回路の生成において、複数のバスの各々に対応したポートをグループとして定義しているため、一のバスに対応したグループから他のバスに対応したグループへのアクセスが同時に発生した場合には優先順位の低いグループのアクセス要求についてリトライを返信する回路を構成でき、デッドロックを防止できるようになる。
【０００８】
また、本発明は、一つのターゲットポートに対して複数のマスターポートからの要求がある場合の調停を行う調停回路を備えたインタフェース回路についての論理表現を作成するインタフェース回路生成装置において、複数のマスターポートについての優先順位を決定する定義ファイルを備えており、この定義ファイルを用い、優先順位に基づく順番で複数のマスターポートのうち一つを選択してターゲットポートとの接続を行う回路の論理表現を作成するものである。
【０００９】
また、本発明は、一つのターゲットポートに対して複数のマスターポートからの要求がある場合の調停を行う調停回路を備えたインタフェース回路において、調停回路が、複数のマスターポートについて定義された優先順位に基づく順番で複数のマスターポートのうち一つを選択してターゲットポートとの接続を行うものである。
【００１０】
このような本発明では、インタフェース回路の生成において、複数のマスターポートについての優先順位を決定する定義ファイルを備えているため、調停回路によって、複数のマスターポートについて定義された優先順位に基づく順番で複数のマスターポートのうち一つを選択してターゲットポートとの接続を行うことができるようになる。
【発明の効果】
【００１１】
したがって、本発明によれば、デッドロックを回避でき、各種の優先順位方式による調停を実現できるインタフェース回路を容易に設計でき、集積回路設計の効率化を図ることが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態を図に基づき説明する。図１は、本実施形態に係るインタフェース回路を備えたハブを説明する模式図である。すなわち、ハブ１は、複数のＩＰ間を接続するための回路であり、例えば１チップ内に収納したり、ボード上に実装することで実現されている。このハブ１には、ＣＰＵやＤＭＡ、ＢＵＳ／ＩＦ（インタフェース）、その他の処理機能を有するものがＩＰとして接続されており、各ＩＰから他のＩＰへのデータ転送やアドレス制御等を行っている。
【００１３】
ハブ１内には、各ＩＰと対応してインタフェース変換回路１１と、バッファ／データ幅変換回路１２とが設けられ、各ＩＰに対応したインタフェース変換回路１１およびバッファ／データ幅変換回路１２がターゲット選択機構１３およびマスター調停機構１４を介して接続された構成となっている。
【００１４】
本実施形態では、このようなハブ１内の回路における論理表現を生成するインタフェース回路生成装置において、ＩＰ間のデータ転送におけるデッドロックを回避したり、効率の良い調停を行うことができる回路の設計およびこれを用いたインタフェース回路に特徴を有してる。
【００１５】
本実施形態のインタフェース回路生成装置はワークステーション等のコンピュータで実行されるソフトウェアによって実現されており、必要な構成としては、以下の項目を入力することにより、シミュレーションおよび論理合成可能なＲＴＬ（Register Transfer Level）またはネットリスト記述等の論理表現を生成することが可能となる。
【００１６】
（１）ＩＰのインタフェース仕様
（２）ＩＰがマスター機能を持つかどうか
（３）マスターとなるＩＰとターゲットとなるＩＰ間の接続情報
（４）ターゲットとなるＩＰがマスターとなるＩＰを選択する時の調停方式
（５）ＩＰのアドレス幅とデータ幅
（６）データバッファの深さ
（７）ＩＰのクロックとハブのクロックが同期か非同期か
（８）デッドロック回避のためのグルーピング
【００１７】
ここで、インタフェース回路におけるデッドロックについて説明する。図２はデッドロックを説明する模式図で、（ａ）は複数のバス間におけるデッドロック、（ｂ）はデータストリームタイプのモジュールでのデッドロックを示している。
【００１８】
すなわち、複数の外部バス(PCI/CPUバスなど)とのインタフェースを持ち、外部バスに対してマスター(イニシエーター)およびスレーブ(ターゲット)になるようなシステムでは、デッドロックの配慮が必要となる。例えば、図２（ａ）に示すバスブリッジでは、双方のバスから相手側のバスへのアクセスが同時に発生した場合、お互い相手側のバスが空くのを延々と待ち続ける、いわゆるデッドロック状態に陥る。このような状態に陥ると、システムがフリーズしてしまい、リセットするしか解消する方法がない。
【００１９】
また、図２（ｂ）に示すように、データストリームタイプのモジュール(FIFOや画像圧縮伸長モジュールなど)でも、１次バスから画像圧縮モジュールへのデータ入力および画像圧縮モジュールから１次バスへのデータ出力において、HUB-BUS I/Fと１次バスとの間でデータ入出力のタイミングが合致してしまうとデッドロック状態に陥ることがある。
【００２０】
いずれのデッドロック状態でも、各モジュールがトランザクションの相手が転送可能になるのを待ち続けることで発生する。したがって、各モジュールがトランザクションの相手が転送可能になるのを待ち続けるのではなく、トランザクションをやり直す(リトライする)ことによって、デッドロック状態を回避することができる。
【００２１】
そこで、本実施形態では、デッドロックを回避するためのインターロック機構をサポートしている。具体的には、ハブの論理表現を作成する際に用いる定義ファイルに、マスターポートとターゲットポートのグループ(例えば、PRMグループ(PRM_MとPRM_T)、およびSECグループ(SEC_MとSEC_T))を指定しておき、グループからもう一方へのグループへのアクセスが同時に発生した場合は、優先順位の低いグループのアクセス要求に対してリトライを返すよう回路設計する。このようなインターロック機構を設けることによりデッドロックを回避することが可能となる。
【００２２】
図３は、デッドロック回避のための定義ファイルの例を示す図である。この例では、マスターポートおよびターゲットポートのグループとしてPRMグループとSECグループを定義し、そのうちマスターポートはPRM_MおよびSEC_M、ターゲットポートはPRM_TおよびSEC_Tとして定義している。
【００２３】
この定義ファイルにおいて、InterLock=>[[PRM_T,PRM_M],[SEC_T,SEC_M]];で、PRM_TとPRM_Mとが同一グループ、SEC_TとSEM_Mとが同一グループに属することを示し、PRM_のグループからSEC_のグループへのアクセスとSEC_のグループからPRM_のグループへのアクセスが同時に発生した場合に、SEC_のグループからのアクセスに対してリトライを返すようになる（定義文の左に記述されているグループの方が優先順位が高い）。
【００２４】
図４は、デッドロック回避を説明する図である。ここでは１次バスから２次バスおよび２次バスから１次バスの両方にデータ転送要求があった場合、図３に示す定義ファイルによって優先順位の低いグループのへリトライを返信している。つまり、図３に示す定義ファイルでは、１次バスから２次バスへのデータ転送（PRMグループ）の優先順位より２次バスから１次バスへのデータ転送（SECグループ）の優先順位の方が低いため、優先順位の低いグループのアクセス要求についてはリトライを返信している。これにより、HUBは１次バスから２次バスへのアクセス要求について処理し、これが終わった後に２次バス側から送られるリトライによって２次バス側からのアクセス要求を処理できるようになる。したがって、両バスからのアクセス要求が衝突せず、デッドロック状態に陥ることを回避できるようになる。
【００２５】
次に、調停（アービトレーション）について説明する。一つのターゲットポートに対して複数のマスターポートからの要求がある場合、これらマスターポートからの要求を調停する必要が生じる。本実施形態に係るハブ（HUB）では、基本的なアービトレーション方式として、固定優先順位方式とラウンドロビン方式があり、これらの方式はターゲットポートごとに個別に定義ファイルにて設定することができる。また、固定優先順位方式およびラウンドロビン方式を階層的に組み合わせることによって、より柔軟な調停を行うことが可能となる。
【００２６】
＜固定優先順方式＞
固定優先順位方式では、定義ファイルで指定された順に優先順位が決定される。このため、固定優先順位方式は、最も単純な方式で、回路規模が小さく、ゲート遅延も少ないことから、優先順位が問題にならないようなターゲットポートの調停に向いている。
【００２７】
＜ラウンドロビン方式＞
ラウンドロビン方式は、一度選択されたマスターの優先順位が次からは最も低い優先順位になるような調停方式である。図５は、ラウンドロビン方式の例を示す模式図である。ここでは３つのマスターポートＭ１〜Ｍ３からの要求があった場合の優先順位の巡回例であり、マスターポートＭ１→マスターポートＭ２→マスターポートＭ３→マスターポートＭ１→…の順で優先順位が巡回している。
【００２８】
ラウンドロビン方式は、すべてのマスターポートからの要求に対して公平に調停を行うので、同時に複数のマスターポートからの要求が来ることが予想されるターゲットポートの調停に向いている。その一方、固定優先順位方式よりも回路規模が大きくなる。
【００２９】
＜階層化されたアービトレーション＞
本実施形態では、プリエンプティブ(固定優先順位)方式とラウンドロビン方式とを階層的に組み合わせるようにしている。図６は、固定優先順位方式とラウンドロビン方式とを階層的に組み合わせた定義ファイルの例および調停回路の例を示している。
【００３０】
ここでは４つのマスターポートＭ１〜Ｍ４と１つのターゲットポートＴ１とが定義されている。また、調停回路では、マスターポートＭ１、Ｍ２についてラウンドロビン方式での優先順位決定、マスターポートＭ３、Ｍ４についてラウンドロビン方式での優先順位決定、これらＭ１、Ｍ２のうちラウンドロビン方式で決定されたいずれかのマスターポートと、Ｍ３、Ｍ４のうちラウンドロビン方式で決定されたいずれかのマスターポートとで、プリエンプティブ（固定優先順位）方式による決定される。
【００３１】
つまり、マスターポートＭ１とＭ２とでラウンドロビン方式により優先されるいずれかのマスターポートを決定し、マスターポートＭ３とＭ４とでラウンドロビン方式により優先されるいずれかもマスターポートを決定する。そして、両ラウンドロビン方式で決定された２つのマスターポートのうちプリエンプティブ（固定優先順位）によって１つのマスターポートを決定し、最終的に決定されたマスターポートを制御回路へ与えている。
【００３２】
このようなラウンドロビン方式とプリエンプティブ方式との階層的な組み合わせによって回路規模を大きくすることなく柔軟な調停を行うことが可能となる。
【図面の簡単な説明】
【００３３】
【図１】本実施形態に係るインタフェース回路を備えたハブを説明する模式図である。
【図２】デッドロックを説明する模式図である。
【図３】デッドロック回避のための定義ファイルの例を示す図である。
【図４】デッドロック回避を説明する図である。
【図５】ラウンドロビン方式の例を示す模式図である。
【図６】固定優先順位方式とラウンドロビン方式とを階層的に組み合わせた定義ファイルの例および調停回路の例を示す図である。
【符号の説明】
【００３４】
１…ハブ、１１…インタフェース変換回路、１２…バッファ／データ幅変換回路、１３…ターゲット選択機構、１４…マスター調停機構
【図１】
2006065457.tif 000003
【図２】
2006065457.tif 000004
【図３】
2006065457.tif 000005
【図４】
2006065457.tif 000006
【図５】
2006065457.tif 000007
【図６】
2006065457.tif 000008