(57)【要約】【課題】  記憶手段の挿入に伴うレイテンシ増加による性能低下を防止する。【解決手段】  マスタデバイスとスレーブデバイスとの間に挿入されたレジスタスライスを経由する経路か、そのレジスタスライスを経由しない経路の何れかを指定するバイパス選択信号を入力する。そして、マルチプレクサにて入力されたバイパス選択信号に応じてレジスタスライスを経由する経路を有効にするか、レジスタスライスを経由しない経路を有効にするかを選択する。【選択図】      図８
2007018264.tif 000002
【特許請求の範囲】
【請求項１】
マスタデバイスとスレーブデバイスとの間に挿入された記憶手段を経由する経路か、該記憶手段を経由しない経路の何れかを指定する信号を入力する入力手段と、
前記入力手段で入力された信号に応じて前記記憶手段を経由する経路を有効にするか、前記記憶手段を経由しない経路を有効にするかを選択する経路選択手段とを有することを特徴とするバスシステム。
【請求項２】
前記記憶手段は高周波数で動作させるためにレイアウト工程で挿入したレジスタであり、前記経路選択手段はセレクタによって構成されることを特徴とする請求項１記載のバスシステム。
【請求項３】
前記記憶手段及び前記選択手段はトランスペアレントラッチによって構成されることを特徴とする請求項１記載のバスシステム。
【請求項４】
前記入力手段は外部と接続するための外部ピンを介して前記信号を入力することを特徴とする請求項１記載のバスシステム。
【請求項５】
前記選択入力手段は所定の制御レジスタから出力される前記信号を入力することを特徴とする請求項１記載のバスシステム。
【請求項６】
前記経路選択手段は、前記記憶手段の後段に自動生成されることを特徴とする請求項１記載のバスシステム。
【請求項７】
マスタデバイスとスレーブデバイスとの間に挿入された記憶手段を経由する経路か、該記憶手段を経由しない経路の何れかを指定する信号を入力する入力工程と、
前記入力工程で入力された信号に応じて前記記憶手段を経由する経路を有効にするか、前記記憶手段を経由しない経路を有効にするかを選択する経路選択工程とを有することを特徴とするバスシステムの経路選択方法。
【請求項８】
請求項７記載のバスシステムの経路選択方法をコンピュータに実行させるためのプログラム。
【請求項９】
請求項８記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マスタデバイスとスレーブデバイスを各々少なくとも１つ以上相互接続したバスシステム及びその経路選択方法に関する。
【背景技術】
【０００２】
近年、USB 1.1からUSB 2.0へ、或いはPCI からPCI-Expressへといった具合に、高スループットを必要とするＩＰ（Intellectual Property）コアが急増している。これに伴い、高速なスループット転送を可能とする、オンチップ・バスの需要が急速に高まっている（例えば、特許文献１参照）。
【０００３】
2003年 6月にＡＲＭ社が次世代オンチップ・バスの規格としてAMBA 3.0のAXI（Advanced eXtensible Interface）プロトコルを発表し、注目を集めている。AMBAは、「Advanced Microcontroller Bus Architecture」の略である。このAXIでは、従来のAHB（Advanced High-Performance Bus）にはなかったチャネルという概念を導入し、このチャネルによる転送を行うことによりデータ転送のスループットを向上させるよう考慮されている。具体的には、アドレスフェーズとデータフェーズとの独立転送方式や、後から入ったサイクルの結果が前に戻ってきても良い、というアウトオブオーダ転送方式をサポートしている。
【０００４】
ここで、チャネルとは、図１に示すように、マスタ１０１とスレーブ１０２がそれぞれvalid１０３とready１０４の各信号を用いてdata１０５を２線ハンドシェークで転送する一連の転送経路として定義される。data１０５の転送元がvalid１０３を出力し、転送先がready１０４を出力する。
【０００５】
このAXIでは、図２に示すように、address２０３、write data２０５、read data２０４、write response２０６の４つのチャネルを用いてマスタ２０１とスレーブ２０２との間でデータ転送を行う。従って、アドレスチャネルとデータチャネルとを独立に転送することができるので、アドレス処理を次々と発行することが可能となり、バスを有効に活用できる。
【０００６】
更に、アウトオブオーダをサポートすることにより、レイテンシが小さいスレーブからのデータを先に返すことが可能となる。このようなことから、AXIでは、バスの利用効率向上が期待できる。
【０００７】
その一方で、システムＬＳＩ内部に複数のＣＰＵ、メモリ、Ｉ／Ｏを有するシステムが一般的になってきており、これらのデバイスを相互に接続する必要がある。しかし、複数のバスマスタ、バススレーブがシステムＬＳＩ内部に均等に配置配線されるとも限らない。そのため、いくつかの接続網、特にアドレスやデータのような高負荷のバスについては、期待する動作周波数で動作不可能となってしまうことが、レイアウト工程の段階で判明することが考えられる。
【０００８】
このような場合、タイミングを満たさないパスに対してレイアウトを何度もやり直し、期待する動作周波数でのタイミング保証を行うことに時間と労力が費やされていた。また、最悪の結果として、動作周波数を落として動作させることになったり、チップサイズを大きくすることを余儀なくされたりすることもあった。
【０００９】
そこで、このような問題を解決するために、クリティカルパスであるマスタとスレーブとの間の信号群にレジスタを挿入し、パスを分割することでレジスタ−レジスタ間の遅延量を減少させる方法が採用されている。上述のAXIのようなpoint-to-point接続の場合、２線ハンドシェイクでプロトコルが規定されており、そのハンドシェイクで受け渡す情報の流れが単一方向であるため、比較的レジスタの挿入が容易である。尚、AXIでは、この方式を「レジスタスライス」と呼んでいる。
【００１０】
図３は、図２に示すpoint-to-point接続に対してレジスタスライスを挿入した接続例を示す図である。図３に示す例では、アドレスのチャネルとリードデータのチャネルにそれぞれレジスタスライス３０１、３０２を一段挿入してパスを分離している。これにより、マスタ２０１のアドレス発行からリードデータの取り込みまでのレイテンシが２サイクル分だけ大きくなるが、最大で２倍の動作周波数での動作が可能となる。
【特許文献１】特表2004-513430号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上述したように、point-to-point接続に対してレジスタを挿入し、パスを分割することで高い動作周波数を保証することができる。但し、動作周波数が上がるからといって一律に性能が向上するわけではなく、スループットと増加するレイテンシとの関係次第では、逆に性能を落としてしまうことも有り得る。
【００１２】
図４、図５を用いて、図２に示すようなpoint-to-point接続した３２ビットデータバスでバースト転送を行った場合の動作周波数に対する平均転送速度について説明する。
【００１３】
図４は、１６バースト転送を行った場合の動作周波数と転送速度との関係を示す図である。また、図５は、４バースト転送を行った場合の動作周波数と転送速度との関係を示す図である。
【００１４】
図４、図５に示すように、レジスタスライスを挿入した場合と、挿入していない場合とではレイテンシの違いが平均転送速度の違いとして現れている。例えば、図４に示す１６バースト転送を行った場合、レジスタスライスなしで120MHz動作で480MByte/sの転送速度を得ている。これに対して、レジスタスライスを挿入すると、少なくとも約135MHz以上の動作周波数で動作させなければレジスタスライスなしの120MHz動作の性能を超えられないことになる。
【００１５】
尚、ここでは、レジスタスライスなしの場合の１６バースト転送に要するサイクル数を１６サイクルとし、レジスタスライスを挿入した場合では「＋２サイクル」のレイテンシ増加により１８サイクルとしている。
【００１６】
また、図５に示す４バースト転送を行った場合、レジスタスライスなしで120MHz動作で480MByte/sの転送速度を得ている。これに対して、レジスタスライスを挿入すると、少なくとも約195MHz以上の動作周波数で動作させなければレジスタスライスなしの120MHz動作の性能を超えられないことになる。
【００１７】
つまり、サポートするバースト長が小さくなるほど、レジスタスライスを挿入した場合の動作周波数に対する要求は大きくなってしまう。
【００１８】
以上の結果から、レイアウト段階で目標周波数でのタイミング収束が困難なことが発覚した場合、レジスタスライスを挿入することにより、目標周波数を満足することができたとしても、次のような問題がある。つまり、その目標周波数がレジスタスライスを入れる前の性能に対するものであって、レジスタスライスを挿入した後では、レイテンシ増加に伴って性能を満たせなくなることが有り得る。その場合、選択可能な周波数候補の中から、更に高い周波数を選択し、性能を満足させる必要がある。
【００１９】
開発したシステムＬＳＩを製品仕様に応じて、ローエンド機種からハイエンド機種までプラットフォーム展開する場合に、要求性能が低い製品では高い動作周波数で動作させるより、むしろ低い動作周波数で動作させる方が消費電力を抑えるメリットがある。但し、単純にレジスタスライスを挿入したシステムＬＳＩに対して動作周波数を落とすだけではレイテンシ増加に伴い、性能が満たせない場合が考えられる。
【００２０】
本発明は上記課題を解決するためになされたもので、記憶手段の挿入に伴うレイテンシ増加による性能低下を防止することを目的とする。
【課題を解決するための手段】
【００２１】
本発明は、バスシステムであって、マスタデバイスとスレーブデバイスとの間に挿入された記憶手段を経由する経路か、該記憶手段を経由しない経路の何れかを指定する信号を入力する入力手段と、前記入力手段で入力された信号に応じて前記記憶手段を経由する経路を有効にするか、前記記憶手段を経由しない経路を有効にするかを選択する経路選択手段とを有することを特徴とする。
【００２２】
また、本発明は、バスシステムの経路選択方法であって、マスタデバイスとスレーブデバイスとの間に挿入された記憶手段を経由する経路か、該記憶手段を経由しない経路の何れかを指定する信号を入力する入力工程と、前記入力工程で入力された信号に応じて前記記憶手段を経由する経路を有効にするか、前記記憶手段を経由しない経路を有効にするかを選択する経路選択工程とを有することを特徴とする。
【発明の効果】
【００２３】
本発明によれば、レイアウト工程でレジスタを挿入する際に、同時にレジスタを経由しない系を設けることで、レジスタ追加に伴うレイテンシ増加による性能低下を防ぎ、要求性能を満足させる最適な周波数を選択することができる。
【発明を実施するための最良の形態】
【００２４】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【００２５】
図６は、本実施形態におけるシステムＬＳＩ内部の構成例を示す図である。この例では、システムＬＳＩ内部に３つのマスタデバイス６０１〜６０３と３つのスレーブデバイス６０４〜６０６が存在し、それぞれ相互接続されている。また、マスタデバイス６０１〜６０３とスレーブデバイス６０４〜６０６とを繋ぐプロトコルは、valid、data、readyのシンプルな共通のプロトコル（図１）である。そして、アドレス、ライトデータ、リードデータ、ライトレスポンスの４種類の情報（図２）を通信している。
【００２６】
ここで、マスタ−スレーブ間のデータ転送はバースト転送をサポートしており、最大で１６バースト転送が可能である。また、バースト転送長はアドレス情報フェーズでdataの一部として通信される。最速のコンディションで動作する場合、マスタがアドレスを発行して、１６バーストのリードデータを取り込むのに１６サイクルかかるとする。
【００２７】
尚、以下のような要求性能の異なる製品を本実施形態の１つのシステムＬＳＩでカバーするものと仮定する。
【００２８】
製品Ａ：要求転送速度525MByte/s
製品Ｂ：要求転送速度475MByte/s、低電力仕様
図４に示す関係から、レジスタスライスがない場合の要求転送速度525MByte/sを満たす動作周波数は130MHz以上であることがわかる。そこで、本システムではシステムＬＳＩの設計工程において、ハードウェア記述言語を用いて設計、シミュレーション及び論理合成を行い、160MHzでマスタ、スレーブを動作させるようレイアウトするものとする。
【００２９】
［レイアウト結果］
各デバイスがシステムＬＳＩ内部でどのように配置されるかは、他の機能モジュールや外部ピンとの関係など様々な要因に依存し、均等に配置されることは少ない。
【００３０】
ここで、レイアウトした結果、マスタＡ６０１−スレーブＣ６０６のアドレスとリードデータのパス遅延が7.8nsであったとする。従って、このパスに関しては120MHzでは動作可能であるが、160MHz以上では動作不可能なパス（クリティカルパス）となる。図４からも分かるように、製品Ａにおいては120MHzでは目標性能に達しない。尚、それ以外のパスについては全て160MHzでのタイミング保証はできているものとする。
【００３１】
図７は、マスタＡ６０１−スレーブＣ６０６に着目した構成を示す図である。図７では、マスタデバイス６０１とスレーブデバイス６０６とが一対一（point-to-point）で接続されている。ここでは、タイミングを満たせなかったアドレスとリードデータのチャネルについてのみ示している。マスタＡ６０１とスレーブＣ６０６に入力するクロック７０２はクロック生成器７０１で生成されており、複数の周波数候補（120,140,160,180,200MHz）から設定レジスタ７１１の周波数選択信号７１２によって選択可能である。
【００３２】
［レイアウト結果からレジスタスライス／バイパス回路の挿入］
図８は、レイアウト工程でレジスタスライス＆バイパス回路を挿入した構成を示す図である。図８に示すように、アドレス用valid信号とアドレス、リードデータ用valid信号とリードデータに関して、レイアウト工程において、１段のレジスタを挿入する。同時に、このレジスタスライスの後段にセレクタを挿入し、レジスタスライスを経由するパスと、レジスタスライスを経由しないパスとを選択できるように回路の挿入を行う。また、この選択には、予め本用途のためにopen扱いしていた外部ピンから選択信号を入力するものとする。
【００３３】
［再レイアウト］
再レイアウトの時、レジスタスライスを経由しないパスに関しては動作周波数が160MHzではなく、120MHzでのタイミング保証を行うようにする。また、レジスタスライスを挿入したパスについては160MHzでのタイミング保証を行う。
【００３４】
このような回路構成にすることにより、160MHz動作の場合にはレジスタスライスの系、120MHz動作の場合にはレジスタスライスをバイパスする系、という使い方が可能となる。これにより、製品Ａについては160MHzで動作させ、また要求性能が製品Ａより低い製品Ｂのような場合、転送120MHzでレジスタバイパスの系を使用する。
【００３５】
尚、製品Ｂに関しては、レジスタスライスを使用して140MHz或いは160MHzで動作させることでも性能を満たせるが、レジスタスライスを挿入せずに120MHzで動作させる方が消費電力を抑えるというメリットが得られる。
【００３６】
［他の実施形態］
次に、図面を参照しながら本発明に係る他の実施形態について詳細に説明する。
【００３７】
図９は、他の実施形態におけるレジスタスライスをバイパスする構成の一例を示す図である。他の実施形態では、レジスタスライスとマルチプレクサの代わりに２つのトランスペアレントラッチを使用する。具体的には、図９に示すように、LowスルーHighラッチ型９０３、９０５とHighスルーLowラッチ型９０４、９０６を組み合わせて使用する。
【００３８】
各々のトランスペアレントラッチのゲート入力には、クロック生成器７０１からマスタＡ６０１、スレーブＣ６０６へ供給されるクロック７０２を、バイパスするか否かを選択するバイパス選択信号９０１でマスクした信号９０２が入力される。
【００３９】
これにより、高速に動作させるレジスタスライスの系の場合、ラッチのゲート入力にはマスタＡ６０１、スレーブＣ６０６に供給しているクロック信号と同等のクロックが入力される。一方、レジスタスライスをバイパスし、低速で動作させる場合、ラッチはスルー状態となる。また、バイパス選択信号９０１は本実施形態と同様に、外部入力ピンと接続する。
【００４０】
尚、以上説明した実施形態では、バイパス選択信号を外部ピンと接続するようにしたが、それ以外にも設定レジスタのフリップフロップ出力とすることも可能である。この場合、レジスタスライスが挿入されるか否かはレイアウト結果に依存するので、予めフロントエンド開発時に制御レジスタを準備しておく。
【００４１】
また、レジスタスライスの段数を１段としたが、配置配線の結果によっては２段以上のレジスタを挿入することも当然あり得る。その場合も同様に本発明を適応できる。また、本発明を適応するマスタ−スレーブ接続を１つのみで取り扱っているが、当然複数の接続についても適応可能である。
【００４２】
以上説明したように、実施形態によれば、レジスタスライスの系と、そのバイパスの系とを設けることで、レジスタスライス追加に伴うレイテンシ増加による性能低下を防ぎ、要求性能に対してオーバースペックにならない最適な周波数を選択できるようになる。
【００４３】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インターフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用しても良い。
【００４４】
また、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。
【００４５】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【００４６】
このプログラムコードを供給するための記録媒体としては、例えばフロッピー（登録商標）ディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００４７】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合。
【００４８】
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００４９】
【図１】AXI（Advanced eXtensible Interface）プロトコルにおけるチャネルの概念を示す図である。
【図２】マスタ−スレーブ間でデータ伝送に用いられる４つのチャネルを示す図である。
【図３】図２に示すpoint-to-point接続に対してレジスタスライスを挿入した接続例を示す図である。
【図４】１６バースト転送を行った場合の動作周波数と転送速度との関係を示す図である。
【図５】４バースト転送を行った場合の動作周波数と転送速度との関係を示す図である。
【図６】本実施形態におけるシステムＬＳＩ内部の構成例を示す図である。
【図７】マスタＡ６０１−スレーブＣ６０６に着目した構成を示す図である。
【図８】レイアウト工程でレジスタスライス＆バイパス回路を挿入した構成を示す図である。
【図９】他の実施形態におけるレジスタスライスをバイパスする構成の一例を示す図である。
【図１】
2007018264.tif 000003
【図２】
2007018264.tif 000004
【図３】
2007018264.tif 000005
【図４】
2007018264.tif 000006
【図５】
2007018264.tif 000007
【図６】
2007018264.tif 000008
【図７】
2007018264.tif 000009
【図８】
2007018264.tif 000010
【図９】
2007018264.tif 000011