JP2009015856A - メモリシステム及びそのデータ読み出し方法 - Google Patents

メモリシステム及びそのデータ読み出し方法 Download PDF

Info

Publication number
JP2009015856A
JP2009015856A JP2008176632A JP2008176632A JP2009015856A JP 2009015856 A JP2009015856 A JP 2009015856A JP 2008176632 A JP2008176632 A JP 2008176632A JP 2008176632 A JP2008176632 A JP 2008176632A JP 2009015856 A JP2009015856 A JP 2009015856A
Authority
JP
Japan
Prior art keywords
memory
data
buffer memory
flash memory
assigned
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008176632A
Other languages
English (en)
Inventor
Seihyaku Ko
性 百 洪
Keitei Nan
惠 貞 南
Se-Wook Na
世 郁 羅
Shea-Yun Lee
時 潤 李
Taihan Kim
泰 範 金
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2009015856A publication Critical patent/JP2009015856A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory

Abstract

【課題】データ読み出し速度を向上させることのできるメモリシステム及びそのデータ読み出し方法を提供する。
【解決手段】バッファメモリ及び不揮発性メモリを含むメモリシステムのデータ読み出し方法であって、読み出し要求の際、入力されたアドレスが前記バッファメモリに割り当てられているか否かを判断するステップと、前記入力されたアドレスが前記バッファメモリに割り当てられているか否かの判断の結果、前記入力されたアドレスが前記バッファメモリに割り当てられていない場合、要求されたデータの大きさが基準値より大きいか否かを判断するステップと、前記要求されたデータの大きさが基準値より大きいか否かの判断の結果、前記要求されたデータの大きさが前記基準値より大きい場合、前記不揮発性メモリに対してプレフェッチ読み出し動作を行うステップとを有する。
【選択図】 図2

Description

