(57)【要約】【課題】  データの書き込み及び読み出し効率に優れた半導体記憶装置及びデータ書き込み読み出し方法を提供する。【解決手段】  半導体記憶装置は、コマンド処理モジュール１３と、複数の記憶部と、複数の制御モジュールＣＭ０乃至ＣＭｎと、調停回路１６ｆと、設定レジスタと、を備えている。調停回路１６ｆは、設定レジスタの識別情報に応じて第２グループの記憶部に接続された全ての制御モジュールを書き込み動作の対象から外し、第１グループの記憶部に接続された制御モジュールの書き込み動作に重なった期間に読み出し動作を行うよう、第２グループの記憶部に接続された制御モジュールに指示する。【選択図】図１
2012014433.tif 000002
【特許請求の範囲】
【請求項１】
外部から入力される、データの書き込み要求及び読み出し要求のコマンドに応じて処理し、前記処理した処理情報を出力するコマンド処理モジュールと、
複数の記憶部と、
前記複数の記憶部に一対一で接続され、前記複数の記憶部に対して前記書き込み動作及び読み出し動作を行う複数の制御モジュールと、
前記コマンド処理モジュール及び複数の制御モジュール間に接続され、前記コマンド処理モジュールの処理情報に応じて、前記複数の制御モジュールに前記書き込み動作及び読み出し動作を行うように指示する調停回路と、
前記調停回路に接続され、前記複数の記憶部が前記書き込み動作が禁止されていない第１グループ及び前記書き込み動作が禁止されている第２グループの何れであるのか、を個別に識別した識別情報が設定された設定レジスタと、を備え、
前記調停回路は、前記識別情報に応じて前記第２グループの記憶部に接続された全ての制御モジュールを前記書き込み動作の対象から外し、前記第１グループの記憶部に接続された制御モジュールの前記書き込み動作に重なった期間に前記読み出し動作を行うよう、前記第２グループの記憶部に接続された制御モジュールに指示する半導体記憶装置。
【請求項２】
前記複数の記憶部は、それぞれフラッシュメモリである請求項１に記載の半導体記憶装置。
【請求項３】
前記設定レジスタは、前記識別情報が設定された論理ブロックを有している請求項１に記載の半導体記憶装置。
【請求項４】
データの書き込み要求及び読み出し要求のコマンドに応じて処理し、前記処置した処理情報を出力し、前記処理情報に応じて、複数の記憶部に対して書き込み及び読み出しを行うデータ書き込み読み出し方法において、
複数の記憶部が前記書き込み動作が禁止されていない第１グループ及び前記書き込みが禁止されている第２グループの何れであるのか、を個別に識別し、
前記識別した識別情報に応じて前記第２グループの記憶部を前記書き込みの対象から外し、
前記第１グループの記憶部に対して前記書き込みを行う期間に重ねて、前記第２グループの記憶部に対して前記読み出しを行うデータ書き込み読み出し方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体記憶装置及びデータ書き込み読み出し方法に関する。
【背景技術】
【０００２】
一般に、半導体記憶装置が種々用いられている。半導体記憶装置としてのＳＳＤ（ソリッドステートドライブ）は、複数のＮＡＮＤフラッシュメモリを有している。ＮＡＮＤフラッシュメモリは、高密度、大容量を実現できる不揮発性メモリであり、ハードディスクの代替としての利用が期待されるメモリデバイスである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第３６９９８９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
データの読み出し動作は単一のＮＡＮＤフラッシュメモリに対して行うことができるが、データの書き込み動作は全てのＮＡＮＤフラッシュメモリに対して行わなくてはならないという制限がある場合がある。このため、読み出し動作の期間と、書き込み動作の期間は、綺麗に分けられている。
【０００５】
しかしながら、読み出し動作の期間と、書き込み動作の期間を分ける必要があるため、
データの書き込み及び読み出しにかかる時間が長くなる傾向にある。このため、データの書き込み及び読み出しを効率よく行うことのできる技術が求められている。  
この発明は以上の点に鑑みなされたもので、その目的は、データの書き込み及び読み出し効率に優れた半導体記憶装置及びデータ書き込み読み出し方法を提供することにある。
【課題を解決するための手段】
【０００６】
一実施形態に係る半導体記憶装置は、
外部から入力される、データの書き込み要求及び読み出し要求のコマンドに応じて処理し、前記処理した処理情報を出力するコマンド処理モジュールと、
複数の記憶部と、
前記複数の記憶部に一対一で接続され、前記複数の記憶部に対して前記書き込み動作及び読み出し動作を行う複数の制御モジュールと、
前記コマンド処理モジュール及び複数の制御モジュール間に接続され、前記コマンド処理モジュールの処理情報に応じて、前記複数の制御モジュールに前記書き込み動作及び読み出し動作を行うように指示する調停回路と、
前記調停回路に接続され、前記複数の記憶部が前記書き込み動作が禁止されていない第１グループ及び前記書き込み動作が禁止されている第２グループの何れであるのか、を個別に識別した識別情報が設定された設定レジスタと、を備え、
前記調停回路は、前記識別情報に応じて前記第２グループの記憶部に接続された全ての制御モジュールを前記書き込み動作の対象から外し、前記第１グループの記憶部に接続された制御モジュールの前記書き込み動作に重なった期間に前記読み出し動作を行うよう、前記第２グループの記憶部に接続された制御モジュールに指示する。
【０００７】
また、一実施形態に係るデータ書き込み読み出し方法は、
データの書き込み要求及び読み出し要求のコマンドに応じて処理し、前記処置した処理情報を出力し、前記処理情報に応じて、複数の記憶部に対して書き込み及び読み出しを行うデータ書き込み読み出し方法において、
複数の記憶部が前記書き込み動作が禁止されていない第１グループ及び前記書き込みが禁止されている第２グループの何れであるのか、を個別に識別し、
前記識別した識別情報に応じて前記第２グループの記憶部を前記書き込みの対象から外し、
前記第１グループの記憶部に対して前記書き込みを行う期間に重ねて、前記第２グループの記憶部に対して前記読み出しを行う。
【図面の簡単な説明】
【０００８】
【図１】一実施形態に係るＳＳＤ（ソリッドステートドライブ）を示すブロック図である。
【図２】上記ＳＳＤのチャネルの概念を示す図である。
【図３】上記ＳＳＤの論理ブロックの概念を示す図である。
【図４】上記ＳＳＤの設定レジスタ群が有するＮｕｌｌブロックの概念を示す図である。
【図５】上記ＳＳＤの書き込み動作及び読み出し動作を概略的に示すタイミングチャートである。
【図６】上記ＳＳＤの比較例の書き込み動作及び読み出し動作を概略的に示すタイミングチャートである。
【発明を実施するための形態】
【０００９】
以下、図面を参照しながら一実施形態について説明する。この実施形態において、半導体記憶装置及びデータ書き込み読み出し方法を開示している。詳しくは、この実施形態において、半導体記憶装置は、半導体ドライブとしてのＳＳＤ（ソリッドステートドライブ）である。図１は、ＳＳＤの全体構成を示すブロック図である。
【００１０】
図１に示すように、ＳＳＤ１０は、複数の記憶部としてのＮＡＮＤ型の複数のフラッシュメモリＦＭ０乃至ＦＭｎと、ＳＳＤコントローラ１１とを備えている。なお、この実施形態において、ｎは４以上の自然数である。フラッシュメモリＦＭ０乃至ＦＭｎは、半導体を利用した不揮発性メモリである。フラッシュメモリＦＭ０乃至ＦＭｎはＳＳＤコントローラ１１に接続されている。
【００１１】
ＳＳＤコントローラ１１は、外部のホストシステム１８に接続されるホストインターフェース１２と、コマンド処理モジュール１３と、マイクロプロセッサ１４と、設定レジスタとしての設定レジスタ群１５と、フラッシュメモリＦＭ０乃至ＦＭｎに接続される制御ユニット１６とを備えている。
【００１２】
制御ユニット１６は、制御モジュールＣＭ０乃至ＣＭｎと、調停回路１６ｆとを備えている。制御モジュールＣＭ０乃至ＣＭｎは、フラッシュメモリＦＭ０乃至ＦＭｎに一対一で接続されている。制御モジュールＣＭ０乃至ＣＭｎは、読み出し、書き込み、消去等の動作に関するプログラムを有し、上記プログラムを利用してフラッシュメモリＦＭ０乃至ＦＭｎを個別に制御するものである。このため、制御モジュールＣＭ０乃至ＣＭｎは、フラッシュメモリＦＭ０乃至ＦＭｎに対して書き込み動作及び読み出し動作を行うことができる。
【００１３】
コマンド処理モジュール１３は、ホストインターフェース１２を介してホストシステム１８（外部）から入力される、データの書き込み要求及び読み出し要求のコマンドに応じて処理し、処理した処理情報を出力するものである。
【００１４】
調停回路１６ｆは、コマンド処理モジュール１３及び複数の制御モジュールＣＭ０乃至ＣＭｎ間に接続されている。調停回路１６ｆは、制御モジュールＣＭ０乃至ＣＭｎがいつ上記プログラムを利用してフラッシュメモリＦＭ０乃至ＦＭｎを制御するのか調整する。このため、調停回路１６ｆは、コマンド処理モジュール１３の処理情報に応じて、制御モジュールＣＭ０乃至ＣＭｎに書き込み動作及び読み出し動作を行うように指示することができる。
【００１５】
図示しないが、ホストインターフェース１２、コマンド処理モジュール１３、設定レジスタ群１５及び制御ユニット１６は、マイクロプロセッサ１０４のシステムバスに接続される。
【００１６】
設定レジスタ群１５は、調停回路１６ｆに接続されている。設定レジスタ群１５へはマイクロプロセッサ１４から値が設定される。設定レジスタ群１５には、フラッシュメモリＦＭ０乃至ＦＭｎが書き込み動作が禁止されていない第１グループ及び書き込み動作が禁止されている第２グループの何れであるのか、を個別に識別した識別情報が設定されている。
【００１７】
このため、設定レジスタ群１５は、例えばＮｕｌｌブロック１９を備えていていてもよい。Ｎｕｌｌブロック１９は、どの制御モジュールＣＭ０乃至ＣＭｎがＮｕｌｌブロック１９の存在するフラッシュメモリに接続されているかを調停回路１６ｆに通知することができる。調停回路１６ｆは、Ｎｕｌｌブロック１９の情報を用い、Ｎｕｌｌブロックが存在するフラッシュメモリに接続された制御モジュールを書き込み動作の対象外とし、読み出し動作のみを行うように指示を出すことができる。
【００１８】
ここで、上記調停回路１６ｆは、設定レジスタ群１５の情報（Ｎｕｌｌブロック１９の情報）に応じて第２グループのフラッシュメモリに接続された全ての制御モジュールを書き込み動作の対象から外すことができる。調停回路１６ｆは、第１グループのフラッシュメモリに接続された制御モジュールの書き込み動作に重なった期間に、読み出し動作を行うよう、第２グループのフラッシュメモリに接続された制御モジュールに指示することができる。
【００１９】
図２は、チャネルの概念を示す図である。図１及び図２に示すように、制御モジュールと、フラッシュメモリとの組み合わせをチャネルと称する。例えば、チャネル０は、制御モジュールＣＭ０とフラッシュメモリＦＭ０との組み合わせである。チャネル１は、制御モジュールＣＭ１とフラッシュメモリＦＭ１との組み合わせである。チャネル２は、制御モジュールＣＭ２とフラッシュメモリＦＭ２との組み合わせである。チャネル３は、制御モジュールＣＭ３とフラッシュメモリＦＭ３との組み合わせである。チャネルｎは、制御モジュールＣＭｎとフラッシュメモリＦＭｎとの組み合わせである。
【００２０】
チャネル０乃至ｎのフラッシュメモリＦＭ０乃至ＦＭｎのブロック構成ＢＦ０乃至ＢＦｎの例は、図２に示されている。ブロック構成ＢＦ０乃至ＢＦｎのブロック（Ｂｌｏｃｋ）は、１回の消去動作で消去される単位で区切られている。
【００２１】
図３は、論理ブロックの概念を示す図である。図１乃至図３に示すように、論理ブロックＬＢ０乃至ＬＢｍは、チャネル０乃至ｎのブロック構成から１ブロックずつ選択し、選択したブロックを一纏めにして扱うようにしたものである。なお、この実施形態において、ｍは４以上の自然数である。
【００２２】
例えば、論理ブロック０  ＬＢ０は、チャネル０のブロック０、チャネル１のブロック３、チャネル２のブロック７、チャネル３のブロック１、チャネルｎのブロック３等を一纏めにしたものである。論理ブロック１  ＬＢ１は、チャネル０のブロック２、チャネル１のブロック１、チャネル２のブロック４、チャネル３のブロック４、チャネルｎのブロック７等を一纏めにしたものである。
【００２３】
論理ブロック２  ＬＢ２は、チャネル０のブロック６、チャネル１のブロック０、チャネル２のブロック１、チャネル３のブロック０、チャネルｎのブロック１等を一纏めにしたものである。
【００２４】
論理ブロックｍ  ＬＢｍは、チャネル０のブロック７、チャネル１のブロック４、チャネル２のブロック０、チャネル３のブロック６、チャネルｎのブロック５等を一纏めにしたものである。
【００２５】
図４は、設定レジスタ群１５が有するＮｕｌｌブロック１９の概念を示す図である。設定レジスタ群１５は、上記識別情報が設定された論理ブロックを有するものである。Ｎｕｌｌブロック１９は、論理ブロックＬＢ０乃至ＬＢｍを構成するブロック群の中で疲弊等により書き込み（書き込みアクセス）を禁止しているブロックを示すためのフラグである。論理ブロック０乃至ｍ  ＬＢ０乃至ＬＢｍは各チャネル０乃至ｎから１ブロックずつ選択して構成されている。論理ブロック０乃至ｍ  ＬＢ０乃至ＬＢｍは、どのチャネルにＮｕｌｌブロックが存在するのかの情報があればよい。
【００２６】
このため、論理ブロック０乃至ｍ  ＬＢ０乃至ＬＢｍは、論理ブロック毎にチャネル数分のフラグがあれば良い。フラグでは、「０」がＮｕｌｌブロックでないことを示し、「１」がＮｕｌｌブロックであることを示すとする。すると、論理ブロック０、論理ブロック２及び論理ブロックｍのＮｕｌｌブロック情報ＢＩ０、ＢＩ２及びＢＩｍは、論理ブロックを構成する全てのブロックが有効であることを表し、言い換えると、全てのチャネル０乃至ｎの制御モジュールＣＭ０乃至ＣＭｎを書き込み動作の対象から外さないことを表すことになる。
【００２７】
一方、論理ブロック１のＮｕｌｌブロック情報ＢＩ１は、チャネル１及び３が無効であることを表し、言い換えると、チャネル１及び３の制御モジュールＣＭ１及びＣＭ３を書き込み動作の対象から外すことを表すことになる。また、論理ブロック３のＮｕｌｌブロック情報ＢＩ３は、チャネルｎが無効であることを表し、言い換えると、チャネルｎの制御モジュールＣＭｎを書き込み動作の対象から外すことを表すことになる。  
ＳＳＤ１０は、上記のように構成されている。
【００２８】
次に、ＳＳＤ１０によるデータ書き込み読み出し方法について説明する。ここでは、調停回路１６ｆは、論理ブロック１のＮｕｌｌブロック情報ＢＩ１に応じて上記第２グループのフラッシュメモリＦＭ１、ＦＭ３に接続された制御モジュールＣＭ１、ＣＭ３を書き込み動作の対象から外している。また、コマンド処理モジュール１３は、次に示す順番に沿ったデータの書き込み要求及び読み出し要求のコマンドに応じて処理するものである。
【００２９】
（１）書き込み要求
（２）チャネル１への読み出し要求
（３）書き込み要求
（４）チャネル３への読み出し要求
（５）書き込み要求
（６）チャネル０への読み出し要求
（７）チャネル０への読み出し要求
（８）チャネル１への読み出し要求
（９）チャネル３への読み出し要求
（１０）チャネル１への読み出し要求
ここで、上記（４）の要求は、上記（３）の要求に応答して書き込み動作が開始してから受けたものである。また、上記（６）の要求は、上記（５）の要求に応答して書き込み動作が開始してから受けたものである。
【００３０】
図５は、ＳＳＤ１０の書き込み動作及び読み出し動作を概略的に示すタイミングチャートであり、書き込み動作及び読み出し動作の時間軸上の割り当てを示す図である。図５に示すＷｒｉｔｅ  Ａ  Ｂにおいて、Ａは書き込み対象のチャネルの番号を表し、Ｂはそのチャネルでの書き込み回数をカウントした値に相当する。図５に示すＲｅａｄ  Ｃ  Ｄにおいて、Ｃは読み出し対象のチャネルの番号を表し、Ｄはそのチャネルでの読み出し回数をカウントした値に相当する。
【００３１】
図１及び図５に示すように、まず、（１）の書き込み要求により、Ｗｒｉｔｅ  ０  ０、Ｗｒｉｔｅ  ２  ０、及びＷｒｉｔｅ  ｎ  ０が実行される。この時、調停回路１６ｆではＮｕｌｌブロック１９の情報（Ｎｕｌｌブロック情報ＢＩ１）よりチャネル１及び３が無効になっていることを検知し、チャネル１及び３を読み出し動作に割り当てても良いと判断する。
【００３２】
調停回路１６ｆはチャネル１及び３を書き込み対象から除外し、制御モジュールＣＭ１、ＣＭ３に対して読み出し動作を行っても良いという指示を出す。これにより、（１）の書き込み要求実施中もチャネル１及び３では読み出し動作が可能となる。つまり、（２）のチャネル１への読み出し要求に対する応答は、（１）の書き込み要求に対する応答と並列に実行される。すなわち、Ｒｅａｄ  １  ０はＷｒｉｔｅ  ０  ０、Ｗｒｉｔｅ  ２  ０、及びＷｒｉｔｅ  ｎ  ０を実行中に完了することができる。（３）の書き込み動作は（１）の書き込み動作と同じく３つのチャネルで行われる（Ｗｒｉｔｅ  ０  １、Ｗｒｉｔｅ  ２  １、Ｗｒｉｔｅ  ｎ  １）。
【００３３】
（３）の書き込み動作が開始されてから要求された（４）の読み出し要求の処理であるＲｅａｄ  ３  ０は、書き込み動作の対象から除外されているチャネル３での処理であるので、書き込み動作により待たされること無く実行される。このため、Ｒｅａｄ  ３  ０は、Ｗｒｉｔｅ  ０  １、Ｗｒｉｔｅ  ２  １、及びＷｒｉｔｅ  ｎ  １を実行中に完了することができる。
【００３４】
次に（５）で要求された書き込みであるＷｒｉｔｅ  ０  ２、Ｗｒｉｔｅ  ２  ２、及びＷｒｉｔｅ  ｎ  ２が行われるが、ここでも、この際、（８）のチャネル１への読み出し要求であるＲｅａｄ  １  １と、（９）のチャネル３への読み出し要求であるＲｅａｄ  ３  １と、が書き込み動作と並列で実行可能となる。残りの（６）の読み出し要求、（７）の読み出し要求、及び（１０）の読み出し要求については、読み出しを行うチャネルが空いた時に実行される。
【００３５】
次に、ＳＳＤ１０の比較例によるデータ書き込み読み出し方法について説明する。ここでは、調停回路１６ｆは、論理ブロック１のＮｕｌｌブロック情報ＢＩ１に応じて上記第２グループのフラッシュメモリＦＭ１、ＦＭ３に接続された制御モジュールＣＭ１、ＣＭ３を書き込み動作の対象から外している。但し、調停回路１６ｆは、制御モジュールＣＭ０、ＣＭ２、ＣＭｎの書き込み動作に重なった期間に読み出し動作を行うよう、制御モジュールＣＭ１、ＣＭ３に指示していない。
【００３６】
図６は、ＳＳＤ１０の変形例の書き込み動作及び読み出し動作を概略的に示すタイミングチャートであり、書き込み動作及び読み出し動作の時間軸上の割り当てを示す図である。図６から分かるように、読み出し動作の期間と、書き込み動作の期間は、綺麗に分けられることになる。このため、比較例のＳＳＤでは、本実施の形態のＳＳＤ１０のように、データの書き込み及び読み出しを効率よく行うことができないものである。
【００３７】
以上のように構成されたＳＳＤ１０及びデータ書き込み読み出し方法によれば、ＳＳＤ１０は、コマンド処理モジュール１３と、フラッシュメモリＦＭ０乃至ＦＭｎと、制御モジュールＣＭ０乃至ＣＭｎと、調停回路１６ｆと、設定レジスタ群１５とを備えている。調停回路１６ｆは、設定レジスタ群１５の識別情報に応じて上記第２グループのフラッシュメモリに接続された全ての制御モジュールを書き込み動作の対象から外している。調停回路１６ｆは、上記第１グループのフラッシュメモリに接続された制御モジュールの書き込み動作に重なった期間に読み出し動作を行うよう、第２グループのフラッシュメモリに接続された制御モジュールに指示することができる。
【００３８】
書き込みを行う期間に重ねて、読み出しを行うことができるため、データの書き込み及び読み出しの効率を向上することができる。そして、ＳＳＤ１０の全体的なパフォーマンスの向上を図ることができる。  
上記のことから、データの書き込み及び読み出し効率に優れたＳＳＤ１０及びデータ書き込み読み出し方法を得ることができる。
【００３９】
なお、この発明は上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化可能である。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【００４０】
例えば、ＳＳＤ１０は、ホストインターフェース１２及びマイクロプロセッサ１４を備えていなくともよい。この場合、ホストインターフェース１２及びマイクロプロセッサ１４は、ＳＳＤ１０に外付けすることができる。
【００４１】
フラッシュメモリＦＭ０乃至ＦＭｎは、一体に形成されていてもよく、互いに独立して形成されていてもよい。また、制御モジュールＣＭ０乃至ＣＭｎも、一体に形成されていてもよく、互いに独立して形成されていてもよい。
【００４２】
書き込み期間に重ねて、読み出しを行う際、読み出し期間は、書き込み期間に少しでも重なっていればよい。  
設定レジスタ群１５には、上記識別情報以外の情報が設定されていてもよい。このため、設定レジスタ群１５は、Ｎｕｌｌブロック１９以外の各種ブロック（各種情報）を備えていていてもよい。  
この発明の半導体記憶装置は、上記ＳＳＤ１０に限定されるものではなく、種々変形可能であり、各種の半導体記憶装置に適用することが可能である。
【符号の説明】
【００４３】
１０…ＳＳＤ、１３…コマンド処理モジュール、１５…設定レジスタ群、ＣＭ０乃至ＣＭｎ…制御モジュール、１６ｆ…調停回路、ＦＭ０乃至ＦＭｎ…フラッシュメモリ、１９…Ｎｕｌｌブロック。
【図１】
2012014433.tif 000003
【図２】
2012014433.tif 000004
【図３】
2012014433.tif 000005
【図４】
2012014433.tif 000006
【図５】
2012014433.tif 000007
【図６】
2012014433.tif 000008