(57)【要約】【課題】データの読み出しを高速に行なうことが可能なメモリシステムを得ること。【解決手段】データの読み出し／書き込みが行われるＮＡＮＤフラッシュと、ＮＡＮＤフラッシュよりも高速なデータの書き込みが行われるＷＣと、ＮＡＮＤフラッシュよりも高速なデータの読み出しが行われるＲＣと、ＮＡＮＤフラッシュ、ＷＣ、ＲＣを制御して、ホスト機器から読み出し要求のあったデータをホスト機器に転送するコントローラと、を具備し、コントローラは、ホスト機器からの読み出し要求で指定される要求転送範囲Ｘのデータ範囲から、要求転送範囲Ｘの先頭部分ａに続く前段部Ａのデータ範囲と前段部Ａに続く後段部Ｂのデータ範囲とを設定し、前段部Ａに対応するデータをＷＣまたはＲＣからホスト機器に転送開始した後、後段部Ｂに対応するデータをＷＣまたはＲＣから検索する。【選択図】        図３
2010157130.tif 000002
【特許請求の範囲】
【請求項１】
データの読み出し／書き込みが行われる不揮発性の半導体記憶素子から構成される第１の記憶部と、
前記不揮発性の半導体記憶素子よりもデータ出力レイテンシの小さい半導体記憶素子から構成される第２の記憶部と、
前記不揮発性の半導体記憶素子よりもデータ出力レイテンシの小さい半導体記憶素子から構成される第３の記憶部と、
ホスト装置から書き込み要求のあったデータを前記第２の記憶部を介して前記第１の記憶部に書き込むとともに、前記ホスト装置から読み出し要求のあったデータを前記第２または前記第３の記憶部から読み出すか又は前記第３の記憶部を介して前記第１の記憶部から読み出して前記ホスト装置に転送するコントローラと、
を具備し、
前記コントローラは、
前記ホスト装置からの読み出し要求で指定されるデータ範囲から、当該データ範囲の先頭部に続く所定サイズのデータ範囲を第１のデータ範囲として設定するとともに、前記第１のデータ範囲に続く所定サイズのデータ範囲を第２のデータ範囲として設定し、前記第１のデータ範囲に対応するデータを前記第２の記憶部または前記第３の記憶部から前記ホスト装置に転送開始した後、前記第２のデータ範囲に対応するデータを前記第２の記憶部または前記第３の記憶部から検索することを特徴とするメモリシステム。
【請求項２】
前記第１のデータ範囲に対応するデータの前記ホスト装置への転送処理時間と、前記第２のデータ範囲に対応するデータの検索処理時間と、が同じ処理時間となるよう、前記第１のデータ範囲および前記第２のデータ範囲を設定することを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記コントローラは、
前記ホスト装置から読み出し要求された読み出し要求データが前記第３の記憶部に無かった場合、前記第１の記憶部から前記第３の記憶部への前記読み出し要求データの転送を開始し、
この後、前記読み出し要求データを前記第２の記憶部から検索し、前記第２の記憶部に前記読み出し要求データがあった場合には前記第２の記憶部から前記ホスト装置に前記読み出し要求データを転送し、前記第２の記憶部に前記読み出し要求データが無かった場合には前記第３の記憶部を介して前記第１の記憶部から前記ホスト装置に前記読み出し要求データを転送することを特徴とする請求項１または２に記載のメモリシステム。
【請求項４】
前記第２の記憶部及び前記第３の記憶部は、同一の揮発性の半導体記憶素子の記憶領域を分割して構成されることを特徴とする請求項１に記載のメモリシステム。
【請求項５】
前記コントローラは、
前記ホスト装置からの読み出し要求に伴い、要求されたデータ範囲に後続する所定サイズのデータを、前記第１の記憶部から読み出し、前記第３の記憶部に転送することを特徴とする請求項１に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性半導体メモリを備えたメモリシステムに関する。
【背景技術】
【０００２】
データ記憶装置（メモリシステム）は、データ記録媒体と、ホスト機器とデータ記録媒体との間のデータ送受信処理を行う制御装置と、を備えて構成されている。このようなデータ記憶装置は、データ記録媒体よりも高速にアクセスが可能なキャッシュメモリ（リードキャッシュ機能）を設けておくことにより、ホスト機器からのアクセス性能を向上させている。
【０００３】
キャッシュメモリを備えたデータ記憶装置は、ホスト機器からのシーケンシャルなリード要求時に、データ記憶媒体からのデータの先読み（プリフェッチ）機能を用いることによってアクセス性能を向上させている。
【０００４】
データの先読み機能とは、ホスト機器から発行されるリード要求がシーケンシャル性のあるリード要求である場合に、次に受信するであろうシーケンシャルな領域（後続領域）のデータをデータ記憶媒体からキャッシュメモリへ予め先行して読み込んでおく機能である。シーケンシャル性とは、後続のデータ領域に対するリード要求が連続して発生することである。ホスト機器からシーケンシャル性のあるリード要求が発行されてデータの先読みを行なう場合には、ホスト機器からのリード要求を受信するより前に予め先行して、次にリード要求されるであろうシーケンシャルな後続領域のデータをデータ記憶媒体からキャッシュメモリへ読み込んでおく。
【０００５】
特許文献１に記載のデータ記憶装置は、ホスト計算機からのリード要求の転送サイズが予め設定された先読み判定サイズと同じである場合には、シーケンシャル性のあるリード要求であると判断し、そのリード要求に対するデータをホスト計算機に送信するとともに、そのリード要求に連続する後続の記憶領域のデータを記憶装置からキャッシュメモリへ先読みしている。
【０００６】
しかしながら、上記特許文献１の技術では、リード要求のあったデータがキャッシュメモリ内に格納されているか否かの検索処理に長時間を要するので、ホスト機器へのデータ転送の開始が遅くなり、その結果、ホスト機器によるデータの読み出しに長時間を要するという問題があった。このような問題は、ＮＡＮＤ型フラッシュメモリなどの不揮発性半導体メモリを搭載したＳＳＤ（Solid  State  Drive）にも発生する。すなわち、フラッシュメモリとホスト機器との間に、キャッシュメモリを介在させて、フラッシュメモリから高速にデータを読み出すように構成されたＳＳＤでは、ホスト機器からリード要求のあったデータがキャッシュメモリ内に格納されているか否かの検索処理に長時間を要していたので、ホスト機器によるデータの読み出しに長時間を要していた。
【０００７】
【特許文献１】特開２００７−２４１９２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、データの読み出しを高速に行なうことが可能なメモリシステムを提供する。
【課題を解決するための手段】
【０００９】
本願発明の一態様によれば、データの読み出し／書き込みが行われる不揮発性の半導体記憶素子から構成される第１の記憶部と、前記第１の記憶部よりも高速なデータの書き込みが行われる揮発性の半導体記憶素子から構成される第２の記憶部と、前記第１の記憶部よりも高速なデータの読み出しが行われる揮発性の半導体記憶素子から構成される第３の記憶部と、ホスト装置から書き込み要求のあったデータを前記第２の記憶部を介して前記第１の記憶部に書き込むとともに、前記ホスト装置から読み出し要求のあったデータを前記第２または前記第３の記憶部から読み出すか又は前記第３の記憶部を介して前記第１の記憶部から読み出して前記ホスト装置に転送するコントローラと、を具備し、前記コントローラは、前記ホスト装置からの読み出し要求で指定されるデータ範囲から、当該データ範囲の先頭部に続く所定サイズのデータ範囲を第１のデータ範囲として設定するとともに、前記第１のデータ範囲に続く所定サイズのデータ範囲を第２のデータ範囲として設定し、前記第１のデータ範囲に対応するデータを前記第２の記憶部または前記第３の記憶部から前記ホスト装置に転送開始した後、前記第２のデータ範囲に対応するデータを前記第２の記憶部または前記第３の記憶部から検索することを特徴とするメモリシステムが提供される。
【発明の効果】
【００１０】
この発明によれば、データの読み出しを高速に行なうことが可能になる。
【発明を実施するための最良の形態】
【００１１】
以下に、本発明に係るメモリシステムの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。また、以下の説明において、同一の機能および構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【００１２】
（実施の形態）
図１は、本発明の実施の形態に係るＳＳＤの構成例を示すブロック図である。ＳＳＤ（Solid  State  Drive）１は、パーソナルコンピュータあるいはＣＰＵコアなどのホスト機器（ホスト装置）６と接続され、ホスト機器６の外部メモリとして機能する半導体記憶装置（メモリシステム）である。
【００１３】
ＳＳＤ１は、メモリ接続インタフェースであるホストＩ／Ｆ２、揮発性半導体メモリとしてのＤＲＡＭ（Dynamic  Random  Access  Memory）３、不揮発性半導体メモリとしてのＮＡＮＤフラッシュ（ＮＡＮＤメモリ）４、コントローラ（ドライブ制御回路）５を備えて構成されている。ＳＳＤ１は、ホストＩ／Ｆ２を介してホスト機器６に接続されており、ホスト機器６との間でデータ通信を行なう。ホスト機器６は、ＳＳＤ１へデータを書き込むとともに、ＳＳＤ１からデータを読み出す。
【００１４】
ＮＡＮＤフラッシュ（第１の記憶部）４は、例えば、積層された複数のＮＡＮＤメモリチップ（例えば、１チップ＝２ＧＢ）によって構成されている。ＮＡＮＤフラッシュ４は、ＤＲＡＭ３に一時的に保存されているホスト機器６から供給されたデータをデータ格納領域１２に記憶する。データ格納領域１２は、ＮＡＮＤフラッシュ４におけるデータ消去の最小単位であるブロックを複数備えて構成されている。ＮＡＮＤフラッシュ４は、ホスト機器６から供給されたデータとともに、後述のアドレス変換テーブル１３（管理テーブル９）を記憶している。
【００１５】
ＤＲＡＭ３は、ホスト機器６とＮＡＮＤフラッシュ４との間でのデータ転送用キャッシュおよび作業領域用メモリとして機能する。ＤＲＡＭ３の記憶領域は、ライトキャッシュ（ＷＣ）７、及びリードキャッシュ（ＲＣ）８に分割される。更に、ＤＲＡＭ３は、作業領域内に管理テーブル９を保持する。ＷＣ（第２の記憶部）７はホスト機器６からの書き込みデータを一時保存し、ＲＣ（第３の記憶部）８はＮＡＮＤフラッシュ４からの読み出しデータを一時保存する。ＷＣ７及びＲＣ８は同一メモリチップ内の記憶領域を共有してもよく、また、別々のメモリチップで構成されていてもよい。ＷＣ７は、ＮＡＮＤフラッシュ４よりも高速なデータの書き込みが行われる揮発性の半導体記憶素子から構成されており、ＲＣ８は、ＮＡＮＤフラッシュ４よりも高速なデータの読み出しが行われる揮発性の半導体記憶素子から構成されている。
【００１６】
また、ＤＲＡＭ３は、ＳＳＤ１の稼働時には、ＮＡＮＤフラッシュ４から読み出されたアドレス変換テーブル１３を管理テーブル９として一時的に保存する。アドレス変換テーブル１３は、ＳＳＤ１の初期化時にＮＡＮＤフラッシュ４からＤＲＡＭ３上に読み込まれて使用される。
【００１７】
アドレス変換テーブル１３は、ＳＳＤ１への書き込み／読み出し対象となるデータの論理アドレスと物理アドレスとの対応関係を示す情報テーブルであり、論理アドレスと物理アドレスとの変換を行う際に用いられる。論理アドレスは、ホスト機器６がＳＳＤ１に対してデータの書き込み／読み出しを行う際に、ホスト機器６によって指定される論理的なアドレスであり、ホスト機器６からＳＳＤ１にＬＢＡ（Logical  Block  Addressing）として入力される。
【００１８】
アドレス変換テーブル１３は、ＳＳＤ１が稼働を停止している時は、ＮＡＮＤフラッシュ４にのみ存在するが、稼働時には、管理テーブル９としてＤＲＡＭ３上に読み込まれて使用される。ホスト機器６からＳＳＤ１にデータの書き込み／読み出し指示があると、ＤＲＡＭ３上の管理テーブル９の内容が更新される。管理テーブル９は、電源断等による内容消失を避けるため、所定のタイミングでＮＡＮＤフラッシュ４へ書き込まれる。
【００１９】
コントローラ５は、ホスト機器６とＮＡＮＤフラッシュ４との間でＤＲＡＭ３を介したデータ転送制御を行うとともに、ＳＳＤ１内の各構成要素を制御する。コントローラ５は、ＣＰＵ（図示せず）を備えて構成されており、ＣＰＵが実行する命令によりＳＳＤ１を制御する。コントローラ５のＣＰＵは、書き込み制御部１１、読み出し制御部１０を含んで構成されている。なお、実際には、ＣＰＵが実行するプログラム（書き込み／読み出し制御プログラム）が、書き込み制御部１１、読み出し制御部１０を含むモジュール構成となっており、ＣＰＵがＲＯＭ（図示せず）などから書き込み／読み出し制御プログラムを読み出して実行することにより、書き込み制御部１１、読み出し制御部１０がＣＰＵに生成される。
【００２０】
書き込み制御部１１は、ホスト機器６からの要求に従い、ホスト機器６からＷＣ７へのデータの書き込みと、ＷＣ７からＮＡＮＤフラッシュ４へのデータの書き込みを制御する。ＷＣ７からＮＡＮＤフラッシュ４へのデータの書き込みを行う際には、同一論理アドレスのＲＣ８上のデータを無効にする。読み出し制御部１０は、ホスト機器６からの要求に従い、ＮＡＮＤフラッシュ４からＲＣ８へのデータの読み出しと、ＲＣ８やＷＣ７からホスト機器６へのデータ転送を制御する。ＲＣ８上のデータは、ＮＡＮＤフラッシュ４から読み出したデータを一時的に保存してあるものである。ホストからＲＣ８上のデータと同一の論理アドレスに対する書き込みが行われた場合、そのデータは最新のデータでありＷＣ７上に保存される。そのため、同一の論理アドレスに対応するデータが、ＷＣ７、ＲＣ８、ＮＡＮＤフラッシュ４上にある場合には、データの新しさは、ＷＣ７、ＲＣ８、ＮＡＮＤフラッシュ４の順となるため、ホストに返すデータもＷＣ７上のデータを優先する。
【００２１】
また、コントローラ５は、ホスト機器６から供給されるデータの論理アドレスを、実際にＮＡＮＤフラッシュ４内でデータが記憶されている位置の物理アドレスに変換する。具体的には、コントローラ５は、ホスト機器６から供給されたデータがＮＡＮＤフラッシュ４に記憶された時に、データの外部アドレスとＮＡＮＤフラッシュ４に記憶されたデータの物理アドレスとを対応付けて管理テーブル９（アドレス変換テーブル１３）に記憶させる。そして、ホスト機器６から読み出し要求があると、コントローラ５は、管理テーブル９を用いて、読み出し要求の論理アドレスを、この論理アドレスに対応する物理アドレスに変換する。具体的には、アドレス変換は、ホスト機器６から供給される論理アドレス（ＬＢＡ）の上位部分（数ビット）をＮＡＮＤフラッシュ４内のブロックのページ位置に変換し、残りの下位部分（数ビット）をページ内のデータ位置に変換することによって行われる。
【００２２】
コントローラ５は、ＮＡＮＤフラッシュ４へのデータの読み出し／書き込みに応じて、ＤＲＡＭ３に一時的に保存されたアドレス変換テーブル１３に対してアドレス更新を行う。ＮＡＮＤフラッシュ４におけるアドレス変換テーブル１３の更新は、例えばＳＳＤ１が稼働を停止する時など、任意のタイミングで行われる。
【００２３】
なお、図１ではＳＳＤ１がデータ転送用キャッシュとしてＤＲＡＭ３を備える構成としたが、ＤＲＡＭ３の代わりに、ＮＡＮＤフラッシュ４よりもデータ出力レイテンシの小さい他のメモリを用いてもよい。例えば、ＤＲＡＭ３の代わりに、ＦｅＲＡＭ（Ferroelectric  Random  Access  Memory）を使用してもよい。データ転送用キャッシュは必ずしも揮発性半導体メモリで構成されている必要はなく、不揮発性半導体メモリで構成されていてもよい。データ転送用キャッシュが不揮発性半導体メモリで構成されている場合、必ずしもＮＡＮＤフラッシュ４内にアドレス変換テーブル１３を保存する必要はない。
【００２４】
つぎに、本発明の実施の形態に係るＳＳＤの動作手順について説明する。図２は、本発明の実施の形態に係るＳＳＤの動作手順を示すフローチャートであり、図３は、ＳＳＤの動作手順を説明するための図である。ここでは、データの検索処理、ＮＡＮＤフラッシュ４からのデータ読み出し処理、ホスト機器６へのデータ転送処理の手順について説明する。
【００２５】
ホスト機器６からＳＳＤ１にデータの読み出し要求が送られてくると、ＳＳＤ１は、この読み出し要求をホストＩ／Ｆ２を介して受け付ける（ステップＳ１０）。ホスト機器６から送られてくる読み出し要求は、データの要求転送範囲Ｘを有している。要求転送範囲Ｘは、例えば、読み出し要求されるデータ（読み出し要求データ）の開始論理アドレスと転送サイズとによって、読み出し要求されるデータの範囲を示している。
【００２６】
コントローラ５の読み出し制御部１０は、要求転送範囲Ｘのうち、先頭の所定サイズ分のデータが先頭から連続でＲＣ８内にあるか否かを、管理テーブル９を参照して検索する。要求転送範囲Ｘは、読み出し要求のあったデータの範囲であり、第１のデータ範囲である前段部Ａ（サイズαのデータ範囲）と第２のデータ範囲である後段部Ｂとに分割できる。前段部Ａは、要求転送範囲Ｘの前段側のデータ領域を示し、後段部Ｂは、前段部Ａに続く後段側のデータ領域を示している。本実施の形態では、読み出し制御部１０が、ホスト機器６から読み出し要求されたデータ範囲を所定サイズの前半部と後半部に分割している。別言すれば、読み出し制御部１０が、ホスト機器６から読み出し要求されたデータ範囲の中から、所定サイズの前半部と所定サイズの後半部を設定している。前段部Ａのうち、先頭部分ａが要求転送範囲Ｘで示されるデータ範囲の最初の領域であり、後段部Ｂのうち、先頭部分ｂが後段部Ｂの最初のデータ領域である。読み出し制御部１０は、要求転送範囲Ｘのうち前段部Ａの先頭部分ａからの連続データがＲＣ８内にあるか否かを検索する（ステップＳ２０）。ＲＣ８内にあった場合、先頭部分ａの大きさは、ＲＣ８内で見つかった前段部Ａの先頭からの連続データの大きさとする。
【００２７】
先頭部分ａのデータがＲＣ８内にあった場合（ステップＳ２０、Ｙｅｓ）、読み出し制御部１０は、ＲＣ８内にあったデータがＷＣ７内にあるか否かを検索する（ステップＳ３０）。ＷＣ７の検索は、ホスト機器６から書き込まれた最新のデータを、読み出し要求されたデータとして転送するために必要な処理である。読み出し制御部１０は、ＷＣ７内にあったデータはＷＣ７内から、ＷＣ７内になかったデータはＲＣ８内から、それぞれホスト機器６へ転送を開始する。さらに、読み出し制御部１０は、ホスト機器６へ転送を開始したデータ範囲、つまり先頭部分ａの大きさ分を残り転送範囲から削除する（ステップＳ４０）。残り転送範囲は、要求転送範囲Ｘのうち、ホスト機器６への転送が開始されていないデータ範囲である。
【００２８】
先頭部分ａとしてＲＣ８内で見つかったデータの大きさが、前段部Ａの大きさと等しかったかを比較する。換言すると、読み出し制御部１０は、前段部Ａの全体（全データ範囲）がＲＣ８内にあったかどうかを管理テーブル９を参照して判定する（ステップＳ５０）。前段部Ａの全体がＲＣ８内にあった場合（ステップＳ５０、Ｙｅｓ）、読み出し制御部１０は、ＷＣ７内にあるデータはＷＣ７内から、ＷＣ７内に無いデータはＲＣ８内から、それぞれホスト機器６へ転送する。そして、読み出し制御部１０は、ホスト機器６へ転送を開始したデータ範囲を残り転送範囲から削除する。これにより、残り転送範囲は後段部Ｂのデータ範囲となる。ここでのステップＳ２０，Ｓ３０の処理が、図３の（１）の処理に対応し、ステップＳ４０の処理が図３の（２）の処理に対応している。
【００２９】
前段部Ａのホスト機器６へのデータ転送を開始した後、読み出し制御部１０は、残り転送範囲である後段部Ｂのうち、先頭部分ｂからの連続データがＲＣ８内にあるか否かを、管理テーブル９を参照して検索する（ステップＳ６０）。先頭部分ｂのデータがＲＣ８内にあった場合（ステップＳ６０、Ｙｅｓ）、先頭部分ｂの大きさは、ＲＣ８内で見つかった後段部Ｂの先頭からの連続データの大きさとし、読み出し制御部１０は、ＲＣ８内にあった先頭部分ｂのデータがＷＣ７内にあるか検索する（ステップＳ７０）。読み出し制御部１０は、ＷＣ７内にあったデータはＷＣ７内から、ＷＣ７内になかったデータはＲＣ８内から、それぞれホスト機器６へ転送を開始する。さらに、読み出し制御部１０は、ホスト機器６へ転送を開始したデータ範囲、つまり先頭部分ｂの大きさ分を残り転送範囲から削除する（ステップＳ８０）。ここでのステップＳ６０，Ｓ７０の処理が、図３の（３）の処理に対応し、ステップＳ８０の処理が図３の（４）の処理に対応している。
【００３０】
読み出し制御部１０は、残り転送範囲が０より大きいか否かを判断する（ステップＳ９０）。換言すると、読み出し制御部１０は、要求転送範囲Ｘで指定されたデータのうちＲＣ８内には無かったデータが存在するか否かを、管理テーブル９を参照して判断する。これにより、読み出し制御部１０は、ＲＣ８上で見つからなかったデータがあるかを判断する。
【００３１】
残り転送範囲が０より大きい場合（ステップＳ９０、Ｙｅｓ）、読み出し制御部１０は、残り転送範囲分のデータのＮＡＮＤフラッシュ４からＲＣ８への読み出しを開始する（ステップＳ１００）。その後、読み出し制御部１０は、残り転送範囲分のデータがＷＣ７内にあるか検索する（ステップＳ１１０）。読み出し制御部１０は、ＷＣ７内にあったデータはＷＣ７内からホスト機器６へ転送開始し、ＷＣ７内になかったデータはＮＡＮＤフラッシュ４からＲＣ８に読み出し次第、ホスト機器６へ転送開始する（ステップＳ１２０）。この後、残り転送範囲分のデータをＷＣ７またはＮＡＮＤフラッシュ４（ＲＣ８）からホスト機器６へ全て転送し、データの転送処理を終了する。残り転送範囲が０である場合（ステップＳ９０、Ｎｏ）、読み出し制御部１０は、データの転送処理を終了する。
【００３２】
また、ステップＳ２０の処理で先頭部分ａのデータがＲＣ８内になかった場合（ステップＳ２０、Ｎｏ）、ステップＳ５０の処理で前段部Ａの全体がＲＣ８内になかった場合（ステップＳ５０、Ｎｏ）、ステップＳ６０の処理で先頭部分ｂのデータがＲＣ８内になかった場合（ステップＳ６０、Ｎｏ）、読み出し制御部１０は、ＮＡＮＤフラッシュ４からのデータ読み出し処理（ステップＳ９０〜Ｓ１２０の処理）を行う。
【００３３】
このように、本実施の形態では、前段部Ａのデータ検索とデータ転送を開始した後に、後段部Ｂのデータ検索処理を開始している。これにより、ホスト機器６への最初の応答を高速に行うことが可能となる。また、後段部Ｂのデータ検索を開始する際には、ホスト機器６へのデータ転送が始まっているので、以降のデータ検索に関する処理時間をホスト機器６へのデータ転送時間によって隠蔽することが可能となる。
【００３４】
また、本実施の形態では、残り転送範囲のＮＡＮＤフラッシュ４からのデータ読み出し処理を行う際に、ＷＣ７上のデータ検索処理を行う前にＮＡＮＤフラッシュ４からＲＣ８への読み出し処理を開始している。これは、ＷＣ７上のデータから読み出されることは少ないことと、ＮＡＮＤフラッシュ４はデータ出力レイテンシが大きいことから、なるべく早くＮＡＮＤフラッシュ４から読み出しを開始することが重要になるからである。ＮＡＮＤフラッシュ４からの読み出し処理が始まってしまえば、ＷＣ７からホスト機器６にデータを転送することと、ＮＡＮＤフラッシュ４からＲＣ８にデータを読み出して、その後ホスト機器６にデータ転送することとは、大きな違いはない。
【００３５】
このため、本実施の形態では、ＳＳＤ１は、ＷＣ７上のデータの有無を検索する前に、残り転送範囲全体のＮＡＮＤフラッシュ４からの読み出しを開始する。その後、ＳＳＤ１は、残り転送範囲がＷＣ７上に存在するかを検索し、ＷＣ７にあったデータはＷＣ７からホスト機器６にデータ転送し、ＷＣ７に無かったデータはＮＡＮＤフラッシュ４からＲＣ８を介してホスト機器６にデータ転送している。これにより、ＮＡＮＤフラッシュ４からのデータ出力を早く行なうことが可能となり、ホスト機器６への応答を高速に行うことが可能となる。また、ＮＡＮＤフラッシュ４のデータ出力レイテンシにＷＣ７の検索処理を隠蔽することができるので、ホスト機器６へのデータ転送を高速に行うことが可能となる。
【００３６】
なお、後段部Ｂのデータ検索処理時間と前段部Ａのデータ転送処理時間とが同じである場合に、ホスト機器６へのデータ転送処理時間が最短となる。したがって、ＳＳＤ１は、後段部Ｂのデータ検索処理時間と前段部Ａの転送処理時間とが同じとなるよう、ホスト機器６へのデータ転送を行ってもよい。この場合、読み出し制御部１０は、後段部Ｂのデータ検索処理時間と前段部Ａの転送処理時間とが同じとなるよう、要求転送範囲Ｘ内の前段部Ａと後段部Ｂを設定する。
【００３７】
また、本実施の形態では、要求転送範囲Ｘを前段部Ａと後段部Ｂの２つに分割する場合について説明したが、読み出し制御部１０は、要求転送範囲Ｘを３つ以上のデータ範囲に分割してもよい。例えば、読み出し制御部１０は、要求転送範囲Ｘを第１段目のデータ範囲〜第ｎ段目（ｎは３以上の自然数）のデータ範囲に分割する。この場合、読み出し制御部１０は、第１段目のデータ転送を開始した後に、第２段目のデータ検索処理を開始する。
【００３８】
なお、本実施の形態に係るＳＳＤは、読み出し要求された論理アドレス範囲に後続する所定サイズの論理アドレス範囲のデータを、ＲＣ８にプリフェッチしておく構成としてもよい。この場合、新たな読み出し要求を受け付けた際には、前回の読み出し要求に伴ってプリフェッチされたデータが既にＲＣ８上に保持された状態となる。これによって、シーケンシャル性のある読み出し要求に対して、アクセス性能を向上させることが可能となる。
【００３９】
このように実施の形態によれば、前段部Ａのホスト機器６へのデータ転送を開始した後に、後段部Ｂのデータ検索処理を開始しているので、ホスト機器６へのデータ転送を早い時期に開始でき、この結果、データの読み出しを高速に行なうことが可能となる。
【００４０】
また、ＲＣ８上に無いデータは、ＷＣ７上のデータの有無を検索する前に、ＮＡＮＤフラッシュ４からＲＣ８への読み出しを開始しているので、ＮＡＮＤフラッシュ４からＲＣ８への読み出しを早い時期に開始できる。このため、読み出し要求のあったデータがＮＡＮＤフラッシュ４内にしか無い場合であっても、データの読み出しを高速に行なうことが可能となる。
【図面の簡単な説明】
【００４１】
【図１】図１は、実施の形態に係るＳＳＤの構成例を示すブロック図である。
【図２】図２は、実施の形態に係るＳＳＤの動作手順を示すフローチャートである。
【図３】図３は、ＳＳＤの動作手順を説明するための図である。
【符号の説明】
【００４２】
１  ＳＳＤ、２  ホストＩ／Ｆ、３  ＤＲＡＭ、４  ＮＡＮＤフラッシュ、５  コントローラ、６  ホスト機器、７  ＷＣ、８  ＲＣ、１０  読み出し制御部、１１  書き込み制御部、１２  データ格納領域、１３  アドレス変換テーブル、Ｘ  要求転送範囲、Ａ  前段部、Ｂ  後段部
【図１】
2010157130.tif 000003
【図２】
2010157130.tif 000004
【図３】
2010157130.tif 000005