本発明は、メモリシステムに関し、特に、データ読み出し速度を向上させることのできる不揮発性メモリを含むメモリシステム及びそのデータ読み出し方法に関する。
不揮発性メモリは、電源を切ってもデータが消失せずそのまま保存される。不揮発性メモリの種類には、製造者により工場でプログラムされるマスクROM(Mask Read Only Memory)、電気的なプログラムと消去を繰り返すことが可能なEEPROM(Electrically Erasable Programmable Read−Only Memory)などがある。
フラッシュメモリ(Flash Memory)は、既存のEEPROMの構成と動作を変形したもので、その名称は1984年TOSHIBAが「Flash EEPROM」という題目で論文を発表したことから由来する。
フラッシュメモリは、所望のブロック(Block)、セクタ(Sector)又は全体チップ(Chip)単位で電気的消去動作を行う。また、フラッシュメモリは、1ビート単位でもプログラムできるようにアーキテクチャ(Architecture)を構成している。フラッシュメモリは、記憶単位がセクタ単位で分割されてフォーマット(Format)されるディスク型補助記憶装置と類似した構造を有する。
フラッシュメモリのアーキテクチャは、ビットラインと接地ラインの間にセルが並列配置されたNOR型構造と、ビットラインと接地ラインの間にセルが直列配置されたNAND型構造とに大別される。NOR型構造は、周辺回路が簡単で読み出しアクセス時間(Read Access Time)が短いという長所を有する。一方、各セルごとにビットラインの接触電極を要するため、NAND型構造に比べてセル面積が大きくなるという短所を有する。NAND型構造の場合、読み出し動作に先立って該当ブロックを選択する必要があり、各セルが直列接続されていて動作抵抗が大きい。従って、NAND型構造は、読み出し速度が相対的に遅いという短所を有する。
フラッシュメモリは高集積が可能な不揮発性メモリ装置(Non−volatile Memory)である。フラッシュメモリは、データ保存性が優れているので、フラッシュメモリは、システム内でメインメモリとして使用される。フラッシュメモリは、既存のハードディスク及びフロッピー(登録商標)ディスクを代替えする高集積大容量素子として注目を浴びている。現在、フラッシュメモリは、携帯電話、デジタルカメラ、MP3プレーヤ、カムコーダ、PDAなどの携帯型デジタル電子機器の記憶媒体として広く利用されている。
しかし、フラッシュメモリには、RAMに比べてデータ入出力速度が遅いという短所がある。フラッシュメモリの読み出し及び書込み動作において、遅延時間の殆どはページバッファに臨時格納されたデータをセルアレイに書き込むか、セルアレイに格納されたデータをページバッファに読み出すための時間として遭遇する。
また、フラッシュメモリにはランダムアクセスが困難だという短所がある。ランダムアクセスが困難だというフラッシュメモリの短所を克服するために、フラッシュメモリシステム内にバッファメモリを設けてランダムアクセスを支援する新しい方法が開発されている。
フラッシュメモリシステムがランダムアクセスを支援するためには、フラッシュメモリにデータを書き込む前に又はホストにデータを伝送する前に、データを臨時的に保存するためのバッファメモリを用いている。バッファメモリはランダムアクセスが可能なメモリ、例えば、DRAMやSRAMである。例えば、ホストからのデータは直接フラッシュメモリに格納されるのではなく、バッファメモリに先に格納される。それから、バッファメモリに格納されたデータがフラッシュメモリに読み出される。同様に、フラッシュメモリで読み出されたデータは、直接ホストに伝送されるのではなく、バッファメモリに先に格納される。それから、バッファメモリに格納されたデータが読み出されてから、ホストに伝送されるという方法をとるという問題があった。
そこで、本発明は上記従来のフラッシュメモリシステムにおける問題点に鑑みてなされたものであって、本発明の目的は、データ読み出し速度を向上させることのできるメモリシステム及びそのデータ読み出し方法を提供することにある。
上記目的を達成するためになされた本発明によるデータ読み出し方法は、バッファメモリ及び不揮発性メモリを含むメモリシステムのデータ読み出し方法であって、読み出し要求の際、入力されたアドレスが前記バッファメモリに割り当てられているか否かを判断するステップと、前記入力されたアドレスが前記バッファメモリに割り当てられているか否かの判断の結果、前記入力されたアドレスが前記バッファメモリに割り当てられていない場合、要求されたデータの大きさが基準値より大きいか否かを判断するステップと、前記要求されたデータの大きさが基準値より大きいか否かの判断の結果、前記要求されたデータの大きさが前記基準値より大きい場合、前記不揮発性メモリに対してプレフェッチ読み出し動作を行うステップとを有することを特徴とする。
前記入力されたアドレスは開始アドレスであり、前記読み出し要求に応答して前記開始アドレスを基点に前記要求されたデータの大きさ分のデータを読み出すための前記開始アドレスと前記要求されたデータの大きさとを含む読み出し要求情報が供給されることが好ましい。
前記プレフェッチ読み出し動作は、前記不揮発性メモリから前記開始アドレスを基点に前記要求されたデータの大きさより所定の大きさだけ多く読み出す動作であり、前記プレフェッチ読み出し動作によって読み出されたデータは、前記バッファメモリに臨時的に格納されることが好ましい。
前記要求されたデータの大きさが基準値より大きいか否かの判断の結果、前記要求されたデータの大きさが前記基準値より大きい場合、前記プレフェッチ読み出し動作を行って前記不揮発性メモリから読み出したデータの格納に前記バッファメモリを割り当てるステップをさらに有することが好ましい。
前記バッファメモリから、前記プレフェッチ読み出し動作によって格納されたデータのうち前記要求されたデータのみを読み出して、外部に伝送するステップをさらに有することが好ましい。
前記入力されたアドレスが前記バッファメモリに割り当てられているか否かを判断するために、前記バッファメモリのアドレスマッピングテーブルに対して前記開始アドレス及び前記要求されたデータに対応するアドレスが存在するかどうかを検索するステップをさらに有することが好ましい。
前記検索の結果、前記入力されたアドレスが前記バッファメモリに割り当てられている場合、前記バッファメモリから前記要求されたデータを読み出して、外部に伝送するステップをさらに有することが好ましい。
前記要求されたデータの大きさが基準値より大きいか否かの判断の結果、前記要求されたデータの大きさが前記基準値より大きくない場合、前記不揮発性メモリに対して正常読み出し動作を行うステップをさらに有することが好ましい。
前記正常読み出し動作の際、前記不揮発性メモリから読み出されたデータは前記バッファメモリを経由せず直接外部に伝送されることが好ましい。
また、上記目的を達成するためになされた本発明によるデータ読み出し方法は、バッファメモリ、フラッシュメモリ、及び磁気ディスクを含むメモリシステムのデータ読み出し方法であって、読み出し要求の際、入力されたアドレスが前記バッファメモリに割り当てられているか否かを判断するステップと、前記入力されたアドレスが前記バッファメモリに割り当てられているか否かの判断の結果、前記入力されたアドレスが前記バッファメモリに割り当てられていない場合、前記入力されたアドレスが前記フラッシュメモリに割り当てられているか否かを判断するステップと、前記入力されたアドレスが前記フラッシュメモリに割り当てられているか否かの判断の結果、前記入力されたアドレスが前記フラッシュメモリに割り当てられている場合、要求されたデータの大きさが基準値より大きいか否かを判断するステップと、前記要求されたデータの大きさが基準値より大きいか否かの判断の結果、前記要求されたデータの大きさが前記基準値より大きい場合、前記フラッシュメモリに対してプレフェッチ読み出し動作を行うステップとを有することを特徴とする。
また、上記目的を達成するためになされた本発明によるデータ読み出し方法は、バッファメモリ、フラッシュメモリ及び磁気ディスクを含むメモリシステムのデータ読み出し方法であって、読み出し要求の際、入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、及び前記磁気ディスクに割り当てられているか否かを同時に判断するステップと、前記入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、及び前記磁気ディスク割り当てられているか否かの判断の結果、前記入力されたアドレスが前記フラッシュメモリに割り当てられている場合、要求されたデータの大きさが基準値より大きいか否かを判断するステップと、前記要求されたデータの大きさが基準値より大きいか否かの判断の結果、前記要求されたデータの大きさが前記基準値より大きい場合、フラッシュメモリに対してプレフェッチ読み出し動作を行うステップとを有することを特徴とする。
上記目的を達成するためになされた本発明によるメモリシステムは、フラッシュメモリと、磁気ディスクと、前記フラッシュメモリあるいは前記磁気ディスクのプレフェッチ読み出し動作の際、読み出されたデータを臨時的に格納するバッファメモリと、前記フラッシュメモリ、前記磁気ディスク、及び前記バッファメモリを制御し、前記フラッシュメモリに対する読み出し要求の際、要求されたデータの大きさによってプレフェッチ読み出し動作を行うか、あるいは正常読み出し動作を行うかどうかを判断するコントローラとを有することを特徴とする。
前記コントローラは、前記磁気ディスクに対する読み出し要求の時、プレフェッチ読み出し動作を行うことが好ましい。
前記フラッシュメモリに対して正常読み出し動作を行う時、前記フラッシュメモリから読み出されたデータは前記バッファメモリを経由せず直接外部に伝送されることが好ましい。
前記コントローラは、読み出し要求の際、入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、又は前記ディスクのうちの何れか一つに割り当てられているかどうかを同時に判断することが好ましい。
前記コントローラは、読み出し要求の際、入力されたアドレスが前記バッファメモリに割り当てられているかどうかを最初に判断することが好ましい。
前記入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、又は前記ディスクのうちの何れか一つに割り当てられているかどうかの判断の結果、前記入力されたアドレスが前記バッファメモリに割り当てられている場合、前記コントローラは前記バッファメモリから前記要求されたデータを読み出して、外部に伝送することが好ましい。
前記入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、又は前記ディスクのうちの何れか一つに割り当てられているかどうかの判断の結果、前記入力されたアドレスが前記バッファメモリに割り当てられていない場合、前記コントローラは前記入力されたアドレスが前記フラッシュメモリに割り当てられているか否かを判断することが好ましい。
前記入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、又は前記ディスクのうちの何れか一つに割り当てられているかどうかの判断の結果、前記入力されたアドレスが前記フラッシュメモリに割り当てられている場合、前記コントローラは、前記要求されたデータの大きさによって、前記フラッシュメモリに対してプレフェッチ読み出し動作を行うか、あるいは正常読み出し動作を行うかを判断することが好ましい。
前記入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、又は前記ディスクのうちの何れか一つに割り当てられているかどうかの判断の結果、前記入力されたアドレスが前記フラッシュメモリに割り当てられていない場合、前記コントローラは、前記磁気ディスクに対してプレフェッチ読み出し動作を行うことが好ましい。
本発明に係るメモリシステム及びそのデータ読み出し方法によれば、不揮発性メモリ装置に対するデータ読み出し動作の際、要求されたデータの大きさによってプレフェッチ動作を行うかどうかを決める。従って、データのパターンによって互いに異なる読み出し動作を行うことで、データ読み出し速度が向上するという効果がある。
次に、本発明に係るメモリシステム及びそのデータ読み出し方法を実施するための最良の形態の具体例を図面を参照しながら説明する。
本発明によるメモリシステムは、不揮発性メモリのデータ読み出し動作の際、データの大きさによってデータプレフェッチ(Data Prefetch)を適用して読み出し動作を行うか否かを判断する。ここで、データプレフェッチとは、読み出し要求の前に予めバッファメモリにデータを読み出す機能を意味する。例えば、不揮発性メモリのデータ読み出し動作の際、要求されたデータの大きさが基準値より大きいと、メモリシステムは、読み出し要求されたデータ及び後で読み出し要求されたデータを不揮発性メモリから読み出して、バッファメモリに格納する。これにより、本発明のメモリシステムは、連続するアドレスが入る読み出し要求に対してバッファメモリの活用を増大させる。結果として、メモリシステムのデータ読み出し速度が向上する。
図1は、本発明の一実施形態によるメモリシステム10を示すブロック図である。
図1に示すように、メモリシステム10は、コントローラ110、バッファメモリ120及び不揮発性メモリ130を含む。
不揮発性メモリ130のデータの読み出し要求の際、要求されたデータの大きさによって、データプレフェッチを適用したプレフェッチ読み出し(Prefetch Read)動作が行われるか、あるいはデータプレフェッチを適用しない正常読み出し(Normal Read)動作が行われる。例えば、不揮発性メモリ130のデータの読み出し要求の際、要求されたデータの大きさが基準値より大きい場合、プレフェッチ読み出し動作が行われる。逆に、要求されたデータの大きさが基準値より大きくない場合、正常読み出し動作が行われる。
不揮発性メモリ130に対するプレフェッチ読み出し動作によって読み出されたデータは、バッファメモリ120に臨時的に格納される。その後、バッファメモリ120に格納されたデータのうち、読み出し要求されたデータのみが外部に伝送される。一方、不揮発性メモリ130に対する正常読み出し動作によって読み出されたデータは、バッファメモリ120を経由せず外部に伝送される。
コントローラ110は、メモリシステム10の全般的な動作を制御する。コントローラ110は、外部(例えば、ホスト)から入力された命令/アドレス/データを受信して、読み出し/書き込み動作を制御する。コントローラ110には、読み出し動作の際、外部から次のような読み出し要求(Requrest)が伝達される。例えば、R〈100、60〉という読み出し要求が入力されたら、これは開始アドレス“100”から60セクタのデータを読み出すとの意味である。
コントローラ110は、読み出し動作の際、要求されたデータに対応するアドレスがバッファメモリ120に割り当てられているかどうかを判断する。ここで、要求されたデータに対応するアドレスは、開始アドレス“100”から60セクタのデータに対応するアドレスである。
もし、要求されたデータに対応するアドレスがバッファメモリ120に割り当てられていれば、バッファメモリ120から要求されたデータを読み出して外部に伝送する。もし、要求されたデータに対応するアドレスがバッファメモリ120に割り当てられていなければ、コントローラ110は不揮発性メモリ130に対するデータ読み出し動作を行う。
ここで、不揮発性メモリ130に対するデータ読み出し動作は、要求されたデータの大きさによって、プレフェッチ読み出し動作または正常読み出し動作に区分される。
プレフェッチ読み出しは、外部から要求されたデータの大きさより所定の大きさだけ大きいデータを不揮発性メモリ130から読み出す方式である。
ここで、プレフェッチ読み出し動作によって読み出されたデータは、バッファメモリ120に臨時的に格納される。例えば、追加的に読み出そうとするデータの大きさは、要求されたデータの大きさの二倍あるいは64セクタであり得る。
要求されたデータの大きさが100セクタであれば、プレフェッチ読み出し動作の際、コントローラ110は不揮発性メモリ130から200セクタのデータを読み出して、バッファメモリ120に格納する。プレフェッチ読み出し動作を行うために、コントローラ110は読み出し要求されたアドレスをプレフェッチするデータに対応するプレフェッチアドレスに変換する。
一方、データの正常読み出しは、外部から要求されたデータの大きさが基準値より小さい場合、不揮発性メモリ130から要求されたデータを読み出す方式である。
この場合、正常読み出し動作によって読み出されたデータはバッファメモリ120を経由せず直接外部に伝送される。このようなバッファメモリ120を経由しない正常読み出しはバッファメモリ120の汚染度(pollution)の増加を抑制する。バッファメモリ120の汚染度が増加しなくなるというのは、プレフェッチ読み出し動作により読み出されたデータが格納される空間が減少しないことを意味する。即ち、バッファメモリ120の活用度が増大するようになる。
コントローラ110は、読み出し要求の際、伝達されたデータの大きさと基準値とを比べて、不揮発性メモリ130に対するプレフェッチ読み出し動作を行うか否かを決める。
基準値は、メモリシステムの環境によって経験的に抽出される。
バッファメモリ120には、不揮発性メモリ130のデータ書き込み動作の際、不揮発性メモリ130に格納されるデータ、アドレス、及び命令語が外部から伝送されて臨時的に格納される。また、バッファメモリ120には、読み出し動作の際、不揮発性メモリ130から感知されたデータが外部に伝送される前に臨時的に格納される。一般的に、バッファメモリ120はSRAM又はDRAMにて具現される。しかし、バッファメモリ120がこの実施形態に限らないことは、当分野の通常の知識を習得した者に自明である。
不揮発性メモリ130はデータを格納する領域である。本発明の不揮発性メモリ130は、フラッシュメモリ、マスクROM、PROM、F(ferroelectric)RAMなどによって具現される。
外部から要求されたデータの大きさが基準値より大きい場合、不揮発性メモリ130から読み出されたデータはバッファメモリ120に格納されてから外部に伝送される。一方、外部から要求されたデータの大きさが基準値より大きくない場合、不揮発性メモリ130から読み出されたデータは、バッファメモリ120を経由せず直接的に外部に伝送される。
一方、不揮発性メモリ130はプレフェッチ読み出し及び正常読み出しの両方を行うように構成される。例えば、要求されたデータの大きさによって、コントローラ110は不揮発性メモリ130にプレフェッチ読み出し命令又は正常読みだし命令を生成して伝達する。例えば、不揮発性メモリ130は、伝達されたプレフェッチ読み出し命令に応じて、入力されたアドレスに対応するデータだけではなく隣接するアドレスに対応するデータも追加に読み出すように構成される。また、不揮発性メモリ130は、伝達された正常読み出し命令に応じて、入力されたアドレスに対応するデータのみを読み出すように構成される。
本発明の一実施形態のメモリシステム10では、不揮発性メモリ130の読み出し動作の際、データの大きさによってプレフェッチ読み出し動作を行うかあるいは正常読み出し動作を行うか判断して、読み出し動作が行われる。要求されたデータの大きさが基準値より大きい場合、バッファメモリ120を経由してプレフェッチ読み出し動作が行われる。
従って、読み出されるデータのパターンが連続的に入力されるデータであれば、次の読み出し要求の際にバッファメモリ120をアクセスする確率が高くなる。従って、メモリシステム10は連続的に要求されるデータに対してバッファメモリ120を効率良く活用し、データ読み出し時間を減少させることができる。
図2は、本発明の一実施形態によるメモリシステム10の読み出し方法を説明するためのフローチャートである。図1及び図2を参照して、メモリシステム10の読み出し方法を説明する。
外部のホスト(図示せず)はメモリシステム10に読み出し要求をする。
詳細には、メモリシステム10はホストから開始アドレス及び要求されたアドレスの個数を含む読み出し要求を受信する。要求されたアドレスの個数は、要求されたデータの大きさを意味する。例えば、R〈100、30〉形態の読み出し要求が伝達されたら、これは開始アドレス“100”から30セクタのデータを読み出すという意味である。以下では、説明の便宜のためにR〈100、30〉形態の読み出し要求が伝達されたと仮定して読み出し動作を説明する。一方、プレフェッチ読み出し動作は、要求されたデータの二倍大きさのデータを読み出すと仮定する。
メモリシステム10は、外部のホストからR〈100、30〉の読み出し要求を受信する。コントローラ110は読み出し要求により伝達された開始アドレス“100”がバッファメモリ120に割り当てられているかどうかを検索する(ステップS110)。
即ち、コントローラ110は、バッファメモリ120のアドレスマッピングテーブルから開始アドレス“100”及び開始アドレス“100”から30セクタのデータに対応するアドレスが存在するか検索する。
検索結果によって、コントローラ110はバッファメモリ120がヒット(Hit)したかどうかを判断する(ステップS120)。バッファメモリ120がヒットしたというのは、要求されたデータに対応するアドレスがバッファメモリ120のアドレスマッピングテーブルから検索されたことを意味する。もし、バッファメモリ120がヒットしたら、コントローラ110はバッファメモリ120から開始アドレス“100”から30セクタのデータを読み出して、ホストに伝送する(ステップS160)。これで、データ読み出し動作が完了する。
もし、バッファメモリ120がヒットしなかったら、コントローラ110は開始アドレス“100”が不揮発性メモリ130に割り当てられたと判断し、要求されたデータの大きさが基準値より大きいかどうかを判断する(ステップS130)。ここで、30セクタのデータを読み出すよう要求されたので、要求されたデータの大きさは30セクタである。要求されたデータの大きさによって、不揮発性メモリ130に対してプレフェッチ読み出し動作あるいは正常読み出し動作が行われる。
もし、要求されたデータの大きさが基準値より大きければ、コントローラ110は不揮発性メモリ130からの要求されたデータを臨時的に格納するため、バッファメモリ120を割り当てる(ステップS140)。
その後、コントローラ110は不揮発性メモリ130に対してプレフェッチ読み出し動作を行う(ステップS150)。
即ち、コントローラ110は、不揮発性メモリ130から、開始アドレス“100”から60セクタまでのデータを読み出す。読み出された60セクタのデータはバッファメモリ120に格納される。不揮発性メモリ130から読み出されたデータがバッファメモリ120に格納された後、開始アドレス“100”及び60セクタのデータに対応するアドレスに対するマッピング情報が含まれるように、バッファメモリ120のアドレスマッピングテーブルをアップデートする。その後、コントローラ110は、バッファメモリ120に格納された開始アドレス“100”から30セクタのデータを読み出して、ホストに伝送する(ステップS160)。これでデータ読み出し動作が完了する。
もし、要求されたデータの大きさが基準値より大きくなければ、コントローラ110は不揮発性メモリ130に対して正常読み出し動作を行う(ステップS152)。コントローラ110は、不揮発性メモリ130から開始アドレス“100”から30セクタのデータを読み出して、直接ホストに伝送する(ステップS162)。これでデータ読み出し動作が完了する。
本発明の一実施形態に係るメモリシステムの読み出し方法は、要求されたデータの大きさによって、不揮発性メモリに対してプレフェッチ読み出し動作あるいは正常読み出し動作を行う。これにより、本発明のデータ読み出し方法は、読み出し動作をより効率的に管理するようになる。
本発明のメモリシステムは、複数の記憶装置を有するメモリシステムに適用することができる。
図3は、本発明の他の実施形態によるメモリシステム20を示すブロック図である。
図3に示すように、メモリシステム20は、コントローラ210、バッファメモリ220、フラッシュメモリ230及び磁気ディスク240を含む。
一般的に、フラッシュメモリ230は早い初期反応速度を有する記憶装置であり、磁気ディスク240は遅い初期反応速度を有する記憶装置である。遅い初期反応速度を有する記憶装置である磁気ディスク240に対する読み出し要求の際、データプレフェッチを適用してプレフェッチ読み出し動作が行われる。
一方、早い初期反応速度を有するフラッシュメモリに対する読み出し要求の際、メモリシステム20は、要求されたデータの大きさによって、データプレフェッチを適用するかあるいはデータプレフェッチを適用しないかを判断して、読み出し動作を行う。例えば、要求されたデータの大きさが基準値より大きい場合、メモリシステム20はデータプレフェッチを適用してフラッシュメモリ230に対して読み出し動作を行う。
本発明のコントローラ210は、読み出し動作の際、入力されたアドレスがバッファメモリ220に割り当てられているかどうかを判断する。判断の結果、入力されたアドレスがバッファメモリ220に割り当てられていたら、コントローラ210はバッファメモリ220から入力されたアドレスに対応するデータを外部に伝送する。一方、判断の結果、入力されたアドレスがバッファメモリ220に割り当てられていなかったら、コントローラ210は入力されたアドレスがフラッシュメモリ230に割り当てられているかどうかを判断する。
もし、判断の結果、入力されたアドレスがフラッシュメモリ230に割り当てられていたら、コントローラ210は読み出し要求されたデータの大きさによって、フラッシュメモリ230に対してプレフェッチ読み出し動作あるいは正常読み出し動作のうち何れか一つを行う。
プレフェッチ読み出し動作の際、コントローラ210は入力されたアドレスによってプレフェッチ読み出し動作を行うためのプレフェッチアドレスを生成して、フラッシュメモリ230に伝達する。フラッシュメモリ230では、伝達されたプレフェッチアドレスに応じて読み出し動作が行われる。読み出されたデータはバッファメモリ220に伝送される。コントローラ210はバッファメモリ220から読み出し要求されたデータを読み出して、外部に伝送する。
正常読み出し動作の際、コントローラ210は入力されたアドレスに対応する物理的アドレスを生成してフラッシュメモリ230に伝達する。フラッシュメモリ230では、伝達された物理的アドレスに応じて読み出し動作が行われる。読み出されたデータは、バッファメモリ220を経由せず直接的に外部に伝送される。
もし、判断の結果、入力されたアドレスがフラッシュメモリ230に割り当てられていなかったら、コントローラ210は磁気ディスク240に対してプレフェッチ読み出し動作を行う。磁気ディスク240に対するプレフェッチ読み出し動作は、フラッシュメモリ230に対するプレフェッチ動作と類似するので、詳細は省略する。
バッファメモリ220及びフラッシュメモリ230は、図1を参照して説明したバッファメモリ120及び不揮発性メモリ130と同様である。磁気ディスク240はハードディスクドライブ(Hrad Disk Drive、以下HDD)であり得る。HDDは磁性体でコーティングされたアルミニウム基板にデータを格納できるようにしたデータ記憶装置である。HDDは、データを格納する円板状の金属板プラッタ(Platter)、プラッタの上で動きながらデータを記録/修正/削除するヘッド(Head)、プラッタを回転させるスピンドルモータ(Spindle Motor)などで構成されている。
図4は、図3に示した本発明の他の実施形態によるメモリシステム20の読み出し方法を説明するためのフローチャートである。図3及び図4を参照して、メモリシステム20の読み出し方法を説明する。
外部のホスト(図示せず)はメモリシステム20に読み出し要求をする。
詳細には、メモリシステム20はホストから開始アドレス及び要求されたアドレスの個数を含む読み出し要求を受信する。以下では説明の便宜のためにR〈100、30〉形態の読み出し要求を受信したと仮定して読み出し動作を説明する。
一方、プレフェッチ読み出し動作は、要求されたデータの二倍大きさのデータを読み出すと仮定する。
メモリシステム20は、外部のホストからR〈100、30〉の読み出し要求を受信する。コントローラ210は、読み出し要求により伝達された開始アドレス“100”がバッファメモリ220に割り当てられているかどうかを検索する(ステップS210)。
即ち、バッファメモリ220のアドレスマッピングテーブルから、開始アドレス“100”及び開始アドレス“100”から30セクタのデータに対応するアドレスが存在するか検索する。
コントローラ210は、検索結果によってバッファメモリ220がヒット(Hit)したかどうかを判断する(ステップS220)。バッファメモリ220がヒットしたというのは、要求されたデータに対応するアドレスがバッファメモリ220のアドレスマッピングテーブルから検索されたことを意味する。もしバッファメモリ220がヒットしたら、コントローラ210はバッファメモリ220から開始アドレス“100”に対応する30セクタのデータを読み出して、ホストに伝送する(ステップS280)。これでデータ読み出し動作が完了する。
一方、バッファメモリ220がヒットしなかったら、コントローラ210は読み出し要求の際に伝達された開始アドレス“100”がフラッシュメモリ230に割り当てられているかどうかを検索する(ステップS230)。即ち、フラッシュメモリ230のアドレスマッピングテーブルから開始アドレス“100”が存在するかどうかを検索する。コントローラ210は、検索結果によってフラッシュメモリ230のヒットを判断する(ステップS240)。
もし、フラッシュメモリ230がヒットしなかったら、コントローラ210は開始アドレス100が磁気ディスク240に割り当てられたと判断し、磁気ディスク240からの要求されたデータを格納するため、バッファメモリ220を割り当てる(ステップS262)。その後、コントローラ210は、ディスク240に対してプレフェッチ読み出し動作を行う(ステップS272)。
即ち、コントローラ210は、磁気ディスク240から開始アドレス“100”から60セクタのデータを読み出す。読み出された60セクタのデータはバッファメモリ220に格納される。磁気ディスク240から読み出されたデータがバッファメモリ220に格納された後、開始アドレス“100”及び60セクタのデータに対応するアドレスに対するマッピング情報を含むよう、バッファメモリ220のアドレスマッピングテーブルをアップデートする。その後、コントローラ210は、バッファメモリ220から開始アドレス“100”から30セクタのデータを読み出して、ホストに伝送する(ステップS280)。これでデータ読み出し動作が完了する。
もし、フラッシュメモリ230がヒットしたら、コントローラ210は要求されたデータの大きさが基準値より大きいかどうかを判断する(ステップS250)。ここで、30セクタのデータを読み出すように要求されたので、要求されたデータの大きさは30セクタである。要求されたデータの大きさによって、フラッシュメモリ230に対してプレフェッチ読み出し動作あるいは正常読み出し動作が行われる。
もし、要求されたデータの大きさが基準値より大きければ、コントローラ210はフラッシュメモリ230からの要求されたデータを臨時的に格納するために、バッファメモリ220を割り当てる(ステップS260)。その後、コントローラ210は、フラッシュメモリ230に対してプレフェッチ読み出し動作を行う(ステップS270)。
即ち、コントローラ210は、フラッシュメモリ230から、開始アドレス“100”から60セクタまでのデータを読み出す。読み出された60セクタのデータはバッファメモリ220に格納される。フラッシュメモリ230から読み出されたデータがバッファメモリ220に格納された後、開始アドレス“100”及び60セクタのデータに対応するアドレスのマッピング情報が含まれるよう、バッファメモリ220のアドレスマッピングテーブルをアップデートする。その後、コントローラ210はバッファメモリ220から、開始アドレス“100”から30セクタまでのデータを読み出して、ホストに伝送する(ステップS280)。これでデータ読み出し動作が完了する。
もし、要求されたデータの大きさが基準値より大きくなければ、コントローラ210はフラッシュメモリ230に対して正常読み出し動作を行う(ステップS271)。コントローラ210は、フラッシュメモリ230から開始アドレス“100”から30セクタのデータを読み出して、直接ホストに伝送する(ステップS281)。これでデータ読み出し動作が完了する。
本発明の他の実施形態によるデータ読み出し方法は次のような長所を有する。
先ず、長いシークエンシャルアクセス(Long Sequential Access)に対して、データプレフェッチにより読み出し処理時間が減少する。これは、相対的にアクセス速度が異なる記憶装置(例えば、磁気ディスク、フラッシュメモリ)より早いバッファメモリのヒット確率が増加するからである。
短いランダムアクセス(Short Random Access)に対しては、データプレフェッチによって発生し得る被害が減少する。これは、短いランダムアクセスの際、フラッシュメモリに対するプレフェッチ読み出し動作を行わず、正常読み出し動作を行うからである。また、短いランダムアクセスの際バッファメモリが割り当てられないことで、バッファメモリを割り当てるために必要な処理時間が減少する。さらに、短いランダムアクセスの際バッファメモリを使用しないことで、むしろバッファメモリのヒット確率が増加する。何故なら、再利用の確率が短い大きさのデータを管理するために、長い大きさのデータをバッファメモリから除去する必要がなくなるからである。
以下では、図4のデータ読み出し方法を適用する時、データ読み出し処理時間が従来の読み出し処理時間と比べてどのように減少するか説明する。
はバッファメモリを検索する時間であり、Tはフラッシュメモリを検索する時間であり、Tはバッファメモリを割り当てる時間であり、Tはディスクに対してプレフェッチ読み出し動作を行う時間であり、Tはフラッシュメモリに対して正常読み出し動作を行う時間であり、Tはバッファメモリからホストに伝送される時間であり、Tはフラッシュメモリに対してプレフェッチ読み出し動作を行う時間であり、Tはフラッシュメモリの正常読み出し動作が行われて読み出されたデータをホストに伝送する時間である。
ここで、Tは以下の数式1を満足する。
Figure 2009015856
ここで、Tはフラッシュメモリからのデータ伝送からホストに初期伝送されるまでの待ち時間であり、Tはデータの大きさに比例する伝送時間であり、sは要求されたデータの大きさである。
一方、Tは以下の数式2を満足する。
Figure 2009015856
ここで、Tはバッファメモリからホストに伝送される時データの大きさに比例する伝送時間であり、sは要求されたデータの大きさである。
一方、直接データがホストに伝送される時間Tは、バッファメモリからホストに伝送される時間Tと等しいと仮定する。説明の便宜のために、磁気ディスクは考慮せず説明する。換言すれば、バッファメモリがヒットしなかったら、フラッシュメモリが必ずヒットする。
本発明によるデータ読み出し方法における読み出し処理時間は、以下の数式3を満足する。
Figure 2009015856
ここで、αはバッファメモリがヒットされる確率であり、γは要求されたデータが連続的で基準値以上である確率である。一方、Sはプレフェッチされるデータの大きさである。
例えば、プレフェッチ読み出し動作の際、要求されたデータの大きさの二倍のデータを読み出すと仮定すれば、S=2sとなる。
短い大きさのランダムアクセスデータパターンと長い大きさのシークエンシャルアクセスデータパターンに対して、読み出し処理時間は下記の表2のように計算される。説明の便宜のために、パラメータは下記の表1のように仮定する。
Figure 2009015856
ここで、条件変数及び計算された読み出し処理時間は次の表2のようになる。
Figure 2009015856
上記の表2からわかるように、本発明によるデータ読み出し方法では、長いシークエンシャルアクセスに対して読み出し処理時間(2036)が従来のプレフェッチ読み出し方法の処理時間(2036)と等しく、短いランダムアクセスに対して読み出し処理時間(539)が従来の正常読み出し処理時間(699)よりずっと減少する。従って、本発明のデータ読み出し方法では、長いシークエンシャルアクセスデータパターンだけではなく短いランダムアクセスデータパターンでも読み出し処理速度が向上する。
図4に示したデータ読み出し方法において、コントローラ210は、ホストから入力された開始アドレスがどのメモリに割り当てられたかを判断するために、バッファメモリ220を優先して検索し、検索の結果、バッファメモリ220に開始アドレスが割り当てられていない時フラッシュメモリ230を検索した。しかし、コントローラ210の検索方法は必ずしもこれに限る必要はない。コントローラ210は、ホストから入力された開始アドレスがどのメモリに割り当てられたかを判断するために、バッファメモリ220、不フラッシュメモリ(不揮発性メモリ)230及び磁気ディスク240を同時に検索することもできる。
図5は、バッファメモリ220、フラッシュメモリ(不揮発性メモリ)230及び磁気ディスク240を同時に検索する読み出し方法を示すフローチャートである。図3及び図5を参照して、データ読み出し方法を説明する。
外部のホスト(図示せず)はメモリシステム20に読み出し要求をする。詳細に、メモリシステム20は、ホストから開始アドレス及び要求されたアドレスの個数を含む読み出し要求を受信する。
以下では説明の便宜のために、R〈100、30〉形態の読み出し要求を受信したと仮定して読み出し動作を説明する。一方、プレフェッチ読み出し動作は、要求されたデータの二倍大きさのデータを読み出すと仮定する。
メモリシステム20は、外部のホストからR〈100、30〉の読み出し要求を受信する。コントローラ210は、読み出し要求により伝達された開始アドレス“100”がバッファメモリ220、フラッシュメモリ230、及び磁気ディスク240に割り当てられているかどうかを同時に検索する(ステップS310)。
即ち、コントローラ210は、バッファメモリ220、フラッシュメモリ230、及び磁気ディスク240のそれぞれのアドレスマッピングテーブルから、開始アドレス“100”及び開始アドレス“100”から30セクタまでのデータに対応するアドレスが存在するかどうかを検索する。
もし、バッファメモリ220がヒットしたら(ステップS321)、コントローラ210はバッファメモリ220から開始アドレス“100”に対応する30セクタのデータを読み出して、ホストに伝送する(ステップS360)。これでデータ読み出し動作が完了する。
もし、磁気ディスク240がヒットしたら(ステップS322)、コントローラ210は開始アドレス“100”が磁気ディスク240に割り当てられたと判断し、磁気ディスク240からの要求されたデータを格納するためにバッファメモリ220を割り当てる(ステップS342)。その後、コントローラ210は磁気ディスク240に対してプレフェッチ読み出し動作を行う(ステップS352)。
即ち、コントローラ210は磁気ディスク240から、開始アドレス“100”から60セクタまでのデータを読み出す。読み出された60セクタのデータはバッファメモリ220に格納される。磁気ディスク240から読み出されたデータがバッファメモリ220に格納された後、開始アドレス“100”及び60セクタのデータに対応するアドレスに対するマッピング情報を含むように、バッファメモリ220のアドレスマッピングテーブルをアップデートする。その後、コントローラ210はバッファメモリ220から、開始アドレス“100”から30セクタまでのデータを読み出して、ホストに伝送する(ステップS360)。これでデータ読み出し動作が完了する。
もし、フラッシュメモリ230がヒットしたら(ステップS320)、コントローラ210は要求されたデータの大きさが基準値より大きいかどうかを判断する(ステップS330)。もし、要求されたデータの大きさが基準値より大きければ、コントローラ210はフラッシュメモリ230からの要求されたデータを臨時的に格納するために、バッファメモリ220を割り当てる(ステップS340)。その後、コントローラ210はフラッシュメモリ230に対してプレフェッチ読み出し動作を行う(ステップS350)。
即ち、コントローラ210は、フラッシュメモリ230から、開始アドレス“100”から60セクタまでのデータを読み出す。読み出された60セクタのデータはバッファメモリ220に格納される。フラッシュメモリ230から読み出されたデータがバッファメモリ220に格納された後、開始アドレス“100”及び60セクタのデータに対応するアドレスのマッピング情報が含まれるように、バッファメモリ220のアドレスマッピングテーブルをアップデートする。その後、コントローラ210は、バッファメモリ220から、開始アドレス“100”から30セクタまでのデータを読み出して、ホストに伝送する(ステップS360)。これでデータ読み出し動作が完了する。
もし、要求されたデータの大きさが基準値より大きくなければ、コントローラ210はフラッシュメモリ230に対して正常読み出し動作を行う(ステップS351)。コントローラ210は、フラッシュメモリ230から、開始アドレス“100”から30セクタまでのデータを読み出して、直接ホストに伝送する(ステップS361)。これでデータ読み出し動作は完了する。
本発明のメモリシステム20は、ハイブリッド(Hybrid)HDDに適用されることができる。
ハイブリッドHDDは、一般的にHDDに不揮発性(Nonvolatile)キャッシュメモリが結合した次世代PC(Personal Computer)記憶装置である。
図6は、本発明の実施形態によるハイブリッドHDD30の構造を示す概略ブロック図である。
図6に示すように、ハイブリッドHDD30は、CPUを内蔵したコントローラ310、DRAMキャッシュメモリ320、不揮発性キャッシュメモリ330及びHDD340を含む。
図6のコントローラ310、DRAMキャッシュメモリ320、不揮発性キャッシュメモリ330及びHDD340は、それぞれ図3を参照して説明されたコントローラ210、バッファメモリ220、フラッシュメモリ230及び磁気ディスク240と同様である。
不揮発性キャッシュメモリ330は、節電モード(Sleep)で消費電力を90%まで節約することができ、即時のデータ読み出し/書き込みが可能であるので、ブーティング(booting)及びデータ処理速度を一般的なHDDより2〜3倍早くすることができる。また、ハイブリッドHDDは、機械的な動作を最小化することで耐久性を向上させ、電力消費を減少させることができる。ハイブリッドHDDに使用されるフラッシュメモリは例えば、NAND型フラッシュメモリであり得る。
不揮発性キャッシュメモリ330に対する読み出し動作が行われる際、要求されたデータの大きさによってプレフェッチ読み出し動作が行われるかあるいは正常読み出し動作が行われるか判断する。例えば、要求されたデータの大きさが基準値より大きい時、本発明のハイブリッドHDD30では不揮発性キャッシュメモリ330に対してプレフェッチ読み出し動作が行われる。
本発明の実施形態に係るメモリシステム及びそのデータ読み出し方法は、不揮発性メモリに対する読み出し動作の際、要求されたデータの大きさによってプレフェッチ読み出し動作を行うかあるいは正常読み出し動作を行うかを決める。要求されたデータの大きさが基準値より大きい時、不揮発性メモリに対するプレフェッチ読み出し動作が行われる。これにより、本発明のメモリシステムでは、読み出し動作の際バッファメモリの活用確率が増大し、かつ、データの読み速度が向上する。
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
本発明の一実施形態によるメモリシステムを示すブロック図である。 本発明の一実施形態によるメモリシステムの読み出し方法を説明するためのフローチャートである。 本発明の他の実施形態によるメモリシステムを示すブロック図である。 図3に示した本発明の他の実施形態によるメモリシステムの読み出し方法を説明するためのフローチャートである。 バッファメモリ、不揮発性メモリ、及びディスクを同時に検索する読み出し方法を説明するためのフローチャートである。 本発明の実施形態によるハイブリッドHDDの構造を示す概略ブロック図であるである。
符号の説明
10、20 メモリシステム
110、210 コントローラ
120、220 バッファメモリ
130 不揮発性メモリ
230 フラッシュメモリ
240 磁気ディスク
310 (CPU内蔵)コントローラ
320 DRAMキャッシュメモリ
330 不揮発性キャッシュメモリ
340 HDD

