(57)【要約】【課題】メモリーのライト処理が完了したことを確実に通知すること。【解決手段】バスマスターが割り込み要求を通知すると、ライト保証回路はその割り込み要求を一旦マスクし、メモリーコントローラーへ割り込み処理の対象アドレスに対してリード要求を通知する。ライト保証回路がメモリーコントローラーからリードデータを受け取ると、ライト保証回路は割り込みコントローラーに対してバスマスターの割り込み要求のマスク解除の通知を出す。このマスク解除通知を受けて、割り込みコントローラーがＣＰＵに対して割り込み要求を通知する。これにより、ＣＰＵが割り込み要求に対するバスの調停を行う。【選択図】図２
2015156117.tif 000002
【特許請求の範囲】
【請求項１】
第１のバス及び第２のバスと、
前記第１のバス及び前記第２のバスを接続するインターフェースと、
前記第１のバスに接続されたＣＰＵと、
データを記憶するメモリーと、
前記第１のバスと前記メモリーに接続され、当該第１のバスを介して送信される当該メモリーへのデータのリード及びライト制御を行うメモリーコントローラーと、
前記第２のバスに接続され、前記メモリーコントローラーに対する割り込みを通知する割り込みコントローラーと、
前記メモリーコントローラーに対して、前記メモリーへのデータのリード及びライトを要求するバスマスターと、
前記第２のバスと前記バスマスターに接続され、前記バスマスターが前記メモリーへのリード又はライトの割り込み要求を出した時、当該割り込み要求に代わって前記メモリーコントローラーへ当該要求のアドレスに対するリード要求を通知し、当該リード要求に応答して前記メモリーコントローラーからリードデータを受け取ると、前記割り込みコントローラーへ当該割り込み要求を通知するライト保証回路とを備え、
前記割り込みコントローラーは、前記ライト保証回路から前記割り込み要求を受け取ると、前記ＣＰＵに対して当該割り込み要求を通知するバスシステム。
【請求項２】
前記ライト保証回路は、前記バスマスターから割り込み要求が出たときのみ、前記メモリーコントローラーに対して前記リード要求を通知するものである請求項１に記載のバスシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のバスがインターフェースで接続されてなるバスシステムに関する。
【背景技術】
【０００２】
処理を要求する装置と、要求された処理を行う装置がインターフェースを介してバスで接続されたバスシステムが、コンピューターや画像形成装置等の色々な電子機器で使用されている。
【０００３】
処理を要求する装置はバスマスターと呼ばれ、処理を行う装置はバススレーブと呼ばれる。バスマスターには、例えばＣＰＵ（Central Processing Unit）やＤＭＡＣ（Direct MemoryAccess Controller）等があり、バスマスターからメモリーに対してライトやリード要求が出た場合、ＣＰＵはバスが空いていればバスの使用を許可し、空いていなければ調停を行ってバスの使用を許可する。
【０００４】
特許文献１には、ライト処理が完了したことを知らせるために、最終ライトデータの送信後に書き込み完了通知器が同一アドレスにリード要求を出し、リードデータが返ってきた時点でライトが完了したことをＣＰＵに通知する方法について記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１４２７３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載された方法では、あるまとまった単位のライト処理が完了したときに、最終ライトデータが書き込まれたことが分かればよいケースでは有効だが、トランザクション毎にライトの完了を通知しなければならないケースでは使用できない場合がある。
【０００７】
また、一般的なバスプロトコルでは、バスマスターのライト要求がバスマスターとメモリーの間にあるバスに到達した時点でバスマスターに対してライト完了の通知が出される。汎用回路基板ではこの方法が主流であり、特に既製品の場合は設定変更ができないため、特許文献１の方法は適用できない。
【０００８】
本発明は、上記の問題を解決するためになされたもので、メモリーのライト処理が完了したことを確実に通知するバスシステムを提案する。
【課題を解決するための手段】
【０００９】
本発明におけるバスシステムは、第１のバス及び第２のバスと、前記第１のバス及び前記第２のバスを接続するインターフェースと、前記第１のバスに接続されたＣＰＵと、データを記憶するメモリーと、前記第１のバスと前記メモリーに接続され、当該第１のバスを介して送信される当該メモリーへのデータのリード及びライト制御を行うメモリーコントローラーと、前記第２のバスに接続され、前記メモリーコントローラーに対する割り込みを通知する割り込みコントローラーと、前記メモリーコントローラーに対して、前記メモリーへのデータのリード及びライトを要求するバスマスターと、前記第２のバスと前記バスマスターに接続され、前記バスマスターが前記メモリーへのリード又はライトの割り込み要求を出した時、当該割り込み要求に代わって前記メモリーコントローラーへ当該要求のアドレスに対するリード要求を通知し、当該リード要求に応答して前記メモリーコントローラーからリードデータを受け取ると、前記割り込みコントローラーへ当該割り込み要求を通知するライト保証回路と、を備え、前記割り込みコントローラーは、前記ライト保証回路から前記割り込み要求を受け取ると、前記ＣＰＵに対して当該割り込み要求を通知する。
【発明の効果】
【００１０】
この発明によれば、バスマスターが割り込み要求を出すと、ライト保証回路がその割り込み要求に代わって、リード要求をメモリーコントローラーへ通知し、メモリーコントローラーからリードデータが返ってきたことでライト完了として、割り込みコントローラーがＣＰＵへバスマスターの割り込み要求を通知するため、ライト完了前に誤ってメモリーからデータをリードすることを防ぐことができる。
【図面の簡単な説明】
【００１１】
【図１】バスシステムの構成を模式的に示した図である。
【図２】割り込み処理の流れを示したフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の一実施形態に係るバスシステムについて図面を参照して説明する。図１は、本発明の一実施形態に係るバスシステム１の構成を模式的に示した図である。
【００１３】
バスシステム１は、２つのバスＢ１及びＢ２、ＣＰＵ１１、メモリーコントローラー１２、メモリー１３、ライト保証回路２１、バスマスター２２、割り込みコントローラー２３、バスＢ１とバスＢ２を接続するインターフェース（以下「Ｉ／Ｆ」と書く）１４及び２４を備える。
【００１４】
そして、チップＣ１は、バスＢ１、ＣＰＵ１１、メモリーコントローラー１２、メモリー１３及びＩ／Ｆ１４を有する。チップＣ２は、バスＢ２、ライト保証回路２１、バスマスター２２、割り込みコントローラー２３及びＩ／Ｆ２４を有する。
【００１５】
尚、本実施の形態では、２本のバス（バスＢ１及びＢ２）を備えたバスシステムについて説明するが、３本以上であってもよく、その場合、Ｉ／Ｆを介してそれぞれのバスが直接的又は間接的に接続された構成となる。
【００１６】
ＣＰＵ１１は、バスマスター２２のメモリー１３に対するライト又はリード要求を受けた場合、バスＢ１が空いていれば使用を許可し、空いていなければ調停を行う。
【００１７】
メモリーコントローラー１２は、メモリー１３と接続され、リード要求を受けた場合はメモリー１３からデータを読み出し、ライト要求を受けた場合はメモリー１３にデータを書き込む。メモリー１３は、メモリーコントローラー１２と接続され、各種データやプログラム等を記憶する。
【００１８】
Ｉ／Ｆ１４及び２４は、異なるチップを電気的に接続するインターフェース回路であり、例えばPCI Express等が挙げられる。そして、ＣＰＵ１１、メモリーコントローラー１２及びＩ／Ｆ１４は、それぞれがバスＢ１を介して電気的に接続されている。
【００１９】
ライト保証回路２１は、バスマスター２２と接続され、バスマスター２２からメモリー１３に対するリードやライトの割り込み要求を受けたとき、その割り込み要求を一旦マスクして、バスマスター２２に代わって、メモリーコントローラー１２に対して該当するアドレスのリード要求を通知する。そしてメモリーコントローラー１２からリードデータが返ってきたとき、メモリー１３へのライトが完了したとして、ライト保証回路２１はバスマスター２２から通知された割り込み要求のマスクを解除し、割り込みコントローラー２３へ通知する。
【００２０】
バスマスター２２は、ライト保証回路２１と接続され、例えばＣＰＵやＤＭＡＣ等で構成される。バスマスター２２は、所定の処理を実行するために、メモリーコントローラー１２に対してメモリー１３へのデータのリード又はライトを要求する。
【００２１】
割り込みコントローラー２３は、ライト保証回路２１から割り込み要求の通知を受けると、ＣＰＵ１１に対して割り込み要求を出す。そしてライト保証回路２１、割り込みコントローラー２３及びＩ／Ｆ２４は、それぞれがバスＢ２を介して電気的に接続されている。
【００２２】
一般的なバスプロトコルでは、バスマスターのライト要求がバスマスターとメモリーの間にあるバスに到達した時点でバスマスターに対してライト完了の通知が出される。
【００２３】
しかしこの通知方法の場合、メモリーへのライト処理が本当に完了したか否かは不明確である。例えば、バスからのライト完了通知を受けた直後、他のバスマスターが同一メモリーに対してリード要求を出した場合、この時点でライト処理が完全に終了していない可能性もある。この場合、リード処理が正常に行われず、リードエラーになってしまう。
【００２４】
一方、メモリーのライト処理が完了した時点で、メモリーコントローラーがライト完了をバスマスターに対して通知する方法もある。この場合、他のバスマスターは、このライト完了通知を受けてリード要求を出すことでエラーを防げるが、パフォーマンスが落ちる。
【００２５】
そこで、バスマスター２２がリード又はライトの割り込み要求を出した時、ライト保証回路２１はその割り込み要求を一旦マスクする。言い換えると、バスマスター２２の割り込み要求はすぐにＣＰＵ１１には通知されない。ライト保証回路２１はバスマスター２２の割り込み要求を受けて、メモリーコントローラー１２へ割り込み処理の対象アドレスに対してリード要求を通知する。例えば、このリード要求は、ダミーのリード要求からなる。
【００２６】
そして、ライト保証回路２１が上記リード要求に応答したライトデータを受け取ると、ライト保証回路２１は割り込みコントローラー２３に対してバスマスター２２の割り込み要求のマスク解除の通知を出す。このマスク解除通知を受けて、割り込みコントローラー２３がＣＰＵ１１に対して割り込み要求を出す。これにより、ライト要求がバスに到達した時点でライト完了が通知される設定の場合であっても、メモリー１３のライト処理終了を保証してからバスマスター２２のリード処理を行うことができるため、リードエラーを防ぐことができる。
【００２７】
図２は、本実施の形態における割り込み処理の流れを示したフローチャートである。バスマスター２２が割り込み要求を通知すると（ステップＳ１１）、ライト保証回路２１はその割り込み要求を一旦マスクし、メモリーコントローラー１２へ割り込み処理の対象アドレスに対してリード要求を通知する（ステップＳ１２）。
【００２８】
そして、ライト保証回路２１がメモリーコントローラー１２からリードデータを受け取ると（ステップＳ１３；ＹＥＳ）、ライト保証回路２１は割り込みコントローラー２３に対してバスマスター２２の割り込み要求のマスク解除の通知を出す（ステップＳ１４）。このマスク解除通知を受けて、割り込みコントローラー２３がＣＰＵ１１に対して割り込み要求を通知する（ステップＳ１５）。これにより、ＣＰＵ１１が割り込み要求に対するバスＢ１の調停を行う。
【００２９】
以上、説明したように、バスマスター２２が割り込み要求を出すと、ライト保証回路２１がその割り込み要求をマスクして、上記リード要求をメモリーコントローラー１２へ通知し、メモリーコントローラー１２からリードデータが返ってきたことでライト完了を保証することで、ライト完了前に誤ってメモリー１３からデータをリードすることを防ぐことができる。
【００３０】
一般的な汎用回路基板に用いられるバスプロトコルは、バスマスターのライト要求がバスマスターとメモリーの間にあるバスに到達した時点でバスマスターに対してライト完了の通知が出す方法が主流である。しかしこの通知方法の場合、メモリーへのデータライトが本当に完了したか否かは不明確である。しかし、本発明を適用することで、確実にライト完了を保証することができるため、リードエラーを防ぐことができる。
【００３１】
尚、Ｉ／Ｆ１４及び２４にPCI Expressを用いる場合、Ｉ／Ｆ間の信号の増加に伴って、パフォーマンスが落ちる傾向にある。しかし、本実施の形態では、バスマスター２２から割り込み要求が通知されたときのみ、ライト保証回路２１が上記リード要求を発行するため、Ｉ／Ｆ間のパフォーマンスを大幅に落とすことなく、ライト完了を保証することができる。
【符号の説明】
【００３２】
１      バスシステム
１１    ＣＰＵ
１２    メモリーコントローラー
１３    メモリー
１４、２４  Ｉ／Ｆ
２１    ライト保証回路
２２    バスマスター
２３    割り込みコントローラー
Ｂ１、Ｂ２  バス
Ｃ１、Ｃ２  チップ
【図１】
2015156117.tif 000003
【図２】
2015156117.tif 000004