(57)【特許請求の範囲】
【請求項１】
イニシエータとターゲットとの間を接続するバス上に、複数のラッチ手段を設けたバスシステムであって、
前記複数のラッチ手段の少なくとも１つは、
ラッチ動作をバイパスするバイパス手段と、
前記ラッチ動作をバイパスするか否かを選択するバイパス選択信号を前記イニシエータ側から受信し、前記バイパス選択信号を前記ターゲット側のラッチ手段に伝達する伝達手段と、
前記バイパス選択信号に応じて前記ラッチ動作をバイパスするか否かを決定する決定手段とを備えることを特徴とするバスシステム。
【請求項２】
前記バイパス選択信号に応じて非バイパス状態からバイパス状態へ移行させる際には、前記ターゲット側とのハンドシェークが終了したことをもって前記バイパス状態に移行することを特徴とする請求項１に記載のバスシステム。
【請求項３】
前記決定手段が前記伝達手段の受信したバイパス選択信号に基づいて前記ラッチ動作をバイパスするか否かを決定し、前記ターゲット側のラッチ手段の伝達手段とハンドシェークが成立してから、前記伝達手段が前記バイパス選択信号を送信することを特徴とする請求項１又は２に記載のバスシステム。
【請求項４】
前記複数のラッチ手段は、システムの動作周波数を上げる場合に、前記ターゲット側とのハンドシェークが終了したことをもって前記バイパス選択信号に応じて非バイパス状態から前記バイパス状態に移行することを特徴とする請求項１乃至３のいずれか１項に記載のバスシステム。
【請求項５】
前記複数のラッチ手段は、システムの動作周波数を下げる場合に、前記ターゲット側とのハンドシェークが終了したことによらず前記バイパス選択信号に応じて非バイパス状態から前記バイパス状態に移行することを特徴とする請求項１乃至４のいずれか１項に記載のバスシステム。
【請求項６】
前記バイパス選択信号を遅延させて出力する際には、前記ターゲット側とのハンドシェークが終了したことをもって出力することを特徴とする請求項１乃至５のいずれか１項に記載のバスシステム。
【請求項７】
前記複数のラッチ手段の少なくとも１つは、前記バイパス選択信号によらず非バイパス状態を保つことを特徴とする請求項１乃至６のいずれか１項に記載のバスシステム。
【請求項８】
前記複数のラッチ手段は、自身がターゲット側にアサートするＶａｌｉｄ信号と、ターゲット側からアサートされるＲｅａｄｙ信号とに基づいてハンドシェークを実施し、
前記複数のラッチ手段は自身がターゲット側にアサートするＶａｌｉｄ信号を保持するフリップフロップをリセットするリセット手段をさらに有することを特徴とする請求項１乃至７のいずれか１項に記載のバスシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レジスタスライス手段を用いてバス接続するバスシステムに関する。
【背景技術】
【０００２】
近年、プロセスの微細化が進み、ＬＳＩに内蔵される回路規模は数千万ゲートに達するようになった。
【０００３】
その一方、デバイスサイズの微細化の影響により様々な問題が顕著になってきている。その中でも、とりわけＬＳＩ内部の配線遅延の増大は重要な問題である。
【０００４】
このＬＳＩ内部の配線遅延から大きな影響を受けるものとして、モジュール間を配線により接続するシステムバスが挙げられる。
【０００５】
今日、ＬＳＩ内部のシステムバスとしては、例えば英国ＡＲＭ社の規定するＡＭＢＡ（バージョン2.0）或いはその規格の中のバスの一つであるＡＨＢが業界標準となっている（例えば、特許文献１参照）。ＡＭＢＡは「Advanced Microcontroller Bus Architecture」の略であり、またＡＨＢは「Advanced High-Performance Bus」の略である。
【０００６】
ＡＨＢは、いわゆる、共有バス構造をとっており、複数のバスマスタと複数のスレーブとが単一のバス構造によって接続されている。このバス構造はアドレスデコーダやマルチプレクサ、デマルチプレクサ、といった要素により構成されている。尚、共有バスであるので、全てのマスタ、或いは全てのスレーブが同一のバス信号を観測できるように、同一信号の配線がＬＳＩ内部で長い距離を引き回されている。
【０００７】
ＡＨＢでは、このような構成を取るため、上述のように、配線遅延が問題となってきている現在、動作周波数を上げることが困難になってきている。
【０００８】
そこで、新たなバス規格として、ＡＲＭ社よりＡＭＢＡのバージョン3.0が策定され、その中で規定されるＡＸＩが次世代のシステムＬＳＩ標準バスの候補として注目を集めている。ＡＸＩ（Advanced eXtensible Interface）は、ＡＨＢのような共有バス構造ではなく、イニシエータとターゲットとの間のポイントトゥーポイントによる接続を規定したインタフェースである。
【０００９】
ＡＸＩプロトコルは、アドレス、コマンド、データがそれぞれ別のチャネルに分離されており、チャネル毎にValid信号とReady信号を用いた簡単な２線ハンドシェークによって送信する。
【００１０】
即ち、イニシエータがアサートするValid信号とターゲットのアサートするReady信号の両者が同時にアサートされているサイクルで一つの転送が成立する。
【００１１】
尚、ＡＸＩはプロトコルの規定であってバス接続網の実装までは規定していない。通常は、クロスバー構造やマルチレイヤ構造などでの実現が想定される。また、ＡＲＭ社は、自社のＩＰ（Intellectual Property）コアとしてマルチレイヤ構造のPrimeCell PL300を供給している。
【００１２】
上述のように、ＡＸＩプロトコルは単純なハンドシェークに従って２点間で転送を行うため、２点間に「レジスタスライス」と呼ばれるラッチ機構を挿入することが可能である。このレジスタスライスは、２点間の遅延時間が長く、必要とされる動作周波数を達成できない場合に挿入される。
【００１３】
例えば、今ターゲット、イニシエータ間のパス遅延が２nsであり、動作周波数が800MHz（１周期=1.25ns）であるとき、この２点間にレジスタスライスを挿入することで遅延値を約１nsずつに分けることができる。従って、必要な動作周波数を達成することが可能となる。
【００１４】
一方、レジスタスライスを挿入することのデメリットは、ラッチのために一サイクル分の遅延が生ずることである。尚、ここで注意しなければならないのは、信号の伝播方向がイニシエータからターゲットへの一方向だけではなく、ターゲットからイニシエータへの応答信号（Ready信号）方向もあることである。そのため、単純にそれぞれの信号を一段のフリッププロップ（ＦＦ）でラッチするだけでは、ハンドシェークのタイミングが成り立たなくなる。
【００１５】
即ち、イニシエータとターゲットが共に、もう一方の側で１サイクル前に出力した信号を受け取ることになるからである。
【００１６】
この問題を解決するためには、例えばレジスタスライスとして、２段分のＦＦを用いて構成することが考えられる。しかしながら、２段のＦＦを用いる場合、回路規模が大きくなることと、レイテンシが増加することがデメリットとして挙げられる。
【００１７】
そこで、ＦＦではなく、クロックの正相、逆相を用いたハーフラッチ２段によって構成すれば、上述のデメリットは解消される。
【００１８】
図１にレジスタスライスをハーフラッチにより構成した例を示す。図１において、左側がイニシエータ側の信号、右側がターゲット側の信号である。図１に示すハーフラッチはEN入力が１のとき透過状態となる。
【００１９】
図２にレジスタスライスのタイミングチャートを示す。図２において、斜線で示す部分はハーフラッチの保持動作を表している。即ち、EN=0のタイミングである。
【００２０】
図２からわかるように、ターゲットからのReady信号がデアサートされている場合にはデータ保持動作をマスクすることでハンドシェークのタイミングを生成している。
【００２１】
図３にこのようなレジスタスライスを用いて構成したシステムの一例を示す。図の矢印は一つのチャネルであり、ＡＸＩプロトコルでは５つのチャネルが規定されている。
【００２２】
さて、上述のように、２点間のパス遅延を分割して動作周波数を向上させる効果をもつレジスタスライスであるが、欠点としてはレイテンシの増加がある。特に、高速な動作が必要とされるシステムにおいてはレジスタスライスを多段に入れる必要が生じるが、その段数に応じてレイテンシは悪化する。
【００２３】
特に、消費電力等の観点から、常時最高の動作周波数で動作するのではなく、必要に応じて最適な動作周波数を取るようなシステムにおいても、レジスタスライスは最高の動作周波数時に必要なだけ挿入する必要がある。そこで、システムの動作周波数が低い時にはレジスタスライスをバイパスし、レイテンシを改善することが考えられる。
【特許文献１】特開2004-178570号公報
【発明の開示】
【発明が解決しようとする課題】
【００２４】
しなしながら、システムの動作周波数の変更時に、同時にレジスタスライスのバイパス、非バイパスを変更しようとする場合には考慮すべき問題がある。
【００２５】
即ち、新たにバイパス対象となるレジスタスライスが、有効なコマンドやデータを保持している場合には、そのコマンドやデータがターゲットに到達することを待ってバイパス状態に移行させなければならないことである。
【００２６】
この問題を解決する最も単純な方法は、通常動作周波数切り替えのために他の部分でも行われるが如く、動作周波数切り替えのための特別な待ち合わせ期間を設ける。そして、ハンドシェークによって周波数が変更可能になるのを待った後、周波数を切り替えることである。
【００２７】
具体的には、レジスタスライスの場合、全てのマスタに対して新たにバス転送コマンドを発行するのを禁止し、スレーブが既に発行されている全てのコマンドを処理したことを確認する。そして、確認した上で、周波数を変更し、マスタが新たにバス転送コマンドを発行することを許可するという手順である。
【００２８】
これにより、レジスタスライスの中に存在する有効なコマンドがフラッシュされ、バイパス状態に移行しても問題が生じないことを保証することができる。
【００２９】
しかしながら、上述の方法では、システム動作周波数の切り替えが指示されてから実際に動作周波数の切り替えを行うまでに、全ての既発行コマンドを処理しなければならない。そのため、特にレジスタスライスが多段に挿入されている場合は時間がかかり過ぎる、という問題がある。
【００３０】
更に、システム制御として、このハンドシェークを明示的に行う必要があり、動作周波数を切り替えるための機構が複雑になる点も問題である。
【００３１】
本発明は、上記課題を解決するためになされたもので、システムの動的な動作周波数の切り替え動作を簡単な構成で且つ高速に行うことを目的とする。
【課題を解決するための手段】
【００３２】
本発明は、イニシエータとターゲットとの間を接続するバス上に、複数のラッチ手段を設けたバスシステムであって、前記複数のラッチ手段の少なくとも１つは、ラッチ動作をバイパスするバイパス手段と、前記ラッチ動作をバイパスするか否かを選択するバイパス選択信号を前記イニシエータ側から受信し、前記バイパス選択信号を前記ターゲット側のラッチ手段に伝達する伝達手段と、前記バイパス選択信号に応じて前記ラッチ動作をバイパスするか否かを決定する決定手段とを備えることを特徴とする。
【発明の効果】
【００３４】
本発明によれば、システムの動作周波数を切り替える際に、バイパスされるレジスタスライスのフラッシュに要する待ち合わせ期間を設ける必要がなく、レジスタスライスのバイパス切り替えをシームレスに行うことが可能になる。
【発明を実施するための最良の形態】
【００３５】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【００３６】
図４は、本実施形態におけるレジスタスライスの構成を示す図である。図４において、４０１はイニシエータからバイパス信号を受信し、ターゲット側に伝達するバイパス信号伝達部である。尚、このバイパス信号伝達部４０１は、単にバイパス信号を伝達するだけではない。即ち、後述するバイパス状態遷移部に対しバイパス信号を受信したことを通知し、バイパス状態遷移部からバイパス信号の伝達を許可された後、バイパス信号の伝達を行う機能を有するものである。
【００３７】
４０２はバイパス状態遷移部であり、バイパス状態、非バイパス状態の間の遷移を司るステートマシンであり、バイパス信号伝達部４０１からバイパス信号受信通知を受けると、その信号の値に応じて内部状態を遷移する。尚、この状態遷移の詳細については、図５を用いて更に後述する。
【００３８】
４０３は応答抑制部であり、バイパス状態遷移部４０２からバイパス遷移中指示信号を受けると、その間、応答抑制信号により受領応答信号（Ready信号）をデアサート状態に保つ。
【００３９】
４０４はリセット部であり、バイパス状態遷移部４０２からリセット信号を受け取ると、後述するハーフラッチ４２１をリセットする。
【００４０】
４１０〜４１３、４２０〜４２２はハーフラッチであり、EN端子が１のとき透過、０のとき出力データを保持する。特に、ハーフラッチ４２１はリセット端子を備え、リセット部４０４からのリセット信号によりリセットされるハーフラッチである。
【００４１】
図５は、図４に示すバイパス状態遷移部４０２における状態遷移を示す図である。まず、非バイパス状態からバイパス状態への遷移について説明する。
【００４２】
本実施形態においては、初期状態は非バイパス状態に置かれる。この状態で、バイパス信号受信通知を受け、且つ、その信号が非バイパス状態からバイパス状態への遷移を指示している場合には、バイパス遷移中状態に遷移する。この状態にいる間中、バイパス状態遷移部４０２はバイパス遷移中指示信号を応答抑制部４０３にアサートする。この信号がアサートされると、応答抑制部４０３はその出力信号である応答抑制信号を“０”にする。これにより、イニシエータに対するReady信号は“０”になり、またイニシエータからのValid信号がマスクされ、新たな有効データが取り込まれなくなる。
【００４３】
次に、ハーフラッチ４１１に保持されるValid信号が“０”で、ハーフラッチ４２１に保持されるValid信号が“０”か“１”で、ターゲットからのReady信号が“１”の条件が成立するまで待つ。その後、この条件が成立し、内部に保持する有効データが無くなると、バイパス状態へと遷移する。これと同時に、バイパス状態遷移部４０２はバイパス信号伝達部４０１に対してバイパス信号の伝達許可を与える。そして、この状態にある間中、バイパス状態遷移部４０２は、レジスタバイパス信号をアサートし続ける。このレジスタバイパス信号は、全てのハーフラッチにおけるEN端子の信号値を“１”に固定する信号である。これにより、全てのハーフラッチが透過状態になる。その結果、レジスタスライスはバイパスされることになる。
【００４４】
次に、バイパス状態から非バイパス状態への遷移について説明する。
【００４５】
バイパス状態にあるとき、バイパス信号受信通知を受け、且つ、その信号がバイパス状態から非バイパス状態への遷移を指示している場合、非バイパス遷移中状態へ遷移する。これと同時に、バイパス状態遷移部４０２はバイパス信号伝達部４０１に対してバイパス信号の伝達許可を与える。この状態にあるとき、レジスタスライスは、非バイパス状態に移行し、バイパス状態遷移部４０２は上述したレジスタバイパス信号をデアサートすると共に、リセット部４０４に対してリセット信号をアサートする。この状態からは無条件で非バイパス状態へと遷移するため、このリセット信号のアサートは１サイクル期間のみである。
【００４６】
ここで、図６に示すシステムを例に挙げて、レジスタスライスの動作、及びバイパス、非バイパス状態間の遷移について、図７に示すタイミングチャートを用いて、より詳細に説明する。
【００４７】
図６は、本実施形態におけるシステムの構成の一例を示す図である。図６に示すように、１つのマスタ６０１と１つのスレーブ６０２との間に、３つのレジスタスライス６０３、６０４，６０５が挿入されている。ここで、レジスタスライス６０３及び６０５はそのバイパス、非バイパス状態を切り替え可能である。また、レジスタスライス６０４は常に非バイパス状態であり、イニシエータ側から入力されるバイパス信号は１サイクルの遅延の後、ターゲット側に伝達される。
【００４８】
図７に示すタイミングチャートでは、説明の簡単のためにマスタからスレーブに向かうコマンドチャネルのみを例に挙げて説明する。
【００４９】
まず、システム動作周波数を高い側から低い側へ変更する場合について説明する。図７に示す最初のサイクルでは、レジスタスライス６０３〜６０５は、全て非バイパス状態で動作している。システム動作周波数が低い側に切り替わることにより、マスタ６０１は、レジスタスライス６０３、６０５をバイパス状態に切り替えるため、サイクル３においてバイパス信号をアサートする。
【００５０】
そして、レジスタスライス６０３がバイパス信号を受信すると、図５に示す状態遷移に従って、まずサイクル４においてレディ信号をデアサートする。次に、サイクル４の終わりで、レジスタスライス６０４との間のハンドシェークが成立すると、レジスタスライス６０３はサイクル５においてバイパス状態に移り、バイパス信号出力をアサートする。
【００５１】
サイクル５において、レジスタスライス６０４もバイパス信号を受信するが、レジスタスライス６０４は非バイパス状態を保つため、１サイクル後のサイクル６でバイパス信号出力をアサートし、それ以外の動作は従前のままである。
【００５２】
サイクル６において、レジスタスライス６０５がバイパス信号を受信すると、レジスタスライス６０３と同様に、図５に示す状態遷移に従ってサイクル７においてレディ信号をデアサートするように動作する。
【００５３】
但し、サイクル７はレジスタスライスの通常のハンドシェーク動作において本来レディ信号がデアサートされるサイクルである。即ち、バイパス信号を受信した後もサイクル７の始まりにおいて、レジスタスライスには２段分の有効なコマンド（cmd-2及びcmd-3）が保持されている。
【００５４】
サイクル７及びサイクル８において、スレーブ６０２との間で２回のハンドシェークが成立することによりレジスタスライス６０５内に保持される有効なコマンドは無くなる。そして、サイクル９において、レジスタスライス６０５はバイパス状態になり、バイパス信号出力をアサートする。
【００５５】
ここで注意すべきことは、周波数を下げる場合には、レジスタスライスはバイパス状態でも非バイパス状態でもパス間のタイミング制約は満足することである。即ち、上述した一連の動作の中で、実際の動作周波数の切り替えはどのタイミングでも可能であるということである。例えば、サイクル２において切り替えても良いし、サイクル５でもサイクル１１でも良い。
【００５６】
次に、システム動作周波数を低い側から高い側へ変更する場合について説明する。この場合、システム動作周波数が高い側に切り替わることにより、マスタ６０１は、レジスタスライス６０３、６０５を非バイパス状態に切り替えるため、サイクル１３においてバイパス信号をデアサートする。
【００５７】
そして、レジスタスライス６０３がバイパス信号を受信すると、図５に示す状態遷移に従ってサイクル１４において非バイパス状態に遷移する。また同時にハーフラッチ４２１をリセットし、バイパス信号出力をデアサートする。
【００５８】
サイクル１４において、レジスタスライス６０４もバイパス信号を受信するが、レジスタスライス６０４は非バイパス状態のままであり、１サイクル後のサイクル１５においてバイパス信号出力をデアサートし、それ以外の動作は従前のままである。
【００５９】
そして、レジスタスライス６０５がバイパス信号を受信すると、図５に示す状態遷移に従ってサイクル１７において非バイパス状態に遷移する。また同時にハーフラッチ４２１をリセットし、バイパス信号出力をデアサートする。
【００６０】
このように、システム動作周波数を上げる場合、一部でもレジスタスライスがバイパス状態にあるとパス間のタイミング制約を満たせない。しかし、バイパス信号がスレーブに到達した時点で全てのレジスタスライスが非バイパス状態にあることが保証されるため、これをもって動作周波数を切り替える。
【００６１】
尚、本発明は、上述した実施形態に限定されるものではなく、更に他の修正及び改善が可能であることは言うまでもない。
【００６２】
例えば、本実施形態においては、レジスタスライスをハーフラッチを用いて構成したが、もちろんこれに限定されるものではない。
【００６３】
例えば、negative edge triggered flip-flop及びpositive edge triggered flip-flopを用いて構成しても良い。また、positive edge triggered flip-flopだけを用いて構成して良い。その場合、バイパス経路としてＭＵＸを用いて別のパスを迂回するように構成すれば良い。
【００６４】
即ち、本発明は、上述した実施形態に示す特定の形式に限定されるものではなく、且つ添付の特許請求の範囲において本発明の精神及び範囲から離れることのない全ての修正をカバーすることを考えていることが理解されるべきである。
【００６５】
本実施形態によれば、システム動作周波数を切り替える際に、バイパスされるレジスタスライスのフラッシュに要する待ち合わせ期間を設ける必要がなく、レジスタスライスのバイパス切り替えをシームレスに行うことが可能となる。その結果、システム動作周波数の切り替え動作を容易、且つ、高速に行うことが可能となる。
【００６６】
尚、本実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。
【００６７】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【００６８】
このプログラムコードを供給するための記録媒体として、例えばフレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００６９】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合。
【００７０】
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００７１】
【図１】レジスタスライスをハーフラッチにより構成した例を示す図である。
【図２】図１に示すレジスタスライスのタイミングチャートを示す図である。
【図３】図１に示すレジスタスライスを用いて構成したシステムの一例を示す図である。
【図４】本実施形態におけるレジスタスライスの構成を示す図である。
【図５】図４に示すバイパス状態遷移部４０２における状態遷移を示す図である。
【図６】本実施形態におけるシステムの構成の一例を示す図である。
【図７】本実施形態におけるシステムの動作タイミングの一例を示す図である。
【符号の説明】
【００７２】
４０１  バイパス信号伝達部
４０２  バイパス状態遷移部
４０３  応答抑制部
４０４  リセット部
４１０  ハーフラッチ
４１１  ハーフラッチ
４１２  ハーフラッチ
４１３  ハーフラッチ
４２０  ハーフラッチ
４２１  ハーフラッチ
４２２  ハーフラッチ
６０１  マスタ
６０２  スレーブ
６０３  レジスタスライス
６０４  レジスタスライス
６０５  レジスタスライス
【図１】
0004799137.tif 000002
【図２】
0004799137.tif 000003
【図３】
0004799137.tif 000004
【図４】
0004799137.tif 000005
【図５】
0004799137.tif 000006
【図６】
0004799137.tif 000007
【図７】
0004799137.tif 000008