Claims (20)

  1. バッファメモリ及び不揮発性メモリを含むメモリシステムのデータ読み出し方法であって、
    読み出し要求の際、入力されたアドレスが前記バッファメモリに割り当てられているか否かを判断するステップと、
    前記入力されたアドレスが前記バッファメモリに割り当てられているか否かの判断の結果、前記入力されたアドレスが前記バッファメモリに割り当てられていない場合、要求されたデータの大きさが基準値より大きいか否かを判断するステップと、
    前記要求されたデータの大きさが基準値より大きいか否かの判断の結果、前記要求されたデータの大きさが前記基準値より大きい場合、前記不揮発性メモリに対してプレフェッチ読み出し動作を行うステップとを有することを特徴とするデータ読み出し方法。
  2. 前記入力されたアドレスは開始アドレスであり、
    前記読み出し要求に応答して前記開始アドレスを基点に前記要求されたデータの大きさ分のデータを読み出すための前記開始アドレスと前記要求されたデータの大きさとを含む読み出し要求情報が供給されることを特徴とする請求項1に記載のデータ読み出し方法。
  3. 前記プレフェッチ読み出し動作は、前記不揮発性メモリから前記開始アドレスを基点に前記要求されたデータの大きさより所定の大きさだけ多く読み出す動作であり、前記プレフェッチ読み出し動作によって読み出されたデータは、前記バッファメモリに臨時的に格納されることを特徴とする請求項2に記載のデータ読み出し方法。
  4. 前記要求されたデータの大きさが基準値より大きいか否かの判断の結果、前記要求されたデータの大きさが前記基準値より大きい場合、前記プレフェッチ読み出し動作を行って前記不揮発性メモリから読み出したデータの格納に前記バッファメモリを割り当てるステップをさらに有することを特徴とする請求項3に記載のデータ読み出し方法。
  5. 前記バッファメモリから、前記プレフェッチ読み出し動作によって格納されたデータのうち前記要求されたデータのみを読み出して、外部に伝送するステップをさらに有することを特徴とする請求項4に記載のデータ読み出し方法。
  6. 前記入力されたアドレスが前記バッファメモリに割り当てられているか否かを判断するために、前記バッファメモリのアドレスマッピングテーブルに対して前記開始アドレス及び前記要求されたデータに対応するアドレスが存在するかどうかを検索するステップをさらに有することを特徴とする請求項2に記載のデータ読み出し方法。
  7. 前記検索の結果、前記入力されたアドレスが前記バッファメモリに割り当てられている場合、前記バッファメモリから前記要求されたデータを読み出して、外部に伝送するステップをさらに有することを特徴とする請求項6に記載のデータ読み出し方法。
  8. 前記要求されたデータの大きさが基準値より大きいか否かの判断の結果、前記要求されたデータの大きさが前記基準値より大きくない場合、前記不揮発性メモリに対して正常読み出し動作を行うステップをさらに有することを特徴とする請求項1に記載のデータ読み出し方法。
  9. 前記正常読み出し動作の際、前記不揮発性メモリから読み出されたデータは前記バッファメモリを経由せず直接外部に伝送されることを特徴とする請求項8に記載のデータ読み出し方法。
  10. バッファメモリ、フラッシュメモリ、及び磁気ディスクを含むメモリシステムのデータ読み出し方法であって、
    読み出し要求の際、入力されたアドレスが前記バッファメモリに割り当てられているか否かを判断するステップと、
    前記入力されたアドレスが前記バッファメモリに割り当てられているか否かの判断の結果、前記入力されたアドレスが前記バッファメモリに割り当てられていない場合、前記入力されたアドレスが前記フラッシュメモリに割り当てられているか否かを判断するステップと、
    前記入力されたアドレスが前記フラッシュメモリに割り当てられているか否かの判断の結果、前記入力されたアドレスが前記フラッシュメモリに割り当てられている場合、要求されたデータの大きさが基準値より大きいか否かを判断するステップと、
    前記要求されたデータの大きさが基準値より大きいか否かの判断の結果、前記要求されたデータの大きさが前記基準値より大きい場合、前記フラッシュメモリに対してプレフェッチ読み出し動作を行うステップとを有することを特徴とするデータ読み出し方法。
  11. バッファメモリ、フラッシュメモリ及び磁気ディスクを含むメモリシステムのデータ読み出し方法であって、
    読み出し要求の際、入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、及び前記磁気ディスクに割り当てられているか否かを同時に判断するステップと、
    前記入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、及び前記磁気ディスク割り当てられているか否かの判断の結果、前記入力されたアドレスが前記フラッシュメモリに割り当てられている場合、要求されたデータの大きさが基準値より大きいか否かを判断するステップと、
    前記要求されたデータの大きさが基準値より大きいか否かの判断の結果、前記要求されたデータの大きさが前記基準値より大きい場合、フラッシュメモリに対してプレフェッチ読み出し動作を行うステップとを有することを特徴とするデータ読み出し方法。
  12. フラッシュメモリと、
    磁気ディスクと、
    前記フラッシュメモリあるいは前記磁気ディスクのプレフェッチ読み出し動作の際、読み出されたデータを臨時的に格納するバッファメモリと、
    前記フラッシュメモリ、前記磁気ディスク、及び前記バッファメモリを制御し、前記フラッシュメモリに対する読み出し要求の際、要求されたデータの大きさによってプレフェッチ読み出し動作を行うか、あるいは正常読み出し動作を行うかどうかを判断するコントローラとを有することを特徴とするメモリシステム。
  13. 前記コントローラは、前記磁気ディスクに対する読み出し要求の時、プレフェッチ読み出し動作を行うことを特徴とする請求項12に記載のメモリシステム。
  14. 前記フラッシュメモリに対して正常読み出し動作を行う時、前記フラッシュメモリから読み出されたデータは前記バッファメモリを経由せず直接外部に伝送されることを特徴とする請求項13に記載のメモリシステム。
  15. 前記コントローラは、読み出し要求の際、入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、又は前記ディスクのうちの何れか一つに割り当てられているかどうかを同時に判断することを特徴とする請求項13に記載のメモリシステム。
  16. 前記コントローラは、読み出し要求の際、入力されたアドレスが前記バッファメモリに割り当てられているかどうかを最初に判断することを特徴とする請求項13に記載のメモリシステム。
  17. 前記入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、又は前記ディスクのうちの何れか一つに割り当てられているかどうかの判断の結果、前記入力されたアドレスが前記バッファメモリに割り当てられている場合、前記コントローラは前記バッファメモリから前記要求されたデータを読み出して、外部に伝送することを特徴とする請求項16に記載のメモリシステム。
  18. 前記入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、又は前記ディスクのうちの何れか一つに割り当てられているかどうかの判断の結果、前記入力されたアドレスが前記バッファメモリに割り当てられていない場合、前記コントローラは前記入力されたアドレスが前記フラッシュメモリに割り当てられているか否かを判断することを特徴とする請求項16に記載のメモリシステム。
  19. 前記入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、又は前記ディスクのうちの何れか一つに割り当てられているかどうかの判断の結果、前記入力されたアドレスが前記フラッシュメモリに割り当てられている場合、前記コントローラは、前記要求されたデータの大きさによって、前記フラッシュメモリに対してプレフェッチ読み出し動作を行うか、あるいは正常読み出し動作を行うかを判断することを特徴とする請求項18に記載のメモリシステム。
  20. 前記入力されたアドレスが前記バッファメモリ、前記フラッシュメモリ、又は前記ディスクのうちの何れか一つに割り当てられているかどうかの判断の結果、前記入力されたアドレスが前記フラッシュメモリに割り当てられていない場合、前記コントローラは、前記磁気ディスクに対してプレフェッチ読み出し動作を行うことを特徴とする請求項18に記載のメモリシステム。
