(57)【特許請求の範囲】
【請求項１】
ホストコントローラとホストメモリとを備えるホストに接続され、前記ホストメモリは第１メモリ領域と第２メモリ領域とを備える、メモリシステムであって、
前記ホストからリードコマンドおよびライトコマンドを受信するインタフェースユニットと、
不揮発性メモリと、
前記ライトコマンドに応じて書き込み対象のデータを前記不揮発性メモリに書き込み、
前記リードコマンドによって要求された読み出し対象のデータが前記第１メモリ領域に格納されているか否かの判定を実行し、前記読み出し対象のデータが前記第１メモリ領域に格納されている場合、前記ホストコントローラに、前記読み出し対象のデータを前記第１メモリ領域から前記第２メモリ領域にコピーさせ、前記読み出し対象のデータが前記第１メモリ領域に格納されていない場合、前記不揮発性メモリから前記読み出し対象のデータを読み出して、前記ホストコントローラに、前記不揮発性メモリから読み出した読み出し対象のデータを前記第２メモリ領域に格納させる、コントローラユニットと、
を備えることを特徴とするメモリシステム。
【請求項２】
前記コントローラユニットは、前記ライトコマンドに応じて書き込み対象のデータを前記不揮発性メモリに書き込む際、前記書き込み対象のデータを前記第１メモリ領域から取得する、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記コントローラユニットは、前記判定のために、前記第１メモリ領域に格納されているタグ情報を取得し、
前記タグ情報は、前記書き込み対象のデータが前記第１メモリ領域に格納されているか否かを示す情報である、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項４】
前記コントローラユニットは、前記ホストコントローラに、前記読み出し対象のデータを前記第１メモリ領域の第１アドレスから前記第２メモリ領域の第２アドレスにコピーさせ、
前記第１アドレスおよび前記第２アドレスは、前記リードコマンドに基づいて決定される、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項５】
前記リードコマンドは、第３アドレスおよびコマンド識別情報を含み、
前記第３アドレスは、前記読み出し対象のデータの論理ブロックアドレスであり、
前記第１アドレスは、前記第３アドレスに基づいて決定され、
前記第２アドレスは、前記コマンド識別情報に基づいて決定される、
ことを特徴とする請求項４に記載のメモリシステム。
【請求項６】
前記コントローラユニットは、デスティネーションフラグを前記ホストコントローラに設定し、
前記デスティネーションフラグは、前記第１アドレスから前記第２アドレスにコピーすることを示す、
ことを特徴とする請求項４に記載のメモリシステム。
【請求項７】
前記コントローラユニットは、前記読み出し対象のデータが前記第１メモリ領域に格納されていない場合、前記ホストコントローラに、前記不揮発性メモリから読み出した読み出し対象のデータを前記第１メモリ領域に格納させ、その後、前記ホストコントローラに、前記読み出し対象のデータを前記第１メモリ領域から前記第２メモリ領域にコピーさせる、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項８】
ホストコントローラと、
第１メモリ領域および第２メモリ領域を備えるホストメモリと、
を備えるホストシステムと、
前記ホストシステムからリードコマンドおよびライトコマンドを受信するインタフェースユニットと、
不揮発性メモリと、
前記ライトコマンドに応じて書き込み対象のデータを前記不揮発性メモリに書き込み、
前記リードコマンドによって要求された読み出し対象のデータが前記第１メモリ領域に格納されているか否かの判定を実行し、前記読み出し対象のデータが前記第１メモリ領域に格納されている場合、前記ホストコントローラに、前記読み出し対象のデータを前記第１メモリ領域から前記第２メモリ領域にコピーさせ、前記読み出し対象のデータが前記第１メモリ領域に格納されていない場合、前記不揮発性メモリから前記読み出し対象のデータを読み出して、前記ホストコントローラに、前記不揮発性メモリから読み出した読み出し対象のデータを前記第２メモリ領域に格納させる、コントローラユニットと、
を備えるメモリシステムと、
を備えることを特徴とする情報処理装置。
【請求項９】
前記コントローラユニットは、前記ライトコマンドに応じて書き込み対象のデータを前記不揮発性メモリに書き込む際、前記書き込み対象のデータを前記第１メモリ領域から取得する、
ことを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記コントローラユニットは、前記判定のために、前記第１メモリ領域に格納されているタグ情報を取得し、
前記タグ情報は、前記書き込み対象のデータが前記第１メモリ領域に格納されているか否かを示す情報である、
ことを特徴とする請求項８に記載の情報処理装置。
【請求項１１】
前記コントローラユニットは、前記ホストコントローラに、前記読み出し対象のデータを前記第１メモリ領域の第１アドレスから前記第２メモリ領域の第２アドレスにコピーさせ、
前記第１アドレスおよび前記第２アドレスは、前記リードコマンドに基づいて決定される、
ことを特徴とする請求項８に記載の情報処理装置。
【請求項１２】
前記リードコマンドは、第３アドレスおよびコマンド識別情報を含み、
前記第３アドレスは、前記読み出し対象のデータの論理ブロックアドレスであり、
前記第１アドレスは、前記第３アドレスに基づいて決定され、
前記第２アドレスは、前記コマンド識別情報に基づいて決定される、
ことを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
前記コントローラユニットは、デスティネーションフラグを前記ホストコントローラに設定し、
前記デスティネーションフラグは、前記第１アドレスから前記第２アドレスにコピーすることを示す、
ことを特徴とする請求項１２に記載の情報処理装置。
【請求項１４】
前記書き込み対象のデータは、前記第２メモリ領域から前記第１メモリ領域にコピーされ、その後、前記不揮発性メモリに格納される、
ことを特徴とする請求項８に記載の情報処理装置。
【請求項１５】
前記ホストシステムは、前記第２アドレス、前記第３アドレスおよび前記コマンド識別情報を備える第１リードコマンドを生成するホストプロセッサをさらに備え、
前記ホストコントローラは、
前記第１リードコマンドに含まれる前記第２アドレスと前記コマンド識別情報との対応関係を記憶するとともに、前記第３アドレスおよび前記コマンド識別情報を含む第２リードコマンドを生成して前記コントローラユニットに送信し、
前記コントローラユニットは、前記第３アドレスに基づいて前記第１アドレスを決定し、前記決定した第１アドレス、前記コマンド識別情報および前記デスティネーションフラグを前記ホストコントローラに設定し、
前記ホストコントローラは、前記設定されたコマンド識別情報を、前記対応関係に基づいて前記第２アドレスに変換する、
ことを特徴とする請求項１３に記載の情報処理装置。
【請求項１６】
前記コントローラユニットは、前記読み出し対象のデータが前記第１メモリ領域に格納されていない場合、前記ホストコントローラに、前記不揮発性メモリから読み出した読み出し対象のデータを前記第１メモリ領域に格納させ、その後、前記ホストコントローラに、前記読み出し対象のデータを前記第１メモリ領域から前記第２メモリ領域にコピーさせる、
ことを特徴とする請求項８に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリシステムおよび情報処理装置に関する。
【背景技術】
【０００２】
従来、ＵＭＡ(Unified  Memory  Architecture)が知られている。ＵＭＡは、ホストに搭載されるメモリをホストとデバイスとが共有して使用するメモリアーキテクチャである。ＵＭＡによれば、メモリコストの低減を図ることができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−２６９１６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＵＭＡが適用される情報処理装置においては、ホストの外部記憶装置としてのメモリシステムがメモリを使用することが考えられる。
【０００５】
本発明の一つの実施形態は、ホストに搭載されるメモリを用いてアクセス性能を可及的に向上させたメモリシステムおよび情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一つの実施形態によれば、メモリシステムは、ホストコントローラとホストメモリとを備えるホストに接続される。前記ホストメモリは第１メモリ領域と第２メモリ領域とを備える。メモリシステムは、インタフェースユニットと、不揮発性メモリと、コントローラユニットとを備える。前記インタフェースユニットは、前記ホストからリードコマンドおよびライトコマンドを受信する。前記コントローラユニットは、前記ライトコマンドに応じて書き込み対象のデータを前記不揮発性メモリに書き込む。また、前記コントローラユニットは、前記リードコマンドによって要求された読み出し対象のデータが前記第１メモリ領域に格納されているか否かの判定を実行する。前記読み出し対象のデータが前記第１メモリ領域に格納されている場合、前記コントローラユニットは、前記ホストコントローラに、前記読み出し対象のデータを前記第１メモリ領域から前記第２メモリ領域にコピーさせる。前記読み出し対象のデータが前記第１メモリ領域に格納されていない場合、前記コントローラユニットは、前記不揮発性メモリから前記読み出し対象のデータを読み出して、前記ホストコントローラに、前記不揮発性メモリから読み出した読み出し対象のデータを前記第２メモリ領域に格納させる。
【図面の簡単な説明】
【０００７】
【図１】図１は、第１の実施形態の情報処理装置の構成例を示す図である。
【図２】図２は、デバイス使用領域のメモリ構造を説明する図である。
【図３】図３は、リード処理を説明するシーケンス図である。
【図４】図４は、キャッシュ判定処理を説明するシーケンス図である。
【図５】図５は、ヒット時転送処理を説明するシーケンス図である。
【図６】図６は、コマンドまたはデータの流れを説明する図である。
【図７】図７は、第１の実施形態のミス時転送処理を説明するシーケンス図である。
【図８】図８は、第２の実施形態のミス時転送処理を説明するシーケンス図である。
【発明を実施するための形態】
【０００８】
以下に添付図面を参照して、実施形態にかかるメモリシステムおよび情報処理装置を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
【０００９】
（第１の実施形態）
図１に、第１の実施形態の情報処理装置の構成例を示す図である。本情報処理装置は、ホスト１と、ホスト１の外部記憶装置として機能するメモリシステム２とを備える。ホスト１とメモリシステム２との間は通信路３で接続されている。
【００１０】
情報処理装置は、例えば、パーソナルコンピュータ、携帯電話、撮像装置などである。メモリシステム２が準拠する規格および通信路３の規格は、任意である。例えば、メモリシステム２は、ＵＦＳ（Universal  Flash  Storage）規格に準拠したフラッシュメモリである。通信路３の通信規格としては、例えばＭＩＰＩ（Mobile  Industry  Processor  Interface）Ｍ−ＰＨＹが採用される。
【００１１】
メモリシステム２は、不揮発性メモリとしてのＮＡＮＤフラッシュメモリ（ＮＡＮＤメモリ）２１０と、ＮＡＮＤメモリ２１０とホスト１との間のデータ転送を行うデバイスコントローラ２００とを備えている。なお、メモリシステム２の不揮発性メモリとしては、ＮＡＮＤフラッシュメモリ以外の種類のメモリであっても採用可能である。例えば、MRAM (magnetoresistive random access memory)またはReRAM (resistance random access memory)などが採用可能である。
【００１２】
ＮＡＮＤメモリ２１０は、メモリセルアレイを有する１以上のメモリチップによって構成される。メモリセルアレイは、複数のメモリセルがマトリクス状に配列されて構成される。個々のメモリセルアレイは、データ消去の単位であるブロックを複数配列して構成される。さらに、各ブロックは、複数のページより構成されている。各ページは、データの書き込み及び読み出しの単位である。
【００１３】
ＮＡＮＤメモリ２１０は、Ｌ２Ｐテーブル２１１およびホスト１から送信されるユーザデータを記憶する（ユーザデータ２１２）。ユーザデータ２１２は、例えば、ホスト１の実行環境を提供するオペレーティングシステムプログラム（ＯＳ）、ホスト１がＯＳ上で実行するユーザプログラム、または、ＯＳまたはユーザプログラムが入出力するデータを含む。
【００１４】
Ｌ２Ｐテーブル２１１は、メモリシステム２がホスト１に対する外部記憶装置として機能するために必要となる管理情報の１つである。Ｌ２Ｐテーブル２１１は、ホスト１がメモリシステム２にアクセスする際に使用する論理ブロックアドレス（ＬＢＡ：Logical  block  address）と、ＮＡＮＤメモリ２１０内の物理アドレス（ブロックアドレス＋ページアドレス＋ページ内記憶位置）とを対応づけるアドレス変換情報である。後述するＬ２Ｐキャッシュ領域３００には、このＬ２Ｐテーブル２１１の一部が一時的に格納される（即ちキャッシュされる）。Ｌ２Ｐキャッシュ領域３００にキャッシュされる内容と区別するために、これ以降、ＮＡＮＤメモリ２１０に記憶されているＬ２Ｐテーブル２１１をＬ２Ｐ本体２１１と表記する。
【００１５】
デバイスコントローラ２００は、通信路３の接続インタフェースであるホスト接続アダプタ２０１と、ＮＡＮＤメモリ２１０との間の接続インタフェースであるＮＡＮＤ接続アダプタ２０４と、デバイスコントローラ２００の制御を実行するデバイスコントローラ主要部２０２と、ＲＡＭ２０３とを備えている。
【００１６】
ＲＡＭ２０３は、ＮＡＮＤメモリ２１０とホスト１との間のデータ転送のためのバッファとして用いられる。また、ＲＡＭ２０３は、ホスト１から受信したコマンドをキューイングするコマンドキューとして使用される。ホスト１からのコマンドは、ホスト１が送信したコマンド毎にユニークな識別情報を含んでいる。ホスト１およびメモリシステム２においては、複数のコマンドが送受信された場合には、識別情報によって夫々のコマンドが特定される。
【００１７】
デバイスコントローラ主要部２０２は、ホスト接続アダプタ２０１を介してホスト１とＲＡＭ２０３との間のデータ転送を制御したり、ＮＡＮＤ接続アダプタ２０４を介してＲＡＭ２０３とＮＡＮＤメモリ２１０との間のデータ転送を制御したりする。デバイスコントローラ主要部２０２は、ホスト１との間の通信路３においてバスマスタとして機能して第１ポート２３０を用いてデータ転送を行う。また、デバイスコントローラ主要部２０２は、さらに２つのバスマスタ２０５、２０６を備えている。バスマスタ２０５は、第２ポート２３１を用いてホスト１との間のデータ転送を行うことができ、バスマスタ２０６は、第３ポート２３２を用いてホスト１との間のデータ転送を行うことができる。
【００１８】
また、デバイスコントローラ主要部２０２は、キャッシュ制御部２０７を備える。キャッシュ制御部２０７は、デバイス使用領域１０２に確保されたキャッシュ（Ｌ２Ｐキャッシュ領域３００、Ｌ２Ｐキャッシュタグ領域３１０、データキャッシュ領域４００、およびデータキャッシュタグ領域４１０）を制御する。デバイス使用領域１０２に確保されたキャッシュについては後述する。
【００１９】
なお、デバイスコントローラ主要部２０２は、例えば、演算装置および記憶装置を備えたマイクロコンピュータユニットにより構成される。当該演算装置が前記記憶装置に予め格納されたファームウェアを実行することによってデバイスコントローラ主要部２０２としての機能が実現される。例えば、キャッシュ制御部２０７は、ファームウェアによって実現される。なお、デバイスコントローラ主要部２０２から記憶装置を省略して、ファームウェアをＮＡＮＤメモリ２１０に格納しておくようにしてもよい。また、デバイスコントローラ主要部２０２はＡＳＩＣを用いて構成されることが可能である。
【００２０】
ホスト１は、ＯＳおよびユーザプログラムを実行するＣＰＵ１１０と、メモリ１００（例えば、ホスト１のメインメモリ。以下のおいてメインメモリ１００）と、ホストコントローラ１２０とを備えている。メインメモリ１００、ＣＰＵ１１０、およびホストコントローラ１２０は、バス１４０で互いに接続されている。
【００２１】
メインメモリ１００は、例えばＤＲＡＭで構成される。メインメモリ１００は、例えばＭＲＡＭ（Magnetoresistive Random Access Memory）、ＦｅＲＡＭ（Ferroelectric Random Access Memory）であってもよい。メインメモリ１００は、ホスト使用領域１０１（第２メモリ領域）とデバイス使用領域１０２（第１メモリ領域）とを備える。ホスト使用領域１０１は、ホスト１がプログラム（ＯＳおよびユーザプログラム）を実行する際のプログラム展開領域および当該プログラム展開領域に展開されたプログラムを実行する際のワークエリアとして使用される。デバイス使用領域１０２は、メモリシステム２が使用するメモリ領域である。デバイス使用領域１０２は、例えば、後述するＬ２Ｐキャッシュ領域３００、Ｌ２Ｐキャッシュタグ領域３１０、データキャッシュ領域４００、およびデータキャッシュタグ領域４１０を格納する領域として用いられる。例えば、メインメモリ１００の固定のメモリ領域がデバイス使用領域１０２として割り当てられる。
【００２２】
図２は、デバイス使用領域１０２のメモリ構造を説明する図である。図示するように、デバイス使用領域１０２には、Ｌ２Ｐキャッシュ領域３００、Ｌ２Ｐキャッシュタグ領域３１０、データキャッシュ領域４００、およびデータキャッシュタグ領域４１０が確保されている。Ｌ２Ｐキャッシュ領域３００は、Ｌ２Ｐ本体２１１の一部がキャッシュされる。Ｌ２Ｐキャッシュタグ領域３１０は、Ｌ２Ｐキャッシュ領域３００のヒット／ミス判定に使用されるタグ情報が格納される。データキャッシュ領域４００は、ユーザデータ２１２がバッファリングされるキャッシュ構造のメモリ領域である。データキャッシュタグ領域４１０は、データキャッシュ領域４００のヒット／ミス判定に使用されるタグ情報が格納される。Ｌ２Ｐキャッシュタグ領域３１０およびデータキャッシュタグ領域４１０は、ＶＢ（Valid  Buffer）ビットおよびＤＢ（Dirty  Buffer）ビットを含む、制御情報を有している。ＶＢビットは、キャッシュラインが有効であるか否かを示す。ＤＢビットは、キャッシュラインがダーティであるかクリーンであるかを示す。
【００２３】
ホストコントローラ１２０は、バスアダプタ１２１、デバイス接続アダプタ１２６、およびホストコントローラ主要部１２２を備えている。バスアダプタ１２１は、バス１４０の接続インタフェースである。デバイス接続アダプタ１２６は、通信路３の接続インタフェースである。ホストコントローラ主要部１２２は、デバイス接続アダプタ１２６と第１ポート１３０を介して接続されている。ホストコントローラ主要部１２２は、バスアダプタ１２１を介してメインメモリ１００またはＣＰＵ１１０との間でデータまたはコマンドの転送を行ったり、デバイス接続アダプタ１２６および第１ポート１３０を介してメモリシステム２との間でデータの転送を行ったりすることができる。
【００２４】
また、ホストコントローラ１２０は、メインメモリＤＭＡ（Dynamic Memory Access）１２３、制御ＤＭＡ１２４、およびデータＤＭＡ１２５を備えている。メインメモリＤＭＡ１２３は、ホスト使用領域１０１とデバイス使用領域１０２との間でＤＭＡ転送を行う。制御ＤＭＡ１２４は、第２ポート１３１を介してデバイス接続アダプタ１２６に接続されている。制御ＤＭＡ１２４は、メモリシステム２が送信するコマンドを捕捉してホストコントローラ主要部１２２またはメインメモリＤＭＡ１２３に転送したり、ホストコントローラ主要部１２２がデバイス使用領域１０２にかかるステータス情報をメモリシステム２に転送したりする。データＤＭＡ１２５は、デバイス接続アダプタ１２６と第３ポート１３２を介して接続されている。データＤＭＡ１２５は、デバイス使用領域１０２とメモリシステム２との間でＤＭＡ転送を行う。
【００２５】
なお、デバイス接続アダプタ１２６およびホスト接続アダプタ２０１の機能により、第１ポート１３０は第１ポート２３０と、第２ポート１３１は第２ポート２３１と、第３ポート１３２は第３ポート２３２と夫々対応付けられている。具体的には、デバイス接続アダプタ１２６は、第１ポート１３０を介してメモリシステム２に送られてきた内容を第１ポート２３０を介してデバイスコントローラ主要部２０２に送り、第２ポート１３１を介してメモリシステム２に送られてきた内容を第２ポート２３１を介してデバイスコントローラ主要部２０２に送り、第３ポート１３２を介してメモリシステム２に送られてきた内容を第３ポート２３２を介してデバイスコントローラ主要部２０２に送る。また、デバイス接続アダプタ１２６は、第１ポート２３０を介してホスト１に送られてきた内容を第１ポート１３０を介してホストコントローラ主要部１２２に送り、第２ポート２３１を介してホスト１に送られてきた内容を第２ポート１３１を介して制御ＤＭＡ１２４に送り、第３ポート２３２を介してホスト１に送られてきた内容を第３ポート１３２を介してデータＤＭＡ１２５に送る。制御ＤＭＡ１２４、データＤＭＡ１２５に送られてきた内容は、例えばバスアダプタ１２１を介してホストコントローラ主要部１２２に送られる。
【００２６】
なお、ポート１３０〜１３２の夫々は、メモリシステム２との間の通信に使用される入出力バッファを夫々独立に備える。ホストコントローラ主要部１２２、制御ＤＭＡ１２４、データＤＭＡ１２５が夫々別々の入出力バッファを用いてメモリシステム２に接続されていることにより、ホストコントローラ１２０は、ホストコントローラ主要部１２２を用いたメモリシステム２との通信と、制御ＤＭＡ１２４を用いたメモリシステム２との通信と、データＤＭＡ１２５を用いたメモリシステム２との通信とを夫々独立して実行することができる。また、入出力バッファの入れ替えの必要なくこれらの通信の切り替えを行うことができるので、通信の切り替えを高速に実行することができる。メモリシステム２が備えるポート２３０〜２３２についても同様のことがいえる。
【００２７】
ＣＰＵ１１０は、実行中のプログラムによる制御に基づいて、ユーザデータをホスト使用領域１０１に生成することができる。ＣＰＵ１１０によってライトコマンドが発行されると、ライトコマンドを受信したデバイスコントローラ主要部２０２の指示により、書き込み対象のユーザデータはホスト使用領域１０１からデバイス使用領域１０２のデータキャッシュ領域４００にコピーされる。即ち、書き込み対象のユーザデータがデータキャッシュ領域４００に格納される。データキャッシュ領域４００に格納された書込み対象のユーザデータは、所定のタイミングでメモリシステム２に転送され、ＮＡＮＤメモリ２１０においてユーザデータ２１２として不揮発メモリに格納される。データキャッシュ領域４００に格納されているユーザデータがＮＡＮＤメモリ２１０に転送される処理を、追い出し処理（Write back）と表記する。
【００２８】
また、ＣＰＵ１１０は、実行中のプログラムが必要とするユーザデータをホスト使用領域１０１に読み出すことができる。ＣＰＵ１１０は、ユーザデータを読み出す際には、ホスト使用領域１０１にユーザデータ２１２を読み出すリードコマンド（第１リードコマンド）を発行する。第１リードコマンドが発行された時点においては、読み出し対象のユーザデータがデータキャッシュ領域４００に格納されている場合と、読み出し対象のユーザデータがデータキャッシュ領域４００に格納されていない場合とがある。第１の実施形態においては、読み出し対象のユーザデータがデータキャッシュ領域４００に格納されている場合には、デバイスコントローラ主要部２０２の指示によりデータキャッシュ領域４００に格納された読み出し対象のユーザデータがホスト使用領域１０１に格納される。読み出し対象のユーザデータがデータキャッシュ領域４００に格納されていない場合には、ＮＡＮＤメモリ２１０に格納されたユーザデータがホスト使用領域１０１に格納される。
【００２９】
ＣＰＵ１１０がライトコマンドを発行してからユーザデータがデータキャッシュ領域４００またはＮＡＮＤメモリ２１０に格納されるまでの処理をライト処理と表記する。ＣＰＵ１１０が第１リードコマンドを発行してから読み出し対象のユーザデータがホスト使用領域１０１に格納されるまでの処理をリード処理と表記する。
【００３０】
次に、第１の実施形態の情報処理装置におけるリード処理を説明する。
【００３１】
図３は、リード処理を説明するシーケンス図である。
第１リードコマンドがＣＰＵ１１０によって発行されると、ホストコントローラ主要部１２２は、その第１リードコマンドを捕捉する（Ｓ１）。第１リードコマンドは、ＮＡＮＤメモリ２１０内の読み出し位置を示す第１のアドレス（stor  addr）と、ホスト使用領域１０１内の転送先の位置を示す第２のアドレス（mem  addr）と、データサイズ（length）と、第１リードコマンド識別情報（「task  tag」）と、を備えている。第１リードコマンド識別情報は、少なくともホスト１からメモリシステム２に送信される個々の第１リードコマンド毎に、異なる値が設定される情報である。即ち、ＣＰＵ１１０が複数の第１リードコマンドを生成した場合には、「task  tag」を参照することによって複数の第１リードコマンドのうちの夫々を区別することが可能である。なお、一般的にはメモリシステムが複数の論理ユニット（Logical Unit）からなっており、その場合にはどの論理ユニットにアクセスするかという指定（Logical Unit Number = LUN）が必要となるが、簡単のために単一の論理ユニットの例を説明し、LUNを省略する。「stor  addr」は、例えばＬＢＡを用いて表記される。
【００３２】
ホストコントローラ主要部１２２は、捕捉した第１リードコマンドから「mem  addr」と識別情報と読み出して、読み出した「mem  addr」と識別情報とを相互に対応付けてホストコントローラ主要部１２２内部のメモリに記憶する（Ｓ２）。なお、ＣＰＵ１１０からの第１リードコマンドが複数発行された場合には、ホストコントローラ主要部１２２は、「mem  addr」と第１リードコマンド識別情報との対応関係を複数記憶することができる。
【００３３】
続いて、ホストコントローラ主要部１２２は、第１リードコマンドに含まれる各種情報から「mem  addr」を除いた情報（第２リードコマンド）を、デバイス接続アダプタ１２６に送信する（Ｓ３）。即ち、第２リードコマンドは、「stor  addr」、「length」、および「task  tag」を含む。デバイス接続アダプタ１２６は、第２リードコマンドをホスト接続アダプタ２０１に転送する（Ｓ４）。
【００３４】
ホスト接続アダプタ２０１は、第２リードコマンドをデバイスコントローラ主要部２０２に転送する（Ｓ５）。デバイスコントローラ主要部２０２は、第２リードコマンドを受信すると、読み出し対象のユーザデータがデータキャッシュ領域４００に格納されているか否かを判定する（キャッシュ判定処理、Ｓ６）。読み出し対象のユーザデータがデータキャッシュ領域４００に格納されていると判定された場合（即ちヒット時）には、ヒット時転送処理が実行される（Ｓ７）。読み出し対象のユーザデータがデータキャッシュ領域４００に格納されていないと判定された場合（即ちミス時）には、ミス時転送処理が実行される（Ｓ８）。
【００３５】
前述のように、ＣＰＵ１１０がライトコマンドを発行すると書き込み対象のユーザデータは、メインメモリ１００のデータキャッシュ領域４００に格納され、所定のタイミングでメモリシステム２に転送され、ＮＡＮＤメモリ２１０に格納される。書き込み対象のユーザデータがデータキャッシュ領域４００に格納されている時に、ＣＰＵ１１０によりこの書き込み対象のユーザデータに対するリードコマンドが発行された場合には、前述の「ヒット時」に該当し、ヒット時転送処理が実行される。一方、書き込み対象のユーザデータがデータキャッシ領域４００からメモリシステム２に転送され、ユーザデータとしてＮＡＮＤメモリ２１０に格納されている時に、ＣＰＵ１１０によりこのユーザデータに対するリードコマンドが発行された場合には、前述の「ミス時」に該当し、ミス時転送処理が実行される。
【００３６】
図４は、キャッシュ判定処理を説明するシーケンス図である。
キャッシュ判定処理においては、まず、デバイスコントローラ主要部２０２は、キャッシュ制御部２０７にキャッシュ判定要求を送信する（Ｓ２１）。キャッシュ判定要求は、第２リードコマンドに含まれる「stor  addr」、およびキャッシュ判定要求識別情報を含んでいる。キャッシュ判定要求識別情報は、少なくともメモリシステム２からホスト１へ送信される個々のキャッシュ判定要求毎に、異なる値が設定される識別情報である。キャッシュ制御部２０７は、「stor  addr」に基づいて、データキャッシュタグ領域４１０内における「stor  addr」に対応するタグ情報の格納位置を示すアドレスを特定する（Ｓ２２）。そして、キャッシュ制御部２０７は、特定したアドレスが示す位置をタグ情報の読み出し位置としてタグ情報を読み出すための転送コマンドを、ホスト接続アダプタ２０１に送信する（Ｓ２３）。ホスト接続アダプタ２０１は、転送コマンドをデバイス接続アダプタ１２６に転送する（Ｓ２４）。デバイス接続アダプタ１２６が受信した転送コマンドは、制御ＤＭＡ１２４によってホストコントローラ主要部１２２に転送される（Ｓ２５）。Ｓ２３、Ｓ２４、Ｓ２５の転送コマンドにはキャッシュ判定要求に含まれているキャッシュ判定要求識別情報を含んでいる。
【００３７】
ホストコントローラ主要部１２２は、データＤＭＡ１２５によるデータキャッシュタグ領域４１０からデバイス接続アダプタ１２６（正確にはデバイス接続アダプタ１２６が備えるバッファ）にタグ情報をコピーするコピー処理を起動する（Ｓ２６）。データキャッシュタグ領域４１０における読み出し位置は、ステップＳ２２によって特定されたアドレスが示す位置である。データＤＭＡ１２５は、コピー処理が完了すると、コピー処理を完了した旨の通知（コピー完了通知）をホストコントローラ主要部１２２に送信する（Ｓ２７）。
【００３８】
コピー処理の完了後、デバイス接続アダプタ１２６は、コピー処理によって送信されてきたタグ情報をホスト接続アダプタ２０１に転送する（Ｓ２８）。ホスト接続アダプタ２０１は、タグ情報をキャッシュ制御部２０７に転送する（Ｓ２９）。キャッシュ制御部２０７は、タグ情報に基づいてヒット／ミスの判定を行う（Ｓ３０）。キャッシュ制御部２０７は、判定結果をデバイスコントローラ主要部２０２に通知して（Ｓ３１）、キャッシュ判定処理が終了する。Ｓ２８、Ｓ２９のタグ情報、およびＳ３１の判定結果の通知はキャッシュ判定要求に含まれているキャッシュ判定要求識別情報を含んでいる。
【００３９】
図５は、ヒット時転送処理を説明するシーケンス図である。
ヒット時転送処理においては、デバイスコントローラ主要部２０２は、コピーコマンドを生成して、生成したコピーコマンドをホスト接続アダプタ２０１に送信する（Ｓ４１）。ホスト接続アダプタ２０１は、コピーコマンドをデバイス接続アダプタ１２６に転送する（Ｓ４２）。デバイス接続アダプタ１２６が受信したコピーコマンドは、制御ＤＭＡ１２４によってホストコントローラ主要部１２２に転送される（Ｓ４３）。
【００４０】
コピーコマンドは、データキャッシュ領域４００とホスト使用領域１０１との間で、ユーザデータをコピーせしめるコマンドである。リード処理の場合、コピーコマンドは、データキャッシュ領域４００において読み出し対象のユーザデータが格納されているキャッシュラインの位置を示すアドレス（cache  addr）、データサイズ（size）、第１リードコマンド識別情報（「task  tag」）、コピーコマンド識別情報（「ID」）、および方向情報（RF）を含んでいる。Cache addrは、stor addrから所定の方法に従い算出される。なお、図５においては、デバイスコントローラ主要部２０２がcache addrを算出しているが、ホストコントローラ１２２がcache addrを算出してもよい。その場合、デバイスコントローラ主要部２０２はstor addrを転送し、ホストコントローラ１２２においてcache addrが算出される。コピーコマンド識別情報は、少なくともメモリシステム２からホスト１へ送信される個々のコピーコマンド識別情報毎に、異なる値が設定される。コピーコマンドが含む第１リードコマンド識別情報には、第２リードコマンドに含まれる第１リードコマンド識別情報と同一の値が設定される。
【００４１】
コピーコマンドが含む「RF」について説明する。ライト処理においては、ホスト使用領域１０１からデータキャッシュ領域４００にユーザデータのコピーが行われる。リード処理においては、データキャッシュ領域４００からホスト使用領域１０１にユーザデータのコピーが行われる。「RF」は、コピーの方向を示す。「RF」の値が「0」であることは、ホスト使用領域１０１からデータキャッシュ領域４００にコピーすることを示す。「RF」の値が「1」であることは、データキャッシュ領域４００からホスト使用領域１０１にコピーすることを示す。リード処理においては、「RF」の値は「1」に設定される。
【００４２】
前述したように、ホストコントローラ主要部１２２は、「mem  addr」と第１リードコマンド識別情報（「task  tag」）との対応関係を記憶している。ホストコントローラ主要部１２２は、ステップＳ４３の処理によってコピーコマンドを受信すると、予め記憶する対応関係を参照することによってコピーコマンドが含む第１リードコマンド識別情報を「mem  addr」に変換する（Ｓ４４）。
【００４３】
ホストコントローラ主要部１２２は、コピーコマンドが含む「cache  addr」によってデータキャッシュ領域４００内の位置を特定し、コピーコマンドが含む第１リードコマンド識別情報によってホスト使用領域１０１内の位置を特定し、特定した２つの位置間のコピーの方向を「RF」によって特定することができる。ホストコントローラ主要部１２２は、メインメモリＤＭＡ１２３によるコピー処理を起動する（Ｓ４５）。ステップＳ４５におけるコピー処理は、「cache  addr」をソースアドレスとし「mem  addr」をデスティネーションアドレスとするコピー処理である。
【００４４】
なお、メインメモリＤＭＡ１２３は、内部に夫々異なる決まった方向にコピーする２つのＤＭＡモジュールを含んで構成されてもよい。ステップＳ４５の処理においては、ホストコントローラ主要部１２２は、２つのＤＭＡモジュールの一方には、「cache  addr」をソースアドレスとして、「mem  addr」をデスティネーションアドレスとして夫々設定する。同時に、ホストコントローラ主要部１２２は、他方のＤＭＡモジュールには、「cache  addr」をデスティネーションアドレスとして、「mem  addr」をソースアドレスとして夫々設定する。そして、ホストコントローラ主要部１２２は、「RF」の値に基づいて、２つのＤＭＡモジュールのうちの１つを選択して起動する。
【００４５】
また、メインメモリＤＭＡ１２３は、夫々アドレスが設定される２つのバッファと、２つのバッファに設定されたアドレスのうちのどちらをソースアドレスとして使用するかを選択するスイッチとを備えて構成されてもよい。ステップＳ４５の処理においては、ホストコントローラ主要部１２２は、２つのバッファに「cache  addr」および「mem  addr」を夫々設定する。そして、ホストコントローラ主要部１２２は、「RF」の値を選択信号としてスイッチを操作して、メインメモリＤＭＡ１２３を起動する。
【００４６】
メインメモリＤＭＡ１２３は、コピー処理を完了すると、コピー完了通知をホストコントローラ主要部１２２に送信する（Ｓ４６）。ホストコントローラ主要部１２２は、コピー完了通知を受信すると、コピーコマンドの実行が完了した旨の通知（コピーコマンド完了通知）をデバイス接続アダプタ１２６に送信する（Ｓ４７）。コピーコマンド完了通知は、コピーコマンド識別情報を含む。コピーコマンド完了通知が含むコピーコマンド識別情報には、コピーコマンドに含まれるコピーコマンド識別情報と同一の値が設定される。デバイス接続アダプタ１２６は、コピーコマンド完了通知をホスト接続アダプタ２０１に転送する（Ｓ４８）。ホスト接続アダプタ２０１は、コピーコマンド完了通知をデバイスコントローラ主要部２０２に転送する（Ｓ４９）。そして、ヒット時転送処理が完了する。デバイスコントローラ主要部２０２は、コピーコマンド完了通知を受信することによって、Ｓ４において送信したコピーコマンドの実行が完了したことを認識することができる。
【００４７】
図６は、コマンドまたはデータの流れを説明する図である。図３、５の各ステップを参照しながら、図６を説明する。図６において符号５００〜５０７が示す矢印は、コマンドまたはデータの流れを示している。
ＣＰＵ１１０が第１リードコマンドを発行すると、図３のステップＳ１の処理によって、第１リードコマンドはホストコントローラ主要部１２２に捕捉される（矢印５００）。ホストコントローラ主要部１２２は、第１リードコマンドから第２リードコマンドを生成する。第２リードコマンドは、図３のステップＳ３〜Ｓ５の処理によって、ホストコントローラ主要部１２２から第１ポート１３０、デバイス接続アダプタ１２６、通信路３、ホスト接続アダプタ２０１、および第１ポート２３０を経由してデバイスコントローラ主要部２０２に転送される（矢印５０１）。デバイスコントローラ主要部２０２のヒットの判定をした場合には、デバイスコントローラ主要部２０２は「cache  addr」を含むコピーコマンドを生成する。コピーコマンドは、図５のステップＳ４１〜Ｓ４３の処理によって、バスマスタ２０５、第２ポート２３１、ホスト接続アダプタ２０１、通信路３、デバイス接続アダプタ１２６を経由して転送され、制御ＤＭＡ１２４に捕捉される（矢印５０２）。制御ＤＭＡ１２４は、コピーコマンドをバスアダプタ１２１を経由してホストコントローラ主要部１２２に転送する（矢印５０３）。ホストコントローラ主要部１２２は、図５のステップＳ４５の処理において、メインメモリＤＭＡ１２３に、「mem  addr」を設定し（矢印５０４）、「cache  addr」を設定し（矢印５０５）、メインメモリＤＭＡ１２３を起動する（矢印５０６）。メインメモリＤＭＡ１２３は、デバイス使用領域１０２（より詳しくはデータキャッシュ領域４００）からホスト使用領域１０１への、読み出し対象のユーザデータのコピーを実行する（矢印５０７）。
【００４８】
図７は、第１の実施形態のミス時転送処理を説明するシーケンス図である。
ミス時転送処理においては、デバイスコントローラ主要部２０２は、まず、「stor  addr」をＮＡＮＤメモリ１内の位置を示す物理アドレス（NAND  addr）に変換する（Ｓ５１）。
【００４９】
ステップＳ５１の処理は、例えば次のようにして実行される。まず、キャッシュ判定処理と同様の処理によって、「stor  addr」と物理アドレスとの対応関係を示すアドレス変換情報がＬ２Ｐキャッシュ領域３００に格納されているか否かを判定する。アドレス変換情報がＬ２Ｐキャッシュ領域３００に格納されている場合には、デバイスコントローラ主要部２０２は、Ｌ２Ｐキャッシュ領域３００からアドレス変換情報を読み出す転送コマンドをホスト１に送信する。ホストコントローラ１２０は、転送コマンドを受信すると、Ｌ２Ｐキャッシュ領域３００からデバイスコントローラ主要部２０２にアドレス変換情報を転送する。アドレス変換情報がＬ２Ｐキャッシュ領域３００に格納されていない場合には、デバイスコントローラ主要部２０２は、ＮＡＮＤメモリ２１０からアドレス変換情報を読み出す。デバイスコントローラ主要部２０２は、Ｌ２Ｐキャッシュ領域３００から転送されてきたアドレス変換情報またはＮＡＮＤメモリ２１０から読み出したアドレス変換情報を用いて、「stor  addr」を「NAND  addr」に変換する。
【００５０】
ステップＳ５１に続いて、デバイスコントローラ主要部２０２は、ＮＡＮＤメモリ２１０から読み出し対象のユーザデータを読み出す（Ｓ５２）。読み出し対象のユーザデータの読み出し位置は、ステップＳ５１の処理によって得られた「NAND  addr」が示す位置である。デバイスコントローラ主要部２０２は、読み出した読み出し対象のユーザデータをホスト接続アダプタ２０１に送信する（Ｓ５３）。ホスト接続アダプタ２０１は、読み出し対象のユーザデータをデバイス接続アダプタ１２６に転送する（Ｓ５４）。ホストコントローラ主要部１２２は、デバイス接続アダプタ１２６が受信した読み出し対象のユーザデータを読み出して（Ｓ５５）、ホスト使用領域１０１に書き込む（Ｓ５６）。ユーザデータの書き込み位置は、「mem  addr」が示す位置である。Ｓ５３、Ｓ５４、Ｓ５５の読み出し対象のユーザデータには第１リードコマンド識別情報が含まれる。
【００５１】
図３において、ステップＳ６〜ステップＳ８の処理は、キャッシュラインのサイズのデータ毎に実行されてもよい。第２リードコマンドによる読み出し対象のユーザデータは、第２リードコマンドに含まれる「stor  addr」および「length」によって特定される。第２リードコマンドに含まれる「length」がキャッシュラインのサイズよりも大きい場合には、第２リードコマンドによる読み出し対象のユーザデータがキャッシュラインのサイズ毎に分割され、分割された夫々のユーザデータ毎にステップＳ６〜ステップＳ８の処理が実行される。
【００５２】
第２リードコマンドによる読み出し対象のユーザデータの全てがホスト使用領域１０１に格納された後、デバイスコントローラ主要部２０２は、第２リードコマンドの実行が完了した旨のリードコマンド完了通知をホスト接続アダプタ２０１に送信する（Ｓ９）。ホスト接続アダプタ２０１は、リードコマンド完了通知をデバイス接続アダプタ１２６に転送する（Ｓ１０）。デバイス接続アダプタ１２６は、リードコマンド完了通知をホストコントローラ主要部１２２に転送する（Ｓ１１）。リードコマンド完了通知は、その後ＣＰＵ１１０に転送され、ＣＰＵ１１０はリードコマンド完了通知を受信することで第１リードコマンドの実行完了を認識することができる。リードコマンド完了通知には第１リードコマンド識別情報が含まれている。
【００５３】
このように、本発明の第１の実施形態によれば、リード処理において、メモリシステム２は、ユーザデータがデータキャッシュ領域４００に格納されているか否かを判定する。そして、ユーザデータがデータキャッシュ領域４００に格納されている場合、ホスト１は、データキャッシュ領域４００からホスト使用領域１０１にそのユーザデータをコピーする。これにより、リード処理においてメモリシステム２からホスト１へのユーザデータの転送を省略することができるので、リード処理の性能が向上する。即ち、メインメモリを用いてアクセス性能を向上させることができる。
【００５４】
また、読み出し対象のユーザデータがデータキャッシュ領域４００に格納されていない場合、メモリシステム２は、ＮＡＮＤメモリ２１０から読み出し対象のユーザデータを読み出してホスト１に転送し、ホスト使用領域１０１に格納させる。即ち、ミス時にユーザデータをデータキャッシュ領域４００への格納することなく、ホスト使用領域１０１に直接格納する。これにより、リード処理の性能が向上する。
【００５５】
また、メモリシステム２は、データキャッシュ領域４００内の位置を示す「cache  addr」と方向情報「RF」とを含むコピーコマンドを送信する。これにより、簡単な構成のコピーコマンドによってコピー処理が実現する。
【００５６】
また、ホスト１において、ＣＰＵ１１０が、ホスト使用領域１０１内の位置を示すアドレス「mem  addr」と、ＬＢＡ「stor  addr」と、を含む第１リードコマンドを生成する。ホストコントローラ主要部１２２は、第１リードコマンドを捕捉すると、「mem  addr」を記憶するとともに、「mem  addr」を含まず、「stor  addr」を含む第２リードコマンドを生成し、メモリシステム２に送信する。これにより通常のメモリシステムへの操作と互換性を確保することが可能となる。そして、ホストコントローラ主要部１２２は、コピーコマンドを受信すると、方向情報「RF」に基づき、「cache  addr」をソースアドレスとし、予め記憶しておいた「mem  addr」をデスティネーションアドレスとするコピー処理を実行する。これにより、簡単なコピーコマンドによってコピー処理が実現する。
【００５７】
また、メインメモリ１００にデータキャッシュ領域４００とデータキャッシュタグ領域４１０が確保されている。これにより、メモリシステム２にデータキャッシュ領域４００とデータキャッシュタグ領域４１０を設ける必要がなくなるので、メモリシステム２に具備されるＲＡＭ２０３のサイズを小さくすることが可能となる。
【００５８】
（第２の実施形態）
第２の実施形態の情報処理装置においては、ミス時転送処理（Ｓ８）の動作が第１の実施形態と異なる。第２の実施形態によれば、ミス時転送処理において、ユーザデータがデータキャッシュ領域４００に格納される。そして、データキャッシュ領域４００に格納されたユーザデータがホスト使用領域１０１にコピーされる。
【００５９】
図８は、第２の実施形態のミス時転送処理を説明するシーケンス図である。なお、以下の説明では、煩雑さを避けるため各識別情報に関する記述を省略するが、各識別情報は第１の実施例と同様に利用される。
【００６０】
ミス時転送処理においては、デバイスコントローラ主要部２０２は、まず、格納要求をキャッシュ制御部２０７に送信する（Ｓ６１）。キャッシュ制御部２０７は、ステップＳ２５の処理によって受信したタグ情報に含まれるＤＢビットに基づいて、キャッシュラインがダーティであるか否かを判定する（Ｓ６２）。
【００６１】
キャッシュラインがダーティである場合には（Ｓ６２、Ｙｅｓ）、追い出し処理が実行される（Ｓ６３）。
【００６２】
追い出し処理は、次のように実行される。キャッシュ制御部２０７は、「stor  addr」に基づいて、データキャッシュ領域４００における追い出し処理対象のキャッシュラインの位置を示すアドレスを特定する。そして、特定されたアドレスが示す位置を読み出し位置としてステップＳ２３〜ステップＳ２９の処理と同等の処理が実行されることによって、キャッシュ制御部２０７は、データキャッシュ領域４００からユーザデータを取得する。そして、キャッシュ制御部２０７は、取得したユーザデータをＮＡＮＤメモリ２１０に書き込む。なお、ＮＡＮＤメモリ２１０におけるユーザデータの書き込み先の決定方法は任意である。例えば、未書き込みのページにユーザデータが順次書き込まれていく方式が採用される場合には、キャッシュ制御部２０７は、未書き込みのページを書き込み先の位置に決定する。
【００６３】
キャッシュラインがクリーンである場合（Ｓ６２、Ｎｏ）、または、ステップＳ６３の処理の後、キャッシュ制御部２０７は、「stor  addr」をＮＡＮＤメモリ１内の位置を示す物理アドレス「NAND  addr」に変換する（Ｓ６４）。ステップＳ６４の処理は、デバイスコントローラ主要部２０２によるステップＳ５１の処理と同様である。そして、キャッシュ制御部２０７は、ＮＡＮＤメモリ２１０から読み出し対象のユーザデータを読み出す（Ｓ６５）。読み出し対象のユーザデータの読み出し位置は、ステップＳ６４の処理によって得られた「NAND  addr」が示す位置である。キャッシュ制御部２０７は、読み出した読み出し対象のユーザデータをホスト接続アダプタ２０１に送信する（Ｓ６６）。ホスト接続アダプタ２０１は、読み出し対象のユーザデータをデバイス接続アダプタ１２６に転送する（Ｓ６７）。
【００６４】
デバイス接続アダプタ１２６が読み出し対象のユーザデータを受信すると、データＤＭＡ１２５によるデバイス接続アダプタ１２６からデータキャッシュ領域４００にユーザデータをコピーするコピー処理を起動する（Ｓ６８）。ここで、データキャッシュ領域４００における書き込み位置は、「stor  addr」に基づいて特定されるキャッシュラインである。データＤＭＡ１２５は、コピー処理が完了すると、コピー完了通知をホストコントローラ主要部１２２に送信する（Ｓ６９）。
【００６５】
続いて、キャッシュ制御部２０７は、キャッシュ判定処理において取得したタグ情報を、格納処理後の状態に応じて更新する（Ｓ７０）。そして、キャッシュ制御部２０７は、更新したタグ情報をステップＳ２２の処理によって特定したアドレスが示す位置を書き込み位置として書き込む転送コマンドをホスト接続アダプタ２０１に送信する（Ｓ７１）。転送コマンドは、ステップＳ７０の処理によって更新されたタグ情報を含む。ホスト接続アダプタ２０１は、転送コマンドをデバイス接続アダプタ１２６に転送する（Ｓ７２）。
【００６６】
デバイス接続アダプタ１２６が転送コマンドを受信すると、データＤＭＡ１２５によるデバイス接続アダプタ１２６からデータキャッシュタグ領域４１０にタグ情報をコピーするコピー処理を起動する（Ｓ７３）。ここで、データキャッシュタグ領域４１０における書き込み位置は、転送コマンドに含まれるアドレスが示す位置である。データＤＭＡ１２５は、コピー処理が完了すると、コピー完了通知をホストコントローラ主要部１２２に送信する（Ｓ７４）。
【００６７】
ステップＳ７４の処理が終わると、キャッシュ制御部２０７は、格納処理が完了した旨の通知（格納完了通知）をデバイスコントローラ主要部２０２に送信する（Ｓ７５）。すると、デバイスコントローラ主要部２０２は、コピーコマンドを生成して、生成したコピーコマンドをホスト接続アダプタ２０１に送信する（Ｓ７６）。ステップＳ７６の処理によって送信されるコピーコマンドは、ヒット時転送処理において送信されるコピーコマンドと同様である。その後、ステップＳ７７〜Ｓ８４の処理において、ステップＳ４２〜Ｓ４９の処理と夫々等しい処理が実行されて、ミス時転送処理が終了する。
【００６８】
このように、第２の実施形態によれば、読み出し対象のユーザデータがデータキャッシュ領域４００に格納されていない場合、メモリシステム２は、ＮＡＮＤメモリ２１０から読み出し対象のユーザデータを読み出してホスト１に転送し、そのユーザデータをデータキャッシュ領域４００に格納する。その後、ホスト１は、データキャッシュ領域４００に格納された読み出し対象のユーザデータをホスト使用領域１０１にコピーする。これにより、データキャッシュ領域４００が読み出し対象のユーザデータのキャッシュとして使用されるので、メモリシステム２に対するアクセス性能を向上させることができる。
【００６９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。たとえば第２の実施形態で、キャッシュラインがダーティな場合には格納処理を実施しないという実施も可能である。この実施形態によれば、追い出し処理を省略することにより、実行速度を速くすることができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７０】
１  ホスト、２  メモリシステム、１００  メインメモリ、１０１  ホスト使用領域、１０２  デバイス使用領域、１１０  ＣＰＵ、１２０  ホストコントローラ、１２２  ホストコントローラ主要部、１２３  メインメモリＤＭＡ、２００  デバイスコントローラ、２０２  デバイスコントローラ主要部、２０７  キャッシュ制御部、２１０  ＮＡＮＤメモリ、２１１  Ｌ２Ｐテーブル、２１２  ユーザデータ、４００  データキャッシュ領域、４１０  データキャッシュタグ領域。
【図１】
0006021759.tif 000002
【図２】
0006021759.tif 000003
【図３】
0006021759.tif 000004
【図４】
0006021759.tif 000005
【図５】
0006021759.tif 000006
【図６】
0006021759.tif 000007
【図７】
0006021759.tif 000008
【図８】
0006021759.tif 000009