(57)【要約】【課題】簡単な構成で高信頼性を実現した半導体不揮発性メモリを用いた記憶装置を提供する。【解決手段】複数のＮＡＮＤ型フラッシュメモリと、これらのフラッシュメモリに対してアクセスを行うコントローラと有する。上記複数のフラッシュメモリは、パラレルに入出力される記憶データを分担して受け持つ２以上のフラッシュメモリと、水平パリティビットを受け持つフラッシュメモリと、垂直パリティビットを受け持つフラッシュメモリとを有する。上記コントローラは、上記水平パリティビットを生成する第１パリティ生成器と、上記垂直パリティビットを生成する第２パリティ生成器と、上記水平パリティビットを用いる水平方向誤りビット特定部と、上記垂直パリティビットを用いる垂直方向誤りビット特定部と、上記水平／垂直方向誤りビット特定部からの信号により上記記憶データの訂正を行うビット訂正部とを有する。【選択図】図１
2010020648.tif 000002
【特許請求の範囲】
【請求項１】
複数の半導体不揮発性メモリと、
上記複数の半導体不揮発性メモリに対してアクセスを行うコントローラと有し、
上記複数の半導体不揮発性メモリは、
パラレルに入出力される記憶データを分担して受け持つ２以上の半導体不揮発性メモリと、
上記記憶データに対応した水平パリティビットを受け持つ半導体不揮発性メモリと、
上記個々の半導体不揮発性メモリに記憶される記憶データに対応した垂直パリティビットを受け持つ半導体不揮発性メモリとを有し、
上記コントローラは、
上記水平パリティビットを生成する第１パリティ生成器と、
上記垂直パリティビットを生成する第２パリティ生成器と、
上記水平パリティビットを用いる水平方向誤りビット特定部と、
上記垂直パリティビットを用いる垂直方向誤りビット特定部と、
上記水平方向及び垂直方向誤りビット特定部からの信号により上記記憶データの誤りビット訂正を行うビット訂正部とを有する、
記憶装置。
【請求項２】
請求項１において、
上記記憶データを分担して受け持つ２以上の半導体不揮発性メモリと上記水平パリティビットを受け持つ半導体不揮発性メモリは、上記分担する記憶データと上記水平パリティビットとをＲＡＩＤ５又はＲＡＩＤ６に従って分散記録する、
記憶装置。
【請求項３】
請求項２において、
上記半導体不揮発性メモリは、データ領域とそれに対応した管理領域を有し、
管理領域は、それに対応したデータ領域に対するメモリアクセスの無効が記録され、
上記メモリアクセスの無効が記録されないデータ領域及び管理領域において、かかるデータ領域には上記分担記憶データと水平パリティビットが記憶され、管理領域に上記垂直パリティビットが記憶される、
記憶装置。
【請求項４】
請求項３において、
上記半導体不揮発性メモリは、ＮＡＮＤ型フラッシュメモリチップが１ないし複数個から構成される、
記憶装置。
【請求項５】
請求項４において、
上記複数のＮＡＮＤ型フラッシュメモリ及びコントローラは、１インチ〜３．５インチのハードディスクドライブ装置に対応された外型サイズ及びコネクタピンを備えたパッケージに搭載され、
上記１インチ〜３．５インチのハードディスクドライブ装置との互換性を持つ、
記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、記憶装置に関し、ＮＡＮＤ型フラッシュメモリを用いて構成され、例えばＨＤＤ置き換え可能な記憶装置に利用して有効な技術に関するものである。
【背景技術】
【０００２】
特開平５−２９６３４４号公報においては、フラッシュメモリとＥＣＣ回路を有する半導体ディスク装置が開示されている。特開２００６−２８５５２７号公報には、ＲＡＩＤ(Redundant Arrays of Inexpensive(or Independent) Disks; レイド) ５の論理ドライブを採用したストレージ装置が開示されている。
【特許文献１】特開平５−２９６３４４号公報
【特許文献２】特開２００６−２８５５２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ＮＡＮＤ型フラッシュメモリは、エラービットの発生が他のメモリデバイスに比べて比較的多く、それを許容することを前提とするデバイスでもある。データの書き換え及び消去を繰り返していくうちにメモリセルのデータ記憶特性が劣化し、リード時に正常データがリードできなくなることがある。そのために、記憶媒体に半導体不揮発性メモリを使用したＳＳＤ（Solid State Drive)を構成する場合、誤り検出・訂正回路が必須となる。誤り検出・訂正回路は、前記特許文献１のようにＥＣＣ回路を用いるのが一般的である。誤り検出・訂正を行う場合、ハミング符号／リード・ソロモン符号／ＢＣＨ符号などの符号化、複合化を行う。しかしながら、上記ＳＳＤに向けて、多ビットの誤り検出・訂正を行う場合、演算回路のコストが大きくなり、動作速度も遅くなるという問題が生じる。
【０００４】
この発明の目的は、簡単な構成で高信頼性を実現した半導体不揮発性メモリを用いた記憶装置を提供することにある。ここの発明の前記ならびにそのほかの目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００５】
本願において開示される１つの実施例は、以下の通りである。複数のＮＡＮＤ型フラッシュメモリと、上記複数のＮＡＮＤ型フラッシュメモリに対してアクセスを行うコントローラと有する。上記複数のＮＡＮＤ型フラッシュメモリは、パラレルに入出力される記憶データを分担して受け持つ２以上のＮＡＮＤ型フラッシュメモリと、上記記憶データに対応した水平パリティビットを受け持つＮＡＮＤ型フラッシュメモリと、上記個々のＮＡＮＤ型フラッシュメモリに記憶される記憶データに対応した垂直パリティビットを受け持つＮＡＮＤ型フラッシュメモリとを有する。上記コントローラは、上記水平パリティビットを生成する第１パリティ生成器と、上記垂直パリティビットを生成する第２パリティ生成器と、上記水平パリティビットを用いる水平方向誤りビット特定部と、上記垂直パリティビットを用いる垂直方向誤りビット特定部と、上記水平方向及び垂直方向誤りビット特定部からの信号により上記記憶データの誤りビット訂正を行うビット訂正部とを有する。
【発明の効果】
【０００６】
ＲＡＩＤ５又はＲＡＩＤ６の応用によりＮＡＮＤ型フラッシュメモリのような不揮発性メモリを用いた信頼性の高いシステムを構成することができる。
【発明を実施するための最良の形態】
【０００７】
図１には、この発明に係る記憶装置（ＳＳＤ；Solid State Drive)の一実施例の概略構成図が示されている。この実施例では、１６ビットの単位でパラレルに記憶データの入出力を行う記憶装置に向けられている。メモリチップ５Ａないし５Ｃは、ＮＡＮＤ型フラッシュメモリのような不揮発性メモリチップで構成されて、それぞれが８ビット単位での記憶データの入出力が行われる。このようなメモリチップを用いたＳＳＤにおいて、上記メモリチップ５Ａないし５Ｃを、前記特許文献３のようなＨＤＤのようなストレージと見立ててＲＡＩＤ５の技術を応用してデータ及びパリティビットを分散格納する。
【０００８】
図１においては、データバス１の１６ビットからなる記憶データとそれに対応した水平パリティビットをＮＡＮＤ型フラッシュメモリ５Ａないし５Ｃにそれぞれ格納する例が示されている。１番目の１６ビットからなる記憶データの下位８ビット（Ｂ０〜Ｂ７）は、記憶データ及び水平パリティビットを分散格納するために用いられるマルチプレクサ６及びバッファ４Ａを介してメモリチップ５Ａに供給される。上記記憶データの上位８ビット（Ｂ８〜Ｂ１５）は、上記マルチプレクサ６及びバッファ４Ｂを介してメモリチップ５Ｂに供給される。その際、メモリチップ５Ａと５Ｂに格納する８ビット（Ｂ０〜Ｂ７とＢ８〜Ｂ１５）の各対応するビットについての水平パリティビット（Ｂ０〜Ｂ７）をパリティ生成器２で生成し、上記マルチプレクサ６を介してメモリチップ５Ｃに格納する。パリティ生成器２は、例えば排他的論理和回路から構成され、対応するビットＢ０又はＢ８のうち一方が論理１ならパリティビットを論理１とし、ビットＢ０又はＢ８が共に論理０又は論理１のときはパリティビットを論理０とする偶数パリティを生成する。他のビットＢ１〜Ｂ７とＢ９〜Ｂ１５のそれぞれについても同様である。
【０００９】
データバス１の１６ビットからなる２番目の記憶データと水平パリティビットは、上記マルチプレクサ６を介して上記記憶データの下位ビット（Ｂ０〜Ｂ７）にいては上記メモリチップ５Ａから５Ｂに、上記記憶データの上位ビット（Ｂ８〜Ｂ１５）については上記メモリチップ５Ｂから５Ｃに、及びパリティビット（Ｂ０〜Ｂ７）については上記メモリチップ５Ｃから５Ａに切り替えて分散記憶させる。
【００１０】
データバス１の１６ビットからなる３番目の記憶データと水平パリティビットは、上記マルチプレクサ６を介して上記記憶データの下位ビット（Ｂ０〜Ｂ７）にいては１つ前（２番目）の上記メモリチップ５Ｂから５Ｃに、上記記憶データの上位ビット（Ｂ８〜Ｂ１５）については上記１つ前の上記メモリチップ５Ｃから５Ａに、及びパリティビット（Ｂ０〜Ｂ７）については上記メモリチップ５Ａから５Ｂに切り替えて分散記憶させる。
【００１１】
パリティ生成器３は、各メモリチップ５Ａ〜５Ｃに格納する複数ビットに対する垂直パリティを生成する。ここで生成された垂直パリティビットは、特に制限されないが、同じメモリチップ５Ａ〜５Ｃ管理領域に格納させる。あるいは、独立したメモリチップを追加して、上記垂直パリティビットを記憶させるようにしてもよい。
【００１２】
図２には、記憶データとパリティビットのメモリチップへの格納方法の説明図が示されている。この実施例のメモリチップ５Ａ〜５Ｃは、特に制限されないが、ＮＡＮＤ型フラッシュメモリの小ブロック品であり、５１２バイトのデータ領域７と、それに続く１６バイトの管理領域８を１つのページとして扱う。ＮＡＮＤ型フラッシュメモリの大ブロック品は、上記構成の小ブロック品に比べ、それぞれの領域のバイト数が違うのみであるため同様の方法が適用できる。
【００１３】
図１で説明した、１番目の記憶データの格納は、データバス１の下位８ビット（Ｂ０〜Ｂ７）がメモリチップ５Ａの０バイト目（Ｂ０〜Ｂ７）１１に、上位８ビット（Ｂ８〜Ｂ１５）がメモリチップ５Ｂの０バイト目（Ｂ０〜Ｂ７）１２に、パリティビットはメモリチップ５Ｃの０バイト目（Ｂ０〜Ｂ７）１３に格納される。
【００１４】
この実施例では、パリティビットを分散させるため、２番目の記憶データの格納は、データバス１の下位８ビット（Ｂ０〜Ｂ７）がメモリチップ５Ｂの１バイト目（Ｂ０〜Ｂ７）１５に、上位８ビット（Ｂ８〜Ｂ１５）がメモリチップ５Ｃの１バイト目（Ｂ０〜Ｂ７）１６に、パリティビットはメモリチップ５Ａの１バイト目（Ｂ０〜Ｂ７）１４に格納される。３番目の記憶データの格納は、データバス１の下位８ビット（Ｂ０〜Ｂ７）がメモリチップ５Ｃの２バイト目（Ｂ０〜Ｂ７）１９に、上位８ビット（Ｂ８〜Ｂ１５）がメモリチップ５Ａの２バイト目（Ｂ０〜Ｂ７）１７に、パリティビットはメモリチップ５Ｂの２バイト目（Ｂ０〜Ｂ７）１８に格納される。上記パリティビットは、同図にハッチングで示したように、上記３つの記憶データを１単位として格納されるメモリチップ５Ａ〜５Ｃが異なるように分散される。このようなパリティビットの分散がＲＡＩＤ５の持つ１つの特徴である。
【００１５】
リード時は、全チップをリードし、水平パリティビットを用いて、誤り検出を行う。但し、この水平パリティビットでは、奇数個の誤りしか検出できない（偶数個の誤りが発生した場合、パリティ値が変化しないため）。これを回避するのが、代表として例示的に示したメモリチップ５Ａについて管理領域８の垂直パリティビット２２、２３である。垂直パリティビット２２は、メモリチップ５Ａのデータ領域７のビットＢ７に関する垂直方向の複数ビットからなる記憶データのパリティビットである。
【００１６】
図２の実施例のように、データ領域７が５１２バイトで、管理領域８が１６バイトの場合、５１２×８／１６×８＝３２ビットについて、１ビットの垂直パリティビット（例えば２２）が前記図１のパリティ生成器３Ａ〜３Ｃで生成される。つまり、パリティ生成器３Ａにおいて、前記マルチプレクサ６を通して各メモリチップ５Ａ〜５Ｃに対する８ビット（Ｂ０〜Ｂ７）の書き込みデータ毎に、各ビットＢ０〜Ｂ７のそれぞれにおいて論理１の数が計数されて、垂直方向に並ぶ３２ビット分の計数結果が偶数なら論理０、奇数なら論理１の垂直パリティビットを生成する。このパリティビットは、その都度、管理領域８に順次に書き込まれる。このような垂直パリティビットを用いて、偶数個の誤りが発生した場合の誤りを検出する。つまり、前記水平パリティビット１３、１４、１８で誤りが検出された場合、パリティビット２２・２３でその誤りを検出する。
【００１７】
図２の実施例において、管理領域８は、それに対応したデータ領域のメモリアクセスの無効を記録するものであり、無効が記録されないデータ領域が有効とものとして使用される。したがって、無効が記録されないデータ領域に対応した管理領域は、何もデータが格納されない未書き込み状態であり、ここに垂直パリティビットを記録させることにより、記憶装置全体の構成を簡単にできる。それ故、データ領域のメモリアクセスの無効とするビットパターンと上記垂直パリティビットとは一致しないようにされる。
【００１８】
図３には、この発明に係る記憶装置のリペアビリティ（データ救出性）の説明図が示されている。この発明に係る記憶装置１００は、前記メモリチップ５Ａ〜５Ｃ及び前記パリティ生成器２，３やマルチプレクサ６を含むようなコントローラ１０から構成される。記憶装置１００を制御するホスト２００からのチェックコマンド３０や、コントローラ１０の自発的なチェックにより、メモリチップ５Ｂは壊れていると判断した場合は、ブロークンメッセージ３１をホスト２００へ送る。
【００１９】
この発明に係る記憶装置では、上記のような特定のメモリチップ５ｂが壊れてしまって使用不能となった記憶装置１００について、壊れているメモリチップ５Ｂを正常なメモリチップ５Ｂ’に交換することにより、再度使用可能な状態にすることに加えて、以前のデータも合わせて回復させる機能を持たせることができる。つまり、正常なメモリチップ５Ｂ’に交換された記憶装置１００’は、コントローラ１０の自発的な動作や、ホスト２００からの修復／復元を促すリペアコマンド３２などにより、正常動作するメモリチップ５Ａとメモリチップ５Ｃから、もともとメモリチップ５Ｂにあったデータをメモリチップ５Ｂ’に復元することができる。メモリチップ５Ｂのデータ復元終了後、コントローラ１０は、修復／復元が終了した旨のリストアエンドメッセージ３３をホスト２００へ送る。前記３つのメモリチップ５Ａないし５Ｃのうち、いずれか１つが壊れている場合には、上記のように修復／復元ができるものである。
【００２０】
上記記憶装置に搭載されたメモリチップが壊れた場合、前記のようにＥＣＣ回路を用いたＳＳＤのようなものであれば、その記憶装置に格納していたデータまでは救出できないが、ＲＡＩＤ５の技術を応用した本願発明に係る記憶装置では、メモリチップの交換、及びその他のメモリチップに格納されているデータにより、壊れたメモリチップに格納されていたデータを復元でき、ひいては、ＳＳＤ全体としてのデータを救出できることになるという高信頼性に向けた機能を付加することができる。
【００２１】
図４には、この発明に係る記憶装置のコントローラの説明図が示されている。同図においては、比較のために図４（Ａ）はＥＣＣ回路を用いたものが示され、図４（Ｂ）に本願を用いたものが示されている。図４（Ａ）のように通常のＥＣＣ回路は、例えば、５１２バイト(Byte)中の１ビット訂正など、ある塊の中の少数ビットの誤り訂正を行う回路となる。ＮＡＮＤ型フラッシュメモリ５から５１２バイトをリードしたコントロールチップは、データ格納部にデータを格納する。そのデータから、ＥＣＣコード生成部でＥＣＣコードを生成し、ＥＣＣコード格納部に格納する。そのＥＣＣコードとデータ格納部に格納した５１２バイトのデータから複雑な演算式を用いて誤りビットがあるかないか、あるのであれば、どのビットなのかを誤りビット特定部で判定する。誤りビットがあると判定された場合、その情報は、ビット訂正部に送られ、誤りビットの訂正が行われる。
【００２２】
図４（Ｂ）においては、前記図１で示したようなアーキテクチャを採用した場合、ある塊ではなく、バス幅（１６ビット）＋８ビット（パリティ生成を８ビット単位とした場合）のデータをまず、水平方向誤りビット特定部でバス幅（１６ビット）のうちのどのビットかを特定する。それらのビットに対するパリティデータにより垂直方向誤りビット特定部で、最終的な誤りビットを特定する。その情報は、ビット訂正部に送られ、誤りビットの訂正が行われる。図４（Ａ）の場合、ある塊に対して、誤りビットを特定することになり、いわば、２次元配列のデータに対してこれを行うことになるが、本発明適用時には、１次元配列のデータに対して行うため、回路規模的に小さくできる。また、データ格納部なども不要である。
【００２３】
本願発明においては、パリティビット生成回路については、水平方向と垂直方向の２チネャル分の回路しか必要でなく、通常のＥＣＣ回路よりも回路面積を小さくできる。つまり、前記の例ではパリティ用にＮＡＮＤ型フラッシュメモリがひとつ余分に必要になるが、ＥＣＣ回路を用いた場合に比べてコスト的に見た場合、コントローラ部分の回路面積が小さくなる方が安くなる可能性が高く、多ビットのエラーも訂正できる。そして、何よりもメモリチップの破壊に対してＥＣＣ回路では実現不可能な記憶データの修復／復元に対しても、残っているメモリチップの記憶データを利用して、もとの記憶データの修復／復元ができるので、記憶装置としての高い信頼性を実現できるものである。
【００２４】
図５には、この発明に係る記憶装置の一実施例の概略ブロック図が示されている。この実施例の記憶装置は、ＨＤＤ互換記憶装置（Solid State Drive：ＳＳＤ）として、特に制限されないが、５１２Ｍビットの記憶容量を持つＮＡＮＤ型フラッシュメモリの多数個を１つのパッケージの中に搭載して複数ページ分の記憶容量を持つようなファイルメモリを構成するようにされる。上記フラッシュメモリは、１つのメモリセルに１ビットの記憶が可能とされて２種類のしきい値電圧の分布のうち１つを持つもの、あるいは２ビットの記憶が可能とされて４種類のしきい値電圧の分布のうちの１つに対応したしきい値電圧を持つようにされる。
【００２５】
これら多数個の不揮発性メモリは、不揮発性メモリＩ／Ｆ（インターフェイス）を通して内部バスＤＢに接続される。内部バスＤＢは、例えばＡＴＡ又はＳＣＳＩのようなインターフェイスＩ／Ｆを有するコントローラ部に接続される。上記コントローラ部は、ＣＰＵで示したような１チップマイクロコンピュータ等のようなコントローラと上記ＡＴＡ（AT Attachment)又はＳＣＳＩ(Small Computer System Interface) のようなインターフェイスＩ／Ｆとから構成される。したがって、コントローラ部は、不揮発性メモリインターフェイスＩ／Ｆに設けられたドライバと上記不揮発性メモリとの間でデータのやりとり、つまりはデータの書き込みや読み出しが行われる。また、特に制限されないが、コントローラ部に前記図１のようなパリティ生成器ＰＢＧを有する。
【００２６】
上記パッケージには、特に制限されないが、電源検出回路と電源遮断時の動作電圧を確保するためのコンデンサＣＰ及びスイッチＳＷ及び揮発性メモリを更に備えている。このコンデンサＣＰは、システム側において予期しない電源遮断が生じた場合でも、その蓄積電荷によって不揮発性メモリやコントローラ部及び揮発性メモリや電源検出回路に電圧を供給して、不揮発性メモリの中断処理を含めた正常終了状態まで動作電圧を維持するように動作する。
【００２７】
上記電源検出回路は、マイクロコンピュータ等のようなホスト側からの電源電圧Ｖccを受けて、その電源投入と電源遮断を検出する。この検出信号は、ゲート回路Ｇの一方の入力に供給される。このゲート回路Ｇの他方の入力にはコントロール線を通したコントロール信号が供給される。ゲート回路Ｇは、例えばナンド（ＮＡＮＤ）ゲート回路のような論理回路からなり、電源投入又は電源遮断に対応したコントローラ部からの信号、あるいはコントロール線から供給される制御信号に対応してスイッチＳＷの制御や不揮発性メモリと揮発性メモリとの間でのデータ転送動作の指示に用いられる。
【００２８】
スイッチＳＷは、ゲート回路Ｇの出力信号によって切り替えられ、コンデンサＣＰが電源Ｖccによる充電動作から、その保持電圧を記憶装置ＳＳＤの内部回路の動作電圧として供給する動作を行う。上記電源検出回路は、上記コンデンサＣＰの保持電圧が有効に利用できるようにするために、コンデンサＣＰで形成された動作電圧がシステム側に逆流してしまうのを防止するような機能も持つものである。最も簡単な構成は、ダイオード等の一方向性素子を通してシステム側からの電源電圧Ｖccが、記憶装置ＳＳＤの電源電圧として上記スイッチＳＷを通してコンデンサＣＰにチャージアップされるとともに、コントロール部、不揮発性メモリ、揮発性メモリ、インターフェイス回路Ｉ／Ｆ及び電源検出回路に伝えられる。
【００２９】
システム側において電源遮断等が発生した場合、上記のように電圧検出回路によりコントローラ部及び不揮発性メモリにはコンデンサＣＰから動作電圧が維持される逆流防止が行われるとともに、インターフェイス回路Ｉ／Ｆが上記システム側からの信号に応答しないように制御され、揮発性メモリや記憶回路ＲＥＧに退避データが存在するときには不揮発性メモリの退避領域にかかる退避データの退避が行われる。もしも不揮発性メモリへの書き込み動作中ならば、リセットコマンドが発行されて不揮発性メモリの書き込み動作の中断処理される。同様に、不揮発性メモリの消去動作中ならばリセットコマンドが発行されて不揮発性メモリの消去動作も中断処理される。
【００３０】
上記記憶装置ＳＳＤは、例えば２．５インチのハードディスクドライブ装置と同様な外形サイズ（７０．０×１００．０×９．５ｍｍ）又は３．５インチのハードディスクドライブ装置と同様な外形サイズ（１０１．６×１４６．０×２５．４ｍｍ）のパッケージに搭載され、インターフェイス回路ＩＮＦに接続されるコネクタピンも上記２．５インチのハードディスクドライブ装置又は３．５インチのハードディスクドライブ装置と同様なものが用いられる。これにより、この実施例の記憶装置ＳＳＤは、ＨＤＤ（ハードディスクドライブ）互換性記憶装置とされる。
【００３１】
揮発性メモリは、例えばＳＤＲＡＭ（シンクロナス・ダイナミック・ランダム・アクセス・メモリ）からなり、多値フラッシュメモリの書き換え耐性を向上させる為、ホストからの書き込みデータ、およびそれらを管理などする非ホストデータを維持、キャッシュするため等に用いられる。
【００３２】
本願発明に係る記憶装置は、図５の揮発性メモリや、電源検出回路、ゲート回路及びスイッチＳＷやキャパシタＣＰを必須のものとしない。つまり、これらを省略するものであってもよい。不揮発性メモリは、キャッシュメモリとして使用するもの他、前記垂直パリティをＣＰＵで生成するための一時記憶装置として利用してもよい。
【００３３】
前記図１の実施例のように、ホストとのデータ線のバス幅が１６ビットで、不揮発性メモリが８ビットの単位でデータの入出力が行われるとき、不揮発性メモリは３個とされる。したがって、内部バスＤＢは、各不揮発性メモリとコントローラ部とをそれぞれ接続する３組から構成される。前記パリティ生成器ＰＢＧのうち、特に垂直パリティ生成器３についてはＣＰＵによるソフトウェア処理により実現するものであってもよい。また、後述するように、ホストとのデータ線のバス幅が３２ビットで不揮発性メモリが８ビットの単位でデータの入出力が行われるとは、記憶データ用に４つの不揮発性メモリと水平パリティビット用に１つの不揮発性メモリにより構成される。この場合には、内部バスＤＢは、各不揮発性メモリとコントローラ部とをそれぞれ接続する８ビットのバスが５組から構成される。
【００３４】
図６には、この発明に係る記憶装置の他の一実施例の概略構成図が示されている。この実施例では、３２ビットの単位でパラレルに記憶データの入出力を行う記憶装置に向けられている。メモリチップ５Ａないし５Ｅは、ＮＡＮＤ型フラッシュメモリのような不揮発性メモリチップで構成されて、それぞれが８ビット単位での記憶データの入出力が行われる。このようなメモリチップを用いたＳＳＤにおいて、４バイト（３２ビット）に対応して４個のメモリチップと、１個のパリティビット用のメモリチップとの組み合わせで実現できる。
【００３５】
図６においては、１番目の３２ビットからなる記憶データが８ビットずつＢ０〜Ｂ７、Ｂ８〜Ｂ１５、Ｂ１６〜Ｂ２３、Ｂ２４〜Ｂ３１の４組に分けて、対応するビットＢ０−Ｂ８−Ｂ１６−Ｂ２４の論理１の数が奇数ならビットＢ０の水平パリティビットを論理１とし、偶数なら水平パリティビットを論理０とする。他の水平パリティビットＢ１〜Ｂ７においても、上記記憶データのビットＢ１〜Ｂ７、Ｂ９〜Ｂ１５、Ｂ１７〜Ｂ２３、Ｂ２５〜Ｂ３１のそれぞれ対応するものについても同様に行う。
【００３６】
水平パリティビットは、２ビット付加するものであってもよい。つまり、ＲＡＩＤ６での技術の応用により水平パリティビットを２重化して高信頼性を得るものとしてもよい。例えば、記憶データが６４ビットのように多ビットであり、使用する不揮発性メモリが８ビット構成のときには、上記水平パリティビットの２重化（ＲＡＩＤ６）は有益なものとなる。
【００３７】
図７には、この発明に係る記憶装置の誤り検出の説明図が示されている。この実施例では、４ビットのＩ／Ｏ（入出力）を持つメモリチップ１ないし３を用いて、８ビットの記憶データを記憶する例が示されている。アドレスＡ１〜Ａ４は、前記データ領域とされて記憶データを格納し、アドレスＡ５が前記管理領域とされて垂直パリティビットを格納する例が示されている。また、誤り検出の理解を容易にするために、メモリチップ１と２には記憶データが格納され、メモリチップ３に水平パリティビットが格納するものとされる。つまり、アドレスＡ１〜Ａ４においては、８ビットの記憶データがメモリチップ１と２に４ビット（Ｂ０〜Ｂ３）ずつ分担して記憶される。対応するビットＢ０〜Ｂ３のそれぞれの水平パリティビットが前記のように生成されてメモリチップ３に記憶される。
【００３８】
図７（Ａ）のように正常時と同じデータが読み出されたならエラーは存在しない。しかしながら、メモリチップ２のアドレスＡ１のビットＢ３の記憶データが１から０のように変化した場合、つまり、上記メモリチップ２のビットＢ３の記憶データ０が読み出されると、アドレスＡ１のビットＢ３についてのエラー検出が行われる。メモリチップ２のアドレスＡ５のビットＢ３の垂直パリティビットによりメモリチップ２のアドレスＡ１のビットＢ３のエラーを検出し、メモリチップ１のアドレスＡ５のビットＢ３の垂直パリティビットによりメモリチップ１のアドレスＡ１のビットＢ３の正常性を確認し、メモリチップ３のアドレスＡ２〜５のビットＢ３（水平パリティビット）により、メモリチップ１のアドレスＡ２〜Ａ５のビットＢ３、メモリチップ２のアドレスＡ２〜Ａ５のビットＢ３の正常性を確認する。
【００３９】
以上本発明者によってなされた発明を、前記実施形態に基づき具体的に説明したが、本発明は、前記実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、３２ビットの単位でパラレルに記憶データの入出力を行う記憶装置において、１６ビットの単位でデータの入出力を行う不揮発性メモリを用いた場合には、３個の不揮発性メモリの組み合わせで構成できる。垂直パリティビット用に１の不揮発性メモリを用意してもよい。４ビットの単位でデータの入出力を行う不揮発性メモリでは、８ビットの単位でパラレルに記憶データの入出力を行う記憶装置を構成することができる。このように、記憶装置に対する入出力ビット数Ｍと、不揮発性メモリの入出力ビット数Ｎの関係は、ＭはＮの２以上の整数倍であることが必要である。また、図１等において、メモリチップ５Ａ〜５Ｃは、必要とされる記憶容量に応じてそれぞれが物理的な意味において１又は複数のメモリチップで構成される。
【００４０】
不揮発性メモリは、前記ＮＡＮＤ型フラッシュメモリの他に、エラービットの発生が他のメモリデバイスに比べて比較的多く、それを許容することを前提とするデバイスでれば何であってよい。また、この実施例の記憶装置は、１インチや１．８インチのように前記２．５や３．５インチそれよりも小さなパッケージと同様な外形サイズに搭載れるもの、あるいは単に実装基板上に搭載されるもの等種々の実施形態を採ることができる。
【産業上の利用可能性】
【００４１】
この発明は、フラッシュメモリのような不揮発性メモリを用いたＳＳＤに広く利用することができる。
【図面の簡単な説明】
【００４２】
【図１】この発明に係る記憶装置（ＳＳＤ）の一実施例の概略構成図である。
【図２】記憶データとパリティビットのメモリチップへの格納方法の説明図である。
【図３】この発明に係る記憶装置のリペアビリティの説明図である。
【図４】この発明に係る記憶装置のコントローラの説明図である。
【図５】この発明に係る記憶装置の一実施例の概略ブロック図である。
【図６】この発明に係る記憶装置の他の一実施例の概略構成図である。
【図７】この発明に係る記憶装置の誤り検出の説明図である。
【符号の説明】
【００４３】
１…データバス、２…（水平）パリティ生成器、３Ａ〜３Ｅ…（垂直）パリティ生成器、４Ａ〜４Ｅ…バッファ、５Ａ〜５Ｅ…メモリチップ、６…マルチプレクサ、７…データ領域、８…管理領域、
１０…コントローラ、１００…記憶装置、２００…ホスト、
ＣＰＵ…中央処理装置、ＰＧＢ…パリティ生成部、Ｇ…ゲート回路、ＣＰ…キャパシタ、ＳＷ…スイッチ。
【図１】
2010020648.tif 000003
【図２】
2010020648.tif 000004
【図３】
2010020648.tif 000005
【図４】
2010020648.tif 000006
【図５】
2010020648.tif 000007
【図６】
2010020648.tif 000008
【図７】
2010020648.tif 000009