(57)【特許請求の範囲】
【請求項１】
外部メモリ制御装置が１次バスを介して接続される１次バスＩＦ制御部と、
外部メモリ装置が２次バスを介して接続される２次バスＩＦ制御部と、
上記１次バスに接続された外部メモリ制御装置から上記１次バスＩＦ制御部に送られてくるコマンドを検出するコマンド検出手段と、
上記コマンド検出手段により検出したコマンドを上記２次バスＩＦ制御部から上記２次バスを介して外部メモリ装置に送るコマンドに変換するコマンド変換手段と、
上記２次バスに接続された外部メモリ装置から送られてくるステータスを検出するステータス検出手段と、
上記ステータス検出手段により検出したステータスを上記１次バスＩＦ制御部から上記１次バスを介して上記外部メモリ制御装置に送るステータスに変換するステータス変換手段と、
上記１次バスＩＦ制御部と２次バスＩＦ制御部と間に設けられ、上記１次バスに接続された外部メモリ制御装置と上記２次バスに接続された外部メモリ装置との間のデータ転送をＤＭＡバスを介して行うにあたり、上記１次バスＩＦ制御部に通信バッファとして備えられるＦＩＦＯメモリをリングバッファで使用し、上記リングバッファを仮想メモリとして割り当て、上記外部メモリ制御装置からのデータ転送サイズの値を、そのまま上記２次バスＩＦ制御部に伝え、上記２次バスＩＦ制御部と仮想メモリ間で、１回のバスマスターＤＭＡ動作を実行すると同時にバスプロトコル変換のデータ転送を行うデータ転送制御部と
を備え、
上記１次バスＩＦ制御部は、上記通信バッファとして１次バス用の受信用ＦＩＦＯメモリと送信用ＦＩＦＯメモリを備え、
上記２次バスＩＦ制御部は、上記２次バスに接続された外部メモリ装置の容量を取得して外部メモリサイズとして記憶する外部メモリサイズ取得手段を備え、
上記データ転送制御部は、ＣＰＵアドレス空間と独立して、上記１次バス用の受信用ＦＩＦＯメモリと送信用ＦＩＦＯメモリを同一の連続アドレス空間にマッピングし、上記外部メモリサイズ取得手段に記憶された上記外部メモリサイズを上限アドレスとしたＤＭＡアドレス空間を持ち、上記外部メモリサイズを上記１次バスＩＦ制御部経由で、上記外部メモリ制御装置に送信するバススレーブＩＦ部と、上記２次バスＩＦ制御部に備えられた上記２次バスのコマンド生成手段から転送アドレスと転送サイズを取得して、上記２次バスと上記ＤＭＡバス間のバースト転送を行うバスマスターＩＦ部を備えるバスプロトコル変換装置。
【請求項２】
外部メモリ制御装置が１次バスを介して接続される１次バスＩＦ制御部と、
外部メモリ装置が２次バスを介して接続される２次バスＩＦ制御部と、
上記１次バスに接続された外部メモリ制御装置から上記１次バスＩＦ制御部に送られてくるコマンドを検出するコマンド検出手段と、
上記コマンド検出手段により検出したコマンドを上記２次バスＩＦ制御部から上記２次バスを介して外部メモリ装置に送るコマンドに変換するコマンド変換手段と、
上記２次バスに接続された外部メモリ装置から送られてくるステータスを検出するステータス検出手段と、
上記ステータス検出手段により検出したステータスを上記１次バスＩＦ制御部から上記１次バスを介して上記外部メモリ制御装置に送るステータスに変換するステータス変換手段と、
上記１次バスＩＦ制御部と２次バスＩＦ制御部と間に設けられ、上記１次バスに接続された外部メモリ制御装置と上記２次バスに接続された外部メモリ装置との間のデータ転送をＤＭＡバスを介して行うにあたり、上記１次バスＩＦ制御部に通信バッファとして備えられるＦＩＦＯメモリをリングバッファで使用し、上記リングバッファを仮想メモリとして割り当て、上記外部メモリ制御装置からのデータ転送サイズの値を、そのまま上記２次バスＩＦ制御部に伝え、上記２次バスＩＦ制御部と仮想メモリ間で、１回のバスマスターＤＭＡ動作を実行すると同時にバスプロトコル変換のデータ転送を行うデータ転送制御部と
を備え、
上記１次バスＩＦ制御部は、上記通信バッファとして１次バス用の受信用ＦＩＦＯメモリと送信用ＦＩＦＯメモリを備え、
上記２次バスＩＦ制御部は、２次バス用の受信用ＦＩＦＯメモリと送信用ＦＩＦＯメモリを通信バッファとして備え、
上記データ転送制御部は、
上記１次バスと上記ＤＭＡバス間のデータ転送を行うバススレーブＩＦ部と、上記２次バスと上記ＤＭＡバス間のバースト転送を行うバスマスターＩＦ部を備え、
上記バススレーブＩＦ部は、上記１次バス用の受信用ＦＩＦＯメモリからデータ有り状態を検出して、上記バスマスターＩＦ部にリードバースト転送の許可要求を行い、また、上記１次バス用の受信用ＦＩＦＯメモリからデータ無し状態を検出して、上記バスマスターＩＦ部にリードバースト転送の停止要求を行い、また、上記１次バス用の送信用ＦＩＦＯメモリからデータフル状態を検出して、上記バスマスターＩＦ部にライトバースト転送の停止要求を行い、さらに、上記１次バス用の送信用ＦＩＦＯメモリからデータフル以外状態を検出して、上記バスマスターＩＦ部にライトバースト転送の許可要求を行い、
上記バスマスターＩＦ部は、上記２次バス用の受信用ＦＩＦＯメモリのデータ有り状態と上記バススレーブＩＦ部のライトバースト許可要求を検出して、ライトバースト転送を実行し、また、上記２次バス用の受信用ＦＩＦＯメモリのデータ無し状態又は上記バススレーブＩＦ部のライトバースト停止要求を検出して、ライトバースト転送を停止し、また、上記２次バス用の送信用ＦＩＦＯメモリのデータフル状態又は上記バススレーブＩＦ部のリードバースト停止要求を検出して、リードバースト転送を停止し、さらに、上記２次バス用の送信用ＦＩＦＯメモリのデータフル以外状態と上記バススレーブＩＦ部のリードバースト転送の許可要求を検出して、リードバースト転送を実行するバスプロトコル変換装置。
【請求項３】
１次バスに接続された外部メモリ制御装置から１次バスＩＦ制御部に送られてくるコマンドをコマンド検出手段により検出し、検出したコマンドを２次バスＩＦ制御部から２次バスを介して外部メモリ装置に送るコマンドにコマンド変換手段により変換するするとともに、
上記２次バスに接続された外部メモリ装置から送られてくるステータスをステータス検出手段により検出し、検出したステータスを上記１次バスＩＦ制御部から上記１次バスを介して上記外部メモリ制御装置に送るステータスにステータス変換手段により変換し、
上記１次バスＩＦ制御部と上記２次バスＩＦ制御部と間に設けられたデータ転送制御部により、上記１次バスに接続された外部メモリ制御装置と上記２次バスに接続された外部メモリ装置との間のデータ転送をＤＭＡバスを介して行うにあたり、上記１次バスＩＦ制御部に通信バッファとして備えられるＦＩＦＯメモリをリングバッファで使用し、上記リングバッファを仮想メモリとして割り当て、上記外部メモリ制御装置からのデータ転送サイズの値を、そのまま上記２次バスＩＦ制御部に伝え、上記２次バスＩＦ制御部と仮想メモリ間で、１回のバスマスターＤＭＡ動作を実行すると同時にバスプロトコル変換のデータ転送を行い、
上記データ転送制御部に備えられ、ＣＰＵアドレス空間と独立して、上記１次バスＩＦ制御部に上記通信バッファとして備えられた１次バス用の受信用ＦＩＦＯメモリと送信用ＦＩＦＯメモリを同一の連続アドレス空間にマッピングし、上記２次バスＩＦ制御部に備えられた外部メモリサイズ取得手段に記憶された上記外部メモリサイズを上限アドレスとしたＤＭＡアドレス空間を持つバススレーブＩＦ部により、上記外部メモリサイズを上記１次バスＩＦ制御部経由で、上記外部メモリ制御装置に送信するとともに、
上記データ転送制御部に備えられたバスマスターＩＦ部により、上記２次バスＩＦ制御部に備えられた上記２次バスのコマンド生成手段から転送アドレスと転送サイズを取得して、上記２次バスと上記ＤＭＡバス間のバースト転送を行うバスプロトコル変換方法。
【請求項４】
１次バスに接続された外部メモリ制御装置から１次バスＩＦ制御部に送られてくるコマンドをコマンド検出手段により検出し、検出したコマンドを２次バスＩＦ制御部から２次バスを介して外部メモリ装置に送るコマンドにコマンド変換手段により変換するするとともに、
上記２次バスに接続された外部メモリ装置から送られてくるステータスをステータス検出手段により検出し、検出したステータスを上記１次バスＩＦ制御部から上記１次バスを介して上記外部メモリ制御装置に送るステータスにステータス変換手段により変換し、
上記１次バスＩＦ制御部と上記２次バスＩＦ制御部と間に設けられたデータ転送制御部により、上記１次バスに接続された外部メモリ制御装置と上記２次バスに接続された外部メモリ装置との間のデータ転送をＤＭＡバスを介して行うにあたり、上記１次バスＩＦ制御部に通信バッファとして備えられるＦＩＦＯメモリをリングバッファで使用し、上記リングバッファを仮想メモリとして割り当て、上記外部メモリ制御装置からのデータ転送サイズの値を、そのまま上記２次バスＩＦ制御部に伝え、上記２次バスＩＦ制御部と仮想メモリ間で、１回のバスマスターＤＭＡ動作を実行すると同時にバスプロトコル変換のデータ転送を行い、
上記データ転送制御部に備えられたバススレーブＩＦ部により上記１次バスと上記ＤＭＡバス間のデータ転送を行うとともに、上記データ転送制御部に備えられたバスマスターＩＦ部により上記２次バスと上記ＤＭＡバス間のバースト転送を行い、
上記バススレーブＩＦ部により、上記１次バスＩＦ制御部に上記通信バッファとして備えられた１次バス用の受信用ＦＩＦＯメモリからデータ有り状態を検出して、上記バスマスターＩＦ部にリードバースト転送の許可要求を行い、また、上記受信用ＦＩＦＯメモリからデータ無し状態を検出して、上記バスマスターＩＦ部にリードバースト転送の停止要求を行い、また、上記１次バスＩＦ制御部に上記通信バッファとして備えられた送信用ＦＩＦＯメモリからデータフル状態を検出して、上記バスマスターＩＦ部にライトバースト転送の停止要求を行い、さらに、上記送信用ＦＩＦＯメモリからデータフル以外状態を検出して、上記バスマスターＩＦ部にライトバースト転送の許可要求を行い、
上記バスマスターＩＦ部により、上記２次バスＩＦ制御部に上記通信バッファとして備えられた２次バス用の受信用ＦＩＦＯメモリのデータ有り状態と上記バススレーブＩＦ部のライトバースト許可要求を検出して、ライトバースト転送を実行し、また、上記２次バス用の受信用ＦＩＦＯメモリのデータ無し状態又は上記バススレーブＩＦ部のライトバースト停止要求を検出して、ライトバースト転送を停止し、また、上記２次バスＩＦ制御部に上記通信バッファとして備えられた２次バス用の送信用ＦＩＦＯメモリのデータフル状態又は上記バススレーブＩＦ部のリードバースト停止要求を検出して、リードバースト転送を停止し、さらに、上記２次バス用の送信用ＦＩＦＯメモリのデータフル以外状態と上記バススレーブＩＦ部のリードバースト転送の許可要求を検出して、リードバースト転送を実行するバスプロトコル変換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想メモリーバスマスタＤＭＡ方式のバスプロトコル変換装置及びバスプロトコル変換方法に関する。
【背景技術】
【０００２】
従来より、ストレージのバス規格として、ＳＣＳＩ(Small Computer System Interface)、ＡＴＡＰＩ(AT Attachment Packet Interface)、ＵＳＢ(Mass Storage Class)、ＩＥＥＥ１３９４(Serial Bus Protocol 2)等が知られている。そして、ホスト装置の拡張バスとストレージ機器の接続バスが異なる場合、バスプロトコル変換装置を介して接続される。
【０００３】
そして、規格の異なるバスに接続された装置間でのデータの入出力を高速に行うために、ＦＩＦＯメモリやＤＭＡ(Direct Memory Access)コントローラを備えたバスプロトコル変換装置が使用されている。
【０００４】
例えば、ＳＣＳＩバスとＡＴＡ−２バスとの間の変換を行う際に、ＦＩＦＯメモリを介してデータの入出力を高速に行うようにしたり（例えば特許文献１参照）、ＩＥＥＥ１３９４バスとＳＣＳＩバスとの間でＤＭＡ(Direct Memory Access)によりデータ転送動作のパフォーマンスを向上させようにしている（例えば特許文献２参照）。さらに、１次バスと２次バスの間にＦＩＦＯとＤＭＡを実装して、高速なバースト転送を用いた効率的なデータ転送を実現するようにしたＤＭＡ転送装置が提案されている（例えば特許文献２、３参照）。
【０００５】
ＦＩＦＯとＤＭＡを使用したデータ転送では、連続したアドレス空間にマッピングされたアドレスをＤＭＡ対象にして、高速なバースト転送を実現している。
【０００６】
データのアクセスは、データの最小アクセス単位（ブロック長）全てに通し番号の論理アドレス（ＬＢＡ：Logical Block Addressing）を振り、コマンドのパラメータで、方向（リードまたはライト）と、スタートＬＢＡと、ＬＢＡからのブロック数を指定して実行される。
【０００７】
また、バスプロトコル変換装置内のデータ転送は、内部にバスマスターＤＭＡ方式を使用したものがある。バスマスターＤＭＡ方式では、１次インターフェース部と２次インターフェース部から、転送中継用の共通メモリに対してＤＭＡアクセスを行いデータを転送している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開１０−１６１９７２号公報
【特許文献２】特開２００３−２２３４１１号公報
【特許文献３】特開２００７−１７２５１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、従来のＦＩＦＯを連続したアドレス空間にマッピングしてＤＭＡのバースト転送を用いた場合では、内部バッファを経由してバースト転送中は、転送元アドレスまたは転送先アドレスの加算処理を行うため、転送元アドレスから転送先アドレスへデータを移すには、転送アドレス→内部バッファと内部バッファ→転送先アドレスの２回のＤＭＡバーストが必要であり、ＤＭＡバス帯域の占有率を低下させるには、不十分であった。
【００１０】
また、ＦＩＦＯに積まれたデータ段数と使用可能なバースト長設定値テーブルにより最大のバースト長を通知するバースト長選択回路では、１つのコマンドに対するバースト転送のコマンドサイクルが、１次バスのコマンド数以上に発生するため、ＤＭＡバス帯域の占有率を低下させるには、不十分であった。
【００１１】
すなわち、ホスト装置からのデータ転送要求数が、共通メモリサイズを越えていた場合は、バスプロトコル変換装置側でＤＭＡの分割転送を行い、総データ数の転送を行う必要があった。この方法では、ホスト装置からのデータ要求数により、バスプロトコル変換装置のＤＭＡ動作が変わるため、高速動作の安定化が困難であった。
【００１２】
そこで、本発明は、上述した問題点を解決するために案出されたものであり、その目的とするところは、バースト転送を有するバスプロトコル変換装置において、ＬＢＡで管理された外部メモリ制御装置のコマンド実行によるデータ転送の性能低下をなくすことにある。
【００１３】
本発明の他の目的、本発明によって得られる具体的な利点は、以下に説明される実施の形態の説明から一層明らかにされる。
【課題を解決するための手段】
【００１４】
本発明では、共通メモリサイズに依存しないバスマスターＤＭＡ制御を行い、インターフェース内のＦＩＦＯを大きな仮想メモリとして割り当て、ホスト装置のデータ要求数を、そのまま使用するバスマスターＤＭＡ転送を行う。すなわち、ホスト装置側のインターフェース制御部にあるＦＩＦＯ（例えば、数Ｋバイトのデータ容量）をリングバッファで使用し、このリングバッファを大きな仮想メモリ（例：数Ｇバイト）に割り当てる。そして、ホスト装置からのデータ転送サイズの値を、そのままストレージ側のインターフェース制御部に伝え、ストレージ側のインターフェース部と仮想メモリ間で、１回のバスマスターＤＭＡ動作が実行され、同時にバスプロトコル変換のデータ転送が行われる。
【００１６】
本発明に係るバスプロトコル変換装置は、外部メモリ制御装置が１次バスを介して接続される１次バスＩＦ制御部と、外部メモリ装置が２次バスを介して接続される２次バスＩＦ制御部と、上記１次バスに接続された外部メモリ制御装置から上記１次バスＩＦ制御部に送られてくるコマンドを検出するコマンド検出手段と、上記コマンド検出手段により検出したコマンドを上記２次バスＩＦ制御部から上記２次バスを介して外部メモリ装置に送るコマンドに変換するコマンド変換手段と、上記２次バスに接続された外部メモリ装置から送られてくるステータスを検出するステータス検出手段と、上記ステータス検出手段により検出したステータスを上記１次バスＩＦ制御部から上記１次バスを介して上記外部メモリ制御装置に送るステータスに変換するステータス変換手段と、上記１次バスＩＦ制御部と２次バスＩＦ制御部と間に設けられ、上記１次バスに接続された外部メモリ制御装置と上記２次バスに接続された外部メモリ装置との間のデータ転送をＤＭＡバスを介して行うにあたり、上記１次バスＩＦ制御部に通信バッファとして備えられるＦＩＦＯメモリをリングバッファで使用し、上記リングバッファを仮想メモリとして割り当て、上記外部メモリ制御装置からのデータ転送サイズの値を、そのまま上記２次バスＩＦ制御部に伝え、上記２次バスＩＦ制御部と仮想メモリ間で、１回のバスマスターＤＭＡ動作を実行すると同時にバスプロトコル変換のデータ転送を行うデータ転送制御部とを備え、上記１次バスＩＦ制御部は、上記通信バッファとして１次バス用の受信用ＦＩＦＯメモリと送信用ＦＩＦＯメモリを備え、 上記２次バスＩＦ制御部は、上記２次バスに接続された外部メモリ装置の容量を取得して外部メモリサイズとして記憶する外部メモリサイズ取得手段を備え、上記データ転送制御部は、ＣＰＵアドレス空間と独立して、上記１次バス用の受信用ＦＩＦＯメモリと送信用ＦＩＦＯメモリを同一の連続アドレス空間にマッピングし、上記外部メモリサイズ取得手段に記憶された上記外部メモリサイズを上限アドレスとしたＤＭＡアドレス空間を持ち、上記外部メモリサイズを上記１次バスＩＦ制御部経由で、上記外部メモリ制御装置に送信するバススレーブＩＦ部と、上記２次バスＩＦ制御部に備えられた上記２次バスのコマンド生成手段から転送アドレスと転送サイズを取得して、上記２次バスと上記ＤＭＡバス間のバースト転送を行うバスマスターＩＦ部を備えることを特徴とする。
【００１７】
また、本発明に係るバスプロトコル変換装置は、  外部メモリ制御装置が１次バスを介して接続される１次バスＩＦ制御部と、外部メモリ装置が２次バスを介して接続される２次バスＩＦ制御部と、上記１次バスに接続された外部メモリ制御装置から上記１次バスＩＦ制御部に送られてくるコマンドを検出するコマンド検出手段と、上記コマンド検出手段により検出したコマンドを上記２次バスＩＦ制御部から上記２次バスを介して外部メモリ装置に送るコマンドに変換するコマンド変換手段と、上記２次バスに接続された外部メモリ装置から送られてくるステータスを検出するステータス検出手段と、上記ステータス検出手段により検出したステータスを上記１次バスＩＦ制御部から上記１次バスを介して上記外部メモリ制御装置に送るステータスに変換するステータス変換手段と、上記１次バスＩＦ制御部と２次バスＩＦ制御部と間に設けられ、上記１次バスに接続された外部メモリ制御装置と上記２次バスに接続された外部メモリ装置との間のデータ転送をＤＭＡバスを介して行うにあたり、上記１次バスＩＦ制御部に通信バッファとして備えられるＦＩＦＯメモリをリングバッファで使用し、上記リングバッファを仮想メモリとして割り当て、上記外部メモリ制御装置からのデータ転送サイズの値を、そのまま上記２次バスＩＦ制御部に伝え、上記２次バスＩＦ制御部と仮想メモリ間で、１回のバスマスターＤＭＡ動作を実行すると同時にバスプロトコル変換のデータ転送を行うデータ転送制御部とを備え、上記１次バスＩＦ制御部は、上記通信バッファとして１次バス用の受信用ＦＩＦＯメモリと送信用ＦＩＦＯメモリを備え、上記２次バスＩＦ制御部は、２次バス用の受信用ＦＩＦＯメモリと送信用ＦＩＦＯメモリを通信バッファとして備え、上記データ転送制御部は、上記１次バスと上記ＤＭＡバス間のデータ転送を行うバススレーブＩＦ部と、上記２次バスと上記ＤＭＡバス間のバースト転送を行うバスマスターＩＦ部を備え、上記バススレーブＩＦ部は、上記１次バス用の受信用ＦＩＦＯメモリからデータ有り状態を検出して、上記バスマスターＩＦ部にリードバースト転送の許可要求を行い、また、上記１次バス用の受信用ＦＩＦＯメモリからデータ無し状態を検出して、上記バスマスターＩＦ部にリードバースト転送の停止要求を行い、また、上記１次バス用の送信用ＦＩＦＯメモリからデータフル状態を検出して、上記バスマスターＩＦ部にライトバースト転送の停止要求を行い、さらに、上記１次バス用の送信用ＦＩＦＯメモリからデータフル以外状態を検出して、上記バスマスターＩＦ部にライトバースト転送の許可要求を行い、上記バスマスターＩＦ部は、上記２次バス用の受信用ＦＩＦＯメモリのデータ有り状態と上記バススレーブＩＦ部のライトバースト許可要求を検出して、ライトバースト転送を実行し、また、上記２次バス用の受信用ＦＩＦＯメモリのデータ無し状態又は上記バススレーブＩＦ部のライトバースト停止要求を検出して、ライトバースト転送を停止し、また、上記２次バス用の送信用ＦＩＦＯメモリのデータフル状態又は上記バススレーブＩＦ部のリードバースト停止要求を検出して、リードバースト転送を停止し、さらに、上記２次バス用の送信用ＦＩＦＯメモリのデータフ���以外状態と上記バススレーブＩＦ部のリードバースト転送の許可要求を検出して、リードバースト転送を実行することを特徴とする。
【００１９】
本発明に係るバスプロトコル変換方法は、１次バスに接続された外部メモリ制御装置から１次バスＩＦ制御部に送られてくるコマンドをコマンド検出手段により検出し、検出したコマンドを２次バスＩＦ制御部から２次バスを介して外部メモリ装置に送るコマンドにコマンド変換手段により変換するするとともに、上記２次バスに接続された外部メモリ装置から送られてくるステータスをステータス検出手段により検出し、検出したステータスを上記１次バスＩＦ制御部から上記１次バスを介して上記外部メモリ制御装置に送るステータスにステータス変換手段により変換し、上記１次バスＩＦ制御部と上記２次バスＩＦ制御部と間に設けられたデータ転送制御部により、上記１次バスに接続された外部メモリ制御装置と上記２次バスに接続された外部メモリ装置との間のデータ転送をＤＭＡバスを介して行うにあたり、上記１次バスＩＦ制御部に通信バッファとして備えられるＦＩＦＯメモリをリングバッファで使用し、上記リングバッファを仮想メモリとして割り当て、上記外部メモリ制御装置からのデータ転送サイズの値を、そのまま上記２次バスＩＦ制御部に伝え、上記２次バスＩＦ制御部と仮想メモリ間で、１回のバスマスターＤＭＡ動作を実行すると同時にバスプロトコル変換のデータ転送を行い、上記データ転送制御部に備えられ、ＣＰＵアドレス空間と独立して、上記１次バスＩＦ制御部に上記通信バッファとして備えられた１次バス用の受信用ＦＩＦＯメモリと送信用ＦＩＦＯメモリを同一の連続アドレス空間にマッピングし、上記２次バスＩＦ制御部に備えられた外部メモリサイズ取得手段に記憶された上記外部メモリサイズを上限アドレスとしたＤＭＡアドレス空間を持つバススレーブＩＦ部により、上記外部メモリサイズを上記１次バスＩＦ制御部経由で、上記外部メモリ制御装置に送信するとともに、上記データ転送制御部に備えられたバスマスターＩＦ部により、上記２次バスＩＦ制御部に備えられた上記２次バスのコマンド生成手段から転送アドレスと転送サイズを取得して、上記２次バスと上記ＤＭＡバス間のバースト転送を行うことを特徴とする。
【００２０】
また、本発明に係るバスプロトコル変換方法は、１次バスに接続された外部メモリ制御装置から１次バスＩＦ制御部に送られてくるコマンドをコマンド検出手段により検出し、検出したコマンドを２次バスＩＦ制御部から２次バスを介して外部メモリ装置に送るコマンドにコマンド変換手段により変換するするとともに、上記２次バスに接続された外部メモリ装置から送られてくるステータスをステータス検出手段により検出し、検出したステータスを上記１次バスＩＦ制御部から上記１次バスを介して上記外部メモリ制御装置に送るステータスにステータス変換手段により変換し、上記１次バスＩＦ制御部と上記２次バスＩＦ制御部と間に設けられたデータ転送制御部により、上記１次バスに接続された外部メモリ制御装置と上記２次バスに接続された外部メモリ装置との間のデータ転送をＤＭＡバスを介して行うにあたり、上記１次バスＩＦ制御部に通信バッファとして備えられるＦＩＦＯメモリをリングバッファで使用し、上記リングバッファを仮想メモリとして割り当て、上記外部メモリ制御装置からのデータ転送サイズの値を、そのまま上記２次バスＩＦ制御部に伝え、上記２次バスＩＦ制御部と仮想メモリ間で、１回のバスマスターＤＭＡ動作を実行すると同時にバスプロトコル変換のデータ転送を行い、上記データ転送制御部に備えられたバススレーブＩＦ部により上記１次バスと上記ＤＭＡバス間のデータ転送を行うとともに、上記データ転送制御部に備えられたバスマスターＩＦ部により上記２次バスと上記ＤＭＡバス間のバースト転送を行い、上記バススレーブＩＦ部により、上記１次バスＩＦ制御部に上記通信バッファとして備えられた１次バス用の受信用ＦＩＦＯメモリからデータ有り状態を検出して、上記バスマスターＩＦ部にリードバースト転送の許可要求を行い、また、上記受信用ＦＩＦＯメモリからデータ無し状態を検出して、上記バスマスターＩＦ部にリードバースト転送の停止要求を行い、また、上記１次バスＩＦ制御部に上記通信バッファとして備えられた送信用ＦＩＦＯメモリからデータフル状態を検出して、上記バスマスターＩＦ部にライトバースト転送の停止要求を行い、さらに、上記送信用ＦＩＦＯメモリからデータフル以外状態を検出して、上記バスマスターＩＦ部にライトバースト転送の許可要求を行い、上記バスマスターＩＦ部により、上記２次バスＩＦ制御部に上記通信バッファとして備えられた２次バス用の受信用ＦＩＦＯメモリのデータ有り状態と上記バススレーブＩＦ部のライトバースト許可要求を検出して、ライトバースト転送を実行し、また、上記２次バス用の受信用ＦＩＦＯメモリのデータ無し状態又は上記バススレーブＩＦ部のライトバースト停止要求を検出して、ライトバースト転送を停止し、また、上記２次バスＩＦ制御部に上記通信バッファとして備えられた２次バス用の送信用ＦＩＦＯメモリのデータフル状態又は上記バススレーブＩＦ部のリードバースト停止要求を検出して、リードバースト転送を停止し、さらに、上記２次バス用の送信用ＦＩＦＯメモリのデータフル以外状態と上記バススレーブＩＦ部のリードバースト転送の許可要求を検出して、リードバースト転送を実行することを特徴とする。
【発明の効果】
【００２１】
本発明では、共通メモリサイズに依存しないバスマスターＤＭＡ制御を行い、インターフェース内のＦＩＦＯを大きな仮想メモリとして割り当て、ホスト装置のデータ要求数を、そのまま使用するバスマスターＤＭＡ転送を行うことにより、ＤＭＡ転送サイズの制約をなくすことで、１回のＤＭＡアクセスで、安定した高速転送が実現できる。また、共通メモリを不要とするとともに、バスマスター制御の簡略化により、省電化が実現できる。さらに、大きなバッファメモリを必要とせず、高速なバスプロトコル変換装置を実現することができる。
【００２２】
したがって、本発明によれば、１次バスから受け取ったコマンドを実行するＤＭＡバスと２次バスのＤＭＡ転送で、バースト転送の分割が不要となり、バスプロトコル変換装置の性能を向上することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明を適用したバスプロトコル変換装置の構成を示すブロック図である。
【図２】上記バスプロトコル変換装置におけるメモリマップである。
【図３】上記バスプロトコル変換装置における仮想メモリ化の手法を模式的に示す図である。
【図４】上記バスプロトコル変換装置における仮想メモリの概念図である。
【図５】上記バスプロトコル変換装置において実行される初期シーケンスを示すフローチャートである。
【図６】上記バスプロトコル変換装置において実行されるデータシーケンスを示すフローチャートである。
【図７】ＳＣＡＩ／ＡＴＡＰＩコマンドの説明に供する図である。
【図８】上記バスプロトコル変換装置において実行される１次側バスのデータリード処理の１例を模式的に示す図である。
【図９】上記バスプロトコル変換装置において実行される１次側バスのデータライト処理の１例を模式的に示す図である。
【図１０】上記バスプロトコル変換装置の機能構成を模式的に示す図である。
【発明を実施するための形態】
【００２４】
以下、本発明を実施するための形態について、図面を参照しながら、以下の順序で詳細に説明する。
【００２５】
１．全体構成（図１〜図４）
２．バスプロトコル変換装置の具体的な動作（図５〜図９）
３．バスプロトコル変換装置の機能（図１０）
【００２６】
＜全体構成＞
本発明は、例えば図１に示すような構成のバスプロトコル変換装置１００に適用される。
【００２７】
このバスプロトコル変換装置１００は、１次バスＩＦ制御部１１０、データ転送制御部１２０、２次バスＩＦ制御部１３０、ＣＰＵ１４０、メモリ１５０などからなる。上記１次バスＩＦ制御部１１０、２次バスＩＦ制御部１３０、ＣＰＵ１４０及びメモリ１５０は、ＣＰＵバス１６０を介して接続されている。
【００２８】
上記１次バスＩＦ制御部１１０には、外部メモリ制御装置１０が１次バス２０を介して接続される。
【００２９】
ここで、上記外部メモリ制御装置１０は、上記１次バス２０としてＵＳＢなどのホストバスを介して外部接続可能なパーソナルコンピュータ（ＰＣ）等のホスト装置である。
【００３０】
上記１次バスＩＦ制御部１１０は、１次バス用受信ＩＦ部１１１、１次バス用送信ＩＦ部１１２及び１次バス用制御レジスタ部１１３からなる。上記１次バス用受信ＩＦ部１１１は、通信バッファとして受信用ＦＩＦＯメモリ１１１Ａを備える。また、上記１次バス用送信ＩＦ部１１２は、通信バッファとして送信用ＦＩＦＯメモリ１１２Ａを備える。さらに、上記１次バス用制御レジスタ部１１３は、１次バス用コマンド解析部１１３Ａと１次バス用ステータス生成部１１３Ｂを備える。
【００３１】
また、上記２次バスＩＦ制御部１３０には、外部メモリ装置４０が２次バス３０を介して接続される。
【００３２】
この２次バスＩＦ制御部１３０は、２次バス用受信ＩＦ部１３１、２次バス用送信ＩＦ部１３２及び２次バス用制御レジスタ部１３３からなる。上記２次バス用受信ＩＦ部１３１は、通信バッファとして受信用ＦＩＦＯメモリ１３１Ａを備える。また、上記２次バス用送信ＩＦ部１３２は、通信バッファとして送信用ＦＩＦＯメモリ１３２Ａを備える。さらに、上記２次バス用制御レジスタ部１３３は、２次バス用ステータス解析部１３３Ａと２次バス用コマンド生成部１３３Ｂを備える。
【００３３】
ここで、上記外部メモリ装置４０は、バスマスターＤＭＡ機能を有するメモリカードやハードディスク等のメモリ装置であって、コマンド実行部４１、ＤＭＡ部４２、メモリ部４３等からなる。
【００３４】
さらに、上記データ転送制御部１２０は、上記１次バスＩＦ制御部１１０と２次バスＩＦ制御部１３０と間に設けられている。このデータ転送制御部１２０は、バススレーブＩＦ部１２１、ＤＭＡバス１２２、バスマスターＩＦ部１２３及び外部メモリサイズ取得部１２４を備える。
【００３５】
上記データ転送制御部１２０は、上記１次バス２０に接続された外部メモリ制御装置１０と上記２次バス３０に接続された外部メモリ装置４０との間のデータ転送をＤＭＡバス１２２を介して行う。
【００３６】
すなわち、このデータ転送制御部１２０において、上記バススレーブＩＦ部１２１は、上記１次バス２０と上記ＤＭＡバス１２２間のデータ転送を行う。また、上記バスマスターＩＦ部１２３は、上記２次バス３０と上記ＤＭＡバス１２２間のバースト転送を行う。
【００３７】
また、上記外部メモリサイズ取得部１２４は、外部メモリサイズ記憶用レジスタ部１２４Ａを備える。この外部メモリサイズ取得部１２４は、上記２次バス３０に接続された外部メモリ装置４０の容量を取得して外部メモリサイズとして上記外部メモリサイズ記憶用レジスタ部１２４Ａに記憶する。
【００３８】
そして、このバスプロトコル変換装置１００では、図２のメモリマップを示すように、上記バススレーブＩＦ部１２１は、ＣＰＵ１４０のアドレス空間と独立して、上記１次バス用の受信用ＦＩＦＯメモリ１１１Ａと送信用ＦＩＦＯメモリ１１２Ａを同一の連続アドレス空間にマッピングし、上記外部メモリサイズ取得部１２４の外部メモリサイズ記憶用レジスタ部１２４Ａに記憶された上記外部メモリサイズを上限アドレスとしたＤＭＡアドレス空間を持ち、上記外部メモリサイズを上記１次バスＩＦ制御部１１０経由で、上記外部メモリ制御装置１０に送信する。
【００３９】
また、上記バスマスターＩＦ部１２３は、ＤＭＡＣ（Direct Memory Access Controller）１２３Ａの機能を備えるもので、上記２次バスＩＦ制御部１３０に備えられた上記２次バスのコマンド生成部から転送アドレスと転送サイズを取得して、上記２次バス３０と上記ＤＭＡバス１２２間のバースト転送を行う。
【００４０】
また、このバスプロトコル変換装置１００において、上記バススレーブＩＦ部１２１は、上記受信用ＦＩＦＯメモリ１１１Ａからデータ有り状態を検出して、上記バスマスターＩＦ部１２３にリードバースト転送の許可要求を行う。また、上記バススレーブＩＦ部１２１は、上記受信用ＦＩＦＯメモリ１１１Ａからデータ無し状態を検出して、上記バスマスターＩＦ部１２３にリードバースト転送の停止要求を行う。上記バススレーブＩＦ部１２１は、上記送信用ＦＩＦＯメモリ１１２Ａからデータフル状態を検出して、上記バスマスターＩＦ部１２３にライトバースト転送の停止要求を行う。さらに、上記バススレーブＩＦ部１２１は、上記送信用ＦＩＦＯメモリ１１２Ａからデータフル以外状態を検出して、上記バスマスターＩＦ部１２３にライトバースト転送の許可要求を行う。
【００４１】
また、上記バスマスターＩＦ部１２３は、上記２次バス用の受信用ＦＩＦＯメモリ１３１Ａのデータ有り状態と上記、バススレーブＩＦ部１２１のライトバースト許可要求を検出して、ライトバースト転送を実行し、また、上記２次バス用の受信用ＦＩＦＯメモリ１３１Ａのデータ無し状態又は上記バススレーブＩＦ部１２１のライトバースト停止要求を検出して、ライトバースト転送を停止し、また、上記２次バス用の送信用ＦＩＦＯメモリ１３２Ａのデータフル状態又は上記バススレーブＩＦ部１２１のリードバースト停止要求を検出して、リードバースト転送を停止し、さらに、上記２次バス用の送信用ＦＩＦＯメモリ１３２Ａのデータフル以外状態と上記バススレーブＩＦ部１２１のリードバースト転送の許可要求を検出して、リードバースト転送を実行する。
【００４２】
そして、上記データ転送制御部１２０は、図３及び図４に示すように、上記１次バスＩＦ制御部１１０に通信バッファとして備えられる受信用ＦＩＦＯメモリ１１１Ａをリングバッファで使用し、上記リングバッファを仮想メモリとして割り当て、上記外部メモリ制御装置１０からのデータ転送サイズの値を、そのまま上記２次バスＩＦ制御部１３０に伝え、上記２次バスＩＦ制御部１３０と仮想メモリ間で、１回のバスマスターＤＭＡ動作を実行すると同時にバスプロトコル変換のデータ転送を行う。上記バススレーブＩＦ部１２１は、上記１次バスＩＦ制御部１１０に通信バッファとして備えられる受信用ＦＩＦＯメモリ１１１Ａをリングバッファで使用し、上記リングバッファを仮想メモリとして割り当る仮想アドレス化手段１２１Ａとして機能する。
【００４３】
＜バスプロトコル変換装置の具体的な動作＞
次に、このバスプロトコル変換装置１００では、図５に示す初期シーケンスの処理（ステップＳ１、Ｓ２）を行ってから図６に示すデータシーケンス（ステップＳ１１〜Ｓ１７）の処理を行う。
【００４４】
すなわち、初期シーケンスにおいて、このバスプロトコル変換装置１００における２次バスＩＦ制御部１３０は、外部メモリ装置４０のデバイス情報を取得するＩＮＱＵＩＲＹコマンドにより外部メモリ装置４０のデバイス情報を確認して（ステップＳ１）、動作対象の外部メモリ装置４０が接続されている場合は、外部メモリ装置４０にストレージ用のＲｅａｄ  Ｃａｐａｃｉｔｙコマンドを発行して、外部メモリ情報（最大ＬＢＡ、ブロック長）を取得し、その内容を上記データ転送制御部１２０の外部メモリサイズ取得部１２４に備えられた外部メモリサイズ記憶用レジスタ部１２４Ａに保持する（ステップＳ２）。
【００４５】
ここで、図７の（Ａ）に示すように、ＳＣＳＩ／ＡＴＡＰＩコマンドにおけるＲＥＡＤ  ＣＡＰＡＣＩＴＹコマンドの応答データには、外部メモリ情報として最大論理ブロックアドレス（Ｌａｓｔ  Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）とブロック長（Ｂｌｏｃｋ  Ｌｅｎｇｔｈ  Ｂｙｔｅｓ）が含まれている。外部メモリ装置４０のメモリ容量は、
メモリ容量＝ブロック長×（最大論理ブロックアドレス＋１）
にて算出することができる。
【００４６】
上記データ転送制御部１２０は、外部メモリ制御装置１０から、外部メモリ装置４０の容量確認を行うコマンドが実行された場合、上記外部メモリサイズ記憶用レジスタ部１２４Ａが保持している外部メモリ情報の内容を返信する。
【００４７】
また、データシーケンスの処理では、このバスプロトコル変換装置１００における２次バスＩＦ制御部１３０は、ＴＥＳＴ  ＵＮＩＴ  ＲＥＡＤＹコマンドとＲＥＱＵＥＳＴ  ＳＥＮＳＥコマンドにより外部メモリ装置４０の接続状態を示す情報を取得する（ステップＳ１１）。
【００４８】
次に、上記２次バスＩＦ制御部１３０は、取得した接続状態を示す情報に基づいて、上記２次バス３０を介して外部メモリ装置４０が接続されているか否か判定する（ステップＳ１２）。
【００４９】
次に、上記２次バスＩＦ制御部１３０は、上記ステップＳ１２における判定結果がＹＥＳすなわち外部メモリ装置４０が接続されている場合には、データ転送を伴うコマンドであるか否かを判定する（ステップＳ１３）。なお、上記ステップＳ１２における判定結果がＮＯすなわち外部メモリ装置４０が接続されてない場合には、そのままデータシーケンスの処理を終了する。
【００５０】
次に、上記２次バスＩＦ制御部１３０は、上記ステップＳ１３における判定結果がＹＥＳすなわちデータ転送を伴うコマンドの場合には、読込み系コマンドであるか否かを判定する（ステップＳ１４）。また、上記ステップＳ１３における判定結果がＮＯすなわちデータ転送がない場合には、上記２次バスＩＦ制御部１３０は、外部メモリ装置４０に対するデータの書込み／読出し以外のコマンド処理を行う（ステップＳ１５）。
【００５１】
そして、上記２次バスＩＦ制御部１３０は、上記ステップＳ１４における判定結果がＹＥＳすなわち読出し系コマンドである場合には、外部メモリ装置４０からデータの読み出しを行う（ステップＳ１６）。また、上記ステップＳ１４における判定結果がＮＯすなわち読出し系コマンドでない場合には、上記２次バスＩＦ制御部１３０は、外部メモリ装置４０に対するデータの書き込みを行う（ステップＳ１７）。
【００５２】
このバスプロトコル変換装置１００において、外部メモリ装置４０からデータの読出し動作は、図８に示すように、ＳＣＳＩ／ＡＴＡＰＩコマンドにおける書込みコマンドＷｒｉｔｅ（１０）を用いて行われる。
【００５３】
すなわち、外部メモリ制御装置１０が発行する書込みコマンドＷｒｉｔｅ（１０）のＬＢＡと転送ブロック数は、通常、把握している外部メモリ装置の容量内で実行される。
【００５４】
ここで、ＳＣＳＩ／ＡＴＡＰＩコマンドにおける書込みコマンドＷｒｉｔｅ（１０）は、指定された論理ブロックアドレスから、指定されたブロック数のデータを転送するコマンドである。この書込みコマンドＷｒｉｔｅ（１０）には、図７の（Ｂ）に示すように、Ｏｐｅｒａｔｉｏｎ  Ｃｏｄｅ（２８Ｈ）と論理ブロックアドレス（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）と転送長（Ｔｒａｎｓｆｅｒ  Ｌｅｎｇｔｈ）が含まれている。
【００５５】
このバスプロトコル変換装置１００では、外部モリ制御装置１０からのコマンドが外部メモリ装置４０の容量外である場合でも、外部メモリ装置４０の最大容量を把握しているため、外部メモリ制御装置１０に対してエラー応答を行うことができる。
【００５６】
そして、外部メモリ制御装置１０からのコマンドが外部メモリ装置４０の容量内である場合は、２次バスＩＦ制御部１３０の２次バス用制御レジスタ部１３３に備えられた２次バス用コマンド生成部１３３Ｂで外部メモリ装置用のコマンド変換を行い発行する。
【００５７】
同時に、コマンドのＬＢＡとブロック長情報をバスマスターＩＦ部１２３に通知する。
【００５８】
バスマスターＩＦ部１２３は、リードバースト転送の開始/再開と一時停止の条件を確認ながら、バススレーブＩＦ部１２１とコマンド分のＤＭＡリードバースト転送を実行する。
【００５９】
１次バス制御部１１０の１次バス用受信ＩＦ部１１１に備えられた受信用ＦＩＦＯメモリ１１１ＡからＮＯＴ  ＥＭＰＴＹ状態を検出して、且つ２次バス制御部１３０の２次バス用送信部１３２に備えられた送信用ＦＩＦＯメモリ１３２ＡがＮＯＴ  ＦＵＬＬ状態の場合に、リードバースト転送を開始または再開する。
【００６０】
また、上記１次バス制御部１１０の１次バス用受信ＩＦ部１１１に備えられた受信用ＦＩＦＯメモリ１１１ＡからＡＬＭＯＳＴ  ＥＭＰＴＹ状態を検出した場合、または、２次バス制御部１３０の２次バス用送信部１３２に備えられた送信用ＦＩＦＯメモリ１３２ＡがＡＬＭＯＳＴ  ＦＵＬＬ状態である場合に、リードバースト転送を一時停止する。
【００６１】
そして、ＤＭＡリードバースト転送を完了した後、２次バスＩＦ制御部１３０の２次バス用制御レジスタ部１３３に備えられた２次バス用ステータス解析部１３３Ａは、外部メモリ装置４０のコマンド終了ステータスを認識する。
【００６２】
さらに、上記１次バスＩＦ制御部１１０の１次バス用制御レジスタ部１１３に備えられた１次バス用ステータス生成部１１３Ｂは、上記２次バスＩＦ制御部１３０の２次バス用ステータス解析部１３３Ａによる解析結果も基づいて、外部メモリ制御装置１０にコマンド終了状態であるステータス情報を通知する。
【００６３】
また、このバスプロトコル変換装置１００において、外部メモリ装置４０へのデータの書込み動作は、図９に示すように、ＳＣＳＩ／ＡＴＡＰＩコマンドにおける読出しコマンドＲｅａｄ（１０）を用いて行われる。
【００６４】
すなわち、外部メモリ制御装置１０が発行する読出しコマンドＲｅａｄ（１０）のＬＢＡと転送ブロック数は、通常、把握している外部メモリ装置４０の容量内で実行される。
【００６５】
ここで、ＳＣＳＩ／ＡＴＡＰＩコマンドにおける読出しコマンドＲｅａｄ（１０）は、指定されたブロック数のデータを、指定された論理ブロックアドレスへ転送するコマンドである。この読出しコマンドＲｅａｄ（１０）には、図７の（Ｃ）に示すように、Ｏｐｅｒａｔｉｏｎ  Ｃｏｄｅ（２ＡＨ）と論理ブロックアドレス（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）と転送長（Ｔｒａｎｓｆｅｒ  Ｌｅｎｇｔｈ）が含まれている。
【００６６】
上記バスプロトコル変換装置１００は、外部モリ制御装置１０からのコマンドが外部メモリ装置４０の容量外である場合でも、外部メモリ装置４０の最大容量を把握しているため、上記外部メモリ制御装置１０に対してエラー応答を行うことができる。
【００６７】
そして、外部メモリ制御装置１０からのコマンドが、外部メモリ装置４０の容量内である場合は、２次バスＩＦ制御部１３０の２次バス用コマンド生成部１３３Ｂで外部メモリ装置４０用のコマンド変換を行い、コマンドを発行する。
【００６８】
同時に、コマンドのＬＢＡとブロック長情報をバスマスターＩＦ部１２３に通知する。
【００６９】
バスマスターＩＦ部１２３は、ライトバースト転送の開始/再開と一時停止の条件を確認しながら、バススレーブＩＦ部１２１との間でコマンド分のＤＭＡライトバースト転送を実行する。
【００７０】
また、１次バス制御部１１０の１次バス用送信ＩＦ部１１２に備えられた送信用ＦＩＦＯメモリ１１２ＡからＮＯＴ  ＦＵＬＬ状態を検出して、且つ２次バス制御部１３０の２次バス用受信ＩＦ部１３１に備えられた受信用ＦＩＦＯメモリ１３１ＡがＮＯＴ  ＥＭＰＴＹ状態の場合に、ライトバースト転送を開始または再開する。
【００７１】
また、上記１次バス制御部１１０の送信用ＦＩＦＯメモリ１１２ＡからＡＬＭＯＳＴ  ＦＵＬＬ状態を検出した場合、または、上記２次バス制御部１３０の受信用ＦＩＦＯメモリ１３１ＡがＡＬＭＯＳＴ  ＥＭＰＴＹ状態である場合に、ライトバースト転送を一時停止する。
【００７２】
ＤＭＡライトバースト転送を完了した後、２次バスＩＦ制御部１３０の２次バス用制御レジスタ部１３３に備えられた２次バス用ステータス解析部１３３Ａは、外部メモリ装置４０のコマンド終了ステータスを認識する。
【００７３】
そして、１次バスＩＦ制御部１１０の１次バス用制御レジスタ部１１３に備えられた１次バス用ステータス生成部１１３Ｂは、上記２次バスＩＦ制御部１３３の２次バス用ステータス解析部１３３Ａによる解析結果に基づいて、外部メモリ制御装置１０にコマンド終了状態であるステータス情報を通知する。
【００７４】
＜バスプロトコル変換装置の機能＞
すなわち、このバスプロトコル変換装置１００では、その機能的な構成を図１０に示すように、１次バスＩＦ制御部１１０の１次バス用制御レジスタ部１１３に備えられた１次バス用コマンド解析部１１３Ａは、１次バス２０に接続された外部メモリ制御装置１０から１次バスＩＦ制御部１１０に送られてくるコマンドを検出するコマンド検出手段として機能する。そして、２次バスＩＦ制御部１３０の２次バス用制御レジスタ部１３３に備えられた２次バス用コマンド生成部１３３Ｂは、上記１次バス用コマンド解析部１１３Ａで検出したコマンドを２次バスＩＦ制御部１３０から２次バス３０を介して外部メモリ装置４０に送るコマンドに変換するコマンド変換手段として機能する。
【００７５】
また、上記２次バスＩＦ制御部１３０の２次バス用制御レジスタ部１３３に備えられた２次バス用ステータス解析部１３３Ａは、上記２次バス３０に接続された外部メモリ装置４０から送られてくるステータスを検出するステータス検出手段として機能する。
そして、上記１次バスＩＦ制御部１１０の１次バス用制御レジスタ部１１３に備えられた１次バス用ステータス生成部１１３Ｂは、上記２次バス用ステータス解析部１３３Ａで検出したステータスを上記１次バスＩＦ制御部１１０から上記１次バス２０を介して上記外部メモリ制御装置１０に送るステータスに変換するステータス変換手段として機能する。
【００７６】
さらに、上記１次バスＩＦ制御部１１０と上記２次バスＩＦ制御部１３０と間に設けられたデータ転送制御部１２０は、上記１次バス２０に接続された外部メモリ制御装置１０と上記２次バス３０に接続された外部メモリ装置４０との間のデータ転送をＤＭＡバス１２２を介して行うにあたり、上記１次バスＩＦ制御部１１０に通信バッファとして備えられるＦＩＦＯメモリをリングバッファで使用し、上記リングバッファを仮想メモリとして割り当て、上記外部メモリ制御装置１０からのデータ転送サイズの値を、そのまま上記２次バスＩＦ制御部１３０に伝え、上記２次バスＩＦ制御部と３０仮想メモリ間で、１回のバスマスターＤＭＡ動作を実行すると同時にバスプロトコル変換のデータ転送を行う。
【００７７】
そして、上記データ転送制御部１２０は、ＣＰＵ１４０のアドレス空間と独立して、上記１次バス用の受信用ＦＩＦＯメモリ１１１Ａと送信用ＦＩＦＯメモリ１１２Ａを同一の連続アドレス空間にマッピングし、外部メモリサイズ取得手段として機能する上記外部メモリサイズ取得部１２４の外部メモリサイズ記憶用レジスタ部１２４Ａに記憶された上記外部メモリサイズを上限アドレスとしたＤＭＡアドレス空間を持ち、上記外部メモリサイズを上記１次バスＩＦ制御部１１０経由で、上記外部メモリ制御装置１０に送信する。また、上記バスマスターＩＦ部１２３は、上記２次バスＩＦ制御部１３０に備えられた上記２次バス用コマンド生成部１１３Ｂから転送アドレスと転送サイズを取得して、上記２次バス３０と上記ＤＭＡバス１２２間のバースト転送を行う。
【００７８】
また、上記データ転送制御部１２０は、上記バススレーブＩＦ部１２１により上記１次バス２０と上記ＤＭＡバス間のデータ転送を行うとともに、上記バスマスターＩＦ部１２３により上記２次バス３０と上記ＤＭＡバス１２２間のバースト転送を行う。上記バススレーブＩＦ部１２１は、上記１次バスＩＦ制御部１１０に上記通信バッファとして備えられた１次バス用の受信用ＦＩＦＯメモリ１１１Ａからデータ有り状態を検出して、上記バスマスターＩＦ部１２３にリードバースト転送の許可要求を行う。また、上記バススレーブＩＦ部１２１は、上記受信用ＦＩＦＯメモリ１１１Ａからデータ無し状態を検出して、上記バスマスターＩＦ部１２３にリードバースト転送の停止要求を行う。また、上記バススレーブＩＦ部１２１は、上記１次バスＩＦ制御部１１０に上記通信バッファとして備えられた送信用ＦＩＦＯメモリ１１２Ａからデータフル状態を検出して、上記バスマスターＩＦ部１２３にライトバースト転送の停止要求を行う。さらに、上記バススレーブＩＦ部１２１は、上記送信用ＦＩＦＯメモリ１１２Ａからデータフル以外状態を検出して、上記バスマスターＩＦ部１２３にライトバースト転送の許可要求を行う。そして、上記バスマスターＩＦ部１２３は、上記２次バスＩＦ制御部１３０に上記通信バッファとして備えられた２次バス用の受信用ＦＩＦＯメモリ１３１Ａのデータ有り状態と上記バススレーブＩＦ部１２１のライトバースト許可要求を検出して、ライトバースト転送を実行する。また、上記バスマスターＩＦ部１２３は、上記２次バス用の受信用ＦＩＦＯメモリ１３１Ａのデータ無し状態又は上記バススレーブＩＦ部１２１のライトバースト停止要求を検出して、ライトバースト転送を停止する。また、上記バスマスターＩＦ部１２３は、上記２次バスＩＦ制御部１３０に上記通信バッファとして備えられた２次バス用の送信用ＦＩＦＯメモリ１３２Ａのデータフル状態又は上記バススレーブＩＦ部１２１のリードバースト停止要求を検出して、リードバースト転送を停止する。さらに、上記バスマスターＩＦ部１２３は、上記２次バス用の送信用ＦＩＦＯメモリ１３２Ａのデータフル以外状態と上記バススレーブＩＦ部１２１のリードバースト転送の許可要求を検出して、リードバースト転送を実行する。
【符号の説明】
【００７９】
１０  外部メモリ制御装置、２０  １次バス、３０  ２次バス、４０  外部メモリ装置、４１  コマンド実行部、４２  ＤＭＡ部、４３  メモリ部、１００  バスプロトコル変換装置、１１０  １次バスＩＦ制御部、１１１  １次バス用受信ＩＦ部、１１１Ａ  受信用ＦＩＦＯメモリ、１１２  １次バス用送信ＩＦ部 、１１２Ａ  送信用ＦＩＦＯメモリ、１１３  １次バス用制御レジスタ部、１１３Ａ  １次バス用コマンド解析部、１１３Ｂ  １次バス用ステータス生成部、１２０データ転送制御部、１２１  バススレーブＩＦ部、１２２  ＤＭＡバス、１２３  バスマスターＩＦ部、１２４  外部メモリサイズ取得部、１２４Ａ  外部メモリサイズ記憶用レジスタ部、１３０  ２次バスＩＦ制御部、１３１  ２次バス用受信ＩＦ部、１３１Ａ  受信用ＦＩＦＯメモリ、１３２  ２次バス用送信ＩＦ部、１３２Ａ  送信用ＦＩＦＯメモリ、１３３  ２次バス用制御レジスタ部、１３３Ａ  ２次バス用コマンド解析部、１３３Ｂ  ２次バス用コマンド生成部、１４０  ＣＰＵ、１５０  メモリ、１６０  ＣＰＵバス
【図１】
0005527512.tif 000002
【図２】
0005527512.tif 000003
【図３】
0005527512.tif 000004
【図４】
0005527512.tif 000005
【図５】
0005527512.tif 000006
【図６】
0005527512.tif 000007
【図７】
0005527512.tif 000008
【図８】
0005527512.tif 000009
【図９】
0005527512.tif 000010
【図１０】
0005527512.tif 000011