JP2010157130A - メモリシステム - Google Patents
メモリシステム Download PDFInfo
- Publication number
- JP2010157130A JP2010157130A JP2008335504A JP2008335504A JP2010157130A JP 2010157130 A JP2010157130 A JP 2010157130A JP 2008335504 A JP2008335504 A JP 2008335504A JP 2008335504 A JP2008335504 A JP 2008335504A JP 2010157130 A JP2010157130 A JP 2010157130A
- Authority
- JP
- Japan
- Prior art keywords
- data
- host device
- storage unit
- read
- range
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6028—Prefetching based on hints or prefetch instructions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】データの読み出しを高速に行なうことが可能なメモリシステムを得ること。
【解決手段】データの読み出し/書き込みが行われるNANDフラッシュと、NANDフラッシュよりも高速なデータの書き込みが行われるWCと、NANDフラッシュよりも高速なデータの読み出しが行われるRCと、NANDフラッシュ、WC、RCを制御して、ホスト機器から読み出し要求のあったデータをホスト機器に転送するコントローラと、を具備し、コントローラは、ホスト機器からの読み出し要求で指定される要求転送範囲Xのデータ範囲から、要求転送範囲Xの先頭部分aに続く前段部Aのデータ範囲と前段部Aに続く後段部Bのデータ範囲とを設定し、前段部Aに対応するデータをWCまたはRCからホスト機器に転送開始した後、後段部Bに対応するデータをWCまたはRCから検索する。
【選択図】 図3
【解決手段】データの読み出し/書き込みが行われるNANDフラッシュと、NANDフラッシュよりも高速なデータの書き込みが行われるWCと、NANDフラッシュよりも高速なデータの読み出しが行われるRCと、NANDフラッシュ、WC、RCを制御して、ホスト機器から読み出し要求のあったデータをホスト機器に転送するコントローラと、を具備し、コントローラは、ホスト機器からの読み出し要求で指定される要求転送範囲Xのデータ範囲から、要求転送範囲Xの先頭部分aに続く前段部Aのデータ範囲と前段部Aに続く後段部Bのデータ範囲とを設定し、前段部Aに対応するデータをWCまたはRCからホスト機器に転送開始した後、後段部Bに対応するデータをWCまたはRCから検索する。
【選択図】 図3
Description
本発明は、不揮発性半導体メモリを備えたメモリシステムに関する。
データ記憶装置(メモリシステム)は、データ記録媒体と、ホスト機器とデータ記録媒体との間のデータ送受信処理を行う制御装置と、を備えて構成されている。このようなデータ記憶装置は、データ記録媒体よりも高速にアクセスが可能なキャッシュメモリ(リードキャッシュ機能)を設けておくことにより、ホスト機器からのアクセス性能を向上させている。
キャッシュメモリを備えたデータ記憶装置は、ホスト機器からのシーケンシャルなリード要求時に、データ記憶媒体からのデータの先読み(プリフェッチ)機能を用いることによってアクセス性能を向上させている。
データの先読み機能とは、ホスト機器から発行されるリード要求がシーケンシャル性のあるリード要求である場合に、次に受信するであろうシーケンシャルな領域(後続領域)のデータをデータ記憶媒体からキャッシュメモリへ予め先行して読み込んでおく機能である。シーケンシャル性とは、後続のデータ領域に対するリード要求が連続して発生することである。ホスト機器からシーケンシャル性のあるリード要求が発行されてデータの先読みを行なう場合には、ホスト機器からのリード要求を受信するより前に予め先行して、次にリード要求されるであろうシーケンシャルな後続領域のデータをデータ記憶媒体からキャッシュメモリへ読み込んでおく。
特許文献1に記載のデータ記憶装置は、ホスト計算機からのリード要求の転送サイズが予め設定された先読み判定サイズと同じである場合には、シーケンシャル性のあるリード要求であると判断し、そのリード要求に対するデータをホスト計算機に送信するとともに、そのリード要求に連続する後続の記憶領域のデータを記憶装置からキャッシュメモリへ先読みしている。
しかしながら、上記特許文献1の技術では、リード要求のあったデータがキャッシュメモリ内に格納されているか否かの検索処理に長時間を要するので、ホスト機器へのデータ転送の開始が遅くなり、その結果、ホスト機器によるデータの読み出しに長時間を要するという問題があった。このような問題は、NAND型フラッシュメモリなどの不揮発性半導体メモリを搭載したSSD(Solid State Drive)にも発生する。すなわち、フラッシュメモリとホスト機器との間に、キャッシュメモリを介在させて、フラッシュメモリから高速にデータを読み出すように構成されたSSDでは、ホスト機器からリード要求のあったデータがキャッシュメモリ内に格納されているか否かの検索処理に長時間を要していたので、ホスト機器によるデータの読み出しに長時間を要していた。
本発明は、データの読み出しを高速に行なうことが可能なメモリシステムを提供する。
本願発明の一態様によれば、データの読み出し/書き込みが行われる不揮発性の半導体記憶素子から構成される第1の記憶部と、前記第1の記憶部よりも高速なデータの書き込みが行われる揮発性の半導体記憶素子から構成される第2の記憶部と、前記第1の記憶部よりも高速なデータの読み出しが行われる揮発性の半導体記憶素子から構成される第3の記憶部と、ホスト装置から書き込み要求のあったデータを前記第2の記憶部を介して前記第1の記憶部に書き込むとともに、前記ホスト装置から読み出し要求のあったデータを前記第2または前記第3の記憶部から読み出すか又は前記第3の記憶部を介して前記第1の記憶部から読み出して前記ホスト装置に転送するコントローラと、を具備し、前記コントローラは、前記ホスト装置からの読み出し要求で指定されるデータ範囲から、当該データ範囲の先頭部に続く所定サイズのデータ範囲を第1のデータ範囲として設定するとともに、前記第1のデータ範囲に続く所定サイズのデータ範囲を第2のデータ範囲として設定し、前記第1のデータ範囲に対応するデータを前記第2の記憶部または前記第3の記憶部から前記ホスト装置に転送開始した後、前記第2のデータ範囲に対応するデータを前記第2の記憶部または前記第3の記憶部から検索することを特徴とするメモリシステムが提供される。
この発明によれば、データの読み出しを高速に行なうことが可能になる。
以下に、本発明に係るメモリシステムの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。また、以下の説明において、同一の機能および構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
(実施の形態)
図1は、本発明の実施の形態に係るSSDの構成例を示すブロック図である。SSD(Solid State Drive)1は、パーソナルコンピュータあるいはCPUコアなどのホスト機器(ホスト装置)6と接続され、ホスト機器6の外部メモリとして機能する半導体記憶装置(メモリシステム)である。
図1は、本発明の実施の形態に係るSSDの構成例を示すブロック図である。SSD(Solid State Drive)1は、パーソナルコンピュータあるいはCPUコアなどのホスト機器(ホスト装置)6と接続され、ホスト機器6の外部メモリとして機能する半導体記憶装置(メモリシステム)である。
SSD1は、メモリ接続インタフェースであるホストI/F2、揮発性半導体メモリとしてのDRAM(Dynamic Random Access Memory)3、不揮発性半導体メモリとしてのNANDフラッシュ(NANDメモリ)4、コントローラ(ドライブ制御回路)5を備えて構成されている。SSD1は、ホストI/F2を介してホスト機器6に接続されており、ホスト機器6との間でデータ通信を行なう。ホスト機器6は、SSD1へデータを書き込むとともに、SSD1からデータを読み出す。
NANDフラッシュ(第1の記憶部)4は、例えば、積層された複数のNANDメモリチップ(例えば、1チップ=2GB)によって構成されている。NANDフラッシュ4は、DRAM3に一時的に保存されているホスト機器6から供給されたデータをデータ格納領域12に記憶する。データ格納領域12は、NANDフラッシュ4におけるデータ消去の最小単位であるブロックを複数備えて構成されている。NANDフラッシュ4は、ホスト機器6から供給されたデータとともに、後述のアドレス変換テーブル13(管理テーブル9)を記憶している。
DRAM3は、ホスト機器6とNANDフラッシュ4との間でのデータ転送用キャッシュおよび作業領域用メモリとして機能する。DRAM3の記憶領域は、ライトキャッシュ(WC)7、及びリードキャッシュ(RC)8に分割される。更に、DRAM3は、作業領域内に管理テーブル9を保持する。WC(第2の記憶部)7はホスト機器6からの書き込みデータを一時保存し、RC(第3の記憶部)8はNANDフラッシュ4からの読み出しデータを一時保存する。WC7及びRC8は同一メモリチップ内の記憶領域を共有してもよく、また、別々のメモリチップで構成されていてもよい。WC7は、NANDフラッシュ4よりも高速なデータの書き込みが行われる揮発性の半導体記憶素子から構成されており、RC8は、NANDフラッシュ4よりも高速なデータの読み出しが行われる揮発性の半導体記憶素子から構成されている。
また、DRAM3は、SSD1の稼働時には、NANDフラッシュ4から読み出されたアドレス変換テーブル13を管理テーブル9として一時的に保存する。アドレス変換テーブル13は、SSD1の初期化時にNANDフラッシュ4からDRAM3上に読み込まれて使用される。
アドレス変換テーブル13は、SSD1への書き込み/読み出し対象となるデータの論理アドレスと物理アドレスとの対応関係を示す情報テーブルであり、論理アドレスと物理アドレスとの変換を行う際に用いられる。論理アドレスは、ホスト機器6がSSD1に対してデータの書き込み/読み出しを行う際に、ホスト機器6によって指定される論理的なアドレスであり、ホスト機器6からSSD1にLBA(Logical Block Addressing)として入力される。
アドレス変換テーブル13は、SSD1が稼働を停止している時は、NANDフラッシュ4にのみ存在するが、稼働時には、管理テーブル9としてDRAM3上に読み込まれて使用される。ホスト機器6からSSD1にデータの書き込み/読み出し指示があると、DRAM3上の管理テーブル9の内容が更新される。管理テーブル9は、電源断等による内容消失を避けるため、所定のタイミングでNANDフラッシュ4へ書き込まれる。
コントローラ5は、ホスト機器6とNANDフラッシュ4との間でDRAM3を介したデータ転送制御を行うとともに、SSD1内の各構成要素を制御する。コントローラ5は、CPU(図示せず)を備えて構成されており、CPUが実行する命令によりSSD1を制御する。コントローラ5のCPUは、書き込み制御部11、読み出し制御部10を含んで構成されている。なお、実際には、CPUが実行するプログラム(書き込み/読み出し制御プログラム)が、書き込み制御部11、読み出し制御部10を含むモジュール構成となっており、CPUがROM(図示せず)などから書き込み/読み出し制御プログラムを読み出して実行することにより、書き込み制御部11、読み出し制御部10がCPUに生成される。
書き込み制御部11は、ホスト機器6からの要求に従い、ホスト機器6からWC7へのデータの書き込みと、WC7からNANDフラッシュ4へのデータの書き込みを制御する。WC7からNANDフラッシュ4へのデータの書き込みを行う際には、同一論理アドレスのRC8上のデータを無効にする。読み出し制御部10は、ホスト機器6からの要求に従い、NANDフラッシュ4からRC8へのデータの読み出しと、RC8やWC7からホスト機器6へのデータ転送を制御する。RC8上のデータは、NANDフラッシュ4から読み出したデータを一時的に保存してあるものである。ホストからRC8上のデータと同一の論理アドレスに対する書き込みが行われた場合、そのデータは最新のデータでありWC7上に保存される。そのため、同一の論理アドレスに対応するデータが、WC7、RC8、NANDフラッシュ4上にある場合には、データの新しさは、WC7、RC8、NANDフラッシュ4の順となるため、ホストに返すデータもWC7上のデータを優先する。
また、コントローラ5は、ホスト機器6から供給されるデータの論理アドレスを、実際にNANDフラッシュ4内でデータが記憶されている位置の物理アドレスに変換する。具体的には、コントローラ5は、ホスト機器6から供給されたデータがNANDフラッシュ4に記憶された時に、データの外部アドレスとNANDフラッシュ4に記憶されたデータの物理アドレスとを対応付けて管理テーブル9(アドレス変換テーブル13)に記憶させる。そして、ホスト機器6から読み出し要求があると、コントローラ5は、管理テーブル9を用いて、読み出し要求の論理アドレスを、この論理アドレスに対応する物理アドレスに変換する。具体的には、アドレス変換は、ホスト機器6から供給される論理アドレス(LBA)の上位部分(数ビット)をNANDフラッシュ4内のブロックのページ位置に変換し、残りの下位部分(数ビット)をページ内のデータ位置に変換することによって行われる。
コントローラ5は、NANDフラッシュ4へのデータの読み出し/書き込みに応じて、DRAM3に一時的に保存されたアドレス変換テーブル13に対してアドレス更新を行う。NANDフラッシュ4におけるアドレス変換テーブル13の更新は、例えばSSD1が稼働を停止する時など、任意のタイミングで行われる。
なお、図1ではSSD1がデータ転送用キャッシュとしてDRAM3を備える構成としたが、DRAM3の代わりに、NANDフラッシュ4よりもデータ出力レイテンシの小さい他のメモリを用いてもよい。例えば、DRAM3の代わりに、FeRAM(Ferroelectric Random Access Memory)を使用してもよい。データ転送用キャッシュは必ずしも揮発性半導体メモリで構成されている必要はなく、不揮発性半導体メモリで構成されていてもよい。データ転送用キャッシュが不揮発性半導体メモリで構成されている場合、必ずしもNANDフラッシュ4内にアドレス変換テーブル13を保存する必要はない。
つぎに、本発明の実施の形態に係るSSDの動作手順について説明する。図2は、本発明の実施の形態に係るSSDの動作手順を示すフローチャートであり、図3は、SSDの動作手順を説明するための図である。ここでは、データの検索処理、NANDフラッシュ4からのデータ読み出し処理、ホスト機器6へのデータ転送処理の手順について説明する。
ホスト機器6からSSD1にデータの読み出し要求が送られてくると、SSD1は、この読み出し要求をホストI/F2を介して受け付ける(ステップS10)。ホスト機器6から送られてくる読み出し要求は、データの要求転送範囲Xを有している。要求転送範囲Xは、例えば、読み出し要求されるデータ(読み出し要求データ)の開始論理アドレスと転送サイズとによって、読み出し要求されるデータの範囲を示している。
コントローラ5の読み出し制御部10は、要求転送範囲Xのうち、先頭の所定サイズ分のデータが先頭から連続でRC8内にあるか否かを、管理テーブル9を参照して検索する。要求転送範囲Xは、読み出し要求のあったデータの範囲であり、第1のデータ範囲である前段部A(サイズαのデータ範囲)と第2のデータ範囲である後段部Bとに分割できる。前段部Aは、要求転送範囲Xの前段側のデータ領域を示し、後段部Bは、前段部Aに続く後段側のデータ領域を示している。本実施の形態では、読み出し制御部10が、ホスト機器6から読み出し要求されたデータ範囲を所定サイズの前半部と後半部に分割している。別言すれば、読み出し制御部10が、ホスト機器6から読み出し要求されたデータ範囲の中から、所定サイズの前半部と所定サイズの後半部を設定している。前段部Aのうち、先頭部分aが要求転送範囲Xで示されるデータ範囲の最初の領域であり、後段部Bのうち、先頭部分bが後段部Bの最初のデータ領域である。読み出し制御部10は、要求転送範囲Xのうち前段部Aの先頭部分aからの連続データがRC8内にあるか否かを検索する(ステップS20)。RC8内にあった場合、先頭部分aの大きさは、RC8内で見つかった前段部Aの先頭からの連続データの大きさとする。
先頭部分aのデータがRC8内にあった場合(ステップS20、Yes)、読み出し制御部10は、RC8内にあったデータがWC7内にあるか否かを検索する(ステップS30)。WC7の検索は、ホスト機器6から書き込まれた最新のデータを、読み出し要求されたデータとして転送するために必要な処理である。読み出し制御部10は、WC7内にあったデータはWC7内から、WC7内になかったデータはRC8内から、それぞれホスト機器6へ転送を開始する。さらに、読み出し制御部10は、ホスト機器6へ転送を開始したデータ範囲、つまり先頭部分aの大きさ分を残り転送範囲から削除する(ステップS40)。残り転送範囲は、要求転送範囲Xのうち、ホスト機器6への転送が開始されていないデータ範囲である。
先頭部分aとしてRC8内で見つかったデータの大きさが、前段部Aの大きさと等しかったかを比較する。換言すると、読み出し制御部10は、前段部Aの全体(全データ範囲)がRC8内にあったかどうかを管理テーブル9を参照して判定する(ステップS50)。前段部Aの全体がRC8内にあった場合(ステップS50、Yes)、読み出し制御部10は、WC7内にあるデータはWC7内から、WC7内に無いデータはRC8内から、それぞれホスト機器6へ転送する。そして、読み出し制御部10は、ホスト機器6へ転送を開始したデータ範囲を残り転送範囲から削除する。これにより、残り転送範囲は後段部Bのデータ範囲となる。ここでのステップS20,S30の処理が、図3の(1)の処理に対応し、ステップS40の処理が図3の(2)の処理に対応している。
前段部Aのホスト機器6へのデータ転送を開始した後、読み出し制御部10は、残り転送範囲である後段部Bのうち、先頭部分bからの連続データがRC8内にあるか否かを、管理テーブル9を参照して検索する(ステップS60)。先頭部分bのデータがRC8内にあった場合(ステップS60、Yes)、先頭部分bの大きさは、RC8内で見つかった後段部Bの先頭からの連続データの大きさとし、読み出し制御部10は、RC8内にあった先頭部分bのデータがWC7内にあるか検索する(ステップS70)。読み出し制御部10は、WC7内にあったデータはWC7内から、WC7内になかったデータはRC8内から、それぞれホスト機器6へ転送を開始する。さらに、読み出し制御部10は、ホスト機器6へ転送を開始したデータ範囲、つまり先頭部分bの大きさ分を残り転送範囲から削除する(ステップS80)。ここでのステップS60,S70の処理が、図3の(3)の処理に対応し、ステップS80の処理が図3の(4)の処理に対応している。
読み出し制御部10は、残り転送範囲が0より大きいか否かを判断する(ステップS90)。換言すると、読み出し制御部10は、要求転送範囲Xで指定されたデータのうちRC8内には無かったデータが存在するか否かを、管理テーブル9を参照して判断する。これにより、読み出し制御部10は、RC8上で見つからなかったデータがあるかを判断する。
残り転送範囲が0より大きい場合(ステップS90、Yes)、読み出し制御部10は、残り転送範囲分のデータのNANDフラッシュ4からRC8への読み出しを開始する(ステップS100)。その後、読み出し制御部10は、残り転送範囲分のデータがWC7内にあるか検索する(ステップS110)。読み出し制御部10は、WC7内にあったデータはWC7内からホスト機器6へ転送開始し、WC7内になかったデータはNANDフラッシュ4からRC8に読み出し次第、ホスト機器6へ転送開始する(ステップS120)。この後、残り転送範囲分のデータをWC7またはNANDフラッシュ4(RC8)からホスト機器6へ全て転送し、データの転送処理を終了する。残り転送範囲が0である場合(ステップS90、No)、読み出し制御部10は、データの転送処理を終了する。
また、ステップS20の処理で先頭部分aのデータがRC8内になかった場合(ステップS20、No)、ステップS50の処理で前段部Aの全体がRC8内になかった場合(ステップS50、No)、ステップS60の処理で先頭部分bのデータがRC8内になかった場合(ステップS60、No)、読み出し制御部10は、NANDフラッシュ4からのデータ読み出し処理(ステップS90〜S120の処理)を行う。
このように、本実施の形態では、前段部Aのデータ検索とデータ転送を開始した後に、後段部Bのデータ検索処理を開始している。これにより、ホスト機器6への最初の応答を高速に行うことが可能となる。また、後段部Bのデータ検索を開始する際には、ホスト機器6へのデータ転送が始まっているので、以降のデータ検索に関する処理時間をホスト機器6へのデータ転送時間によって隠蔽することが可能となる。
また、本実施の形態では、残り転送範囲のNANDフラッシュ4からのデータ読み出し処理を行う際に、WC7上のデータ検索処理を行う前にNANDフラッシュ4からRC8への読み出し処理を開始している。これは、WC7上のデータから読み出されることは少ないことと、NANDフラッシュ4はデータ出力レイテンシが大きいことから、なるべく早くNANDフラッシュ4から読み出しを開始することが重要になるからである。NANDフラッシュ4からの読み出し処理が始まってしまえば、WC7からホスト機器6にデータを転送することと、NANDフラッシュ4からRC8にデータを読み出して、その後ホスト機器6にデータ転送することとは、大きな違いはない。
このため、本実施の形態では、SSD1は、WC7上のデータの有無を検索する前に、残り転送範囲全体のNANDフラッシュ4からの読み出しを開始する。その後、SSD1は、残り転送範囲がWC7上に存在するかを検索し、WC7にあったデータはWC7からホスト機器6にデータ転送し、WC7に無かったデータはNANDフラッシュ4からRC8を介してホスト機器6にデータ転送している。これにより、NANDフラッシュ4からのデータ出力を早く行なうことが可能となり、ホスト機器6への応答を高速に行うことが可能となる。また、NANDフラッシュ4のデータ出力レイテンシにWC7の検索処理を隠蔽することができるので、ホスト機器6へのデータ転送を高速に行うことが可能となる。
なお、後段部Bのデータ検索処理時間と前段部Aのデータ転送処理時間とが同じである場合に、ホスト機器6へのデータ転送処理時間が最短となる。したがって、SSD1は、後段部Bのデータ検索処理時間と前段部Aの転送処理時間とが同じとなるよう、ホスト機器6へのデータ転送を行ってもよい。この場合、読み出し制御部10は、後段部Bのデータ検索処理時間と前段部Aの転送処理時間とが同じとなるよう、要求転送範囲X内の前段部Aと後段部Bを設定する。
また、本実施の形態では、要求転送範囲Xを前段部Aと後段部Bの2つに分割する場合について説明したが、読み出し制御部10は、要求転送範囲Xを3つ以上のデータ範囲に分割してもよい。例えば、読み出し制御部10は、要求転送範囲Xを第1段目のデータ範囲〜第n段目(nは3以上の自然数)のデータ範囲に分割する。この場合、読み出し制御部10は、第1段目のデータ転送を開始した後に、第2段目のデータ検索処理を開始する。
なお、本実施の形態に係るSSDは、読み出し要求された論理アドレス範囲に後続する所定サイズの論理アドレス範囲のデータを、RC8にプリフェッチしておく構成としてもよい。この場合、新たな読み出し要求を受け付けた際には、前回の読み出し要求に伴ってプリフェッチされたデータが既にRC8上に保持された状態となる。これによって、シーケンシャル性のある読み出し要求に対して、アクセス性能を向上させることが可能となる。
このように実施の形態によれば、前段部Aのホスト機器6へのデータ転送を開始した後に、後段部Bのデータ検索処理を開始しているので、ホスト機器6へのデータ転送を早い時期に開始でき、この結果、データの読み出しを高速に行なうことが可能となる。
また、RC8上に無いデータは、WC7上のデータの有無を検索する前に、NANDフラッシュ4からRC8への読み出しを開始しているので、NANDフラッシュ4からRC8への読み出しを早い時期に開始できる。このため、読み出し要求のあったデータがNANDフラッシュ4内にしか無い場合であっても、データの読み出しを高速に行なうことが可能となる。
1 SSD、2 ホストI/F、3 DRAM、4 NANDフラッシュ、5 コントローラ、6 ホスト機器、7 WC、8 RC、10 読み出し制御部、11 書き込み制御部、12 データ格納領域、13 アドレス変換テーブル、X 要求転送範囲、A 前段部、B 後段部
Claims (5)
- データの読み出し/書き込みが行われる不揮発性の半導体記憶素子から構成される第1の記憶部と、
前記不揮発性の半導体記憶素子よりもデータ出力レイテンシの小さい半導体記憶素子から構成される第2の記憶部と、
前記不揮発性の半導体記憶素子よりもデータ出力レイテンシの小さい半導体記憶素子から構成される第3の記憶部と、
ホスト装置から書き込み要求のあったデータを前記第2の記憶部を介して前記第1の記憶部に書き込むとともに、前記ホスト装置から読み出し要求のあったデータを前記第2または前記第3の記憶部から読み出すか又は前記第3の記憶部を介して前記第1の記憶部から読み出して前記ホスト装置に転送するコントローラと、
を具備し、
前記コントローラは、
前記ホスト装置からの読み出し要求で指定されるデータ範囲から、当該データ範囲の先頭部に続く所定サイズのデータ範囲を第1のデータ範囲として設定するとともに、前記第1のデータ範囲に続く所定サイズのデータ範囲を第2のデータ範囲として設定し、前記第1のデータ範囲に対応するデータを前記第2の記憶部または前記第3の記憶部から前記ホスト装置に転送開始した後、前記第2のデータ範囲に対応するデータを前記第2の記憶部または前記第3の記憶部から検索することを特徴とするメモリシステム。 - 前記第1のデータ範囲に対応するデータの前記ホスト装置への転送処理時間と、前記第2のデータ範囲に対応するデータの検索処理時間と、が同じ処理時間となるよう、前記第1のデータ範囲および前記第2のデータ範囲を設定することを特徴とする請求項1に記載のメモリシステム。
- 前記コントローラは、
前記ホスト装置から読み出し要求された読み出し要求データが前記第3の記憶部に無かった場合、前記第1の記憶部から前記第3の記憶部への前記読み出し要求データの転送を開始し、
この後、前記読み出し要求データを前記第2の記憶部から検索し、前記第2の記憶部に前記読み出し要求データがあった場合には前記第2の記憶部から前記ホスト装置に前記読み出し要求データを転送し、前記第2の記憶部に前記読み出し要求データが無かった場合には前記第3の記憶部を介して前記第1の記憶部から前記ホスト装置に前記読み出し要求データを転送することを特徴とする請求項1または2に記載のメモリシステム。 - 前記第2の記憶部及び前記第3の記憶部は、同一の揮発性の半導体記憶素子の記憶領域を分割して構成されることを特徴とする請求項1に記載のメモリシステム。
- 前記コントローラは、
前記ホスト装置からの読み出し要求に伴い、要求されたデータ範囲に後続する所定サイズのデータを、前記第1の記憶部から読み出し、前記第3の記憶部に転送することを特徴とする請求項1に記載のメモリシステム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008335504A JP2010157130A (ja) | 2008-12-27 | 2008-12-27 | メモリシステム |
US12/542,222 US9141549B2 (en) | 2008-12-27 | 2009-08-17 | Memory system with read and write caches and method of controlling memory system with read and write caches |
KR1020090077077A KR101095740B1 (ko) | 2008-12-27 | 2009-08-20 | 메모리 시스템 및 컨트롤러 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008335504A JP2010157130A (ja) | 2008-12-27 | 2008-12-27 | メモリシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010157130A true JP2010157130A (ja) | 2010-07-15 |
Family
ID=42286281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008335504A Pending JP2010157130A (ja) | 2008-12-27 | 2008-12-27 | メモリシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US9141549B2 (ja) |
JP (1) | JP2010157130A (ja) |
KR (1) | KR101095740B1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9552314B2 (en) | 2013-01-02 | 2017-01-24 | Samsung Electronics Co., Ltd. | Memory system having first and second memory devices and driving method thereof |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4533968B2 (ja) | 2007-12-28 | 2010-09-01 | 株式会社東芝 | 半導体記憶装置及びその制御方法、コントローラ、情報処理装置 |
JP4461170B2 (ja) | 2007-12-28 | 2010-05-12 | 株式会社東芝 | メモリシステム |
JP4439569B2 (ja) * | 2008-04-24 | 2010-03-24 | 株式会社東芝 | メモリシステム |
US8296506B2 (en) * | 2009-11-09 | 2012-10-23 | Lite-On It Corporation | Method for managing a non-violate memory and computer readable medium thereof |
JP2011128998A (ja) | 2009-12-18 | 2011-06-30 | Toshiba Corp | 半導体記憶装置 |
JP5404483B2 (ja) | 2010-03-17 | 2014-01-29 | 株式会社東芝 | メモリシステム |
JP2012008651A (ja) | 2010-06-22 | 2012-01-12 | Toshiba Corp | 半導体記憶装置、その制御方法および情報処理装置 |
GB2496798B (en) * | 2010-07-27 | 2016-10-12 | Ibm | Logical to physical address mapping in storage systems comprising solid state memory devices |
JP2012128644A (ja) | 2010-12-15 | 2012-07-05 | Toshiba Corp | メモリシステム |
JP2012128645A (ja) | 2010-12-15 | 2012-07-05 | Toshiba Corp | メモリシステム |
JP2012128643A (ja) | 2010-12-15 | 2012-07-05 | Toshiba Corp | メモリシステム |
JP2012133416A (ja) | 2010-12-17 | 2012-07-12 | Toshiba Corp | メモリシステム |
US8924636B2 (en) | 2012-02-23 | 2014-12-30 | Kabushiki Kaisha Toshiba | Management information generating method, logical block constructing method, and semiconductor memory device |
US9251055B2 (en) | 2012-02-23 | 2016-02-02 | Kabushiki Kaisha Toshiba | Memory system and control method of memory system |
JP5813589B2 (ja) * | 2012-07-13 | 2015-11-17 | 株式会社東芝 | メモリシステムおよびその制御方法 |
KR102181210B1 (ko) | 2014-01-10 | 2020-11-23 | 삼성전자주식회사 | 저장 장치의 데이터 처리 방법 및 저장 장치 |
US9606928B2 (en) * | 2014-08-26 | 2017-03-28 | Kabushiki Kaisha Toshiba | Memory system |
US10389839B2 (en) * | 2016-06-01 | 2019-08-20 | Intel Corporation | Method and apparatus for generating data prefetches specifying various sizes to prefetch data from a remote computing node |
CN109324761A (zh) * | 2018-10-09 | 2019-02-12 | 郑州云海信息技术有限公司 | 一种数据缓存方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06309233A (ja) * | 1993-04-27 | 1994-11-04 | Toshiba Corp | ディスク制御装置のデータ転送制御方法 |
JP2000222137A (ja) * | 1999-01-28 | 2000-08-11 | Toshiba Corp | ディスク記憶装置及び同装置におけるバッファ制御方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5163142A (en) * | 1988-10-28 | 1992-11-10 | Hewlett-Packard Company | Efficient cache write technique through deferred tag modification |
US5774682A (en) * | 1995-12-11 | 1998-06-30 | International Business Machines Corporation | System for concurrent cache data access by maintaining and selectively merging multiple ranked part copies |
US6092149A (en) * | 1997-05-28 | 2000-07-18 | Western Digital Corporation | Disk drive cache system using a dynamic priority sequential stream of data segments continuously adapted according to prefetched sequential random, and repeating types of accesses |
US6112297A (en) * | 1998-02-10 | 2000-08-29 | International Business Machines Corporation | Apparatus and method for processing misaligned load instructions in a processor supporting out of order execution |
JP2000122929A (ja) | 1998-10-13 | 2000-04-28 | Matsushita Electric Ind Co Ltd | 情報処理装置 |
US6321298B1 (en) * | 1999-01-25 | 2001-11-20 | International Business Machines Corporation | Full cache coherency across multiple raid controllers |
US7146467B2 (en) * | 2003-04-14 | 2006-12-05 | Hewlett-Packard Development Company, L.P. | Method of adaptive read cache pre-fetching to increase host read throughput |
JP4258332B2 (ja) * | 2003-09-30 | 2009-04-30 | ティアック株式会社 | 光ディスク装置 |
US7173863B2 (en) * | 2004-03-08 | 2007-02-06 | Sandisk Corporation | Flash controller cache architecture |
US7337273B2 (en) | 2004-03-31 | 2008-02-26 | Microsoft Corporation | Strategies for reading information from a mass storage medium using a cache memory |
JP2005301591A (ja) | 2004-04-09 | 2005-10-27 | Toshiba Corp | 不揮発性メモリを備えた装置及びメモリコントロ−ラ |
US7437537B2 (en) * | 2005-02-17 | 2008-10-14 | Qualcomm Incorporated | Methods and apparatus for predicting unaligned memory access |
JP2007241927A (ja) | 2006-03-13 | 2007-09-20 | Toshiba Corp | データ記憶装置及び方法 |
JP2008046964A (ja) | 2006-08-18 | 2008-02-28 | Toshiba Corp | 情報記録装置及びその制御方法 |
US7865669B2 (en) * | 2007-08-02 | 2011-01-04 | International Machines Business Corporation | System and method for dynamically selecting the fetch path of data for improving processor performance |
US8145844B2 (en) * | 2007-12-13 | 2012-03-27 | Arm Limited | Memory controller with write data cache and read data cache |
JP4461170B2 (ja) | 2007-12-28 | 2010-05-12 | 株式会社東芝 | メモリシステム |
JP4533968B2 (ja) | 2007-12-28 | 2010-09-01 | 株式会社東芝 | 半導体記憶装置及びその制御方法、コントローラ、情報処理装置 |
JP4439569B2 (ja) | 2008-04-24 | 2010-03-24 | 株式会社東芝 | メモリシステム |
-
2008
- 2008-12-27 JP JP2008335504A patent/JP2010157130A/ja active Pending
-
2009
- 2009-08-17 US US12/542,222 patent/US9141549B2/en not_active Expired - Fee Related
- 2009-08-20 KR KR1020090077077A patent/KR101095740B1/ko not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06309233A (ja) * | 1993-04-27 | 1994-11-04 | Toshiba Corp | ディスク制御装置のデータ転送制御方法 |
JP2000222137A (ja) * | 1999-01-28 | 2000-08-11 | Toshiba Corp | ディスク記憶装置及び同装置におけるバッファ制御方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9552314B2 (en) | 2013-01-02 | 2017-01-24 | Samsung Electronics Co., Ltd. | Memory system having first and second memory devices and driving method thereof |
Also Published As
Publication number | Publication date |
---|---|
KR101095740B1 (ko) | 2011-12-21 |
KR20100077115A (ko) | 2010-07-07 |
US20100169549A1 (en) | 2010-07-01 |
US9141549B2 (en) | 2015-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2010157130A (ja) | メモリシステム | |
US10896136B2 (en) | Storage system including secondary memory that predicts and prefetches data | |
US7076598B2 (en) | Pipeline accessing method to a large block memory | |
US20200225875A1 (en) | Memory system and operation method thereof | |
US8868851B2 (en) | Data access method of a memory device | |
CN107621959B (zh) | 电子装置及其软件训练方法、计算系统 | |
KR101300657B1 (ko) | 비휘발성 메모리 및 버퍼 메모리를 포함하는 메모리 시스템및 그것의 데이터 읽기 방법 | |
JP4628750B2 (ja) | バッファメモリを内蔵したフラッシュメモリ装置及びフラッシュメモリシステム | |
JP5275623B2 (ja) | メモリコントローラ及びメモリシステム | |
JP2005235182A (ja) | 不揮発性メモリを制御するためのコントローラ | |
JP2009276853A (ja) | フラッシュメモリ装置 | |
JP2012128815A (ja) | メモリシステム | |
US9910598B2 (en) | Host interface controller and control method for storage device | |
JP2010157129A (ja) | 半導体記憶装置 | |
AU2015203828B2 (en) | Implementing enhanced performance with read before write to phase change memory to avoid write cancellations | |
JP4461089B2 (ja) | ストレージ制御装置およびストレージ制御方法 | |
JP4791714B2 (ja) | ダイナミック周波数スケーリングキャッシュメモリの休止時間を利用する方法、回路及びシステム | |
JP6228523B2 (ja) | メモリ制御回路および半導体記憶装置 | |
TWI715408B (zh) | 快閃記憶體控制器、記憶體裝置以及存取快閃記憶體模組之方法 | |
JP3747213B1 (ja) | シーケンシャルromインターフェース対応nand型フラッシュメモリーデバイス及びそのコントローラ | |
JP4826873B2 (ja) | ホットルーチンメモリを有するマイクロプロセッサシステム | |
JP2007249662A (ja) | メモリカード及びメモリカードの制御方法 | |
KR102343600B1 (ko) | 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스 | |
US20220197549A1 (en) | Memory controller and storage device including the same | |
KR20190033921A (ko) | 스토리지 장치 및 그 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110318 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121029 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121106 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130305 |