JP2008176632A 2007-07-06 2008-07-07 メモリシステム及びそのデータ読み出し方法 Pending JP2009015856A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070068149A KR101300657B1 (ko) 2007-07-06 2007-07-06 비휘발성 메모리 및 버퍼 메모리를 포함하는 메모리 시스템및 그것의 데이터 읽기 방법

Publications (1)

Publication Number Publication Date
JP2009015856A true JP2009015856A (ja) 2009-01-22

Family

ID=40213610

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008176632A Pending JP2009015856A (ja) 2007-07-06 2008-07-07 メモリシステム及びそのデータ読み出し方法

Country Status (4)

Country Link
US (2) US8015360B2 (ja)
JP (1) JP2009015856A (ja)
KR (1) KR101300657B1 (ja)
CN (1) CN101339539B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012128815A (ja) * 2010-12-17 2012-07-05 Toshiba Corp メモリシステム
US8775739B2 (en) 2010-12-17 2014-07-08 Kabushiki Kaisha Toshiba Memory system including first and second caches and controlling readout of data therefrom
US9189173B2 (en) 2013-08-30 2015-11-17 Kabushiki Kaisha Toshiba Memory system

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2239712A1 (fr) * 2009-04-09 2010-10-13 Gemalto SA Procédé pour personnaliser un dispositif électronique, procédé de traitement de données et dispositif associés
US8327076B2 (en) * 2009-05-13 2012-12-04 Seagate Technology Llc Systems and methods of tiered caching
JP2011095916A (ja) * 2009-10-28 2011-05-12 Canon Inc 電子機器
US10031850B2 (en) * 2011-06-07 2018-07-24 Sandisk Technologies Llc System and method to buffer data
CN103035288A (zh) * 2011-09-30 2013-04-10 宏碁股份有限公司 使用与非门快闪存储器的电子装置及其存储器管理方法
JP2013257801A (ja) * 2012-06-14 2013-12-26 Toshiba Corp サーバコンピュータおよびドライブ制御装置
US9772948B2 (en) 2012-07-06 2017-09-26 Seagate Technology Llc Determining a criterion for movement of data from a primary cache to a secondary cache
US9529724B2 (en) 2012-07-06 2016-12-27 Seagate Technology Llc Layered architecture for hybrid controller
US9594685B2 (en) 2012-07-06 2017-03-14 Seagate Technology Llc Criteria for selection of data for a secondary cache
US9104578B2 (en) 2012-07-06 2015-08-11 Seagate Technology Llc Defining address ranges used to cache speculative read data
KR101978256B1 (ko) 2012-09-27 2019-05-14 삼성전자주식회사 모바일 기기의 데이터 독출 방법 및 이를 이용하는 모바일 기기
US20140281147A1 (en) * 2013-03-13 2014-09-18 Kabushiki Kaisha Toshiba Memory system
US9563551B2 (en) * 2013-06-20 2017-02-07 Silicon Motion, Inc. Data storage device and data fetching method for flash memory
US9507719B2 (en) 2013-08-20 2016-11-29 Seagate Technology Llc Garbage collection in hybrid memory system
US9367247B2 (en) 2013-08-20 2016-06-14 Seagate Technology Llc Memory access requests in hybrid memory system
US9069474B2 (en) 2013-08-20 2015-06-30 Seagate Technology Llc Retention based defecting in a hybrid memory system
US9785564B2 (en) 2013-08-20 2017-10-10 Seagate Technology Llc Hybrid memory with associative cache
KR20170051563A (ko) 2015-10-29 2017-05-12 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US20170123796A1 (en) * 2015-10-29 2017-05-04 Intel Corporation Instruction and logic to prefetch information from a persistent memory
KR102656175B1 (ko) * 2016-05-25 2024-04-12 삼성전자주식회사 스토리지 장치 및 랜덤 액세스 메모리를 제어하는 방법 및 불휘발성 메모리 장치 및 버퍼 메모리를 제어하는 방법
KR101940382B1 (ko) * 2016-12-21 2019-04-11 연세대학교 산학협력단 페이지의 프리페칭 방법 및 장치
KR101975101B1 (ko) * 2017-05-24 2019-05-03 연세대학교 산학협력단 학습을 이용한 프리페칭 장치 및 방법과 이에 관한 기록매체
US20200151119A1 (en) * 2018-11-08 2020-05-14 Silicon Motion, Inc. Method and apparatus for performing access control between host device and memory device
US11210093B2 (en) 2019-04-08 2021-12-28 Micron Technology, Inc. Large data read techniques
KR20220120016A (ko) 2021-02-22 2022-08-30 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4751510B2 (ja) 1997-12-10 2011-08-17 株式会社日立製作所 メモリアクセス最適化方法
JP3543661B2 (ja) * 1999-03-05 2004-07-14 日本電気株式会社 交換機ファイルシステムにおけるバッファキャッシュ方法および装置
US6813693B2 (en) * 2000-12-11 2004-11-02 Microsoft Corporation System and method for the discovery and use of repetitively accessed data
US20030204675A1 (en) * 2002-04-29 2003-10-30 Dover Lance W. Method and system to retrieve information from a storage device
JP4499982B2 (ja) 2002-09-11 2010-07-14 株式会社日立製作所 メモリシステム
US7467377B2 (en) * 2002-10-22 2008-12-16 Intel Corporation Methods and apparatus for compiler managed first cache bypassing
JP3983650B2 (ja) 2002-11-12 2007-09-26 株式会社日立製作所 ハイブリッドストレージ、および、それを用いた情報処理装置
KR100543448B1 (ko) 2003-04-03 2006-01-23 삼성전자주식회사 버스트 읽기 동작 모드를 갖는 플래시 메모리 장치
JP2004318940A (ja) * 2003-04-14 2004-11-11 Renesas Technology Corp 記憶装置
JP4463503B2 (ja) 2003-07-15 2010-05-19 株式会社ルネサステクノロジ メモリモジュール及びメモリシステム
US7472222B2 (en) 2004-10-12 2008-12-30 Hitachi Global Storage Technologies Netherlands B.V. HDD having both DRAM and flash memory
KR100699656B1 (ko) * 2005-03-15 2007-03-23 미쓰비시덴키 가부시키가이샤 제어 회로 및 제어 방법
US7725659B2 (en) * 2007-09-05 2010-05-25 International Business Machines Corporation Alignment of cache fetch return data relative to a thread

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012128815A (ja) * 2010-12-17 2012-07-05 Toshiba Corp メモリシステム
US8775739B2 (en) 2010-12-17 2014-07-08 Kabushiki Kaisha Toshiba Memory system including first and second caches and controlling readout of data therefrom
US9189173B2 (en) 2013-08-30 2015-11-17 Kabushiki Kaisha Toshiba Memory system

