(57)【要約】【課題】従来のインターフェースコントローラを、アダプタを介して汎用のインターフェースに接続する場合のメモリに対するアクセスレイテンシの低下を抑える。【解決手段】外部メモリ制御装置１０は、ＣＰＵ１２と、カスタムデバイス２２と、他のＣＰＵ専用のインターフェースを備え、カスタムデバイス２２、他のＣＰＵ、及びメモリ１８を相互接続するためのインターフェースコントローラ２０と、ＰＣＩインターフェースを備えた周辺装置とＣＰＵ１２とを相互接続するためのＰＣＩホストブリッジ１４と、インターフェースコントローラ２０とＰＣＩホストブリッジ１４との間に設けられ、他のＣＰＵ専用のＣＰＵインターフェースとＰＣＩインターフェースとを相互変換するＰＣＩアダプタ１６と、を備え、ＰＣＩアダプタ１６は、ＣＰＵ１２からメモリ１８に対してアクセスが要求された場合に、メモリ１８に直接アクセスするアドレスデコーダを備える。【選択図】図１
2008015673.tif 000002
【特許請求の範囲】
【請求項１】
第１のハードウェアと、前記第１のハードウェアと異なる第２のハードウェアと、前記第１のハードウェア及び前記第２のハードウェアと異なる第３のハードウェア専用のインターフェースを備え、前記第２のハードウェア、前記第３のハードウェア、及びメモリを相互接続するための第１の相互接続手段と、汎用のインターフェースを備えた周辺装置と前記第１のハードウェアとを相互接続するための第２の相互接続手段と、前記第１の相互接続手段と前記第２の相互接続手段との間に設けられ、前記第３のハードウェア専用のインターフェースと前記汎用のインターフェースとを相互変換するアダプタと、を備えた外部メモリ制御装置であって、
前記第１の相互接続手段と前記メモリとが前記アダプタを介して接続され、前記アダプタは、前記第１のハードウェアから前記メモリの所定アドレスに対してアクセスが要求された場合に、前記メモリの所定アドレスに直接アクセスするアドレスデコーダを備えたことを特徴とする外部メモリ制御装置。
【請求項２】
前記アダプタは、前記第２のハードウェアから前記メモリに対するアクセスが要求された場合に、前記メモリに書き込むデータ及び前記メモリから読み込んだデータの少なくとも一方を一時的に記憶する一次記憶手段をさらに備えたことを特徴とする請求項１記載の外部メモリ制御装置。
【請求項３】
前記アダプタは、前記第１のハードウェアから前記メモリの所定アドレスに対するデータの書き込みが要求された場合に、前記所定アドレスのデータが前記一次記憶手段に記憶されているか否かを判断する第１の判断手段をさらに備え、前記所定アドレスのデータが前記一次記憶手段に記憶されている場合には、前記メモリの所定アドレスにデータを書き込むと共に、当該データを前記一次記憶手段にも記憶させることを特徴とする請求項２記載の外部メモリ制御装置。
【請求項４】
前記アダプタは、前記第１のハードウェアから前記メモリの所定アドレスからのデータの読み込みが要求された場合に、前記所定アドレスのデータが前記一次記憶手段に記憶されているか否かを判断する第２の判断手段をさらに備え、前記所定アドレスのデータが前記一次記憶手段に記憶されている場合には、前記一次記憶手段からデータを読み込んで前記第１のハードウェアに出力することを特徴とする請求項２又は請求項３記載の外部メモリ制御装置。
【請求項５】
前記第１のハードウェア及び前記第３のハードウェアはＣＰＵであり、前記汎用のインターフェースはＰＣＩインターフェースであることを特徴とする請求項１乃至請求項４の何れか１項に記載の外部メモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部メモリ制御装置に係り、より詳しくは、ＣＰＵ及び他の周辺デバイスで外部メモリを共有することができる外部メモリ制御装置に関する。
【背景技術】
【０００２】
従来、外部メモリをＣＰＵや周辺装置等で共用する場合において外部メモリに対するアクセスが競合した場合、一方が待機させられるためシステムの処理効率が低下するという問題があり、これを解決するために様々な提案がなされている（例えば特許文献１参照）。
【０００３】
また、従来、例えばＳＣＳＩインターフェースコントローラやイーサネット(登録商標)コントローラ等のインターフェースコントローラは、図３に示すようにＣＰＵ１００に直接接続する場合が多かった。同図に示すように、インターフェースコントローラ１０２は、周辺装置としてのカスタムデバイス１０４と接続するための所定のインターフェースＡと、メモリ１０６を接続するためのメモリインターフェースと、ＣＰＵ１００と接続するためのＣＰＵインターフェースと、を備えている。
【０００４】
そして、インターフェースコントローラ１０２は、インターフェースＡを介してカスタムデバイス１０４から受信したデータをメモリ１０６に記憶させる。また、インターフェースコントローラ１０２は、図４に示すようなレジスタマップＲＭＡＰを予め記憶している。このレジスタマップＲＭＡＰは、一例としてインターフェースコントローラ１０２内のレジスタやメモリ１０６に対してデータの書き込みや読み込みをする際のアドレスを定めたものである。
【０００５】
従って、例えばＣＰＵ１００がメモリ１０６に対してデータを書き込んだり読み込んだりする際には、レジスタマップＲＭＡＰでマッピングされるアドレスに対してアクセスし、インターフェースコントローラ１０２を介してメモリ１０６に対してデータを書き込んだり読み込んだりする。
【特許文献１】特開昭６１−１８０３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、近年ではＣＰＵバスの高速化や専用化に伴い、ＣＰＵバスに直接ターゲットデバイスを接続することは少なくなり、ＰＣＩ（Peripheral Component Interconnect）ホストブリッジを経由して、汎用のＰＣＩバスに接続するシステムが大半を占めるようになった。
【０００７】
そのため、新規に設計されるターゲットデバイスはＰＣＩインターフェースを標準で備えるになった。
【０００８】
ただし、新規設計に必要な費用や工数的を削減するために、過去に設計したデバイスを流用して新規のＰＣＩベースのシステムに組み込むような場合には、図５に示すようにＰＣＩアダプタ１０８を介してＰＣＩバスにインターフェースコントローラ１０２を接続することになる。
【０００９】
このような場合、ＣＰＵ１００がインターフェースコントローラ１０２を介してメモリ１０６に対してアクセスしようとした場合、ＰＣＩホストブリッジ１１０、ＰＣＩアダプタ１０８を経由することになるため、リードアクセスレイテンシが低下する、という問題があった。
【００１０】
本発明は、上記問題を解決すべく成されたものであり、汎用のインターフェースを持たない従来のインターフェースコントローラを、アダプタを介して汎用のインターフェースに接続する場合でも、メモリに対するアクセスレイテンシの低下を抑えることができる外部メモリ制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、請求項１記載の発明は、第１のハードウェアと、前記第１のハードウェアと異なる第２のハードウェアと、前記第１のハードウェア及び前記第２のハードウェアと異なる第３のハードウェア専用のインターフェースを備え、前記第２のハードウェア、前記第３のハードウェア、及びメモリを相互接続するための第１の相互接続手段と、汎用のインターフェースを備えた周辺装置と前記第１のハードウェアとを相互接続するための第２の相互接続手段と、前記第１の相互接続手段と前記第２の相互接続手段との間に設けられ、前記第３のハードウェア専用のインターフェースと前記汎用のインターフェースとを相互変換するアダプタと、を備えた外部メモリ制御装置であって、前記第１の相互接続手段と前記メモリとが前記アダプタを介して接続され、前記第１のハードウェアから前記メモリの所定アドレスに対してアクセスが要求された場合に、前記メモリの所定アドレスに直接アクセスするアドレスデコーダを備えたことを特徴とする。
【００１２】
この発明によれば、外部メモリ制御装置は、第１のハードウェア、第１のハードウェアと異なる第２のハードウェア、第１の相互接続手段、第２の相互接続手段、及びアダプタを含んで構成される。
【００１３】
第１の相互接続手段は、第１のハードウェア及び第２のハードウェアと異なる第３のハードウェア専用のインターフェースを備え、第２のハードウェア、第３のハードウェア、及びメモリを相互接続するためのものである。
【００１４】
第２の相互接続手段は、汎用のインターフェースを備えた周辺装置と第１のハードウェアとを相互接続するためのものである。
【００１５】
アダプタは、第１の相互接続手段と第２の相互接続手段との間に設けられ、第３のハードウェア専用のインターフェースと汎用のインターフェースとを相互変換するものである。
【００１６】
このように、第３のハードウェア専用のインターフェースと汎用のインターフェースとを相互変換するアダプタを備えた構成により、第３のハードウェア専用のインターフェースを備え元々第３のハードウェア用の第１の相互接続手段を第１のハードウェアに間接的に接続することができる。
【００１７】
このような外部メモリ制御装置において、第１の相互接続手段とメモリとが直接ではなくアダプタを介して接続され、アダプタは、第１のハードウェアからメモリの所定アドレスに対してデータの書き込みやデータの読み込み等のアクセスが要求された場合に、メモリの所定アドレスに直接アクセスするアドレスデコーダを備えている。なお、例えば請求項５に記載したように、前記第１のハードウェア及び前記第３のハードウェアはＣＰＵであり、前記汎用のインターフェースはＰＣＩインターフェースである構成とすることができる。
【００１８】
このように、第１の相互接続手段とメモリとをアダプタを介して接続することにより、第１の相互接続手段にメモリを直接接続する場合よりも高速なメモリを用いることができる。そして、第１のハードウェアは、第１の相互接続手段を介さずに直接メモリに対してアクセスすることができるため、アクセスレイテンシの低下を防ぐことができる。
【００１９】
なお、請求項２に記載したように、前記アダプタは、前記第２のハードウェアから前記メモリに対するアクセスが要求された場合に、前記メモリに書き込むデータ及び前記メモリから読み込んだデータの少なくとも一方を一時的に記憶する一次記憶手段をさらに備えた構成としてもよい。これにより、第２のハードウェアとメモリとの速度差を吸収することが可能になる。
【００２０】
この場合、請求項３に記載したように、前記アダプタは、前記第１のハードウェアから前記メモリの所定アドレスに対するデータの書き込みが要求された場合に、前記所定アドレスのデータが前記一次記憶手段に記憶されているか否かを判断する第１の判断手段をさらに備え、前記所定アドレスのデータが前記一次記憶手段に記憶されている場合には、前記メモリの所定アドレスにデータを書き込むと共に、当該データを前記一次記憶手段にも記憶させるようにしてもよい。
【００２１】
また、請求項４に記載したように、前記アダプタは、前記第１のハードウェアから前記メモリの所定アドレスからのデータの読み込みが要求された場合に、前記所定アドレスのデータが前記一次記憶手段に記憶されているか否かを判断する第２の判断手段をさらに備え、前記所定アドレスのデータが前記一次記憶手段に記憶されている場合には、前記一次記憶手段からデータを読み込んで前記第１のハードウェアに出力するようにしてもよい。
【００２２】
これにより、第１のハードウェアと第２のハードウェアとが同時にメモリにアクセスした場合にデータの不整合が発生するのを防ぐことができる。
【発明の効果】
【００２３】
以上説明したように、本発明によれば、汎用のインターフェースを持たない従来のインターフェースコントローラを、アダプタを介して汎用のインターフェースに接続する場合でも、メモリに対するアクセスレイテンシの低下を抑える、という効果を有する。
【発明を実施するための最良の形態】
【００２４】
以下、図面を参照しながら本発明の実施形態について詳細に説明する。
【００２５】
図１には、本実施形態に係る外部メモリ制御装置１０の概略ブロック図を示した。同図に示すように、外部メモリ制御装置１０は、ＣＰＵ１２、ＰＣＩホストブリッジ１４、ＰＣＩアダプタ１６、メモリ（例えばＤＲＡＭやＳＲＡＭ等）１８、インターフェースコントローラ２０、及びカスタムデバイス２２を含んで構成されている。
【００２６】
ＰＣＩホストブリッジ１４は、ＣＰＵ１２とＰＣＩインターフェースを有する周辺装置とを接続するための装置である。ＰＣＩホストブリッジ１４は、ＣＰＵ１２とＣＰＵバスを介して接続されると共に、ＰＣＩバスを介してＰＣＩアダプタ１６と接続されている。
【００２７】
ＰＣＩアダプタ１６は、ＰＣＩインターフェースを備えていない従来のインターフェースコントローラ２０とＰＣＩホストブリッジ１４とを接続するための装置であり、元々インターフェースコントローラ２０に接続されるＣＰＵ（第３のハードウェア）専用のＣＰＵインターフェースとＰＣＩインターフェースとを相互変換する機能を有する。
【００２８】
ＰＣＩアダプタ１６は、ＰＣＩバスを介してＰＣＩホストブリッジ１４と接続されると共に、ＣＰＵインターフェースを介してインターフェースコントローラ２０と、メモリインターフェースを介してメモリ１８と各々接続される。なお、メモリ１８は、従来のようにインターフェースコントローラ２０に直接接続するメモリよりも高速にアクセスすることが可能なメモリが接続される。
【００２９】
インターフェースコントローラ２０は、元々はＣＰＵ１２とは異なるＣＰＵ専用のＣＰＵインターフェースを備えると共に、メモリインターフェースを介してメモリと接続するように設計された装置である。また、インターフェースコントローラ２０は、所定のインターフェースＡを介して周辺装置としてのカスタムデバイス２２と接続される。さらに、インターフェースコントローラ２０は、前述した図４に示すようなレジスタマップＲＭＡＰを予め記憶している。
【００３０】
図２には、ＰＣＩアダプタ１６の概略構成を示した。同図に示すように、ＰＣＩアダプタ１６は、アドレスデコーダ３０、第１のアドレスコンパレータ３２、第１のアドレステーブル３４、第１のバッファ（リードバッファ）３６、第２のアドレスコンパレータ３８、第２のアドレステーブル４０、第２のバッファ（ライトバッファ）４２を含んで構成されている。
【００３１】
アドレスデコーダ３０には、前述したレジスタマップＲＭＡＰのメモリ１８の送受信メモリ領域のアドレステーブルが予め記憶されている。
【００３２】
第１のアドレステーブル３４には、リードバッファ３６に格納されたデータに対応するアドレスが格納される。リードバッファ３６は、例えば所定ビット数のデータ（例えば１ワード分のデータ）を格納する。なお、第１のアドレステーブル３４及びリードバッファ３６は、アドレス及びデータを少なくとも１組、好ましくは複数組格納できるように構成する。また、第２のアドレステーブル４０及びライトバッファ４２も第１のアドレステーブル３４及びリードバッファ３６と同様の構成であるので、説明は省略する。本実施形態では、第１のアドレステーブル３４及びリードバッファ３６、第２のアドレステーブル４０及びライトバッファ４２を、アドレス及びデータを複数組格納できるように構成した場合について説明する。
【００３３】
このような構成において、ＣＰＵ１２がＰＣＩホストブリッジ１４、ＰＣＩバスを経由してインターフェースコントローラ２０のレジスタマップＲＭＡＰに登録された送受信メモリ領域にアクセスすることによりメモリ１８にアクセスしようとすると、ＰＣＩアダプタ１６のアドレスデコーダ３０は、ＣＰＵ１２から指定されたアドレスが送受信メモリ領域のアドレスか否か、すなわちメモリ１８のアドレスか否かを予め記憶しているアドレステーブルを参照することにより判断する。
【００３４】
そして、ＣＰＵ１２から指定されたアドレスがメモリ１８のアドレスであると判断すると、アドレスデコーダ３０は、インターフェースコントローラ２０にアクセスせずに、メモリ１８に対して直接アクセスする。すなわち、ＣＰＵ１２からのアクセスがデータの書き込みであった場合には、ＣＰＵ１２から指定されたメモリ１８のアドレスに直接データを書き込む。一方、ＣＰＵ１２からのアクセスがデータの読み込みであった場合には、ＣＰＵ１２から指定されたメモリ１８のアドレスから直接データを読み出し、読み出したデータをＣＰＵ１２にＰＣＩホストブリッジ１４を介して出力する。
【００３５】
また、アドレスデコーダ３０は、ＣＰＵ１２からのアクセスが送受信メモリ領域のアドレスに対するデータの書き込みであった場合には、第１のアドレスコンパレータ３２にＣＰＵ１２から指定されたアドレスを出力する。第１のアドレスコンパレータ３２は、第１のアドレステーブル３４を参照し、ＣＰＵ１２から指定されたアドレスがヒットするか否か、すなわち第１のアドレステーブル３４にＣＰＵ１２から指定されたアドレスが含まれるか否かを判断する。そして、ＣＰＵ１２から指定されたアドレスがヒットした場合には、アドレスデコーダ３０は、メモリ１８に対して直接書き込んだデータをリードバッファ３６のそのアドレスに対応する領域に書き込む。
【００３６】
一方、アドレスデコーダ３０は、ＣＰＵ１２からのアクセスが送受信メモリ領域のアドレスからのデータの読み込みであった場合には、第２のアドレスコンパレータ３２にＣＰＵ１２から指定されたアドレスを出力する。第２のアドレスコンパレータ３８は、第２のアドレステーブル４０を参照し、ＣＰＵ１２から指定されたアドレスがヒットするか否か、すなわち第２のアドレステーブル４０にＣＰＵ１２から指定されたアドレスが含まれるか否かを判断する。そして、ＣＰＵ１２から指定されたアドレスがヒットした場合には、アドレスデコーダ３０は、そのアドレスに対応するデータをライトバッファ４２から読み出し、ＰＣＩホストブリッジ１４を介してＣＰＵ１２に出力する。
【００３７】
次に、カスタムデバイス２２がインターフェースコントローラ２０のレジスタマップＲＭＡＰに登録された送受信メモリ領域にアクセスすることによりメモリ１８にアクセスする場合について説明する。
【００３８】
まず、例えばカスタムデバイス２２がメモリ１８に対してデータを書き込む場合、ＰＣＩアダプタ１６は、例えば所謂ＦＩＦＯのように第２のアドレステーブル４０及びライトバッファ４２に記憶されている最も古いアドレス及びデータを消去し、そこにカスタムデバイス２２から指定されたアドレス及びデータを書き込むと共に、メモリ１８に対してもデータを書き込む。
【００３９】
一方、カスタムデバイス２２がメモリ１８からデータを読み出す場合、ＰＣＩアダプタ１６は、メモリ１８の指定されたアドレスからデータを読み出すと共に、例えば所謂ＦＩＦＯのように第１のアドレステーブル３４及びリードバッファ３６に記憶されている最も古いアドレス及びデータを消去し、そこに指定されたアドレス及びメモリ１８から読み出したデータを書き込むと共に、インターフェースコントローラ２０を介してカスタムデバイス２２に読み込んだデータを出力する。
【００４０】
このように、本実施形態では、ＣＰＵ１２とインターフェースコントローラ２０とをＰＣＩホストブリッジ１４及びＰＣＩアダプタ１６を介して接続すると共に、インターフェースコントローラ２０とメモリ２０とをＰＣＩアダプタ１６を介して接続する構成とし、ＣＰＵ１２からメモリ１８にアクセスする場合に、インターフェースコントローラ２０を介してアクセスするのではなく、ＰＣＩアダプタ１６から直接メモリ１８にアクセスする構成とした。このため、メモリ１８を、従来のようにインターフェースコントローラ２０に直接接続するメモリよりも高速なメモリとすることができ、ＣＰＵ１２からメモリ１８に対するアクセスを高速にすることができる。
【００４１】
また、ＰＣＩアダプタ１６内にリードバッファ３６及びライトバッファ４２を設けた構成としたため、ＣＰＵ１２及びカスタムデバイス２２から同時にメモリ１８にアクセスがあった場合のデータの不整合を防ぐことができると共に、インターフェースコントローラ２０及びメモリ１８の速度差を吸収することができる。
【図面の簡単な説明】
【００４２】
【図１】外部メモリ制御装置の概略ブロック図である。
【図２】ＰＣＩアダプタの概略ブロック図である。
【図３】従来の外部メモリ制御装置の概略ブロック図である。
【図４】レジスタマップの構成を示す図である。
【図５】従来の外部メモリ制御装置の概略ブロック図である。
【符号の説明】
【００４３】
１０      外部メモリ制御装置
１２      ＣＰＵ（第１のハードウェア）
１４      ＰＣＩホストブリッジ（第２の相互接続手段）
１６      ＰＣＩアダプタ（アダプタ）
１８      メモリ
２０      インターフェースコントローラ（第１の相互接続手段）
２０      メモリ
２２      カスタムデバイス（第２のハードウェア）
３０      アドレスデコーダ
３２      第１のアドレスコンパレータ
３４      第１のアドレステーブル
３６      リードバッファ（一次記憶手段）
３８      第２のアドレスコンパレータ
４０      第２のアドレステーブル
４２      ライトバッファ（一次記憶手段）
【図１】
2008015673.tif 000003
【図２】
2008015673.tif 000004
【図３】
2008015673.tif 000005
【図４】
2008015673.tif 000006
【図５】
2008015673.tif 000007