(57)【要約】 【課題】  ＤＲＡＭを用いずに、データの高速な読み出しが可能なメモリシステムを提供する。【解決手段】  複数の不揮発性メモリ11は、複数のチャネルのそれぞれに接続され、複数のバンクを有している。バッファ17は、複数の不揮発性メモリから読み出されたデータを保持し、同時に読み出し可能なデータサイズのほぼ２倍の容量を有するスタティックメモリにより構成されている。複数のチャネル制御部16-0〜16-7は、複数の不揮発性メモリからデータを読み出すための読み出し要求を複数のチャネル毎に保持するキューを有している。バッファ制御部15は、読み出し要求を複数のチャネル制御部のいずれかのキューに供給するとともに、バッファ内に不揮発性メモリから読み出されたデータを保持するための領域を確保する。【選択図】図１
2012221038.tif 000002
【特許請求の範囲】
【請求項１】
複数のチャネルのそれぞれに接続され、複数のバンクを有する複数の不揮発性メモリと、
前記複数の不揮発性メモリから読み出されたデータを保持し、同時に読み出し可能なデータサイズのほぼ２倍の容量を有するスタティックメモリにより構成されたバッファと、
前記複数の不揮発性メモリからデータを読み出すための読み出し要求を前記複数のチャネル毎に保持するキューを有する複数のチャネル制御部と、
前記読み出し要求を前記複数のチャネル制御部のいずれかの前記キューに供給するとともに、前記バッファ内に前記不揮発性メモリから読み出されたデータを保持するための領域を確保するバッファ制御部と、
を具備することを特徴とするメモリシステム。
【請求項２】
前記バッファ制御部は、前記読み出し要求を前記複数のチャネル制御部の空きを有するキューから優先的に供給することを特徴とする請求項１記載のメモリシステム。
【請求項３】
前記バッファ制御部は、前記キューが複数の読み出し要求を有する場合、新たな読み出し要求を供給しないことを特徴とする請求項２記載のメモリシステム。
【請求項４】
前記複数のチャネル制御部のキューの数は、バンクの数に対応していることを特徴とする請求項３記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、不揮発性半導体記憶装置を用いたメモリシステム、例えばＳＳＤ（Solid-State Drive）に関する。
【背景技術】
【０００２】
ＳＳＤは、複数のバンクを有し、各バンクは、例えばＮＡＮＤフラッシュメモリにより構成されている。各バンクは、それぞれチャネルに接続され、複数のバンク、及び複数のチャネルを用いて各バンクから並列にデータを読み出したり、書き込んだりすることにより、必要なバンド幅を確保している。
【０００３】
ところで、ＮＡＮＤフラッシュメモリは、ページ単位にデータの読み出し、及び書き込みが行われる。低速なＮＡＮＤフラッシュメモリが高速なホストインターフェースと効率よくデータを転送可能とするため、ダイナミックメモリ（ＤＲＡＭ）が用いられている。しかし、ＤＲＡＭによる作業領域の容量は、数百Ｍバイトを必要とする。このため、ＳＳＤの製造コストを低減することが困難となっている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２０８８３号公報
【特許文献２】特開２０１０−５２７０５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本実施形態は、ＤＲＡＭを用いずに、データの高速な読み出しが可能なメモリシステムを提供する。
【課題を解決するための手段】
【０００６】
本実施形態に係るメモリシステムは、複数のチャネルのそれぞれに接続され、複数のバンクを有する複数の不揮発性メモリと、前記複数の不揮発性メモリから読み出されたデータを保持し、同時に読み出し可能なデータサイズのほぼ２倍の容量を有するスタティックメモリにより構成されたバッファと、前記複数の不揮発性メモリからデータを読み出すための読み出し要求を前記複数のチャネル毎に保持するキューを有する複数のチャネル制御部と、前記読み出し要求を前記複数のチャネル制御部のいずれかの前記キューに供給するとともに、前記バッファ内に前記不揮発性メモリから読み出されたデータを保持するための領域を確保するバッファ制御部と、を具備することを特徴とする。
【図面の簡単な説明】
【０００７】
【図１】本実施形態を示すものであり、メモリシステムの読み出し系を示す構成図。
【図２】図１の一部を概略的に示す構成図。
【図３】図１、図２の動作を説明するために示すフローチャート。
【発明を実施するための形態】
【０００８】
以下、実施の形態について、図面を参照して説明する。
【０００９】
本実施形態は、ＤＲＡＭを用いることなく、複数のバンクからデータを読み出すことを特徴としている。複数のバンクをアクセスする際、例えば１つのバンクに集中してアクセスした場合、待ちが発生するため、所要の性能を得ることができない。本実施形態は、バンクアクセスの集中を回避可能とし、小容量の作業領域により、データの高速な読み出しを可能としている。この結果、ＤＲＡＭなしでＳＳＤを構成でき、ＳＡＴＡ  Ｇｅｎ．３（６Ｇｂｐｓ＝６００ＭＢ／ｓ）を達成可能としている。
【００１０】
図１は、本実施形態に係るメモリシステムの読み出し系の構成を示し、書き込み系の構成は省略している。
【００１１】
図１において、メモリシステムとしてのＳＳＤ１０は、複数のＮＡＮＤフラッシュメモリにより構成されたＮＡＮＤメモリ１１と、ドライブ制御回路１２により構成されている。
【００１２】
ＮＡＮＤメモリ１１は、例えば８並列動作を行う８つのバンク群１１−０、１１−１〜１１−７を有し、８つのバンク群１１−０、１１−１〜１１−７は、８つのチャネルＣＨ０、ＣＨ１〜ＣＨ７によりドライブ制御回路１２に接続されている。各バンク群１１−０、１１−１〜１１−７は、バンクインターリーブが可能な、例えば４つのバンクＢＫ０〜ＢＫ３によって構成されている。各バンクＢＫ０〜ＢＫ３は、ＮＡＮＤフラッシュメモリにより構成されている。
【００１３】
ドライブ制御回路１２は、例えばホストインターフェース（ＩＦ）１３、アドレス変換回路１４、リードバッファ制御部１５、チャネル制御部１６−０、１６−１〜１６−７、リードバッファ１７により構成されている。
【００１４】
ホストインターフェース１３は、ホストデバイス１８とのインターフェース処理を行う。具体的には、ホストデバイス１８から発行される読み出しコマンドを受け、この読み出しコマンドをアドレス変換回路１４に供給するとともに、リードバッファ１７から供給される読み出しデータをホストデバイス１８に転送する。
【００１５】
アドレス変換回路１４は、ホストインターフェース１３から供給されるコマンドに付加された論理アドレスをＮＡＮＤメモリ１１の物理アドレスに変換する。また、アドレス変換回路１４は、後述するように、長いデータ長を有する読み出しコマンドは、ＮＡＮＤメモリ１１の先頭クラスタの論理ブロックアドレスのみを変換する。後続のアドレスは、読み出しコマンドをチャネル制御部１６−０〜１６−７に転送する直前に変換する。
【００１６】
ここで、クラスタとは、論理アドレスを物理アドレスに変換する単位であり、一般に、１つのクラスタは連続する論理アドレスを有する複数のセクタを含んでいる。セクタは、データに論理アドレスが付される単位を示している。また、ページは、一般に、ＮＡＮＤフラッシュメモリの読み出し、書き込み単位であり、複数のクラスタにより構成される。
【００１７】
リードバッファ制御部１５は、アドレス変換回路１４により変換された物理アドレス及び読み出しコマンドを順次受け、この物理アドレス及び後述するキューの空き状況に従って、これら物理アドレス及び読み出しコマンドをチャネル制御部１６−０〜１６−７のいずれかに供給する。すなわち、リードバッファ制御部１５は、複数の物理アドレス及び読み出しコマンドを保持可能とされている。
【００１８】
さらに、リードバッファ制御部１５は、物理アドレス及び読み出しコマンドに基づき例えばスタティックＲＡＭ（ＳＲＡＭ）により構成されたリードバッファ１７内にＮＡＮＤメモリ１１から読み出されたデータを保持する領域を確保する。この領域を確保できた物理アドレス及び読み出しコマンドが、チャネル制御部１６−０〜１６−７に転送される候補となる。
【００１９】
チャネル制御部１６−０、１６−１〜１６−７は、前記チャネルＣＨ０、ＣＨ１〜ＣＨ７を介してバンク群１１−０、１１−１〜１１−７にそれぞれ接続されている。チャネル制御部１６−０、１６−１〜１６−７は、チャネルＣＨ０〜ＣＨ７とバンクＢＫ０〜ＢＫ３に区分されたキューを有している。バンクＢＫ０〜ＢＫ３に対応するキューを、Ｑ０〜Ｑ３で示している。バンクＢＫ０〜ＢＫ３に対応するキューＱ０〜Ｑ３のそれぞれは、コマンドが入力される２つのエントリを有している。
【００２０】
リードバッファ１７は、ＮＡＮＤメモリ１１から読み出されたデータを保持するメモリであり、例えばスタティックＲＡＭ（ＳＲＡＭ）により構成されている。このリードバッファ１７は、後述するように、ＮＡＮＤメモリ１１から同時に読み出し可能なデータサイズのほぼ２倍の記憶容量を有している。
【００２１】
図２は、チャネルＣＨ０〜ＣＨ７とバンク部Ｂ０〜Ｂ３に対応するキューＱ０〜Ｑ３との関係を概略的に示している。すなわち、チャネル制御部１６−０、１６−１〜１６−７は、それぞれキューＱ０〜Ｑ３を有している。各キューＱ０〜Ｑ３の２つのエントリには、リードバッファ制御部１５から供給されるコマンドが保持可能とされている。図２において、黒丸印は、エントリ内のコマンドの数を示している。黒丸印の無い部分は、コマンドが保持されておらず、キューが空であることを示している。
【００２２】
これらキューＱ０〜Ｑ３に保持された少なくとも１つのコマンドは、対応するチャネルＣＨ０、ＣＨ１〜ＣＨ７に接続されたバンクＢＫ０〜ＢＫ３の処理が終了される毎に順次実行される。例えばチャネルＣＨ０に対応するキューＱ１には、２つの読み出しコマンドが保持されている。この保持されたコマンドのうち先に保持されたコマンドは、チャネルＣＨ０に接続されたバンクＢＫ１の読み出し動作が終了した後、実行される。このバンクＢＫ１の読み出し動作により読み出されたデータは、チャネルＣＨ０、チャネル制御部１６−０を介してリードバッファ１７に供給され、このコマンドに対応してリードバッファ制御部１５により確保された領域に保持される。次いで、キューＱ１のエントリに保持された残りの読み出しコマンドが実行される。
【００２３】
チャネル制御部１６−０〜１６−７、及びバンク群１１−０、１１−１〜１１−７は、並列に動作可能とされている。このため、リードバッファ制御部１５には、同時に８つのチャネルＣＨ０〜ＣＨ７及びチャネル制御部１６−０〜１６−７を介して８つのバンクから読み出されたデータが供給されることが可能とされている。
【００２４】
本実施形態は、図２に示すチャネル制御部１６−０〜１６−７のキューＱ０〜Ｑ３へ適確にコマンドを割り当てることにより、バンド幅を向上可能としている。このため、リードバッファ制御部１５は、物理アドレスに基づき、空のキューに優先的にコマンドを割り当てている。
【００２５】
次に、図２、図３を参照して、各キューＱ０〜Ｑ３に対するコマンド割り当て動作について説明する。
【００２６】
図３は、ドライブ制御回路１２の動作を示している。ドライブ制御回路１２において、前述したように、ホストデバイス１８から供給された読み出しコマンドは、ホストインターフェース１３を介してアドレス変換回路１４に供給される。このアドレス変換回路１４は、コマンドに付加された論理アドレスをＮＡＮＤメモリ１１の物理アドレスに変換する（Ｓ１１）。このとき、長いデータ長を有する読み出しコマンドは、ＮＡＮＤメモリ１１の先頭クラスタの論理ブロックアドレスのみを変換し、後続のアドレスは、コマンド選択完了後、キューに転送する直前に変換する。すなわち、長いデータ長を有するデータは、隣接する複数のチャネルに接続されたバンクに分散して記憶されることが多いため、ステップＳ１２以降の選択処理で考慮しなくとも、自然に読み出し処理が並列化されて効率良く制御できる可能性が高い。このため、後続のアドレスはステップＳ１１において変換しなくても良い。
【００２７】
このアドレス変換の後、ステップＳ１２以降の処理によって、リードバッファ制御部１５内にある読み出しコマンドから、１つの読み出しコマンドが選択される。
【００２８】
先ず、各チャネルＣＨ０〜ＣＨ７に対応するキューＱ０〜Ｑ３の中から、アドレス及び読み出しコマンド（以下、単に、コマンドと称す）を保存するためのバンクの候補が判別される（Ｓ１２、Ｓ１３）。具体的には、各キューＱ０〜Ｑ３から、コマンド数が０個のキューの候補が判別される。
【００２９】
図２に示す例の場合、ＣＨ０のキューＱ３、ＣＨ３のキューＱ０、Ｑ２、ＣＨ４のキューＱ１、ＣＨ５のキューＱ３、ＣＨ６のキューＱ１，Ｑ２，Ｑ３、ＣＨ７のキューＱ０がそれぞれ空き状態であり、これらのキューに対応するアドレスを持つコマンドが候補として判別される。
【００３０】
ステップＳ１３の後、候補のコマンドに対応するチャネルのうち、既にキューに保持しているコマンド数の合計が最も少ないチャネルが選択される（Ｓ１４）。
【００３１】
図２に示す例の場合、ＣＨ０のコマンド数の合計は、４個であり、ＣＨ３のコマンド数の合計は、２個であり、ＣＨ４のコマンド数の合計は、３個であり、ＣＨ５のコマンド数の合計は、３個であり、ＣＨ６のコマンド数の合計は、１個であり、ＣＨ７のコマンド数の合計は、３個である。このため、ＣＨ６に対応するコマンドの候補があれば、最もコマンド数が少ないＣＨ６が選択される。
【００３２】
尚、最もコマンド数が少ないチャネルが複数ある場合、例えば前回選択されたチャネル＋１のチャネルが最優先として、１つのチャネルが選択される。
【００３３】
上記のように、最もコマンド数が少ないチャネルが選択された後、選択されたチャネル内のキューが選択される（Ｓ１５）。この場合、前回選択されたキュー＋１のキューが最優先として、１つのキューが選択される。すなわち、図２に示す例の場合、ＣＨ６が選択され、このＣＨ６のうち、前回選択されたキューは、既にコマンドが保持されているＱ０であるため、今回はＱ０の次のＱ１が最優先として、１つのキューが選択される。
【００３４】
この後、リードバッファ制御部１５内の残った候補のうち、最も古い読み出しコマンドが選択され、上記選択されたＱ１に転送される（Ｓ１６）。
【００３５】
一方、ステップＳ１３において、コマンド数が０個のキューの候補が無いと判別された場合、コマンド数が１個のキューの候補が判別される（Ｓ１７、Ｓ１８）。図２に示す例の場合、ＣＨ０のキューＱ０，Ｑ２、ＣＨ２のキューＱ１，Ｑ２，Ｑ３、ＣＨ２のキューＱ０，Ｑ１，Ｑ３、ＣＨ４のキューＱ０，Ｑ２，Ｑ３、ＣＨ５のキューＱ０，Ｑ１，Ｑ２、ＣＨ６のキューＱ０、ＣＨ７のキューＱ１，Ｑ２，Ｑ３がそれぞれ１個のコマンドを保持した状態である。その後、ステップＳ１４〜Ｓ１６の処理が、前述したように実行される。
【００３６】
一方、ステップＳ１８において、１個のコマンドが保持されたキューの候補がないと判別された場合、リードバッファ制御部１５にあるどのコマンドもキューに転送する必要は無いと判断される。この後、新たな読み出しコマンドがホストデバイスから転送されるか、キューが保持しているいずれかのコマンドの処理が終了した場合、再度、図３の処理が実行される。
【００３７】
上記のように、各チャネル制御部１６−０〜１６−７の各キューＱ０〜Ｑ３に読み出しコマンドが保持される。各キューＱ０〜Ｑ３に保持された読み出しコマンドは、対応するＮＡＮＤメモリ１１のバンクの読み出し動作が終了する毎に、順次実行される。
【００３８】
各バンクから読み出されたデータは、対応するチャネルＣＨ０〜ＣＨ７、チャネル制御部１６−０〜１６−７を介して、前述したリードバッファ１７のコマンドに対応して確保された領域に転送される。このリードバッファ１７の各領域に転送されたデータは、アドレスに従って並べ替えられ、ホストインターフェース１３を介してホストデバイス１８に供給される。
【００３９】
上記実施形態によれば、ＮＡＮＤメモリ１１の複数のバンクにそれぞれ対応して設けられたチャネルＣＨ０〜ＣＨ７に接続されたチャネル制御部１６−０〜１６−７に、それぞれバンクＢＫ０〜ＢＫ３に対応してコマンドを保持するキューＱ０〜Ｑ３を設け、これらキューＱ０〜Ｑ３のうち、保持されたコマンド数の少ないキューに優先的にコマンドを供給している。このため、キュー内において待たされるコマンドを低減でき、コマンドを迅速に実行することができる。したがって、バンクから読み出され、リードバッファ１７に転送されたデータが、リードバッファ１７内に滞留する時間も短縮することができる。
【００４０】
リードバッファ１７内のデータの滞留時間が長い場合、バンクから読み出されたデータを保持するために大きな容量のリードバッファが必要となる。このため、リードバッファをＤＲＡＭで構成した場合、数Ｍ〜数十Ｍバイトの容量のＤＲＡＭを必要としていた。
【００４１】
しかし、本実施形態の場合、リードバッファ１７内のデータの滞留時間を短縮することが可能であるため、リードバッファ１７の容量は、１Ｍバイト以下程度とすることが可能である。このため、リードバッファ１７を、ドライブ制御回路１２を構成するロジック回路に混載されるＳＲＡＭにより構成することが可能であり、例えばロジック回路と別のチップにより構成される高価なＤＲＡＭを用いる必要がない。したがって、ＤＲＡＭを用いずにＳＳＤ１０を構成することが可能であり、製造コストの低減を図ることが可能である。
【００４２】
具体的には、チャネル数が８チャネル、バンク数が４バンク、１ページが１６ｋバイトである場合、同時に読み出し可能なデータのサイズは、８チャネル×４バンク×１６ｋＢ＝５１２ｋＢである。リードバッファ１７は、このデータサイズの２倍の容量、すなわち１ＭＢの容量を有していれば、ＮＡＮＤメモリ１１からデータを読み出し、リードバッファ１７に転送している間に、リードバッファ１７に保持されたデータをホストデバイス１８に転送することが可能である。したがって、間断なくＮＡＮＤメモリ１１からデータを読み出し、ホストデバイス１８に転送することができる。
【００４３】
しかも、本実施形態によれば、空きを有するキューに優先的にコマンドを割り当てることにより、コマンドがキューに割り当てられてからＮＡＮＤメモリの読み出し動作が開始されるまでの時間を短縮することが可能である。このため、リードバッファ１７の領域が確保されてから開放されるまでの時間を短縮することが可能となり、次にリードバッファ１７の領域を確保するまでの時間も短縮することが可能である。
【００４４】
さらに、リードバッファ制御部１５は、リードバッファ１７に領域を確保できた読み出しコマンドのみをチャネル制御部１６−０〜１６−７に供給している。このため、ＮＡＮＤメモリ１１において、読み出し動作の待ち時間を短縮でき、高速な読み出しが可能となる。
【００４５】
その他、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【００４６】
１０…ＳＳＤ、１１…ＮＡＮＤメモリ、１２…ドライブ制御回路、１３…ホストインターフェース、１４…アドレス変換回路、１５…リードバッファ制御部、１６−０〜１６−７…チャネル制御部、１７…リードバッファ、ＣＨ０〜ＣＨ７…チャネル、ＢＫ０〜ＢＫ４…バンク。
【図１】
2012221038.tif 000003
【図２】
2012221038.tif 000004
【図３】
2012221038.tif 000005