(57)【要約】【課題】データ読み出し速度を向上させることのできるメモリシステム及びそのデータ読み出し方法を提供する。【解決手段】バッファメモリ及び不揮発性メモリを含むメモリシステムのデータ読み出し方法であって、読み出し要求の際、入力されたアドレスが前記バッファメモリに割り当てられているか否かを判断するステップと、前記入力されたアドレスが前記バッファメモリに割り当てられているか否かの判断の結果、前記入力されたアドレスが前記バッファメモリに割り当てられていない場合、要求されたデータの大きさが基準値より大きいか否かを判断するステップと、前記要求されたデータの大きさが基準値より大きいか否かの判断の結果、前記要求されたデータの大きさが前記基準値より大きい場合、前記不揮発性メモリに対してプレフェッチ読み出し動作を行うステップとを有する。【選択図】      図２
2009015856.tif 000002
【特許請求の範囲】
【請求項１】
バッファメモリ及び不揮発性メモリを含むメモリシステムのデータ読み出し方法であって、
読み出し要求の際、入力されたアドレスが前記バッファメモリに割り当てられているか否かを判断するステップと、
前記入力されたアドレスが前記バッファメモリに割り当てられているか否かの判断の結果、前記入力されたアドレスが前記バッファメモリに割り当てられていない場合、要求されたデータの大きさが基準値より大きいか否かを判断するステップと、
前記要求されたデータの大きさが基準値より大きいか否かの判断の結果、前記要求されたデータの大きさが前記基準値より大きい場合、前記不揮発性メモリに対してプレフェッチ読み出し動作を行うステップとを有することを特徴とするデータ読み出し方法。
【請求項２】
前記入力されたアドレスは開始アドレスであり、
前記読み出し要求に応答して前記開始アドレスを基点に前記要求されたデータの大きさ分のデータを読み出すための前記開始アドレスと前記要求されたデータの大きさとを含む読み出し要求情報が供給されることを特徴とする請求項１に記載のデータ読み出し方法。
【請求項３】
前記プレフェッチ読み出し動作は、前記不揮発性メモリから前記開始アドレスを基点に前記要求されたデータの大きさより所定の大きさだけ多く読み出す動作であり、前記プレフェッチ読み出し動作によって読み出されたデータは、前記バッファメモリに臨時的に格納されることを特徴とする請求項２に記載のデータ読み出し方法。
【請求項４】
前記要求されたデータの大きさが基準値より大きいか否かの判断の結果、前記要求されたデータの大きさが前記基準値より大きい場合、前記プレフェッチ読み出し動作を行って前記不揮発性メモリから読み出したデータの格納に前記バッファメモリを割り当てるステップをさらに有することを特徴とする請求項３に記載のデータ読み出し方法。
【請求項５】
前記バッファメモリから、前記プレフェッチ読み出し動作によって格納されたデータのうち前記要求されたデータのみを読み出して、外部に伝送するステップをさらに有することを特徴とする請求項４に記載のデータ読み出し方法。
【請求項６】
前記入力されたアドレスが前記バッファメモリに割り当てられているか否かを判断するために、前記バッファメモリのアドレスマッピングテーブルに対して前記開始アドレス及び前記要求されたデータに対応するアドレスが存在するかどうかを検索するステップをさらに有することを特徴とする請求項２に記載のデータ読み出し方法。
【請求項７】
前記検索の結果、前記入力されたアドレスが前記バッファメモリに割り当てられている場合、前記バッファメモリから前記要求されたデータを読み出して、外部に伝送するステップをさらに有することを特徴とする請求項６に記載のデータ読み出し方法。
【請求項８】
前記要求されたデータの大きさが基準値より大きいか否かの判断の結果、前記要求されたデータの大きさが前記基準値より大きくない場合、前記不揮発性メモリに対して正常読み出し動作を行うステップをさらに有することを特徴とする請求項１に記載のデータ読み出し方法。
【請求項９】
前記正常読み出し動作の際、前記不揮発性メモリから読み出されたデータは前記バッファメモリを経由せず直接外部に伝送されることを特徴とする請求項８に記載のデータ読み出し方法。
【請求項１０】
バッファメモリ、フラッシュメモリ、及び磁気ディスクを含むメモリシステムのデータ読み出し方法であって、
読み出し要求の際、入力されたアドレスが前記バッファメモリに割り当てられているか否かを判断するステップと、
前記入力されたアドレスが前記バッファメモリに割り当てられているか否かの判断の結果、前記入力されたアドレスが前記バッファメモリに割り当てられていない場合、前記入力されたアドレスが前記フラッシュメモリに割り当てられているか否かを判断するステップと、
前記入力されたアドレスが前記フラッシュメモリに割り当てられているか否かの判断の結果、前記入力されたアドレスが前記フラッシュメモリに割り当てられている場合、要求されたデータの大きさが基準値より大きいか否かを判断するステップと、
前記要求されたデータの大きさが基準値より大きいか否かの判断の結果、前記要求されたデータの大きさが前記基準値より大きい場合、前記フラッシュメモリに対してプレフェッチ読み出し動作を行うステップとを有することを特徴とするデータ読み出し方法。
【請求項１１】
バッファメモリ、フラッシュメモリ及び磁気ディスクを含むメモリシステムのデータ読み出し方法であって、
読み出し要求の際、入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、及び前記磁気ディスクに割り当てられているか否かを同時に判断するステップと、
前記入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、及び前記磁気ディスク割り当てられているか否かの判断の結果、前記入力されたアドレスが前記フラッシュメモリに割り当てられている場合、要求されたデータの大きさが基準値より大きいか否かを判断するステップと、
前記要求されたデータの大きさが基準値より大きいか否かの判断の結果、前記要求されたデータの大きさが前記基準値より大きい場合、フラッシュメモリに対してプレフェッチ読み出し動作を行うステップとを有することを特徴とするデータ読み出し方法。
【請求項１２】
フラッシュメモリと、
磁気ディスクと、
前記フラッシュメモリあるいは前記磁気ディスクのプレフェッチ読み出し動作の際、読み出されたデータを臨時的に格納するバッファメモリと、
前記フラッシュメモリ、前記磁気ディスク、及び前記バッファメモリを制御し、前記フラッシュメモリに対する読み出し要求の際、要求されたデータの大きさによってプレフェッチ読み出し動作を行うか、あるいは正常読み出し動作を行うかどうかを判断するコントローラとを有することを特徴とするメモリシステム。
【請求項１３】
前記コントローラは、前記磁気ディスクに対する読み出し要求の時、プレフェッチ読み出し動作を行うことを特徴とする請求項１２に記載のメモリシステム。
【請求項１４】
前記フラッシュメモリに対して正常読み出し動作を行う時、前記フラッシュメモリから読み出されたデータは前記バッファメモリを経由せず直接外部に伝送されることを特徴とする請求項１３に記載のメモリシステム。
【請求項１５】
前記コントローラは、読み出し要求の際、入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、又は前記ディスクのうちの何れか一つに割り当てられているかどうかを同時に判断することを特徴とする請求項１３に記載のメモリシステム。
【請求項１６】
前記コントローラは、読み出し要求の際、入力されたアドレスが前記バッファメモリに割り当てられているかどうかを最初に判断することを特徴とする請求項１３に記載のメモリシステム。
【請求項１７】
前記入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、又は前記ディスクのうちの何れか一つに割り当てられているかどうかの判断の結果、前記入力されたアドレスが前記バッファメモリに割り当てられている場合、前記コントローラは前記バッファメモリから前記要求されたデータを読み出して、外部に伝送することを特徴とする請求項１６に記載のメモリシステム。
【請求項１８】
前記入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、又は前記ディスクのうちの何れか一つに割り当てられているかどうかの判断の結果、前記入力されたアドレスが前記バッファメモリに割り当てられていない場合、前記コントローラは前記入力されたアドレスが前記フラッシュメモリに割り当てられているか否かを判断することを特徴とする請求項１６に記載のメモリシステム。
【請求項１９】
前記入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、又は前記ディスクのうちの何れか一つに割り当てられているかどうかの判断の結果、前記入力されたアドレスが前記フラッシュメモリに割り当てられている場合、前記コントローラは、前記要求されたデータの大きさによって、前記フラッシュメモリに対してプレフェッチ読み出し動作を行うか、あるいは正常読み出し動作を行うかを判断することを特徴とする請求項１８に記載のメモリシステム。
【請求項２０】
前記入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、又は前記ディスクのうちの何れか一つに割り当てられているかどうかの判断の結果、前記入力されたアドレスが前記フラッシュメモリに割り当てられていない場合、前記コントローラは、前記磁気ディスクに対してプレフェッチ読み出し動作を行うことを特徴とする請求項１８に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリシステムに関し、特に、データ読み出し速度を向上させることのできる不揮発性メモリを含むメモリシステム及びそのデータ読み出し方法に関する。
【背景技術】
【０００２】
不揮発性メモリは、電源を切ってもデータが消失せずそのまま保存される。不揮発性メモリの種類には、製造者により工場でプログラムされるマスクＲＯＭ（Ｍａｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、電気的なプログラムと消去を繰り返すことが可能なＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）などがある。
【０００３】
フラッシュメモリ（Ｆｌａｓｈ  Ｍｅｍｏｒｙ）は、既存のＥＥＰＲＯＭの構成と動作を変形したもので、その名称は１９８４年ＴＯＳＨＩＢＡが「Ｆｌａｓｈ  ＥＥＰＲＯＭ」という題目で論文を発表したことから由来する。
フラッシュメモリは、所望のブロック（Ｂｌｏｃｋ）、セクタ（Ｓｅｃｔｏｒ）又は全体チップ（Ｃｈｉｐ）単位で電気的消去動作を行う。また、フラッシュメモリは、１ビート単位でもプログラムできるようにアーキテクチャ（Ａｒｃｈｉｔｅｃｔｕｒｅ）を構成している。フラッシュメモリは、記憶単位がセクタ単位で分割されてフォーマット（Ｆｏｒｍａｔ）されるディスク型補助記憶装置と類似した構造を有する。
【０００４】
フラッシュメモリのアーキテクチャは、ビットラインと接地ラインの間にセルが並列配置されたＮＯＲ型構造と、ビットラインと接地ラインの間にセルが直列配置されたＮＡＮＤ型構造とに大別される。ＮＯＲ型構造は、周辺回路が簡単で読み出しアクセス時間（Ｒｅａｄ  Ａｃｃｅｓｓ  Ｔｉｍｅ）が短いという長所を有する。一方、各セルごとにビットラインの接触電極を要するため、ＮＡＮＤ型構造に比べてセル面積が大きくなるという短所を有する。ＮＡＮＤ型構造の場合、読み出し動作に先立って該当ブロックを選択する必要があり、各セルが直列接続されていて動作抵抗が大きい。従って、ＮＡＮＤ型構造は、読み出し速度が相対的に遅いという短所を有する。
【０００５】
フラッシュメモリは高集積が可能な不揮発性メモリ装置（Ｎｏｎ−ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ）である。フラッシュメモリは、データ保存性が優れているので、フラッシュメモリは、システム内でメインメモリとして使用される。フラッシュメモリは、既存のハードディスク及びフロッピー（登録商標）ディスクを代替えする高集積大容量素子として注目を浴びている。現在、フラッシュメモリは、携帯電話、デジタルカメラ、ＭＰ３プレーヤ、カムコーダ、ＰＤＡなどの携帯型デジタル電子機器の記憶媒体として広く利用されている。
【０００６】
しかし、フラッシュメモリには、ＲＡＭに比べてデータ入出力速度が遅いという短所がある。フラッシュメモリの読み出し及び書込み動作において、遅延時間の殆どはページバッファに臨時格納されたデータをセルアレイに書き込むか、セルアレイに格納されたデータをページバッファに読み出すための時間として遭遇する。
【０００７】
また、フラッシュメモリにはランダムアクセスが困難だという短所がある。ランダムアクセスが困難だというフラッシュメモリの短所を克服するために、フラッシュメモリシステム内にバッファメモリを設けてランダムアクセスを支援する新しい方法が開発されている。
【０００８】
フラッシュメモリシステムがランダムアクセスを支援するためには、フラッシュメモリにデータを書き込む前に又はホストにデータを伝送する前に、データを臨時的に保存するためのバッファメモリを用いている。バッファメモリはランダムアクセスが可能なメモリ、例えば、ＤＲＡＭやＳＲＡＭである。例えば、ホストからのデータは直接フラッシュメモリに格納されるのではなく、バッファメモリに先に格納される。それから、バッファメモリに格納されたデータがフラッシュメモリに読み出される。同様に、フラッシュメモリで読み出されたデータは、直接ホストに伝送されるのではなく、バッファメモリに先に格納される。それから、バッファメモリに格納されたデータが読み出されてから、ホストに伝送されるという方法をとるという問題があった。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
そこで、本発明は上記従来のフラッシュメモリシステムにおける問題点に鑑みてなされたものであって、本発明の目的は、データ読み出し速度を向上させることのできるメモリシステム及びそのデータ読み出し方法を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するためになされた本発明によるデータ読み出し方法は、バッファメモリ及び不揮発性メモリを含むメモリシステムのデータ読み出し方法であって、読み出し要求の際、入力されたアドレスが前記バッファメモリに割り当てられているか否かを判断するステップと、前記入力されたアドレスが前記バッファメモリに割り当てられているか否かの判断の結果、前記入力されたアドレスが前記バッファメモリに割り当てられていない場合、要求されたデータの大きさが基準値より大きいか否かを判断するステップと、前記要求されたデータの大きさが基準値より大きいか否かの判断の結果、前記要求されたデータの大きさが前記基準値より大きい場合、前記不揮発性メモリに対してプレフェッチ読み出し動作を行うステップとを有することを特徴とする。
【００１１】
前記入力されたアドレスは開始アドレスであり、前記読み出し要求に応答して前記開始アドレスを基点に前記要求されたデータの大きさ分のデータを読み出すための前記開始アドレスと前記要求されたデータの大きさとを含む読み出し要求情報が供給されることが好ましい。
前記プレフェッチ読み出し動作は、前記不揮発性メモリから前記開始アドレスを基点に前記要求されたデータの大きさより所定の大きさだけ多く読み出す動作であり、前記プレフェッチ読み出し動作によって読み出されたデータは、前記バッファメモリに臨時的に格納されることが好ましい。
前記要求されたデータの大きさが基準値より大きいか否かの判断の結果、前記要求されたデータの大きさが前記基準値より大きい場合、前記プレフェッチ読み出し動作を行って前記不揮発性メモリから読み出したデータの格納に前記バッファメモリを割り当てるステップをさらに有することが好ましい。
前記バッファメモリから、前記プレフェッチ読み出し動作によって格納されたデータのうち前記要求されたデータのみを読み出して、外部に伝送するステップをさらに有することが好ましい。
【００１２】
前記入力されたアドレスが前記バッファメモリに割り当てられているか否かを判断するために、前記バッファメモリのアドレスマッピングテーブルに対して前記開始アドレス及び前記要求されたデータに対応するアドレスが存在するかどうかを検索するステップをさらに有することが好ましい。
前記検索の結果、前記入力されたアドレスが前記バッファメモリに割り当てられている場合、前記バッファメモリから前記要求されたデータを読み出して、外部に伝送するステップをさらに有することが好ましい。
前記要求されたデータの大きさが基準値より大きいか否かの判断の結果、前記要求されたデータの大きさが前記基準値より大きくない場合、前記不揮発性メモリに対して正常読み出し動作を行うステップをさらに有することが好ましい。
前記正常読み出し動作の際、前記不揮発性メモリから読み出されたデータは前記バッファメモリを経由せず直接外部に伝送されることが好ましい。
【００１３】
また、上記目的を達成するためになされた本発明によるデータ読み出し方法は、バッファメモリ、フラッシュメモリ、及び磁気ディスクを含むメモリシステムのデータ読み出し方法であって、読み出し要求の際、入力されたアドレスが前記バッファメモリに割り当てられているか否かを判断するステップと、前記入力されたアドレスが前記バッファメモリに割り当てられているか否かの判断の結果、前記入力されたアドレスが前記バッファメモリに割り当てられていない場合、前記入力されたアドレスが前記フラッシュメモリに割り当てられているか否かを判断するステップと、前記入力されたアドレスが前記フラッシュメモリに割り当てられているか否かの判断の結果、前記入力されたアドレスが前記フラッシュメモリに割り当てられている場合、要求されたデータの大きさが基準値より大きいか否かを判断するステップと、前記要求されたデータの大きさが基準値より大きいか否かの判断の結果、前記要求されたデータの大きさが前記基準値より大きい場合、前記フラッシュメモリに対してプレフェッチ読み出し動作を行うステップとを有することを特徴とする。
【００１４】
また、上記目的を達成するためになされた本発明によるデータ読み出し方法は、バッファメモリ、フラッシュメモリ及び磁気ディスクを含むメモリシステムのデータ読み出し方法であって、読み出し要求の際、入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、及び前記磁気ディスクに割り当てられているか否かを同時に判断するステップと、前記入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、及び前記磁気ディスク割り当てられているか否かの判断の結果、前記入力されたアドレスが前記フラッシュメモリに割り当てられている場合、要求されたデータの大きさが基準値より大きいか否かを判断するステップと、前記要求されたデータの大きさが基準値より大きいか否かの判断の結果、前記要求されたデータの大きさが前記基準値より大きい場合、フラッシュメモリに対してプレフェッチ読み出し動作を行うステップとを有することを特徴とする。
【００１５】
上記目的を達成するためになされた本発明によるメモリシステムは、フラッシュメモリと、磁気ディスクと、前記フラッシュメモリあるいは前記磁気ディスクのプレフェッチ読み出し動作の際、読み出されたデータを臨時的に格納するバッファメモリと、前記フラッシュメモリ、前記磁気ディスク、及び前記バッファメモリを制御し、前記フラッシュメモリに対する読み出し要求の際、要求されたデータの大きさによってプレフェッチ読み出し動作を行うか、あるいは正常読み出し動作を行うかどうかを判断するコントローラとを有することを特徴とする。
【００１６】
前記コントローラは、前記磁気ディスクに対する読み出し要求の時、プレフェッチ読み出し動作を行うことが好ましい。
前記フラッシュメモリに対して正常読み出し動作を行う時、前記フラッシュメモリから読み出されたデータは前記バッファメモリを経由せず直接外部に伝送されることが好ましい。
前記コントローラは、読み出し要求の際、入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、又は前記ディスクのうちの何れか一つに割り当てられているかどうかを同時に判断することが好ましい。
前記コントローラは、読み出し要求の際、入力されたアドレスが前記バッファメモリに割り当てられているかどうかを最初に判断することが好ましい。
【００１７】
前記入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、又は前記ディスクのうちの何れか一つに割り当てられているかどうかの判断の結果、前記入力されたアドレスが前記バッファメモリに割り当てられている場合、前記コントローラは前記バッファメモリから前記要求されたデータを読み出して、外部に伝送することが好ましい。
前記入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、又は前記ディスクのうちの何れか一つに割り当てられているかどうかの判断の結果、前記入力されたアドレスが前記バッファメモリに割り当てられていない場合、前記コントローラは前記入力されたアドレスが前記フラッシュメモリに割り当てられているか否かを判断することが好ましい。
前記入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、又は前記ディスクのうちの何れか一つに割り当てられているかどうかの判断の結果、前記入力されたアドレスが前記フラッシュメモリに割り当てられている場合、前記コントローラは、前記要求されたデータの大きさによって、前記フラッシュメモリに対してプレフェッチ読み出し動作を行うか、あるいは正常読み出し動作を行うかを判断することが好ましい。
前記入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、又は前記ディスクのうちの何れか一つに割り当てられているかどうかの判断の結果、前記入力されたアドレスが前記フラッシュメモリに割り当てられていない場合、前記コントローラは、前記磁気ディスクに対してプレフェッチ読み出し動作を行うことが好ましい。
【発明の効果】
【００１８】
本発明に係るメモリシステム及びそのデータ読み出し方法によれば、不揮発性メモリ装置に対するデータ読み出し動作の際、要求されたデータの大きさによってプレフェッチ動作を行うかどうかを決める。従って、データのパターンによって互いに異なる読み出し動作を行うことで、データ読み出し速度が向上するという効果がある。
【発明を実施するための最良の形態】
【００１９】
次に、本発明に係るメモリシステム及びそのデータ読み出し方法を実施するための最良の形態の具体例を図面を参照しながら説明する。
【００２０】
本発明によるメモリシステムは、不揮発性メモリのデータ読み出し動作の際、データの大きさによってデータプレフェッチ（Ｄａｔａ  Ｐｒｅｆｅｔｃｈ）を適用して読み出し動作を行うか否かを判断する。ここで、データプレフェッチとは、読み出し要求の前に予めバッファメモリにデータを読み出す機能を意味する。例えば、不揮発性メモリのデータ読み出し動作の際、要求されたデータの大きさが基準値より大きいと、メモリシステムは、読み出し要求されたデータ及び後で読み出し要求されたデータを不揮発性メモリから読み出して、バッファメモリに格納する。これにより、本発明のメモリシステムは、連続するアドレスが入る読み出し要求に対してバッファメモリの活用を増大させる。結果として、メモリシステムのデータ読み出し速度が向上する。
【００２１】
図１は、本発明の一実施形態によるメモリシステム１０を示すブロック図である。
図１に示すように、メモリシステム１０は、コントローラ１１０、バッファメモリ１２０及び不揮発性メモリ１３０を含む。
【００２２】
不揮発性メモリ１３０のデータの読み出し要求の際、要求されたデータの大きさによって、データプレフェッチを適用したプレフェッチ読み出し（Ｐｒｅｆｅｔｃｈ  Ｒｅａｄ）動作が行われるか、あるいはデータプレフェッチを適用しない正常読み出し（Ｎｏｒｍａｌ  Ｒｅａｄ）動作が行われる。例えば、不揮発性メモリ１３０のデータの読み出し要求の際、要求されたデータの大きさが基準値より大きい場合、プレフェッチ読み出し動作が行われる。逆に、要求されたデータの大きさが基準値より大きくない場合、正常読み出し動作が行われる。
【００２３】
不揮発性メモリ１３０に対するプレフェッチ読み出し動作によって読み出されたデータは、バッファメモリ１２０に臨時的に格納される。その後、バッファメモリ１２０に格納されたデータのうち、読み出し要求されたデータのみが外部に伝送される。一方、不揮発性メモリ１３０に対する正常読み出し動作によって読み出されたデータは、バッファメモリ１２０を経由せず外部に伝送される。
【００２４】
コントローラ１１０は、メモリシステム１０の全般的な動作を制御する。コントローラ１１０は、外部（例えば、ホスト）から入力された命令／アドレス／データを受信して、読み出し／書き込み動作を制御する。コントローラ１１０には、読み出し動作の際、外部から次のような読み出し要求（Ｒｅｑｕｒｅｓｔ）が伝達される。例えば、Ｒ〈１００、６０〉という読み出し要求が入力されたら、これは開始アドレス“１００”から６０セクタのデータを読み出すとの意味である。
【００２５】
コントローラ１１０は、読み出し動作の際、要求されたデータに対応するアドレスがバッファメモリ１２０に割り当てられているかどうかを判断する。ここで、要求されたデータに対応するアドレスは、開始アドレス“１００”から６０セクタのデータに対応するアドレスである。
もし、要求されたデータに対応するアドレスがバッファメモリ１２０に割り当てられていれば、バッファメモリ１２０から要求されたデータを読み出して外部に伝送する。もし、要求されたデータに対応するアドレスがバッファメモリ１２０に割り当てられていなければ、コントローラ１１０は不揮発性メモリ１３０に対するデータ読み出し動作を行う。
ここで、不揮発性メモリ１３０に対するデータ読み出し動作は、要求されたデータの大きさによって、プレフェッチ読み出し動作または正常読み出し動作に区分される。
【００２６】
プレフェッチ読み出しは、外部から要求されたデータの大きさより所定の大きさだけ大きいデータを不揮発性メモリ１３０から読み出す方式である。
ここで、プレフェッチ読み出し動作によって読み出されたデータは、バッファメモリ１２０に臨時的に格納される。例えば、追加的に読み出そうとするデータの大きさは、要求されたデータの大きさの二倍あるいは６４セクタであり得る。
要求されたデータの大きさが１００セクタであれば、プレフェッチ読み出し動作の際、コントローラ１１０は不揮発性メモリ１３０から２００セクタのデータを読み出して、バッファメモリ１２０に格納する。プレフェッチ読み出し動作を行うために、コントローラ１１０は読み出し要求されたアドレスをプレフェッチするデータに対応するプレフェッチアドレスに変換する。
【００２７】
一方、データの正常読み出しは、外部から要求されたデータの大きさが基準値より小さい場合、不揮発性メモリ１３０から要求されたデータを読み出す方式である。
この場合、正常読み出し動作によって読み出されたデータはバッファメモリ１２０を経由せず直接外部に伝送される。このようなバッファメモリ１２０を経由しない正常読み出しはバッファメモリ１２０の汚染度（ｐｏｌｌｕｔｉｏｎ）の増加を抑制する。バッファメモリ１２０の汚染度が増加しなくなるというのは、プレフェッチ読み出し動作により読み出されたデータが格納される空間が減少しないことを意味する。即ち、バッファメモリ１２０の活用度が増大するようになる。
【００２８】
コントローラ１１０は、読み出し要求の際、伝達されたデータの大きさと基準値とを比べて、不揮発性メモリ１３０に対するプレフェッチ読み出し動作を行うか否かを決める。
基準値は、メモリシステムの環境によって経験的に抽出される。
【００２９】
バッファメモリ１２０には、不揮発性メモリ１３０のデータ書き込み動作の際、不揮発性メモリ１３０に格納されるデータ、アドレス、及び命令語が外部から伝送されて臨時的に格納される。また、バッファメモリ１２０には、読み出し動作の際、不揮発性メモリ１３０から感知されたデータが外部に伝送される前に臨時的に格納される。一般的に、バッファメモリ１２０はＳＲＡＭ又はＤＲＡＭにて具現される。しかし、バッファメモリ１２０がこの実施形態に限らないことは、当分野の通常の知識を習得した者に自明である。
【００３０】
不揮発性メモリ１３０はデータを格納する領域である。本発明の不揮発性メモリ１３０は、フラッシュメモリ、マスクＲＯＭ、ＰＲＯＭ、Ｆ（ｆｅｒｒｏｅｌｅｃｔｒｉｃ）ＲＡＭなどによって具現される。
外部から要求されたデータの大きさが基準値より大きい場合、不揮発性メモリ１３０から読み出されたデータはバッファメモリ１２０に格納されてから外部に伝送される。一方、外部から要求されたデータの大きさが基準値より大きくない場合、不揮発性メモリ１３０から読み出されたデータは、バッファメモリ１２０を経由せず直接的に外部に伝送される。
【００３１】
一方、不揮発性メモリ１３０はプレフェッチ読み出し及び正常読み出しの両方を行うように構成される。例えば、要求されたデータの大きさによって、コントローラ１１０は不揮発性メモリ１３０にプレフェッチ読み出し命令又は正常読みだし命令を生成して伝達する。例えば、不揮発性メモリ１３０は、伝達されたプレフェッチ読み出し命令に応じて、入力されたアドレスに対応するデータだけではなく隣接するアドレスに対応するデータも追加に読み出すように構成される。また、不揮発性メモリ１３０は、伝達された正常読み出し命令に応じて、入力されたアドレスに対応するデータのみを読み出すように構成される。
【００３２】
本発明の一実施形態のメモリシステム１０では、不揮発性メモリ１３０の読み出し動作の際、データの大きさによってプレフェッチ読み出し動作を行うかあるいは正常読み出し動作を行うか判断して、読み出し動作が行われる。要求されたデータの大きさが基準値より大きい場合、バッファメモリ１２０を経由してプレフェッチ読み出し動作が行われる。
従って、読み出されるデータのパターンが連続的に入力されるデータであれば、次の読み出し要求の際にバッファメモリ１２０をアクセスする確率が高くなる。従って、メモリシステム１０は連続的に要求されるデータに対してバッファメモリ１２０を効率良く活用し、データ読み出し時間を減少させることができる。
【００３３】
図２は、本発明の一実施形態によるメモリシステム１０の読み出し方法を説明するためのフローチャートである。図１及び図２を参照して、メモリシステム１０の読み出し方法を説明する。
【００３４】
外部のホスト（図示せず）はメモリシステム１０に読み出し要求をする。
詳細には、メモリシステム１０はホストから開始アドレス及び要求されたアドレスの個数を含む読み出し要求を受信する。要求されたアドレスの個数は、要求されたデータの大きさを意味する。例えば、Ｒ〈１００、３０〉形態の読み出し要求が伝達されたら、これは開始アドレス“１００”から３０セクタのデータを読み出すという意味である。以下では、説明の便宜のためにＲ〈１００、３０〉形態の読み出し要求が伝達されたと仮定して読み出し動作を説明する。一方、プレフェッチ読み出し動作は、要求されたデータの二倍大きさのデータを読み出すと仮定する。
【００３５】
メモリシステム１０は、外部のホストからＲ〈１００、３０〉の読み出し要求を受信する。コントローラ１１０は読み出し要求により伝達された開始アドレス“１００”がバッファメモリ１２０に割り当てられているかどうかを検索する（ステップＳ１１０）。
即ち、コントローラ１１０は、バッファメモリ１２０のアドレスマッピングテーブルから開始アドレス“１００”及び開始アドレス“１００”から３０セクタのデータに対応するアドレスが存在するか検索する。
【００３６】
検索結果によって、コントローラ１１０はバッファメモリ１２０がヒット（Ｈｉｔ）したかどうかを判断する（ステップＳ１２０）。バッファメモリ１２０がヒットしたというのは、要求されたデータに対応するアドレスがバッファメモリ１２０のアドレスマッピングテーブルから検索されたことを意味する。もし、バッファメモリ１２０がヒットしたら、コントローラ１１０はバッファメモリ１２０から開始アドレス“１００”から３０セクタのデータを読み出して、ホストに伝送する（ステップＳ１６０）。これで、データ読み出し動作が完了する。
【００３７】
もし、バッファメモリ１２０がヒットしなかったら、コントローラ１１０は開始アドレス“１００”が不揮発性メモリ１３０に割り当てられたと判断し、要求されたデータの大きさが基準値より大きいかどうかを判断する（ステップＳ１３０）。ここで、３０セクタのデータを読み出すよう要求されたので、要求されたデータの大きさは３０セクタである。要求されたデータの大きさによって、不揮発性メモリ１３０に対してプレフェッチ読み出し動作あるいは正常読み出し動作が行われる。
【００３８】
もし、要求されたデータの大きさが基準値より大きければ、コントローラ１１０は不揮発性メモリ１３０からの要求されたデータを臨時的に格納するため、バッファメモリ１２０を割り当てる（ステップＳ１４０）。
その後、コントローラ１１０は不揮発性メモリ１３０に対してプレフェッチ読み出し動作を行う（ステップＳ１５０）。
【００３９】
即ち、コントローラ１１０は、不揮発性メモリ１３０から、開始アドレス“１００”から６０セクタまでのデータを読み出す。読み出された６０セクタのデータはバッファメモリ１２０に格納される。不揮発性メモリ１３０から読み出されたデータがバッファメモリ１２０に格納された後、開始アドレス“１００”及び６０セクタのデータに対応するアドレスに対するマッピング情報が含まれるように、バッファメモリ１２０のアドレスマッピングテーブルをアップデートする。その後、コントローラ１１０は、バッファメモリ１２０に格納された開始アドレス“１００”から３０セクタのデータを読み出して、ホストに伝送する（ステップＳ１６０）。これでデータ読み出し動作が完了する。
【００４０】
もし、要求されたデータの大きさが基準値より大きくなければ、コントローラ１１０は不揮発性メモリ１３０に対して正常読み出し動作を行う（ステップＳ１５２）。コントローラ１１０は、不揮発性メモリ１３０から開始アドレス“１００”から３０セクタのデータを読み出して、直接ホストに伝送する（ステップＳ１６２）。これでデータ読み出し動作が完了する。
【００４１】
本発明の一実施形態に係るメモリシステムの読み出し方法は、要求されたデータの大きさによって、不揮発性メモリに対してプレフェッチ読み出し動作あるいは正常読み出し動作を行う。これにより、本発明のデータ読み出し方法は、読み出し動作をより効率的に管理するようになる。
【００４２】
本発明のメモリシステムは、複数の記憶装置を有するメモリシステムに適用することができる。
図３は、本発明の他の実施形態によるメモリシステム２０を示すブロック図である。
図３に示すように、メモリシステム２０は、コントローラ２１０、バッファメモリ２２０、フラッシュメモリ２３０及び磁気ディスク２４０を含む。
【００４３】
一般的に、フラッシュメモリ２３０は早い初期反応速度を有する記憶装置であり、磁気ディスク２４０は遅い初期反応速度を有する記憶装置である。遅い初期反応速度を有する記憶装置である磁気ディスク２４０に対する読み出し要求の際、データプレフェッチを適用してプレフェッチ読み出し動作が行われる。
【００４４】
一方、早い初期反応速度を有するフラッシュメモリに対する読み出し要求の際、メモリシステム２０は、要求されたデータの大きさによって、データプレフェッチを適用するかあるいはデータプレフェッチを適用しないかを判断して、読み出し動作を行う。例えば、要求されたデータの大きさが基準値より大きい場合、メモリシステム２０はデータプレフェッチを適用してフラッシュメモリ２３０に対して読み出し動作を行う。
【００４５】
本発明のコントローラ２１０は、読み出し動作の際、入力されたアドレスがバッファメモリ２２０に割り当てられているかどうかを判断する。判断の結果、入力されたアドレスがバッファメモリ２２０に割り当てられていたら、コントローラ２１０はバッファメモリ２２０から入力されたアドレスに対応するデータを外部に伝送する。一方、判断の結果、入力されたアドレスがバッファメモリ２２０に割り当てられていなかったら、コントローラ２１０は入力されたアドレスがフラッシュメモリ２３０に割り当てられているかどうかを判断する。
【００４６】
もし、判断の結果、入力されたアドレスがフラッシュメモリ２３０に割り当てられていたら、コントローラ２１０は読み出し要求されたデータの大きさによって、フラッシュメモリ２３０に対してプレフェッチ読み出し動作あるいは正常読み出し動作のうち何れか一つを行う。
【００４７】
プレフェッチ読み出し動作の際、コントローラ２１０は入力されたアドレスによってプレフェッチ読み出し動作を行うためのプレフェッチアドレスを生成して、フラッシュメモリ２３０に伝達する。フラッシュメモリ２３０では、伝達されたプレフェッチアドレスに応じて読み出し動作が行われる。読み出されたデータはバッファメモリ２２０に伝送される。コントローラ２１０はバッファメモリ２２０から読み出し要求されたデータを読み出して、外部に伝送する。
【００４８】
正常読み出し動作の際、コントローラ２１０は入力されたアドレスに対応する物理的アドレスを生成してフラッシュメモリ２３０に伝達する。フラッシュメモリ２３０では、伝達された物理的アドレスに応じて読み出し動作が行われる。読み出されたデータは、バッファメモリ２２０を経由せず直接的に外部に伝送される。
【００４９】
もし、判断の結果、入力されたアドレスがフラッシュメモリ２３０に割り当てられていなかったら、コントローラ２１０は磁気ディスク２４０に対してプレフェッチ読み出し動作を行う。磁気ディスク２４０に対するプレフェッチ読み出し動作は、フラッシュメモリ２３０に対するプレフェッチ動作と類似するので、詳細は省略する。
【００５０】
バッファメモリ２２０及びフラッシュメモリ２３０は、図１を参照して説明したバッファメモリ１２０及び不揮発性メモリ１３０と同様である。磁気ディスク２４０はハードディスクドライブ（Ｈｒａｄ  Ｄｉｓｋ  Ｄｒｉｖｅ、以下ＨＤＤ）であり得る。ＨＤＤは磁性体でコーティングされたアルミニウム基板にデータを格納できるようにしたデータ記憶装置である。ＨＤＤは、データを格納する円板状の金属板プラッタ（Ｐｌａｔｔｅｒ）、プラッタの上で動きながらデータを記録／修正／削除するヘッド（Ｈｅａｄ）、プラッタを回転させるスピンドルモータ（Ｓｐｉｎｄｌｅ  Ｍｏｔｏｒ）などで構成されている。
【００５１】
図４は、図３に示した本発明の他の実施形態によるメモリシステム２０の読み出し方法を説明するためのフローチャートである。図３及び図４を参照して、メモリシステム２０の読み出し方法を説明する。
【００５２】
外部のホスト（図示せず）はメモリシステム２０に読み出し要求をする。
詳細には、メモリシステム２０はホストから開始アドレス及び要求されたアドレスの個数を含む読み出し要求を受信する。以下では説明の便宜のためにＲ〈１００、３０〉形態の読み出し要求を受信したと仮定して読み出し動作を説明する。
一方、プレフェッチ読み出し動作は、要求されたデータの二倍大きさのデータを読み出すと仮定する。
【００５３】
メモリシステム２０は、外部のホストからＲ〈１００、３０〉の読み出し要求を受信する。コントローラ２１０は、読み出し要求により伝達された開始アドレス“１００”がバッファメモリ２２０に割り当てられているかどうかを検索する（ステップＳ２１０）。
即ち、バッファメモリ２２０のアドレスマッピングテーブルから、開始アドレス“１００”及び開始アドレス“１００”から３０セクタのデータに対応するアドレスが存在するか検索する。
【００５４】
コントローラ２１０は、検索結果によってバッファメモリ２２０がヒット（Ｈｉｔ）したかどうかを判断する（ステップＳ２２０）。バッファメモリ２２０がヒットしたというのは、要求されたデータに対応するアドレスがバッファメモリ２２０のアドレスマッピングテーブルから検索されたことを意味する。もしバッファメモリ２２０がヒットしたら、コントローラ２１０はバッファメモリ２２０から開始アドレス“１００”に対応する３０セクタのデータを読み出して、ホストに伝送する（ステップＳ２８０）。これでデータ読み出し動作が完了する。
【００５５】
一方、バッファメモリ２２０がヒットしなかったら、コントローラ２１０は読み出し要求の際に伝達された開始アドレス“１００”がフラッシュメモリ２３０に割り当てられているかどうかを検索する（ステップＳ２３０）。即ち、フラッシュメモリ２３０のアドレスマッピングテーブルから開始アドレス“１００”が存在するかどうかを検索する。コントローラ２１０は、検索結果によってフラッシュメモリ２３０のヒットを判断する（ステップＳ２４０）。
【００５６】
もし、フラッシュメモリ２３０がヒットしなかったら、コントローラ２１０は開始アドレス１００が磁気ディスク２４０に割り当てられたと判断し、磁気ディスク２４０からの要求されたデータを格納するため、バッファメモリ２２０を割り当てる（ステップＳ２６２）。その後、コントローラ２１０は、ディスク２４０に対してプレフェッチ読み出し動作を行う（ステップＳ２７２）。
【００５７】
即ち、コントローラ２１０は、磁気ディスク２４０から開始アドレス“１００”から６０セクタのデータを読み出す。読み出された６０セクタのデータはバッファメモリ２２０に格納される。磁気ディスク２４０から読み出されたデータがバッファメモリ２２０に格納された後、開始アドレス“１００”及び６０セクタのデータに対応するアドレスに対するマッピング情報を含むよう、バッファメモリ２２０のアドレスマッピングテーブルをアップデートする。その後、コントローラ２１０は、バッファメモリ２２０から開始アドレス“１００”から３０セクタのデータを読み出して、ホストに伝送する（ステップＳ２８０）。これでデータ読み出し動作が完了する。
【００５８】
もし、フラッシュメモリ２３０がヒットしたら、コントローラ２１０は要求されたデータの大きさが基準値より大きいかどうかを判断する（ステップＳ２５０）。ここで、３０セクタのデータを読み出すように要求されたので、要求されたデータの大きさは３０セクタである。要求されたデータの大きさによって、フラッシュメモリ２３０に対してプレフェッチ読み出し動作あるいは正常読み出し動作が行われる。
【００５９】
もし、要求されたデータの大きさが基準値より大きければ、コントローラ２１０はフラッシュメモリ２３０からの要求されたデータを臨時的に格納するために、バッファメモリ２２０を割り当てる（ステップＳ２６０）。その後、コントローラ２１０は、フラッシュメモリ２３０に対してプレフェッチ読み出し動作を行う（ステップＳ２７０）。
【００６０】
即ち、コントローラ２１０は、フラッシュメモリ２３０から、開始アドレス“１００”から６０セクタまでのデータを読み出す。読み出された６０セクタのデータはバッファメモリ２２０に格納される。フラッシュメモリ２３０から読み出されたデータがバッファメモリ２２０に格納された後、開始アドレス“１００”及び６０セクタのデータに対応するアドレスのマッピング情報が含まれるよう、バッファメモリ２２０のアドレスマッピングテーブルをアップデートする。その後、コントローラ２１０はバッファメモリ２２０から、開始アドレス“１００”から３０セクタまでのデータを読み出して、ホストに伝送する（ステップＳ２８０）。これでデータ読み出し動作が完了する。
【００６１】
もし、要求されたデータの大きさが基準値より大きくなければ、コントローラ２１０はフラッシュメモリ２３０に対して正常読み出し動作を行う（ステップＳ２７１）。コントローラ２１０は、フラッシュメモリ２３０から開始アドレス“１００”から３０セクタのデータを読み出して、直接ホストに伝送する（ステップＳ２８１）。これでデータ読み出し動作が完了する。
【００６２】
本発明の他の実施形態によるデータ読み出し方法は次のような長所を有する。
先ず、長いシークエンシャルアクセス（Ｌｏｎｇ  Ｓｅｑｕｅｎｔｉａｌ  Ａｃｃｅｓｓ）に対して、データプレフェッチにより読み出し処理時間が減少する。これは、相対的にアクセス速度が異なる記憶装置（例えば、磁気ディスク、フラッシュメモリ）より早いバッファメモリのヒット確率が増加するからである。
【００６３】
短いランダムアクセス（Ｓｈｏｒｔ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ）に対しては、データプレフェッチによって発生し得る被害が減少する。これは、短いランダムアクセスの際、フラッシュメモリに対するプレフェッチ読み出し動作を行わず、正常読み出し動作を行うからである。また、短いランダムアクセスの際バッファメモリが割り当てられないことで、バッファメモリを割り当てるために必要な処理時間が減少する。さらに、短いランダムアクセスの際バッファメモリを使用しないことで、むしろバッファメモリのヒット確率が増加する。何故なら、再利用の確率が短い大きさのデータを管理するために、長い大きさのデータをバッファメモリから除去する必要がなくなるからである。
【００６４】
以下では、図４のデータ読み出し方法を適用する時、データ読み出し処理時間が従来の読み出し処理時間と比べてどのように減少するか説明する。
【００６５】
ＴＡはバッファメモリを検索する時間であり、ＴＢはフラッシュメモリを検索する時間であり、ＴＣはバッファメモリを割り当てる時間であり、ＴＤはディスクに対してプレフェッチ読み出し動作を行う時間であり、ＴＥはフラッシュメモリに対して正常読み出し動作を行う時間であり、ＴＦはバッファメモリからホストに伝送される時間であり、ＴＧはフラッシュメモリに対してプレフェッチ読み出し動作を行う時間であり、ＴＨはフラッシュメモリの正常読み出し動作が行われて読み出されたデータをホストに伝送する時間である。
【００６６】
ここで、ＴＥは以下の数式１を満足する。
【数１】
2009015856.tif 000003
ここで、ＴＸはフラッシュメモリからのデータ伝送からホストに初期伝送されるまでの待ち時間であり、ＴＹはデータの大きさに比例する伝送時間であり、ｓは要求されたデータの大きさである。
【００６７】
一方、ＴＦは以下の数式２を満足する。
【数２】
2009015856.tif 000004
ここで、ＴＺはバッファメモリからホストに伝送される時データの大きさに比例する伝送時間であり、ｓは要求されたデータの大きさである。
【００６８】
一方、直接データがホストに伝送される時間ＴＨは、バッファメモリからホストに伝送される時間ＴＦと等しいと仮定する。説明の便宜のために、磁気ディスクは考慮せず説明する。換言すれば、バッファメモリがヒットしなかったら、フラッシュメモリが必ずヒットする。
【００６９】
本発明によるデータ読み出し方法における読み出し処理時間は、以下の数式３を満足する。
【数３】
2009015856.tif 000005
ここで、αはバッファメモリがヒットされる確率であり、γは要求されたデータが連続的で基準値以上である確率である。一方、Ｓはプレフェッチされるデータの大きさである。
【００７０】
例えば、プレフェッチ読み出し動作の際、要求されたデータの大きさの二倍のデータを読み出すと仮定すれば、Ｓ＝２ｓとなる。
短い大きさのランダムアクセスデータパターンと長い大きさのシークエンシャルアクセスデータパターンに対して、読み出し処理時間は下記の表２のように計算される。説明の便宜のために、パラメータは下記の表１のように仮定する。
【００７１】
【表１】
2009015856.tif 000006
【００７２】
ここで、条件変数及び計算された読み出し処理時間は次の表２のようになる。
【表２】
2009015856.tif 000007
【００７３】
上記の表２からわかるように、本発明によるデータ読み出し方法では、長いシークエンシャルアクセスに対して読み出し処理時間（２０３６）が従来のプレフェッチ読み出し方法の処理時間（２０３６）と等しく、短いランダムアクセスに対して読み出し処理時間（５３９）が従来の正常読み出し処理時間（６９９）よりずっと減少する。従って、本発明のデータ読み出し方法では、長いシークエンシャルアクセスデータパターンだけではなく短いランダムアクセスデータパターンでも読み出し処理速度が向上する。
【００７４】
図４に示したデータ読み出し方法において、コントローラ２１０は、ホストから入力された開始アドレスがどのメモリに割り当てられたかを判断するために、バッファメモリ２２０を優先して検索し、検索の結果、バッファメモリ２２０に開始アドレスが割り当てられていない時フラッシュメモリ２３０を検索した。しかし、コントローラ２１０の検索方法は必ずしもこれに限る必要はない。コントローラ２１０は、ホストから入力された開始アドレスがどのメモリに割り当てられたかを判断するために、バッファメモリ２２０、不フラッシュメモリ（不揮発性メモリ）２３０及び磁気ディスク２４０を同時に検索することもできる。
【００７５】
図５は、バッファメモリ２２０、フラッシュメモリ（不揮発性メモリ）２３０及び磁気ディスク２４０を同時に検索する読み出し方法を示すフローチャートである。図３及び図５を参照して、データ読み出し方法を説明する。
【００７６】
外部のホスト（図示せず）はメモリシステム２０に読み出し要求をする。詳細に、メモリシステム２０は、ホストから開始アドレス及び要求されたアドレスの個数を含む読み出し要求を受信する。
以下では説明の便宜のために、Ｒ〈１００、３０〉形態の読み出し要求を受信したと仮定して読み出し動作を説明する。一方、プレフェッチ読み出し動作は、要求されたデータの二倍大きさのデータを読み出すと仮定する。
【００７７】
メモリシステム２０は、外部のホストからＲ〈１００、３０〉の読み出し要求を受信する。コントローラ２１０は、読み出し要求により伝達された開始アドレス“１００”がバッファメモリ２２０、フラッシュメモリ２３０、及び磁気ディスク２４０に割り当てられているかどうかを同時に検索する（ステップＳ３１０）。
即ち、コントローラ２１０は、バッファメモリ２２０、フラッシュメモリ２３０、及び磁気ディスク２４０のそれぞれのアドレスマッピングテーブルから、開始アドレス“１００”及び開始アドレス“１００”から３０セクタまでのデータに対応するアドレスが存在するかどうかを検索する。
【００７８】
もし、バッファメモリ２２０がヒットしたら（ステップＳ３２１）、コントローラ２１０はバッファメモリ２２０から開始アドレス“１００”に対応する３０セクタのデータを読み出して、ホストに伝送する（ステップＳ３６０）。これでデータ読み出し動作が完了する。
【００７９】
もし、磁気ディスク２４０がヒットしたら（ステップＳ３２２）、コントローラ２１０は開始アドレス“１００”が磁気ディスク２４０に割り当てられたと判断し、磁気ディスク２４０からの要求されたデータを格納するためにバッファメモリ２２０を割り当てる（ステップＳ３４２）。その後、コントローラ２１０は磁気ディスク２４０に対してプレフェッチ読み出し動作を行う（ステップＳ３５２）。
【００８０】
即ち、コントローラ２１０は磁気ディスク２４０から、開始アドレス“１００”から６０セクタまでのデータを読み出す。読み出された６０セクタのデータはバッファメモリ２２０に格納される。磁気ディスク２４０から読み出されたデータがバッファメモリ２２０に格納された後、開始アドレス“１００”及び６０セクタのデータに対応するアドレスに対するマッピング情報を含むように、バッファメモリ２２０のアドレスマッピングテーブルをアップデートする。その後、コントローラ２１０はバッファメモリ２２０から、開始アドレス“１００”から３０セクタまでのデータを読み出して、ホストに伝送する（ステップＳ３６０）。これでデータ読み出し動作が完了する。
【００８１】
もし、フラッシュメモリ２３０がヒットしたら（ステップＳ３２０）、コントローラ２１０は要求されたデータの大きさが基準値より大きいかどうかを判断する（ステップＳ３３０）。もし、要求されたデータの大きさが基準値より大きければ、コントローラ２１０はフラッシュメモリ２３０からの要求されたデータを臨時的に格納するために、バッファメモリ２２０を割り当てる（ステップＳ３４０）。その後、コントローラ２１０はフラッシュメモリ２３０に対してプレフェッチ読み出し動作を行う（ステップＳ３５０）。
【００８２】
即ち、コントローラ２１０は、フラッシュメモリ２３０から、開始アドレス“１００”から６０セクタまでのデータを読み出す。読み出された６０セクタのデータはバッファメモリ２２０に格納される。フラッシュメモリ２３０から読み出されたデータがバッファメモリ２２０に格納された後、開始アドレス“１００”及び６０セクタのデータに対応するアドレスのマッピング情報が含まれるように、バッファメモリ２２０のアドレスマッピングテーブルをアップデートする。その後、コントローラ２１０は、バッファメモリ２２０から、開始アドレス“１００”から３０セクタまでのデータを読み出して、ホストに伝送する（ステップＳ３６０）。これでデータ読み出し動作が完了する。
【００８３】
もし、要求されたデータの大きさが基準値より大きくなければ、コントローラ２１０はフラッシュメモリ２３０に対して正常読み出し動作を行う（ステップＳ３５１）。コントローラ２１０は、フラッシュメモリ２３０から、開始アドレス“１００”から３０セクタまでのデータを読み出して、直接ホストに伝送する（ステップＳ３６１）。これでデータ読み出し動作は完了する。
【００８４】
本発明のメモリシステム２０は、ハイブリッド（Ｈｙｂｒｉｄ）ＨＤＤに適用されることができる。
ハイブリッドＨＤＤは、一般的にＨＤＤに不揮発性（Ｎｏｎｖｏｌａｔｉｌｅ）キャッシュメモリが結合した次世代ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）記憶装置である。
【００８５】
図６は、本発明の実施形態によるハイブリッドＨＤＤ３０の構造を示す概略ブロック図である。
図６に示すように、ハイブリッドＨＤＤ３０は、ＣＰＵを内蔵したコントローラ３１０、ＤＲＡＭキャッシュメモリ３２０、不揮発性キャッシュメモリ３３０及びＨＤＤ３４０を含む。
図６のコントローラ３１０、ＤＲＡＭキャッシュメモリ３２０、不揮発性キャッシュメモリ３３０及びＨＤＤ３４０は、それぞれ図３を参照して説明されたコントローラ２１０、バッファメモリ２２０、フラッシュメモリ２３０及び磁気ディスク２４０と同様である。
【００８６】
不揮発性キャッシュメモリ３３０は、節電モード（Ｓｌｅｅｐ）で消費電力を９０％まで節約することができ、即時のデータ読み出し／書き込みが可能であるので、ブーティング（ｂｏｏｔｉｎｇ）及びデータ処理速度を一般的なＨＤＤより２〜３倍早くすることができる。また、ハイブリッドＨＤＤは、機械的な動作を最小化することで耐久性を向上させ、電力消費を減少させることができる。ハイブリッドＨＤＤに使用されるフラッシュメモリは例えば、ＮＡＮＤ型フラッシュメモリであり得る。
【００８７】
不揮発性キャッシュメモリ３３０に対する読み出し動作が行われる際、要求されたデータの大きさによってプレフェッチ読み出し動作が行われるかあるいは正常読み出し動作が行われるか判断する。例えば、要求されたデータの大きさが基準値より大きい時、本発明のハイブリッドＨＤＤ３０では不揮発性キャッシュメモリ３３０に対してプレフェッチ読み出し動作が行われる。
【００８８】
本発明の実施形態に係るメモリシステム及びそのデータ読み出し方法は、不揮発性メモリに対する読み出し動作の際、要求されたデータの大きさによってプレフェッチ読み出し動作を行うかあるいは正常読み出し動作を行うかを決める。要求されたデータの大きさが基準値より大きい時、不揮発性メモリに対するプレフェッチ読み出し動作が行われる。これにより、本発明のメモリシステムでは、読み出し動作の際バッファメモリの活用確率が増大し、かつ、データの読み速度が向上する。
【００８９】
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【図面の簡単な説明】
【００９０】
【図１】本発明の一実施形態によるメモリシステムを示すブロック図である。
【図２】本発明の一実施形態によるメモリシステムの読み出し方法を説明するためのフローチャートである。
【図３】本発明の他の実施形態によるメモリシステムを示すブロック図である。
【図４】図３に示した本発明の他の実施形態によるメモリシステムの読み出し方法を説明するためのフローチャートである。
【図５】バッファメモリ、不揮発性メモリ、及びディスクを同時に検索する読み出し方法を説明するためのフローチャートである。
【図６】本発明の実施形態によるハイブリッドＨＤＤの構造を示す概略ブロック図であるである。
【符号の説明】
【００９１】
１０、２０    メモリシステム
１１０、２１０    コントローラ
１２０、２２０    バッファメモリ
１３０      不揮発性メモリ
２３０      フラッシュメモリ
２４０      磁気ディスク
３１０      （ＣＰＵ内蔵）コントローラ
３２０      ＤＲＡＭキャッシュメモリ
３３０      不揮発性キャッシュメモリ
３４０      ＨＤＤ
【図１】
2009015856.tif 000008
【図２】
2009015856.tif 000009
【図３】
2009015856.tif 000010
【図４】
2009015856.tif 000011
【図５】
2009015856.tif 000012
【図６】
2009015856.tif 000013