(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024044495
(43)【公開日】2024-04-02
(54)【発明の名称】メモリシステムおよび不揮発性メモリ
(51)【国際特許分類】
G11C 16/08 20060101AFI20240326BHJP
G06F 12/00 20060101ALI20240326BHJP
G11C 16/10 20060101ALI20240326BHJP
【FI】
G11C16/08 120
G06F12/00 597U
G11C16/10 140
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022150047
(22)【出願日】2022-09-21
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】高橋 啓介
【テーマコード(参考)】
5B160
5B225
【Fターム(参考)】
5B160MM06
5B225BA19
5B225CA21
5B225DA10
5B225DB31
5B225FA01
(57)【要約】
【課題】応答性能を向上させること。
【解決手段】メモリシステムは、不揮発性メモリおよびコントローラを備える。不揮発性メモリは、メモリセルアレイと、メモリセルアレイ内の記憶領域を指定するアドレスの特性を示す特性情報を含む第1テーブルデータを格納するレジスタと、を含む。コントローラは、不揮発性メモリを制御する。不揮発性メモリは、コントローラからアドレスを示すアドレス情報を受信した場合、特性情報を、レジスタ内の第1テーブルデータから読み出してコントローラに送信する。コントローラは、不揮発性メモリから特性情報を受信した場合、受信した特性情報に基づいて、アドレスに対する要求に応答する応答動作を実行する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
メモリセルアレイと、前記メモリセルアレイ内の記憶領域を指定するアドレスの特性を示す特性情報を含む第1テーブルデータを格納するレジスタと、を含む不揮発性メモリと、
前記不揮発性メモリを制御するコントローラと、を具備し、
前記不揮発性メモリは、前記コントローラから前記アドレスを示すアドレス情報を受信した場合、前記特性情報を、前記レジスタ内の前記第1テーブルデータから読み出して前記コントローラに送信し、
前記コントローラは、前記不揮発性メモリから前記特性情報を受信した場合、前記受信した特性情報に基づいて、前記アドレスに対する要求に応答する応答動作を実行する、
メモリシステム。
【請求項2】
前記不揮発性メモリは、電源がオフされる時に前記レジスタ内の前記第1テーブルデータを前記メモリセルアレイに格納し、電源がオンされると前記メモリセルアレイ内の前記第1テーブルデータを前記レジスタにロードする、
請求項1に記載のメモリシステム。
【請求項3】
前記コントローラは、前記応答動作を実行する設定に関する設定情報を含む第2テーブルデータを保持し、前記第2テーブルデータを用いて、前記受信した特性情報により示される前記設定情報を特定し、前記特定した設定情報に基づく前記応答動作を実行する、
請求項1に記載のメモリシステム。
【請求項4】
前記コントローラは、前記特定した設定情報に基づく前記応答動作と異なる応答動作を実行した場合、前記受信した特性情報を、前記異なる応答動作に基づき更新し、前記更新した特性情報を前記不揮発性メモリに送信し、
前記不揮発性メモリは、前記コントローラから前記更新した特性情報を受信した場合、前記更新した特性情報を、前記レジスタ内の前記第1テーブルデータに反映させる、
請求項3に記載のメモリシステム。
【請求項5】
前記コントローラは、前記記憶領域に格納されたデータを読み出す読み出し要求を受信した場合、前記アドレスを示すアドレス情報を前記不揮発性メモリに送信し、
前記不揮発性メモリは、前記読み出し要求に応じて前記コントローラから送信されたアドレス情報を受信した場合、前記アドレスの書き込み特性を示す前記特性情報を前記第1テーブルデータから読み出して前記コントローラに送信する、
請求項1に記載のメモリシステム。
【請求項6】
前記コントローラは、前記アドレスの書き込み特性に応じた読み出し動作を実行する設定に関する設定情報を含む第2テーブルデータを保持し、前記第2テーブルデータを用いて、前記受信した特性情報により示される前記アドレスの書き込み特性に対応する設定情報を特定し、前記特定した設定情報に基づく読み出し動作を実行する、
請求項5に記載のメモリシステム。
【請求項7】
前記コントローラは、前記記憶領域にデータを書き込む書き込み要求を受信した場合、前記アドレスを示すアドレス情報を前記不揮発性メモリに送信し、
前記不揮発性メモリは、前記書き込み要求に応じて前記コントローラから送信されたアドレス情報を受信すると、前記アドレスの読み出し特性を示す前記特性情報を前記第1テーブルデータから読み出して前記コントローラに送信する、
請求項1に記載のメモリシステム。
【請求項8】
前記コントローラは、前記アドレスの読み出し特性に応じた書き込み動作を実行する設定に関する設定情報を含む第2テーブルデータを保持し、前記第2テーブルデータを用いて、前記受信した特性情報により示される前記アドレスの読み出し特性に対応する設定情報を特定し、前記特定した設定情報に基づく書き込み動作を実行する、
請求項7に記載のメモリシステム。
【請求項9】
前記コントローラは、ホスト装置に接続される、
請求項1に記載のメモリシステム。
【請求項10】
コントローラに接続される入出力回路と、
データを格納するメモリセルアレイと、
前記メモリセルアレイ内の記憶領域を指定するアドレスの特性を示す特性情報を含む第1テーブルデータを格納するレジスタと、を具備し、
前記入出力回路は、前記コントローラから前記アドレスを示すアドレス情報を受信すると、前記アドレスに対応する特性情報を、前記レジスタ内の前記第1テーブルデータから読み出して前記コントローラに送信する、
不揮発性メモリ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、メモリシステムおよび不揮発性メモリに関する。
【背景技術】
【0002】
不揮発性メモリとして、NAND型フラッシュメモリが知られている。このようなNAND型フラッシュメモリの特定のアドレスからデータを読み出す場合、NAND型フラッシュメモリを制御するメモリコントローラは、当該特定のアドレスの特性を考慮することなく、ある一定の読み出し動作を実行することで、当該特定のアドレスからデータを読み出す。同様に、NAND型フラッシュメモリの特定のアドレスにデータを書き込む場合、メモリコントローラは、当該特定のアドレスの特性を考慮することなく、ある一定の書き込み動作を実行することで、当該特定のアドレスにデータを書き込む。
【0003】
しかしながら、NAND型フラッシュメモリの各アドレスはそれぞれ異なる特性を有することがある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2002-288988号公報
【特許文献2】特開2012-203957号公報
【特許文献3】米国特許第10055294号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明の一実施形態が解決しようとする課題は、応答性能を向上させることが可能なメモリシステムおよび不揮発性メモリを提供することである。
【課題を解決するための手段】
【0006】
一実施形態によれば、メモリシステムは、不揮発性メモリおよびコントローラを備える。前記不揮発性メモリは、メモリセルアレイと、前記メモリセルアレイ内の記憶領域を指定するアドレスの特性を示す特性情報を含む第1テーブルデータを格納するレジスタと、を含む。前記コントローラは、前記不揮発性メモリを制御する。前記不揮発性メモリは、前記コントローラから前記アドレスを示すアドレス情報を受信した場合、前記特性情報を、前記レジスタ内の前記第1テーブルデータから読み出して前記コントローラに送信する。前記コントローラは、前記不揮発性メモリから前記特性情報を受信した場合、前記受信した特性情報に基づいて、前記アドレスに対する要求に応答する応答動作を実行する。
【図面の簡単な説明】
【0007】
【
図1】一実施形態に係るメモリシステムの構成例を示すブロック図。
【
図2】同実施形態に係るメモリチップの構成例を示すブロック図。
【
図3】同実施形態に係るメモリシステムにおける読み出し動作の説明図。
【
図4】同実施形態に係る書き込み特性管理テーブルの説明図。
【
図5】同実施形態に係る読み出し動作設定テーブルの説明図。
【
図6】
図3に示す読み出し動作のメモリコントローラ側の動作説明図。
【
図7】
図6に示すステップS6の詳細なフローチャート。
【
図8】同実施形態に係るメモリシステムにおける書き込み動作の説明図。
【
図9】同実施形態に係る読み出し特性管理テーブルの説明図。
【
図10】同実施形態に係る書き込み動作設定テーブルの説明図。
【
図11】
図8に示す書き込み動作のメモリコントローラ側フローチャート。
【
図12】
図11に示すステップS16の処理の詳細なフローチャート。
【
図13】同実施形態に係るメモリシステムにおける読み出し動作または書き込み動作の別の例の説明図。
【
図14】同実施形態に係る特性管理テーブルの説明図。
【
図15】同実施形態に係る動作設定テーブルの説明図。
【
図16】同実施形態に係るメモリシステムにおける更新処理の説明図。
【発明を実施するための形態】
【0008】
以下、図面を参照して、実施形態を説明する。
図1は、一実施形態に係るメモリシステムの構成例を示すブロック図である。メモリシステム1は、不揮発性メモリ10と、メモリコントローラ20と、バッファメモリ30と、を備える。メモリシステム1は、外部のホスト装置2に接続され、ホスト装置2からの要求に応じて各種動作を実行し得る。
【0009】
不揮発性メモリ10は、1つまたは複数のメモリチップ10_0、10_1、10_2、・・・、10_n(但し、nは0以上の自然数である)を含む。メモリチップ10_nは、複数のメモリセルを備え、データを不揮発に記憶する。不揮発性メモリ10の一例は、NAND型フラッシュメモリである。以下では、不揮発性メモリ10を、NANDメモリ10と称して説明する。なお、NANDメモリ10の詳細な構成は後述する。
【0010】
メモリコントローラ20は、NANDバスを介してNANDメモリ10に接続される。NANDバスは、NANDインタフェースに従ったバスである。メモリコントローラ20は、ホストバスを介してホスト装置2に接続される。メモリコントローラ20は、NANDメモリ10を制御する。メモリコントローラ20は、ホスト装置2から受信した要求に応答して、NANDメモリ10にアクセスする。ここで、アクセスとは、NANDメモリ10からデータを読み出したり、NANDメモリ10へデータを書き込んだりすることを指す。
【0011】
バッファメモリ30は、NANDメモリ10とホスト装置2との間で送受信する書き込みデータ(ライトデータ)や読み出しデータ(リードデータ)を一時的に保持する。バッファメモリ30は、例えば、DRAM(dynamic random access memory)やSRAM(static random access memory)等で構成される。
【0012】
NANDメモリ10とメモリコントローラ20は、例えば、これらの組み合わせにより1つの半導体装置を構成してもよい。半導体装置としては、例えば、SDTMカードを含むメモリカードである。半導体装置としては、SSD(solid state drive)等であってもよい。メモリコントローラ20は、例えば、SoC(system-on-a-chip)等であってもよい。
【0013】
ホスト装置2は、例えば、パーソナルコンピュータ、サーバコンピュータ、モバイル機器、または車載機器等である。ホストバスは、例えば、SDTMインタフェースに従ったバスである。
【0014】
ここで、メモリコントローラ20の構成を説明する。メモリコントローラ20は、CPU(central processing unit)21と、メモリ22と、ホストインタフェース(ホストI/F)23と、ECC(error checking and correcting)回路24と、NANDインタフェース(NAND I/F)25と、RAMインタフェース(RAM I/F)26と、を備える。
【0015】
CPU21は、プロセッサである。CPU21は、メモリコントローラ20全体の動作を制御する。
例えば、CPU21は、ホスト装置2から書き込み要求(ライト要求)を受信した際に、NANDインタフェース25に対してライトコマンドを発行する。ライト要求は、メモリシステム1(NANDメモリ10)にデータを書き込むための要求であり、書き込み対象のデータ(ユーザデータ)と、当該ユーザデータの論理アドレスとを指定する。
CPU21は、ホスト装置2から読み出し要求(リード要求)を受信した際に、NANDインタフェース25に対してリードコマンドを発行する。リード要求は、メモリシステム1(NANDメモリ10)からデータを読み出すための要求であり、読み出し対象のデータ(リードデータ)の論理アドレスを含む。
ここでは詳細な説明を省略するが、CPU21は消去要求(イレーズ要求)を受信した際も同様に動作する。
【0016】
また、CPU21は、NANDメモリ10に記憶されたデータの管理、および、NANDメモリ10に含まれるブロックの管理を行う。
NANDメモリ10に記憶されたデータの管理は、例えば、論理アドレスそれぞれと物理アドレスそれぞれとの間の対応関係を示すマッピング情報の管理を含む。論理アドレスは、メモリシステム1の論理アドレス空間内の位置をアドレス指定するためにホスト装置2によって使用されるアドレスである。論理アドレスは、例えば、LBA(logical block address)である。CPU21は、論理物理アドレス変換テーブル(logical-to-physical translation table: L2Pテーブル)30_1を使用して、論理アドレスそれぞれと物理アドレスそれぞれとの間のマッピングを管理する。また、NANDメモリ10に含まれるブロックの管理は、例えば、ガベージコレクションと、不良ブロック(バッドブロック)の管理と、ウェアレベリングと、を含む。
【0017】
後述するメモリコントローラ20の動作は、例えば、CPU21がNANDメモリ10または図示しないROMに格納されている制御プログラム(ファームウェア)をメモリ22にロードし、当該ファームウェアを実行することによって実現されてもよいし、ハードウェアによって実現されてもよい。なお、ファームウェアは、メモリ22ではなくバッファメモリ30にロードされてもよい。
【0018】
メモリ22は、例えば、DRAMやSRAM等の半導体メモリであり、CPU21の作業領域として使用される。
ホストインタフェース23は、ホストバスを介してホスト装置2と接続され、ホスト装置2との通信を司る。ホストインタフェース23は、ホスト装置2から受信した要求およびデータを、CPU21やメモリ22、バッファメモリ30等に転送する。ホストインタフェース23は、CPU21からの要求に応答して、バッファメモリ30に一時的に保持されたリードデータに基づくデータをホスト装置2へ送信する。
【0019】
ECC回路24は、ユーザデータに対してエラー訂正用のパリティ(ECCパリティ)を生成し、生成したECCパリティとユーザデータとを含む符号語を生成する。また、ECC回路24は、NANDメモリ10から読み出されたデータに対するエラー訂正処理を実行する。
【0020】
CPU21は、ECC回路24に、ユーザデータに対する符号語を生成させ、生成された符号語をライトデータとして後述するNANDインタフェース25経由でNANDメモリ10へ書き込む。つまり、CPU21は、ライト要求で指定されるユーザデータに基づくライトデータを生成し、NANDメモリ10へ書き込む。
【0021】
NANDインタフェース25は、NANDバスを介してNANDメモリ10と接続され、NANDメモリ10との通信を司る。NANDインタフェース25は、CPU21からの要求に応答して、種々の信号をNANDメモリ10に送信し、かつ、NANDメモリ10から種々の信号を受信する。NANDインタフェース25とNANDメモリ10との間で送受信される種々の信号は、ライトデータやリードデータを含む。
【0022】
続いて、バッファメモリ30が保持する各種テーブルについて説明する。バッファメモリ30は、L2Pテーブル30_1と、読み出し動作設定テーブル30_2と、書き込み動作設定テーブル30_3とを保持する。これらテーブル30_1、30_2、30_3は、例えば、メモリシステム1の電源オン時にNANDメモリ10からバッファメモリ30にロードされる。
【0023】
L2Pテーブル30_1は、論理アドレスそれぞれと物理アドレスそれぞれとの間のマッピングをセクタのような所定のサイズ単位で管理する。
【0024】
読み出し動作設定テーブル30_2は、読み出し動作を実行する設定に関する情報(設定情報)を管理し、書き込み動作設定テーブル30_3は、書き込み動作を実行する設定に関する情報(設定情報)を管理している。なお、読み出し動作設定テーブル30_2および書き込み動作設定テーブル30_3の詳細は後述する。
【0025】
次に、
図2を参照して、メモリチップ10_nの構成について説明する。
図2は、NANDメモリ10内のメモリチップ10_nの構成例を示すブロック図である。メモリチップ10_nは、メモリセルアレイ11と、入出力回路12と、ロジック制御回路13と、レディ/ビジー回路14と、レジスタ群15と、シーケンサ(または、制御回路)16と、電圧生成回路17と、ドライバ18と、ロウデコーダモジュール19と、カラムデコーダ31と、センスアンプモジュール32と、を備える。レジスタ群15は、ステータスレジスタ15Aと、アドレスレジスタ15Bと、コマンドレジスタ15Cと、レジスタ15Dと、を含む。
【0026】
メモリセルアレイ11は、1つまたは複数のブロックBLK0、BLK1、BLK2、・・・、BLKm(但し、mは0以上の整数である)を備える。複数のブロックBLK0~BLKmのそれぞれは、ロウおよびカラムに対応づけられた複数のメモリセルトランジスタ(以下では、単にメモリセルと称する)を含む。メモリセルは、電気的に消去およびプログラム可能な不揮発性メモリセルである。メモリセルアレイ11は、メモリセルに電圧を印加するための複数のワード線、複数のビット線およびソース線を含む。以下では、ブロックBLKr(但し、rは0以上m以下の整数である)と表記した場合、ブロックBLK0~BLKmのそれぞれを示すものとする。
【0027】
入出力回路12およびロジック制御回路13は、入出力端子(または、NANDバス)を介してメモリコントローラ20に接続される。入出力回路12は、メモリコントローラ20との間で入出力端子を介して、I/O信号DQを送受信する。I/O信号DQは、コマンド、アドレスおよびデータ(リードデータ、ライトデータ)等を含む。
【0028】
ロジック制御回路13は、メモリコントローラ20から入出力端子(または、NANDバス)を介して、外部制御信号を受信する。外部制御信号は、例えば、チップイネーブル信号CEn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、書き込みイネーブル信号WEn、読み出しイネーブル信号REn、ライトプロテクト信号WPn、を含む。信号名に付記された“n”は、その信号がアクティブ・ローであることを示す。
【0029】
チップイネーブル信号CEnは、メモリチップ10_nの選択を可能にし、当該メモリチップ10_nを選択する際にアサートされる。コマンドラッチイネーブル信号CLEは、I/O信号DQとして送信されるコマンドをコマンドレジスタ15Cにラッチすることを可能にする。アドレスラッチイネーブル信号ALEは、I/O信号DQとして送信されるアドレスをアドレスレジスタ15Bにラッチすることを可能にする。書き込みイネーブル信号WEnは、I/O信号DQとして送信されるデータ(ライトデータ)を入出力回路12に保持することを可能にする。読み出しイネーブル信号REnは、メモリセルアレイ11から読み出したデータ(リードデータ)を、I/O信号DQとして送信することを可能にする。ライトプロテクト信号WPnは、メモリチップ10_nに対する書き込みおよび消去を禁止する際にアサートされる。
【0030】
レディ/ビジー回路14は、シーケンサ16の制御の下、レディ/ビジー信号R/Bnを生成する。レディ/ビジー信号R/Bnは、メモリチップ10_nがレディ状態であるか、ビジー状態であるかを示す。レディ状態は、メモリコントローラ20からの命令を受け付けることが可能な状態であることを示す。ビジー状態は、メモリコントローラ20からの命令を受け付けることができない状態であることを示す。メモリコントローラ20は、メモリチップ10_nからレディ/ビジー信号R/Bnを受けることで、メモリチップ10_nがレディ状態であるか、ビジー状態であるかを知ることができる。
【0031】
ステータスレジスタ15Aは、メモリチップ10_nの動作に必要なステータス情報STSを保持し、このステータス情報STSをシーケンサ16の指示に基づいて入出力回路12に転送する。
【0032】
アドレスレジスタ15Bは、入出力回路12から転送された物理アドレスADDを保持する。物理アドレスADDは、メモリセルアレイ11内の記憶領域を指定するロウアドレスおよびカラムアドレスを含む。ロウアドレスは、例えば、動作対象のブロックBLKrを指定するブロックアドレスと、指定されたブロック内の動作対象のワード線を指定するページアドレスと、を含む。
【0033】
コマンドレジスタ15Cは、入出力回路12から転送されたコマンドCMDを保持する。コマンドCMDは、例えば、シーケンサ16に書き込み動作を命じるライトコマンドや、シーケンサ16に読み出し動作を命じるリードコマンド、等を含む。
【0034】
レジスタ15Dは、メモリセルアレイ11からロードされた書き込み特性管理テーブル15D_1と読み出し特性管理テーブル15D_2とを保持する。これらテーブル15D_1、15D_2は、メモリシステム1の電源オン時にメモリセルアレイ11からレジスタ15Dにロードされ、電源オフ時にメモリセルアレイ11に保存される。書き込み特性管理テーブル15D_1および読み出し特性管理テーブル15D_2の詳細は後述する。
【0035】
ステータスレジスタ15A、アドレスレジスタ15B、コマンドレジスタ15Cおよびレジスタ15Dは、例えばSRAMで構成される。
【0036】
シーケンサ16は、コマンドレジスタ15Cからコマンドを受け、このコマンドに基づくシーケンスに従ってメモリチップ10_nを制御する。シーケンサ16は、ロウデコーダモジュール19、カラムデコーダ31、センスアンプモジュール32および電圧生成回路17等を制御して、書き込み動作、読み出し動作および消去動作を実行する。具体的には、シーケンサ16は、コマンドレジスタ15Cから受信したライトコマンドに基づいて、ロウデコーダモジュール19、ドライバ18およびセンスアンプモジュール32を制御して、物理アドレスADDにより指定されたメモリセルにデータを書き込む。シーケンサ16は、コマンドレジスタ15Cから受信したリードコマンドに基づいて、ロウデコーダモジュール19、ドライバ18、カラムデコーダ31およびセンスアンプモジュール32を制御して、物理アドレスADDにより指定されたメモリセルからデータを読み出す。シーケンサ16は、コマンドレジスタ15Cから受信したイレーズコマンドに基づいて、ロウデコーダモジュール19、ドライバ18、カラムデコーダ31およびセンスアンプモジュール32を制御して、物理アドレスADDにより指定されたブロックに記憶されたデータを消去する。
【0037】
電圧生成回路17は、メモリチップ10_nの外部から図示しない電源端子を介して電源電圧を受ける。電圧生成回路17は、シーケンサ16の制御の下、この電源電圧を用いて、書き込み動作、読み出し動作および消去動作に必要な複数の電圧を生成する。電圧生成回路17は、生成した電圧を、メモリセルアレイ11、ドライバ18およびセンスアンプモジュール32等に供給する。
【0038】
ドライバ18は、電圧生成回路17から複数の電圧を受ける。ドライバ18は、電圧生成回路17から供給された複数の電圧のうち、書き込み動作、読み出し動作および消去動作に応じて選択した複数の電圧を、複数の信号線を介してロウデコーダモジュール19に供給する。
【0039】
ロウデコーダモジュール19は、アドレスレジスタ15Bからロウアドレスを受け、このロウアドレスをデコードする。ロウデコーダモジュール19は、ロウアドレスのデコード結果に基づいて、複数のブロックのいずれかを選択し、選択したブロックBLKr内のワード線をさらに選択する。ロウデコーダモジュール19は、選択されたブロックBLKrに、ドライバ18から供給された複数の電圧を転送する。
【0040】
カラムデコーダ31は、アドレスレジスタ15Bからカラムアドレスを受け、このカラムアドレスをデコードする。カラムデコーダ31は、カラムアドレスのデコード結果に基づいて、ビット線を選択する。
【0041】
センスアンプモジュール32は、読み出し動作時には、メモリセルからビット線に読み出されたデータを検知し、増幅する。さらに、センスアンプモジュール32は、メモリセルから読み出されたデータDAT(リードデータ)を一時的に保持し、保持したデータDAT(リードデータ)を入出力回路12へ転送する。また、センスアンプモジュール32は、書き込み動作時には、入出力回路12から転送されたデータDAT(ライトデータ)を一時的に保持する。さらに、センスアンプモジュール32は、データDAT(ライトデータ)をビット線に転送する。
【0042】
図3は、本実施形態に係るメモリシステム1において実行される読み出し動作の概要を説明するための図である。
まず、メモリコントローラ20は、ホスト装置2からリード要求を受信すると、バッファメモリ30に格納されたL2Pテーブル30_1を用いて、受信したリード要求に含まれる論理アドレスを物理アドレスADDに変換する。その後、メモリコントローラ20は、L2Pテーブル30_1を用いて得られた物理アドレスADD(つまり、リードデータの格納位置を示す物理アドレスADD)をアドレス情報としてNANDメモリ10に送信する。この時、メモリコントローラ20は、ホスト装置2から受信したリード要求に応じたリードコマンドを発行し、当該リードコマンドをアドレス情報と共に、NANDメモリ10に送信してもよい。
【0043】
NANDメモリ10は、メモリコントローラ20からアドレス情報を受信すると、レジスタ15Dに格納された書き込み特性管理テーブル15D_1を用いて、受信したアドレス情報に対応する書き込み特性情報を特定し、特定した書き込み特性情報をメモリコントローラ20に送信する。
【0044】
ここで、
図4を参照して、レジスタ15Dに格納される書き込み特性管理テーブル15D_1について説明する。
図4は、書き込み特性管理テーブル15D_1の一例を示す。書き込み特性管理テーブル15D_1は、NANDメモリ10の各アドレスの特性であって、データの書き込みに関する特性を管理する。
図4に示すように、書き込み特性管理テーブル15D_1においては、アドレス情報と、書き込み特性情報とが対応づけられている。アドレス情報は、NANDメモリ10に含まれるメモリセルを指定する物理アドレスADD(例えば、物理アドレスADD1、ADD2、ADD3、等)を示す。書き込み特性情報は、書き込み特性CHA_W(例えば、書き込み特性CHA_W1、CHA_W2、CHA_W3、等)を示し、対応づけられたアドレス情報(物理アドレスADD)により指定されるメモリセルへのデータの書き込みに必要とした動作内容に関する情報を示す。例えば、書き込み特性情報は、対応づけられたアドレス情報(物理アドレスADD)により指定されるメモリセルにデータを書き込んだ時の書き込み電圧の印加回数を、書き込み特性CHA_Wとして示す。
【0045】
再度、
図3の説明に戻る。メモリコントローラ20は、NANDメモリ10から書き込み特性情報を受信すると、バッファメモリ30に格納された読み出し動作設定テーブル30_2を用いて、受信した書き込み特性情報に対応する読み出し動作設定情報を特定し、特定した読み出し動作設定情報に基づく読み出し動作を実行する。詳細については後述するが、メモリコントローラ20は、少なくとも、ホスト装置2から受信したリード要求に応じたリードコマンドと、リードデータの格納位置を示す物理アドレスADDとをNANDメモリ10に送信し、必要に応じて、特定した読み出し動作設定情報に基づくコマンドをNANDメモリ10にさらに送信する。
【0046】
ここで、
図5を参照して、バッファメモリ30に格納される読み出し動作設定テーブル30_2について説明する。
図5は、バッファメモリ30に格納される読み出し動作設定テーブル30_2の一例を示す。
図5に示すように、読み出し動作設定テーブル30_2においては、書き込み特性情報と、読み出し動作設定情報とが対応づけられている。読み出し動作設定情報は、読み出し動作設定OPE_R(例えば、読み出し動作設定OPE_R1、OPE_R2、OPE_R3、等)を示し、対応づけられた書き込み特性情報により示される書き込み特性CHA_Wを有したアドレスのメモリセルからデータを読み出す動作を実行する設定に関する情報を示す。
【0047】
例えば、読み出し動作設定情報は、対応づけられた書き込み特性情報により示される書き込み特性CHA_Wを有したアドレスのメモリセルからデータを読み出す時の最適な読み出し電圧値を、読み出し動作設定OPE_Rとして示す。これによれば、メモリコントローラ20は、ホスト装置2から受信したリード要求に含まれる論理アドレスに対応した物理アドレスADDにより指定されるメモリセルにとって最適な読み出し電圧値を用いた読み出し動作を実行することが可能である。なお、本実施形態の読み出し動作において最適とは、例えば、エラー訂正、時間、及び消費電力に対して望ましい結果が得られることを意味する。具体的には、例えば、最適な読み出し電圧は、読み出されたリードデータに対するECC回路24によるエラー訂正が最も少ない読み出し電圧である。また、最適な読み出し電圧は、読み出し動作が完了するまでにかかる時間が最も短い読み出し電圧であっても良い。最適な読み出し電圧は、読み出し動作における消費電力が最も少ない読み出し電圧であっても良い。すなわち、条件に対して望ましい結果が得られる場合を最適とする。
【0048】
例えば、読み出し動作設定情報は、対応づけられた書き込み特性情報により示される書き込み特性CHA_Wを有したアドレスのメモリセルからデータを読み出すために補助機能を使用するかどうか、および使用する場合の最適な補助機能を、読み出し動作設定OPE_Rとして示す。これによれば、メモリコントローラ20は、ホスト装置2から受信したリード要求に含まれる論理アドレスに対応した物理アドレスADDにより指定されるメモリセルにとって最適な補助機能を用いた読み出し動作(例えば、DLA(direct look ahead)読み出し動作、等)を必要に応じて実行することが可能である。DLA読み出し動作とは、選択されたワード線の隣接ワード線に接続されたメモリセルからのリード結果に基づいて読み出し電圧値を変化させ、選択されたワード線に接続されたメモリセルの読み出しを行う読み出し動作である。
【0049】
例えば、読み出し動作設定情報は、対応づけられた書き込み特性情報により示される書き込み特性CHA_Wを有したアドレスのメモリセルからデータを読み出すために使用される最適な機能を、読み出し動作設定OPE_Rとして示す。これによれば、メモリコントローラ20は、ホスト装置2から受信したリード要求に含まれる論理アドレスに対応した物理アドレスADDにより指定されるメモリセルにとって最適な機能を用いた読み出し動作(例えば、軟判定読み出し動作(soft bit read)、On-chip Tracking Read(On-chip Vth Tracking Read)等)を実行することが可能である。On-chip Tracking Readとは、メモリコントローラからの制御に依らずに不揮発性メモリ内で実行される読み出し動作である。
【0050】
再度、
図3の説明に戻る。NANDメモリ10は、メモリコントローラ20から少なくともリードコマンドおよび物理アドレスADDを受信すると、受信した物理アドレスADDにより指定されるメモリセルに格納されたデータ(リードデータ)を読み出し、当該リードデータをメモリコントローラ20に送信する。
【0051】
メモリコントローラ20は、NANDメモリ10からリードデータを受信すると、受信したリードデータ(より詳しくは、受信したリードデータに基づくデータ)をホスト装置2に送信し、一連の読み出し動作を終了させる。
【0052】
図6は、
図3に示した一連の読み出し動作のうち、メモリコントローラ20側で実行される動作をより詳細に説明するためのフローチャートである。
まず、ホストインタフェース23は、ホスト装置2からリード要求を受信する(ステップS1)。受信されたリード要求は、ホストインタフェース23からCPU21に転送される。
【0053】
CPU21は、ホストインタフェース23から転送されて来るリード要求を受けると、バッファメモリ30に格納されたL2Pテーブル30_1を用いて、当該リード要求に含まれる論理アドレスを物理アドレスに変換し、リードデータの格納位置を示す物理アドレスADDを特定する(ステップS2)。リードデータの格納位置を示す物理アドレスADDは、アドレス情報として、CPU21からNANDインタフェース25に転送される。
【0054】
NANDインタフェース25は、CPU21から転送されて来るアドレス情報を受けると、当該アドレス情報をNANDメモリ10に送信し(ステップS3)、当該アドレス情報に対応する書き込み特性情報をNANDメモリ10から受信する(ステップS4)。受信された書き込み特性情報は、NANDインタフェース25からCPU21に転送される。
【0055】
CPU21は、NANDインタフェース25から転送されて来る書き込み特性情報を受けると、バッファメモリ30に格納された読み出し動作設定テーブル30_2を用いて、当該書き込み特性情報に対応する読み出し動作設定情報を特定する(ステップS5)。その後、CPU21は、特定した読み出し動作設定情報に基づく読み出し動作を実行し、リードデータをNANDメモリ10から読み出す(ステップS6)。なお、ステップS6の処理は後述でさらに詳しく説明する。
【0056】
しかる後、CPU21は、NANDメモリ10から読み出されたリードデータに対するエラー訂正処理をECC回路24に実行させ、エラー訂正処理が実行されたリードデータをホストインタフェース23経由でホスト装置2へ送信する(ステップS7)。つまり、メモリコントローラ20は、NANDメモリ10から読み出されたリードデータに基づくデータをホスト装置2へ送信する。
【0057】
図7は、
図6に示したステップS6の処理をより詳しく説明するためのフローチャートである。
まず、CPU21は、ステップS5の処理で特定した読み出し動作設定情報により示される読み出し動作設定OPE_Rが、デフォルトの読み出し動作設定(以下では、読み出しデフォルト設定と称する)と同じであるか否かを判定する(ステップS6-1)。
【0058】
ステップS6-1の処理において、読み出し動作設定OPE_Rが読み出しデフォルト設定と同じであると判定された場合(ステップS6-1のYes)、CPU21は、ステップS2の処理で特定した物理アドレスADDにより指定されるメモリセルに対する読み出し動作を実行するために、読み出し動作設定の変更は必要ないと判断する。CPU21は、ホスト装置2から受信したリード要求に応じたリードコマンドを発行し、当該リードコマンドと、リードデータの格納位置を示す物理アドレスADDとを、NANDインタフェース25を介してNANDメモリ10に送信し(ステップS6-2)、後述するステップS6-5の処理に進む。
【0059】
一方、ステップS6-1の処理において、読み出し動作設定OPE_Rが読み出しデフォルト設定と異なると判定された場合(ステップS6-1のNo)、CPU21は、ステップS2の処理で特定した物理アドレスADDにより指定されるメモリセルに対する読み出し動作を実行するために、読み出し動作設定の変更が必要であると判断する。CPU21は、読み出し動作設定を、読み出しデフォルト設定から読み出し動作設定OPE_Rに変更するコマンド(変更コマンド)を発行する(ステップS6-3)。
【0060】
その後、CPU21は、ホスト装置2から受信したリード要求に応じたリードコマンドを発行し、当該リードコマンドと、リードデータの格納位置を示す物理アドレスADDと、ステップS6-3の処理において発行した変更コマンドとを、NANDインタフェース25を介してNANDメモリ10に送信する(ステップS6-4)。しかる後、NANDインタフェース25は、NANDメモリ10からリードデータを受信し、受信したリードデータをホストインタフェース23に転送し(ステップS6-5)、ステップS7の処理に進む。
【0061】
以上説明したように、NANDメモリ10のレジスタ15Dが書き込み特性管理テーブル15D_1を保持し、メモリコントローラ20のバッファメモリ30が読み出し動作設定テーブル30_2を保持することにより、メモリシステム1は、リードデータの格納位置を示す物理アドレスADDの書き込み特性CHA_Wを特定し、当該書き込み特性CHA_Wに基づいて、当該物理アドレスADDにより指定されるメモリセルにとって最適な読み出し動作設定OPE_R(例えば、最適な読み出し電圧値、最適な補助機能、最適な機能、等)を特定、適用することが可能である。これによれば、メモリシステム1は、リードデータの格納位置を示す物理アドレスADDにより指定されるメモリセルにとって最適な読み出し動作設定OPE_R(例えば、最適な読み出し電圧値、最適な補助機能、最適な機能、等)で読み出し動作を実行することができるため、データの読み出し精度および読み出し速度を向上させることが可能である。
【0062】
また、書き込み特性管理テーブル15D_1は、NANDメモリ10内のレジスタ15Dに保持されているため、NANDメモリ10は、メモリコントローラ20から受信したアドレス情報(物理アドレスADD)に対応する書き込み特性情報(書き込み特性CHA_W)を短時間のうちに特定し、当該書き込み特性情報をメモリコントローラ20に短時間で送信することが可能である。
【0063】
さらに、以上説明した読み出し動作においては、リードデータの格納位置を示す物理アドレスADDの書き込み特性CHA_Wに基づいて、当該物理アドレスADDにより指定されるメモリセルにとって最適な読み出し動作設定OPE_R(例えば、最適な読み出し電圧値、最適な補助機能、最適な機能、等)を特定するため、メモリシステム1は、当該リードデータの初回の読み出し時から、最適な読み出し動作設定OPE_R(例えば、最適な読み出し電圧値、最適な補助機能、最適な機能、等)で当該リードデータを読み出すことが可能である。
【0064】
また、以上説明したように、メモリコントローラ20は、NANDメモリ10から受信した書き込み特性情報(書き込み特性CHA_W)に基づいて読み出し動作設定OPE_Rを特定、適用すればよく、メモリコントローラ20が読み出し動作設定OPE_Rに対し具体的にどのような読み出し動作を対応させるかは、メモリコントローラ20側で決めることができるため、メモリコントローラ20に動作選択の自由度を持たせることが可能である。
【0065】
次に、
図8を参照して、本実施形態に係るメモリシステム1において実行される書き込み動作の概要を説明する。
図8は、本実施形態に係るメモリシステム1において実行される書き込み動作の概要を説明するための図である。
まず、メモリコントローラ20は、ホスト装置2からライト要求を受信すると、バッファメモリ30に格納されたL2Pテーブル30_1を用いて、受信したライト要求に含まれる論理アドレスを物理アドレスADDに変換する。その後、メモリコントローラ20は、L2Pテーブル30_1を用いて得られた物理アドレスADD(つまり、ライトデータの格納先を示す物理アドレスADD)をアドレス情報としてNANDメモリ10に送信する。この時、メモリコントローラ20は、ホスト装置2から受信したライト要求に応じたライトコマンドを発行し、当該ライトコマンドをアドレス情報と共に、NANDメモリ10に送信してもよい。
【0066】
NANDメモリ10は、メモリコントローラ20からアドレス情報を受信すると、レジスタ15Dに格納された読み出し特性管理テーブル15D_2を用いて、受信したアドレス情報に対応する読み出し特性情報を特定し、特定した読み出し特性情報をメモリコントローラ20に送信する。
【0067】
ここで、
図9を参照して、レジスタ15Dに格納される読み出し特性管理テーブル15D_2について説明する。
図9は、読み出し特性管理テーブル15D_2の一例を示す。読み出し特性管理テーブル15D_2は、NANDメモリ10の各アドレスの特性であって、データの読み出しに関する特性を管理する。
図9に示すように、読み出し特性管理テーブル15D_2においては、アドレス情報と、読み出し特性情報とが対応づけられている。アドレス情報は、NANDメモリ10に含まれるメモリセルを指定する物理アドレスADD(例えば、物理アドレスADD1、ADD2、ADD3、等)を示す。読み出し特性情報は、読み出し特性CHA_R(例えば、読み出し特性CHA_R1、CHA_R2、CHA_R3、等)を示し、対応づけられたアドレス情報(物理アドレスADD)により指定されるメモリセルからデータを読み出す時に必要とした動作内容に関する情報を示す。例えば、読み出し特性情報は、対応づけられたアドレス情報(物理アドレスADD)により指定されるメモリセルからデータが読み出された時の読み出し電圧値を、読み出し特性CHA_Rとして示す。
【0068】
再度、
図8の説明に戻る。メモリコントローラ20は、NANDメモリ10から読み出し特性情報を受信すると、バッファメモリ30に格納された書き込み動作設定テーブル30_3を用いて、受信した読み出し特性情報に対応する書き込み動作設定情報を特定し、特定した書き込み動作設定情報に基づく書き込み動作を実行する。より詳しくは、メモリコントローラ20は、少なくとも、ホスト装置2から受信したライト要求に応じたライトコマンドと、当該ライト要求に基づくライトデータと、当該ライトデータの格納先を示す物理アドレスADDとをNANDメモリ10に送信し、必要に応じて、特定した書き込み動作設定情報に基づくコマンドをNANDメモリ10にさらに送信する。
【0069】
ここで、
図10を参照して、バッファメモリ30に格納される書き込み動作設定テーブル30_3について説明する。
図10は、バッファメモリ30に格納される書き込み動作設定テーブル30_3の一例を示す。
図10に示すように、書き込み動作設定テーブル30_3においては、読み出し特性情報と、書き込み動作設定情報とが対応づけられている。書き込み動作設定情報は、書き込み動作設定OPE_W(例えば、書き込み動作設定OPE_W1、OPE_W2、OPE_W3、等)を示し、対応づけられた読み出し特性情報により示される読み出し特性CHA_Rを有したアドレスのメモリセルにデータを書き込む動作を実行する設定に関する情報を示す。
【0070】
例えば、書き込み動作設定情報は、対応づけられた読み出し特性情報により示される読み出し特性CHA_Rを有したアドレスのメモリセルと接続したワード線に印加されるプログラム電圧の最適な上昇値ΔVPGM(昇圧値、昇圧間隔)を、書き込み動作設定OPE_Wとして示す。これによれば、メモリコントローラ20は、ホスト装置2から受信したライト要求に含まれる論理アドレスに対応した物理アドレスADDにより指定されるメモリセルにとって最適な上昇値ΔVPGMを用いた書き込み動作を実行することが可能である。なお、本実施形態の書き込み動作において最適とは、例えば、時間、消費電力、及びメモリセルへのダメージに対して望ましい結果が得られることを意味する。具体的には、例えば、最適な上昇値ΔVPGMは、書き込み動作が完了するまでにかかる時間が最も短い上昇値ΔVPGMであっても良い。また、最適な上昇値ΔVPGMは、書き込み動作における消費電力が最も少ない上昇値ΔVPGMであっても良い。最適な上昇値ΔVPGMは、メモリセルへのダメージが最も少ない上昇値ΔVPGMであっても良い。すなわち、条件に対して望ましい結果が得られる場合を最適とする。後述する最適な書き込みループ回数についても同様である。
【0071】
例えば、書き込み動作設定情報は、対応づけられた読み出し特性情報により示される読み出し特性CHA_Rを有したアドレスのメモリセルと接続したワード線に印加されるプログラム電圧の最適な最大値を、書き込み動作設定OPE_Wとして示す。これによれば、メモリコントローラ20は、ホスト装置2から受信したライト要求に含まれる論理アドレスに対応した物理アドレスADDにより指定されるメモリセルにとって最適なプログラム電圧の最大値を用いた書き込み動作を実行することが可能である。
【0072】
例えば、書き込み動作設定情報は、対応づけられた読み出し特性情報により示される読み出し特性CHA_Rを有したアドレスのメモリセルにデータを書き込む時の書き込みループ回数の最適な最大値を、書き込み動作設定OPE_Wとして示す。これによれば、メモリコントローラ20は、ホスト装置2から受信したライト要求に含まれる論理アドレスに対応した物理アドレスADDにより指定されるメモリセルにとって最適な書き込みループ回数の最大値を用いた書き込み動作を実行することが可能である。
【0073】
再度、
図8の説明に戻る。NANDメモリ10は、メモリコントローラ20から少なくともライトコマンド、ライトデータおよび物理アドレスADDを受信すると、受信した物理アドレスADDにより指定されるメモリセルにライトデータを書き込み、一連の書き込み動作を終了させる。
【0074】
図11は、
図8に示した一連の書き込み動作のうち、メモリコントローラ20側で実行される動作をより詳細に説明するためのフローチャートである。
まず、ホストインタフェース23は、ホスト装置2からライト要求を受信する(ステップS11)。受信されたライト要求は、ホストインタフェース23からCPU21に転送される。
【0075】
CPU21は、ホストインタフェース23から転送されて来るライト要求を受けると、バッファメモリ30に格納されたL2Pテーブル30_1を用いて、当該ライト要求に含まれる論理アドレスを物理アドレスに変換し、当該ライト要求に基づくライトデータの格納先を示す物理アドレスADDを特定する(ステップS12)。ライトデータの格納先を示す物理アドレスADDは、アドレス情報として、CPU21からNANDインタフェース25に転送される。
【0076】
NANDインタフェース25は、CPU21から転送されて来るアドレス情報を受けると、当該アドレス情報をNANDメモリ10に送信し(ステップS13)、当該アドレス情報に対応する読み出し特性情報をNANDメモリ10から受信する(ステップS14)。受信された読み出し特性情報は、NANDインタフェース25からCPU21に転送される。
【0077】
CPU21は、NANDインタフェース25から転送されて来る読み出し特性情報を受けると、バッファメモリ30に格納された書き込み動作設定テーブル30_3を用いて、当該読み出し特性情報に対応する書き込み動作設定情報を特定する(ステップS15)。しかる後、CPU21は、特定した書き込み動作設定情報に基づく書き込み動作を実行し、ライトデータをNANDメモリ10に書き込み(ステップS16)、一連の書き込み動作を終了させる。
【0078】
ここで、
図12を参照して、
図11に示したステップS16の処理をより詳しく説明する。
図12は、
図11に示したステップS16の処理をより詳しく説明するためのフローチャートである。
まず、CPU21は、ステップS15の処理で特定した書き込み動作設定情報により示される書き込み動作設定OPE_Wが、デフォルトの書き込み動作設定(以下では、書き込みデフォルト設定と称する)と同じであるか否かを判定する(ステップS16-1)。
【0079】
ステップS16-1の処理において、書き込み動作設定OPE_Wが書き込みデフォルト設定と同じであると判定された場合(ステップS16-1のYes)、CPU21は、ステップS12の処理で特定した物理アドレスADDにより指定されるメモリセルに対する書き込み動作を実行するために、書き込み動作設定の変更は必要ないと判断する。CPU21は、ホスト装置2から受信したライト要求に応じたライトコマンドを発行し、当該ライトコマンドと、当該ライト要求に基づくライトデータと、当該ライトデータの格納先を示す物理アドレスADDとを、NANDインタフェース25を介してNANDメモリ10に送信し(ステップS16-2)、一連の書き込み動作を終了させる。
【0080】
一方、ステップS16-1の処理において、書き込み動作設定OPE_Wが書き込みデフォルト設定と異なると判定された場合(ステップS16-1のNo)、CPU21は、ステップS12の処理で特定した物理アドレスADDにより指定されるメモリセルに対する書き込み動作を実行するために、書き込み動作設定の変更が必要であると判断する。CPU21は、書き込み動作設定を、書き込みデフォルト設定から書き込み動作設定OPE_Wに変更するコマンド(変更コマンド)を発行する(ステップS16-3)。
【0081】
しかる後、CPU21は、ホスト装置2から受信したライト要求に応じたライトコマンドを発行し、当該ライトコマンドと、当該ライト要求に基づくライトデータと、当該ライトデータの格納先を示す物理アドレスADDと、ステップS16-3の処理において発行した変更コマンドとを、NANDインタフェース25を介してNANDメモリ10に送信し(ステップS16-4)、一連の書き込み動作を終了させる。
【0082】
以上説明したように、NANDメモリ10のレジスタ15Dが読み出し特性管理テーブル15D_2を保持し、メモリコントローラ20のバッファメモリ30が書き込み動作設定テーブル30_3を保持することにより、メモリシステム1は、ライトデータの格納先を示す物理アドレスADDの読み出し特性CHA_Rを特定し、当該読み出し特性CHA_Rに基づいて、当該物理アドレスADDにより指定されるメモリセルにとって最適な書き込み動作設定OPE_W(例えば、最適な上昇値ΔVPGM、最適なプログラム電圧の最大値、最適な書き込みループ回数の最大値、等)を特定、適用することが可能である。これによれば、メモリシステム1は、ライトデータの格納先を示す物理アドレスADDにより指定されるメモリセルにとって最適な書き込み動作設定OPE_W(例えば、最適な上昇値ΔVPGM、最適なプログラム電圧の最大値、最適な書き込みループ回数の最大値、等)で書き込み動作を実行することができるため、データの書き込み精度および書き込み速度を向上させることが可能である。
【0083】
また、読み出し特性管理テーブル15D_2は、NANDメモリ10内のレジスタ15Dに保持されているため、NANDメモリ10は、メモリコントローラ20から受信したアドレス情報(物理アドレスADD)に対応する読み出し特性情報(読み出し特性CHA_R)を短時間のうちに特定し、当該読み出し特性情報をメモリコントローラ20に短時間で送信することが可能である。
【0084】
また、以上説明したように、メモリコントローラ20は、NANDメモリ10から受信した読み出し特性情報(読み出し特性CHA_R)に基づき書き込み動作設定OPE_Wを特定、適用すればよく、メモリコントローラ20が書き込み動作設定OPE_Wに対し具体的にどのような書き込み動作を対応させるかは、メモリコントローラ20側で決めることができるため、メモリコントローラ20に動作選択の自由度を持たせることが可能である。
【0085】
以上説明した実施形態では、メモリシステム1が、アドレス毎に、書き込み特性CHA_Wと読み出し特性CHA_Rという2つの特性を管理し、読み出し動作を実行する際に書き込み特性CHA_Wを用いて読み出し動作設定OPE_Rを特定し、書き込み動作を実行する際に読み出し特性CHA_Rを用いて書き込み動作設定OPE_Wを特定する場合について説明した。しかしながら、メモリシステム1は、アドレス毎に1つの特性を管理し、読み出し動作を実行する際に当該1つの特性を用いて読み出し動作設定OPE_Rを特定し、書き込み動作を実行する際に当該1つの特性を用いて書き込み動作設定OPE_Wを特定してもよい。以下では、このような場合について具体的に説明する。
【0086】
図13は、本実施形態に係るメモリシステム1において実行される読み出し動作または書き込み動作の別の例の概要を説明するための図である。本例においては、
図13に示すように、NANDメモリ10のレジスタ15Dには特性管理テーブル15D_3が格納され、バッファメモリ30には動作設定テーブル30_4が格納される。
【0087】
図14は、NANDメモリ10のレジスタ15Dに格納される特性管理テーブル15D_3の一例を示す。特性管理テーブル15D_3は、NANDメモリ10の各アドレスの特性を管理し、書き込み特性管理テーブル15D_1や読み出し特性管理テーブル15D_2と同様に、メモリシステム1の電源オン時にメモリセルアレイ11からレジスタ15Dにロードされる。
図14に示すように、特性管理テーブル15D_3においては、アドレス情報と、特性情報とが対応づけられている。アドレス情報は、NANDメモリ10に含まれるメモリセルを指定する物理アドレスADD(例えば、物理アドレスADD1、ADD2、ADD3、等)を示す。特性情報は、アドレス特性CHA(例えば、アドレス特性CHA_1、CHA_2、CHA_3、等)として、対応づけられたアドレス情報(物理アドレスADD)により指定されるメモリセルの特性に関する情報を示す。
【0088】
図15は、バッファメモリ30に格納される動作設定テーブル30_4の一例を示す。
図15に示すように、動作設定テーブル30_4においては、特性情報と、読み出し動作設定情報と、書き込み動作設定情報とが対応づけられている。
【0089】
読み出し動作設定情報は、
図5に示した読み出し動作設定テーブル30_2と同様に、読み出し動作設定OPE_R(例えば、読み出し動作設定OPE_R1、OPE_R2、OPE_R3、等)を示し、対応づけられた特性情報により示されるアドレス特性CHAを有したアドレスのメモリセルからデータを読み出す動作を実行する設定に関する情報を示す。例えば、読み出し動作設定情報は、対応づけられた特性情報により示されるアドレス特性CHAを有したアドレスのメモリセルからデータを読み出す時の最適な読み出し電圧値を、読み出し動作設定OPE_Rとして示す。
【0090】
書き込み動作設定情報は、
図10に示した書き込み動作設定テーブル30_3と同様に、書き込み動作設定OPE_W(例えば、書き込み動作設定OPE_W1、OPE_W2、OPE_W3、等)を示し、対応づけられた特性情報により示されるアドレス特性CHAを有したアドレスのメモリセルにデータを書き込む動作を実行する設定に関する情報を示す。例えば、書き込み動作設定情報は、対応づけられた特性情報により示されるアドレス特性CHAを有したアドレスのメモリセルと接続したワード線に印加されるプログラム電圧の最適な上昇値ΔVPGMを、書き込み動作設定OPE_Wとして示す。
【0091】
図13の説明に戻る。まず、メモリコントローラ20は、ホスト装置2からリード要求またはライト要求を受信すると、バッファメモリ30に格納されたL2Pテーブル30_1を用いて、受信したリード要求またはライト要求に含まれる論理アドレスを物理アドレスADDに変換する。その後、メモリコントローラ20は、L2Pテーブル30_1を用いて得られた物理アドレスADD(つまり、リードデータの格納位置を示す物理アドレスADD)をアドレス情報としてNANDメモリ10に送信する。
【0092】
NANDメモリ10は、メモリコントローラ20からアドレス情報を受信すると、レジスタ15Dに格納された特性管理テーブル15D_3を用いて、受信したアドレス情報に対応する特性情報を特定し、特定した特性情報をメモリコントローラ20に送信する。
【0093】
メモリコントローラ20は、ホスト装置2からのリード要求に伴いNANDメモリ10に送信したアドレス情報への応答として、上記した特性情報を受信すると、バッファメモリ30に格納された動作設定テーブル30_4を用いて、受信した特性情報に対応する読み出し動作設定情報を特定し、特定した読み出し動作設定情報に基づく読み出し動作を実行する。一方、メモリコントローラ20は、ホスト装置2からのライト要求に伴うNANDメモリ10に送信したアドレス情報への応答として、上記した特性情報を受信すると、バッファメモリ30に格納された動作設定テーブル30_4を用いて、受信した特性情報に対応する書き込み動作設定情報を特定し、特定した書き込み動作設定情報に基づく書き込み動作を実行する。
【0094】
以上説明したように、NANDメモリ10のレジスタ15Dが特性管理テーブル15D_3を保持し、メモリコントローラ20のバッファメモリ30が動作設定テーブル30_4を保持することにより、メモリシステム1は、書き込み特性と読み出し特性といった2つの特性を管理しなくても、
図3に示した読み出し動作や
図8に示した書き込み動作と同様な動作を実行することが可能である。つまり、メモリシステム1は、ホスト装置2からリード要求を受信した場合には、リードデータの格納位置を示す物理アドレスADDのアドレス特性CHAを特定し、当該アドレス特性CHAに基づいて、リードデータの格納位置を示す物理アドレスADDにより指定されるメモリセルにとって最適な読み出し動作設定OPE_R(例えば、最適な読み出し電圧値、最適な補助機能、最適な機能、等)を特定、適用することが可能であり、データの読み出し精度および読み出し速度を向上させることが可能である。また、メモリシステム1は、ホスト装置2からライト要求を受信した場合には、ライトデータの格納先を示す物理アドレスADDのアドレス特性CHAを特定し、当該アドレス特性CHAに基づいて、ライトデータの格納先を示す物理アドレスADDにより指定されるメモリセルにとって最適な書き込み動作設定OPE_W(例えば、最適な上昇値ΔVPGM、最適なプログラム電圧の最大値、最適な書き込みループ回数の最大値、等)を特定、適用することが可能であり、データの書き込み精度および書き込み速度を向上させることが可能である。
【0095】
また、特性管理テーブル15D_3は、NANDメモリ10内のレジスタ15Dに保持されているため、NANDメモリ10は、メモリコントローラ20から受信したアドレス情報(物理アドレスADD)に対応する特性情報(アドレス特性CHA)を短時間のうちに特定し、当該特性情報をメモリコントローラ20に短時間で送信することが可能である。
【0096】
次に、
図16を参照して、特性管理テーブル15D_3を更新する更新処理について説明する。
図13に示した一連の動作によれば、各アドレスのアドレス特性CHAに対応した読み出し動作設定OPE_Rを特定し、当該読み出し動作設定OPE_Rに基づき最適な読み出し動作を実行することが可能であるが、読み出し動作が最適であったかどうかは、当該読み出し動作を実行した後に判明するため、当該読み出し動作が最適な読み出し動作になっていないことも考えられる。
【0097】
読み出し動作が最適な読み出し動作になっていたか否かは、例えば、ECC回路24によるエラー訂正処理によりエラーが検出され、読み出し電圧値が調整されたか否かに基づいて判定することができる。なお、読み出し動作が最適な読み出し動作になっていたか否かを判定する方法は、この判定方法に限定されない。メモリコントローラ20(メモリシステム1)は、ECC回路24によるエラー訂正処理によりエラーが検出された場合、読み出し電圧値を調整して繰り返し読み出し動作を実行する。このため、メモリコントローラ20(メモリシステム1)は、ECC回路24によるエラー訂正処理によりエラーが検出され、読み出し電圧値を調整して繰り返し読み出し動作が行われた場合、実行された読み出し動作が最適な読み出し動作になっていなかったと判定し、最後に実行された読み出し動作に基づき、実行された読み出し動作の対象となったアドレスの特性情報を更新する。換言すると、メモリコントローラ20は、実行された読み出し動作に用いられた読み出し動作設定OPE_Rの特定に使用したアドレス特性CHAを示す特性情報を更新し、更新後の特性情報をNANDメモリ10に送信する。NANDメモリ10は、更新後の特性情報を受信すると、受信した更新後の特性情報をレジスタ15Dに格納された特性管理テーブル15D_3にこれを反映させる。一方、メモリコントローラ20(メモリシステム1)は、ECC回路24によるエラー訂正処理によりエラーが検出されず、実行された読み出し動作が最適な読み出し動作になっていた場合、実行された読み出し動作の対象となったアドレスの特性情報を更新しない。
【0098】
また、
図13に示した一連の動作によれば、各アドレスのアドレス特性CHAに対応した書き込み動作設定OPE_Wを特定し、当該書き込み動作設定OPE_Wに基づき最適な書き込み動作を実行することが可能であるが、書き込み動作が最適であったかどうかは、当該書き込み動作を実行した後に判明するため、当該書き込み動作が最適な書き込み動作になっていないことも考えられる。
【0099】
書き込み動作が最適な書き込み動作になっていたか否かは、例えば、書き込みループ回数が予め設定されたしきい値以上であるか否かに基づいて判定することができる。あるいは、書き込み動作が最適な書き込み動作になっていたか否かは、例えば、書き込み動作が完了するまでにかかった時間が予め設定されたしきい値以上であるか否かに基づいて判定することができる。あるいは、書き込み動作が最適な書き込み動作になっていたか否かは、例えば、書き込み動作完了後に残留したフェイルビット数が予め設定されたしきい値以上であるか否かに基づいて判定することができる。なお、書き込み動作が最適な書き込み動作になっていたか否かを判定する方法は、上記した判定方法に限定されない。
【0100】
メモリコントローラ20(メモリシステム1)は、上記した判定方法のうちの少なくとも1つにより判定した結果、実行された書き込み動作が最適な書き込み動作になっていなかった場合(例えば、書き込みループ回数が予め設定されたしきい値以上であった場合、書き込み動作が完了するまでにかかった時間が予め設定されたしきい値以上であった場合、書き込み動作完了後に残留したフェイルビット数が予め設定されたしきい値以上であった場合、等)、実行された書き込み動作に基づき、実行された書き込み動作の対象となったアドレスの特性情報を更新する。換言すると、メモリコントローラ20は、実行された書き込み動作に用いられた書き込み動作設定OPE_Wの特定に使用したアドレス特性CHAを示す特性情報を更新し、更新後の特性情報をNANDメモリ10に送信する。NANDメモリ10は、更新後の特性情報を受信すると、受信した更新後の特性情報をレジスタ15Dに格納された特性管理テーブル15D_3にこれを反映させる。一方、メモリコントローラ20(メモリシステム1)は、上記した判定方法のうちの少なくとも1つにより判定した結果、実行された書き込み動作が最適な書き込み動作になっていた場合、実行された書き込み動作の対象となったアドレスの特性情報を更新しない。
【0101】
以上説明した
図16に示す更新処理が実行されることにより、メモリシステム1は、今回のアドレスを対象とした読み出し動作または書き込み動作が再度実行される際には、更新後の特性情報(アドレス特性CHA)に基づき読み出し動作設定OPE_Rまたは書き込み動作設定OPE_Wを特定、適用することができるため、当該アドレスにより指定されるメモリセルにとって最適な読み出し動作または書き込み動作を実行することが可能である。なお、
図16に示した更新処理は、
図3に示した一連の読み出し動作や
図8に示した一連の書き込み動作の後に実行されてもよい。
図3に示した読み出し動作の後に上記した更新処理が実行される場合、メモリコントローラ20は最後に実行した読み出し動作に基づき、読み出し対象のアドレスの読み出し特性CHA_Rを示す読み出し特性情報を更新する。また、
図8に示した書き込み動作の後に上記した更新処理が実行される場合、メモリコントローラ20は実行した書き込み動作に基づき、書き込み対象のアドレスの書き込み特性CHA_Wを示す書き込み特性情報を更新する。
【0102】
以上説明した一実施形態によれば、メモリシステム1は、NANDメモリ10のレジスタ15Dで各アドレスの特性を管理し、読み出し動作または書き込み動作を実行する前に、読み出し対象のアドレスの特性(例えば書き込み特性CHA_W)または書き込み対象のアドレスの特性(例えば読み出し特性CHA_R)に基づく読み出し動作設定OPE_Rまたは書き込み動作設定OPE_Wを特定、適用した上で、読み出し動作または書き込み動作を実行することができる。これによれば、メモリシステム1およびNANDメモリ10の応答性能を向上させることが可能である。つまり、メモリシステム1およびNANDメモリ10におけるデータの読み出し精度および読み出し速度と、データの書き込み精度および書き込み速度とを向上させることが可能である。
【0103】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0104】
1…メモリシステム、2…ホスト装置、10…不揮発性メモリ(NANDメモリ)、15D…レジスタ、15D_1…書き込み特性管理テーブル、15D_2…読み出し特性管理テーブル、15D_3…特性管理テーブル、20…メモリコントローラ、30…バッファメモリ、30_1…L2Pテーブル、30_2…読み出し動作設定テーブル、30_3…書き込み動作設定テーブル、30_4…動作設定テーブル。