説明

メモリシステム

【課題】2値領域と多値領域との間のデータ転送を効率的に行う。
【解決手段】メモリシステム30は、ページ単位で書き込みが行われ、かつ、1ビットを記憶単位とする第1の記憶領域と、nビット(nは2以上の整数)を記憶単位とする第2の記憶領域とを有する不揮発性メモリ32と、第1の記憶領域から読み出された読み出しデータと、外部から入力された入力データとを結合してnページからなる書き込みデータを生成し、この書き込みデータを第2の記憶領域に書き込む制御部31とを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリシステムに係り、例えばNAND型フラッシュメモリを備えたメモリシステムに関する。
【背景技術】
【0002】
電気的書き換え可能な不揮発性半導体メモリ(EEPROM:Electrically Erasable Programmable Read Only Memory)の1つとして、NAND型フラッシュメモリが知られている。NAND型フラッシュメモリは、ファイルメモリやメモリカードをはじめとする各種記録メディアとして使用されている。
【0003】
NAND型フラッシュメモリは高集積化が進んでいるが、高集積化を達成する技術の1つとして多値化が挙げられる。多値化とは、1つのセルに通常2値であるところを4値、8値、16値といったデータを記憶できる仕組みをいう。しかし、多値化を行うと、セルの閾値電圧が変動してデータがシフトする現象、いわゆるデータ化けを起こしやすくなる。また、書き込み動作、及び読み出し動作が複雑になることから、書き込み動作及び読み出し動作が遅くなるという問題がある。一方、2値データは、多値データに比べて書き込み動作及び読み出し動作が速い。
【0004】
このため、NAND型フラッシュメモリが、2値データを記憶する2値領域と、多値データを記憶する多値領域とを含むメモリ領域を備えることで、2値領域と多値領域とにデータを書き分けることができる(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2007−242163号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は、2値領域と多値領域との間のデータ転送を効率的に行うことが可能なメモリシステムを提供する。
【課題を解決するための手段】
【0007】
本発明の一態様に係るメモリシステムは、ページ単位で書き込みが行われ、かつ、1ビットを記憶単位とする第1の記憶領域と、nビット(nは2以上の整数)を記憶単位とする第2の記憶領域とを有する不揮発性メモリと、前記第1の記憶領域から読み出された読み出しデータと、外部から入力された入力データとを結合してnページからなる書き込みデータを生成し、この書き込みデータを前記第2の記憶領域に書き込む制御部とを具備する。
【0008】
本発明の一態様に係るメモリシステムは、ページ単位で書き込みが行われ、かつ、1ビットを記憶単位とする第1の記憶領域と、nビット(nは2以上の整数)を記憶単位とする第2の記憶領域とを有する不揮発性メモリと、前記第1の記憶領域から読み出された読み出しデータと、外部から入力された入力データとを結合してnページからなる書き込みデータを生成し、この書き込みデータを前記第1の記憶領域に書き込む制御部とを具備し、前記不揮発性メモリは、前記第1の記憶領域に書き込まれた書き込みデータを前記第2の領域にコピーする。
【0009】
本発明の一態様に係るメモリシステムは、ページ単位で書き込みが行われ、かつ、1ビットを記憶単位とする第1の記憶領域と、nビット(nは2以上の整数)を記憶単位とする第2の記憶領域とを有する不揮発性メモリと、前記第1の記憶領域から読み出された複数の読み出しデータを結合してnページからなる書き込みデータを生成し、この書き込みデータを前記第2の記憶領域に書き込む制御部とを具備する。
【発明の効果】
【0010】
本発明によれば、2値領域と多値領域との間のデータ転送を効率的に行うことが可能なメモリシステムを提供することができる。
【図面の簡単な説明】
【0011】
【図1】第1の実施形態に係る不揮発性記憶装置20の構成を示すブロック図。
【図2】メモリセルアレイ33に含まれる1個のブロックの構成を示す等価回路図。
【図3】メモリセルトランジスタの閾値分布とデータとの関係を説明する図。
【図4】第1の実施形態に係るメモリシステム30のデータ転送動作を示すフローチャート。
【図5】メモリシステム30のデータ転送動作を説明する概略図。
【図6】メモリシステム30のデータ転送時間を説明する図。
【図7】メモリシステム30のデータ転送動作の他の実施例を説明する概略図。
【図8】第2の実施形態に係るメモリシステム30のデータ転送動作を示すフローチャート。
【図9】メモリシステム30のデータ転送動作を説明する概略図。
【図10】メモリシステム30のデータ転送動作の他の実施例を説明する概略図。
【図11】第3の実施形態に係るメモリシステム30のデータ転送動作を示すフローチャート。
【図12】メモリシステム30のデータ転送動作を説明する概略図。
【発明を実施するための形態】
【0012】
以下、本発明の実施形態について図面を参照して説明する。なお、以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【0013】
(第1の実施形態)
図1は、本発明の第1の実施形態に係る不揮発性記憶装置20の構成を示すブロック図である。不揮発性記憶装置20は、不揮発性半導体メモリを備えた記憶装置であり、例えばメモリカードなどから構成される。
【0014】
記憶装置20は、ホスト10に接続されており、例えば、ホスト10から電源供給を受けて各種の動作を実行する。記憶装置20は、ホストインタフェース21、制御部(CPU:Central Processing Unit)22、RAM(Random Access Memory)23、ROM(Read Only Memory)24、及びメモリシステム30を備えており、これらモジュールはシステムバス25を介して接続されている。
【0015】
ホストインタフェース21は、例えばUSB(Universal Serial Bus)インタフェースからなり、データ転送規格であるUSB規格に基づいてホストとの間でデータの送受信を制御する。
【0016】
CPU22は、記憶装置20全体の動作を統括的に制御する。CPU22は、ROM24や、後述するNANDフラッシュメモリ32に格納されたファームウェア(FW)を用いて、記憶装置20の各種動作を制御する。また、CPU22は、ホスト10から書き込みコマンド、読み出しコマンド、及び消去コマンドを受け、NANDフラッシュメモリ32に対して書き込み、読み出し、及び消去動作を制御する。この際、CPU22は、管理情報や各種テーブルをRAM23に格納し、これらのデータを用いて記憶装置20の各種動作を制御する。
【0017】
メモリシステム30は、メモリ制御部31、不揮発性半導体メモリとしてのNANDフラッシュメモリ32、ECC(Error Checking and Correcting)デコーダ35、バッファメモリ36及び37、セレクタ38、及びECCエンコーダ39を備えている。
【0018】
メモリ制御部31は、CPU22から送られるコマンドに応じて、メモリシステム30内のモジュールを制御する。バッファメモリ36は、ECCデコーダ35から送られる読み出しデータを一時的に格納する。バッファメモリ37は、メモリ制御部31から送られる入力データを一時的に格納する。セレクタ38は、メモリ制御部31の制御のもと、バッファメモリ36に格納された読み出しデータと、バッファメモリ37に格納された入力データとの一方を選択して出力する。
【0019】
ECCエンコーダ39は、セレクタ38から送られるデータに対して、エラー訂正符号を生成する。そして、ECCエンコーダ39は、エラー訂正符号が付加されたデータを出力する。すなわち、ECCエンコーダ39は、セレクタ38から送られるデータを、NANDフラッシュメモリ32に記録するためのデータフォーマットに変換する。ECCエンコーダ39は、エラー訂正能力が低い、すなわち、エラー訂正可能なビット数が少ない第1のECC回路と、エラー訂正能力が高い、すなわち、上記第1のECC回路よりもエラー訂正可能なビット数が多い第2のECC回路との2種類のECC回路を備えている。第1のECC回路は、エラーが発生する確率が低いデータに対してエラー訂正符号を生成し、また、第1のデータサイズを単位としてエラー訂正符号を生成する。第2のECC回路は、エラーが発生する確率が高いデータに対してエラー訂正符号を生成し、また、第1のデータサイズより大きい第2のデータサイズを単位としてエラー訂正符号を生成する。
【0020】
ECCデコーダ35は、フラッシュメモリ32からの読み出しデータに対してエラー訂正を行う。この際、ECCデコーダ35は、読み出しデータに含まれるエラー訂正符号を用いてエラー訂正を行う。そして、ECCデコーダ35は、エラー訂正符号を除いた読み出しデータを出力する。ECCエンコーダ39と同様に、ECCデコーダ35は、エラー訂正能力が低い、すなわち、エラー訂正可能なビット数が少ない第1のECC回路と、エラー訂正能力が高い、すなわち、上記第1のECC回路よりもエラー訂正可能なビット数が多い第2のECC回路との2種類のECC回路を備えている。そして、エラー訂正符号が付加されたデータのフォーマットに応じて、2種類のECC回路の一方が用いられる。
【0021】
NANDフラッシュメモリ32は、データ消去の単位であるブロックを複数個有するメモリセルアレイ33を備えている。メモリセルアレイ33は、1個のメモリセルが1ビットのデータ(2値データ)を記憶するように構成された2値領域33−1と、1個のメモリセルが2ビット以上のデータ(多値データ)を記憶するように構成された多値領域33−2とを備えている。2値領域33−1と多値領域33−2とはそれぞれ、複数のブロックを有しており、フロックを構成するメモリセルの構成も同じである。メモリセルに複数ビットを記録するには、メモリセルに対して閾値電圧の設定を細分化することで実現できる。
【0022】
図2は、メモリセルアレイ33に含まれる1個のブロックの構成を示す等価回路図である。ブロックは、ロウ方向に沿って順に配置されたm個のNANDストリングを備えている(mは、1以上の整数)。各NANDストリングは、2個の選択トランジスタST1、ST2、及びn個のメモリセル(メモリセルトランジスタという場合もある)MTを備えている(nは、1以上の整数)。m個のNANDストリングにそれぞれ含まれる選択トランジスタST2は、ドレインがビット線BL0〜BLm−1に接続され、ゲートが選択ゲート線SGDに共通接続されている。また、m個のNANDストリングにそれぞれ含まれる選択トランジスタST1は、ソースがソース線SLに共通接続され、ゲートが選択ゲート線SGSに共通接続されている。
【0023】
各NANDストリングにおいて、n個のメモリセルトランジスタMTは、選択トランジスタST2のソースと選択トランジスタST1のドレインとの間に、それぞれの電流経路が直列接続されるように配置されている。すなわち、複数のメモリセルトランジスタMTは、隣接するもの同士で拡散領域(ソース領域若しくはドレイン領域)を共有するような形でカラム方向に直列接続される。
【0024】
そして、例えば、最もソース線側に位置するメモリセルトランジスタMTから順に、制御ゲート電極がワード線WL0〜WLn−1にそれぞれ接続されている。従って、ワード線WL0に接続されたメモリセルトランジスタMTのソースは選択トランジスタST1のドレインに接続され、ワード線WLn−1に接続されたメモリセルトランジスタMTのドレインは選択トランジスタST2のソースに接続されている。
【0025】
ワード線WL0〜WLn−1は、ブロック内のNANDストリング間で、メモリセルトランジスタMTの制御ゲート電極を共通に接続している。つまり、ブロック内において同一行にあるメモリセルトランジスタMTの制御ゲート電極は、同一のワード線WLに接続される。この同一のワード線WLに接続されるm個のメモリセルトランジスタMTは、2値領域33−1では1ページとして取り扱われ、多値領域33−2では複数ページとして取り扱われ、このページ単位でデータの書き込み及びデータの読み出しが行われる。
【0026】
また、ビット線BL0〜BLm−1は、ブロック間で、選択トランジスタST2のドレインを共通接続している。つまり、複数のブロック内において同一列にあるNANDストリングは、同一のビット線BLに接続される。
【0027】
各メモリセルトランジスタMTは、半導体基板(或いはウェル)上にトンネル絶縁膜を介在して形成された積層ゲート構造を備えたMOSFET(Metal Oxide Semiconductor Field Effect Transistor)である。積層ゲート構造は、トンネル絶縁膜上に、電荷蓄積層(浮遊ゲート電極)、ゲート間絶縁膜、制御ゲート電極が順に積層されて構成される。メモリセルトランジスタMTは、浮遊ゲート電極に蓄積される電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じてデータを記憶する。多値領域33−2のメモリセルトランジスタMTは、閾値電圧の分布を細分化して2ビット以上の多値データを記憶する。
【0028】
本実施形態では、多値領域33−2に含まれる1個のメモリセルトランジスタMTは、一例として、3ビットのデータを記憶するものとする。従って、図2に示す共通のワード線WLに接続された1行は、3ページに対応する。一方、2値領域33−1に含まれる1個のメモリセルトランジスタMTは、1ビットのデータを記憶する。従って、図2に示す共通のワード線WLに接続された1行は、1ページに対応する。
【0029】
図3は、メモリセルトランジスタの閾値分布とデータとの関係を説明する図である。図3の横軸はメモリセルトランジスタMTの閾値電圧Vth、縦軸はメモリセルトランジスタMTの数(セル数)を示している。メモリセルトランジスタMTに3ビットのデータを書き込む場合は、下位ビットデータを書き込むための第1ページ書き込みと、中位ビットデータを書き込むための第2ページ書き込みと、上位ビットデータを書き込むための第3ページ書き込みとが行われる。
【0030】
メモリセルトランジスタMTのデータを消去すると、この閾値電圧は、“A”レベル(消去状態)に設定される。例えば、消去状態の“A”レベルは、負側に設定される。
【0031】
第1ステージにおいて第1ページ書き込みを行うことにより、閾値電圧が“A”レベル(消去状態)の“1”データと、閾値電圧が“A”レベルより高い“M”レベルの“0”データとのいずれかをメモリセルトランジスタMTは記憶する。“1”データの場合には、メモリセルトランジスタMTの閾値電圧をシフトさせない。“0”データの場合には、メモリセルトランジスタMTの閾値電圧を正側にシフトさせる。“0”データの書き込みは、ベリファイ電圧Vmを用いて行われる。2値領域33−1へのデータ書き込みは、第1ステージで終了である。
【0032】
続いて、第2ステージにおいて第2ページ書き込みを行うことにより、“11”データ(閾値電圧“A”)、“01”データ(閾値電圧“B´”)、“00”データ(閾値電圧“C´”)、及び“10”データ(閾値電圧“D´”)の4個のデータのいずれかをメモリセルトランジスタMTは記憶する。Vb´〜Vd´は、第2ページ書き込み時のベリファイ電圧である。
【0033】
続いて、第3ステージにおいて第3ページ書き込みを行うことにより、“111”データ(閾値電圧“A”)、“011”データ(閾値電圧“B”)、“001”データ(閾値電圧“C”)、“101”データ(閾値電圧“D”)、“100”データ(閾値電圧“E”)、“000”データ(閾値電圧“F”)、“010”データ(閾値電圧“G”)、及び“110”データ(閾値電圧“H”)の8個のデータのいずれかをメモリセルトランジスタMTは記憶する。閾値電圧は、A<B<C<D<E<F<G<H<Vreadである。Vb〜Vhは、第3ページ書き込み時のベリファイ電圧である。データ読み出し時には、各ベリファイ電圧より若干低い読み出し電圧を用いて読み出し動作が実行される。なお、閾値電圧とデータとの割り付けは、任意に設定可能である。
【0034】
2値領域33−1は、高い信頼性が要求されるデータや管理データなどを格納するために用いられる。また、2値領域33−1は、多値領域33−2に比べて書き込み速度が速いため、一時的に書き込みが必要なデータを格納するためにも用いられる。
【0035】
一方、多値領域33−2は、隣接データ間の閾値電圧差が小さいため、閾値電圧が変動して隣接データの閾値電圧に達するデータシフトが発生する確率が高い。このため、多値領域33−2は、2値領域33−1に格納されるデータ以外の主要なデータやユーザデータなどを格納するために用いられる。
【0036】
NANDフラッシュメモリ32は、ページバッファ34を備えている。本実施形態では、ページバッファ34は、例えば3ページの記憶容量を有している。書き込みデータは、ページバッファに一旦格納され、ページ単位で順次メモリセルアレイ33に書き込まれる。その他に、NANDフラッシュメモリ32は、データを検知及び増幅するセンスアンプや、ワード線WLに各種電圧を印加するワード線制御回路などを備えているが、これらの回路についてはフラッシュメモリが備える一般的な回路と同じであるため、図示を省略する。
【0037】
(動作)
このように構成された記憶装置20の動作について説明する。
【0038】
多値領域33−2へのデータ書き込みでは、ベリファイ電圧を用いてメモリセルトランジスタMTの閾値電圧を確認しながら、ワード線WLに印加する書き込み電圧を徐々に上げて3ページ分の書き込みを行う。このように、多値領域33−2は、データ書き込み動作が複雑なため、2値領域33−1へのデータ書き込みに比べて書き込み時間が長い。
【0039】
このため、メモリ制御部31は、ホスト10から送られかつ一時的に格納する必要があるデータ(一時的なデータ)は、一旦2値領域33−1に格納する。これにより、一時的なデータの書き込み時間を低減することができる。一時的なデータの書き込みが終了すると、メモリ制御部31は、2値領域33−1のデータを多値領域33−2に移す作業を実行する。このような制御を行うことで、CPU22から見た場合、多値領域33−2への遅い書き込み動作が見えなくなる効果がある。
【0040】
以下に、2値領域33−1のデータを多値領域33−2に移す動作について説明する。図4は、メモリシステム30のデータ転送動作を示すフローチャートである。図5は、メモリシステム30のデータ転送動作を説明する概略図である。
【0041】
まず、メモリ制御部31は、CPU22から発行される転送コマンドを受け(ステップS100)、この転送コマンドを解釈する。続いて、メモリ制御部31は、CPU22に対して、ビジー信号を活性化する(ステップS101)。
【0042】
続いて、メモリ制御部31は、フラッシュメモリ32の2値領域33−1から1ページ分のデータを読み出す(ステップS102)。具体的には、メモリ制御部31の制御のもと、フラッシュメモリ32は、メモリセルアレイ33の2値領域33−1から1ページ分のデータをページバッファ34に格納する。この1ページは、例えば、一時的に2値領域33−1に書き込まれたデータであり、本来、多値領域33−2に書き込むべきデータである。
【0043】
続いて、ECCデコーダ35は、フラッシュメモリ32の2値領域33−1から読み出された1ページ分の読み出しデータに対して、エラー訂正を行う(ステップS103)。具体的には、ECCデコーダ35は、読み出しデータに含まれるエラー訂正符号を用いてエラー訂正を行った後、エラー訂正符号を除いた読み出しデータを出力する。なお、今回の読み出しデータは2値領域33−1からのものであるため、エラー訂正処理は、訂正能力の小さいECC回路を用いて行われる。
【0044】
続いて、メモリ制御部31は、ECCデコーダ35からの読み出しデータをバッファメモリ36に格納する(ステップS104)。バッファメモリ36に格納された読み出しデータは、セレクタ38を介してECCエンコーダ39に送られる。
【0045】
続いて、ECCエンコーダ39は、セレクタ38から送られた読み出しデータに対してエラー訂正符号を生成する(ステップS105)。そして、ECCエンコーダ39は、読み出しデータを多値領域33−2用のデータフォーマットに変換する。すなわち、ECCエンコーダ39は、エラー訂正符号が付加された読み出しデータを出力する。なお、今回の読み出しデータは多値領域33−2に書き込まれるものであるため、符号生成処理は、訂正能力の大きいECC回路を用いて行われる。
【0046】
続いて、メモリ制御部31は、ECCエンコーダ39からの読み出しデータをフラッシュメモリ32の多値領域33−2に書き込む(ステップS106)。具体的には、メモリ制御部31の制御のもと、フラッシュメモリ32は、1ページ分の読み出しデータをページバッファ34に格納し、この読み出しデータを多値領域33−2に書き込む。
【0047】
続いて、メモリ制御部31は、CPU22に対して、レディー信号を活性化する(ステップS107)。続いて、メモリ制御部31は、CPU22から2ページ分の入力データを受ける(ステップS108)。この入力データは、例えば、ホスト10から入力されたデータや、CPU22が生成したテーブルなどのデータである。続いて、メモリ制御部31は、入力データをバッファメモリ37に格納する(ステップS109)。バッファメモリ37に格納された入力データは、セレクタ38を介してECCエンコーダ39に送られる。
【0048】
続いて、ECCエンコーダ39は、セレクタ38から送られた入力データに対してエラー訂正符号を生成する(ステップS110)。そして、ECCエンコーダ39は、入力データを多値領域33−2用のデータフォーマットに変換する。すなわち、ECCエンコーダ39は、エラー訂正符号が付加された入力データを出力する。なお、今回の入力データは多値領域33−2に書き込まれるものであるため、符号生成処理は、訂正能力の大きいECC回路を用いて行われる。
【0049】
続いて、メモリ制御部31は、ECCエンコーダ39からの入力データを上記読み出しデータと結合してフラッシュメモリ32の多値領域33−2に書き込む(ステップS111)。具体的には、メモリ制御部31の制御のもと、フラッシュメモリ32は、2ページ分の入力データをページバッファ34に格納し、この入力データと上記読み出しデータとを結合した3ページ分のデータを、多値領域33−2に含まれかつ共通のワード線WLに接続された一列のメモリセルトランジスタ群に書き込む。
【0050】
このような制御を行うことで、CPU22から見た場合、本来1ページの読み出し、3ページの書き込み動作が必要であったものが、2ページの書き込み動作のみで2値領域33−1から多値領域33−2へのデータ転送動作を終了させることが可能になる。
【0051】
(効果)
以上詳述したように第1の実施形態では、2値領域33−1から多値領域33−2へのデータ転送動作コマンドをメモリシステム30がCPU22から受けた場合に、2値領域33−1から読み出した1ページをCPU22側に出力せずにフラッシュメモリ32に送る。さらに、CPU22から受けた2ページを先の1ページと結合して多値領域33−2の記憶単位である3ページを準備する。そして、この3ページを多値領域33−2に書き込むようにしている。
【0052】
図6は、第1の実施形態に係るメモリシステム30のデータ転送時間を説明する図である。比較例では、以下のような処理の流れに応じた時間がかかる。(1)フラッシュメモリから1ページを読み出す時間、(2)1ページをデコード(DEC)する時間、(3)1ページをCPU22へ出力する時間、(4)3ページが入力される時間、(5)3ページをエンコード(ENC)する時間、(6)3ページをフラッシュメモリに書き込む時間。
【0053】
一方、第1の実施形態では、以下のような処理の流れに応じた時間がかかる。(1)フラッシュメモリから1ページを読み出す時間、(2)1ページをデコードする時間、(3)1ページをエンコードする時間、(4)2ページが入力される時間、(5)2ページをエンコードする時間、(6)3ページをフラッシュメモリに書き込む時間。この結果、図6に示すように、第1の実施形態のデータ転送動作では、比較例に比べて、処理時間を短縮することができる。また、2値領域33−1から多値領域33−2へのデータ転送を効率的に行うことが可能となる。
【0054】
また、2値領域33−1から多値領域33−2へ移すコピーデータがCPU22に出力されないため、CPU22の負荷を低減することが可能である。
【0055】
また、多値領域33−2にデータを記録する際、多値領域33−2用のデータフォーマットに変換している。すなわち、エラー訂正能力の大きいエラー訂正符号を書き込みデータに付加した後、この書き込みデータを多値領域33−2に記録している。これにより、多値領域33−2に格納されたデータの信頼性を向上させることができる。
【0056】
なお、入力データを先に多値領域33−2に書き込み、その後に2値領域33−1から多値領域33−2へ読み出しデータを書き込むというように、入力データと読み出しデータとの書き込み順序を逆にしてもよい。この場合、図4において、ステップS101〜S106と、ステップS107〜S111とを入れ替えればよい。
【0057】
また、2値領域33−1から多値領域33−2へ移すデータが2ページであってもよい。図7は、メモリシステム30のデータ転送動作の他の実施例を説明する概略図である。この場合、2値領域33−1からは2ページの読み出しデータが連続して読み出され、CPU22からは1ページの入力データが入力される。そして、これら3ページが、多値領域33−2に含まれかつ共通のワード線WLに接続された一列のメモリセルトランジスタ群に書き込まれる。このような転送動作を行う場合でも、データ転送時間を短縮することができる。
【0058】
(第2の実施形態)
第2の実施形態は、2値領域33−1内に多値領域33−2に移すべき3ページが存在する場合に、2値領域33−1から3ページを読み出し、CPU22を介さずに、この3ページを多値領域33−2に書き込むようにしている。
【0059】
図8は、本発明の第2の実施形態に係るメモリシステム30のデータ転送動作を示すフローチャートである。図9は、メモリシステム30のデータ転送動作を説明する概略図である。図9に示すように、多値領域33−2へ移す対象である3ページは、例えば、互いに1ページ以上を開けて2値領域33−1に格納されている。
【0060】
まず、メモリ制御部31は、CPU22から発行される転送コマンドを受け(ステップS200)、この転送コマンドを解釈する。続いて、メモリ制御部31は、CPU22に対して、ビジー信号を活性化する(ステップS201)。
【0061】
続いて、メモリ制御部31は、フラッシュメモリ32の2値領域33−1から1ページ分のデータを読み出す(ステップS202)。具体的には、メモリ制御部31の制御のもと、フラッシュメモリ32は、メモリセルアレイ33の2値領域33−1から1ページ分のデータをページバッファ34に格納する。この1ページは、例えば、一時的に2値領域33−1に書き込まれたデータであり、本来、多値領域33−2に書き込むべきデータである。
【0062】
続いて、ECCデコーダ35は、フラッシュメモリ32の2値領域33−1から読み出された1ページ分の読み出しデータに対して、エラー訂正を行う(ステップS203)。具体的には、ECCデコーダ35は、読み出しデータに含まれるエラー訂正符号を用いてエラー訂正を行い、エラー訂正符号を除いた読み出しデータを出力する。なお、今回の読み出しデータは2値領域33−1からのものであるため、エラー訂正処理は、訂正能力の小さいECC回路を用いて行われる。
【0063】
続いて、メモリ制御部31は、ECCデコーダ35からの読み出しデータをバッファメモリ36に格納する(ステップS204)。バッファメモリ36に格納された読み出しデータは、セレクタ38を介してECCエンコーダ39に送られる。
【0064】
続いて、ECCエンコーダ39は、セレクタ38から送られた読み出しデータに対してエラー訂正符号を生成する(ステップS205)。そして、ECCエンコーダ39は、読み出しデータを多値領域33−2用のデータフォーマットに変換する。すなわち、ECCエンコーダ39は、エラー訂正符号が付加された読み出しデータを出力する。なお、今回の読み出しデータは多値領域33−2に書き込まれるものであるため、符号生成処理は、訂正能力の大きいECC回路を用いて行われる。
【0065】
続いて、メモリ制御部31は、ECCエンコーダ39からの読み出しデータをフラッシュメモリ32の多値領域33−2に書き込む(ステップS206)。具体的には、メモリ制御部31の制御のもと、フラッシュメモリ32は、1ページ分の読み出しデータをページバッファ34に格納し、この読み出しデータを多値領域33−2に書き込む。
【0066】
続いて、メモリ制御部31は、2値領域33−1から読み出されるデータが3ページになるまで、ステップS202〜S206の処理を繰り返す(ステップS207)。この時、メモリ制御部31は、2値領域33−1から読み出された3ページを結合し、多値領域33−2に含まれかつ共通のワード線WLに接続された一列のメモリセルトランジスタ群に書き込む。続いて、メモリ制御部31は、CPU22に対して、レディー信号を活性化する(ステップS208)。
【0067】
このような制御を行うことで、CPU22に処理負担をかけずに、2値領域33−1から多値領域33−2への3ページのデータ転送動作を行うことが可能になる。
【0068】
(効果)
以上詳述したように第2の実施形態では、2値領域33−1から多値領域33−2へのデータ転送動作コマンドをメモリシステム30がCPU22から受けた場合に、2値領域33−1から読み出した3ページをCPU22側に出力せずにフラッシュメモリ32に送る。この際、多値領域33−2の記憶単位である3ページを結合して、多値領域33−2に含まれかつ共通のワード線WLに接続された一列のメモリセルトランジスタ群に書き込むようにしている。
【0069】
従って第2の実施形態によれば、3ページをCPU22へ出力する時間、及び3ページがCPU22から入力される時間を省くことが可能となる。これにより、2値領域33−1から多値領域33−2へのデータ転送時間を短縮することができる。また、2値領域33−1から多値領域33−2へのデータ転送を効率的に行うことが可能となる。
【0070】
また、2値領域33−1から多値領域33−2へ移すデータがCPU22に出力されないため、CPU22の負荷を低減することが可能である。その他の効果は、第1の実施形態と同じである。
【0071】
なお、2値領域33−1から多値領域33−2へ移すデータが2ページであってもよい。図10は、メモリシステム30のデータ転送動作の他の実施例を説明する概略図である。この場合、2値領域33−1からは2ページの読み出しデータが個別に読み出され、CPU22からは1ページの入力データが入力される。そして、これら3ページが、多値領域33−2に含まれかつ共通のワード線WLに接続された一列のメモリセルトランジスタ群に書き込まれる。1ページの入力データを多値領域33−2に書き込む動作は、第1の実施形態と同じである。このような転送動作を行う場合でも、データ転送時間を短縮することができる。
【0072】
(第3の実施形態)
第3の実施形態は、2値領域33−1から読み出した1ページと、CPU22から受けた2ページとから、多値領域33−2の記憶単位である3ページを準備する。続いて、この3ページを多値領域33−2用のデータフォーマットに変換した後、2値領域33−1に書き込む。そして、フラッシュメモリ32自身が、2値領域33−1の3ページを多値領域33−2にコピーするようにしている。
【0073】
図11は、本発明の第3の実施形態に係るメモリシステム30のデータ転送動作を示すフローチャートである。図12は、メモリシステム30のデータ転送動作を説明する概略図である。
【0074】
まず、メモリ制御部31は、CPU22から発行される転送コマンドを受け(ステップS300)、この転送コマンドを解釈する。続いて、メモリ制御部31は、CPU22に対して、ビジー信号を活性化する(ステップS301)。
【0075】
続いて、メモリ制御部31は、フラッシュメモリ32の2値領域33−1から1ページ分のデータを読み出す(ステップS302)。具体的には、メモリ制御部31の制御のもと、フラッシュメモリ32は、メモリセルアレイ33の2値領域33−1から1ページ分のデータをページバッファ34に格納する。この1ページは、例えば、一時的に2値領域33−1に書き込まれたデータであり、本来、多値領域33−2に書き込むべきデータである。
【0076】
続いて、ECCデコーダ35は、フラッシュメモリ32の2値領域33−1から読み出された1ページ分の読み出しデータに対して、エラー訂正を行う(ステップS303)。具体的には、ECCデコーダ35は、読み出しデータに含まれるエラー訂正符号を用いてエラー訂正を行い、エラー訂正符号を除いた読み出しデータを出力する。なお、今回の読み出しデータは2値領域33−1からのものであるため、エラー訂正処理は、訂正能力の小さいECC回路を用いて行われる。
【0077】
続いて、メモリ制御部31は、ECCデコーダ35からの読み出しデータをバッファメモリ36に格納する(ステップS304)。バッファメモリ36に格納された読み出しデータは、セレクタ38を介してECCエンコーダ39に送られる。
【0078】
続いて、ECCエンコーダ39は、セレクタ38から送られた読み出しデータに対してエラー訂正符号を生成する(ステップS305)。そして、ECCエンコーダ39は、読み出しデータを多値領域33−2用のデータフォーマットに変換する。すなわち、ECCエンコーダ39は、エラー訂正符号が付加された読み出しデータを出力する。この符号生成処理は、訂正能力の大きいECC回路を用いて行われる。
【0079】
続いて、メモリ制御部31は、ECCエンコーダ39からの読み出しデータをフラッシュメモリ32の2値領域33−1に書き込む(ステップS306)。具体的には、メモリ制御部31の制御のもと、フラッシュメモリ32は、1ページ分の読み出しデータをページバッファ34に格納し、この読み出しデータを2値領域33−1に書き込む。
【0080】
続いて、メモリ制御部31は、CPU22に対して、レディー信号を活性化する(ステップS307)。続いて、メモリ制御部31は、CPU22から2ページ分の入力データを受ける(ステップS308)。この入力データは、例えば、ホスト10から入力されたデータや、CPU22が生成したテーブルなどのデータである。続いて、メモリ制御部31は、入力データをバッファメモリ37に格納する(ステップS309)。バッファメモリ37に格納された入力データは、セレクタ38を介してECCエンコーダ39に送られる。
【0081】
続いて、ECCエンコーダ39は、セレクタ38から送られた入力データに対してエラー訂正符号を生成する(ステップS310)。そして、ECCエンコーダ39は、入力データを多値領域33−2用のデータフォーマットに変換する。すなわち、ECCエンコーダ39は、エラー訂正符号が付加された入力データを出力する。この符号生成処理は、訂正能力の大きいECC回路を用いて行われる。
【0082】
続いて、メモリ制御部31は、ECCエンコーダ39からの入力データを上記読み出しデータと結合してフラッシュメモリ32の2値領域33−1に書き込む(ステップS311)。具体的には、メモリ制御部31の制御のもと、フラッシュメモリ32は、2ページ分の入力データをページバッファ34に格納し、この入力データを上記読み出しデータの次の2ページに書き込む。これにより、多値領域33−2の記憶単位である3ページからなりかつ訂正能力の大きいエラー訂正符号が付加された書き込みデータが準備できる。
【0083】
続いて、メモリ制御部31は、2値領域33−1に格納された3ページを多値領域33−2にコピーするように、フラッシュメモリ32へ命令する。この命令を受けて、フラッシュメモリ32は、2値領域33−1から3ページを読み出し、ページバッファ34に格納する。そして、ページバッファ34の3ページを、多値領域33−2に含まれかつ共通のワード線WLに接続された一列のメモリセルトランジスタ群に書き込む(ステップS312)。この際、2値領域33−1に格納された3ページは、既に、多値領域33−2用の訂正能力が大きいエラー訂正符号が付加されているため、この3ページをフラッシュメモリ32の外に出力する必要はない。
【0084】
このような制御を行うことで、CPU22から見た場合、本来1ページの読み出し、3ページの書き込み動作が必要であったものが、2ページの書き込み動作のみで2値領域33−1から多値領域33−2へのデータ転送動作を終了させることが可能になる。
【0085】
(効果)
以上詳述したように第3の実施形態では、2値領域33−1から多値領域33−2へのデータ転送動作コマンドをメモリシステム30がCPU22から受けた場合に、2値領域33−1から読み出した1ページをCPU22側に出力せずにフラッシュメモリ32に送る。続いて、CPU22から受けた2ページを先の1ページと結合して多値領域33−2の記憶単位である3ページを準備する。続いて、この3ページを多値領域33−2用のデータフォーマットに変換した後、一旦2値領域33−1に書き込む。そして、フラッシュメモリ32自身が、2値領域33−1の3ページを多値領域33−2にコピーするようにしている。
【0086】
従って第3の実施形態によれば、1ページをCPU22へ出力する時間、及び1ページがCPU22から入力される時間を省くことが可能となる。これにより、2値領域33−1から多値領域33−2へのデータ転送時間を短縮することができる。また、2値領域33−1から多値領域33−2へのデータ転送を効率的に行うことが可能となる。
【0087】
また、2値領域33−1から多値領域33−2へ移すコピーデータがCPU22に出力されないため、CPU22の負荷を低減することが可能である。その他の効果は、第1の実施形態と同じである。
【0088】
なお、入力データを先に2値領域33−1に書き込み、その後に2値領域33−1内で読み出しデータを移動するようにしてもよい。この場合、図11において、ステップS301〜S306と、ステップS307〜S311とを入れ替えればよい。さらに、読み出しデータが2ページで、入力データが1ページであってもよい。
【0089】
本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲内で、構成要素を変形して具体化することが可能である。さらに、上記実施形態には種々の段階の発明が含まれており、1つの実施形態に開示される複数の構成要素の適宜な組み合わせ、若しくは異なる実施形態に開示される構成要素の適宜な組み合わせにより種々の発明を構成することができる。例えば、実施形態に開示される全構成要素から幾つかの構成要素が削除されても、発明が解決しようとする課題が解決でき、発明の効果が得られる場合には、これらの構成要素が削除された実施形態が発明として抽出されうる。
【符号の説明】
【0090】
MT…メモリセルトランジスタ、SGD,SGS…選択ゲート線、SL…ソース線、WL…ワード線、BL…ビット線、ST1,ST2…選択トランジスタ、10…ホスト、20…不揮発性記憶装置、21…ホストインタフェース、22…CPU、23…RAM、24…ROM、25…システムバス、30…メモリシステム、31…メモリ制御部、32…NANDフラッシュメモリ、33…メモリセルアレイ、33−1…2値領域、33−2…多値領域、34…ページバッファ、35…ECCデコーダ、36,37…バッファメモリ、38…セレクタ、39…ECCエンコーダ。

【特許請求の範囲】
【請求項1】
ページ単位で書き込みが行われ、かつ、1ビットを記憶単位とする第1の記憶領域と、nビット(nは2以上の整数)を記憶単位とする第2の記憶領域とを有する不揮発性メモリと、
前記第1の記憶領域から読み出された読み出しデータと、外部から入力された入力データとを結合してnページからなる書き込みデータを生成し、この書き込みデータを前記第2の記憶領域に書き込む制御部と、
を具備することを特徴とするメモリシステム。
【請求項2】
ページ単位で書き込みが行われ、かつ、1ビットを記憶単位とする第1の記憶領域と、nビット(nは2以上の整数)を記憶単位とする第2の記憶領域とを有する不揮発性メモリと、
前記第1の記憶領域から読み出された読み出しデータと、外部から入力された入力データとを結合してnページからなる書き込みデータを生成し、この書き込みデータを前記第1の記憶領域に書き込む制御部と、
を具備し、
前記不揮発性メモリは、前記第1の記憶領域に書き込まれた書き込みデータを前記第2の領域にコピーすることを特徴とするメモリシステム。
【請求項3】
ページ単位で書き込みが行われ、かつ、1ビットを記憶単位とする第1の記憶領域と、nビット(nは2以上の整数)を記憶単位とする第2の記憶領域とを有する不揮発性メモリと、
前記第1の記憶領域から読み出された複数の読み出しデータを結合してnページからなる書き込みデータを生成し、この書き込みデータをCPU(Central Processing Unit)を介さずに前記第2の記憶領域に書き込む制御部と、
を具備することを特徴とするメモリシステム。
【請求項4】
前記書き込みデータのエラー訂正符号を生成し、かつ前記書き込みデータを前記第2の記憶領域用のデータフォーマットに変換するエンコーダをさらに具備することを特徴とする請求項1乃至3のいずれかに記載のメモリシステム。
【請求項5】
前記読み出しデータのエラーを訂正するデコーダをさらに具備することを特徴とする請求項1乃至4のいずれかに記載のメモリシステム。
【請求項6】
読み出しデータを一時的に格納する第1のバッファと、
入力データを一時的に格納する第2のバッファと、
前記第1のバッファのデータと前記第2のバッファのデータとのいずれかを選択するセレクタとをさらに具備することを特徴とする請求項1乃至5のいずれかに記載のメモリシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2011−128984(P2011−128984A)
【公開日】平成23年6月30日(2011.6.30)
【国際特許分類】
【出願番号】特願2009−288316(P2009−288316)
【出願日】平成21年12月18日(2009.12.18)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】