(57)【要約】【課題】インターコネクトのレイテンシに対して効果的にインターコネクトのクロック周波数制御を行うこと。【解決手段】少なくとも一つのマスターポートを少なくとも一つのスレーブポートに接続するように構成可能な相互接続ネットワークと、前記マスターポートを介した通信に関するレイテンシ情報を観測する第一の観測部と、前記スレーブポートを介した通信に関するレイテンシ情報を観測する第二の観測部と、前記相互接続ネットワークのクロック周波数を制御する周波数制御部を備え、前記周波数制御部は、前記第一の観測部によるレイテンシおよび前記第二の観測部によるレイテンシが個々の条件を満たす場合、前記マスターポートと前記スレーブポート間のバス相互接続クロックの周波数を変動させる。【選択図】図１
2020035265.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一つのマスターポートを少なくとも一つのスレーブポートに接続するように構成可能な相互接続ネットワークと、
前記マスターポートを介した通信に関するレイテンシ情報を観測する第一の観測部と、
前記スレーブポートを介した通信に関するレイテンシ情報を観測する第二の観測部と、
前記相互接続ネットワークのクロック周波数を制御する周波数制御部を備え、
前記周波数制御部は、前記第一の観測部によるレイテンシおよび前記第二の観測部によるレイテンシが個々の条件を満たす場合、前記マスターポートと前記スレーブポート間のバス相互接続クロックの周波数を変動させることを特徴とするバスシステム。
【請求項２】
前記第一の観測部と前記第二の観測部で観測されたレイテンシの差分をとり、前記周波数制御部は、前記差分が閾値より大きい場合、前記マスターポートと前記スレーブポート間のバス相互接続クロックの周波数を上げ、前記差分が前記閾値より小さい場合、前記マスターポートと前記スレーブポート間のバス相互接続クロックの周波数を下げるように制御する請求項１に記載のバスシステム。
【請求項３】
前記第一の観測部と前記第二の観測部で観測されたレイテンシの差分をとり、前記周波数制御部は、前記差分の変動が閾値より大きい場合、前記マスターポートと前記スレーブポート間のバス相互接続クロックの周波数を上げ、前記差分の変動が前記閾値より小さい場合、前記マスターポートと前記スレーブポート間のバス相互接続クロックの周波数を下げるように制御する請求項１に記載のバスシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はバスシステムに関する。
【背景技術】
【０００２】
システムＬＳＩに関し、インターコネクトを介して、データ転送要求を生成するマスターを、データ転送要求に応答するスレーブに接続する技術が知られている。インターコネクトでは、アドレス信号等に基づいて接続先のスレーブが決定される。
【０００３】
近年、システムＬＳＩに多種多様な機能を持たせるため、これらのインターコネクトを介して接続されるマスターおよびスレーブの数が増加している。一組のバスはデータ線、アドレス線、制御線等の多数の配線から構成されるので、多数のバスを含むインターコネクトは、ＬＳＩ実装時に必要な配線数が非常に多くなる。この配線増加はシステムＬＳＩの消費電力を増大させる要因となるため、問題になっている。
【０００４】
配線数の増加を防ぐ構成として、インターコネクトをサブシステムに分割した構成がある。図９は、インターコネクトをサブシステムに分割したバスシステムの典型的な構成例を示す図である。この構成は、特許文献１に開示される。
【０００５】
図９のシステムは、システム全体が３つのサブシステムに分割される。マスター９０１、９０２、９０３及びスレーブ９１０から構成される第１のサブシステムと、スレーブ９１１、９１２から構成される第２のサブシステムと、マスター９０３及びスレーブ９１３、９１４から構成される第３のサブシステムとが設けられる。第１のサブシステムのインターコネクト９２０と第２のサブシステムのインターコネクト９２１は、バスブリッジを介して結合されている。第１のサブシステムのインターコネクト９２０と第３のサブシステムのインターコネクト９２２は、バスブリッジを介して結合されている。図９に示す構成には、配線数の増加を抑えながら、転送性能を高く保つことができるという利点がある。このような構成では各サブシステム内のデータ転送についてのバスの競合が発生しないだけでなく、複数のサブシステムを経由したデータ転送も同時に実行可能である。前者の例は、マスター９００からスレーブ９１０へアクセスすると同時に、マスター９０３からスレーブ９１３にアクセスする場合である。後者の例は、マスター９００からスレーブ９１０へアクセスすると同時に、マスター９０１からスレーブ９１１へアクセスする場合である。このようにバス競合を避けることにより転送性能を高く保ちながらも、複数のマスターと複数のスレーブとの間の全ての組み合わせに対してバス配線を設けることなく、配線数の増加を抑えることができる。
【０００６】
また、バスの消費電力を抑える方法として、インターコネクトのクロック周波数を引き下げる方法も考えられる。しかしながら、クロック周波数を引き下げることで、バスシステムの性能は低下し、インターコネクトに接続されているモジュールに対するレイテンシが要件を超えた場合、システムが機能しなくなる恐れがある。そこで、バスシステムの性能を維持しつつ、消費電力を抑えるため、インターコネクトのレイテンシが大きいときだけインターコネクトの周波数を上げ、レイテンシが小さい期間は周波数を下げることが望ましい。このような従来技術として、マスターポートのレイテンシを観測し、観測されたレイテンシと閾値を比較しインターコネクトのクロック信号の周波数を変動させるものが存在する（特許文献２）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−１９９８５９号公報
【特許文献２】特表２０１４−５０５３１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、レイテンシが発生した要因が、インターコネクトの遅延でなく、スレーブの応答遅延によるケースも考えられる。その場合、観測されたレイテンシが大きいからといってインターコネクトの周波数を上げてしまうと、レイテンシの改善が見込めない上に、消費電力が増加してしまうことになる。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、本発明に係るバスシステムは、
少なくとも一つのマスターポートを少なくとも一つのスレーブポートに接続するように構成可能な相互接続ネットワークと、前記マスターポートを介した通信に関するレイテンシ情報を観測する第一の観測部と、前記スレーブポートを介した通信に関するレイテンシ情報を観測する第二の観測部と、前記相互接続ネットワークのクロック周波数を制御する周波数制御部を備え、前記周波数制御部は、前記第一の観測部によるレイテンシおよび前記第二の観測部によるレイテンシが個々の条件を満たす場合、前記マスターポートと前記スレーブポート間のバス相互接続クロックの周波数を変動させることを特徴とする。また、前記第一の観測部と前記第二の観測部で観測されたレイテンシの差分をとり、前記周波数制御部は、前記差分が閾値より大きい場合、前記マスターポートと前記スレーブポート間のバス相互接続クロックの周波数を上げ、前記差分が閾値より小さい場合、前記マスターポートと前記スレーブポート間のバス相互接続クロックの周波数を下げるように制御することを特徴とする。また、前記第一の観測部と前記第二の観測部で観測されたレイテンシの差分をとり、前記周波数制御部は、前記差分の変動が閾値より大きい場合、前記マスターポートと前記スレーブポート間のバス相互接続クロックの周波数を上げ、前記差分の変動が閾値より小さい場合、前記マスターポートと前記スレーブポート間のバス相互接続クロックの周波数を下げるように制御することを特徴とする。
【発明の効果】
【００１０】
本発明に係るバスシステムによれば、インターコネクトのレイテンシに対して効果的にクロック周波数制御を行うことができる。
【図面の簡単な説明】
【００１１】
【図１】バスシステム１０の構成例を示すブロック図
【図２】バスシステム１０のリードトランザクションプロトコルを示す図
【図３】バスシステム１０のライトトランザクションプロトコルを示す図
【図４】バスシステム１０による周波数スケーリングの例を示すフローチャート
【図５】マスター１００からスレーブ１１３へリードする場合のタイミングチャート
【図６】マスター１００からスレーブ１１３へリードする場合のタイミングチャート
【図７】レイテンシ内訳を説明する図
【図８】レイテンシ内訳を説明する図
【図９】従来のバスシステムの構成例を示す図
【図１０】周期的に大量のアクセスが発生する場合の、レイテンシ変動の例を示す図
【図１１】図１０のレイテンシ変動量の絶対値をとった図
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態について、図面を参照しながら説明する。
【実施例１】
【００１３】
図１は、バスシステム１０の構成図である。バスシステム１０は、マスター１００、１０１、１０２，１０３、およびスレーブ１１０、１１１，１１２、１１３、１１４を含む。マスターには、たとえば、中央演算装置（ＣＰＵ）や動的メモリアクセスコントローラ（ＤＭＡＣ）などが含まれる。スレーブには、たとえば、メモリコントローラやスタティックランダムアクセスメモリ（ＳＲＡＭ）モジュールなどが含まれる。
【００１４】
各マスターおよび各スレーブは全て、マスターとスレーブとの間のデータトランザクションの経路を定める役目をするインターコネクト１２０，１２１，１２２のいずれかに接続され、お互いにデータのやりとりを行うことができる。マスター１００、１０１、１０２およびスレーブ１１０はインターコネクト１２０に接続される。スレーブ１１１、１１２はインターコネクト１２１に接続される。マスター１０３およびスレーブ１１３、１１４はインターコネクト１２２に接続される。インターコネクト１２０，１２１，１２２とマスター１００、１０１、１０２，１０３およびスレーブ１１０、１１１，１１２、１１３、１１４間の通信は、ＡＲＭ社によって設計された、ＡＭＢＡ  ＡＸＩプロトコルにより行われるものとする。
【００１５】
バスシステム１０はまた、バスシステム１０を統括制御するとともに、インターコネクト１２０，１２１，１２２に供給するクロック信号を生成するように構成されたバス制御部１４０を備える。
【００１６】
バスモニタ１３０、１３１、１３２はインターコネクト毎に１つずつ設けられ、各マスター、各スレーブとインターコネクト間のポートを監視し、通信をモニタする。各バスモニタがモニタする部分は、図１の点線部で示している。バスモニタ１３０はマスター１００、１０１、１０２、スレーブ１１０とインターコネクト１２０間の通信をモニタする。バスモニタ１３１はスレーブ１１１、１１２とインターコネクト１２１間の通信をモニタする。バスモニタ１３２はマスター１０３、スレーブ１１３、１１４とインターコネクト１２２間の通信をモニタする。バスモニタ１３０、１３１、１３２はさらに、モニタした通信内容を解析し、レイテンシ情報を算出、記憶するように構成される。
【００１７】
バスシステム１０の通信に際して、マスター１００、１０１、１０２，１０３は、各インターコネクトを介してスレーブ１１０、１１１，１１２、１１３へ送られるデータトランザクションを発生させる。これらのデータトランザクションは、リードトランザクションまたはライトトランザクションである。
【００１８】
図２はバスシステム１０のリードトランザクションの例を示す図である。トランザクションはＡＭＢＡ  ＡＸＩプロトコル準拠で行われる。マスターは転送アドレス（Ａ）とその転送に関する制御情報（バースト長，データ幅，転送タイプ、ＩＤなど）を載せて，ＡＶＡＬＩＤ信号をアサートする。読み出しデータの準備ができたスレーブは，読み出しデータとともに，ＲＶＡＬＩＤ信号をアサートする。マスターはデータを受け取る準備ができていたのでＲＲＥＡＤＹがアサートされており，ＲＶＡＬＩＤとＲＲＥＡＤＹがともにアサートされている時刻でデータが転送される。転送の最後の場合は，ＲＶＡＬＩＤ信号とともにＲＬＡＳＴがアサートされる。バスモニタ１３０、１３１、１３２は図２の矢印で示した範囲、すなわちＡＶＡＬＩＤ信号からＲＬＡＳＴ信号間のサイクル数をカウントしてレイテンシ情報として記憶する。
【００１９】
図３はバスシステム１０のライトトランザクションの例を示す図である。リードトランザクションと同様の部位については、詳細説明は省略するが、ライトトランザクションの場合、スレーブが書き込みデータを受け取ったことを確認すると、ＢＶＡＬＩＤをアサートする。バスモニタ１３０、１３１、１３２はＡＶＡＬＩＤ信号からＢＶＡＬＩＤ信号間のサイクル数をカウントしてレイテンシ情報として記憶する。
【００２０】
バス制御部１４０はバスモニタ１３０、１３１、１３２で図２、３の方法で求められたレイテンシ情報を受け取り、条件を満たす場合、インターコネクトに供給するクロック周波数をスケーリングする（上昇または下降させる）ように構成される。周波数をスケーリングするインターコネクトは、条件を満たすレイテンシが観測されたマスターポートとスレーブポート間をつなぐインターコネクトである。
【００２１】
図４はバスシステム１０による周波数スケーリングの例を示すフローチャートである。バスシステム１０が起動すると、Ｓ１０１にて、バス制御部１４０は、バスモニタ１３０、１３１、１３２に、トランザクションのモニタを行い、トランザクション毎にレイテンシ情報を記憶するように命令する。Ｓ１０２にて、バス制御部１４０は、バスモニタ１３０、１３１、１３２に記憶されたレイテンシ情報を受信する。Ｓ１０３にて、バス制御部１４０は、Ｓ１０２で送信されたレイテンシ情報を基に、マスターポートに対するレイテンシとスレーブポートに対するレイテンシの差分を算出する。
【００２２】
Ｓ１０４にて、バス制御部１４０は、Ｓ１０３で算出した差分値が閾値以上であるか否かを判定する。差分値が閾値より小さい場合、バス制御部１４０は、Ｓ１０５にて、現在のインターコネクト周波数より上げた周波数を変更周波数とする。そして、Ｓ１０７にて、バス制御部１４０は、変更周波数が上限周波数以下であるかを判定する。変更周波数が上限周波数以下の場合、バス制御部１４０は、Ｓ１０８にて、レイテンシを観測したインターコネクトの周波数を変更周波数に変更する。Ｓ１０７にて、変更周波数が上限周波数より大きいと判定された場合、バス制御部１４０は、周波数を変更せず、Ｓ１１０に移行する。
【００２３】
Ｓ１０４にて、差分値が閾値以上の場合、バス制御部１４０は、Ｓ１０６にて、現在の周波数より下げた周波数を変更周波数とする。そして、Ｓ１０８にて、バス制御部１４０は、変更周波数が下限周波数以上であるかを判定する。変更周波数が下限周波数以上の場合、バス制御部１４０は、Ｓ１０９にて、レイテンシを観測したインターコネクトの周波数を変更周波数に変更する。Ｓ１０８にて下限周波数より小さいと判定された場合、バス制御部１４０は、周波数を変更せず、Ｓ１１０に移行する。Ｓ１０９で周波数の変更が終了すると、バス制御部１４０は、Ｓ１１０に移行する。閾値および上限、下限周波数は事前に決められ、バス制御部内に記録されている値を用いるものとする。
【００２４】
Ｓ１１０では、バス制御部１４０により、バスモニタの停止命令が発行されたか否かを判定する。バスモニタの停止命令が発行された場合、Ｓ１１１でバスモニタを停止し、一連の処理を終了する。バスモニタの停止命令が発行されない場合、Ｓ１０１に戻り、バスモニタによるレイテンシ観測を継続する。
【００２５】
本実施例の適用による性能改善効果を示すため、具体例として、バスシステム１０において、マスター１０１からスレーブ１１３へリードトランザクションを行った例を考える。
【００２６】
図５および図６はマスター１０１からスレーブ１１３へリードトランザクションを行った際のインターコネクトの周波数上昇によるレイテンシ改善効果を示すタイミングチャートである。図５は、スレーブ１１３によるレイテンシが大きい場合のタイミングチャートである。これは、スレーブにインターコネクトと非同期のモジュールが接続されている場合などに起こりえる。その場合、スレーブが返すレスポンスが遅れ、スレーブのレイテンシが大きくなる。
【００２７】
図５の５−（ａ）はインターコネクト周波数上昇前のタイミングチャートである。５−（ａ）の５０１は、バスモニタ１３０で観測されるレイテンシであり、９サイクルである。５０２は、バスモニタ１３２で観測されるレイテンシであり、６サイクルである。この５０２は、スレーブ１１３で発生したスレーブ遅延である。バスモニタ１３０で観測されるマスターポートに対するレイテンシ５０１と、バスモニタ１３２で観測されるスレーブポートに対するレイテンシ５０２の差分は３サイクルになる。このレイテンシ差分がインターコネクト１２０、１２３で発生したインターコネクト遅延である。
【００２８】
図５の５−（ｂ）はインターコネクト１２０、１２３の周波数を上昇し、２倍にした場合のタイミングチャートである。５−（ｂ）の５０３は、バスモニタ１３０で観測されるレイテンシであり、周波数上昇前の周期でカウントすると、７．５サイクルである。５−（ｂ）の５０４は、バスモニタ１３２で観測されるレイテンシであり、６サイクルである。５−（ｂ）の５０５は、５−（ａ）の５０１と５−（ｂ）の５０３の差分であり、１．５サイクルである。この５０５は周波数上昇によるレイテンシ改善効果を示している。５−（ａ）で３サイクルかかっていたインターコネクトのレイテンシは、５−（ｂ）では半分の１．５サイクルに短縮され、５０５で１．５サイクルの改善効果が生まれる。なお、バスモニタ１３２で観測されるスレーブ遅延５０４は、インターコネクトの周波数に無関係のため、周波数上昇前後で同じである。
【００２９】
図５のケースのレイテンシ内訳を図７に示す。図７の横軸はサイクル数を示しており、５−（ａ）のレイテンシ内訳と５−（ｂ）のレイテンシ内訳を比較している。すでに述べた通り、バスモニタ１３２で観測されるスレーブポートに対するレイテンシ５０２、５０４はスレーブ遅延である。バスモニタ１３０で観測されるマスターポートに対するレイテンシ５０１、５０３とバスモニタ１３２で観測されるスレーブポートに対するレイテンシ５０２、５０４の差分はインターコネクト１２０、１２３で発生したインターコネクト遅延である。この５−（ｂ）で周波数を上昇させると、インターコネクト遅延が減少し、５０５の１．５サイクルのレイテンシ改善効果が生まれる。
【００３０】
図６は、スレーブ１１３のレスポンスによるレイテンシが小さい場合のタイミングチャートである。図６の６−（ａ）はインターコネクト周波数変更前のタイミングチャートである。６−（ａ）の６０１は、バスモニタ１３０で観測されるレイテンシであり、図５の５０１と同じ９サイクルである。６−（ａ）の６０２は、バスモニタ１３２で観測されるレイテンシであり、２サイクルである。この場合、バスモニタ１３０で観測されるマスターポートに対するレイテンシ６０１と、バスモニタ１３２で観測されるスレーブポートに対するレイテンシ６０２の差分、すなわち、インターコネクト遅延は７サイクルになる。
【００３１】
図６の６−（ｂ）は、インターコネクト１２０、１２３の周波数を上昇し、２倍にした場合のタイミングチャートである。６−（ｂ）の６０３は、バスモニタ１３０で観測されるレイテンシであり、周波数上昇前の周期でカウントすると、５．５サイクルである。６−（ｂ）の６０４は、バスモニタ１３２で観測されるレイテンシであり、２サイクルである。６−（ｂ）の６０５は、６−（ａ）の６０１と５−（ｂ）の６０３の差分、すなわち改善効果であり、３．５サイクルである。
【００３２】
図７と同様に、図６のケースのレイテンシ内訳を示したのが図８である。６−（ｂ）で周波数を上昇させると、インターコネクト遅延が減少し、６０５の３．５サイクルのレイテンシ改善効果が生まれる図７の５０５と図８の６０５を比較するとインターコネクト遅延の大きい６０５の方が、インターコネクトの周波数を上昇させたときのレイテンシ改善効果が大きいことがわかる。図７のケースでは、スレーブ１１３のレスポンスによるレイテンシ５０４が大きいため、周波数を上昇させても改善効果は少ない。このような場合は、たとえばマスターからアウトスタンディングで命令を発行したとしても、スレーブで待たされてしまうことも考えられる。そういった場合、インターコネクトの周波数を下げ、次の命令の発行を遅らせたとしても、性能に対する影響は少ない。
【００３３】
本実施例は、バス制御部１４０がマスターポートに対するレイテンシとスレーブポートに対するレイテンシの差分をとり、インターコネクト遅延を算出する。そして、インターコネクト遅延と閾値を比較することで、インターコネクト遅延が大きい場合のみ周波数を上げて性能を改善できる。また、逆にスレーブ遅延が大きい場合、すなわち、スレーブのレスポンスに時間がかかっている場合は、周波数を落として、性能劣化に対する影響を少なくしつつ消費電力を下げることができる。
【００３４】
なお、本実施例ではマスターポートに対するレイテンシとスレーブポートに対するレイテンシの差分が閾値より大きいか否かでインターコネクトの周波数を制御したが、レイテンシの差分の変動が閾値より大きいか否かでインターコネクトの周波数を制御してもよい。これは、短期間に大量にアクセスするスレーブがある場合に有効である。このようなスレーブは、たとえば、映像表示回路など、映像のブランキング期間中に大量のアクセスが発生するものが挙げられる。図１０は、周期的に大量のアクセスが発生する場合の、レイテンシ変動の例である。横軸は時間で、縦軸はレイテンシ量である。１ミリ秒（ｍｓ）と１３ｍｓの期間と、３３ｍｓから４５ｍｓの期間にアクセスが発生し、レイテンシが発生している。１ｍｓと３３ｍｓ近辺はレイテンシ変動が大きく、その後は徐々に落ち着いていく傾向を示している。図１１は図１０のレイテンシ変動量の絶対値をとったものである。このように短期間に集中してアクセスが発生するケースでは、アクセスを開始してから、最初の方のレイテンシ変動が大きく、その後の変動は落ち着いていく傾向がみられる。ここで、バス制御部１４０が、レイテンシ変動量を閾値と比較し、変動が大きい期間は、インターコネクトの周波数を上げ、変動が小さい期間は、インターコネクトの周波数を下げるように制御する。すると、アクセスが集中している期間のみレイテンシを下げて性能を改善し、アクセスが閑散としている期間の消費電力を下げることができる。
【符号の説明】
【００３５】
１０  バスシステム、１００〜１０３  マスター、１１０〜１１４  スレーブ
【図１】
2020035265.tif 000003
【図２】
2020035265.tif 000004
【図３】
2020035265.tif 000005
【図４】
2020035265.tif 000006
【図５】
2020035265.tif 000007
【図６】
2020035265.tif 000008
【図７】
2020035265.tif 000009
【図８】
2020035265.tif 000010
【図９】
2020035265.tif 000011
【図１０】
2020035265.tif 000012
【図１１】
2020035265.tif 000013