(57)【要約】【課題】高優先順位のトランザクションを、先に発行された低優先順位のトランザクションより優先して実行させることができる調停回路を提供することを課題とする。【解決手段】調停回路は、複数のマスタ回路から出力されたトランザクションをファーストインファーストアウト方式の第１のバッファ（１１６）に格納し、複数のマスタ回路のいずれかから、格納済トランザクションのうちのいずれかより優先順位が高い高順位トランザクションが出力された場合には、高順位トランザクションより優先順位が低い格納済トランザクションの内の低順位トランザクションのキャンセル要求をスレーブ回路内の第２のバッファに対して出力し、キャンセル要求が成功した場合には、高順位トランザクションをスレーブ回路に出力し、高順位トランザクションをスレーブ回路に出力した後、キャンセル要求が成功した低順位トランザクションをスレーブ回路に出力する。【選択図】図１
2015153012.tif 000002
【特許請求の範囲】
【請求項１】
複数のマスタ回路から出力されたトランザクションをファーストインファーストアウト方式の第１のバッファに格納し、前記第１のバッファに格納された格納済トランザクションをスレーブ回路に出力するインターフェース回路と、
前記複数のマスタ回路から出力されたトランザクションを監視した結果に基づいて、前記インターフェース回路を制御する制御回路と、
を有し、
前記インターフェース回路は、前記制御回路の制御に応じて、前記複数のマスタ回路のいずれかから、前記格納済トランザクションのうちのいずれかより優先順位が高い高順位トランザクションが出力された場合には、前記高順位トランザクションより優先順位が低い前記格納済トランザクションの内の低順位トランザクションのキャンセル要求を前記格納済トランザクションと同じトランザクションが格納された前記スレーブ回路内のファーストインファーストアウト方式の第２のバッファに対して出力し、前記キャンセル要求が成功した場合には、前記高順位トランザクションを前記スレーブ回路に出力し、前記高順位トランザクションを前記スレーブ回路に出力した後、前記キャンセル要求が成功した前記低順位トランザクションを前記スレーブ回路に出力する
ことを特徴とする調停回路。
【請求項２】
前記スレーブ回路は、前記キャンセル要求が入力されると、前記低順位トランザクションが未処理である場合には前記低順位トランザクションを前記第２のバッファから削除し、前記キャンセル要求の成功を示す信号を前記インターフェース回路に出力することを特徴とする請求項１記載の調停回路。
【請求項３】
前記スレーブ回路は、前記キャンセル要求が入力されると、前記低順位トランザクションが処理中である場合には前記低順位トランザクションの処理が終了した後に、前記低順位トランザクションの処理終了を示す信号を前記インターフェース回路に出力し、
前記インターフェース回路は、前記低順位トランザクションの処理終了を示す信号が前記スレーブ回路から入力されると、前記処理が終了したトランザクションを前記第１のバッファから削除することを特徴とする請求項１又は２記載の調停回路。
【請求項４】
さらに、前記複数のマスタ回路及び前記第１のバッファ間に接続される第１のスイッチ回路を有することを特徴とする請求項１〜３のいずれか１項に記載の調停回路。
【請求項５】
前記スレーブ回路は、
複数のスレーブと、
前記複数のスレーブ及び前記インターフェース回路の間に接続されるブリッジ回路とを有することを特徴とする請求項１〜４のいずれか１項に記載の調停回路。
【請求項６】
前記ブリッジ回路は、前記第２のバッファを有することを特徴とする請求項５記載の調停回路。
【請求項７】
前記ブリッジ回路は、前記複数のスレーブ及び前記第２のバッファ間に接続される第２のスイッチ回路を有することを特徴とする請求項６記載の調停回路。
【請求項８】
前記トランザクションの優先順位は、前記トランザクションを出力する前記複数のマスタ回路の優先順位であることを特徴とする請求項１〜７のいずれか１項に記載の調停回路。
【請求項９】
前記トランザクションの優先順位は、前記トランザクションの出力先である前記複数のスレーブの優先順位であることを特徴とする請求項５〜７のいずれか１項に記載の調停回路。
【請求項１０】
複数のマスタ回路から出力されたトランザクションをインターフェース回路内のファーストインファーストアウト方式の第１のバッファに格納し、
前記第１のバッファに格納された格納済トランザクションをスレーブ回路に出力し、
前記複数のマスタ回路のいずれかから、前記格納済トランザクションのうちのいずれかより優先順位が高い高順位トランザクションが出力された場合には、前記高順位トランザクションより優先順位が低い前記格納済トランザクションの内の低順位トランザクションのキャンセル要求を前記格納済トランザクションと同じトランザクションが格納された前記スレーブ回路内のファーストインファーストアウト方式の第２のバッファに対して出力し、
前記キャンセル要求が成功した場合には、前記高順位トランザクションを前記スレーブ回路に出力し、
前記高順位トランザクションを前記スレーブ回路に出力した後、前記キャンセル要求が成功した前記低順位トランザクションを前記スレーブ回路に出力することを特徴とする調停回路の処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、調停回路及び調停回路の処理方法に関する。
【背景技術】
【０００２】
マルチバス調停回路が知られている（例えば、特許文献１参照）。転送先バス衝突判定部は、複数のリクエストの転送先バスが衝突しないときはデータ転送実行部に対してすべてのリクエストのデータ転送を並行して実行させ、衝突するときは処理を転送先バス判定部に預ける。転送先バス判定部におけるリクエスト優先順位判定部は、複数のリクエストについてのリクエスト優先順位パラメータの優先順位を比較し、低順位のリクエストをしたバス調停回路にキャンセルを返すためにキャンセル処理部へ指示を与えるとともに、高順位のリクエストのデータ転送を実行させるためにデータ転送実行部へ実行の指示を与える。
【０００３】
また、動的優先順位スキームに従って動作するエージェント用のトランザクション・キューが知られている（例えば、特許文献２参照）。トランザクション・キューは、デフォルトの優先順位スキームに従って動作し、かつ輻輳イベントが検出されたときには、第２の優先順位スキームを使用する。
【０００４】
また、バスマスタにより生成される、ＩＤが付与されたトランザクションをキューイングバッファに登録し、キューイングバッファに登録された順序に従い、トランザクションを処理するメモリアクセス制御回路が知られている（例えば、特許文献３参照）。トランザクション検知手段は、ＩＤを認識し、レイテンシィによりバフォーマンスに影響を与えるバスマスタからのトランザクションがキューイングバッファに登録されたことを検知する。処理順序変更手段は、トランザクションが検出手段により影響を与えるトランザクションが検出されたときに、当該トランザクションを先行してキューイングされているトランザクションに優先して処理する。
【０００５】
また、各種の電子データを記憶するメモリが接続された第１のバスとメモリにアクセスする複数の制御手段が接続された第２のバスとを接続すると共に、制御手段各々からメモリへのアクセスを制御するバス間接続装置が知られている（例えば、特許文献４参照）。キューイング手段は、制御手段各々から送信されるメモリへのアクセス要求をキューイングバッファに蓄積して順次処理する。バイパス処理手段は、制御手段各々から送信されるメモリへのアクセス要求のうちリアルタイム性が要求される既定の処理に対応する既定のアクセス要求を、キューイングバッファをバイパスさせてキューイング手段で処理される他のアクセス要求に優先して処理する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−２６７９９２号公報
【特許文献２】特表２００３−５２１０２９号公報
【特許文献３】特開２００６−１８５１９８号公報
【特許文献４】特開２０１２−２７５７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１では、複数のリクエストの転送先バスが衝突するときは、低順位のリクエストをしたバス調停回路にキャンセルを返すためにキャンセル処理部へ指示を与えるとともに、高順位のリクエストのデータ転送を実行させるためにデータ転送実行部へ実行の指示を与える。しかし、衝突しないときはデータ転送実行部に対してすべてのリクエストのデータ転送を並行して実行させるため、高順位のリクエストは、先に発行された低順位のリクエストの処理が終了するまで待たされ、すぐに実行されない場合がある。
【０００８】
本発明の目的は、高優先順位のトランザクションを、先に発行された低優先順位のトランザクションより優先して実行させることができる調停回路及び調停回路の処理方法を提供することである。
【課題を解決するための手段】
【０００９】
調停回路は、複数のマスタ回路から出力されたトランザクションをファーストインファーストアウト方式の第１のバッファに格納し、前記第１のバッファに格納された格納済トランザクションをスレーブ回路に出力するインターフェース回路と、前記複数のマスタ回路から出力されたトランザクションを監視した結果に基づいて、前記インターフェース回路を制御する制御回路と、を有し、前記インターフェース回路は、前記制御回路の制御に応じて、前記複数のマスタ回路のいずれかから、前記格納済トランザクションのうちのいずれかより優先順位が高い高順位トランザクションが出力された場合には、前記高順位トランザクションより優先順位が低い前記格納済トランザクションの内の低順位トランザクションのキャンセル要求を前記格納済トランザクションと同じトランザクションが格納された前記スレーブ回路内のファーストインファーストアウト方式の第２のバッファに対して出力し、前記キャンセル要求が成功した場合には、前記高順位トランザクションを前記スレーブ回路に出力し、前記高順位トランザクションを前記スレーブ回路に出力した後、前記キャンセル要求が成功した前記低順位トランザクションを前記スレーブ回路に出力する。
【発明の効果】
【００１０】
インターフェース回路の処理により、高優先順位のトランザクションを、先に発行された低優先順位のトランザクションより優先して実行させることができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、第１の実施形態による処理システムの構成例を示す図である。
【図２】図２は、図１の処理システムの処理方法の例を示す図である。
【図３】図３は、図１の処理システムの処理方法の例を示す図である。
【図４】図４は、図１の処理システムの処理方法の例を示す図である。
【図５】図５は、図１の処理システムの処理方法の例を示す図である。
【図６】図６は、図１の処理システムの処理方法の例を示す図である。
【図７】図７は、図１の処理システムにおいて、監視部、制御部及び第１のバッファがない場合の動作を説明するための図である。
【図８】図８は、第２の実施形態による処理システムの構成例を示す図である。
【図９】図９は、図８の処理システムにおいて、監視部、制御回路及び第２のバッファを削除した処理システムを示す図である。
【発明を実施するための形態】
【００１２】
（第１の実施形態）
図１は、第１の実施形態による処理システムの構成例を示す図である。処理システムは、複数のバスマスタ回路１０１ａ〜１０１ｃと、調停回路（バスマトリクス回路）１０２と、バススレーブ回路１０３とを有する。調停回路１０２は、複数のスレーブインターフェース（ＳＩＦ）回路１１１ａ〜１１１ｃと、第１のスイッチ回路１１２と、マスタインターフェース回路１１３と、監視部１１４と、制御回路１１５とを有する。マスタインターフェース回路１１３は、第１のバッファ１１６を有する。バススレーブ回路１０３は、第２のバッファ１２１を有する。
【００１３】
バスマスタ回路１０１ａ〜１０１ｃは、それぞれ、調停回路１０２を介して、バススレーブ回路１０３に、トランザクションを出力可能である。トランザクションは、バススレーブ回路１０３の処理を実行させるための要求（命令）である。バススレーブ回路１０３は、処理回路である。例えば、バススレーブ回路１０３がメモリ回路である場合、トランザクションは、読み出し（リード）要求又は書き込み（ライト）要求等である。
【００１４】
スレーブインターフェース回路１１１ａは、第１のバスマスタ回路１０１ａが出力したトランザクションを入力し、その入力したトランザクションを第１のスイッチ回路１１２に伝達する。スレーブインターフェース回路１１１ｂは、第２のバスマスタ回路１０１ｂが出力したトランザクションを入力し、その入力したトランザクションを第１のスイッチ回路１１２に伝達する。スレーブインターフェース回路１１１ｃは、第３のバスマスタ回路１０１ｃが出力したトランザクションを入力し、その入力したトランザクションを第１のスイッチ回路１１２に伝達する。
【００１５】
第１のスイッチ回路１１２は、複数のスレーブインターフェース回路１１１ａ〜１１１ｃ及びマスタインターフェース回路１１３間に接続され、スレーブインターフェース回路１１１ａ〜１１１ｃから入力したトランザクションを調停してマスタインターフェース回路１１３に出力する。例えば、第１のスイッチ回路１１２は、スレーブインターフェース回路１１１ａ〜１１１ｃから複数のトランザクションを同時に入力した場合には、トランザクションの優先順位が高い方から順番に、トランザクションをシリアルにマスタインターフェース回路１１３に出力する。また、第１のスイッチ回路１１２は、スレーブインターフェース回路１１１ａ〜１１１ｃのいずれかから１個のトランザクションを入力した場合には、その入力したトランザクションをマスタインターフェース回路１１３に出力する。
【００１６】
トランザクションの優先順位は、例えば、そのトランザクションを出力するバスマスタ回路の優先順位である。第１のバスマスタ回路１０１ａ及び第２のバスマスタ回路１０１ｂが出力するトランザクションは、低優先順位のトランザクション（低順位トランザクション）である。第３のバスマスタ回路１０１ｃが出力するトランザクションは、高優先順位のトランザクション（高順位トランザクション）である。第３のバスマスタ回路１０１ｃが出力する高優先順位のトランザクションは、第１のバスマスタ回路１０１ａ及び第２のバスマスタ回路１０１ｂが出力する低優先順位のトランザクションより優先順位が高い。なお、優先順位が２段階の場合を例に説明するが、優先順位は３段階以上でもよい。例えば、第１のスイッチ回路１１２は、スレーブインターフェース回路１１１ａ及び１１１ｃから同時にトランザクションを入力した場合には、先に、スレーブインターフェース回路１１１ｃから入力したトランザクションをマスタインターフェース回路１１３に出力し、その後に、スレーブインターフェース回路１１１ａから入力したトランザクションをマスタインターフェース回路１１３に出力する。
【００１７】
マスタインターフェース回路１１３は、第１のスイッチ回路１１２から出力されたトランザクションをファーストインファーストアウト（ＦＩＦＯ）方式の第１のバッファ１１６に格納し、第１のバッファ１１６に格納された格納済トランザクションをバススレーブ回路１０３に出力する。第１のバッファ１１６は、トランザクションをファーストインファーストアウトでバッファリングする。
【００１８】
監視部１１４は、複数のバスマスタ回路１０１ａ〜１０１ｃのいずれかから出力されたトランザクションが第１のバッファ１１６内のトランザクションのうちのいずれかより優先順位が高い条件を満たすか否かを検出し、条件を満たす場合には制御回路１１５を起動させる。すると、制御回路１１５は、マスタインターフェース回路１１３を制御する。なお、トランザクションは、発行元のバスマスタ回路１０１ａ〜１０１ｃの識別子（ＩＤ）を含むので、監視部１１４は、トランザクションを基に優先順位を認識することができる。
【００１９】
マスタインターフェース回路１１３は、制御回路１１５の制御により、複数のバスマスタ回路１０１ａ〜１０１ｃのいずれかから出力されたトランザクションより優先順位が低い第１のバッファ１１６内のトランザクションのキャンセル要求をバススレーブ回路１０３内の第２のバッファ１２１に対して出力する。
【００２０】
バススレーブ回路１０３は、トランザクションのキャンセル要求を入力すると、そのキャンセル要求のトランザクションが未処理である場合にはキャンセル要求のトランザクションを第２のバッファ１２１から削除し、トランザクションのキャンセル成功を示す信号をマスタインターフェース回路１１３に出力する。マスタインターフェース回路１１３は、キャンセル成功を示す信号を入力した場合には、上記の複数のバスマスタ回路１０１ａ〜１０１ｃのいずれかから出力された優先順位が高いトランザクションをバススレーブ回路１０３に出力し、その後、上記のキャンセルが成功したトランザクションをバススレーブ回路１０３に再び出力する。
【００２１】
また、バススレーブ回路１０３は、トランザクションのキャンセル要求を入力すると、キャンセル要求のトランザクションが処理中である場合にはキャンセル要求のトランザクションの処理が終了した後に、トランザクションの処理終了を示す信号をマスタインターフェース回路１１３に出力する。マスタインターフェース回路１１３は、トランザクションの処理終了を示す信号をバススレーブ回路１０３から入力すると、その処理が終了したトランザクションを第１のバッファ１１６から削除する。
【００２２】
図２〜図６は、図１の処理システムの処理方法の例を示す図である。まず、図２に示すように、第１のバスマスタ回路１０１ａが低優先順位のトランザクションＡ１１を発行する。すると、スレーブインターフェース回路１１１ａは、トランザクションＡ１１を第１のスイッチ回路１１２に伝達する。すると、第１のスイッチ回路１１２は、トランザクションＡ１１をマスタインターフェース回路１１３に出力する。すると、マスタインターフェース回路１１３は、第１のバッファ１１６にトランザクションＡ１１をバッファリングし、そのトランザクションＡ１１をバススレーブ回路１０３に出力する。すると、バススレーブ回路１０３は、第２のバッファ１２１にトランザクションＡ１１をバッファリングする。第２のバッファ１２１は、マスタインターフェース回路１１３から入力したトランザクションをファーストインファーストアウト（ＦＩＦＯ）方式でバッファリングする。
【００２３】
次に、第１のバスマスタ回路１０１ａが低優先順位のトランザクションＡ２１を発行する。すると、スレーブインターフェース回路１１１ａは、トランザクションＡ２１を第１のスイッチ回路１１２に伝達する。すると、第１のスイッチ回路１１２は、トランザクションＡ２１をマスタインターフェース回路１１３に出力する。すると、マスタインターフェース回路１１３は、第１のバッファ１１６にトランザクションＡ２１をバッファリングし、そのトランザクションＡ２１をバススレーブ回路１０３に出力する。すると、バススレーブ回路１０３は、第２のバッファ１２１にトランザクションＡ２１をバッファリングする。
【００２４】
次に、第２のバスマスタ回路１０１ｂが低優先順位のトランザクションＢ３１を発行する。すると、スレーブインターフェース回路１１１ｂは、トランザクションＢ３１を第１のスイッチ回路１１２に伝達する。すると、第１のスイッチ回路１１２は、トランザクションＢ３１をマスタインターフェース回路１１３に出力する。すると、マスタインターフェース回路１１３は、第１のバッファ１１６にトランザクションＢ３１をバッファリングし、そのトランザクションＢ３１をバススレーブ回路１０３に出力する。すると、バススレーブ回路１０３は、第２のバッファ１２１にトランザクションＢ３１をバッファリングする。
【００２５】
ここで、第２のバッファ１２１を設ける利点を説明する。第２のバッファ１２１がない場合、まず、マスタインターフェース回路１１３は、トランザクションＡ１１のみをスレーブ回路１０３に出力する。バススレーブ回路１０３は、リード要求のトランザクションＡ１１を入力すると、それに対応する読み出しを行い、読み出したデータと共に処理完了信号をマスタインターフェース回路１１３に出力する。その後、マスタインターフェース回路１１３は、次のトランザクションＡ２１をスレーブ回路１０３に出力する。バススレーブ回路１０３は、リード要求のトランザクションＡ２１を入力すると、それに対応する読み出しを行い、読み出したデータと共に処理完了信号をマスタインターフェース回路１１３に出力する。その後、マスタインターフェース回路１１３は、次のトランザクションＢ３１をスレーブ回路１０３に出力する。バススレーブ回路１０３は、リード要求のトランザクションＢ３１を入力すると、それに対応する読み出しを行い、読み出したデータと共に処理完了信号をマスタインターフェース回路１１３に出力する。
【００２６】
これに対し、第２のバッファ１２１を設ける場合には、マスタインターフェース回路１１３は、バススレーブ回路１０２のトランザクションの処理完了を待たずに、次のトランザクションをバススレーブ回路１０３に出力することができるので、バス１０４の使用効率を向上させることができる利点がある。
【００２７】
なお、図２の状態では、バススレーブ回路１０３は、トランザクションＡ１１，Ａ２１，Ｂ３１の処理を未だ完了していないものとして説明する。
【００２８】
次に、第３のバスマスタ回路１０１ｃが高優先順位のトランザクションＣ４１を発行する。すると、監視部１１４は、第３のバスマスタ回路１０１ｃから入力したトランザクションＣ４１が第１のバッファ１１６内のトランザクションＡ１１，Ａ２１，Ｂ３１より優先順位が高い条件を満たすことを検出し、制御回路１１５を起動させる。すると、制御回路１１５は、マスタインターフェース回路１１３を制御する。
【００２９】
次に、図３に示すように、マスタインターフェース回路１１３は、制御回路１１５の制御により、第３のバスマスタ回路１０１ｃから出力されたトランザクションＣ４１より優先順位が低い第１のバッファ１１６内のトランザクションＡ１１，Ａ２１，Ｂ３１のキャンセル要求をバススレーブ回路１０３に対して出力する。
【００３０】
次に、上記のキャンセル要求の例を説明する。バス１０４は、調停回路１０２及びバススレーブ回路１０３間に接続される。バス１０４の仕様は、限定されないが、ＡＸＩ仕様の例を説明する。その場合、リードアドレスチャンネル内にＡＲＣＡＮＣＥＬ信号を追加し、ライトアドレスチャンネル内にＡＷＣＡＮＣＥＬ信号を追加する。発行済みのリード要求のトランザクションＡ１１，Ａ２１，Ｂ３１をキャンセル要求する場合には、それぞれ、トランザクションＡ１１，Ａ２１，Ｂ３１に対応するリードアドレスチャンネル内のＡＲＣＡＮＣＥＬ信号を「１」にする。また、発行済みのライト要求のトランザクションＡ１１，Ａ２１，Ｂ３１をキャンセル要求する場合には、それぞれ、トランザクションＡ１１，Ａ２１，Ｂ３１に対応するライトアドレスチャンネル内のＡＷＣＡＮＣＥＬ信号を「１」にする。なお、リード要求のトランザクションを発行する場合には、リードアドレスチャンネル内のＡＲＣＡＮＣＥＬ信号を「０」にする。また、ライト要求のトランザクションを発行する場合には、ライトアドレスチャンネル内のＡＷＣＡＮＣＥＬ信号を「０」にする。
【００３１】
次に、図４に示すように、バススレーブ回路１０３は、トランザクションＡ１１，Ａ２１，Ｂ３１のキャンセル要求を入力し、トランザクションＡ１１が処理中であるのでトランザクションＡ１１のキャンセルを行わず、トランザクションＡ２１及びＢ３１が未処理であるのでトランザクションＡ２１及びＢ３１を第２のバッファ１２１から削除（キャンセル）する。なお、トランザクションＡ２１及びＢ３１を第２のバッファ１２１から削除せずに、その上に上書きしてもよい。次に、バススレーブ回路１０３は、トランザクションＡ２１及びＢ３１のキャンセル成功を示す信号をマスタインターフェース回路１１３に出力する。また、バススレーブ回路１０３は、処理中のトランザクションＡ１１の処理が終了した後に、トランザクションＡ１１を第２のバッファ１２１から削除し、トランザクションＡ１１の処理終了（完了）を示す信号をマスタインターフェース回路１１３に出力する。なお、トランザクションＡ１１を第２のバッファ１２１から削除せずに、その上に上書きしてもよい。
【００３２】
次に、上記のキャンセル成功を示す信号及び処理完了を示す信号の例を説明する。バス１０４がＡＸＩ仕様の場合、リードデータチャンネル内のＲＲＥＳＰ信号を２ビットから３ビットに拡張し、ライトレスポンスチャンネル内のＢＲＥＳＰ信号を２ビットから３ビットに拡張する。リード要求のトランザクションＡ２１及びＢ３１のキャンセルが成功した場合には、リードデータチャンネル内のＲＲＥＳＰ信号を「１００」にすることにより、キャンセル成功を示す信号をマスタインターフェース回路１１３に伝えることができる。また、ライト要求のトランザクションＡ２１及びＢ３１のキャンセルが成功した場合には、ライトレスポンスチャンネル内のＢＲＥＳＰ信号を「１００」にすることにより、キャンセル成功を示す信号をマスタインターフェース回路１１３に伝えることができる。
【００３３】
なお、ＲＲＥＳＰ信号及びＢＲＥＳＰ信号は、「０００」がリード要求又はライト要求の成功（ＯＫＡＹ）を示し、「００１」が排他リード要求又は排他ライト要求の成功（ＥＸＯＫＡＹ）を示し、「０１０」がバススレーブ回路１０３のエラー（ＳＬＶＥＲＲ）を示し、「０１１」がアクセス不可のアドレスを使用した場合のデコードエラー（ＤＥＣＥＲＲ）を示す。
【００３４】
マスタインターフェース回路１１３は、トランザクションＡ１１の処理終了を示す信号をバススレーブ回路１０３から入力すると、その処理が終了したトランザクションＡ１１を第１のバッファ１１６から削除し、第１のスイッチ回路１１２及びスレーブインターフェース回路１１１ａを介して、トランザクションＡ１１の処理終了を示す信号を第１のバスマスタ回路１０１ａに出力する。なお、トランザクションＡ１１がリード要求の場合には、バススレーブ回路１０３は、トランザクションＡ１１に対応するアドレスのデータをメモリから読み出し、読み出したデータを処理終了信号と共に、マスタインターフェース回路１１３、第１のスイッチ回路１１２及びスレーブインターフェース回路１１１ａを介して、第１のバスマスタ回路１０１ａに出力する。
【００３５】
図５に示すように、スレーブインターフェース回路１１１ｃは、第１のバスマスタ回路１０１ｃから高優先順位のトランザクションＣ４１を入力し、第１のスイッチ回路１１２を介して、マスタインターフェース回路１１３にトランザクションＣ４１を出力する。マスタインターフェース回路１１３は、トランザクションＡ２１及びＢ３１のキャンセル成功を示す信号をバススレーブ回路１０３から入力した場合には、第１のバッファ１１６に対して、第３のバスマスタ回路１０１ｃから出力された優先順位が高いトランザクションＣ４１をトランザクションＡ２１及びＢ３１の前にバッファリングし、トランザクションＣ４１をバススレーブ回路１０３に出力する。すると、バススレーブ回路１０３は、入力したトランザクションＣ４１を第２のバッファ１２１にバッファリングする。
【００３６】
次に、図６に示すように、マスタインターフェース回路１１３は、上記のキャンセルが成功したトランザクションＡ２１及びＢ３１をバススレーブ回路１０３に順次、再発行する。すると、バススレーブ回路１０３は、入力したトランザクションＡ２１及びＢ３１を第２のバッファ１２１に順次、バッファリングする。そして、バススレーブ回路１０３は、まず、高優先順位のトランザクションＣ４１の処理を行い、次に、低優先順位のトランザクションＡ２１の処理を行い、次に、低優先順位のトランザクションＢ３１の処理を行う。これにより、高優先順位のトランザクションＣ４１を、先に発行された低優先順位のトランザクションＡ２１及びＢ３１より優先して実行させることができる。
【００３７】
図７は、図１の処理システムにおいて、監視部１１４、制御部１１５及び第１のバッファ１１６がない場合の動作を説明するための図である。まず、第１のバスマスタ回路１０１ａは、低優先順位のトランザクションＡ１１を発行する。すると、トランザクションＡ１１は、スレーブインターフェース回路１１１ａ、第１のスイッチ回路１１２及びマスタインターフェース回路１１３を介して、バススレーブ回路１０３内の第２のバッファ１２１にバッファリングされる。
【００３８】
次に、第１のバスマスタ回路１０１ａは、低優先順位のトランザクションＡ２１を発行する。すると、トランザクションＡ２１は、スレーブインターフェース回路１１１ａ、第１のスイッチ回路１１２及びマスタインターフェース回路１１３を介して、バススレーブ回路１０３内の第２のバッファ１２１にバッファリングされる。
【００３９】
次に、第２のバスマスタ回路１０１ｂは、低優先順位のトランザクションＢ３１を発行する。すると、トランザクションＢ３１は、スレーブインターフェース回路１１１ｂ、第１のスイッチ回路１１２及びマスタインターフェース回路１１３を介して、バススレーブ回路１０３内の第２のバッファ１２１にバッファリングされる。
【００４０】
次に、第３のバスマスタ回路１０１ｃは、高優先順位のトランザクションＣ４１を発行する。すると、トランザクションＣ４１は、スレーブインターフェース回路１１１ｃ、第１のスイッチ回路１１２及びマスタインターフェース回路１１３を介して、バススレーブ回路１０３内の第２のバッファ１２１にバッファリングされる。
【００４１】
バススレーブ回路１０３は、低優先順位のトランザクションＡ１１，Ａ２１，Ｂ３１の処理が終了した後に、高優先順位のトランザクションＣ４１の処理を実行する。高優先順位のトランザクションＣ４１の処理は、低優先順位のトランザクションＡ１１，Ａ２１，Ｂ３１の処理が終了するまで待たされる。この場合、高優先順位のトランザクションＣ４１がすぐに実行されず、優先順位が無意味になってしまう。
【００４２】
これに対し、図１〜図６の処理システムでは、高優先順位のトランザクションＣ４１の前に発行されたトランザクションＡ２１及びＢ３１をキャンセルすることができるので、高優先順位のトランザクションＣ４１を、先に発行された低優先順位のトランザクションＡ２１及びＢ３１より優先して実行させることができる。また、低優先順位のトランザクションＡ２１及びＢ３１をキャンセルすることにより、高優先順位のトランザクションＣ４１を即座に実行することができる。
【００４３】
ここで、バススレーブ回路１０３が、４個のトランザクションをバッファリング可能な第２のバッファ１２１を有するＤＤＲ（Double-Data-Rate）メモリ回路である例を説明する。例えば、バススレーブ回路１０３は、１個のトランザクションに対して、データサイズが１２８ビットであり、バースト長が４であるデータのインクリメント転送を１５０サイクルで行うことができる。図７の処理システムでは、高優先順位のトランザクションは、最大で、第２のバッファ１２１内の４個の低優先順位のトランザクションの処理のための１５０×４＝６００サイクルを待ってから、処理が開始される。
【００４４】
これに対し、図１〜図６の処理システムでは、１個のトランザクションのキャンセル動作に要するサイクル数が例えば１５サイクルとすると、第２のバッファ１２１内の４個の低優先順位のトランザクションのキャンセル動作のための１５×４＝６０サイクルを待ってから、高優先順位のトランザクションの処理を開始することができる。図１〜図６の処理システムは、図７の処理システムに比べて、高優先順位のトランザクションを即座に実行することができる。
【００４５】
なお、マスタインターフェース回路１１３内の第１のバッファ１１６とバススレーブ回路１０３内の第２のバッファ１２１は常に同期していてもよい。また、バススレーブ回路１０３内の第２のバッファ１２１は、処理中のトランザクションを保持していてもよいし、未処理のトランザクションのみを保持するようにしてもよい。
【００４６】
（第２の実施形態）
図８は、第２の実施形態による処理システムの構成例を示す図である。本実施形態（図８）は、第１の実施形態（図１）に対して、スレーブ回路１０３が異なる。以下、本実施形態が第１の実施形態と異なる点を説明する。バススレーブ回路１０３は、バスブリッジ回路８０１と、複数のスレーブ１０３ａ，１０３ｂとを有する。バスブリッジ回路８０１は、スレーブインターフェース回路８０２と、第２のスイッチ回路８０４と、マスタインターフェース回路８０５ａ，８０５ｂとを有し、複数のスレーブ１０３ａ，１０３ｂ及びマスタインターフェース回路１１３の間に接続される。スレーブインターフェース回路８０２は、第２のバッファ８０３を有する。第２のバッファ８０３は、図１の第２のバッファ１２１に対応する。第１の実施形態と同様に、マスタインターフェース回路１１３は、第２のバッファ８０３に対して、高優先順位のトランザクションの前に発行された低優先順位のトランザクションのキャンセル要求を出力することができる。
【００４７】
スレーブインターフェース回路８０２は、第１の実施形態のバススレーブ回路１０３と同様に、第２のバッファ８０３の制御及びマスタインターフェース回路１１３に対する入出力処理を行う。第２のバッファ８０３は、ファーストインファーストアウト方式で第２のスイッチ回路８０４に、バッファリングしているトランザクションを出力する。第２のスイッチ回路８０４は、スレーブインターフェース回路８０２及び複数のマスタインターフェース回路８０５ａ，８０５ｂ間に接続され、スレーブインターフェース回路８０２から入力したトランザクションに対して、高速バススレーブ（第１のバススレーブ）１０３ａのトランザクションをマスタインターフェース回路８０５ａに出力し、低速バススレーブ（第２のバススレーブ）１０３ｂのトランザクションをマスタインターフェース回路８０５ｂに出力する。
【００４８】
バススレーブ１０３ａ及び１０３ｂがメモリ回路の場合、トランザクションは、リードアドレスを含むリード要求又はライトアドレスを含むライト要求である。高速バススレーブ１０３ａのアドレス範囲と低速バススレーブ１０３ｂのアドレス範囲は異なる。したがって、第２のスイッチ回路８０４は、トランザクション内のリードアドレス又はライトアドレスを基に、そのトランザクションが高速バススレーブ１０３ａのトランザクション及び低速バススレーブ１０３ｂのトランザクションのいずれであるのかを判断することができる。
【００４９】
マスタインターフェース回路８０５ａは、第２のスイッチ回路８０４から入力したトランザクションを高速バススレーブ１０３ａに伝達する。マスタインターフェース回路８０５ｂは、第２のスイッチ回路８０４から入力したトランザクションを低速バススレーブ１０３ｂに伝達する。高速バススレーブ１０３ａは、例えば高速メモリ回路であり、入力したトランザクションの処理を行う。低速バススレーブ１０３ｂは、例えば低速メモリ回路であり、入力したトランザクションの処理を行う。第２のバッファ８０３をスレーブインターフェース回路８０２内に設けることにより、高速バススレーブ１０３ａ及び低速バススレーブ１０３ｂ内にバッファを設ける必要がない。
【００５０】
次に、第２のバッファ８０３を設ける利点を説明する。例えば、まず、第３のバスマスタ回路１０１ｃが高優先順位のトランザクションＡ１を発行する。トランザクションＡ１は、第１の実施形態と同様に、調停回路１０２を介して、第２のバッファ８０３にバッファリングされる。次に、第１のバスマスタ回路１０１ａが低優先順位のトランザクションＢ２を発行する。トランザクションＢ２は、第１の実施形態と同様に、調停回路１０２を介して、第２のバッファ８０３にバッファリングされる。低優先順位のトランザクションＢ２は、先に発行された高優先順位のトランザクションＡ１より優先順位が低いので、マスタインターフェース回路１１３は、第２のバッファ１１６に対して、キャンセル要求を出力しない。まず、第２のスイッチ回路８０４は、トランザクションＡ１を、マスタインターフェース回路８０５ｂを介して低速バススレーブ１０３ｂに出力する。次に、第２のスイッチ回路８０４は、トランザクションＢ２を、マスタインターフェース回路８０５ａを介して高速バススレーブ１０３ａに出力する。低速バススレーブ１０３ｂは、入力したトランザクションＡ１の処理を行う。高速バススレーブ１０３ａは、入力したトランザクションＢ２の処理を行う。高速バススレーブ１０３ａの処理は高速であり、低速バススレーブ１０３ｂの処理は低速である。そのため、まず、高速バススレーブ１０３ａの処理が終了し、高速バススレーブ１０３ａはトランザクションＢ２の終了信号（レスポンス）ＤＢ２を出力する。終了信号ＤＢ２は、バスブリッジ回路８０１及び調停回路１０２を介して、第１のバスマスタ回路１０１ａに出力される。次に、低速バススレーブ１０３ｂの処理が終了し、低速バススレーブ１０３ｂはトランザクションＡ１の終了信号（レスポンス）ＤＡ１を出力する。終了信号ＤＡ１は、バスブリッジ回路８０１及び調停回路１０２を介して、第３のバスマスタ回路１０１ｃに出力される。
【００５１】
以上のように、マスタインターフェース回路１１３は、まず、トランザクションＡ１を出力し、次に、トランザクションＢ２を出力し、次に、トランザクションＢ２の終了信号ＤＢ２を入力し、次に、トランザクションＡ１の終了信号ＤＡ１を入力する。これにより、マスタインターフェース回路１１３は、トランザクションＡ１の終了信号ＤＡ１を待たずに、次のトランザクションＢ２を発行することができる。
【００５２】
図９は、図８の処理システムにおいて、監視部１１４、制御回路１１５及び第２のバッファ８０３を削除した処理システムを示す図である。図９の処理システムは、図８の処理システムに対して、第２のバッファ８０３を有するスレーブインターフェース回路８０２の代わりに、バッファを有しないスレーブインターフェース回路９０３を設けている。また、バッファ９０１は、第１のスイッチ回路１１２及びマスタインターフェース回路９０２間に接続される。マスタインターフェース回路９０２は、図８の第１のバッファ１１６を有しない。
【００５３】
次に、図９の処理システムの動作例を説明する。例えば、まず、第３のバスマスタ回路１０１ｃが高優先順位のトランザクションＡ１を発行する。トランザクションＡ１は、スレーブインターフェース回路１１１ｃ及び第１のスイッチ回路１１２を介して、バッファ９０１にバッファリングされる。次に、第１のバスマスタ回路１０１ａが低優先順位のトランザクションＢ２を発行する。トランザクションＢ２は、スレーブインターフェース回路１１１ａ及び第１のスイッチ回路１１２を介して、バッファ９０１にバッファリングされる。マスタインターフェース回路９０２は、バッファ９０１内のトランザクションＡ１を、バスブリッジ回路８０１を介して、低速バススレーブ１０３ｂに出力する。低速バススレーブ１０３ｂは、入力したトランザクションＡ１の処理を行う。低速バススレーブ１０３ｂの処理速度は低速であるため、低速バススレーブ１０３ｂの処理時間は長い。低速バススレーブ１０３ｂは、トランザクションＡ１の処理が終了すると、トランザクションＡ１の終了信号ＤＡ１を出力する。終了信号ＤＡ１は、バスブリッジ回路８０１及び調停回路１０２を介して、第３のバスマスタ回路１０１ｃに出力される。マスタインターフェース回路１１３は、終了信号ＤＡ１を入力すると、バッファ９０１内の次のトランザクションＢ２をバスブリッジ回路８０１を介して、高速バススレーブ１０３ａに出力する。高速バススレーブ１０３ａは、入力したトランザクションＢ２の処理を行う。高速バススレーブ１０３ａの処理速度は高速であるため、高速バススレーブ１０３ａの処理時間は短い。高速バススレーブ１０３ａは、トランザクションＢ２の処理が終了すると、トランザクションＢ２の終了信号ＤＢ２を出力する。終了信号ＤＢ２は、バスブリッジ回路８０１及び調停回路１０２を介して、第１のバスマスタ回路１０１ａに出力される。
【００５４】
以上のように、マスタインターフェース回路９０２は、まず、トランザクションＡ１を出力し、次に、トランザクションＡ１の終了信号ＤＡ１を入力し、次に、トランザクションＢ２を出力し、次に、トランザクションＢ２の終了信号ＤＢ２を入力する。この場合、低速バススレーブ１０３ｂのトランザクションＡ１の処理終了を待ってから、高速バススレーブ１０３ａはトランザクションＢ２の処理を開始する。そのため、トランザクションＢ２の処理の開始及び終了が遅くなってしまう。
【００５５】
これに対し、図８の処理システムでは、上記のように、マスタインターフェース回路１１３は、まず、トランザクションＡ１を出力し、次に、トランザクションＢ２を出力し、次に、トランザクションＢ２の終了信号ＤＢ２を入力し、次に、トランザクションＡ１の終了信号ＤＡ１を入力する。これにより、高速バススレーブ１０３ａは、低速バススレーブ１０３ｂのトランザクションＡ１の終了信号ＤＡ１を待たずに、トランザクションＢ２の処理を開始することができる。これにより、トランザクションＢ２の処理の開始及び終了を早くし、処理システムのパフォーマンスを向上させることができる。
【００５６】
なお、トランザクションの優先順位は、そのトランザクションを出力するバスマスタ回路１０１ａ〜１０１ｃの優先順位である例を説明したが、これに限定されない。トランザクションの優先順位は、そのトランザクションの出力先であるバススレーブ１０３ａ，１０３ｂの優先順位でもよい。例えば、高速バススレーブ１０３ａが出力先であるトランザクションの優先順位を高優先順位にし、低速バススレーブ１０３ｂが出力先であるトランザクションの優先順位を低優先順位にすることができる。また、３個以上のバススレーブを第２のスイッチ回路８０４に接続する場合には、３個以上のバススレーブに３段階以上の優先順位を付与することができる。その場合、マスタインターフェース回路１１３は、上記と同様に、トランザクション内のリードアドレス又はライトアドレスを基に、トランザクションの優先順位を判断することができる。また、トランザクションの優先順位の情報は、バスマスタ回路１０１ａ〜１０１ｃ及びバススレーブ１０３ａ，１０３ｂの優先順位とは関係なく、トランザクション内に付与してもよい。
【００５７】
上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００５８】
１０１ａ  第１のバスマスタ回路
１０１ｂ  第２のバスマスタ回路
１０１ｃ  第３のバスマスタ回路
１０２  調停回路
１０３  バススレーブ回路
１０４  バス
１１１ａ〜１１１ｃ  スレーブインターフェース回路
１１２  第１のスイッチ回路
１１３  マスタインターフェース回路
１１４  監視部
１１５  制御回路
１１６  第１のバッファ
１２１  第２のバッファ
【図１】
2015153012.tif 000003
【図２】
2015153012.tif 000004
【図３】
2015153012.tif 000005
【図４】
2015153012.tif 000006
【図５】
2015153012.tif 000007
【図６】
2015153012.tif 000008
【図７】
2015153012.tif 000009
【図８】
2015153012.tif 000010
【図９】
2015153012.tif 000011