JP2010020648A - 記憶装置 - Google Patents
記憶装置 Download PDFInfo
- Publication number
- JP2010020648A JP2010020648A JP2008182099A JP2008182099A JP2010020648A JP 2010020648 A JP2010020648 A JP 2010020648A JP 2008182099 A JP2008182099 A JP 2008182099A JP 2008182099 A JP2008182099 A JP 2008182099A JP 2010020648 A JP2010020648 A JP 2010020648A
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- bit
- bits
- parity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】簡単な構成で高信頼性を実現した半導体不揮発性メモリを用いた記憶装置を提供する。
【解決手段】複数のNAND型フラッシュメモリと、これらのフラッシュメモリに対してアクセスを行うコントローラと有する。上記複数のフラッシュメモリは、パラレルに入出力される記憶データを分担して受け持つ2以上のフラッシュメモリと、水平パリティビットを受け持つフラッシュメモリと、垂直パリティビットを受け持つフラッシュメモリとを有する。上記コントローラは、上記水平パリティビットを生成する第1パリティ生成器と、上記垂直パリティビットを生成する第2パリティ生成器と、上記水平パリティビットを用いる水平方向誤りビット特定部と、上記垂直パリティビットを用いる垂直方向誤りビット特定部と、上記水平/垂直方向誤りビット特定部からの信号により上記記憶データの訂正を行うビット訂正部とを有する。
【選択図】図1
【解決手段】複数のNAND型フラッシュメモリと、これらのフラッシュメモリに対してアクセスを行うコントローラと有する。上記複数のフラッシュメモリは、パラレルに入出力される記憶データを分担して受け持つ2以上のフラッシュメモリと、水平パリティビットを受け持つフラッシュメモリと、垂直パリティビットを受け持つフラッシュメモリとを有する。上記コントローラは、上記水平パリティビットを生成する第1パリティ生成器と、上記垂直パリティビットを生成する第2パリティ生成器と、上記水平パリティビットを用いる水平方向誤りビット特定部と、上記垂直パリティビットを用いる垂直方向誤りビット特定部と、上記水平/垂直方向誤りビット特定部からの信号により上記記憶データの訂正を行うビット訂正部とを有する。
【選択図】図1
Description
この発明は、記憶装置に関し、NAND型フラッシュメモリを用いて構成され、例えばHDD置き換え可能な記憶装置に利用して有効な技術に関するものである。
特開平5−296344号公報においては、フラッシュメモリとECC回路を有する半導体ディスク装置が開示されている。特開2006−285527号公報には、RAID(Redundant Arrays of Inexpensive(or Independent) Disks; レイド) 5の論理ドライブを採用したストレージ装置が開示されている。
特開平5−296344号公報
特開2006−285527号公報
NAND型フラッシュメモリは、エラービットの発生が他のメモリデバイスに比べて比較的多く、それを許容することを前提とするデバイスでもある。データの書き換え及び消去を繰り返していくうちにメモリセルのデータ記憶特性が劣化し、リード時に正常データがリードできなくなることがある。そのために、記憶媒体に半導体不揮発性メモリを使用したSSD(Solid State Drive)を構成する場合、誤り検出・訂正回路が必須となる。誤り検出・訂正回路は、前記特許文献1のようにECC回路を用いるのが一般的である。誤り検出・訂正を行う場合、ハミング符号/リード・ソロモン符号/BCH符号などの符号化、複合化を行う。しかしながら、上記SSDに向けて、多ビットの誤り検出・訂正を行う場合、演算回路のコストが大きくなり、動作速度も遅くなるという問題が生じる。
この発明の目的は、簡単な構成で高信頼性を実現した半導体不揮発性メモリを用いた記憶装置を提供することにある。ここの発明の前記ならびにそのほかの目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される1つの実施例は、以下の通りである。複数のNAND型フラッシュメモリと、上記複数のNAND型フラッシュメモリに対してアクセスを行うコントローラと有する。上記複数のNAND型フラッシュメモリは、パラレルに入出力される記憶データを分担して受け持つ2以上のNAND型フラッシュメモリと、上記記憶データに対応した水平パリティビットを受け持つNAND型フラッシュメモリと、上記個々のNAND型フラッシュメモリに記憶される記憶データに対応した垂直パリティビットを受け持つNAND型フラッシュメモリとを有する。上記コントローラは、上記水平パリティビットを生成する第1パリティ生成器と、上記垂直パリティビットを生成する第2パリティ生成器と、上記水平パリティビットを用いる水平方向誤りビット特定部と、上記垂直パリティビットを用いる垂直方向誤りビット特定部と、上記水平方向及び垂直方向誤りビット特定部からの信号により上記記憶データの誤りビット訂正を行うビット訂正部とを有する。
RAID5又はRAID6の応用によりNAND型フラッシュメモリのような不揮発性メモリを用いた信頼性の高いシステムを構成することができる。
図1には、この発明に係る記憶装置(SSD;Solid State Drive)の一実施例の概略構成図が示されている。この実施例では、16ビットの単位でパラレルに記憶データの入出力を行う記憶装置に向けられている。メモリチップ5Aないし5Cは、NAND型フラッシュメモリのような不揮発性メモリチップで構成されて、それぞれが8ビット単位での記憶データの入出力が行われる。このようなメモリチップを用いたSSDにおいて、上記メモリチップ5Aないし5Cを、前記特許文献3のようなHDDのようなストレージと見立ててRAID5の技術を応用してデータ及びパリティビットを分散格納する。
図1においては、データバス1の16ビットからなる記憶データとそれに対応した水平パリティビットをNAND型フラッシュメモリ5Aないし5Cにそれぞれ格納する例が示されている。1番目の16ビットからなる記憶データの下位8ビット(B0〜B7)は、記憶データ及び水平パリティビットを分散格納するために用いられるマルチプレクサ6及びバッファ4Aを介してメモリチップ5Aに供給される。上記記憶データの上位8ビット(B8〜B15)は、上記マルチプレクサ6及びバッファ4Bを介してメモリチップ5Bに供給される。その際、メモリチップ5Aと5Bに格納する8ビット(B0〜B7とB8〜B15)の各対応するビットについての水平パリティビット(B0〜B7)をパリティ生成器2で生成し、上記マルチプレクサ6を介してメモリチップ5Cに格納する。パリティ生成器2は、例えば排他的論理和回路から構成され、対応するビットB0又はB8のうち一方が論理1ならパリティビットを論理1とし、ビットB0又はB8が共に論理0又は論理1のときはパリティビットを論理0とする偶数パリティを生成する。他のビットB1〜B7とB9〜B15のそれぞれについても同様である。
データバス1の16ビットからなる2番目の記憶データと水平パリティビットは、上記マルチプレクサ6を介して上記記憶データの下位ビット(B0〜B7)にいては上記メモリチップ5Aから5Bに、上記記憶データの上位ビット(B8〜B15)については上記メモリチップ5Bから5Cに、及びパリティビット(B0〜B7)については上記メモリチップ5Cから5Aに切り替えて分散記憶させる。
データバス1の16ビットからなる3番目の記憶データと水平パリティビットは、上記マルチプレクサ6を介して上記記憶データの下位ビット(B0〜B7)にいては1つ前(2番目)の上記メモリチップ5Bから5Cに、上記記憶データの上位ビット(B8〜B15)については上記1つ前の上記メモリチップ5Cから5Aに、及びパリティビット(B0〜B7)については上記メモリチップ5Aから5Bに切り替えて分散記憶させる。
パリティ生成器3は、各メモリチップ5A〜5Cに格納する複数ビットに対する垂直パリティを生成する。ここで生成された垂直パリティビットは、特に制限されないが、同じメモリチップ5A〜5C管理領域に格納させる。あるいは、独立したメモリチップを追加して、上記垂直パリティビットを記憶させるようにしてもよい。
図2には、記憶データとパリティビットのメモリチップへの格納方法の説明図が示されている。この実施例のメモリチップ5A〜5Cは、特に制限されないが、NAND型フラッシュメモリの小ブロック品であり、512バイトのデータ領域7と、それに続く16バイトの管理領域8を1つのページとして扱う。NAND型フラッシュメモリの大ブロック品は、上記構成の小ブロック品に比べ、それぞれの領域のバイト数が違うのみであるため同様の方法が適用できる。
図1で説明した、1番目の記憶データの格納は、データバス1の下位8ビット(B0〜B7)がメモリチップ5Aの0バイト目(B0〜B7)11に、上位8ビット(B8〜B15)がメモリチップ5Bの0バイト目(B0〜B7)12に、パリティビットはメモリチップ5Cの0バイト目(B0〜B7)13に格納される。
この実施例では、パリティビットを分散させるため、2番目の記憶データの格納は、データバス1の下位8ビット(B0〜B7)がメモリチップ5Bの1バイト目(B0〜B7)15に、上位8ビット(B8〜B15)がメモリチップ5Cの1バイト目(B0〜B7)16に、パリティビットはメモリチップ5Aの1バイト目(B0〜B7)14に格納される。3番目の記憶データの格納は、データバス1の下位8ビット(B0〜B7)がメモリチップ5Cの2バイト目(B0〜B7)19に、上位8ビット(B8〜B15)がメモリチップ5Aの2バイト目(B0〜B7)17に、パリティビットはメモリチップ5Bの2バイト目(B0〜B7)18に格納される。上記パリティビットは、同図にハッチングで示したように、上記3つの記憶データを1単位として格納されるメモリチップ5A〜5Cが異なるように分散される。このようなパリティビットの分散がRAID5の持つ1つの特徴である。
リード時は、全チップをリードし、水平パリティビットを用いて、誤り検出を行う。但し、この水平パリティビットでは、奇数個の誤りしか検出できない(偶数個の誤りが発生した場合、パリティ値が変化しないため)。これを回避するのが、代表として例示的に示したメモリチップ5Aについて管理領域8の垂直パリティビット22、23である。垂直パリティビット22は、メモリチップ5Aのデータ領域7のビットB7に関する垂直方向の複数ビットからなる記憶データのパリティビットである。
図2の実施例のように、データ領域7が512バイトで、管理領域8が16バイトの場合、512×8/16×8=32ビットについて、1ビットの垂直パリティビット(例えば22)が前記図1のパリティ生成器3A〜3Cで生成される。つまり、パリティ生成器3Aにおいて、前記マルチプレクサ6を通して各メモリチップ5A〜5Cに対する8ビット(B0〜B7)の書き込みデータ毎に、各ビットB0〜B7のそれぞれにおいて論理1の数が計数されて、垂直方向に並ぶ32ビット分の計数結果が偶数なら論理0、奇数なら論理1の垂直パリティビットを生成する。このパリティビットは、その都度、管理領域8に順次に書き込まれる。このような垂直パリティビットを用いて、偶数個の誤りが発生した場合の誤りを検出する。つまり、前記水平パリティビット13、14、18で誤りが検出された場合、パリティビット22・23でその誤りを検出する。
図2の実施例において、管理領域8は、それに対応したデータ領域のメモリアクセスの無効を記録するものであり、無効が記録されないデータ領域が有効とものとして使用される。したがって、無効が記録されないデータ領域に対応した管理領域は、何もデータが格納されない未書き込み状態であり、ここに垂直パリティビットを記録させることにより、記憶装置全体の構成を簡単にできる。それ故、データ領域のメモリアクセスの無効とするビットパターンと上記垂直パリティビットとは一致しないようにされる。
図3には、この発明に係る記憶装置のリペアビリティ(データ救出性)の説明図が示されている。この発明に係る記憶装置100は、前記メモリチップ5A〜5C及び前記パリティ生成器2,3やマルチプレクサ6を含むようなコントローラ10から構成される。記憶装置100を制御するホスト200からのチェックコマンド30や、コントローラ10の自発的なチェックにより、メモリチップ5Bは壊れていると判断した場合は、ブロークンメッセージ31をホスト200へ送る。
この発明に係る記憶装置では、上記のような特定のメモリチップ5bが壊れてしまって使用不能となった記憶装置100について、壊れているメモリチップ5Bを正常なメモリチップ5B’に交換することにより、再度使用可能な状態にすることに加えて、以前のデータも合わせて回復させる機能を持たせることができる。つまり、正常なメモリチップ5B’に交換された記憶装置100’は、コントローラ10の自発的な動作や、ホスト200からの修復/復元を促すリペアコマンド32などにより、正常動作するメモリチップ5Aとメモリチップ5Cから、もともとメモリチップ5Bにあったデータをメモリチップ5B’に復元することができる。メモリチップ5Bのデータ復元終了後、コントローラ10は、修復/復元が終了した旨のリストアエンドメッセージ33をホスト200へ送る。前記3つのメモリチップ5Aないし5Cのうち、いずれか1つが壊れている場合には、上記のように修復/復元ができるものである。
上記記憶装置に搭載されたメモリチップが壊れた場合、前記のようにECC回路を用いたSSDのようなものであれば、その記憶装置に格納していたデータまでは救出できないが、RAID5の技術を応用した本願発明に係る記憶装置では、メモリチップの交換、及びその他のメモリチップに格納されているデータにより、壊れたメモリチップに格納されていたデータを復元でき、ひいては、SSD全体としてのデータを救出できることになるという高信頼性に向けた機能を付加することができる。
図4には、この発明に係る記憶装置のコントローラの説明図が示されている。同図においては、比較のために図4(A)はECC回路を用いたものが示され、図4(B)に本願を用いたものが示されている。図4(A)のように通常のECC回路は、例えば、512バイト(Byte)中の1ビット訂正など、ある塊の中の少数ビットの誤り訂正を行う回路となる。NAND型フラッシュメモリ5から512バイトをリードしたコントロールチップは、データ格納部にデータを格納する。そのデータから、ECCコード生成部でECCコードを生成し、ECCコード格納部に格納する。そのECCコードとデータ格納部に格納した512バイトのデータから複雑な演算式を用いて誤りビットがあるかないか、あるのであれば、どのビットなのかを誤りビット特定部で判定する。誤りビットがあると判定された場合、その情報は、ビット訂正部に送られ、誤りビットの訂正が行われる。
図4(B)においては、前記図1で示したようなアーキテクチャを採用した場合、ある塊ではなく、バス幅(16ビット)+8ビット(パリティ生成を8ビット単位とした場合)のデータをまず、水平方向誤りビット特定部でバス幅(16ビット)のうちのどのビットかを特定する。それらのビットに対するパリティデータにより垂直方向誤りビット特定部で、最終的な誤りビットを特定する。その情報は、ビット訂正部に送られ、誤りビットの訂正が行われる。図4(A)の場合、ある塊に対して、誤りビットを特定することになり、いわば、2次元配列のデータに対してこれを行うことになるが、本発明適用時には、1次元配列のデータに対して行うため、回路規模的に小さくできる。また、データ格納部なども不要である。
本願発明においては、パリティビット生成回路については、水平方向と垂直方向の2チネャル分の回路しか必要でなく、通常のECC回路よりも回路面積を小さくできる。つまり、前記の例ではパリティ用にNAND型フラッシュメモリがひとつ余分に必要になるが、ECC回路を用いた場合に比べてコスト的に見た場合、コントローラ部分の回路面積が小さくなる方が安くなる可能性が高く、多ビットのエラーも訂正できる。そして、何よりもメモリチップの破壊に対してECC回路では実現不可能な記憶データの修復/復元に対しても、残っているメモリチップの記憶データを利用して、もとの記憶データの修復/復元ができるので、記憶装置としての高い信頼性を実現できるものである。
図5には、この発明に係る記憶装置の一実施例の概略ブロック図が示されている。この実施例の記憶装置は、HDD互換記憶装置(Solid State Drive:SSD)として、特に制限されないが、512Mビットの記憶容量を持つNAND型フラッシュメモリの多数個を1つのパッケージの中に搭載して複数ページ分の記憶容量を持つようなファイルメモリを構成するようにされる。上記フラッシュメモリは、1つのメモリセルに1ビットの記憶が可能とされて2種類のしきい値電圧の分布のうち1つを持つもの、あるいは2ビットの記憶が可能とされて4種類のしきい値電圧の分布のうちの1つに対応したしきい値電圧を持つようにされる。
これら多数個の不揮発性メモリは、不揮発性メモリI/F(インターフェイス)を通して内部バスDBに接続される。内部バスDBは、例えばATA又はSCSIのようなインターフェイスI/Fを有するコントローラ部に接続される。上記コントローラ部は、CPUで示したような1チップマイクロコンピュータ等のようなコントローラと上記ATA(AT Attachment)又はSCSI(Small Computer System Interface) のようなインターフェイスI/Fとから構成される。したがって、コントローラ部は、不揮発性メモリインターフェイスI/Fに設けられたドライバと上記不揮発性メモリとの間でデータのやりとり、つまりはデータの書き込みや読み出しが行われる。また、特に制限されないが、コントローラ部に前記図1のようなパリティ生成器PBGを有する。
上記パッケージには、特に制限されないが、電源検出回路と電源遮断時の動作電圧を確保するためのコンデンサCP及びスイッチSW及び揮発性メモリを更に備えている。このコンデンサCPは、システム側において予期しない電源遮断が生じた場合でも、その蓄積電荷によって不揮発性メモリやコントローラ部及び揮発性メモリや電源検出回路に電圧を供給して、不揮発性メモリの中断処理を含めた正常終了状態まで動作電圧を維持するように動作する。
上記電源検出回路は、マイクロコンピュータ等のようなホスト側からの電源電圧Vccを受けて、その電源投入と電源遮断を検出する。この検出信号は、ゲート回路Gの一方の入力に供給される。このゲート回路Gの他方の入力にはコントロール線を通したコントロール信号が供給される。ゲート回路Gは、例えばナンド(NAND)ゲート回路のような論理回路からなり、電源投入又は電源遮断に対応したコントローラ部からの信号、あるいはコントロール線から供給される制御信号に対応してスイッチSWの制御や不揮発性メモリと揮発性メモリとの間でのデータ転送動作の指示に用いられる。
スイッチSWは、ゲート回路Gの出力信号によって切り替えられ、コンデンサCPが電源Vccによる充電動作から、その保持電圧を記憶装置SSDの内部回路の動作電圧として供給する動作を行う。上記電源検出回路は、上記コンデンサCPの保持電圧が有効に利用できるようにするために、コンデンサCPで形成された動作電圧がシステム側に逆流してしまうのを防止するような機能も持つものである。最も簡単な構成は、ダイオード等の一方向性素子を通してシステム側からの電源電圧Vccが、記憶装置SSDの電源電圧として上記スイッチSWを通してコンデンサCPにチャージアップされるとともに、コントロール部、不揮発性メモリ、揮発性メモリ、インターフェイス回路I/F及び電源検出回路に伝えられる。
システム側において電源遮断等が発生した場合、上記のように電圧検出回路によりコントローラ部及び不揮発性メモリにはコンデンサCPから動作電圧が維持される逆流防止が行われるとともに、インターフェイス回路I/Fが上記システム側からの信号に応答しないように制御され、揮発性メモリや記憶回路REGに退避データが存在するときには不揮発性メモリの退避領域にかかる退避データの退避が行われる。もしも不揮発性メモリへの書き込み動作中ならば、リセットコマンドが発行されて不揮発性メモリの書き込み動作の中断処理される。同様に、不揮発性メモリの消去動作中ならばリセットコマンドが発行されて不揮発性メモリの消去動作も中断処理される。
上記記憶装置SSDは、例えば2.5インチのハードディスクドライブ装置と同様な外形サイズ(70.0×100.0×9.5mm)又は3.5インチのハードディスクドライブ装置と同様な外形サイズ(101.6×146.0×25.4mm)のパッケージに搭載され、インターフェイス回路INFに接続されるコネクタピンも上記2.5インチのハードディスクドライブ装置又は3.5インチのハードディスクドライブ装置と同様なものが用いられる。これにより、この実施例の記憶装置SSDは、HDD(ハードディスクドライブ)互換性記憶装置とされる。
揮発性メモリは、例えばSDRAM(シンクロナス・ダイナミック・ランダム・アクセス・メモリ)からなり、多値フラッシュメモリの書き換え耐性を向上させる為、ホストからの書き込みデータ、およびそれらを管理などする非ホストデータを維持、キャッシュするため等に用いられる。
本願発明に係る記憶装置は、図5の揮発性メモリや、電源検出回路、ゲート回路及びスイッチSWやキャパシタCPを必須のものとしない。つまり、これらを省略するものであってもよい。不揮発性メモリは、キャッシュメモリとして使用するもの他、前記垂直パリティをCPUで生成するための一時記憶装置として利用してもよい。
前記図1の実施例のように、ホストとのデータ線のバス幅が16ビットで、不揮発性メモリが8ビットの単位でデータの入出力が行われるとき、不揮発性メモリは3個とされる。したがって、内部バスDBは、各不揮発性メモリとコントローラ部とをそれぞれ接続する3組から構成される。前記パリティ生成器PBGのうち、特に垂直パリティ生成器3についてはCPUによるソフトウェア処理により実現するものであってもよい。また、後述するように、ホストとのデータ線のバス幅が32ビットで不揮発性メモリが8ビットの単位でデータの入出力が行われるとは、記憶データ用に4つの不揮発性メモリと水平パリティビット用に1つの不揮発性メモリにより構成される。この場合には、内部バスDBは、各不揮発性メモリとコントローラ部とをそれぞれ接続する8ビットのバスが5組から構成される。
図6には、この発明に係る記憶装置の他の一実施例の概略構成図が示されている。この実施例では、32ビットの単位でパラレルに記憶データの入出力を行う記憶装置に向けられている。メモリチップ5Aないし5Eは、NAND型フラッシュメモリのような不揮発性メモリチップで構成されて、それぞれが8ビット単位での記憶データの入出力が行われる。このようなメモリチップを用いたSSDにおいて、4バイト(32ビット)に対応して4個のメモリチップと、1個のパリティビット用のメモリチップとの組み合わせで実現できる。
図6においては、1番目の32ビットからなる記憶データが8ビットずつB0〜B7、B8〜B15、B16〜B23、B24〜B31の4組に分けて、対応するビットB0−B8−B16−B24の論理1の数が奇数ならビットB0の水平パリティビットを論理1とし、偶数なら水平パリティビットを論理0とする。他の水平パリティビットB1〜B7においても、上記記憶データのビットB1〜B7、B9〜B15、B17〜B23、B25〜B31のそれぞれ対応するものについても同様に行う。
水平パリティビットは、2ビット付加するものであってもよい。つまり、RAID6での技術の応用により水平パリティビットを2重化して高信頼性を得るものとしてもよい。例えば、記憶データが64ビットのように多ビットであり、使用する不揮発性メモリが8ビット構成のときには、上記水平パリティビットの2重化(RAID6)は有益なものとなる。
図7には、この発明に係る記憶装置の誤り検出の説明図が示されている。この実施例では、4ビットのI/O(入出力)を持つメモリチップ1ないし3を用いて、8ビットの記憶データを記憶する例が示されている。アドレスA1〜A4は、前記データ領域とされて記憶データを格納し、アドレスA5が前記管理領域とされて垂直パリティビットを格納する例が示されている。また、誤り検出の理解を容易にするために、メモリチップ1と2には記憶データが格納され、メモリチップ3に水平パリティビットが格納するものとされる。つまり、アドレスA1〜A4においては、8ビットの記憶データがメモリチップ1と2に4ビット(B0〜B3)ずつ分担して記憶される。対応するビットB0〜B3のそれぞれの水平パリティビットが前記のように生成されてメモリチップ3に記憶される。
図7(A)のように正常時と同じデータが読み出されたならエラーは存在しない。しかしながら、メモリチップ2のアドレスA1のビットB3の記憶データが1から0のように変化した場合、つまり、上記メモリチップ2のビットB3の記憶データ0が読み出されると、アドレスA1のビットB3についてのエラー検出が行われる。メモリチップ2のアドレスA5のビットB3の垂直パリティビットによりメモリチップ2のアドレスA1のビットB3のエラーを検出し、メモリチップ1のアドレスA5のビットB3の垂直パリティビットによりメモリチップ1のアドレスA1のビットB3の正常性を確認し、メモリチップ3のアドレスA2〜5のビットB3(水平パリティビット)により、メモリチップ1のアドレスA2〜A5のビットB3、メモリチップ2のアドレスA2〜A5のビットB3の正常性を確認する。
以上本発明者によってなされた発明を、前記実施形態に基づき具体的に説明したが、本発明は、前記実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、32ビットの単位でパラレルに記憶データの入出力を行う記憶装置において、16ビットの単位でデータの入出力を行う不揮発性メモリを用いた場合には、3個の不揮発性メモリの組み合わせで構成できる。垂直パリティビット用に1の不揮発性メモリを用意してもよい。4ビットの単位でデータの入出力を行う不揮発性メモリでは、8ビットの単位でパラレルに記憶データの入出力を行う記憶装置を構成することができる。このように、記憶装置に対する入出力ビット数Mと、不揮発性メモリの入出力ビット数Nの関係は、MはNの2以上の整数倍であることが必要である。また、図1等において、メモリチップ5A〜5Cは、必要とされる記憶容量に応じてそれぞれが物理的な意味において1又は複数のメモリチップで構成される。
不揮発性メモリは、前記NAND型フラッシュメモリの他に、エラービットの発生が他のメモリデバイスに比べて比較的多く、それを許容することを前提とするデバイスでれば何であってよい。また、この実施例の記憶装置は、1インチや1.8インチのように前記2.5や3.5インチそれよりも小さなパッケージと同様な外形サイズに搭載れるもの、あるいは単に実装基板上に搭載されるもの等種々の実施形態を採ることができる。
この発明は、フラッシュメモリのような不揮発性メモリを用いたSSDに広く利用することができる。
1…データバス、2…(水平)パリティ生成器、3A〜3E…(垂直)パリティ生成器、4A〜4E…バッファ、5A〜5E…メモリチップ、6…マルチプレクサ、7…データ領域、8…管理領域、
10…コントローラ、100…記憶装置、200…ホスト、
CPU…中央処理装置、PGB…パリティ生成部、G…ゲート回路、CP…キャパシタ、SW…スイッチ。
10…コントローラ、100…記憶装置、200…ホスト、
CPU…中央処理装置、PGB…パリティ生成部、G…ゲート回路、CP…キャパシタ、SW…スイッチ。
Claims (5)
- 複数の半導体不揮発性メモリと、
上記複数の半導体不揮発性メモリに対してアクセスを行うコントローラと有し、
上記複数の半導体不揮発性メモリは、
パラレルに入出力される記憶データを分担して受け持つ2以上の半導体不揮発性メモリと、
上記記憶データに対応した水平パリティビットを受け持つ半導体不揮発性メモリと、
上記個々の半導体不揮発性メモリに記憶される記憶データに対応した垂直パリティビットを受け持つ半導体不揮発性メモリとを有し、
上記コントローラは、
上記水平パリティビットを生成する第1パリティ生成器と、
上記垂直パリティビットを生成する第2パリティ生成器と、
上記水平パリティビットを用いる水平方向誤りビット特定部と、
上記垂直パリティビットを用いる垂直方向誤りビット特定部と、
上記水平方向及び垂直方向誤りビット特定部からの信号により上記記憶データの誤りビット訂正を行うビット訂正部とを有する、
記憶装置。 - 請求項1において、
上記記憶データを分担して受け持つ2以上の半導体不揮発性メモリと上記水平パリティビットを受け持つ半導体不揮発性メモリは、上記分担する記憶データと上記水平パリティビットとをRAID5又はRAID6に従って分散記録する、
記憶装置。 - 請求項2において、
上記半導体不揮発性メモリは、データ領域とそれに対応した管理領域を有し、
管理領域は、それに対応したデータ領域に対するメモリアクセスの無効が記録され、
上記メモリアクセスの無効が記録されないデータ領域及び管理領域において、かかるデータ領域には上記分担記憶データと水平パリティビットが記憶され、管理領域に上記垂直パリティビットが記憶される、
記憶装置。 - 請求項3において、
上記半導体不揮発性メモリは、NAND型フラッシュメモリチップが1ないし複数個から構成される、
記憶装置。 - 請求項4において、
上記複数のNAND型フラッシュメモリ及びコントローラは、1インチ〜3.5インチのハードディスクドライブ装置に対応された外型サイズ及びコネクタピンを備えたパッケージに搭載され、
上記1インチ〜3.5インチのハードディスクドライブ装置との互換性を持つ、
記憶装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008182099A JP2010020648A (ja) | 2008-07-12 | 2008-07-12 | 記憶装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008182099A JP2010020648A (ja) | 2008-07-12 | 2008-07-12 | 記憶装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010020648A true JP2010020648A (ja) | 2010-01-28 |
JP2010020648A5 JP2010020648A5 (ja) | 2011-06-02 |
Family
ID=41705453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008182099A Pending JP2010020648A (ja) | 2008-07-12 | 2008-07-12 | 記憶装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010020648A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012038168A (ja) * | 2010-08-09 | 2012-02-23 | Toshiba Corp | 記録ユニット及び故障チップ特定方法 |
WO2012081733A1 (en) * | 2010-12-15 | 2012-06-21 | Kabushiki Kaisha Toshiba | Semiconductor storage device |
US20120313638A1 (en) * | 2009-12-08 | 2012-12-13 | Christian Patak | Magnetic field sensor |
JP2013536959A (ja) * | 2010-08-31 | 2013-09-26 | マイクロン テクノロジー, インク. | ストライプに基づく不揮発性多値メモリ操作 |
JP2015535640A (ja) * | 2012-12-03 | 2015-12-14 | ウェスタン デジタル テクノロジーズ インコーポレーテッド | ランタイム可変raid保護スキームを有する方法、ソリッドステートドライブコントローラー、及びデータ格納装置 |
CN109144767A (zh) * | 2017-06-16 | 2019-01-04 | 西部数据技术公司 | 使用奇偶校验代码的数据恢复和再生 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04307647A (ja) * | 1991-04-04 | 1992-10-29 | Fuji Photo Film Co Ltd | メモリカードの記憶管理方式 |
JPH04321123A (ja) * | 1991-04-22 | 1992-11-11 | Toshiba Corp | ディスクアレイ制御装置 |
JPH10240453A (ja) * | 1997-02-28 | 1998-09-11 | Nec Corp | ディスクアレイ装置 |
JPH1139104A (ja) * | 1997-07-15 | 1999-02-12 | Samsung Electron Co Ltd | 外部記憶サブシステムのパリティ記憶及びデータ修復方法 |
JP2000207137A (ja) * | 1999-01-12 | 2000-07-28 | Kowa Co | 情報記憶装置 |
JP2008009943A (ja) * | 2006-06-30 | 2008-01-17 | Toshiba Corp | メモリコントローラ |
JP2008084270A (ja) * | 2006-09-29 | 2008-04-10 | Hitachi Ltd | データ比較機能を有するストレージシステム |
JP2008102819A (ja) * | 2006-10-20 | 2008-05-01 | Hitachi Ltd | 記憶装置及び記憶方法 |
-
2008
- 2008-07-12 JP JP2008182099A patent/JP2010020648A/ja active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04307647A (ja) * | 1991-04-04 | 1992-10-29 | Fuji Photo Film Co Ltd | メモリカードの記憶管理方式 |
JPH04321123A (ja) * | 1991-04-22 | 1992-11-11 | Toshiba Corp | ディスクアレイ制御装置 |
JPH10240453A (ja) * | 1997-02-28 | 1998-09-11 | Nec Corp | ディスクアレイ装置 |
JPH1139104A (ja) * | 1997-07-15 | 1999-02-12 | Samsung Electron Co Ltd | 外部記憶サブシステムのパリティ記憶及びデータ修復方法 |
JP2000207137A (ja) * | 1999-01-12 | 2000-07-28 | Kowa Co | 情報記憶装置 |
JP2008009943A (ja) * | 2006-06-30 | 2008-01-17 | Toshiba Corp | メモリコントローラ |
JP2008084270A (ja) * | 2006-09-29 | 2008-04-10 | Hitachi Ltd | データ比較機能を有するストレージシステム |
JP2008102819A (ja) * | 2006-10-20 | 2008-05-01 | Hitachi Ltd | 記憶装置及び記憶方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120313638A1 (en) * | 2009-12-08 | 2012-12-13 | Christian Patak | Magnetic field sensor |
JP2012038168A (ja) * | 2010-08-09 | 2012-02-23 | Toshiba Corp | 記録ユニット及び故障チップ特定方法 |
JP2013536959A (ja) * | 2010-08-31 | 2013-09-26 | マイクロン テクノロジー, インク. | ストライプに基づく不揮発性多値メモリ操作 |
US9235503B2 (en) | 2010-08-31 | 2016-01-12 | Micron Technology, Inc. | Stripe-based non-volatile multilevel memory operation |
WO2012081733A1 (en) * | 2010-12-15 | 2012-06-21 | Kabushiki Kaisha Toshiba | Semiconductor storage device |
JP2015535640A (ja) * | 2012-12-03 | 2015-12-14 | ウェスタン デジタル テクノロジーズ インコーポレーテッド | ランタイム可変raid保護スキームを有する方法、ソリッドステートドライブコントローラー、及びデータ格納装置 |
CN109144767A (zh) * | 2017-06-16 | 2019-01-04 | 西部数据技术公司 | 使用奇偶校验代码的数据恢复和再生 |
CN109144767B (zh) * | 2017-06-16 | 2021-12-24 | 西部数据技术公司 | 数据存储系统及其操作方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11941257B2 (en) | Method and apparatus for flexible RAID in SSD | |
US10761766B2 (en) | Memory management system and method | |
US7984325B2 (en) | Storage control device, data recovery device, and storage system | |
US9552290B2 (en) | Partial R-block recycling | |
US8694865B2 (en) | Data storage device configured to reduce buffer traffic and related method of operation | |
US9135112B2 (en) | Policy for read operations addressing on-the-fly decoding failure in non-volatile memory | |
US20170199670A1 (en) | Memory system with multiple striping of raid groups and method for performing the same | |
US9058288B2 (en) | Redundant storage in non-volatile memory by storing redundancy information in volatile memory | |
US11599285B2 (en) | Memory system with multiple striping of raid groups and method for performing the same | |
US20180349645A1 (en) | Storage System and Method for Improved Generation and Storage of Data Protection Information | |
JP2010020648A (ja) | 記憶装置 | |
US11763905B2 (en) | Storage system and method for data protection during power loss | |
KR20230160620A (ko) | 메모리 시스템에서 데이터를 복구하는 장치 및 방법 | |
WO2013023564A9 (en) | Method and apparatus for flexible raid in ssd |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110413 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110413 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130130 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130605 |