(57)【要約】【課題】予め設定されたデータ長と異なるデータ長を送信してくる外部システムとの間でも支障のないデータの授受を行うことができる半導体記憶装置を提供する。【解決手段】半導体記憶装置は、データを記憶するメモリ部２１と、ホストデバイスから供給された論理アドレスをメモリ部２１の物理アドレスに変換する機能を有し、メモリ部２１の読み出し及び書き込みを制御するメモリコントローラ２２とを備える。メモリコントローラ２２は、外部装置からアクセスされるデータの長さが予め規定された所定のデータ長よりも短い場合、内部でデータ長を整合させてメモリ部２１と外部装置との間のデータの授受を行う。【選択図】図１１
2009163652.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶するメモリ部と、
ホストデバイスから供給された論理アドレスを前記メモリ部の物理アドレスに変換する機能を有し、前記メモリ部の読み出し及び書き込みを制御するメモリコントローラと、
を備え、
前記メモリコントローラは、外部装置からアクセスされるデータの長さが予め規定された所定のデータ長よりも短い場合、内部でデータ長を整合させて前記メモリ部と前記外部装置との間のデータの授受を行う
ことを特徴とする半導体記憶装置。
【請求項２】
前記メモリコントローラは、書き込みデータとして入力したデータの長さが予め設定された所定のデータ長よりも短い場合、不足分のデータを前記入力したデータに付加して所定のデータ処理を実行する
ことを特徴とする半導体記憶装置。
【請求項３】
前記メモリコントローラは、書き込みコマンドを入力してから次のコマンドが入力されるまでの間に入力されたデータの長さが前記所定の長さと等しいかどうかを確認し、前記入力されたデータの長さが所定の長さと等しい場合には前記所定のデータ処理を実行し、前記入力されたデータの長さが所定の長さよりも短い場合には前記入力されたデータに不足分データを付加した後に前記所定の処理を実行する
ことを特徴とする請求項１記載の半導体記憶装置。
【請求項４】
前記所定の長さのデータは、データ本体と冗長データとにより構成され、
前記メモリコントローラは、前記入力されたデータが前記データ本体のみからなる場合、前記データ本体から前記冗長データを生成して前記データ本体に付加する
ことを特徴とする請求項１又は２記載の半導体記憶装置。
【請求項５】
前記メモリコントローラは、外部からのコマンドによって前記データの長さを含むフォーマットを設定することを特徴とする請求項１記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データを記憶するメモリ部と、その読み出し／書き込み制御を行うメモリコントローラとを備えた半導体記憶装置に関する。
【背景技術】
【０００２】
電気的書き換え可能な不揮発性半導体メモリ（ＥＥＰＲＯＭ）の一つとして、ＮＡＮＤ型フラッシュメモリが知られている。ＮＡＮＤ型フラッシュメモリは、単位セル面積がＮＯＲ型に比べて小さく、大容量化が容易である。また、セル単位での読み出し／書き込み速度は、ＮＯＲ型に比べると遅いが、セルアレイとページバッファとの間で同時に読み出し／書き込みが行われるセル範囲（物理的ページ長）を大きくすることで、実質的に高速の読み出し／書き込みが可能である。
【０００３】
このような特長を活かして、ＮＡＮＤ型フラッシュメモリは、ファイルメモリやメモリカードをはじめとする各種記録メディアとして使用されている。
【０００４】
メモリカード等においては、不揮発性メモリとメモリコントローラとをパッケージして、ホストから供給されるコマンドと論理アドレスにより、不揮発性メモリの読み出し／書き込みを制御することが行われる。例えば、ホストから論理アドレスとセクタ数を与えることにより、複数セクタのデータ読み出しを行うことも提案されている（特許文献１参照）。
【０００５】
しかし、従来のこの種のＮＡＮＤ型フラッシュメモリでは、予め受入可能なデータ長を、例えば１６Ｂｙｔｅの冗長データを含む５２８Ｂｙｔｅか、又は冗長データを含まない５１２Ｂｙｔｅに固定する必要があり、設定されたデータ長と異なるデータ長のデータを送信してくるシステムとの間では、データ長の設定をし直さない限り受入不可能であるという問題があった。
【特許文献１】特開２００６−１５５３３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
この発明は、予め設定されたデータ長と異なるデータ長を送信してくる外部システムとの間でも支障のないデータの授受を行うことができる半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
この発明の一態様による半導体記憶装置は、データを記憶するメモリ部と、ホストデバイスから供給された論理アドレスを前記メモリ部の物理アドレスに変換する機能を有し、前記メモリ部の読み出し及び書き込みを制御するメモリコントローラとを備え、前記メモリコントローラは、外部装置からアクセスされるデータの長さが予め規定された所定のデータ長よりも短い場合、内部でデータ長を整合させて前記メモリ部と前記外部装置との間のデータの授受を行うことを特徴とする。
【発明の効果】
【０００８】
この発明によれば、予め設定されたデータ長と異なるデータ長を送信してくる外部システムとの間でも支障のないデータの授受を行うことができる。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照して、この発明の実施の形態を説明する。
【００１０】
［半導体メモリの構成］
図１は、本実施の形態に係る半導体メモリを示すブロック図である。
【００１１】
この実施の形態の半導体メモリは、例えば一つ或いは複数個のＮＡＮＤフラッシュメモリ２１と、その読み出し／書き込みを制御するメモリコントローラ２２とにより一体にパッケージ化されたメモリモジュールを構成する。搭載される全てのフラッシュメモリ２１は、一つのメモリコントローラ２２で論理メモリとしてコントロールされるので、以下これを、論理ブロックアドレス（Ｌｏｇｉｃ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）ＮＡＮＤフラッシュメモリ（以下、ＬＢＡ−ＮＡＮＤメモリと略称する）という。
【００１２】
ＬＢＡ−ＮＡＮＤメモリ２０に搭載されるＮＡＮＤフラッシュメモリ２１は、１又は複数のメモリチップから構成されている。図１では二つのメモリチップｃｈｉｐ１，ｃｈｉｐ２を示しているが、その場合も一つのメモリコントローラ２２で制御される。最大搭載メモリチップ数は、レギュレータの電流能力や他のファクタとの関係で決まるが、例えば４チップとする。
【００１３】
メモリコントローラ２２は、フラッシュメモリ２１との間でデータ転送を行うためのＮＡＮＤフラッシュインタフェース２３、ホストデバイスとの間でデータ転送を行うためのホストインタフェース２５、読み出し／書き込みデータ等を一時保持するバッファＲＡＭ２６、データ転送制御を行うＭＰＵ２４、ＮＡＮＤフラッシュメモリ２１内のファームウェア（ＦＷ）の読み出し／書き込みのシーケンス制御等に用いられるハードウェアシーケンサ２７を有する１チップコントローラである。
【００１４】
なお、ＮＡＮＤフラッシュメモリ２１とメモリコントローラ２２とが１チップであるか別チップであるかは、このＬＢＡ−ＮＡＮＤメモリ２０にとって本質的ではない。
【００１５】
図２は、図１のＮＡＮＤフラッシュメモリ２１のメモリコア部のセルアレイ構成を示している。
【００１６】
メモリセルアレイ１は、複数の電気的書き換え可能な不揮発性メモリセル（図の例では３２個のメモリセル）Ｍ０−Ｍ３１が直列接続され、その両端に選択ゲートトランジスタＳ１，Ｓ２がそれぞれ接続されたＮＡＮＤセルユニット（ＮＡＮＤストリング）ＮＵを配列して構成される。
【００１７】
ＮＡＮＤセルユニットＮＵの選択ゲートトランジスタＳ１側の端部はビット線ＢＬｏ，ＢＬｅに、選択ゲートトランジスタＳ２側の端部は共通ソース線ＣＥＬＳＲＣにそれぞれ接続される。メモリセルＭ０−Ｍ３１の制御ゲートはそれぞれワード線ＷＬ０−ＷＬ３１に接続され、選択ゲートトランジスタＳ１，Ｓ２のゲートは選択ゲート線ＳＧＤ，ＳＧＳに接続される。
【００１８】
ワード線方向に配列されるＮＡＮＤセルユニットの集合が、データ消去の最小単位となるブロックを構成し、図示のようにビット線の方向に複数のブロックＢＬＫ０−ＢＬＫｎ−１が配置される。
【００１９】
ビット線ＢＬｅ，ＢＬｏの一端側に、セルデータの読み出し及び書き込みに供させるセンスアンプ回路３が配置され、ワード線の一端側にワード線及び選択ゲート線の選択駆動を行うロウデコーダ２が配置される。図では、隣接する偶数番ビット線ＢＬｅと奇数番ビット線ＢＬｏがビット線選択回路により選択的にセンスアンプ回路３の各センスアンプＳＡに接続される場合を示している。
【００２０】
以上のように構成されたＬＢＡ−ＮＡＮＤメモリ２０において、コマンド、アドレス（論理アドレス又は物理アドレス）及びデータ、並びにチップ・イネーブル信号／ＣＥ、書き込みイネーブル信号／ＷＥ、読み出しイネーブル信号／ＲＥ、レディ／ビジー信号ＲＹ／ＢＹ等の外部制御信号は、ホストＩ／Ｆ２５に入力される。ホストＩ／Ｆ２５では、コマンドや制御信号を、ＭＰＵ２４及びハードウェアシーケンサ２７に振り分けると共に、アドレス及びデータをバッファＲＡＭ２６に格納する。
【００２１】
外部から入力された論理アドレスは、ＮＡＮＤフラッシュＩ／Ｆ２３で、ＮＡＮＤフラッシュメモリ２１の物理アドレスに変換される。また、各種制御信号に基づくハードウェアシーケンサ２７の制御の下、データの転送制御及び書き込み／消去／読み出しのシーケンス制御が実行される。変換された物理アドレスは、ＮＡＮＤフラッシュメモリ２１内のアドレスレジスタを介して、ロウデコーダ２やカラムデコーダ（図示せず）に転送される。書き込みデータは、Ｉ／Ｏ制御回路等を介してセンスアンプ回路３にロードされ、読み出しデータはＩ／Ｏ制御回路等を介して、外部に出力される。
【００２２】
［メモリ領域］
図３は、この実施の形態のＬＢＡ−ＮＡＮＤメモリのメモリ領域の詳細を示す図である。
【００２３】
本実施形態のＬＢＡ−ＮＡＮＤメモリ２０は、コマンドによりアクセスの切り換えが可能な複数のデータ領域（論理ブロックアクセス領域）を持つ。具体的にこの実施の形態では、用途とデータの信頼性により分けられる２つ又は３つのデータ記憶領域がある。
【００２４】
図３（ａ）に示すスタンダードオペレーションモードでは、それぞれが特性の異なる情報を記憶する２つのデータ記憶領域を有する。１つはＳＬＣ（Single Level Cell）を用いた２値データ記憶領域ＳＤＡ（SLC Data Area）であり、もう一つはＭＬＣ（Multi Level Cell）を用いた多値データ記憶領域ＭＤＡ（MLC Data Area）である。２値データ記憶領域ＳＤＡは、ファイルシステム又はネットワーク通信のログデータ等を記憶するのに適し、多値データ記憶領域ＭＤＡは、音楽、画像、各種アプリケーション等を記憶するのに適している。
【００２５】
図３（ｂ）に示すオプショナルパワーオンモードでは、上記特性の異なる情報を記憶する２つのデータ記憶領域ＳＤＡ，ＭＤＡに加えて、ブートコードを記憶するブートコードブロックがメモリ領域の先頭に設けられる。
【００２６】
これら２つのモードにおいて、２値データ記憶領域ＳＤＡと多値データ記憶領域ＭＤＡの境界は、コマンドの指示によって任意に変更可能となっている。例えば、ＭＬＣ（４値）をＳＬＣ（２値）としても使用可能なメモリセルアレイを用い、メモリ領域全てをＭＬＣとして使用した場合の記憶容量が４ＧＢであるメモリにおいて、図４に示すように、２値データ記憶領域ＳＤＡの記憶容量を、０ＭＢ，５０ＭＢ，５００ＭＢ及び１ＧＢにそれぞれ設定した場合、多値データ記憶領域ＭＤＡの記憶容量は、それぞれ４ＧＢ，３．９ＧＢ，３ＧＢ及び２ＧＢになる。
【００２７】
図５は、２値データ記憶領域ＳＤＡのセットアップのタイミングチャートである。
【００２８】
ここで、ＣＬＥはコマンド・ラッチ・イネーブル、ＣＥはチップ・イネーブル、ＷＥはライト・イネーブル、ＡＬＥはアドレス・ラッチ・イネーブル、ＲＥはリード・イネーブル、ＲＹ／ＢＹはＲｅａｄｙ／Ｂｕｓｙの各制御信号を示している。コマンド入力のタイミングで、リードＳＤＡコマンド“００ｈ”を読み込み、続いてアドレス・ラッチの５サイクルで、セットＳＤＡコマンド“Ａ５ｈ”及びアロケーション・ユニット１ｓｔ，２ｎｄ，３ｒｄ，４ｔｈを順次入力する。アロケーション・ユニットは、例えば図６に示すように、２値データ記憶領域ＳＤＡの境界位置を指定する。これにより、メモリコントローラ２２に、ＳＤＡとＭＤＡとの境界エリアが設定されるので、以後の論理アドレスと物理アドレスの変換処理は、設定された境界エリアに基づいて実行される。
【００２９】
図７は、２値データ記憶領域ＳＤＡのサイズ確認のタイミングチャートである。
【００３０】
コマンド入力のタイミングで、リードＳＤＡコマンド“００ｈ”を読み込み、続いてアドレス・ラッチの５サイクルで、ゲットＳＤＡユニットコマンド“Ｂ５ｈ”及び４バイトのダミーデータを順次入力する。これにより、ＳＤＡの境界エリアがコントローラ２２から読み出される。
【００３１】
図８は、多値データ記憶領域ＭＤＡのサイズ確認のタイミングチャートである。
【００３２】
コマンド入力のタイミングで、リードＳＤＡコマンド“００ｈ”を読み込み、続いてアドレス・ラッチの５サイクルで、ゲットＭＤＡユニットコマンド“Ｂ０ｈ”及び４バイトのダミーデータを順次入力する。これにより、ＭＤＡの境界エリアがコントローラ２２から読み出される。
【００３３】
［リード／ライト動作］
論理アドレスは、ハードディスクに対するアクセスと同様、セクタアドレスとセクタ数によって与えられる。論理アドレスから物理アドレスへは、メモリコントローラ２２によって変換される。図９には、リード／ライト時のシーケンスが示されている。
【００３４】
リード時には、図９（ａ）に示すように、まず、リードＳＤＡコマンド “００ｈ”かリードＭＤＡコマンド“０Ａｈ”を与える。“００ｈ”は２値データ記憶領域ＳＤＡへのリードであることを示し、“０Ａｈ”は多値データ記憶領域ＭＤＡへのリードであることを示している。続いて、５サイクルをかけて、セクタ数（下位８ビット）、セクタ数（上位８ビット）、セクタアドレス（下位８ビット）、セクタアドレス（中間８ビット）及びセクタアドレス（上位８ビット）の順にアドレスを入力する。次に、読み出しコマンドであることを示すコード“３０ｈ”を入力する。これにより、メモリコントローラ２２が論理アドレスを物理アドレスに変換し、変換された物理アドレスがＮＡＮＤフラッシュメモリ２１内のアドレスレジスタに格納されてロウデコーダ２及びカラムデコーダ（図示せず)によってメモリセルアレイ１がアクセスされ、指定されたデータが読み出される。以後は、同様にリードコマンド“０ｘｈ”が入力されるが、アドレスとしてセクタアドレスとセクタ数を与えているので、以後のアクセスは、指定されたセクタ数が全て読み出されるまでメモリコントローラ２２でアドレスを連続的に更新すればよい。このため、図９（ａ）のリードシーケンスでは、以後のアドレス指定のサイクルにダミーのアドレスを与えて、内部で生成された物理アドレスでアクセスを行うようにしている。なお、このように２回目以降のアクセスにダミーアドレス及び読み出しコマンド“３０ｈ”を与える代わりに、継続コマンド“Ｆ８ｈ”を与え、この継続コマンドによってアドレスの更新及び読み出しコマンドの発生を行うようにしても良い。
【００３５】
ライト時には、図９（ｂ）に示すように、まず、オート・プログラム・コマンドとして“８０ｈ”か“８Ａｈ”を与える。“８０ｈ”は２値データ記憶領域ＳＤＡへのライトであることを示し、“８Ａｈ”は多値データ記憶領域ＭＤＡへのライトであることを示している。続いて、５サイクルをかけて、セクタ数（下位８ビット）、セクタ数（上位８ビット）、セクタアドレス（下位８ビット）、セクタアドレス（中間８ビット）及びセクタアドレス（上位８ビット）の順にアドレスを入力する。続いて書き込みデータを入力した後、書き込みコマンドであることを示すコード“１０ｈ”を入力する。これにより、メモリコントローラ２２が論理アドレスを物理アドレスに変換し、変換された物理アドレスによってメモリセルアレイ１にデータが書き込まれる。
【００３６】
［データ構造］
図１０は、本実施形態のＬＢＡ−ＮＡＮＤメモリで使用されるデータの構造を示している。
【００３７】
２値データ記憶領域ＳＤＡ及び多値データ記憶領域ＭＤＡ共に、セクタ・マルチプルが１（ＳＭ＝１）の場合、読み出し及び書き込みとも、図示のデータフォーマットの５１２Ｂｙｔｅ（データ本体）と、１６Ｂｙｔｅ（冗長データ）の計５２８Ｂｙｔｅを転送単位とする。
【００３８】
読み出しデータの１６Ｂｙｔｅの冗長データのフォーマットは、ホストシステムからのコンフィグレーション・コマンドによって幾つかのフォーマットタイプの中から選択することができる。例えば、Type aをスマート・メディア・フォーマットとし、Type bをＥＣＣのPass/Fail結果出力とし、Type cをAll １データとし、これらの中から一つをコマンドによって選択可能にすることができる。これらの冗長データは、読み出し時にＬＢＡ−ＮＡＮＤメモリ２０内のメモリコントローラ２２内で生成されて読み出される。
【００３９】
書き込みデータについては、１６Ｂｙｔｅの冗長データがダミーデータとなる。転送された５２８Ｂｙｔｅのデータのうち、ＮＡＮＤ型フラッシュフラッシュメモリ２１に格納されるのは、５１２Ｂｙｔｅである。ＬＢＡ−ＮＡＮＤメモリ２２内では転送されたデータのうち、拡張１６バイトを削除し、内部で書き込みデータに合わせたＥＣＣコードを生成して、これが書き込みデータと共にフラッシュメモリ２２に記憶される。
【００４０】
なお、ＥＣＣデータは、ＬＢＡ−ＮＡＮＤメモリ２０内のメモリコントローラ２２が生成する。ＥＣＣデータで転送されたデータの正しさの確認は、読み出し時にＬＢＡ−ＮＡＮＤメモリ２０内のメモリコントローラ２２が行なう。
【００４１】
１６Ｂｙｔｅの冗長データを省いた５１２Ｂｙｔｅを転送単位とする読み出し／書き込みもできる。これらは、データ構成の変更、切り換えを指示するためのコンフィグレーション・コマンドによる切り換えは不要である。
【００４２】
セクタ・マルチプルＳＭ＝４とすることにより、データ転送単位を２１１２Ｂｙｔｅとすることができる。これは、ＳＭ＝１のデータフォーマットを４回繰り返すことになる。Type２とType３とは、１６Ｂｙｔｅの冗長データが５２８Ｂｙｔｅの各データ転送単位内に記録されているか、６４Ｂｙｔｅ分最後にまとめて記録されているかの違いである。
【００４３】
［異なるデータ構造がアクセスされた場合の処理］
上述したように、データ構造は、ホストシステムから与えられるコンフィグレーション・コマンドによって設定できる。本実施形態では、データ構造を、予め１６Ｂｙｔｅの冗長データを含む５２８Ｂｙｔｅに設定し、外部のホストシステムから、これよりも短いデータ、例えば５１２Ｂｙｔｅのデータ本体部のみが送信されてきた場合でも対応可能とするように、メモリコントローラ２２の内部での処理を次のように行っている。
【００４４】
図１１は、データの書き込み時のメモリコントローラ２２の内部の処理を示すフローチャートである。まず、書き込みコマンド（８ｘｈ）を受信したら（Ｓ１）、データを入力し（Ｓ２）、次のコマンド（１０ｈ）を入力したら（Ｓ３）、受信したデータの長さを確認する（Ｓ４）。受信したデータが５２８Ｂｙｔｅであれば、予め設定されたデータの長さと等しいため、受信したデータのＮＡＮＤフラッシュメモリ２１への書き込み処理を実行するが（Ｓ６）、もし、受信したデータが５１２Ｂｙｔｅのように、データ本体のみであった場合には、不足データ分を内部で生成してデータ本体に付加し（Ｓ５）、その後、書き込み処理を実行する（Ｓ６）。なお、不足データ分は、例えば５１２Ｂｙｔｅのデータ本体から周知の誤り訂正符号生成処理によって生成される１６Ｂｙｔｅの冗長データである。
【００４５】
一方、データ読み出し時には、メモリコントローラ２２内で生成された冗長ビットを出力時に廃棄するか、ホストシステム側でＬＢＡ−ＮＡＮＤメモリ２０から読み出された冗長データを無視すれば良い。
【００４６】
このような処理を実行することにより、メモリコントローラ２２の内部で設定されたデータ長よりも短いデータでホストシステムとアクセスする場合でも、外部コマンドによってデータ構造を変更することなく、支障のない処理を続行できるという利点がある。
【００４７】
なお、本発明は上述した実施形態に限定されるものではない。例えば、上記実施形態では、フラッシュメモリとしてＮＡＮＤ型を使用しているが、ＮＯＲ型他の形式のメモリを用いても良い。
【図面の簡単な説明】
【００４８】
【図１】この発明の一実施の形態によるＬＢＡ−ＮＡＮＤメモリシステム構成を示す図である。
【図２】同ＬＢＡ−ＮＡＮＤメモリのメモリセルアレイ構成を示す図である。
【図３】同ＬＢＡ−ＮＡＮＤメモリのデータ記憶領域を示す図である。
【図４】同ＬＢＡ−ＮＡＮＤメモリの各種データ記憶量の例を示す図である。
【図５】同ＬＢＡ−ＮＡＮＤメモリの２値データ記憶領域ＳＤＡのセットアップ手順を示すタイミングチャートである。
【図６】同ＬＢＡ−ＮＡＮＤメモリのデータ記憶領域設定例を示す図である。
【図７】同ＬＢＡ−ＮＡＮＤメモリの２値データ記憶領域確認手順を示すタイミングチャートである。
【図８】同ＬＢＡ−ＮＡＮＤメモリの多値データ記憶領域確認手順を示すタイミングチャートである。
【図９】同ＬＢＡ−ＮＡＮＤメモリのリード・ライトシーケンスを示す図である。
【図１０】同ＬＢＡ−ＮＡＮＤメモリで使用されるデータフォーマットを示す図である。
【図１１】データの書き込み時のメモリコントローラの内部の処理を示すフローチャートである。
【符号の説明】
【００４９】
１…メモリセルアレイ、２…ロウデコーダ、３…センスアンプ回路、２０…ＬＢＡ−ＮＡＮＤメモリ、２１…ＮＡＮＤフラッシュメモリ、２２…メモリコントローラ、２３…ＮＡＮＤフラッシュインタフェース、２４…ＭＰＵ、２５…ホストインタフェース、２６…バッファＲＡＭ、２７…ハードウェアシーケンサ。
【図１】
2009163652.tif 000003
【図２】
2009163652.tif 000004
【図３】
2009163652.tif 000005
【図４】
2009163652.tif 000006
【図５】
2009163652.tif 000007
【図６】
2009163652.tif 000008
【図７】
2009163652.tif 000009
【図８】
2009163652.tif 000010
【図９】
2009163652.tif 000011
【図１０】
2009163652.tif 000012
【図１１】
2009163652.tif 000013