(57)【要約】【課題】バスブリッジ装置において、割り込み通知をパケットで行うバスに接続される第２のデバイスから汎用バスを介して第１のデバイスへ最後のデータ転送を行った時に、データ転送と、データ転送完了後に第１のデバイスから第２のデバイスに対して行なうステータスリードとの整合性を保障し、汎用バスの使用効率の低下を抑止する。【解決手段】汎用の第１のバス１と、受信バッファを有し、割り込みをパケットで通知する第２のバス７との間に接続されるバスブリッジ３であって、第２のバスから受信するリードレスポンスとリクエストを独立に処理する、または、受信順に処理するように切替制御する制御部３０を有し、制御部３０は、第２のバスから転送される割り込み信号アサートパケットの受信認識から割り込み信号ディアサートパケットの受信認識までの期間を、リードレスポンスとリクエストを受信順に処理するように受信データの読み出し順序を制御する。【選択図】    図１
2010128696.tif 000002
【特許請求の範囲】
【請求項１】
汎用の第１のバスと、受信バッファを有し、割り込みをパケットで通知する第２のバスとの間に接続されるバスブリッジ装置であって、前記第２のバスから受信するリードレスポンスとリクエストを独立に処理する機能と受信順に処理する機能とを切替えるように制御する制御手段を有し、前記制御手段は、前記第２のバスから転送される割り込み信号アサートパケットを受信認識してから割り込み信号ディアサートパケットを受信認識するまでの期間を、前記第２のバスから受信するリードレスポンスとリクエストを受信順に処理するように受信データの読み出し順序を制御する機能を有することを特徴とするバスブリッジ装置。
【請求項２】
前記制御手段は、前記割り込み信号アサートパケットを受信認識した後、直ぐに前記リードレスポンスとリクエストを受信順に処理するように制御する機能を有することを特徴とする請求項１に記載のバスブリッジ装置。
【請求項３】
前記制御手段は、前記割り込み信号ディアサートパケットを受信認識し、割り込み信号ディアサートパケットを前記第１のバスに通知した後、前記第２のバスから受信するリードレスポンスとリクエストを独立に処理するように制御する機能を有することを特徴とする請求項１に記載のバスブリッジ装置。
【請求項４】
汎用の第１のバスと、受信バッファを有し、割り込みをパケットで通知する第２のバスと、前記第１のバスに接続された第１のデバイスと、前記第２のバスに接続され、複数のダイレクトメモリアクセスコントローラを持つ第２のデバイスと、前記第１のバスと第２のバスとの間に接続され、前記第２のバスから転送される割り込み信号アサートパケットを受信認識してから割り込み信号ディアサートパケットを受信認識するまでの期間を、前記第２のバスから受信するリードレスポンスとリクエストを受信順に処理する機能を有するバスブリッジ装置とを具備することを特徴とするバスブリッジシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスブリッジ装置およびそれを用いたバスブリッジシステムに係り、特に汎用バスと、受信バッファを必要とし、割り込みをパケットで通知するバスとの間に接続されるバスブリッジにおけるリードレスポンスとリクエストに対する処理を制御する装置に関するもので、例えばPCI Expressを利用するシステムに使用されるものである。
【背景技術】
【０００２】
例えばPCI Expressを利用するシステムにおいて、第１のデバイスに接続される汎用の第１のバスと第２のデバイスに接続される第２のバスとの間にバスブリッジが接続される。この場合、バスブリッジは、第２のバスから転送されるリードレスポンス、ライト／リードリクエストをそれぞれ受信する２つの受信バッファを内蔵し、第２のバスが、受信バッファを必要とし、割り込みをパケットで通知するバスであり、第２のデバイスが複数の割り込み要因（例えばダイレクトメモリアクセス;DMA）を有するものがある。
【０００３】
この種のバスブリッジにおいて、バスブリッジは、リードレスポンス受信バッファ、ライト／リードリクエスト受信バッファを独立に動作させることにより、リードレスポンスおよびライト／リードリクエストを第１のバス側へ通知する処理を互いに影響を受けずに行うことができる。しかし、第２のデバイスにおいて複数のDMAコントローラ（以下、DMACと称する）が同時に動作している場合は、次のような問題が発生する。
【０００４】
すなわち、第２のデバイスから第１のデバイスに対してDMA完了を通知する割り込み信号アサートパケットに対して、第１のデバイスから第２のデバイスに対して割り込み要因を確認するために行われる割り込みステータスリードのレスポンス受信と、第２のデバイスから発行される割り込み完了状態との整合性を保てない場合が存在する。以下、具体的に説明する。
【０００５】
第１のデバイスから第２のデバイスに対して発行された割り込みステータスレジスタのリードの直前に、第２のデバイス内の複数のDMACの動作が完了し、最後のDMA転送が行われる場合に着目する。この場合、バスブリッジでは、最後のDMAライトリクエストをライト／リードリクエスト受信バッファに格納し、割り込みステータスリードに対するレスポンスをリードレスポンス受信バッファに格納する。
【０００６】
この際、第１のデバイス内でライト／リードリクエストが入力するTarget部がビジー状態であって、バスブリッジから第１のデバイスへ最後のDMAライトリクエストを発行できないと、割り込みステータスリードに対するレスポンスが最後のDMAライトパケットを追い越して第１のデバイス側へ伝えられる場合が存在する。この際、第１のデバイスでは割り込みステータスリードに対するレスポンス情報から複数のDMACの両方が完了したと認識する。しかし、最後のDMAライトパケットはバスブリッジ内のリクエスト受信用受信バッファ内に留まっているので、第１のデバイス側では割り込み完了の認識と実際のデータ転送との整合性が保てなくなる。
【０００７】
なお、特許文献１には、バスアービタを内部に持つバスブリッジにおいて、バスアービトレーションを効率よく行うことにより、高速なデータ転送を可能にする技術が開示されている。
【特許文献１】特開平１１−３３８８１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は前記した従来の問題点を解決すべくなされたもので、割り込み通知をパケットで行うバスに接続される第２のデバイスから汎用バスを介して第１のデバイスへ最後のデータ転送を行った時に、データ転送と、データ転送完了後に第１のデバイスから第２のデバイスに対して行なうステータスリードとの整合性を保障でき、しかも汎用バスの使用効率の低下を抑止し得るバスブリッジ装置およびそれを用いたバスブリッジシステムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明のバスブリッジ装置は、汎用の第１のバスと、受信バッファを有し、割り込みをパケットで通知する第２のバスとの間に接続されるバスブリッジ装置であって、前記第２のバスから受信するリードレスポンスとリクエストを独立に処理する機能と受信順に処理する機能とを切替えるように制御する制御手段を有し、前記制御手段は、前記第２のバスから転送される割り込み信号アサートパケットを受信認識してから割り込み信号ディアサートパケットを受信認識するまでの期間を、前記第２のバスから受信するリードレスポンスとリクエストを受信順に処理するように受信データの読み出し順序を制御する機能を有することを特徴とする。
【００１０】
本発明のバスブリッジシステムは、汎用の第１のバスと、受信バッファを有し、割り込みをパケットで通知する第２のバスと、前記第１のバスに接続された第１のデバイスと、前記第２のバスに接続され、複数のダイレクトメモリアクセスコントローラを持つ第２のデバイスと、前記第１のバスと第２のバスとの間に接続され、前記第２のバスから転送される割り込み信号アサートパケットの受信認識から割り込み信号ディアサートパケットを受信認識するまでの期間を、前記第２のバスから受信するリードレスポンスとリクエストを受信順に処理する機能を有するバスブリッジ装置とを具備することを特徴とする。
【発明の効果】
【００１１】
本発明のバスブリッジ装置によれば、割り込み通知をパケットで行うバスに接続される第２のデバイスから汎用バスを介して第１のデバイスへデータ転送を行う際、第２のデバイスで複数の割り込み要因が同時に発生した場合でも、割り込み信号アサートパケットのデータ転送と、当該データ転送の完了後に第１のデバイスから第２のデバイスに対して行なう割り込みステータスリードのレスポンス処理との整合性を、汎用バスの使用効率の低下を抑止しつつ保障することができる。
【００１２】
本発明のバスブリッジシステムによれば、割り込み通知をパケットで行うバスに接続される第２のデバイスから汎用バスを介して第１のデバイスへデータ転送を行う際、第２のデバイスで複数のダイレクトメモリアクセスコントローラが同時に動作した場合でも、割り込み信号アサートパケットのデータ転送と、当該データ転送の完了後に第１のデバイスから第２のデバイスに対して行なう割り込みステータスリードのレスポンス処理との整合性を、汎用バスの使用効率の低下を抑止しつつ保障することができる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照して本発明の実施形態を説明する。この説明に際して、全図にわたり共通する部分には共通する参照符号を付す。
【００１４】
＜第１の実施形態＞
図１は、本発明のバスブリッジ装置およびそれを用いたバスブリッジシステムの第１の実施形態として例えばPCI Expressを利用するシステムに使用される場合を示すブロック図である。１は第１のデバイス(System1)、２は第１のバス、３はバスブリッジ、６は第２のバス、７は第２のデバイス(System2)である。本例では、第２のバス６はPCI Expressバスであり、バスブリッジ３はPCI Expressバスブリッジであり、第２のデバイス７はEnd Pointデバイス（EPデバイス）である。
【００１５】
第１のバス２は、AMBA、OCP等の汎用バスであり、第１のデバイス１のTarget部およびInitiator部とバスブリッジ３のTarget部およびInitiator部との間に接続されている。
【００１６】
第２のバス６は、受信バッファを必要とし、割り込みをパケット（Assert INT Message／De-Assert INT Message）で通知するFlow Control制御を必要とするバスである。この第２のバス６におけるパケットによる割り込みとレベルによる割り込みの関係を図２に示す。ここで、割り込み信号のアサート(Assert)を示す「割り込み信号アサートパケット」を受信してから割り込み信号のディアサート(De-Assert)を示す「割り込み信号ディアサートパケット」を受信するまでの期間が、レベルによる割り込み信号のアサートと等価である。
【００１７】
第２のデバイス７は、割り込み要因を複数持つものであり、複数のDMAC、割り込みステータスレジスタ（本例ではDMAステータスレジスタ１０）、メモリ(MEM)１１、CPU１２を有する。本例では、複数のDMACとして、第１のDMAC(DMAC1)８と第２のDMAC(DMAC2)９を示している。
【００１８】
バスブリッジ３は、第１のデバイス１が発行するリードリクエストに対するレスポンス（Completion）を受信するリードレスポンス用の受信バッファ(Receive Buffer)４と、第２のデバイス７が発行するライト／リードリクエスト（Request）を受信するリクエスト用の受信バッファ５を有する。
【００１９】
本実施形態では、バスブリッジ３は、さらに、制御部３０を有する。この制御部３０は、第２のバス６から受信するリードレスポンスとリクエストを独立に処理する機能と受信順に処理する機能とを切替えるように制御するものであり、リードレスポンス、リクエストを受信認識し、受信バッファ４、５に対する処理を以下の（１）、（２）のように切り替え制御する。
【００２０】
（１）「割り込み信号アサートパケット」を受信してから「割り込み信号ディアサートパケット」を受信するまでの期間は、“第１のデバイス１から第２のデバイス７へ発行したリードリクエストに対するレスポンス”と“第２のデバイス７が発行するリクエスト”に対してバスブリッジ３が受信する順番通りに処理する。
【００２１】
（２）上記以外の期間は、“第１のデバイス１から第２のデバイス７へ発行したリードリクエストに対するレスポンス”と“第２のデバイス７が発行するリクエスト”に対して独立に処理する。
【００２２】
上記したように本実施形態においては、バスブリッジ３内に付加された制御部３０の制御機能により、第２のデバイス７が発行している複数のDMAライト転送の完了時における割り込み完了状態と割り込みステータスリードに対するレスポンスとの整合性を、バス１の使用効率の低下を抑えつつ保障することが可能となる。
【００２３】
以下、図１のバスブリッジシステムの全体の動作例について詳細に説明する。図３は、図１のバスブリッジシステムにおいて本発明により解決される事象を示す。
【００２４】
バスブリッジ３は、EPデバイス７から発行された「割り込み信号アサートパケット」を受信するまで、“第１のデバイス１から第２のデバイス７へ発行したリードリクエストに対するレスポンスの処理（受信バッファ４からの読み出し制御）”と、“第２のデバイス７が発行するリクエストに対する処理（受信バッファ５からの読み出し制御）”とを、独立に処理する。この独立処理時には、２つの受信バッファ４、５を独立に動作させるので、一方の受信バッファに対して第１のバス１側がビジー(Busy)状態になっても他方の受信バッファは影響を受けず、リードレスポンスおよびリクエストを互いに影響を受けずに第１のデバイス１へ通知することができる。
【００２５】
ここで、EPデバイス７から２つのDMAC1、DMAC2によるDMAライトが同時に動作している場合の処理概要を示す。EPデバイス７において、DMAC1によるDMAライトが完了すると、EPデバイス７から第１のデバイス１に対して「割り込み信号アサートパケット」が発行される。この時、割り込み要因“DMAC１完了ステータス”がEPデバイス７内の割り込みステータスレジスタ１０にセットされる。
【００２６】
また、この時、バスブリッジ３は、「割り込み信号アサートパケット」を認識した後、リードレスポンスおよびリクエストを受信の順番通りに処理（順次処理）するように、受信バッファ４、５からのリードレスポンスおよびリクエストの読み出し制御の方法を切り替える。そして、第１のデバイス１に対して、「割り込み信号アサートパケット」受信を通知する。この順次処理時には、PCI Expressバス６からパケットが入力した順番で第１のバス２へパケットを出力させるように動作し、見掛け上、２つの受信バッファ４、５のうちの１つの受信バッファしか存在しない。
【００２７】
第１のデバイス１は、割り込み要因を確認するために、割り込みステータスリード（EPデバイス７のDMAステータスレジスタ１０のリード）を行う。この際、図３中の（１)に示すように第１のデバイス１からEPデバイス７に対して発行された割り込みステータスリードの直前にEPデバイス７内のDMAC2のDMAライトが完了した場合（最後のDMA転送が行われた場合）、この完了によりEPデバイス７内のDMAステータスレジスタ１０は、図３中の（２)に示すように“DMAC1完了ステータス”（１ビット）と“DMAC2完了ステータス”（１ビット）の計２ビットがセットされる。
【００２８】
このように２ビットがセットされたレスポンスデータは、その後、図３中の（３）に示すように第１のデバイス１からEPデバイス７に対して発行された割り込みステータスリードが行われると、EPデバイス７から第１のデバイス１へ送られる。
【００２９】
この際、バスブリッジ３では、DMAC2からの最後のライトリクエストをライト／リードリクエスト用の受信バッファ５に格納し、割り込みステータスリードに対するレスポンスをリードレスポンス用の受信バッファ４に格納する。
【００３０】
この時、図３中の（４）に示すようにDMAC2の最後のライトリクエストが第１のデバイス１へ転送されるまで、割り込みステータスリードに対するレスポンスは受信バッファ４内にとどまる。
【００３１】
そして、図３中の（５）に示すようにバスブリッジ３から第１のデバイス１へのDMAC2の最後のライトリクエストの転送が終わり、その後、図３中の（６）に示すようにバスブリッジ３から第１のデバイス１へ割り込みステータスリードに対するレスポンスの転送が終わる。その後、EPデバイス７の割り込みステータスの中のDMAC完了ステータスをクリアするためのリクエストを第１のデバイス１からEPデバイス７へ発行する。
【００３２】
EPデバイス７は、割り込みステータスの中のDMAC完了ステータスがクリアされると、第１のデバイス１でアサートされている割り込み信号をディアサートするために第１のデバイス１に向けて「割り込み信号ディアサートパケット」を送信する。
【００３３】
バスブリッジ３は、EPデバイス７側から「割り込み信号ディアサートパケット」を受信すると、リードレスポンスおよびリクエストの処理を受信の順番通りに処理する方法から独立に処理する方法へと切り替える。
【００３４】
次に、受信バッファ４、５の動作モードの切り替え制御について、図４、図５を参照して説明する。図４は、図１中のバスブリッジ３における「割り込み信号アサートパケット（Assert INT Message）」受信時の動作例を示す。バスブリッジ３は、図４中の（１）に示すようにAssert INT Messageを受信認識すると、直ぐに、図４中の（２）に示すように受信バッファ４、５からのリードレスポンス(Completion)およびリクエスト(Request)に対する読み出し制御の方法を、PCI Expressバス６から受信した順番通りに第１のシステム１側に送信する処理に切り替える。すなわち、Assert INT Messageを認識した時点で、CompletionとRequestの読み出し制御の順序を到着順に変更する。これにより、以降に受信するCompletionとRequestは受信する順番通りに処理される。バスブリッジ３から第１のシステム１へのAssert INT Message受信通知は、以前に受信した全てのCompletionとRequestをバスブリッジ３から第１のシステム１に送信した後に行われる。
【００３５】
図５は、図１中のバスブリッジ３における「割り込み信号ディアサートパケット（De-Assert INT Message）」受信時の動作例を示す。バスブリッジ３は、De-Assert INT Messageを認識する時は、PCI Expressバス６からRequestとCompletionを受信する順番通りに処理している。バスブリッジ３から第１のシステム１へのDe-Assert INT Message受信通知は、それ以前に受信した全てのCompletionとRequestを第１のシステム１へ送信した後に行われる。すなわち、図５中の（１）に示すようにDe-Assert INT Messageよりも先に到着しているパケットを全て送信し終えた後、図５中の（２）に示すようにDe-Assert INT Messageを認識する。その後、CompletionとRequestの読み出し制御は独立処理に戻る。
【図面の簡単な説明】
【００３６】
【図１】本発明のバスブリッジ装置およびそれを用いたバスブリッジシステムの第１の実施形態を示すブロック図。
【図２】図１中の第２のバスにおけるパケットによる割り込みとレベルによる割り込みの関係を説明するために示す図。
【図３】図１のバスブリッジシステムにおいて本発明により解決される事象を説明するために示す図。
【図４】図１中のバスブリッジにおけるAssert INT Message受信時の動作例を説明するために示す図。
【図５】図１中のバスブリッジにおけるDe-Assert INT Message受信時の動作例を説明するために示す図。
【符号の説明】
【００３７】
１…第１のデバイス、２…第１のバス、３…バスブリッジ、４…リードレスポンス用の受信バッファ、５…ライト／リードリクエスト用の受信バッファ、６…第２のバス、７…第２のデバイス、３０…制御部。
【図１】
2010128696.tif 000003
【図２】
2010128696.tif 000004
【図３】
2010128696.tif 000005
【図４】
2010128696.tif 000006
【図５】
2010128696.tif 000007