(57)【特許請求の範囲】
【請求項１】
記憶装置と他の記憶装置との間で行われるデータ転送を制御するメモリコントローラであって、
データ転送中におけるデータの読出し位置又は書込み位置である第１の記憶領域を示す第１のアドレス情報を含むコマンド情報を取得する取得部と、
前記第１の記憶領域が、外部メモリの特定のアドレス空間である特定外部アドレス空間に属するかを判定する判定部と、
前記第１の記憶領域が前記特定外部アドレス空間に属する場合に、前記特定外部アドレス空間と前記記憶装置に実装されたメモリの特定のアドレス空間である特定内部アドレス空間との対応関係を示す変換情報に基づいて、前記第１のアドレス情報を前記特定内部アドレス空間に属する第２の記憶領域を示す第２のアドレス情報に変換する変換部と、
前記第１のアドレス情報を含む前記コマンド情報、又は前記第１のアドレス情報が前記第２のアドレス情報に変換された前記コマンド情報に基づいて前記データを転送する転送部と、
を備えるメモリコントローラ。
【請求項２】
前記記憶装置及び前記他の記憶装置は、ＳＳＤである、
請求項１に記載のメモリコントローラ。
【請求項３】
前記コマンド情報は、ＳＡＴＡ規格に準拠する処理を行うための情報を含む、
請求項２に記載のメモリコントローラ。
【請求項４】
前記コマンド情報は、ＳＣＳＩ規格に準拠する処理を行うための情報を含む、
請求項２に記載のメモリコントローラ。
【請求項５】
前記コマンド情報は、ＮＶＭｅ規格に準拠する処理を行うための情報を含む、
請求項２に記載のメモリコントローラ。
【請求項６】
前記特定内部アドレス空間は、前記記憶装置の作業領域内に設定される、
請求項１〜５のいずれか１項に記載のメモリコントローラ。
【請求項７】
前記データ転送の対象となるデータを一時的に保存するバッファメモリ、
を更に備え、
前記転送部は、前記第１の記憶領域が前記特定外部アドレス空間に含まれる場合に、前記データを前記バッファメモリに転送することなく前記第２の記憶領域に転送する、
請求項１〜６のいずれか１項に記載のメモリコントローラ。
【請求項８】
他の記憶装置との間で行われるデータ転送を制御するメモリコントローラを備える記憶装置であって、
前記メモリコントローラは、
データ転送中におけるデータの読出し位置又は書込み位置である第１の記憶領域を示す第１のアドレス情報を含むコマンド情報を取得する取得部と、
前記第１の記憶領域が、外部メモリの特定のアドレス空間である特定外部アドレス空間に属するかを判定する判定部と、
前記第１の記憶領域が前記特定外部アドレス空間に属する場合に、前記特定外部アドレス空間と前記記憶装置に実装されたメモリの特定のアドレス空間である特定内部アドレス空間との対応関係を示す変換情報に基づいて、前記第１のアドレス情報を前記特定内部アドレス空間に属する第２の記憶領域を示す第２のアドレス情報に変換する変換部と、
前記第１のアドレス情報を含む前記コマンド情報、又は前記第１のアドレス情報が前記第２のアドレス情報に変換された前記コマンド情報に基づいて前記データを転送する転送部と、
を備える記憶装置。
【請求項９】
記憶装置、他の記憶装置、及び制御装置を含むデータ転送システムであって、
前記記憶装置は、前記他の記憶装置との間で行われるデータ転送を制御するメモリコントローラを備え、
前記制御装置は、外部メモリを備え、データ転送中におけるデータの読出し位置又は書込み位置である第１の記憶領域を示す第１のアドレス情報を含むコマンド情報を生成し、
前記メモリコントローラは、
前記コマンド情報を取得する取得部と、
前記第１の記憶領域が、前記外部メモリの特定のアドレス空間である特定外部アドレス空間に属するかを判定する判定部と、
前記第１の記憶領域が前記特定外部アドレス空間に属する場合に、前記特定外部アドレス空間と前記記憶装置に実装されたメモリの特定のアドレス空間である特定内部アドレス空間との対応関係を示す変換情報に基づいて、前記第１のアドレス情報を前記特定内部アドレス空間に属する第２の記憶領域を示す第２のアドレス情報に変換する変換部と、
前記第１のアドレス情報を含む前記コマンド情報、又は前記第１のアドレス情報が前記第２のアドレス情報に変換された前記コマンド情報に基づいて前記データを転送する転送部と、
を備えるデータ転送システム。
【請求項１０】
前記記憶装置は、読出し用記憶装置として用いられ、
前記他の記憶装置は、書込み用記憶装置として用いられる、
請求項９に記載のデータ転送システム。
【請求項１１】
前記記憶装置は、書込み用記憶装置として用いられ、
前記他の記憶装置は、読出し用記憶装置として用いられる、
請求項９に記載のデータ転送システム。
【請求項１２】
記憶装置と他の記憶装置との間で行われるデータ転送を制御するコンピュータが、
データ転送中におけるデータの読出し位置又は書込み位置である第１の記憶領域を示す第１のアドレス情報を含むコマンド情報を取得するステップと、
前記第１の記憶領域が、外部メモリの特定のアドレス空間である特定外部アドレス空間に属するかを判定するステップと、
前記第１の記憶領域が前記特定外部アドレス空間に属する場合に、前記特定外部アドレス空間と前記記憶装置に実装されたメモリの特定のアドレス空間である特定内部アドレス空間との対応関係を示す変換情報に基づいて、前記第１のアドレス情報を前記特定内部アドレス空間に属する第２の記憶領域を示す第２のアドレス情報に変換するステップと、
前記第１のアドレス情報を含む前記コマンド情報、又は前記第１のアドレス情報が前記第２のアドレス情報に変換された前記コマンド情報に基づいて前記データを転送するステップと、
を実行するデータ転送方法。
【請求項１３】
他の記憶装置との間でデータ転送を行う記憶装置を制御するコンピュータに、
データ転送中におけるデータの読出し位置又は書込み位置である第１の記憶領域を示す第１のアドレス情報を含むコマンド情報を取得する処理と、
前記第１の記憶領域が、外部メモリの特定のアドレス空間である特定外部アドレス空間に属するかを判定する処理と、
前記第１の記憶領域が前記特定外部アドレス空間に属する場合に、前記特定外部アドレス空間と前記記憶装置に実装されたメモリの特定のアドレス空間である特定内部アドレス空間との対応関係を示す変換情報に基づいて、前記第１のアドレス情報を前記特定内部アドレス空間に属する第２の記憶領域を示す第２のアドレス情報に変換する処理と、
前記第１のアドレス情報を含む前記コマンド情報、又は前記第１のアドレス情報が前記第２のアドレス情報に変換された前記コマンド情報に基づいて前記データを転送する処理と、
を実行させるデータ転送プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリコントローラ、記憶装置、データ転送システム、データ転送方法、及びデータ転送プログラムに関する。
【背景技術】
【０００２】
高速化を続けるＳＳＤ（Solid  State  Drive）において、バスインタフェースにＰＣＩｅ（Peripheral  Components  Interconnect  Express）を採用するものが普及しつつある。ＰＣＩｅは、ＰＣ、サーバ等のコンピュータにグラフィックカード等の拡張デバイスを接続するためのインタフェースであり、拡張デバイス内の記憶領域をシステムメモリのアドレス空間の特定の領域として割当てることが可能である。この機能を用いることで、ホストプロセッサは、アクセスすべき記憶領域を示すメモリアドレスを用いて拡張デバイス内の記憶領域に対して読出し及び書込みを行うことが可能となる。
【０００３】
不揮発性メモリと、ホストプロセッサがメモリアドレスでアクセス可能なＲＡＭとを有し、電源遮断時にＲＡＭに記憶されているデータを不揮発性メモリに退避させ、電源復帰時に退避させたデータを不揮発性メモリから読み出すことによりＲＡＭの状態を復旧させる記憶装置がある。
【０００４】
また、不揮発性メモリと、ホストプロセッサがメモリアドレスでアクセス可能なＲＡＭとを有し、メモリアドレスと対応する不揮発性メモリの記憶位置をテーブルで管理する記憶装置がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願公開第２０１３／０２０５０６５号公報
【特許文献２】米国特許第８６８３１３１号公報
【非特許文献１】ＮＶＭ  Ｅｘｐｒｅｓｓ  http://www.nvmexpress.org/wp-content/uploads/NVM-Express-1_1b.pdf
【発明の概要】
【発明が解決しようとする課題】
【０００６】
記憶装置のバックアップ、スナップショットの作成等を行う際には、記憶装置間でデータ転送を行う必要がある。一般的なコンピュータアーキテクチャでは、ＳＳＤ、ＨＤＤ（Hard  Disk  Drive）等の記憶装置は、ホストコンピュータの主記憶領域の二次記憶領域として使用される。ホストコンピュータの主記憶領域は、当該記憶装置にとっては外部メモリとなる。そのため、ＳＡＴＡ（Serial  Advanced  Technology  Attachment））、ＮＶＭｅ（Non-Volatile  Memory  Express）等の記憶装置向けインタフェースは、主記憶領域と記憶装置内の記憶領域との間でのデータ転送を前提とした設計がなされている。そのため、記憶装置間でデータ転送を行う場合には、記憶装置外の主記憶領域（外部メモリ）を中継したデータ転送を行わなければならない。
【０００７】
そこで、以下の実施形態では、外部メモリを中継することなく複数の記憶装置間におけるデータ転送を可能にすることを目的とする。
【課題を解決するための手段】
【０００８】
実施形態のメモリコントローラは、記憶装置と他の記憶装置との間で行われるデータ転送を制御するメモリコントローラであって、データ転送中におけるデータの読出し位置又は書込み位置である第１の記憶領域を示す第１のアドレス情報を含むコマンド情報を取得する取得部と、第１の記憶領域が、外部メモリの特定のアドレス空間である特定外部アドレス空間に属するかを判定する判定部と、第１の記憶領域が特定外部アドレス空間に属する場合に、特定外部アドレス空間と記憶装置に実装されたメモリの特定のアドレス空間である特定内部アドレス空間との対応関係を示す変換情報に基づいて、第１のアドレス情報を特定内部アドレス空間に属する第２の記憶領域を示す第２のアドレス情報に変換する変換部と、第１のアドレス情報を含むコマンド情報、又は第１のアドレス情報が第２のアドレス情報に変換されたコマンド情報に基づいてデータを転送する転送部とを備えることを特徴とする。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態のデータ転送システムの構成を例示する図。
【図２】コマンド情報を例示する図。
【図３】データサイズを示す情報を含むアドレス情報を例示する図。
【図４】外部アドレス空間情報を例示する図。
【図５】特定外部アドレス空間に含まれる記憶領域（第１のアクセス位置）を特定内部アドレス空間に含まれる記憶領域（第２のアクセス位置）に変換する処理を模式的に示す図。
【図６】第１の実施形態のデータ転送システムのハードウェア構成を例示する図。
【図７】第１の記憶装置における処理の流れを例示するフローチャート。
【図８】第１の実施形態のデータ転送システムにおける読出し処理の流れを例示するフローチャート。
【図９】第１の実施形態のデータ転送システムにおける書込み処理の流れを例示するフローチャート。
【図１０】第２の実施形態のデータ転送システムの構成を例示する図。
【図１１】第２の実施形態のデータ転送システムにおける読出し処理の流れを例示するフローチャート。
【図１２】第２の実施形態のデータ転送システムにおける書込み処理の流れを例示するフローチャート。
【図１３】第３の実施形態のデータ転送システムの構成を例示する図。
【図１４】第３の実施形態のデータ転送システムにおける読出し及び書込み処理の流れを例示するフローチャート。
【図１５】第４の実施形態のデータ転送システムの構成を例示する図。
【図１６】第４の実施形態のデータ転送システムにおける読出し及び書込み処理の流れを例示するフローチャート。
【発明を実施するための形態】
【００１０】
（第１の実施形態）
図１は、第１の実施形態におけるデータ転送システム１の構成を例示する図である。データ転送システム１は、第１の記憶装置１１（記憶装置）、第２の記憶装置１２（他の記憶装置）、及び外部メモリ１３を含む。
【００１１】
第１の記憶装置１１と第２の記憶装置１２との間でデータ転送が行われる。第１の記憶装置１１及び第２の記憶装置１２はＳＳＤであることを想定するが、これに限定されるものでない。外部メモリ１３はホストコンピュータのＲＡＭを含む主記憶領域であることを想定するが、これに限定されるものではない。本実施形態においては、データ転送が外部メモリ１３を中継して行われる場合と、第１の記憶装置１１と第２の記憶装置１２との間で直接行われる場合とがある。
【００１２】
第１の記憶装置１１は、不揮発性メモリ２１、揮発性メモリ２２、メモリコントローラ２３、及び転送部２４を含む。
【００１３】
不揮発性メモリ２１は、第１の記憶装置１１の主要な記憶媒体として機能するメモリであり、データ転送の対象となるデータを保持する。不揮発性メモリ２１は一般的なＳＳＤで利用されるＮＡＮＤフラッシュメモリ等であることを想定するが、これに限定されるものではない。不揮発性メモリ２１は不揮発であることを想定するが、ＤＲＡＭ等の揮発性メモリを用い、電源遮断時にデータを所定のメモリに退避させる等の適宜なデータ保護手段を備える構成であってもよい。不揮発性メモリ２１を１つ以上のモジュールで構成し、複数のモジュールを並列動作させることにより、処理の高速化を実現することができる。
【００１４】
揮発性メモリ２２は、ホストコンピュータ、第２の記憶装置１２等の外部装置がメモリアドレスを用いてアクセス可能な記憶領域を有するメモリである。揮発性メモリ２２はＤＲＡＭ（Dynamic  Random  Access  Memory）、ＳＲＡＭ（Static  Random  Access  Memory）等であることを想定するが、これに限定されるものではない。図１において、揮発性メモリ２２は後述するメモリコントローラ２３の外部に実装されている構成が示されているが、メモリコントローラ２３の内部に実装されてもよい。揮発性メモリ２２は揮発性であることを想定するが、ＭＲＡＭ（Magnetoresistive  Random  Access  Memory）等の不揮発性メモリを用いてもよい。上記不揮発性メモリ２１と同様に、揮発性メモリ２２を複数のモジュールで構成することにより、高速化を実現することができる。
【００１５】
メモリコントローラ２３は、データ転送を行う際に第１の記憶装置１１を制御するユニットである。メモリコントローラ２３はプログラムにより制御されるＣＰＵ、適宜な論理回路等を用いて構成されることを想定するが、これに限定されるものではない。メモリコントローラ２３は、機能部として取得部３１、判定部３２、変換部３３、及び記憶部３４を含む。
【００１６】
取得部３１は、データ転送に関する処理を実行するためのコマンド情報を取得する。コマンド情報は、第１の記憶装置１１を外部から操作するための情報であって、例えば外部メモリ１３を内蔵するホストコンピュータにより生成された（外部メモリ１３に記憶された）情報であることを想定するが、これに限定されるものではない。
【００１７】
図２は、コマンド情報４１を例示する図である。本例のコマンド情報４１は、４バイト×６ワードからなり、コマンド識別子４２、論理ブロックアドレス情報４３、及びアドレス情報４４を含む。本例のコマンド情報４１はＳＡＴＡ規格又はＮＶＭｅ規格に準拠するものであることを想定するが、これに限定されるものではない。
【００１８】
コマンド識別子４２は、データ転送における処理の内容を示す情報であり、例えば読出し又は書込みを特定する情報である。コマンド識別子４２が読出しである場合、当初のコマンド情報４１には、第１の記憶装置１１又は第２の記憶装置１２からデータを読み出して外部メモリ１３へ書き込む指示が含まれている。コマンド識別子４２が書込みである場合、当初のコマンド情報４１には、外部メモリ１３からデータを読み出して第１の記憶装置１１又は第２の記憶装置１２へ書き込む指示が含まれている。
【００１９】
論理ブロックアドレス情報４３は、所定の纏まったサイズのデータブロックを基本単位（例えば５１２バイト）とするアクセス位置を示す情報である。なお、当該サイズ、データブロック数をコマンド情報により特定してもよいし、後述するアドレス情報４４から判断してもよい。
【００２０】
アドレス情報４４は、データ転送を行う際のアクセス先となる記憶領域を示すメモリアドレスを含む情報である。コマンド識別子４２が読出しである場合、不揮発性メモリ２１から読み出したデータはアドレス情報４４が示す記憶領域に書き込まれる。コマンド識別子４２が書込みである場合、アドレス情報４４が示す記憶領域からデータが読み出され、読み出されたデータは不揮発性メモリ２１に書き込まれる。本実施形態においては、アドレス情報４４に含まれるメモリアドレスはアドレス空間における３２ｂｉｔ又は６４ｂｉｔで表現される特定のバイトを示す情報（バイトアドレッシング）であることを想定するが、これに限定されるものではない。また、１つのコマンド情報４１に含まれるアドレス情報は、ＮＶＭｅにおけるＰＲＰ（Physical  Region  Page）リストのように、複数のメモリアドレスからなるリスト構造であってもよい。
【００２１】
１つのアドレス情報４４で特定されるデータのサイズは、例えば４ＫＢ等の固定サイズであってもよいし、アドレス情報４４毎に異なる可変サイズであってもよい。可変サイズとする場合、アドレス情報４４にメモリアドレスに加え、データサイズを示す情報を付加すればよい。図３は、データサイズを示す情報を含むアドレス情報４４’を例示する図である。本例のアドレス情報４４’は、ＮＶＭｅ、ＳＣＳＩ（Small  Computer  System  Interface）等で定義される情報であり、記憶領域を示すメモリアドレスとデータのサイズを示す情報とを含む。
【００２２】
判定部３２は、コマンド情報４１と外部アドレス空間情報５１とに基づいて、アドレス情報４４が示す記憶領域が外部メモリ１３内の特定外部アドレス空間５５に属するかを判定する。特定外部アドレス空間５５とは、外部メモリ１３の記憶領域のうちの特定のアドレス空間である。特定外部アドレス空間５５に対応する記憶領域（後述する特定内部アドレス空間５６）は、第１の記憶装置１１（本実施形態においては揮発性メモリ２１）に物理的に実装されることが想定され、外部メモリ１３に実装される必要はない。特定外部アドレス空間５５は予め設定された固定値であることを想定するが、これに限定されるものではない。外部アドレス空間情報５１は、特定外部アドレス空間５５を示す情報である。図１においては、外部アドレス空間情報５１がメモリコントローラ２３内に設けられた記憶部３４に記憶されている構成が示されているが、これに限定されるものではない。
【００２３】
図４は、外部アドレス空間情報５１を例示する図である。本例の外部アドレス空間情報５１は、アドレス空間の先頭を示すアドレス情報ＳｔａｒｔＡｄｄｒとアドレス空間の長さを示すＬｅｎｇｔｈとを含む。本例の外部アドレス空間情報５１は、０ｘ００１０００００から０ｘ０００１００００（６５５３６）バイト分の領域を示している。すなわち、メモリアドレスが０ｘ００１０００００から０ｘ００１０ＦＦＦＦまでのアドレス空間が特定外部アドレス空間５５であることが示されている。
【００２４】
ＰＣＩｅでは、ＰＣＩコンフィグレーションレジスタの１つであるＢＡＲ（Base  Address  Register）を制御することで、特定のアドレス空間にＰＣＩｅデバイスの記憶領域を割当てることができる。外部アドレス空間情報５１は、第１の記憶装置１１側で固定された情報であってもよいし、ＢＡＲのように外部からプログラム可能な情報であってもよい。
【００２５】
変換部３３は、アドレス情報４４（第１のアドレス情報）が示す記憶領域（第１の記憶領域）が特定外部アドレス空間５５に属する場合に、変換情報５２に基づいて、当該アドレス情報４４（第１のアドレス情報）を、特定内部アドレス空間５６に属する記憶領域（第２の記憶領域）を示すアドレス情報４４（第２のアドレス情報）に変換する。特定内部アドレス空間５６とは、第１の記憶装置１１の揮発性メモリ２２の記憶領域のうちの特定のアドレス空間である。特定内部アドレス空間５６は予め設定された固定値であることを想定するが、これに限定されるものではない。変換情報５２とは、特定外部アドレス空間５５と特定内部アドレス空間５６との対応関係を示す情報である。図１においては、変換情報５２がメモリコントローラ２３内に設けられた記憶部３４に記憶されている構成が示されているが、これに限定されるものではない。
【００２６】
図５は、特定外部アドレス空間５５に属する記憶領域（第１の記憶領域）を特定内部アドレス空間５６に属する記憶領域（第２の記憶領域）に変換する処理を模式的に例示する図である。本例では、メモリアドレス０ｘ４１００〜０ｘ４３００で特定される特定外部アドレス空間５５が、メモリアドレス０ｘ８７００〜０ｘ８９００で特定される特定内部アドレス空間５６に対応することが示されている。
【００２７】
例えば、取得部３１により取得されたコマンド情報４１のアドレス情報４４がメモリアドレス「０ｘ４１８０」を含む場合、判定部３２は、外部アドレス空間情報５１に基づいて、当該メモリアドレス「０ｘ４１８０」は特定外部アドレス空間５５「０ｘ４１００〜０ｘ４３００」に属すると判定する。その後、変換部３３は、変換情報５２に基づいて、当該メモリアドレス「０ｘ４１８０」を含むアドレス情報４４を特定内部アドレス空間５６内の対応するメモリアドレス「０ｘ８７８０」を含むアドレス情報４４に変換する。変換部３３は上記のようにアドレス情報４４を変換したコマンド情報４１を、後述する転送部２４へ出力する。
【００２８】
一方、取得部３１が取得したアドレス情報４４が例えばメモリアドレス「０ｘ４４８０」を含む場合、判定部３２は当該メモリアドレス「０ｘ４４８０」は特定外部アドレス空間５５「０ｘ４１００〜０ｘ４３００」に属さないと判定する。その後、変換部３３は当該メモリアドレス「０ｘ４４８０」を含むコマンド情報４１をそのまま転送部２４へ出力する。
【００２９】
転送部２４は、変換部３３から出力されたコマンド情報４１に従ってデータ転送の対象となるデータを不揮発性メモリ２１、揮発性メモリ２２、第２の記憶装置１２、及び外部メモリ１３の間で転送する。
【００３０】
例えば、コマンド識別子４２により読出しが指示された場合、転送部２４は不揮発性メモリ２１からデータを読出し、アドレス情報４４が示す記憶領域に当該データの書込みを行う。ここで、判定部３２により上記第１の記憶領域が特定外部アドレス空間５５に属すると判定され、変換部３３によりアドレス情報４４が上記第２の記憶領域を示すように変換された場合には、揮発性メモリ２２の特定内部アドレス空間５６に書込みを行う。一方、判定部３２による上記第１の記憶領域が特定外部アドレス空間５５に属さないと判定され、アドレス情報４４が変換されなかった場合には、外部メモリ１３に書込みが行われる。
【００３１】
コマンド識別子４２により書込みが指示された場合、転送部２４はアドレス情報４４が示す記憶領域からデータを読出し、不揮発性メモリ２１に当該データを書き込む。ここで、判定部３２により上記第１の記憶領域が特定外部アドレス空間５５に属すると判定され、変換部３３によりアドレス情報４４が上記第２の記憶領域を示すように変換された場合には、揮発性メモリ２２の特定内部アドレス空間５６から読出しを行う。一方、判定部３２による上記第１の記憶領域が特定外部アドレス空間５５に属さないと判定され、アドレス情報４４が変換されなかった場合には、外部メモリ１３から読出しが行われる。
【００３２】
なお、転送部２４はコマンド情報４１に応じて、アクセスする不揮発性メモリ２１の領域を特定する。このとき、一般的なＳＳＤと同様に、コマンド情報４１の論理ブロックアドレス情報４３が示す論理アドレスと、これに対応する不揮発性メモリ２１の記憶領域を特定する物理アドレスとの対応表（論物変換テーブル）を用いることを想定するが、これに限定されるものではない。
【００３３】
図６は、データ転送システム１のハードウェア構成を例示する図である。図６において、第１の記憶装置１１、第２の記憶装置１２、及びホストコンピュータ１５が示されている。
【００３４】
第１の記憶装置１１及び第２の記憶装置１２は、それぞれＣＰＵ６１Ａ，６１Ｂ、ＮＡＮＤフラッシュ等の不揮発性メモリ６２Ａ，６２Ｂ、ＤＲＡＭ等のＲＡＭ６３Ａ，６３Ｂ、及び入出力ポート（Ｉ／Ｏ）６４Ａ，６４Ｂがバス６５Ａ，６５Ｂで接続された構成を有している。第１の記憶装置１１のＣＰＵ６１Ａは、不揮発性メモリ６２Ａに記憶されたプログラムに従って上記取得部３１、判定部３２、及び変換部３３の機能を実現するための処理を行う。第２の記憶装置１２のＣＰＵ６１Ｂは、必ずしも第１の記憶装置１１のＣＰＵ６１Ａと同一の処理を行う機能を有している必要はない。
【００３５】
ホストコンピュータ１５は、ＣＰＵ６６、不揮発性メモリ６７、ＲＡＭ６８、キーボード、マウス等の入力デバイス６９、ディスプレイ等の出力デバイス７０、及び入出力ポート（Ｉ／Ｏ）７１がバス７２で接続された構成を有している。ＣＰＵ６６は、不揮発性メモリ６７に記憶されたプログラムに従って上記コマンド情報４１を生成するための処理等を行う。ＲＡＭ６８は、上記外部メモリ１３の少なくとも一部を構成する。
【００３６】
なお、図６に示すハードウェア構成は例示に過ぎず、他の様々な構成が適用され得る。例えば、データ転送を行う記憶装置１１，１２の数は２つに限られず、３つ以上であってもよい。また、外部メモリ１３は１つの外部装置（ホストコンピュータ１５）により構成されることに限られず、複数の外部装置により構成されてもよい。
【００３７】
図７は、第１の記憶装置１１における処理の流れを例示するフローチャートである。取得部３１（図１参照）がコマンド情報４１（図２参照）を取得すると（Ｓ１０１）、判定部３２は外部アドレス空間情報５１（図４参照）に基づいて、アドレス情報４４が示す第１の記憶領域が特定外部アドレス空間５５（図５参照）に属するかを判定する（Ｓ１０２）。
【００３８】
ステップＳ１０２において、ＹＥＳと判定された場合、変換部３３はアドレス情報４４を、特定内部アドレス空間５６（図５参照）に属する第２の記憶領域を示すアドレス情報４４に変換して出力する（Ｓ１０３）。一方、ステップＳ１０２において、ＮＯと判定された場合、変換部３３はアドレス情報４４を変換せずに出力する（Ｓ１０４）。転送部２４は、変換部３３から出力されたコマンド情報４１に含まれるアドレス情報４４に従ってデータを転送する（Ｓ１０５）。
【００３９】
図８は、データ転送システム１における読出し処理の流れを例示するフローチャートである。取得部３１はコマンド情報４１を取得し（Ｓ２０１）、コマンド情報４１の内容を解釈する（Ｓ２０２）。本例では、コマンド識別子４２で指定される動作は読出しであり、２つのアドレス情報４４が含まれ、一方のアドレス情報４４は特定外部アドレス空間５５に属する第１の記憶領域を示し、他方のアドレス情報４４は特定外部アドレス空間５５以外の外部メモリ１３内のアドレス空間に属する第２の記憶領域を示すものとする。
【００４０】
判定部３２は、一方のアドレス情報４４について判定を行い、判定結果がＹＥＳである（一方のアドレス情報４４が示す記憶領域は特定外部アドレス空間５５に属する）と判定する（Ｓ２０３）。この判定結果に基づき、変換部３３は、一方のアドレス情報４４を特定内部アドレス空間５６に属する記憶領域を示すアドレス情報４４に変換して出力する（Ｓ２０４）。
【００４１】
転送部２４は、変換されたアドレス情報４４を含むコマンド情報４１に基づき不揮発性メモリ２１に対して読出し要求を行う（Ｓ２０５）。不揮発性メモリ２１は、読出し要求に基づきデータを読み出す（Ｓ２０６）。転送部２４は、変換されたアドレス情報４４に基づき、揮発性メモリ２２に対して、読み出されたデータの書込み要求を行う（Ｓ２０７）。揮発性メモリ２２は、書込み要求に基づき特定内部アドレス空間５６内の記憶領域にデータを書き込む（Ｓ２０８）。
【００４２】
一方、判定部３２は、他方のアドレス情報４４について判定を行い、判定結果がＮＯである（他方のアドレス情報４４が示す記憶領域は特定外部アドレス空間５５に属さない）と判定する（Ｓ２０９）。この判定結果に基づき、変換部３３は、他方のアドレス情報４４を変換せずに出力する（Ｓ２１０）。
【００４３】
転送部２４は、コマンド情報４１に基づき不揮発性メモリ２１に対して読出し要求を行う（Ｓ２１１）。不揮発性メモリ２１は、読出し要求に基づきデータを読み出す（Ｓ２１２）。読出しが完了すると、転送部２４は、アドレス情報４４に基づき外部メモリ１３に対してデータの書込み要求を行う（Ｓ２１３）。外部メモリ１３は、書込み要求に基づきデータを書き込む（Ｓ２１４）。
【００４４】
図９は、データ転送システム１における書込み処理の流れを例示するフローチャートである。取得部３１はコマンド情報４１を取得し（Ｓ３０１）、コマンド情報４１の内容を解釈する（Ｓ３０２）。本例では，コマンド識別子４２で指定される動作は書込みであり、２つのアドレス情報４４が含まれ、一方のアドレス情報４４は特定外部アドレス空間５５に属する第１の記憶領域を示し、他方のアドレス情報４４は特定外部アドレス空間５５以外の外部メモリ１３内のアドレス空間に属する第２の記憶領域を示すものとする。
【００４５】
判定部３２は、一方のアドレス情報４４のアドレス判定を行い、判定結果がＹＥＳであると判定する（Ｓ３０３）。この判定結果に基づき、変換部３３は、一方のアドレス情報４４を特定内部アドレス空間５６に属する記憶領域を示すアドレス情報４４に変換して出力する（Ｓ３０４）。
【００４６】
転送部２４は、変換されたアドレス情報４４を含むコマンド情報４１に基づき揮発性メモリ２２に読出し要求を行う（Ｓ３０５）。揮発性メモリ２２は、読出し要求に基づきデータを読み出す（Ｓ３０６）。読出しが完了すると、転送部２４は、コマンド情報４１に基づき不揮発性メモリ２１に対してデータの書込み要求を行う（Ｓ３０７）。不揮発性メモリ２１は、書込み要求に基づきデータを書き込む（Ｓ３０８）。
【００４７】
一方、判定部３２は、他方のアドレス情報４４について判定を行い、判定結果がＮＯであると判定する（Ｓ３０９）。この判定結果に基づき、変換部３３は、他方のアドレス情報４４を変換せずに出力する（Ｓ３１０）。
【００４８】
転送部２４は、コマンド情報４１に基づき外部メモリ１３に対して読出し要求を行う（Ｓ３１１）。外部メモリ１３は、読出し要求に基づきデータを読み出す（Ｓ３１２）。読出しが完了すると、転送部２４は、コマンド情報４１に基づき不揮発性メモリ２１に対してデータの書込み要求を行う（Ｓ３１３）。不揮発性メモリ２１は、書込み要求に基づきデータを書き込む（Ｓ３１４）。
【００４９】
本実施形態によれば、コマンド情報４１に含まれるアドレス情報４４が特定外部アドレス空間５５に属する記憶領域を示す場合には、データ転送の対象となるデータの転送先が第１の記憶装置１１の揮発性メモリ２２の特定内部アドレス空間５６内の記憶領域に変換される。これにより、第１の記憶装置１１と第２の記憶装置１２との間で行われるデータ転送を、外部メモリ１３を介することなく行うことが可能となる。
【００５０】
以下、図面を参照して他の実施形態について説明するが、上記第１の実施形態と同一又は同様の作用効果を奏する箇所については同一の符号を付してその説明を省略する場合がある。
【００５１】
（第２の実施形態）
図１０は、第２の実施形態におけるデータ転送システム８１の構成を例示する図である。データ転送システム８１は、第３の記憶装置９１、第２の記憶装置１２、及び外部メモリ１３を含む。第３の記憶装置９１と第２の記憶装置１２との間でデータ転送が行われる。
【００５２】
第３の記憶装置８１は、不揮発性メモリ２１、揮発性メモリ２２、及びメモリコントローラ９２を含む。メモリコントローラ９２は、取得部３１、判定部３２、変換部３３、記憶部３４、バッファメモリ９５、及び転送部９６を含む。
【００５３】
バッファメモリ９５は、データ転送の対象となるデータを一時的に記憶するメモリである。バッファメモリ９５はＤＲＡＭ、ＳＲＡＭ等に代表される揮発性メモリであることを想定するが、これに限定されるものではない。バッファメモリ９５は、例えば所定の大きさのデータブロックを纏めて不揮発性メモリ２１に書き込む際等に利用される。バッファメモリ９５は、メモリコントローラ９２により適切なフロー制御がなされる。バッファメモリ９５の全ての記憶領域が使用された状態（フル状態）では、新しいデータをバッファメモリ９５に書込むことができない。フロー制御としては、例えば、未使用のメモリアドレスをフリーリストとしてキュー等により管理し、書込みを行う際に適切なメモリアドレスを割当て、使用が終了した際にそのメモリアドレスを解放する方式を想定するが、これに限定されるものではない。
【００５４】
また、バッファメモリ９５は、不揮発性メモリ２１のアクセス速度と揮発性メモリ２２又は外部メモリ１３のアクセス速度との差を吸収する役割を担うこともある。バッファメモリ９５は、複数のデータブロック間にまたがるエラー訂正符号（ＥＣＣ）のエンコード・デコード、データの暗号化・複合化、圧縮処理等の作業領域として利用されてもよい。本実施形態においては、バッファメモリ９５はメモリコントローラ９２に実装されているが、これに限定されるものではない。また、揮発性メモリ２２の一部の領域をバッファメモリとして利用してもよい。
【００５５】
本実施形態における転送部９６は、バッファメモリ９５を中継してデータ転送を行う。ここで、判定部３２による判定結果がＹＥＳの場合（アドレス情報４４が示す記憶領域が特定外部アドレス空間５５に属する場合）、データ転送の対象となるデータの読出し位置又は書込み位置は、揮発性メモリ２２の特定内部アドレス空間５６内となる。このとき、バッファメモリ９５を中継すると、内部メモリ同士のデータ転送が発生するため、処理効率が悪くなる。そこで、転送部９６は、判定部３２による判定結果がＹＥＳの場合には、バッファメモリ９５への中継をスキップし、揮発性メモリ２２へ直接アクセスをする。なお、本実施形態においては、転送部９６はメモリコントローラ９２に実装されているが、これに限定されるものではない。
【００５６】
図１１は、データ転送システム８１における読出し処理の流れを例示するフローチャートである。取得部３１は、コマンド情報４１を取得し（Ｓ４０１）、コマンド情報４１の内容を解釈する（Ｓ４０２）。本例では、コマンド識別子４２で指定される動作は読出しであり、２つのアドレス情報４４を含み、一方のアドレス情報４４は特定外部アドレス空間５５に属する第１の記憶領域を示し、他方のアドレス情報４４は特定外部アドレス空間５５以外の外部メモリ１３内のアドレス空間に属する第２の記憶領域を示すものとする。
【００５７】
判定部３２は、一方のアドレス情報４４について判定を行い、判定結果がＹＥＳである（一方のアドレス情報４４が示す記憶領域は特定外部アドレス空間５５に属する）と判定する（Ｓ４０３）。この判定結果に基づき、変換部３３は、一方のアドレス情報４４を特定内部アドレス空間５６に属する記憶領域を示すアドレス情報４４に変換して出力する（Ｓ４０４）。
【００５８】
転送部９６は、コマンド情報４１に基づき不揮発性メモリ２１に対して読出し要求を行う（Ｓ４０５）。不揮発性メモリ２１は、読出し要求に基づきデータを読み出す（Ｓ４０６）。転送部９６は、変換されたアドレス情報４４に基づき、揮発性メモリ２２に対して、読み出されたデータの書込み要求を行う（Ｓ４０７）。このとき、転送部９６は、バッファメモリ９５への書込み要求及び読出し要求を行わない。揮発性メモリ２２は、書込み要求に基づき特定内部アドレス空間５６内の記憶領域にデータを書き込む（Ｓ４０８）。
【００５９】
一方、判定部３２は、他方のアドレス情報４４について判定を行い、判定結果がＮＯである（他方のアドレス情報４４が示す記憶領域は特定外部アドレス空間５５に属さない）と判定する（Ｓ４０９）。この判定結果に基づき、変換部３３は、他方のアドレス情報４４を変換せずに出力する（Ｓ４１０）。
【００６０】
転送部９６は、コマンド情報４１に基づき不揮発性メモリ２１に対して読出し要求を行う（Ｓ４１１）。不揮発性メモリ２１は、読出し要求に基づきデータを読み出す（Ｓ４１２）。読出しが完了すると、転送部９６は、フロー制御に従って割当てられたバッファメモリ９５の記憶領域に、読み出されたデータの書込み要求を行う（Ｓ４１３）。バッファメモリ９５は、書き込み要求に基づきデータを書き込む（Ｓ４１４）。バッファメモリ９５への書込みが完了すると、転送部９６は、バッファメモリ９５に対して読出し要求を行う（Ｓ４１５）。バッファメモリ９５は、読出し要求に基づきデータを読み出す（Ｓ４１６）。読出しが完了すると、転送部９６は、コマンド情報４１に基づき外部メモリ１３にデータの書込み要求を行う（Ｓ４１７）。外部メモリ１３は、書込み要求に基づきデータを書き込む（Ｓ４１８）。
【００６１】
図１２は、データ転送システム８１における書込み処理の流れを例示するフローチャートである。取得部３１は、コマンド情報４１を取得し（Ｓ５０１）、コマンド情報４１の内容を解釈する（Ｓ５０２）。本例では、コマンド識別子４２で指定される動作は書込みであり、２つのアドレス情報４４を含み、一方のアドレス情報４４は特定外部アドレス空間５５に属する第１の記憶領域を示し、他方のアドレス情報４４は特定外部アドレス空間５５以外の外部メモリ１３内のアドレス空間に属する第２の記憶領域を示すものとする。
【００６２】
判定部３２は、一方のアドレス情報４４のアドレス判定を行い、判定結果がＹＥＳであると判定する（Ｓ５０３）。この判定結果に基づき、変換部３３は、一方のアドレス情報４４を特定内部アドレス空間５６に属する記憶領域を示すアドレス情報４４に変換して出力する（Ｓ５０４）。
【００６３】
転送部９６は、変換されたアドレス情報４４を含むコマンド情報４１に基づき揮発性メモリ２２に読出し要求を行う（Ｓ５０５）。揮発性メモリ２２は、読出し要求に基づきデータを読み出す（Ｓ５０６）。読出しが完了すると、転送部９６は、コマンド情報４１に基づき不揮発性メモリ２１に対してデータの書込み要求を行う（Ｓ５０７）。このとき、転送部９６は、バッファメモリ９５への書き込み要求及び読出し要求を行わない。不揮発性メモリ２１は、書込み要求に基づきデータを書き込む（Ｓ５０８）。
【００６４】
一方、判定部３２は、他方のアドレス情報４４について判定を行い、判定結果がＮＯであると判定する（Ｓ５０９）。この判定結果に基づき、変換部３３は、他方のアドレス情報４４を変換せずに出力する（Ｓ５１０）。
【００６５】
転送部９６は、コマンド情報４１に基づき外部メモリ１３に対して読出し要求を行う（Ｓ５１１）。外部メモリ１３は、読出し要求に基づきデータを読み出す（Ｓ５１２）。読出しが完了すると、転送部９６は、フロー制御に従って割当てられたバッファメモリ９５の記憶領域に、読出されたデータの書込み要求を行う（Ｓ５１３）。バッファメモリ９５は、書き込み要求に基づきデータを書き込む（Ｓ５１４）。バッファメモリ９５への書込みが完了すると、転送部９６は、バッファメモリ９５に対して読出し要求を行う（Ｓ５１５）。バッファメモリ９５は、読出し要求に基づきデータを読み出す（Ｓ５１６）。読出しが完了すると、転送部９６は、コマンド情報４１に基づき不揮発性メモリ２１にデータの書込み要求を行う（Ｓ５１７）。不揮発性メモリ２１は、書込み要求に基づきデータを書き込む（Ｓ５１８）。
【００６６】
本実施形態によれば、アドレス情報４４が示す記憶領域が外部メモリ１３から内部メモリである揮発性メモリ２２に変更された場合には、外部メモリ１３へのアクセスを省略できるだけでなく、バッファメモリ９５へのアクセスも省略できる。
【００６７】
（第３の実施形態）
図１３は、第３の実施形態におけるデータ転送システム１０１の構成を例示する図である。データ転送システム１０１は、第１の記憶装置１１、書込み用記憶装置１１１、制御装置１１２、及び回線交換装置１１３を含む。本実施形態においては、上記メモリコントローラ２３を備える第１の記憶装置１１が読出し用記憶装置として用いられる。
【００６８】
第１の記憶装置１１は、上述したように、外部装置からメモリアドレスによってアクセス可能な揮発性メモリ２２を備え、メモリコントローラ２３によって外部メモリ１３の記憶領域を示すメモリアドレス（アドレス情報４４）を揮発性メモリ２２の特定内部アドレス空間５６内の記憶領域を示すメモリアドレスに変換するアドレス変換機能を有する。このようなアドレス変換があった場合には、第１の記憶装置１１は読出されたデータを揮発性メモリ２２に記憶する。
【００６９】
書込み用記憶装置１１１は、第１の記憶装置１１から読み出されたデータを記憶する機能を有するが、メモリコントローラ２３によるアドレス変換機能を有していなくてもよい。書込み用記憶装置１１１は、書込みコマンドに基づいて、外部メモリ１３又は第１の記憶装置１１の揮発性メモリ２２から読み出したデータを自らの不揮発性メモリに書き込む。
【００７０】
制御装置１１２は、システム全体を制御する役割を担い、第１の記憶装置１１および書込み用記憶装置１１１のホストとしてコマンド情報４１の生成、発行等を行う。制御装置１１２はＰＣ、サーバ等のコンピュータであることを想定するが、これに限定されるものではない。
【００７１】
回線交換装置１１３は、第１の記憶装置１１、書込み用記憶装置１１１、及び制御装置１１２を相互に接続し、各装置間でデータの送受を可能にする装置である。回線交換装置１１２はクロスバスイッチのように単独で複数の装置を相互接続する装置であることを想定するが、これに限定されるものではない。例えば、ルータを組み合わせたネットワークによりパケット交換を行う構成等を回線交換装置１１３の代わりに適用することができる。また、回線交換装置１１３が階層構造を有することで、様々な構成（トポロジ）の相互結合網、例えばメッシュネットワーク、ツリーネットワーク等を構築することができる。
【００７２】
図１４は、データ転送システム１０１における読出し及び書込み処理の流れを例示するフローチャートである。制御装置１１２は、第１の記憶装置１１に記憶されているデータを読み出すためのコマンド情報４１を生成し、第１の記憶装置１１に対する読出し要求を行う（Ｓ６０１）。このとき、コマンド情報４１に含まれる１つ以上のアドレス情報４４は、第１の記憶装置１１の揮発性メモリ２２内の記憶領域を示す。このコマンド情報４１は回線交換装置１１３に入力され、回線交換装置１１３はコマンド情報４１を第１の記憶装置１１に転送する（Ｓ６０２）。第１の記憶装置１１は、取得したコマンド情報４１に従って不揮発性メモリ２１からデータを読出し（Ｓ６０３）、当該コマンド情報４１に含まれるアドレス情報４４に従って、読出したデータを揮発性メモリ２２に書き込む（Ｓ６０４）。
【００７３】
上記読出し処理が完了すると、制御装置１１２は、書込み用記憶装置１１１にデータを書き込むためのコマンド情報４１を生成し、書込み用記憶装置１１１に対する書込み要求を行う（Ｓ６０５）。このとき、コマンド情報４１に含まれる１つ以上のアドレス情報４４は、上記読出し処理時のコマンド情報４１に含まれる１つ以上のアドレス情報４４を含む。書込み処理のコマンド情報４１は回線交換装置１１３に入力され、回線交換装置１１３はこのコマンド情報４１を書込み用記憶装置１１１に転送する（Ｓ６０６）。書込み用記憶装置１１１は、取得したコマンド情報４１に含まれるアドレス情報４４に従って、第１の記憶装置１１の揮発性メモリ２２又は外部メモリ１３に対する読出し要求を行う（Ｓ６０７）。このとき、書込み用記憶装置１１１は、データが揮発性メモリ２２に記憶されている場合であっても、これに関わらず外部メモリ１３に対する読出し要求を行う。読出し要求を取得した第１の記憶装置１１は、揮発性メモリ２２（読出し要求された外部メモリ１３の特定外部アドレス空間５５に対応する特定内部アドレス空間５６）からデータを読み出す（Ｓ６０８）。読出されたデータは回線交換装置１１３に入力され、回線交換装置１１３はデータを書込み用記憶装置１１１へ転送する（Ｓ６０９）。書込み用記憶装置１１１は、コマンド情報４１に従って、取得したデータを不揮発性メモリに書き込む（Ｓ６１０）。
【００７４】
本実施形態が示すように、メモリコントローラ２３を備える第１の記憶装置２２を読み出し用記憶装置として使用すれば、これを書込み用記憶装置１１１として使用しなくても、外部メモリへのアクセスを省略することができる。また、特殊なコマンドを用いる必要がないため、一般的なインタフェース（例えばＮＶＭｅ）の仕様を崩さずに実現することが可能である。
【００７５】
（第４の実施形態）
図１５は、第４の実施形態におけるデータ転送システム２０１の構成を例示する図である。データ転送システム２０１は、第１の記憶装置１１、読出し用記憶装置２１１、制御装置１１２、及び回線交換装置１１３を含む。本実施形態においては、上記メモリコントローラ２３を備える第１の記憶装置１１が書込み用記憶装置として用いられる。
【００７６】
読出し用記憶装置２１１は、第１の記憶装置１１に書き込まれるデータを記憶し且つ読み出す機能を有するが、メモリコントローラ２３によるアドレス変換機能を有していなくてもよい。読出し用記憶装置２１１は、読出しコマンドに基づいて、自らの不揮発性メモリに記憶されたデータを読み出す。
【００７７】
図１６は、データ転送システム２０１における読出し及び書込み処理の流れを例示するフローチャートである。制御装置１１２は、読出し用記憶装置２１１に記憶されているデータを読み出すためのコマンド情報４１を生成し、読出し用記憶装置２１１に対する読出し要求を行う（Ｓ７０１）。このとき、コマンド情報４１に含まれる１つ以上のアドレス情報４４は、第１の記憶装置１１１の揮発性メモリ２２内の記憶領域を示す。このコマンド情報４１は回線交換装置１１３に入力され、回線交換装置１１３はコマンド情報４１を読み出し用記憶装置２１１に転送する（Ｓ７０２）。読出し用記憶装置２１１は、取得したコマンド情報４１に従って自らの不揮発性メモリからデータを読出し（Ｓ７０３）、当該コマンド情報４１に含まれるアドレス情報４４に従って、外部メモリ１３に対する書込み要求を行う（Ｓ７０４）。このとき、読出し用記憶装置２１１は、データの書込み先が第１の記憶装置１１の揮発性メモリ２２であっても、これに関わらず外部メモリ１３に対する書込み要求を行う。読み出されたデータは回線交換装置１１３に入力され、回線交換装置１１３はデータを第１の記憶装置１１へ転送する（Ｓ７０５）。読み出されたデータと書込み要求を取得した第１の記憶装置１１は、データを揮発性メモリ２２へ書き込む（Ｓ７０６）。
【００７８】
上記読出し処理が完了すると、制御装置１１２は、第１の記憶装置１１にデータを書き込むためのコマンド情報４１を生成し、第１の記憶装置１１に対する書込み要求を行う（Ｓ７０７）。このとき、コマンド情報４１に含まれる１つ以上のアドレス情報４４は、上記読出し処理時のコマンド情報４１に含まれる１つ以上のアドレス情報４４を含む。書込み処理のコマンド情報４１は回線交換装置１１３に入力され、回線交換装置１１３はこのコマンド情報４１を第１の記憶装置１１に転送する（Ｓ７０８）。第１の記憶装置１１は、取得したコマンド情報４１に含まれるアドレス情報４４（特定内部アドレス空間５６内の記憶領域を示すように変換されたアドレス情報４４）に従って揮発性メモリ２２からデータを読出し（Ｓ７０９）、読み出したデータを不揮発性メモリに書き込む（Ｓ７１０）。
【００７９】
本実施形態が示すように、メモリコントローラ２３を備える第１の記憶装置２２を書込み用記憶装置として使用すれば、これを読出し用記憶装置２１１として使用しなくても、外部メモリへのアクセスを省略することができる。また、特殊なコマンドを用いる必要がないため、一般的なインタフェース（例えばＮＶＭｅ）の仕様を崩さずに実現することが可能である。
【００８０】
上記機能を実現させるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録されて提供することができる。また、プログラムは、ネットワークに接続された所定の記憶装置から所定の情報処理装置にダウンロードすることにより提供されてもよいし、予めＲＯＭ等に組み込まれて所定の情報処理装置に提供されてもよい。また、プログラムは、上記各部の機能を実現する複数のモジュールから構成されてもよい。
【００８１】
以上、本発明の実施形態を説明したが、これらの実施形態は例として提示したものであり、発明の範囲を限定することを意図するものではない。この新規な実施形態はその他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これらの実施形態及びその変形は発明の範囲及び要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８２】
１，８１，１０１，２０１  データ転送システム
１１  第１の記憶装置（記憶装置）
１２  第２の記憶装置（他の記憶装置）
９１  第３の記憶装置（記憶装置）
１３  外部メモリ
２１  不揮発性メモリ
２２  揮発性メモリ
２３，９２  メモリコントローラ
２４，９６  転送部
３１  取得部
３２  判定部
３３  変換部
３４  記憶部
４１  コマンド情報
４２  コマンド識別子
４３  論理ブロックアドレス情報
４４，４４’  アドレス情報
５１  外部アドレス空間情報
５２  変換情報
５５  特定外部アドレス空間
５６  特定内部アドレス空間
９５  バッファメモリ
１１１  書込み用記憶装置
１１２  制御装置
１１３  回線交換装置
２１１  読出し用記憶装置
【図１】
0006517549.tif 000002
【図２】
0006517549.tif 000003
【図３】
0006517549.tif 000004
【図４】
0006517549.tif 000005
【図５】
0006517549.tif 000006
【図６】
0006517549.tif 000007
【図７】
0006517549.tif 000008
【図８】
0006517549.tif 000009
【図９】
0006517549.tif 000010
【図１０】
0006517549.tif 000011
【図１１】
0006517549.tif 000012
【図１２】
0006517549.tif 000013
【図１３】
0006517549.tif 000014
【図１４】
0006517549.tif 000015
【図１５】
0006517549.tif 000016
【図１６】
0006517549.tif 000017