IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 東芝メモリ株式会社の特許一覧

<>
  • 特開-メモリシステム及びデータ管理方法 図1
  • 特開-メモリシステム及びデータ管理方法 図2
  • 特開-メモリシステム及びデータ管理方法 図3
  • 特開-メモリシステム及びデータ管理方法 図4
  • 特開-メモリシステム及びデータ管理方法 図5
  • 特開-メモリシステム及びデータ管理方法 図6
  • 特開-メモリシステム及びデータ管理方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022147448
(43)【公開日】2022-10-06
(54)【発明の名称】メモリシステム及びデータ管理方法
(51)【国際特許分類】
   G06F 12/00 20060101AFI20220929BHJP
【FI】
G06F12/00 597U
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2021048688
(22)【出願日】2021-03-23
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100103034
【弁理士】
【氏名又は名称】野河 信久
(74)【代理人】
【識別番号】100075672
【弁理士】
【氏名又は名称】峰 隆司
(74)【代理人】
【識別番号】100153051
【弁理士】
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100162570
【弁理士】
【氏名又は名称】金子 早苗
(72)【発明者】
【氏名】米澤 真司
(72)【発明者】
【氏名】神谷 智之
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160MM01
5B160NA01
(57)【要約】
【課題】処理能力を向上する。
【解決手段】実施形態によれば、メモリシステムは、第1ブロックBLK及び第2ブロックを有する第1プレーンPLN0と、第3ブロック及び第4ブロックを有する第2プレーンPLN1とを含む第1メモリチップCP0と、第5ブロック及び第6ブロックを有する第3プレーンPLN0と、第7ブロック及び第8ブロックを有する第4プレーンPLN1とを含む第2メモリチップCP1とを含む。メモリコントローラは、ユーザデータの記憶領域として、第1ブロックと第3ブロックとの組み合わせを第1グループBUとして設定し、第5ブロックと第7ブロックとの組み合わせを第2グループBUとして設定し、管理データの記憶領域として、第2ブロック、第4ブロック、第6ブロック、及び第8ブロックを設定する。
【選択図】図4
【特許請求の範囲】
【請求項1】
各々が複数のメモリセルを含む第1ブロック及び第2ブロックを有する第1メモリセルアレイを含む第1プレーンと、各々が前記複数のメモリセルを含む第3ブロック及び第4ブロックを有する第2メモリセルアレイを含む第2プレーンとを含む第1メモリチップと、
各々が前記複数のメモリセルを含む第5ブロック及び第6ブロックを有する第3メモリセルアレイを含む第3プレーンと、各々が前記複数のメモリセルを含む第7ブロック及び第8ブロックを有する第4メモリセルアレイを含む第4プレーンとを含む第2メモリチップと、
前記第1メモリチップ及び第2メモリチップを制御するメモリコントローラと
を備え、
前記メモリコントローラは、外部から受信したユーザデータの記憶領域として、前記第1メモリチップにおける前記第1プレーンの前記第1ブロックと前記第2プレーンの前記第3ブロックとの組み合わせを第1グループとして設定し、前記第2メモリチップにおける前記第3プレーンの前記第5ブロックと前記第4プレーンの前記第7ブロックとの組み合わせを第2グループとして設定し、管理データの記憶領域として、前記第2ブロックと、前記第4ブロックと、前記第6ブロックと、前記第8ブロックとを設定する、
メモリシステム。
【請求項2】
前記メモリコントローラは、バッドブロックを前記管理データの前記記憶領域に割り当てる、
請求項1に記載のメモリシステム。
【請求項3】
前記メモリコントローラは、前記第1グループに前記ユーザデータを記憶する際、前記第1プレーンの前記第1ブロックにおける書き込み動作と前記第2プレーンの前記第3ブロックにおける書き込み動作とを並列に実行する、
請求項1または2のいずれか一項に記載のメモリシステム。
【請求項4】
前記メモリコントローラは、前記第2ブロック、前記第4ブロック、前記第6ブロック、及び前記第8ブロックの少なくとも1つを選択して、前記管理データを記憶する、
請求項1または2のいずれか一項に記載のメモリシステム。
【請求項5】
前記第1プレーンは、前記第1メモリセルアレイに接続された第1ロウデコーダ及び第1センスアンプを更に含み、
前記第2プレーンは、前記第2メモリセルアレイに接続された第2ロウデコーダ及び第2センスアンプを更に含む、
請求項1乃至4のいずれか一項に記載のメモリシステム。
【請求項6】
外部から受信したユーザデータの記憶領域として、各々が複数のメモリセルを含む第1ブロック及び第2ブロックを有する第1メモリセルアレイを含む第1プレーンと、各々が前記複数のメモリセルを含む第3ブロック及び第4ブロックを有する第2メモリセルアレイを含む第2プレーンとを含む第1メモリチップにおいて、前記第1プレーンの前記第1ブロックと前記第2プレーンの前記第3ブロックとの組み合わせを第1グループとして設定し、
前記ユーザデータの前記記憶領域として、各々が前記複数のメモリセルを含む第5ブロック及び第6ブロックを有する第3メモリセルアレイを含む第3プレーンと、各々が前記複数のメモリセルを含む第7ブロック及び第8ブロックを有する第4メモリセルアレイを含む第4プレーンとを含む第2メモリチップにおいて、前記第3プレーンの前記第5ブロックと前記第4プレーンの前記第7ブロックとの組み合わせを第2グループとして設定し、
管理データの記憶領域として、前記第2ブロックと、前記第4ブロックと、前記第6ブロックと、前記第8ブロックとを設定する、
データ管理方法。
【請求項7】
バッドブロックを、前記管理データの前記記憶領域に割り当てる、
請求項6に記載のデータ管理方法。
【請求項8】
前記第1グループに前記ユーザデータを記憶する際、前記第1プレーンの前記第1ブロックにおける書き込み動作と前記第2プレーンの前記第3ブロックにおける書き込み動作とを並列に実行する、
請求項6または7に記載のデータ管理方法。
【請求項9】
前記第2ブロック、前記第4ブロック、前記第6ブロック、及び前記第8ブロックの少なくとも1つを選択して、前記管理データを記憶する、
請求項6または7に記載のデータ管理方法。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、メモリシステム及びデータ管理方法に関する。
【背景技術】
【0002】
NAND型フラッシュメモリなどの不揮発性半導体メモリを搭載したSSD(Solid State Drive)を用いたメモリシステムが知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許出願公開第2019/0371220号明細書
【特許文献2】特開2014-134998号公報
【特許文献3】米国特許出願公開第2019/0196723号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の実施形態では、処理能力を向上できるメモリシステム及びデータ管理方法を提供する。
【課題を解決するための手段】
【0005】
実施形態に係るメモリシステムは、各々が複数のメモリセルを含む第1ブロック及び第2ブロックを有する第1メモリセルアレイを含む第1プレーンと、各々が複数のメモリセルを含む第3ブロック及び第4ブロックを有する第2メモリセルアレイを含む第2プレーンとを含む第1メモリチップと、各々が複数のメモリセルを含む第5ブロック及び第6ブロックを有する第3メモリセルアレイを含む第3プレーンと、各々が複数のメモリセルを含む第7ブロック及び第8ブロックを有する第4メモリセルアレイを含む第4プレーンとを含む第2メモリチップと、第1メモリチップ及び第2メモリチップを制御するメモリコントローラと、を含む。メモリコントローラは、外部から受信したユーザデータの記憶領域として、第1メモリチップにおける第1プレーンの第1ブロックと第2プレーンの第3ブロックとの組み合わせを第1グループとして設定し、第2メモリチップにおける第3プレーンの第5ブロックと第4プレーンの第7ブロックとの組み合わせを第2グループとして設定し、管理データの記憶領域として、第2ブロックと、第4ブロックと、第6ブロックと、第8ブロックとを設定する。
【図面の簡単な説明】
【0006】
図1】実施形態に係るメモリシステムを示すブロック図である。
図2】実施形態に係るメモリチップを示すブロック図である。
図3】実施形態に係るメモリセルアレイを示す回路図である。
図4】実施形態に係るブロックBLKの構成を示す図である。
図5】実施形態に係るユーザデータ用テーブルである。
図6】実施形態に係る管理データ用テーブルである。
図7】実施形態に係る書き込み動作のフローチャートである。
【発明を実施するための形態】
【0007】
以下に、実施形態について図面を参照して説明する。図面は模式的なものである。なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付す。参照符号を構成する文字の後の数字は、同様の構成を有する要素同士を区別するために用いられる。
【0008】
以下に、実施形態に係るメモリシステムについて説明する。
【0009】
1 構成
1.1 メモリシステムの構成
まず、図1を参照して、メモリシステム1の全体構成の一例について説明する。
【0010】
メモリシステム1は、少なくとも1つの記憶装置2を含む。記憶装置2は、例えばSSD(Solid State Drive)である。記憶装置2は、ホストデバイスに接続される。ホストデバイスは、メモリシステム1を制御する情報処理装置である。記憶装置2は、不揮発性メモリ10及びメモリコントローラ20を含む。
【0011】
不揮発性メモリ10は、不揮発性のメモリである。
【0012】
メモリコントローラ20は、例えば、SoC(System On a Chip)である。メモリコントローラ20は、ホストデバイスからの要求(命令)に基づいて、不揮発性メモリ10を制御する。メモリコントローラ20は、不揮発性メモリ10に、データの読み出し動作、書き込み動作、及び消去動作等を命令する。なお、メモリコントローラ20の各機能は専用回路で実現されてもよいし、プロセッサがファームウェアを実行することにより実現されてもよい。
【0013】
次に、不揮発性メモリ10の内部構成について説明する。不揮発性メモリ10は、複数のメモリチップCPを含む。不揮発性メモリ10に含まれるメモリチップCPの個数は、任意である。図1において、不揮発性メモリ10は、16個のメモリチップCP0~CP15を含む。
【0014】
メモリチップCPは、例えば、NAND型フラッシュメモリである。メモリチップCPは、データを不揮発に記憶することができる。複数のメモリチップCPは、互いに独立して動作することができる。メモリチップCPは、NANDバスNBを介して、メモリコントローラ20と接続される。なお、NANDバスNBの本数及び1つのNANDバスNBに接続されるメモリチップCPの個数は任意である。図1において、メモリチップCP0、CP1、CP2、及びCP3は、NANDバスNB0を介してメモリコントローラ20に接続される。メモリチップCP4、CP5、CP6、及びCP7は、NANDバスNB1を介してメモリコントローラ20に接続される。メモリチップCP8、CP9、CP10、及びCP11は、NANDバスNB2を介してメモリコントローラ20に接続される。メモリチップCP12、CP13、CP14、及びCP15は、NANDバスNB3を介してメモリコントローラ20に接続される。
【0015】
次に、メモリコントローラ20の内部構成について説明する。メモリコントローラ20は、ホストインターフェイス回路210、プロセッサ(CPU;central processing unit)220、ROM(Read Only Memory)230、内蔵メモリ(RAM;Random Access Memory)240、バッファメモリ250、及びNANDインターフェイス回路260を含む。メモリコントローラ20内には、メモリバスMBが設けられている。ホストインターフェイス回路210、CPU220、ROM230、RAM240、バッファメモリ250、及びNANDインターフェイス回路260は、メモリバスMBに接続される。
【0016】
ホストインターフェイス回路210は、ホストデバイスとの通信を司るハードウェアインターフェイスである。例えば、ホストインターフェイス回路210は、ホストデバイスから受信した命令をCPU220に転送する。ホストインターフェイス回路210は、ホストデバイスから受信したデータをバッファメモリ250に転送する。以下、ホストデバイスから受信したデータを、「ユーザデータ」と表記する。また、ホストインターフェイス回路210は、CPU220の命令に基づいて、バッファメモリ250内のデータ等をホストデバイスに転送する。
【0017】
CPU220は、メモリコントローラ20の制御回路である。CPU220は、メモリコントローラ20全体の動作を制御する。より具体的には、CPU220は、ホストインターフェイス回路210、ROM230、RAM240、バッファメモリ250、及びNANDインターフェイス回路260を制御する。例えば、CPU220は、ホストデバイスから書き込み要求を受信する。CPU220は、書き込み要求に基づいて、書き込みコマンドを発行する。CPU220は、書き込みコマンドをNANDインターフェイス回路260に送信する。CPU220がホストデバイスから読み出し要求を受信した場合についても同様である。また、CPU220は、不揮発性メモリ10のメモリ空間を管理する。
【0018】
ROM230は、読み出し専用の半導体メモリである。ROM230には、ファームウェア(制御プログラム)等が記憶されている。ファームウェアは、CPU220により実行される。
【0019】
RAM240は、例えば、DRAM(Dynamic Random Access Memory)等の半導体メモリである。例えば、RAM240には、ROM230から読み出されたファームウェアが展開される。また、RAM240は、CPU220の作業領域として使用される。
【0020】
RAM240には、キャッシュ領域が設けられている。キャッシュ領域は、例えば管理データが一時的に記憶される領域である。管理データは、記憶装置2に関わる情報である。記憶装置2に関わる情報とは、例えば、各種制御プログラム、メモリチップCPの情報、各種設定パラメータ、及び各種テーブルである。各種テーブルには、ユーザデータ用テーブル及び管理データ用テーブルが含まれる。ユーザデータ用テーブルは、ユーザデータの管理に用いられる。管理データ用テーブルは、管理データの管理に用いられる。例えば、ユーザデータ用テーブル及び管理データ用テーブルは、電源投入時に、管理データとして、不揮発性メモリ10からRAM240に読み出される。例えば、RAM240内のユーザデータ用テーブル及び管理データ用テーブルが更新された場合、ユーザデータ用テーブル及び管理データ用テーブルは、管理データとして、不揮発性メモリ10に送信される。
【0021】
バッファメモリ250は、揮発性の半導体メモリである。バッファメモリ250は、読み出しデータ及び書き込みデータ等を一時的に記憶する。読み出しデータは、不揮発性メモリ10から読み出されたデータである。書き込みデータは、不揮発性メモリ10への書き込みを要求されたデータである。
【0022】
NANDインターフェイス回路260は、メモリコントローラ20と不揮発性メモリ10との通信を司るハードウェアインターフェイスである。図1の例では、NANDインターフェイス回路260は、4つのチャネルCH0、CH1、CH2、及びCH3を有している。そして、チャネルCH0、CH1、CH2、及びCH3に4つのNANDバスNB0、NB1、NB2、及びNB3がそれぞれ接続されている。例えば、NANDインターフェイス回路260は、CPU220から、不揮発性メモリ10に対する命令を受信する。NANDインターフェイス回路260は、命令に基づいて、1つまたは複数のチャネルCHを選択する。NANDインターフェイス回路260は、書き込み動作時には、選択したチャネルCHを介して、不揮発性メモリ10に、書き込み動作の制御信号、コマンド、アドレス、及び書き込みデータを転送する。また、NANDインターフェイス回路260は、読み出し動作時には、選択したチャネルCHを介して、不揮発性メモリ10に、読み出し動作の制御信号、コマンド、及びアドレスを送信する。NANDインターフェイス回路260は、バッファメモリ250に、読み出しデータを転送する。
【0023】
1.2 メモリチップの内部構成
次に、図2を参照してメモリチップCPの内部構成の一例について説明する。図2は、メモリチップCPの基本的な構成を示すブロック図である。なお、図2の例では、各ブロックの接続の一部を矢印線により示している。但し、各ブロック間の接続はこれに限定されない。
【0024】
メモリチップCPは、メモリコア部100と周辺回路部110とを含む。
【0025】
メモリコア部100は、メモリチップCPにおける動作の中心部である。
【0026】
周辺回路部110は、メモリコア部100の周辺に設けられた回路部である。
【0027】
次に、メモリコア部100の内部構成について説明する。メモリコア部100は、例えば2つのプレーンPLN0及びPLN1を含む。なお、プレーンPLNは、2つに限定されない。プレーンPLNは、1つであってもよいし、3つ以上であってもよい。プレーンPLNは、データの書き込み動作及び読み出し動作を行うユニットである。プレーンPLN0及びPLN1は、互いに独立して動作することが可能である。また、プレーンPLN0及びPLN1は、並列に動作することも可能である。メモリチップCPにユーザデータを書き込む場合、メモリチップCP内の全てのプレーンPLNの書き込み動作が並列して実行される。また、メモリチップCPに管理データを書き込む場合、いずれか1つのプレーンPLNの書き込み動作が実行されてもよいし、複数のプレーンPLNの書き込み動作が並列して実行されてもよい。
【0028】
次に、プレーンPLNの内部構成について説明する。以下では、プレーンPLN0及びPLN1が同じ構成である場合について説明する。なお、各プレーンPLNの構成は異なっていてもよい。各プレーンPLNは、メモリセルアレイ101、ロウデコーダ102、及びセンスアンプ103を含む。以下の説明では、プレーンPLN0に限定する場合、メモリセルアレイ101_0、ロウデコーダ102_0、及びセンスアンプ103_0と表記する。また、プレーンPLN1に限定する場合、メモリセルアレイ101_1、ロウデコーダ102_1、及びセンスアンプ103_1と表記する。
【0029】
メモリセルアレイ101は、配列された複数のメモリセルトランジスタの集合である。メモリセルアレイ101は、例えば4つのブロックBLK0、BLK1、BLK2、及びBLK3を備えている。なお、メモリセルアレイ101内のブロックBLKの個数は任意である。ブロックBLKは、例えばデータを一括して消去される複数のメモリセルトランジスタの集合である。すなわち、ブロックBLKは、データの消去単位である。ブロックBLKの構成の詳細については後述する。
【0030】
本実施形態のメモリセルアレイ101は、メモリの空間領域としてユーザ領域とシステム領域とを含む。ユーザ領域は、ユーザデータが記憶される領域である。システム領域は、管理データが記憶される領域である。システム領域は、ホストデバイスがアクセスできない領域である。本実施形態では、各ブロックBLKがユーザ領域またはシステム領域のいずれかに割り当てられる。ユーザ領域及びシステム領域の割り当てについては後述する。
【0031】
以下の説明では、プレーンPLN0に限定する場合、ブロックBLK0、BLK1、BLK2、及びBLK3を、ブロックBLK0_0、BLK1_0、BLK2_0、及びBLK3_0とそれぞれ表記する。また、プレーンPLN1に限定する場合、ブロックBLK0、BLK1、BLK2、及びBLK3を、ブロックBLK0_1、BLK1_1、BLK2_1、及びBLK3_1とそれぞれ表記する。
【0032】
ロウデコーダ102は、ロウアドレスのデコード回路である。ロウアドレスは、メモリコントローラ20から受信したアドレス情報である。ロウデコーダ102は、デコード結果に基づいて、メモリセルアレイ101内のいずれかのブロックBLKを選択する。ロウデコーダ102は、選択したブロックBLKのロウ方向の配線(後述するワード線及び選択ゲート線)に電圧を印加する。
【0033】
センスアンプ103は、読み出し及び書き込み回路である。センスアンプ103は、読み出し動作時には、メモリセルアレイ101からデータを読み出す。また、センスアンプ103は、書き込み動作時には、メモリセルアレイ101に書き込みデータに応じた電圧を印加する。
【0034】
次に、周辺回路部110の内部構成について説明する。周辺回路部110は、シーケンサ111及び電圧発生回路112を含む。
【0035】
シーケンサ111は、メモリチップCPの制御回路である。シーケンサ111は、メモリチップCP全体の動作を制御する。より具体的には、シーケンサ111は、書き込み動作、読み出し動作、及び消去動作の際に、電圧発生回路112、並びに各プレーンPLNのロウデコーダ102及びセンスアンプ103等を制御する。
【0036】
電圧発生回路112は、メモリチップCPが使用する電圧の発生回路である。電圧発生回路112は、書き込み動作、読み出し動作、及び消去動作に使用される電圧を発生させる。電圧発生回路112は、ロウデコーダ102及びセンスアンプ103等に、電圧を供給する。
【0037】
1.3 メモリセルアレイの回路構成
次に、図3を参照して、メモリセルアレイ101の回路構成の一例について説明する。なお、図3の例は、1つのブロックBLKの回路構成を示している。
【0038】
ブロックBLKは、例えば4つのストリングユニットSU0~SU3を含む。なお、ブロックBLKに含まれるストリングユニットSUの個数は、任意である。ストリングユニットSUは、例えば、書き込み動作または読み出し動作において一括して選択される複数のNANDストリングNSの集合である。
【0039】
次に、ストリングユニットSUの内部構成について説明する。ストリングユニットSUは、複数のNANDストリングNSを含む。NANDストリングNSは、直列に接続された複数のメモリセルトランジスタの集合である。以下、「NANDストリングNS」を「メモリストリング」とも表記する。ストリングユニットSU内の複数のNANDストリングNSは、ビット線BL0~BLn(nは1以上の整数)のいずれかに接続される。
【0040】
次に、NANDストリングNSの内部構成について説明する。各NANDストリングNSは、複数のメモリセルトランジスタMC、並びに選択トランジスタST1及びST2を含む。図3の例では、NANDストリングNSは8個のメモリセルトランジスタMC0~MCを含む。
【0041】
メモリセルトランジスタMCは、データを不揮発に記憶するメモリ素子である。メモリセルトランジスタMCは、制御ゲート及び電荷蓄積層を含む。メモリセルトランジスタMCは、MONOS(Metal-Oxide-Nitride-Oxide-Silicon)型であってもよいし、FG(Floating Gate)型であってもよい。MONOS型は、電荷蓄積層に絶縁層を用いる。FG型は、電荷蓄積層に導電体層を用いる。
【0042】
選択トランジスタST1及びST2は、スイッチング素子である。選択トランジスタST1及びST2は、各種動作時におけるストリングユニットSUの選択にそれぞれ使用される。
【0043】
NANDストリングNS内の選択トランジスタST2、メモリセルトランジスタMC0~MC7、及び選択トランジスタST1の電流経路は、直列に接続される。選択トランジスタST1のドレインは、ビット線BLに接続される。選択トランジスタST2のソースは、ソース線SLに接続される。
【0044】
同一のブロックBLK内のメモリセルトランジスタMC0~MC7の制御ゲートは、それぞれワード線WL0~WL7に共通に接続される。より具体的には、例えば、ブロックBLKは、4つのストリングユニットSU0~SU3を含む。そして、各ストリングユニットSUは、複数のメモリセルトランジスタMC0をそれぞれ含む。ブロックBLK内の複数のメモリセルトランジスタMC0の制御ゲートは、1つのワード線WL0に共通に接続される。メモリセルトランジスタMC1~MC7も同様である。
【0045】
ストリングユニットSU内の複数の選択トランジスタST1のゲートは、1つの選択ゲート線SGDに共通に接続される。より具体的には、ストリングユニットSU0内の複数の選択トランジスタST1のゲートは、選択ゲート線SGD0に共通に接続される。ストリングユニットSU1内の複数の選択トランジスタST1のゲートは、選択ゲート線SGD1に共通に接続される。ストリングユニットSU2内の複数の選択トランジスタST1のゲートは、選択ゲート線SGD2に共通に接続される。ストリングユニットSU3内の複数の選択トランジスタST1のゲートは、選択ゲート線SGD3に共通に接続される。
【0046】
ブロックBLK内の複数の選択トランジスタST2のゲートは、選択ゲート線SGSに共通に接続される。
【0047】
ワード線WL0~WL7、選択ゲート線SGD0~SGD3、及び選択ゲート線SGSは、プレーンPLN内のロウデコーダ102にそれぞれ接続される。
【0048】
ビット線BLは、各ブロックBLKの各ストリングユニットSU内の1つのNANDストリングNSに共通に接続される。1つのビット線BLに接続された複数のNANDストリングNSには、同一のカラムアドレスが割り当てられる。各ビット線BLは、プレーンPLN内のセンスアンプ103に接続される。
【0049】
ソース線SLは、例えば複数のブロックBLK間で共有される。
【0050】
1つのストリングユニットSU内で共通のワード線WLに接続された複数のメモリセルトランジスタMCの集合は、例えば、「セルユニットCU」と表記される。例えば、メモリセルトランジスタMCが1ビットデータを記憶する場合、セルユニットCUの記憶容量は、「1ページデータ」として定義される。セルユニットCUは、メモリセルトランジスタMCが記憶するデータのビット数に基づいて、2ページデータ以上の記憶容量を有し得る。
【0051】
2 データ管理
次に、メモリシステム1におけるデータ管理について説明する。本実施形態では、不揮発性メモリ10において、ユーザ領域(ユーザデータ)とシステム領域(管理データ)とでブロックBLKの管理方法が異なる。
【0052】
2.1 ユーザデータの管理方法
まず、図4及び図5を参照して、ユーザデータの管理の一例について説明する。図4は、ユーザ領域及びシステム領域に割り当てられるブロックBLKの構成の一例を示す図である。図5は、ユーザデータ用テーブルの一例である。
【0053】
ホストデバイスは、ユーザデータの書き込み動作において、書き込み先のチャネルCH及びメモリチップCPを指定する場合がある。このような場合、メモリシステム1は、ホストデバイスから、メモリチップCPにおける最大の処理性能(処理速度)を期待されることがある。例えば、メモリチップCP内の全てのプレーンPLNが書き込み動作を並列に実行している場合に、メモリチップCPにおける処理速度が最大となる。以下、メモリチップCPにおいて、並列に動作を実行しているプレーンPLNの個数を「並列度」と表記する。このため、メモリコントローラ20は、処理速度を最大にできるように、各プレーンPLNのブロックBLKをユーザ領域に割り当てる。換言すれば、ユーザ領域では、並列度が最大となるように、ブロック管理単位が構成される。
【0054】
図4に示すように、例えば、メモリチップCPが2つのプレーンPLN0及びPLN1を含んでいる場合、プレーンPLN0及びPLN1の書き込み動作を並列して実行する。これにより、メモリチップCPにおける処理速度を最大とすることができる。このため、メモリコントローラ20は、ユーザ領域では、ブロックユニットBUをブロック管理単位とする。ブロックユニットBUは、メモリチップCP内の全てのプレーンPLNから1個ずつ選択された複数のブロックBLKを1つの組(グループ)として構成される。従って、1つのブロックユニットBUに含まれるブロックBLKの個数は、メモリチップCP内のプレーンPLNの個数に依存する。図4の例では、ブロックユニットBUは、プレーンPLN0のいずれかのブロックBLKと、プレーンPLN1のいずれかのブロックBLKとを含む。また、例えば、メモリチップCPが3つのプレーンPLNを含んでいる場合、1つのブロックユニットBUには、各プレーンPLNから集められた3つのブロックBLKが含まれる。メモリコントローラ20は、ブロックユニットBUを構成する際に、有効ブロックBLKを選択する。有効ブロックBLKは、書き込み動作を正常に実行できるブロックBLKである。他方で、メモリコントローラ20は、ブロックユニットBUとして、バッドブロックBLKを選択しない。バッドブロックBLKは、書き込み動作を正常に実行できないため無効化されたブロックBLKである。
【0055】
メモリコントローラ20は、ブロックユニットBUを選択して、ユーザデータの書き込み動作を実行する。これにより、メモリチップCPにおいて最大並列度による並列動作が実行できる。
【0056】
なお、各メモリチップCPにおけるブロックユニットBUの個数は任意であり、それぞれで異なっていてもよい。図4の例では、各メモリチップCP内に、2個のブロックユニットBUが設けられている。
【0057】
図5に示すように、メモリコントローラ20は、ユーザデータ用テーブルにおいて、例えば、ブロックユニットBU毎に管理IDを割り当てる。より具体的には、例えば、管理ID_0001には、チャネルCH0に接続されたメモリチップCP0のプレーンPLN0のブロックBLK0_0及びプレーンPLN1のブロックBLK0_1が割り当てられている。また、管理ID_0002には、チャネルCH0に接続されたメモリチップCP0のプレーンPLN0のブロックBLK1_0及びプレーンPLN1のブロックBLK1_1が割り当てられている。管理ID_0003には、チャネルCH0に接続されたメモリチップCP1のプレーンPLN0のブロックBLK0_0及びプレーンPLN1のブロックBLK0_1が割り当てられている。管理ID_0004には、チャネルCH0に接続されたメモリチップCP1のプレーンPLN0のブロックBLK1_0及びプレーンPLN1のブロックBLK1_1が割り当てられている。管理ID_0005には、チャネルCH0に接続されたメモリチップCP2のプレーンPLN0のブロックBLK1_0及びプレーンPLN1のブロックBLK0_1が割り当てられている。管理ID_0006には、チャネルCH0に接続されたメモリチップCP2のプレーンPLN0のブロックBLK2_0及びプレーンPLN1のブロックBLK1_1が割り当てられている。管理ID_0031には、チャネルCH3に接続されたメモリチップCP15のプレーンPLN0のブロックBLK0_0及びプレーンPLN1のブロックBLK0_1が割り当てられている。管理ID_0032には、チャネルCH3に接続されたメモリチップCP15のプレーンPLN0のブロックBLK1_0及びプレーンPLN1のブロックBLK1_1が割り当てられている。他の管理IDも同様である。
【0058】
メモリコントローラ20は、例えばバッドブロックBLKが増加した場合等に、ユーザデータ用テーブルを更新し得る。より具体的には、例えば、ブロックユニットBU内の有効ブロックBLKがバッドブロックBLKとなった場合、メモリコントローラ20は、バッドブロックBLKを含むブロックユニットBUをユーザ領域からシステム領域に移行させる。このとき、メモリコントローラ20は、ユーザデータ用テーブル及び管理データ用テーブルを更新する。
【0059】
メモリコントローラ20は、例えば、ホストデバイスからチャネルCH及びメモリチップCPを指定された書き込み要求を受信した場合、指定されたメモリチップCP内のブロックユニットBU(管理ID)を選択する。そして、メモリコントローラ20は、選択したブロックユニットBUへの書き込み動作を実行する。以下、選択したブロックユニットBUを「選択ブロックユニットBU」と表記する。より具体的には、例えば、メモリコントローラ20は、ホストデバイスからメモリチップCP0を指定した書き込み要求を受信する。この場合、メモリコントローラ20は、メモリチップCP0に対応する管理ID_0001及び0002のいずれかのブロックユニットBUを選択する。そして、メモリコントローラ20は、選択ブロックユニットBUへの書き込み動作を実行する。また、メモリコントローラ20は、ホストデバイスからメモリチップCPの指定がない書き込み要求を受信した場合、いずれかのメモリチップCPのいずれかのブロックユニットBU(管理ID)を選択する。そして、メモリコントローラ20は、選択ブロックユニットBUへの書き込み動作を実行する。
【0060】
なお、メモリコントローラ20は、複数のチャネルCHの複数のメモリチップCP、または1つのチャネルCHの複数のメモリチップCPの書き込み動作を並列に実行し得る。この場合、メモリコントローラ20は、複数のブロックユニットBU(管理ID)を同時に選択し得る。これにより、メモリコントローラ20は、複数のメモリチップCPを用いた書き込み動作において最大並列度が得られる。
【0061】
2.2 管理データの管理方法
次に、図4及び図6を参照して、管理データの管理の一例について説明する。図6は、システム領域における管理データ用テーブルである。
【0062】
管理データの書き込み動作は、ホストデバイスによる処理速度への影響が小さい。すなわち、管理データの書き込み動作は、ホストデバイスによるブロック管理単位(書き込み単位)の制約を受けない。従って、システム領域では、ブロックユニットBUが構成されなくてもよい。このため、本実施形態では、メモリコントローラ20は、システム領域において、ユーザ領域と異なるブロックBLKの管理を実行する。
【0063】
図4に示すように、メモリチップCP内にバッドブロックBLKが発生すると、メモリチップCP内における、プレーンPLN0の有効ブロックBLKの個数と、プレーンPLN1の有効ブロックBLKの個数とが、一致しなくなる。この結果、有効ブロックBLKの個数が多いプレーンPLNでは、ブロックユニットBUの構成に用いることができない有効ブロックBLKが生じる。以下、ブロックユニットBUの構成に用いることができない有効ブロックBLKを「あぶれた有効ブロックBLK」と表記する。本実施形態では、メモリコントローラ20は、システム領域に、あぶれた有効ブロックBLK及びバッドブロックBLKを優先的に割り当てる。例えば、各メモリチップCPの各プレーンPLNの2つのブロックBLKをシステム領域にそれぞれ割り当てる。この場合、メモリチップCP0では、プレーンPLN1の1個のバッドブロックBLKと、プレーンPLN0の1個のあぶれた有効ブロックBLKとが、システム領域に優先的に割り当てられている。そして、メモリチップCP0では、各プレーンPLNの1個の有効ブロックBLKが更に割り当てられている。例えば、メモリチップCP1にはバッドブロックBLKがない。このため、各プレーンPLNの2個の有効ブロックBLKが、システム領域に割り当てられている。メモリチップCP2では、プレーンPLN0に2個のバッドブロックBLKがある。このため、プレーンPLN0の2個のバッドブロックBLKと、プレーンPLN1の2個のあぶれた有効ブロックBLKとが、システム領域に割り当てられている。メモリチップCP15では、プレーンPLN0に1個のバッドブロックBLKがある。このため、プレーンPLN0の1個のバッドブロックBLKと、プレーンPLN1の1個のあぶれた有効ブロックBLKとが、システム領域に優先的に割り当てられている。そして、メモリチップCP15では、各プレーンPLNの1個の有効ブロックBLKが更に割り当てられている。なお、図4の例では、メモリコントローラ20はバッドブロックBLKをシステム領域に割り当てている。しかし、バッドブロックBLKは、無効化されたブロックBLKである。このため、バッドブロックBLKは、データ領域及びシステム領域から除外されてもよい。
【0064】
図6に示すように、メモリコントローラ20は、管理データ用テーブルにおいて、例えば、ブロックBLK毎に管理IDを割り当てる。より具体的には、例えば、管理ID_1001には、チャネルCH0に接続されたメモリチップCP0のプレーンPLN0のブロックBLK2_0が割り当てられている。また、管理ID_1002には、チャネルCH0に接続されたメモリチップCP0のプレーンPLN1のブロックBLK2_1が割り当てられている。管理ID_1003には、チャネルCH0に接続されたメモリチップCP0のプレーンPLN0のブロックBLK3_0が割り当てられている。管理ID_1004には、チャネルCH0に接続されたメモリチップCP0のプレーンPLN1のバッドブロックBLK3_1が割り当てられている。管理ID_1005には、チャネルCH0に接続されたメモリチップCP1のプレーンPLN0のブロックBLK2_0が割り当てられている。管理ID_1006には、チャネルCH0に接続されたメモリチップCP1のプレーンPLN1のブロックBLK2_1が割り当てられている。管理ID_1007には、チャネルCH0に接続されたメモリチップCP1のプレーンPLN0のブロックBLK3_0が割り当てられている。管理ID_1008には、チャネルCH0に接続されたメモリチップCP1のプレーンPLN1のブロックBLK3_1が割り当てられている。管理ID_1009には、チャネルCH0に接続されたメモリチップCP2のプレーンPLN0のバッドブロックBLK0_0が割り当てられている。管理ID_1010には、チャネルCH0に接続されたメモリチップCP2のプレーンPLN1のブロックBLK2_1が割り当てられている。管理ID_1011には、チャネルCH0に接続されたメモリチップCP2のプレーンPLN0のバッドブロックBLK3_0が割り当てられている。管理ID_1012には、チャネルCH0に接続されたメモリチップCP2のプレーンPLN1のブロックBLK3_1が割り当てられている。また、管理ID_1061には、チャネルCH3に接続されたメモリチップCP15のプレーンPLN0のブロックBLK2_0が割り当てられている。管理ID_1062には、チャネルCH3に接続されたメモリチップCP15のプレーンPLN1のブロックBLK2_1が割り当てられている。管理ID_1063には、チャネルCH3に接続されたメモリチップCP15のプレーンPLN0のバッドブロックBLK3_0が割り当てられている。管理ID_1064には、チャネルCH3に接続されたメモリチップCP15のプレーンPLN1のブロックBLK3_1が割り当てられている。他の管理IDも同様である。
【0065】
メモリコントローラ20は、例えばバッドブロックBLKが増加した場合等に、管理データ用テーブルを更新し得る。
【0066】
メモリコントローラ20は、システム領域全体を書き込み動作の並列単位として管理し得る。換言すれば、メモリコントローラ20は、管理データの書き込みを実行する場合、複数のブロックBLK(管理ID)を選択して、書き込み動作を実行し得る。これにより、メモリコントローラ20は、不揮発性メモリ10として並列度を上げて書き込み動作が実行できる。例えば、メモリコントローラ20は、管理ID_1001のチャネルCH0に接続されたメモリチップCP0のプレーンPLN0のブロックBLK2_0と、管理ID_1061のチャネルCH3に接続されたメモリチップCP15のプレーンPLN0のブロックBLK2_0とを選択する。そして、メモリコントローラ20は、選択した2つのブロックBLKを用いて、書き込み動作を並列に実行してもよい。複数のメモリチップCPを選択して書き込み動作の並列度を上げることにより、処理速度を向上できる。
【0067】
3.書き込み動作の流れ
次に、図7を参照して、書き込み動作の流れの一例について説明する。図7は、書き込み動作のフローチャートである。
【0068】
図7に示すように、メモリコントローラ20は、まず、書き込みデータがユーザデータであるか確認する(S1)。
【0069】
書き込みデータがユーザデータである場合(S1、Yes)、メモリコントローラ20は、ホストデバイスから書き込み先のチャネルCH及びメモリチップCPの指定があるか確認する(S2)。
【0070】
書き込み先の指定がある場合(S2、Yes)、メモリコントローラ20は、指定されたメモリチップCPのいずれかのブロックユニットBUを選択する。そして、メモリコントローラ20は、指定されたメモリチップCPのユーザ領域への書き込み動作を実行する(S3)。より具体的には、メモリコントローラ20は、ユーザデータ用テーブルに基づいて、指定されたメモリチップCP内のブロックユニットBUを選択する。次に、メモリコントローラ20は、選択ブロックユニットBU内の各ブロックBLKにおいて、セルユニットCUのアドレスを決定する。メモリコントローラ20は、選択されたメモリチップCPに、書き込みコマンド、アドレス、及びユーザデータを送信する。例えば、メモリチップCPがプレーンPLN0及びPLN1を含む場合、プレーンPLN0及びPLN1において書き込み動作が並列に実行される。このため、メモリコントローラ20は、メモリチップCPに少なくとも2ページ分のユーザデータを送信する。従って、メモリコントローラ20は、少なくとも2ページ分のユーザデータが集まってから書き込み動作を実行する。選択されたメモリチップCPでは、書き込みコマンド及びアドレスに基づいて、各プレーンPLNの書き込み動作が並列に実行される。これにより、メモリチップCPにおける最大の処理速度が得られる。
【0071】
書き込み先の指定がない場合(S2、No)、メモリコントローラ20は、ユーザデータ用テーブルに基づいて、チャネルCH、メモリチップCP、及びブロックユニットBUを選択する。そして、メモリコントローラ20は、選択したメモリチップCPのユーザ領域にユーザデータを書き込む(S4)。書き込み動作の詳細は、S3と同様である。
【0072】
書き込みデータがユーザデータではない場合(S1、No)、すなわち管理データである場合、メモリコントローラ20は、いずれかのメモリチップCPのシステム領域に管理データを書き込む(S5)。より具体的には、メモリコントローラ20は、管理データ用テーブルに基づいて、少なくとも1つのチャネルCH、メモリチップCP、プレーンPLN、及びブロックBLKを選択する。そして、メモリコントローラ20は、選択ブロックBLKにおいて、セルユニットCUのアドレスを決定する。メモリコントローラ20は、選択されたメモリチップCPに、書き込みコマンド、アドレス、及び管理データを送信する。選択されたプレーンPLNでは、書き込みコマンド及びアドレスに基づいて、書き込み動作が実行される。
【0073】
4 本実施形態に係る効果
本実施形態に係る構成であれば、メモリシステムにおける処理能力を向上できる。本効果につき詳述する。
【0074】
例えば、メモリチップCPのユーザ領域がブロック単位で管理されている場合、バッドブロックBLKの影響により、ユーザ領域内の有効ブロックBLKの個数が、プレーンPLNにより異なる場合がある。有効ブロックBLKの個数が少ないプレーンPLNでは、ユーザデータの書き込みに使用可能な有効ブロックBLKが、他のプレーンPLNよりも早くなくなる。このような場合、全てのプレーンPLNから有効ブロックBLKを選択できない。このため、メモリチップCP内の全てのプレーンPLNを用いて書き込み動作を並列に実行できなくなる。すなわち、書き込み動作を最大並列度で実行できなくなる。このため、書き込み動作の処理速度が低下する。
【0075】
これに対し、本実施形態に係る構成であれば、メモリチップCPのユーザ領域を、ブロックユニットBU単位で管理できる。ブロックユニットBUは、メモリチップCP内の各プレーンPLNの有効ブロックBLKを1個ずつ含む。ブロックユニットBUを選択することにより、メモリチップCPにおけるユーザデータの書き込み動作を最大並列度で実行できる。これにより、書き込み動作の処理速度の低下を抑制できる。
【0076】
更に、本実施形態に係る構成であれば、バッドブロックBLKの影響によりブロックユニットBUの構成からあぶれた有効ブロックBLKを優先的にシステム領域に割り当てることができる。これにより、あぶれた有効ブロックBLKを有効に使用できる。このため、バッドブロックBLKによるメモリ容量の減少の影響を抑制できる。
【0077】
更に、本実施形態に係る構成であれば、ユーザ領域とシステム領域とで異なるブロック管理方法を適用できる。例えば、システム領域は、ブロック単位で管理できる。そして、システム領域全体を書き込み動作の並列単位として管理できる。これにより、システム領域全体として複数のメモリチップCPを選択して書き込み動作の並列度を上げることができる。このため、あぶれた有効ブロックBLKを用いた場合においても、書き込み処理速度の低下を抑制できる。
【0078】
なお、実施形態は上記で説明した形態に限られず、種々の変形が可能である。
【0079】
上記実施形態では、書き込み動作を例にデータの管理方法について説明したが、読み出し動作の場合においても同様にある。
【0080】
更に、上記実施形態における「接続」とは、間に例えばトランジスタあるいは抵抗等、他の何かを介在させて間接的に接続されている状態も含む。
【0081】
実施形態は例示であり、発明の範囲はそれらに限定されない。
【符号の説明】
【0082】
1…メモリシステム
2…記憶装置
10…不揮発性メモリ
20…メモリコントローラ
100…メモリコア部
101…メモリセルアレイ
102…ロウデコーダ
103…センスアンプ
110…周辺回路部
111…シーケンサ
112…電圧発生回路
210…ホストインターフェイス回路
220…CPU
230…ROM
240…RAM
250…バッファメモリ
260…NANDインターフェイス回路
BL、BL0~BLn…ビット線
BLK、BLK0~BLK3…ブロック
BU…ブロックユニット
CH、CH0~CH3…チャネル
CP、CP0~CP15…メモリチップ
CU…セルユニット
MB…メモリバス
MC、MC0~MC7…メモリセルトランジスタ
NB、NB0~NB3…NANDバス
NS…NANDストリング
PLN、PLN0、PLN1…プレーン
SGD、SGD0~SGD3、SGS…選択ゲート線
SL…ソース線
ST1、ST2…選択トランジスタ
SU、SU0~SU3…ストリングユニット
WL、WL0~WL7…ワード線
図1
図2
図3
図4
図5
図6
図7