Also Published As

Publication number Publication date
KR20090004157A (ko) 2009-01-12
CN101339539A (zh) 2009-01-07
US20090077304A1 (en) 2009-03-19
US8015360B2 (en) 2011-09-06
US8145846B2 (en) 2012-03-27
CN101339539B (zh) 2015-07-01
US20110289264A1 (en) 2011-11-24
KR101300657B1 (ko) 2013-08-27

Similar Documents

Publication Publication Date Title
JP2009015856A (ja) メモリシステム及びそのデータ読み出し方法
JP4988215B2 (ja) 複数のマッピング技法を採用した適応型フラッシュメモリ制御装置及びそれを含むフラッシュメモリシステム
JP5192228B2 (ja) フラッシュコントローラのキャッシュ構造
US8386698B2 (en) Data accessing method for flash memory and storage system and controller using the same
JP4768504B2 (ja) 不揮発性フラッシュメモリを用いる記憶装置
US20170160989A1 (en) Solid state disk and method for implementing trim command of the same
JP2006114206A (ja) Dramおよびフラッシュメモリを有するhdd
US20090235015A1 (en) Memory system
JP2006031696A (ja) バッドブロック管理部を含むフラッシュメモリシステム
US20080046660A1 (en) Information recording apparatus and control method thereof
JP2009205335A (ja) 2種のメモリデバイスをキャッシュに用いるストレージシステム及びそのストレージシステムを制御する方法
US20080025706A1 (en) Information recording apparatus and control method thereof
JP2007193441A (ja) 不揮発性キャッシュメモリを用いる記憶装置とその制御方法
JP3421581B2 (ja) 不揮発性半導体メモリを用いた記憶装置
JP2004295865A (ja) 自動ブーティングシステム及び自動ブーティング方法
JP2006065533A (ja) 半導体記憶装置およびそのアクセス方法、並びにメモリ制御システム
KR20120055707A (ko) 메모리 시스템
JP2007193448A (ja) 情報記録装置及びその制御方法
JP2007193866A (ja) 情報記録装置及びその制御方法
JP4988054B2 (ja) メモリシステム
JP2009175877A (ja) 半導体メモリ
JP2012521032A (ja) Ssdコントローラおよびssdコントローラの動作方法
JP4558054B2 (ja) メモリシステム
JP2007293987A (ja) 情報記録装置及びその制御方法
JP2009230205A (ja) メモリシステム