(57)【要約】【課題】システムバスを介して接続されたマスタモジュールと複数のスレーブモジュールのいずれかとの間で、前記マスタモジュールのコマンドに基づいてデータ信号が送受信されるように構成されたバスシステムにおいて、データ転送効率を向上させること。【解決手段】スレーブモジュール２Ａ、２Ｂは、マスタモジュール１へ自身の負荷状況を通知し、マスタモジュール１は、スレーブモジュール２Ａ、２Ｂに対するコマンドの優先度を負荷が高くなるにしたがって引き下げる。【選択図】図２
2009009512.tif 000002
【特許請求の範囲】
【請求項１】
システムバスを介して接続されたマスタモジュールと複数のスレーブモジュールのいずれかとの間で、前記マスタモジュールのコマンドに基づいてデータ信号が送受信されるように構成されたバスシステムにおいて、
前記スレーブモジュールが、前記マスタモジュールへ自身の負荷状況を通知するように構成され、
前記マスタモジュールが、前記スレーブモジュールに対するコマンドの優先度を負荷が高くなるにしたがって引き下げるように構成されたことを特徴とするバスシステム。
【請求項２】
前記スレーブモジュールが、前記マスタモジュールへ送信するデータ信号において前記負荷状況を通知するように構成されたことを特徴とする、請求項１に記載のバスシステム。
【請求項３】
前記負荷状況が前記スレーブモジュールのコマンドキュー残量であって、
前記マスタモジュールが、前記スレーブモジュールのうち、自身が発行しようとするコマンド数よりも前記コマンドキュー残量が少ないスレーブモジュールに対するコマンドの優先度を引き下げるように構成されたことを特徴とする、請求項１または２に記載のバスシステム。
【請求項４】
前記システムバスが、前記スレーブモジュールから通知された負荷状況のいずれかを選択して前記マスタモジュールへ通知するセレクタを備えたことを特徴とする、請求項１ないし３のいずれか一に記載のバスシステム。
【請求項５】
前記セレクタが、前記負荷状況のいずれか一をラウンドロビン方式に基づいて選択するように構成されたことを特徴とする、請求項４に記載のバスシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はバスシステムに関し、特に、マスタモジュールと複数のスレーブモジュールとの間でデータが送受信されるバスシステムに関する。
【背景技術】
【０００２】
図８は、従来のバスシステムの構成図である。
【０００３】
マスタモジュール１ならびにスレーブモジュール２Ａおよび２Ｂは、システムバス４を介して接続されている。
【０００４】
マスタモジュール１ならびにスレーブモジュール２Ａおよび２Ｂは、システムバス４を介してさまざまな信号をやりとりする。図８には、説明上必要とされる信号のみを抜粋して示した。
【０００５】
マスタモジュール１によって出力されたバス要求信号５および書込データ信号７は、システムバス４を介して、スレーブモジュール２Ａ、２Ｂに入力される。
【０００６】
スレーブモジュール２Ａ、２Ｂによって出力されたバス応答信号６および読出データ信号８は、システムバス４を介してマスタモジュール１に入力される。
【０００７】
図９は、従来のバスシステムのタイムチャートである。
【０００８】
読み出し要求を行う場合、まず、マスタモジュール１から、スレーブモジュール２Ａ、２Ｂに対して、バス要求信号５とともにデータ読み出しコマンドを出力する。次に、スレーブモジュール２Ａは、バス応答信号６を出力して返答する。その後、スレーブモジュール２Ａにおいて、読出データの準備ができると、読出データ有効信号、ステータスと共に、読出データ信号８をマスタモジュール１に対して出力する。
【０００９】
マイコン等に使用されるバスシステムにおいては、性能を向上させるために、特定のアクセスに対するレイテンシがシステムバス全体のレイテンシに影響することを防ぐための対策がとられている。そのような対策の一例として、バスアクセスの終了を待たずにバス命令を複数発行する機能、バス命令をアウトオブオーダ処理する機能（非特許文献１）が挙げられる。
【００１０】
【非特許文献１】五月女、「ＡＭＢＡ３．０に追加された高性能バス用のＡＸＩ仕様」、デザインウェーブマガジン、２００３年１２月、第７３巻、ｐ．４７−５７
【発明の開示】
【発明が解決しようとする課題】
【００１１】
以下の分析は、本発明者によってなされたものである。
【００１２】
従来技術において、バス命令の複数発行やアウトオブオーダ処理を行うには、マスタモジュール１およびスレーブモジュール２Ａ、２Ｂの持つコマンドキューの大きさ、システムバス４上のコマンドＩＤ発行数などの制限があり、いずれかの上限に達したときにコマンドを発行できなかったり、スレーブモジュール２Ａ、２Ｂにアクセスを拒否されたりする。
【００１３】
このような現象は、スレーブモジュール２Ａ、２Ｂのコマンドキューが少ないシステムや、バスの仕様上コマンドＩＤが少ないバスシステムにおいて頻発する。
【００１４】
また、ブリッジ等のマスタモジュール１においては、複数のバス要求が発生する。
【００１５】
例えば、スレーブモジュール２Ａのコマンドキュー残量制限によってアクセスが拒否された場合、マスタモジュール１のバス要求から、バス応答によるアクセス拒否の回答までの間、結果としてシステムバス４上に無駄なトラヒックが発生し、バスの転送効率が低下する。また、バス応答に引き続いてダミーデータの転送を伴う場合には、バスの転送効率はさらに低下する（図１０）。
【００１６】
このようなトラヒックを回避することができれば、例えば、別のスレーブモジュール２Ｂに対するデータ転送を行うことができ、システムバス４を有効に利用できる。したがって、アクセス拒否されるようなバス要求が元々発生しないように保留し、別の要求を優先してアクセスすることが好ましい。
【００１７】
したがって、システムバスを介して接続されたマスタモジュールと複数のスレーブモジュールとの間で、マスタモジュールのコマンドに基づいてデータ信号が送受信されるように構成されたバスシステムにおいて、転送効率を向上させることが課題となる。
【課題を解決するための手段】
【００１８】
本発明の第１の視点に係るバスシステムは、システムバスを介して接続されたマスタモジュールと複数のスレーブモジュールのいずれかとの間で、前記マスタモジュールのコマンドに基づいてデータ信号が送受信されるように構成されたバスシステムにおいて、前記スレーブモジュールが、前記マスタモジュールへ自身の負荷状況を通知するように構成され、前記マスタモジュールが、前記スレーブモジュールに対するコマンドの優先度を負荷が高くなるにしたがって引き下げるように構成されたことを特徴とする。
【発明の効果】
【００１９】
本発明に係るバスシステムによって、マスタモジュールによるデータ転送要求がスレーブモジュールによって拒否される頻度が減り、システムバスにおける無駄なトラヒックを削減することができるため、システムバスにおけるデータ転送効率を向上させることができる。
【発明を実施するための最良の形態】
【００２０】
本発明の第１の視点に係るバスシステムは、上記の通りである。
【００２１】
第１の展開形態のバスシステムは、前記スレーブモジュールが、前記マスタモジュールへ送信するデータ信号において前記負荷状況を通知するように構成されたことを特徴とする。
【００２２】
第２の展開形態のバスシステムは、前記負荷状況が前記スレーブモジュールのコマンドキュー残量であって、前記マスタモジュールが、前記スレーブモジュールのうち、自身が発行しようとするコマンド数よりも前記コマンドキュー残量が少ないスレーブモジュールに対するコマンドの優先度を引き下げるように構成されたことを特徴とする。
【００２３】
第３の展開形態のバスシステムは、前記システムバスが、前記スレーブモジュールから通知された負荷状況のいずれかを選択して前記マスタモジュールへ通知するセレクタを備えたことを特徴とする。
【００２４】
第４の展開形態のバスシステムは、前記セレクタが、前記負荷状況のいずれか一をラウンドロビン方式に基づいて選択するように構成されたことを特徴とする。
【００２５】
本発明の実施の形態に係るバスシステムは、図１を参照すると、システムバス４に対して、スレーブモジュール２Ａ、２Ｂからマスタモジュール１に対して、スレーブモジュール２Ａ、２Ｂの負荷状況を通知する負荷状況通知信号９を追加する。
【００２６】
この負荷状況通知信号９において、スレーブモジュール２Ａ、２Ｂのコマンドキュー残量を通知する。また、マスタモジュール１において、対象スレーブモジュール２Ａ、２Ｂのコマンドキュー残量に応じてコマンド発行の優先順位を変更する。
【００２７】
マスタモジュール１において、対象スレーブモジュール２Ａ、２Ｂのコマンドキュー残量がない場合にはコマンド発行を保留し、マスタモジュール１が発行予定のコマンド数と対象スレーブモジュール２Ａ、２Ｂのコマンドキュー残量とを比較して対象スレーブモジュール２Ａ、２Ｂの残りコマンドキュー量が不足している場合には、対象スレーブモジュール２Ａ、２Ｂへのコマンド発行の優先順位を下げる。
【実施例１】
【００２８】
図１は、本発明の第１の実施例に係るバスシステムの構成図を示す。
【００２９】
従来のバスシステムの構成図（図８）と比較すると、負荷状況通知信号９が、新たに追加されている。
【００３０】
負荷状況通知信号９は、スレーブモジュール２Ａ、２Ｂによって出力され、システムバス４を介してマスタモジュール１へ入力される。
【００３１】
負荷状況通知信号９は、スレーブモジュール２Ａ、２Ｂのコマンドキュー残量と、スレーブモジュール２Ａ、２Ｂを識別するスレーブモジュールＩＤとを含む。
【００３２】
図２は、本発明の第１の実施例に係るバスシステムに対する、さらに詳細な構成図である。
【００３３】
マスタモジュール１は、負荷状況テーブル１１を備え、スレーブモジュール２Ａ、２Ｂの負荷状況を負荷状況テーブル１１に記録する。
【００３４】
スレーブモジュール２Ａ、２Ｂから出力される負荷状況通知信号９は、システムバス４に備えた負荷状況通知信号セレクタ１０に入力され、スレーブモジュール２Ａ、２Ｂのいずれかが選択されてマスタモジュール１へ通知される。
【００３５】
図３は、実施例１に係るバスシステムのタイムチャートである。
【００３６】
実施例１の動作について、図３を参照して、説明する。
【００３７】
スレーブモジュール２Ａ、２Ｂは、それぞれ連続して負荷状況通知信号９を出力する。負荷状況通知信号９は、スレーブモジュールＩＤとコマンドキュー残量とを通知する。
【００３８】
負荷状況通知信号セレクタ１０は、スレーブモジュール２Ａ、２Ｂのいずれの負荷状況通知信号９をマスタモジュール１へ通知するかを選択する。選択方法は、例えば、ラウンドロビン方式としてもよい。
【００３９】
マスタモジュール１は、受け取った負荷状況通知信号９からスレーブモジュールＩＤとコマンドキュー残量とを読み取り、負荷状況テーブル１１に記録されたスレーブモジュール２Ａ、２Ｂそれぞれのコマンドキュー残量を更新する。
【００４０】
マスタモジュール１内部において、スレーブモジュール２Ａ、２Ｂに対してバス要求が発生したとき、負荷状況テーブル１１に保持しているコマンドキュー残量がゼロの場合にはバス要求を保留し、コマンドキュー残量が更新されたときに再評価する。また、バス要求のコマンド数とコマンドキュー残量とを比較して、コマンドキュー残量の方が少ない場合、そのバス要求の優先順位を下げる。
【００４１】
スレーブモジュール２Ａ、２Ｂのコマンドキュー残量が０の場合において、バス要求を行ったとき、バス要求信号およびバス応答信号によって一定のバス帯域が占有される。また、バスシステムによっては、ダミーデータの転送を伴うため、バス帯域がさらに多く占有される。しかし、実際にデータ転送は行われないため、転送効率は低下する。
【００４２】
本発明では、スレーブモジュール２Ａ、２Ｂによって要求を拒否されるようなバス要求を保留することで、従来技術ではエラー情報を通知していた期間についてもデータ転送が行うことができるようになる。
【００４３】
また、従来技術においても、コマンドの終了を待たずに別のコマンドを発行する方法が知られている。このため、スレーブモジュール２Ａ、２Ｂの応答を待たずに、マスタモジュール１がコマンドを連続発行する場合、応答を拒否されるコマンドが多数生じることになる。
【００４４】
本発明に係るバスシステムでは、係る場合においてコマンド発行を保留するため、システムバス４上にスレーブモジュール２Ａ、２Ｂによって拒否されるようなコマンドが発行されることを防ぐことができる。
【実施例２】
【００４５】
図４は、本発明の第２の実施例に係るバスシステムの構成図である。
【００４６】
実施例１において、負荷状況通知信号９は独立した信号として実現した。
【００４７】
本実施例においては、この負荷状況通知信号９と読出データ信号８とを兼用させた拡張読出データ信号１２とした。
【００４８】
読出データ信号８と負荷状況通知信号９との兼用は時分割で行い、ＲＤＶＡＬＩＤ信号がアクティブの場合に従来技術からの機能である読出データ信号８とし、ＲＤＶＡＬＩＤ信号がインアクティブの場合に負荷状況通知信号９とすることができる。
【００４９】
これにより、実施例１と比較してシステムバス４における信号の本数を削減することができ、従来技術（図８）と同じ信号の本数で本発明を実現することができる。
【００５０】
実施例２の動作について、図６のタイムチャートを参照して、説明する。
【００５１】
拡張読出データ信号１２は、スレーブモジュール２Ａ、２Ｂから出力され、システムバス４を介してマスタモジュール１へ入力される。この拡張読出データ信号１２のうち、負荷状況通知信号９においては、スレーブモジュール２Ａ、２Ｂのコマンドキュー残量とともにスレーブモジュール２Ａ、２Ｂを識別するスレーブモジュールＩＤが信号に含まれる。
【００５２】
図５は、本発明の第２の実施例に係るバスシステムの構成図をさらに詳細に示す。
【００５３】
マスタモジュール１は、スレーブモジュール２Ａ、２Ｂの負荷状況を記録した負荷状況テーブル１１を備える。
【００５４】
各スレーブモジュール２Ａ、２Ｂから出力された拡張読出データ信号１２は、負荷状況通知信号セレクタ１０に入力され、スレーブモジュール２Ａ、２Ｂのいずれか１つから出力された拡張読出データ信号１２が選択されてマスタモジュール１へ通知される。
【００５５】
図７は、負荷状況通知信号セレクタ１０の動作のフローチャートである。
【００５６】
負荷状況通知信号セレクタ１０は、拡張読出データ信号１２が、読出データ信号８または負荷状況通知信号９のいずれであるかを判定する（ステップＳ７１）。
【００５７】
負荷状況通知信号セレクタ１０は、拡張読出データ信号１２が読出データ信号８である場合、読み出しデータを出力しているスレーブモジュールを優先して選択する（ステップＳ７２）。
【００５８】
一方、負荷状況通知信号セレクタ１０は、拡張読出データ信号１２が負荷状況通知信号９である場合、ラウンドロビンによってスレーブモジュール２Ａ、２Ｂを選択する（ステップＳ７３）。
【００５９】
マスタモジュール１の内部において、スレーブモジュール２Ａ、２Ｂに対してシステムバス４の使用要求が発生したとき、負荷状況テーブル１１に記録されたコマンドキュー残量がゼロの場合にはバス要求を保留し、コマンドキュー残量が更新されたときに再評価を行う。
【００６０】
また、バス要求のコマンド数とコマンドキュー残量とを比較して、コマンドキュー残量の方が少ない場合には、そのバス要求の優先順位を下げる。
【００６１】
実施例２により、従来技術（図８）と比較して、システムバス４における信号の本数を増やさずに、スレーブモジュール２Ａ、２Ｂの負荷状況を通知することができる。
【実施例３】
【００６２】
本発明の第３の実施例に係るバスシステムでは、負荷状況通知信号９において、スレーブモジュール２Ａ、２Ｂのレイテンシの見積もり値を通知する。
【００６３】
マスタモジュール１において、バス要求を行うときに、このレイテンシの見積もり値を利用する。マスタモジュール１が発行することができる残りコマンド数が少ない場合にレイテンシの大きなバス要求の優先順位を下げてバス要求を行う。
【００６４】
上述の実施例１および実施例２においては、負荷状況通知信号９によってスレーブモジュール２Ａ、２Ｂのコマンドキューの残量を通知するものとしたが、実施例３においてはスレーブモジュール２Ａ、２Ｂがコマンドを受け付ける時のレイテンシの見積もり値を通知する。
【００６５】
実施例１および実施例２では、マスタモジュール１がバス要求を発行した後、スレーブモジュール２Ａ、２Ｂにおいてコマンドキュー残量が不足し、アクセス拒否される場合について対策を施した。
【００６６】
実施例３では、マスタモジュール１が発行することができる残りコマンド数が少ない場合について対策を施す。
【００６７】
マスタモジュール１のコマンドキューと、システムバス４のコマンドＩＤの残数によって、マスタモジュール１が発行することができるコマンド数が制限される。残り発行コマンド数が少ない場合において、レイテンシの長いコマンドを発行したとき、次のコマンドを発行するまでの待ち時間が長くなる。そこで、マスタモジュール１は、レイテンシの短いコマンドを優先して発行することが好ましい。
【図面の簡単な説明】
【００６８】
【図１】本発明の第１の実施例に係るバスシステムの構成図である。
【図２】本発明の第１の実施例に係るバスシステムの詳細な構成図である。
【図３】本発明の第１の実施例に係るバスシステムのタイムチャートである。
【図４】本発明の第２の実施例に係るバスシステムの構成図である。
【図５】本発明の第２の実施例に係るバスシステムの詳細な構成図である。
【図６】本発明の第２の実施例に係るバスシステムのタイムチャートである。
【図７】本発明の第２の実施例に係るバスシステムにおける負荷状況通知信号セレクタのフローチャートである。
【図８】従来のバスシステムの構成図である。
【図９】従来のバスシステムのタイムチャートである。
【図１０】従来のバスシステムのタイムチャートである。
【符号の説明】
【００６９】
１  マスタモジュール
２Ａ、２Ｂ  スレーブモジュール
４  システムバス
５  バス要求信号
６  バス応答信号
７  書込データ信号
８  読出データ信号
９  負荷状況通知信号
１０  負荷状況通知信号セレクタ
１１  負荷状況テーブル
１２  拡張読出データ信号
【図１】
2009009512.tif 000003
【図２】
2009009512.tif 000004
【図３】
2009009512.tif 000005
【図４】
2009009512.tif 000006
【図５】
2009009512.tif 000007
【図６】
2009009512.tif 000008
【図７】
2009009512.tif 000009
【図８】
2009009512.tif 000010
【図９】
2009009512.tif 000011
【図１０】
2009009512.tif 000012