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

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

▶ 東芝メモリ株式会社の特許一覧 ▶ 東芝情報システム株式会社の特許一覧

特許7305592メモリシステム、メモリデバイス、及びメモリシステムの制御方法
<>
  • 特許-メモリシステム、メモリデバイス、及びメモリシステムの制御方法 図1
  • 特許-メモリシステム、メモリデバイス、及びメモリシステムの制御方法 図2
  • 特許-メモリシステム、メモリデバイス、及びメモリシステムの制御方法 図3
  • 特許-メモリシステム、メモリデバイス、及びメモリシステムの制御方法 図4
  • 特許-メモリシステム、メモリデバイス、及びメモリシステムの制御方法 図5
  • 特許-メモリシステム、メモリデバイス、及びメモリシステムの制御方法 図6
  • 特許-メモリシステム、メモリデバイス、及びメモリシステムの制御方法 図7
  • 特許-メモリシステム、メモリデバイス、及びメモリシステムの制御方法 図8
  • 特許-メモリシステム、メモリデバイス、及びメモリシステムの制御方法 図9
  • 特許-メモリシステム、メモリデバイス、及びメモリシステムの制御方法 図10
  • 特許-メモリシステム、メモリデバイス、及びメモリシステムの制御方法 図11
  • 特許-メモリシステム、メモリデバイス、及びメモリシステムの制御方法 図12
  • 特許-メモリシステム、メモリデバイス、及びメモリシステムの制御方法 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-30
(45)【発行日】2023-07-10
(54)【発明の名称】メモリシステム、メモリデバイス、及びメモリシステムの制御方法
(51)【国際特許分類】
   H04L 9/10 20060101AFI20230703BHJP
   G06F 12/00 20060101ALI20230703BHJP
   G06F 12/14 20060101ALI20230703BHJP
   G06F 21/73 20130101ALI20230703BHJP
   G11C 16/26 20060101ALI20230703BHJP
【FI】
H04L9/10 Z
G06F12/00 597U
G06F12/14 510A
G06F21/73
G11C16/26 100
【請求項の数】 10
(21)【出願番号】P 2020060809
(22)【出願日】2020-03-30
(65)【公開番号】P2021163987
(43)【公開日】2021-10-11
【審査請求日】2022-09-20
(73)【特許権者】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(73)【特許権者】
【識別番号】391016358
【氏名又は名称】東芝情報システム株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100103034
【弁理士】
【氏名又は名称】野河 信久
(74)【代理人】
【識別番号】100075672
【弁理士】
【氏名又は名称】峰 隆司
(74)【代理人】
【識別番号】100153051
【弁理士】
【氏名又は名称】河野 直樹
(72)【発明者】
【氏名】新井 康記
(72)【発明者】
【氏名】青山 典生
【審査官】中里 裕正
(56)【参考文献】
【文献】特開2018-186406(JP,A)
【文献】特開2018-050103(JP,A)
【文献】特開2019-207743(JP,A)
【文献】特開2020-009519(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/10
G06F 12/00
G11C 16/26
G06F 21/73
G06F 12/14
(57)【特許請求の範囲】
【請求項1】
データを記憶するメモリデバイスと、
前記メモリデバイスに対する動作を制御するコントローラと、
を具備し、
前記メモリデバイスは、
前記メモリデバイスの第1のアドレスに属する複数のメモリセルに、第1のプログラム電圧によるプログラム動作を実行し、
第1の判定レベル及び前記第1の判定レベルと異なる第2の判定レベルを用いて、前記複数のメモリセルのうち、前記第1の判定レベルと前記第2の判定レベルとの間の値とは異なる値の閾値電圧を有する1つ以上の第1のメモリセルを検出し、
前記第1のアドレス内の前記第1のメモリセルの位置に基づいて、前記メモリデバイスの固有情報を生成する、
メモリシステム。
【請求項2】
前記第1のメモリセルは、前記第1及び第2の判定レベルでともにオン状態に設定される、又は、前記第1の判定レベルより高い前記第2の判定レベルでともにオフ状態に設定される、
請求項1に記載のメモリシステム。
【請求項3】
前記プログラム動作は、前記第1のプログラム電圧による前記プログラム動作後のベリファイなしで、実行される、
請求項1又は2に記載のメモリシステム。
【請求項4】
前記メモリデバイスは、
前記第1のアドレスを含み、前記固有情報を生成するための第1のブロックと、
前記固有情報を記憶する第2のブロックと、
を含む、
請求項1乃至3のうちいずれか1項に記載のメモリシステム。
【請求項5】
前記メモリデバイスは、
第1のデータを記憶する第3のブロックを、
含み、
前記第3のブロックに記憶された前記第1のデータに対するアクセスは、前記第2のブロックに記憶された前記固有情報を用いて認証される、
請求項4に記載のメモリシステム。
【請求項6】
前記メモリデバイスは、NAND型フラッシュメモリを含む、
請求項1乃至5のうちいずれか1項に記載のメモリシステム。
【請求項7】
データを記憶するメモリセルアレイと、
前記メモリセルアレイに対する動作を制御する回路と、
を具備し、
前記回路は、
前記メモリセルアレイの第1のアドレスに属する複数のメモリセルに、第1のプログラム電圧によるプログラム動作を実行し、
第1の判定レベル及び前記第1の判定レベルと異なる第2の判定レベルを用いて、前記複数のメモリセルのうち、前記第1の判定レベルと前記第2の判定レベルとの間の値とは異なる値の閾値電圧を有する1つ以上の第1のメモリセルを検出し、
前記第1のアドレス内の前記第1のメモリセルの位置に基づいて、固有情報を生成する、
メモリデバイス。
【請求項8】
前記メモリセルアレイは、複数のストリングを含み、
前記ストリングの各々は、第1のトランジスタと、第2のトランジスタと、前記第1及び第2のトランジスタ間に直列接続された複数のメモリセルを、含む。
請求項7に記載のメモリデバイス。
【請求項9】
メモリデバイスの第1のアドレスに属する複数のメモリセルに、第1のプログラム電圧によるプログラム動作を実行することと、
第1の判定レベル及び前記第1の判定レベルと異なる第2の判定レベルを用いて、複数の第1のメモリセルのうち、前記第1の判定レベルと前記第2の判定レベルとの間の値とは異なる値の閾値電圧を有する1つ以上の第1のメモリセルを検出することと、
前記第1のアドレス内の前記第1のメモリセルの位置に基づいて、前記メモリデバイスの固有情報を生成することと、
を具備するメモリシステムの制御方法。
【請求項10】
前記固有情報に基づいて、前記メモリデバイス内のデータに対するアクセスの認証を行うことと、
をさらに具備する請求項9に記載のメモリシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、メモリシステム、メモリデバイス、及びメモリシステムの制御方法に関する。
【背景技術】
【0002】
コンテンツの不正利用を防止するための様々な技術の研究及び開発が、推進されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2012-14416号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
データの不正利用を防止するメモリシステム、メモリデバイス、及びメモリシステムの制御方法を提供する。
【課題を解決するための手段】
【0005】
実施形態のメモリシステムは、データを記憶するメモリデバイスと、前記メモリデバイスに対する動作を制御するコントローラと、を含み、前記メモリデバイスは、前記メモリデバイスの第1のアドレスに属する複数のメモリセルに、第1のプログラム電圧によるプログラム動作を実行し、第1の判定レベル及び前記第1の判定レベルと異なる第2の判定レベルを用いて、前記複数のメモリセルのうち、前記第1の判定レベルと前記第2の判定レベルとの間の値とは異なる値の閾値電圧を有する1つ以上の第1のメモリセルを検出し、前記第1のアドレス内の前記第1のメモリセルの位置に基づいて、前記メモリデバイスの固有情報を生成する。
【図面の簡単な説明】
【0006】
図1】実施形態のメモリシステムの構成例を示す図。
図2】NAND型フラッシュメモリの構成例を示す図。
図3】メモリセルアレイの構成例を示す等価回路図。
図4】メモリセルアレイの構造例を示す模式的断面図。
図5】データとメモリセルの閾値電圧の分布との関係を示す図。
図6】実施形態のメモリシステムの動作例を説明するための模式図。
図7】実施形態のメモリシステムの動作例を説明するための模式図。
図8】実施形態のメモリシステムの動作例を示すフローチャート
図9】実施形態のメモリシステムの動作例を説明するための模式図。
図10】実施形態のメモリシステムの動作例を説明するための模式図。
図11】実施形態のメモリシステムの動作例を説明するための模式図。
図12】実施形態のメモリシステムの動作例を示すフローチャート。
図13】実施形態のメモリシステムの変形例を示す図。
【発明を実施するための形態】
【0007】
以下、図面を参照しながら、各実施形態について詳細に説明する。以下の説明において、同一の機能及び構成を有する要素については、同一符号を付す。
また、以下の各実施形態において、末尾に区別化のための数字/英字を伴った参照符号を付された構成要素(例えば、ワード線WLやビット線BL、各種の電圧及び信号など)が、相互に区別されなくとも良い場合、末尾の数字/英字が省略された記載(参照符号)が用いられる。
【0008】
[実施形態]
図1乃至図13を参照して、実施形態のメモリシステム、メモリデバイス、及びメモリシステムの制御方法について説明する。
【0009】
(a)構成例
図1乃至図6を参照して、本実施形態のメモリシステムの構成例について説明する。
【0010】
図1は、本実施形態のメモリシステムの構成例を示すブロック図である。
【0011】
本実施形態のメモリシステムSYSは、ホストデバイス9に電気的に接続される。
メモリシステムSYSは、ホストデバイス9からのコマンド(以下では、ホストコマンドとよばれる)に応じて、データの転送及びデータの記憶などを行う。
【0012】
本実施形態のメモリシステムSYSは、1つ以上のNAND型フラッシュメモリ1と、コントローラ7とを含む。NAND型フラッシュメモリ1は、メモリデバイスの一例である。
【0013】
コントローラ(メモリコントローラともよばれる)7は、ホストコマンドに応じて、NAND型フラッシュメモリ1に対するデータのライト(ライト動作)、NAND型フラッシュメモリ1からのデータのリード(リード動作)、及び、NAND型フラッシュメモリ1内のデータのイレーズ(イレーズ動作)を命令する。コントローラ7は、NAND型フラッシュメモリ1内のデータを管理する。
コントローラ7の内部構成は、後述される。
【0014】
NAND型フラッシュメモリ1は、データを実質的に不揮発に記憶する不揮発性半導体メモリデバイスである。以下では、NAND型フラッシュメモリ1は、単に、フラッシュメモリともよばれる。
【0015】
(a-1)メモリデバイスの構成例
図2は、本実施形態のメモリシステムにおける、フラッシュメモリの構成例を示すブロック図である。
【0016】
図2に示されるように、フラッシュメモリ1は、入出力回路10、ロジック制御回路11、ステータスレジスタ12、アドレスレジスタ13、コマンドレジスタ14、シーケンサ15、レディ/ビジー回路16、電圧生成回路17、メモリセルアレイ18、ロウデコーダ19、センスアンプ20、データレジスタ21及びカラムデコーダ22などを含む。
【0017】
入出力回路10は、信号IO(IO0~IO7)の入出力を制御する。
入出力回路10は、コントローラ7からのデータ(ライトデータ)DATを、データレジスタ21に送る。入出力回路10は、コントローラ7からのアドレスADDをアドレスレジスタ13に送る。入出力回路10は、コントローラ7からのコマンド(以下では、コントローラコマンドともよばれる)CMDをコマンドレジスタ14に送る。入出力回路10は、ステータスレジスタ12からのステータス情報STSを、コントローラ7に送る。入出力回路10は、データレジスタ21からのデータ(リードデータ)DATを、コントローラ7に送る。
【0018】
ロジック制御回路11は、チップイネーブル信号CEn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号WEn、及びリードイネーブル信号REnを、コントローラ7から受け取る。ロジック制御回路11は、受け取った各信号に応じて、入出力回路10、及びシーケンサ15を制御する。
【0019】
ステータスレジスタ12は、例えば、データのライト、リード、及び消去におけるステータス情報を一時的に記憶する。コントローラ7が、ステータス情報を取得して、動作が正常に終了したか否か判定する。
【0020】
アドレスレジスタ13は、入出力回路10を介してコントローラ7から受信したアドレスADDを一時的に記憶する。アドレスレジスタ13は、ロウアドレスRAをロウデコーダ19へ転送し、カラムアドレスCAをカラムデコーダ22に転送する。
【0021】
コマンドレジスタ14は、入出力回路10を介して受け取ったコントローラコマンドCMDを一時的に記憶する。コマンドレジスタ14は、コントローラコマンドCMDを、シーケンサ15に転送する。
【0022】
シーケンサ15は、メモリデバイス1全体の動作を制御する。シーケンサ15は、コントローラコマンドCMDに応じて、例えば、ステータスレジスタ12、レディ/ビジー回路16、電圧生成回路17、ロウデコーダ19、センスアンプ20、データレジスタ21、及びカラムデコーダ22などを制御する。これによって、シーケンサ15は、ライト動作、リード動作、及びイレーズ動作などを実行する。
【0023】
レディ/ビジー回路16は、メモリデバイス1の動作状況に応じて、レディ/ビジー信号R/Bnの信号レベルを制御する。レディ/ビジー回路16は、レディ/ビジー信号R/Bnをコントローラ7に送る。
【0024】
電圧生成回路17は、シーケンサ15の制御に応じて、ライト動作、リード動作、及びイレーズ動作に用いられる電圧を生成する。電圧生成回路17は、この生成した電圧を、例えば、メモリセルアレイ18、ロウデコーダ19及びセンスアンプ20等に供給する。ロウデコーダ19及びセンスアンプ20は、電圧生成回路17から供給された電圧をメモリセルアレイ18内のメモリセルに印加する。
【0025】
メモリセルアレイ18は、複数のブロック(物理ブロック)BLKを含む。各ブロックBLKは、ロウ及びカラムに対応付けられたメモリセル(以下では、メモリセルトランジスタとも表記される)を含む。
【0026】
ロウデコーダ19は、ロウアドレスRAをデコードする。ロウデコーダ19は、デコード結果に基づいて、ブロックBLK及びワード線などの活性化又は非活性化(選択又は非選択)を制御する。ロウデコーダ19は、ライト動作、リード動作、及びイレーズ動作のための電圧を、メモリセルアレイ18(ブロックBLK)に印加する。
【0027】
センスアンプ(センスアンプモジュール)20は、リード動作時に、メモリセルアレイ18から出力された信号をセンスする。センスされた信号に基づいて、データが判別される。このデータが、リードデータとして用いられる。センスアンプ20は、リードデータをデータレジスタ21に送る。センスアンプ20は、ライト動作時に、ライトデータに基づいて、メモリセルアレイ18のビット線BLの電位を制御する。
【0028】
例えば、センスアンプ20は、複数のセンスアンプ回路200を含む。1つのセンスアンプ回路200は、対応する1又は複数のビット線に接続されている。各センスアンプ回路200は、1つ以上のラッチ回路201を含む。ラッチ回路201は、リード動作時に、メモリセルアレイ18内のNANDストリングNSから出力されたメモリセルの閾値電圧に応じた信号を、一時的に記憶する。
【0029】
データレジスタ21は、ライトデータ及びリードデータを記憶する。ライト動作において、データレジスタ21は、入出力回路10から受けたライトデータDATを、ライトデータWDとして、センスアンプ20に送る。リード動作において、データレジスタ21は、センスアンプ20から受けたリードデータRDを、リードデータDATとして、入出力回路10に送る。
【0030】
カラムデコーダ22は、カラムアドレスCAをデコードする。カラムデコーダ22は、デコード結果に応じて、センスアンプ20及びデータレジスタ21を制御する。
【0031】
図3は、本実施形態のフラッシュメモリにおける、メモリセルアレイの構成の一例を示す模式的な回路図である。
【0032】
図3に示されるように、メモリセルアレイ18において、1つのブロックBLKは、例えば、4つのストリングユニットSU(SU0~SU3)を含む。各ストリングユニットSUは、複数のNANDストリングNSを含む。NANDストリングNSの各々は、例えば、複数(例えば、m個)のメモリセルMC、及び、2つのセレクトトランジスタST1,ST2を含んでいる。NANDストリングNS内のセレクトトランジスタST1,ST2の個数は、任意であり、セレクトトランジスタST1,ST2のそれぞれは、1つ以上あればよい。mは、1以上の整数である。
【0033】
メモリセルMCは、制御ゲートと電荷蓄積層とを有する。これによって、メモリセルMCは、データを不揮発に記憶する。メモリセルMCは、電荷蓄積層に絶縁層(例えば、窒化シリコン膜)を用いたチャージトラップ型であってもよいし、電荷蓄積層に導電層(例えば、シリコン膜)を用いたフローティングゲート型であってもよい。
【0034】
複数のメモリセルMCは、セレクトトランジスタST1のソースとセレクトトランジスタST2のドレインとの間に直列接続されている。複数のメモリセルMCの電流経路は、2つのセレクトトランジスタST1,ST2間で直列に接続される。NANDストリングNS内における最もドレイン側(すなわち、セレクトトランジスタST1側)のメモリセルMCの電流経路の端子(例えば、ドレイン)は、セレクトトランジスタST1のソースに接続される。NANDストリングNS内における最もソース側(すなわち、セレクトトランジスタST2側)のメモリセルMCの電流経路の端子(例えば、ソース)は、セレクトトランジスタST2のドレインに接続されている。
【0035】
各ストリングユニットSU0~SU3において、セレクトトランジスタST1のゲートは、ドレイン側セレクトゲート線SGD0~SGD3のうち対応する1つに接続される。各ストリングユニットSU0~SU3において、複数のセレクトトランジスタST2のゲートは、1つのソース側セレクトゲート線SGSに共通に接続される。尚、各ストリングユニットSU0~SU3に対して、互いに独立の1つのセレクトゲート線SGSが接続されてもよい。
【0036】
ブロックBLK内の各メモリセルMCの制御ゲートは、複数のワード線WL0~WL(m-1)のうち対応する1つに接続される。
【0037】
ストリングユニットSU内の各NANDストリングNSのセレクトトランジスタST1のドレインは、それぞれ異なるビット線BL0~BL(n-1)に接続される。nは、1以上の整数である。各ビット線BLは、複数のブロックBLKに亘って各ストリングユニットSU内の1つのNANDストリングNSに共通に接続される。
【0038】
複数のセレクトトランジスタST2のソースは、ソース線SLに共通に接続されている。例えば、ブロックBLK内の複数のストリングユニットSUは、共通のソース線SLに接続されている。
【0039】
ストリングユニットSUは、複数のビット線BLに接続され、且つ、同一のセレクトゲート線SGDに接続されたNANDストリングNSの集合体である。ブロックBLKは、複数のワード線WLに共通に接続される複数のストリングユニットSUの集合体である。メモリセルアレイ18は、ビット線BLを共通にする複数のブロックBLKの集合体である。
【0040】
データのライト及びリードは、複数のストリングユニットSUのうち選択された1つにおける、いずれか1つのワード線WLに接続された複数のメモリセルMCに対して、一括に実行される。以下において、データのライト及びリード時において、一括して選択される複数のメモリセルMCを含む群は、メモリセルグループとよばれる。1つのメモリセルグループに含まれる複数のメモリセルMCのそれぞれに書き込まれる、又は、1つのメモリセルグループに含まれる複数のメモリセルMCのそれぞれから読み出される1ビットのデータの集まりは、ページとよばれる。1つのメモリセルグループに対して、1つ以上のページが割り付けられる。
データのイレーズは、ブロックBLK単位で実行される。但し、データのイレーズは、ブロックBLKよりも小さい単位で実行されてもよい。
【0041】
尚、フラッシュメモリ1は、プレーンPLNとよばれる制御単位を含む場合がある。1つのプレーンPLNは、例えば、メモリセルアレイ18、ロウデコーダ19、センスアンプ20、データレジスタ21、カラムデコーダ22などを含む。図2のフラッシュメモリ1の例において、1つのプレーンPLNのみが示されている。フラッシュメモリ1は、2以上のプレーンPLNを含んでもよい。フラッシュメモリ1が複数のプレーンPLNを有する場合、各プレーンPLNは、シーケンサ15の制御によって、異なるタイミングで、異なる動作を実行できる。
【0042】
図4は、本実施形態のフラッシュメモリのメモリセルアレイ18の断面構造の一例を示す断面図である。
【0043】
図4に示されるように、メモリセルアレイ18は、層間絶縁膜(図示せず)を介してZ方向における半導体基板SUBの上方に設けられている。メモリセルアレイ18は、例えば、複数の導電層41~45、及び、複数のメモリピラーMPを含む。
【0044】
導電層41は、Z方向における半導体基板SUBの上方に設けられる。例えば、導電層41は、半導体基板SUBの表面に平行なXY平面に沿って広がった板状の形状を有する。導電層41は、メモリセルアレイ18のソース線SLとして使用される。導電層41は、例えば、シリコン(Si)を含んでいる。
【0045】
Z方向における導電層41の上方に、絶縁層(図示せず)を介して、導電層42が設けられる。例えば、導電層42は、XY平面に沿って広がった板状の形状を有する。導電層42は、セレクトゲート線SGSとして使用される。導電層42は、例えばシリコン(Si)を含んでいる。
【0046】
導電層42の上方において、絶縁層(図示せず)と導電層43とがZ方向に交互に積層される。例えば、複数の導電層43の各々は、XY平面に沿って広がった板状の形状を有する。積層された複数の導電層43は、半導体基板SUB側から順に、それぞれワード線WL0~WLm-1として使用される。導電層43は、例えば、タングステン(W)を含んでいる。
【0047】
積層された複数の導電層43のうち最上層の導電層43の上方に、絶縁層(図示せず)を介して、導電層44が設けられる。導電層44は、例えば、XY平面に沿って広がった板状の形状を有する。導電層44は、セレクトゲート線SGDとして使用される。導電層44は、例えば、タングステン(W)を含んでいる。
【0048】
Z方向における導電層44の上方に、絶縁層(図示せず)を介して導電層45が設けられる。例えば、導電層45は、Y方向に沿って延在するライン状の形状を有する。導電層45は、ビット線BLとして使用される。上述のように、ビット線BLとしての複数の導電層45は、X方向に沿って配列されている。導電層45は、例えば、銅(Cu)を含んでいる。
【0049】
メモリピラーMPは、Z方向に沿って延在する柱状の構造を有する。メモリピラーMPは、例えば、導電層42~44を貫通している。メモリピラーMPの上端は、例えば、導電層44が設けられた領域(Z方向における位置/高さ)と導電層45が設けられた領域(Z方向における位置/高さ)との間に設けられている。メモリピラーMPの下端は、例えば、導電層41が設けられた領域内に設けられている。
【0050】
メモリピラーMPは、例えば、コア層50、半導体層51、及び積層膜52を含んでいる。
【0051】
コア層50は、Z方向に沿って延在した柱状の構造を有する。コア層50の上端は、例えば、導電層44が設けられた領域(位置/高さ)よりも上方の領域内に設けられている。コア層50の下端は、例えば、導電層41が設けられた領域内に設けられている。コア層50は、例えば、酸化シリコン(SiO)等の絶縁体を含んでいる。
【0052】
半導体層51は、コア層50を覆う。半導体層51は、例えば、メモリピラーMPの側面(XY平面にほぼ垂直な面)において、導電層41と直接接触している。半導体層51は、例えば、シリコン(Si)を含む。
積層膜52は、導電層41と半導体層51とが接触している部分を除いて、半導体層51の側面及び底面を覆っている。積層膜52は、トンネル絶縁層、電荷蓄積層及びブロック絶縁層を含む。電荷蓄積層は、トンネル絶縁層とブロック絶縁層との間に設けられている。トンネル絶縁層は、電荷蓄積層と半導体層51との間に設けられている。ブロック絶縁層は、電荷蓄積層と複数の導電層43の間、電荷蓄積層と導電層42との間、及び、電荷蓄積層と導電層44との間に設けられている。
【0053】
フラッシュメモリ1において、複数のメモリセルMCの特性は、メモリセルアレイ18内におけるZ方向の位置、メモリセルアレイ18におけるX-Y平面内の位置、積層膜52(トンネル絶縁層、電荷蓄積層及びブロック絶縁層)の膜厚、メモリセルMCの寸法などに応じて、メモリセルアレイ18内でばらつく。
【0054】
<データとメモリセルの閾値電圧との関係>
図5は、フラッシュメモリにおけるデータとメモリセルの閾値電圧の分布との関係を示す図である。
【0055】
図5において、メモリセルの閾値電圧の分布及びリード電圧の関係が、示されている。図5では、縦軸はメモリセルの個数に対応し、横軸はメモリセルの閾値電圧Vthに対応している。
【0056】
換言すると、図5は、1つのメモリセルが記憶するデータに対応する複数の閾値電圧の分布を表している。以下において、ライト方式の一例として、1つのメモリセルMCに1ビットデータを記憶させるSLC(Single Level Cell)方式と、1つのメモリセルMCに2ビットデータを記憶させるMLC(Multi Level Cell)方式とについて、それぞれ説明する。
【0057】
図5の(A)のように、SLC方式の場合、2つの閾値電圧が、メモリセルMCに対して設定される。この2つの閾値電圧は、電圧値の低い側から順に“ER”レベル(または“ER”ステート)、“A”レベル(または“A”ステート)とよばれる。SLC方式において、例えば、“1”データが“ER”レベルに割り当てられ、“0”データが“A”レベルに割り当てられる。
【0058】
図5の(B)のように、MLC方式の場合、4つの閾値電圧が、メモリセルMCに対して設定される。この4つの閾値電圧は、電圧値の低い側から順に“ER”レベル、“A”レベル、“B”レベル(又は“B”ステート)、“C”レベル(または“C”ステート)とよばれる。MLC方式において、例えば“ER”レベル、“A”レベル、“B”レベル、及び“C”レベルにそれぞれ“11(Lower/Upper)”データ、“01”データ、“00”データ、及び“10”データが割り当てられる。
【0059】
上述のように、複数のメモリセルの特性は、メモリセルアレイ内でばらつく。それゆえ、各レベルに割り当てられたメモリセルの閾値電圧は、或る分布(閾値電圧分布)を有する。
【0060】
図5の(A),(B)の閾値電圧分布において、隣り合う閾値値電圧分布の間にそれぞれリード電圧(リードレベル)が設定される。
【0061】
例えば、リード電圧ARは、“ER”レベルの分布における最大の閾値電圧と“A”レベルの分布における最小の閾値電圧との間に設定されている。リード電圧ARは、メモリセルMCの閾値電圧が“ER”レベルの閾値電圧分布に含まれるのか“A”レベル以上の閾値電圧分布に含まれるのかを判定する動作に使用される。メモリセルMCにリード電圧ARが印加されると、“ER”レベルに対応するメモリセルはオン状態になり、“A”レベル、“B”レベル、及び“C”レベルに対応するメモリセルはオフ状態になる。
【0062】
リード電圧BRは、“A”レベルの閾値電圧分布と“B”レベルの閾値電圧分布との間に設定され、リード電圧CRは、“B”レベルの閾値電圧分布と“C”レベルの閾値電圧分布との間に設定される。メモリセルMCにリード電圧BRが印加されると、“ER”及び“A”レベルに対応するメモリセルがオン状態になり、“B”レベル及び“C”レベルに対応するメモリセルがオフ状態になる。メモリセルMCにリード電圧CRが印加されると、“ER”レベル、“A”レベル、及び“B”レベルに対応するメモリセルがオン状態になり、“C”レベルに対応するメモリセルがオフ状態になる。
【0063】
リード動作時に非選択ワード線に印加される電圧として、リードパス電圧(非選択電圧)VREADが、設定される。リードパス電圧VREADの電圧値は、最も高い閾値電圧分布における最大の閾値電圧よりも高い。リードパス電圧VREADがゲートに印加されたメモリセルMCは、記憶しているデータに依らずにオン状態になる。
【0064】
尚、以上で説明した1つのメモリセルMCに記憶するデータのビット数と、メモリセルMCの閾値電圧に対するデータの割り当てとは、一例である。例えば、3ビット以上のデータが1つのメモリセルMCに記憶されてもよい。上記と異なるデータが、各閾値電圧に対して割り当てられてもよい。
【0065】
各リード電圧及びリードパス電圧VREADは、各方式で同じ電圧値に設定されてもよいし、異なる電圧値に設定されてもよい。
【0066】
このように、或る電圧値の電圧がメモリセルに印加されることによって、メモリセルのオン又はオフが、検出される。この結果として、メモリセルの閾値電圧が、判定される。
【0067】
図2乃至図4は、一例であって、本実施形態における、フラッシュメモリのメモリセルアレイの回路構成は、図2乃至図4の例に限定されない。
【0068】
(a-2)コントローラの構成例
図1に示されるように、コントローラ7は、ホストインターフェイス回路70、プロセッサ(CPU)71、ROM72、バッファメモリ73、RAM74、ECC回路75、及びメモリインターフェイス回路79などを含む。
尚、コントローラ7の後述の各機能は、ファームウェアによって実現されてもよいし、ハードウェアによって実現されてもよい。
コントローラ7は、例えば、SoC(System on a chip)によって構成されてもよい。
【0069】
プロセッサ71は、コントローラ7全体の動作を制御する。
例えば、プロセッサ71は、ホストデバイス9からの要求(ホストコマンド)に応答してコントローラコマンドを発行する。プロセッサ71は、発行したコントローラコマンドをメモリインターフェイス回路79に送る。
プロセッサ71は、ウェアレベリング、ガベージコレクション、及びリフレッシュ等、フラッシュメモリ1を管理するための様々な内部処理の実行を制御できる。プロセッサ71は、これらの制御においても、コントローラコマンドを発行してメモリインターフェイス回路79に送る。プロセッサ71の判断基準に基づいて、コントローラ7が、内部処理を実行する際に、フラッシュメモリ1に、例えばイレーズ動作を命令できる。
【0070】
例えば、本実施形態において、プロセッサ71は、固有情報生成回路710を含む。固有情報生成回路710は、本実施形態のメモリシステムSYS(フラッシュメモリ1)における、後述の固有情報を生成するための各種の処理を実行する。尚、固有情報生成回路710の機能は、プロセッサ71の機能として、ソフトウェア又はファームウェアとして実現されてもよい。固有情報生成回路710は、プロセッサ710とは別途のハードウェアとして、コントローラ7内に設けられてもよい。固有情報生成回路710は、フラッシュメモリ1内に設けられてもよい。
【0071】
ROM72は、メモリシステムSYSの制御プログラム(ファームウェア)及び複数の設定情報などを記憶する。
【0072】
バッファメモリ73は、メモリシステムSYSとホストデバイス9との間のデータの転送時に、ホストデバイス9からのデータ、及び、フラッシュメモリ1からのデータを一時的に記憶する。また、バッファメモリ73は、コントローラ7内で生成されるデータを、一時的に記憶する。例えば、バッファメモリ73は、SDRAM(Synchronous Dynamic random access memory)又はSRAM(Static random access memory)である。バッファメモリ73は、コントローラ7の外部に設けられてもよい。
【0073】
RAM74は、プロセッサ71の作業領域として使用される記憶領域である。RAM74は、例えば、SRAM又はSDRAMである。RAM74は、コントローラ7の外部に設けられてもよい。
【0074】
例えば、フラッシュメモリ1を管理するためのパラメータ、各種の管理テーブル等が、フラッシュメモリ1からRAM74内にロードされる。RAM74は、例えば、アドレス変換テーブルを記憶する。アドレス変換テーブルは、ホストデバイス9が指定するデータの格納位置である論理アドレスと、実際にフラッシュメモリ1に書き込まれるデータの格納位置である物理アドレスとの対応関係を表したテーブルである。アドレス変換テーブルは、例えば、フラッシュメモリ1内に格納される。アドレス変換テーブルは、例えば、メモリシステムSYSの起動時や必要に応じて、フラッシュメモリ1から読み出されて、RAM74にロードされる。
【0075】
論理アドレスは、ホストデバイス9から指定されるアドレスを元に得られる、データの論理的な格納位置である。物理アドレスはフラッシュメモリ1内の、データの物理的な格納位置である。アドレス変換テーブルは、論理アドレスを入力として、物理アドレスを出力する。
【0076】
ECC回路75は、リードデータにおけるエラー検出及びエラー訂正を行う。以下では、ECC回路75によって実行されるエラー検出及びエラー訂正は、ECC処理とよばれる。データのライト時に、ECC回路75は、ホストデバイス9からのデータに基づいてパリティや訂正符号を生成する。このデータとパリティや訂正符号とが、フラッシュメモリ1に書き込まれる。データのリード時に、ECC回路75は、読み出されたデータとパリティや訂正符号に基づきシンドロームを生成し、読み出されたデータ内のエラーの有無を判断する。エラーがデータ内に含まれる場合、ECC回路75は、データ内におけるエラーの位置を特定し、エラーを訂正する。
【0077】
ホストインターフェイス回路70は、ホストデバイス9に、無線通信又は有線通信を介して接続される。ホストインターフェイス回路70は、メモリシステムSYSとホストデバイス9との間の通信を行う。例えば、ホストインターフェイス回路70は、メモリシステムSYSとホストデバイス9との間で、データ、ホストコマンド、及びレスポンスの転送を制御する。ホストインターフェイス回路70は、例えば、SATA(Serial Advanced Technology Attachment)、SAS(Serial Attached SCSI)、PCIe(PCI Express)(登録商標)、又はSDTM(登録商標)等の通信インターフェイス規格をサポートする。ホストデバイス9は、例えば、SATA、SAS、PCIe等のインターフェイスに準拠するコンピュータ等である。
【0078】
メモリインターフェイス回路79は、対応するフラッシュメモリ1に接続される。1つのメモリインターフェイス回路79に、複数のフラッシュメモリ1が接続されていてもよい。メモリインターフェイス回路79は、コントローラ7とフラッシュメモリ1との間の通信を行う。メモリインターフェイス回路79は、NANDインターフェイス規格に基づいて構成されている。複数のフラッシュメモリ1は、自身が接続されているメモリインターフェイス回路79によって、並列に制御され得る。
【0079】
コントローラ7及びフラッシュメモリ1を含むメモリシステムSYMは、SDTMカードのようなメモリカードや、SSD(solid state drive)、UFS(Universal Flash Storage)等である。
【0080】
(a-3)ホストデバイスの構成例
図1に示されるように、ホストデバイス9は、SATA、SAS、PCIe、又はSDカードなどのインターフェイスを介して、メモリシステムSYSに接続される。
ホストデバイス9とメモリシステムSYSとの間で、データの転送などの各種の処理が実行される。
【0081】
ホストデバイス9は、プロセッサ90、RAM(メモリ領域)91、ROM92、固有情報処理回路93、及び認証処理回路94などを含む。
【0082】
プロセッサ90は、コントローラ7全体の動作を制御する。
プロセッサ90は、各種のプログラム(例えば、アクセスプログラムAP)を実行することによって、ホストデバイス9の各種の処理を、実行する。プロセッサ90は、メモリシステムSYSに対してデータのライト、リード、及びイレーズなどを命令する場合に、ホストコマンドをメモリシステムSYSに送る。
【0083】
RAM91は、プロセッサ90の作業領域として使用される記憶領域である。RAM91は、例えば、SRAM又はSDRAMである。
【0084】
ROM92は、ホストデバイス9の制御プログラム(ファームウェア)及び複数の設定情報などを記憶する。
【0085】
ホストデバイス9は、RAM91内又はROM92内に、アクセスプログラムAPを記憶する。アクセスプログラムAPは、プロセッサ90上で実行される。アクセスプログラムAPは、フラッシュメモリ内の特定のデータ(例えば、コンテンツデータ)に対して、各種の処理を実行する。
ホストデバイス9は、アクセスプログラムAPによって、メモリシステムSYSにアクセスできる。ホストデバイス9は、或るデータを、メモリシステムSYS内のフラッシュメモリ1に書き込むことを要求できる。ホストデバイス9は、或るデータを、メモリシステムSYSのフラッシュメモリ1から読み出すことを要求できる。ホストデバイス9は、フラッシュメモリ内の或るデータをイレーズすることを要求できる
ホストデバイス9は、アクセスプログラムAPによってフラッシュメモリ1に対するデータのライト、リード、又はイレーズを行う際に、各種の情報を用いた認証処理を実行する場合がある。
認証が成功した場合、ホストデバイス9からのフラッシュメモリ1へのアクセス(データのライト、リード、又はイレーズ)は、許可される。認証が成功しない場合、ホストデバイス9からのフラッシュメモリ1へのアクセスは、禁止される。
【0086】
本実施形態において、ホストデバイス9は、固有情報処理回路93を用いて、ホストデバイス9とメモリシステムSYS(フラッシュメモリ1)との間の認証処理のために、メモリシステムSYSの固有情報を用いた処理を実行する。固有情報は、ホストデバイス9がメモリシステムSYSを特定するための情報である。
【0087】
本実施形態において、ホストデバイス9は、認証処理回路94を用いて、生成された固有情報を用いて、認証処理を行う。認証処理は、ホストデバイス9が、接続されたメモリシステムSYSを認証する処理である。
【0088】
固有情報処理回路93は、メモリシステムSYSの固有情報を用いた各種の処理を実行する。固有情報処理回路93は、フラッシュメモリ1の或る領域を用いて、メモリシステムSYS(又はフラッシュメモリ1)の固有情報INFS1を生成する。
固有情報処理回路93は、固有情報INFS1を生成するための各種の動作を制御できる。例えば、生成された固有情報INFS1は、フラッシュメモリ1内の特定の領域(例えばブロックBLK)内に記憶される。
【0089】
認証処理回路94は、ホストデバイス9とメモリシステムSYSとの間の認証処理を、実行する。認証処理回路94は、フラッシュメモリ1の固有情報INFS1を用いて、認証情報(例えば、認証鍵)を生成できる。
【0090】
尚、固有情報処理回路93及び認証処理回路94の機能は、プロセッサ71の機能として、ソフトウェア又はファームウェアにより実現されてもよい。
【0091】
また、固有情報処理回路93及び認証処理回路94は、メモリシステムSYS内のコントローラ7内に設けられてもよい。この場合において、ホストデバイス9が、コントローラ7内の固有情報処理回路93及び認証処理回路94に対して、固有情報INFS1の生成及び固有情報の認証を命令する。
【0092】
(b)動作例
図6乃至図12を参照して、本実施形態のメモリシステムの複数の動作例について、説明する。
【0093】
<固有情報の生成>
まず、図6乃至図10を参照して、本実施形態のメモリシステムにおける、フラッシュメモリ(メモリシステム)の固有情報を生成するための各種の処理及び動作について、説明する。以下では、各種の処理は、固有情報生成処理ともよばれる。
【0094】
フラッシュメモリ1において、或る電圧値のプログラム電圧が或るワード線に印加されることで、そのワード線WLに接続された複数のメモリセルの閾値電圧が、上昇する。
複数のメモリセルMCが同じワード線WLに接続されていたとしても、各メモリセルMCの特性のばらつきに起因して、メモリセルが取り得る閾値電圧の値は、複数のメモリセル間で、ばらつく。
各ワード線WLの複数のメモリセルMCの特性のばらつきは、ワード線毎に実質的に変化しない。それゆえ、あるワード線に接続された複数のメモリセルに関して、複数のビットを含むデータにおいてエラーが生じるビット(桁)とメモリセルの位置(カラムアドレス、セル番号)との関係は、実質的に変動しない。
【0095】
本実施形態では、フラッシュメモリ1のメモリセルMCのこのような特性/傾向を利用して、メモリシステムSYS内のフラッシュメモリ1の固有情報が、生成される。
固有情報を生成するための領域(以下では、固有情報生成エリアとよばれる)が、フラッシュメモリ1内に、設定される。
【0096】
図6は、本実施形態のメモリシステムにおける、固有情報生成エリアの構成例を説明するための模式図である。図6では、ホストデバイス9の一例として、固有情報を生成する処理を実行するホストデバイス9Aを例示する。
【0097】
ホストデバイス9Aは、固有情報処理回路93Aを備える。メモリシステムSYSに備えられるフラッシュメモリ1は、固有情報生成ブロックBLKa、保護ブロックBLKb、及び複数のユーザーブロックBLKcを含む。
【0098】
例えば、フラッシュメモリ1のメモリセルアレイ18に含まれる複数のブロックBLKのうち、或るブロックBLKaが、固有情報生成エリア(以下では、固有情報生成ブロックともよばれる)として、設定される。
【0099】
図7は、固有情報生成ブロックの構成例を示す模式図である。
【0100】
図7に示されるように、固有情報生成ブロックBLKaは、複数(例えば、4つ)のストリングユニットSU0,SU1,SU2,SU3を有する。各ストリングユニットSUは、複数のワード線WL0~WL(m-1)を含む。
【0101】
例えば、固有情報生成ブロックBLKaにおける、或るストリングユニットSUs(ここでは、ストリングユニットSU0)の或るワード線WLs(ここでは、ワード線WL0~WLm-1の何れか)に接続される複数のメモリセルMCを用いて、フラッシュメモリ1の固有情報INFSが、生成される。生成された固有情報INFSは、ホストデバイス9Aに提供される。但し、認証に用いられる固有情報INFSのビット数(データ長)に応じて、複数のストリングユニット及び複数のワード線が、選択アドレスとして用いられてもよい。
【0102】
固有情報INFSを生成するために用いられるアドレスに関する情報は、例えば、メモリシステムSYSの仕様又は規格として設定されている。固有情報INFSの生成に用いられたアドレスに関する情報が、メモリシステムSYSのユーザーのアクセスが制限されたエリア内に、履歴情報として記憶されてもよい。
【0103】
生成された固有情報INFSは、ホストデバイス9Aによって、フラッシュメモリ1内の保護エリア(以下では、保護ブロックともよばれる)BLKb内に格納される。保護ブロックBLKbは、ユーザーのアクセスが制限されたエリアである。
【0104】
メモリセルアレイ18内に、固有情報生成ブロックBLKa及び保護ブロックBLKb以外の複数のブロック(以下では、ユーザーブロックとよばれる)BLKcが設けられている。
【0105】
複数のユーザーブロックBLKcは、或るデータ(ユーザーデータ又は通常データとよばれる)を記憶する。ユーザーブロックBLKcに対して、周知の技術を用いて、データのライト、リード、及びイレーズが、実行される。本実施形態において、ユーザーブロックBLKcに対するデータのライト、リード、及びイレーズに関する説明は、省略される。
例えば、コンテンツデータは、ユーザーブロックBLKc内に記憶されてもよい。
【0106】
図6に示すホストデバイス9Aに備えられる固有情報処理回路93Aは、メモリシステムSYSの固有情報INFSを生成するための各種の処理を実行する。
【0107】
固有情報処理回路93Aは、固有情報INFSの生成時において、固有情報生成ブロックBLKa内の或るストリングユニットSUsの1つ以上のワード線WLs(以下では、選択ワード線とよばれる)に対する各種の処理及び動作を、制御できる。
【0108】
例えば、固有情報処理回路93Aは、プロセッサ90を介して、固有情報生成処理をフラッシュメモリ1に対して指示できる。
コントローラ7内において、プロセッサ71(又は固有情報生成回路710)は、ホストデバイス9A(固有情報処理回路93A)からの指示に基づいて、固有情報生成処理のための各種の処理/動作を、フラッシュメモリ1に命令できる。
【0109】
ホストデバイス9Aが、保護対象となるデータ(例えば、秘密情報、コンテンツデータなど)を、メモリシステムSYSに書き込む際に、固有情報INFSの生成が実行される。
【0110】
ホストデバイス9Aに備えられる固有情報処理回路93Aは、固有情報INFSの生成時において、以下の処理を実行する。
【0111】
(動作例)
図8は、本実施形態のメモリシステムにおける固有情報生成処理のフローチャートである。
【0112】
<S00>
図8に示されるように、ホストデバイス9Aにおいて、固有情報処理回路93Aは、所定のタイミングで、メモリシステムSYSに対して固有情報の生成を指示する。ホストデバイス9Aは、固有情報を生成するためのホストコマンドを、メモリシステムSYSに送る。
【0113】
固有情報の生成は、メモリシステムSYSの仕様に応じて、メモリシステムSYSの出荷前、メモリシステムSYSの使用の開始時、及びメモリシステムSYSに対する電源の投入時、又はユーザーからの要求、などのいずれかに、実行されてもよい。
【0114】
<S0>
メモリシステムSYSは、ホストデバイス9Aから固有情報の生成の指示(ホストコマンド)を受ける。
コントローラ7は、固有情報を生成するための各種の指示(コントローラコマンド)を、フラッシュメモリ1に送る。
【0115】
フラッシュメモリ1は、コントローラ7からの指示を、受ける。
フラッシュメモリ1は、コントローラ7からの指示に応じて、固有情報生成処理を開始する。
【0116】
<S1>
フラッシュメモリ1内において、シーケンサ15は、固有情報生成ブロックBLKの第1のアドレス(例えば、ストリングユニットSU0のワード線WL0)の複数のメモリセルに対して、プログラム動作を実行する。
本実施形態において、固有情報生成するためのプログラム動作は、特定のデータ(例えば、ユーザーデータ)を書き込むための動作と異なる。
【0117】
本実施形態において、固有情報生成時のプログラム動作は、特定のデータを書き込むことなしに、或る電圧値のプログラム電圧の印加によって、メモリセルの閾値電圧をシフトさせる動作である。以下では、固有情報生成時のプログラム動作は、ラフプログラムとよばれる。
【0118】
図9は、本実施形態における、固有情報の生成時のラフプログラムを説明するための模式図である。
【0119】
例えば、ラフプログラムは、固有情報生成ブロックBLKa内の全てのメモリセルMCに対して、実行される。固有情報生成ブロックBLKa内の全てのメモリセルMCに対してラフプログラムが実行されるように、プログラム電圧Vpgmxが、複数のワード線WLに対して順次又は一括に印加される。また、ラフプログラムは、固有情報生成ブロックBLKa内の1のワード線WLに対して印加されてもよい。このとき、プログラム電圧Vpgmxは、1のワード線WLに対して印加されればよい。
図9に示されるように、ラフプログラムの実行によって、プログラム電圧Vpgmxが、選択ストリングユニットSUsの1つ以上の選択ワード線WLsに印加される。
【0120】
選択ワード線WLsに接続された複数のメモリセルMCの閾値電圧は、プログラム電圧Vpgmxに対応する或る電圧値を中央値Vxとした範囲内に分布する。このように、ラフプログラム(プログラム電圧Vpgmx)に関して、選択ワード線WLsに接続される複数のメモリセルMCの分布999が、形成される。
【0121】
ラフプログラムにおいて、プログラム電圧Vpgmxの印加に対するメモリセルの閾値電圧の電圧値の検証(ベリファイ動作、プログラムベリファイ)は、実行されない。
ラフプログラムは、プログラム電圧Vpgmxの印加の後、終了する。
尚、ラフプログラムの前に、イレーズ動作が実行されてもよい。
図9の詳細は後述する。
【0122】
<S2>
図8に示すように、シーケンサ15は、ラフプログラムの実行の後、ある1つの選択ワード線に接続された複数のメモリセルに対して、閾値電圧の判定動作(リード動作)を実行する。
【0123】
シーケンサ15は、このリード動作において、複数のメモリセルMCの閾値電圧の値が、或る電圧範囲内であるか否か判定する。例えば、シーケンサ15は、2つの判定レベルVL及び判定レベルVHを用いて、リード動作を実行する。
判定レベルVLの電圧値は、判定レベルVHの電圧値より低い。例えば、判定レベルVL,VHの電圧値は、実験又はシミュレーションにより得られる。判定レベルVL,VHは、ラフプログラムによって形成される閾値電圧分布999に基づいて、適宜設定される。
【0124】
例えば、図9に示すように、判定レベルVLの電圧値は、ラフプログラムによって形成される閾値電圧分布999の中央値Vxの電圧値より低い。判定レベルVHの電圧値は、中央値Vxの電圧値より低い。判定レベルVLの電圧値は、閾値電圧分布999の最小値よりも高い。判定レベルVHの電圧値は、閾値電圧分布999の最大値よりも低い。
【0125】
尚、複数のメモリセルの閾値電圧の分布の中央値(電圧値)Vxが判定レベルVLと判定レベルVHとの中間の値となるように、プログラム電圧Vpgmxの値が、設定されてもよい。例えば、ラフプログラムのプログラム電圧Vpgmxの値は、実験又はシミュレーションによって、判定レベルVLと判定レベルVHとに応じて設定されてもよい。
【0126】
判定レベルVLを用いた読み出し時、判定レベルVL以下の閾値電圧を有するメモリセル(例えば、図9の領域Qa内のメモリセル)MCはオンし、判定レベルVLより高い閾値電圧を有するメモリセルはオフする。
判定レベルVHを用いた読み出し時、判定レベルVH以下の閾値電圧を有するメモリセルはオンし、判定レベルVHより高い閾値電圧を有するメモリセル(例えば、図9の領域Qb内のメモリセル)MCはオフする。
【0127】
判定レベルVLの印加時にオフし、判定レベルVHの印加時にオンするメモリセルは、判定レベルVLより高く、判定レベルVH以下の範囲Qc内の閾値電圧を有する。
すなわち、判定レベルVL,VHの両方でオンするメモリセル、及び、判定レベルVH,VLの両方でオフするメモリセルは、範囲Qc外の領域Qa及び領域Qb内に含まれる閾値電圧を有する。
以下において、判定レベルVL以下の閾値電圧(電圧値)及び判定レベルVHより高い閾値電圧(電圧値)は、外れ値とよばれる。以下において、外れ値の閾値電圧を有するメモリセル(領域Qa,Qb内のメモリセル)MCは、外れ値セルとよばれる。
【0128】
このように、判定レベルVL,VHのオン又はオフの検出結果に基づいて、範囲Qc内の閾値電圧を有するメモリセル及び範囲外の閾値電圧を有するメモリセル(外れ値セル)が、判別される。
【0129】
例えば、メモリセルのオン又はオフは、ユーザーデータの読み出しと実質的に同じように、センスアンプ20がビット線における電流の発生(又はビット線の電位の変動)を検知することによって、判定される。
【0130】
図10は、判定レベルVL,VHを用いたリード動作時の処理を模式的に示す図である。
【0131】
判定レベルVL,VHを用いたメモリセルの閾値電圧の判定結果は、センスアンプ20の各センスアンプ回路200のラッチ回路201内に、一時的に記憶される。
【0132】
例えば、ラッチ回路201に接続されているメモリセルが、判定レベルVLでオンしたメモリセルである場合、そのラッチ回路201内に、“0”が格納される。ラッチ回路201に接続されているメモリセルが、判定レベルVLでオフしたメモリセルである場合、そのラッチ回路201内に、“1”が格納される。
【0133】
図10の例において、アドレス<0>(ビット線BL0)、アドレス<8>(ビット線BL8)、アドレス<9>(ビット線BL9)、及びアドレス<n-4>(ビット線BLn-4)のメモリセルは、判定レベルVL以下の閾値電圧を有するメモリセル(外れ値セル)である。
アドレス<0>、アドレス<8>、アドレス<9>、及びアドレス<n-4>にそれぞれ対応するビット線BLを介して、判定レベルVLに関してオン状態であることを示す信号(“0”)が、判定レベルVLの判定結果の一部として、対応するラッチ回路201に格納される。
他のアドレスのメモリセルに関して、判定レベルVLに関してオフ状態であることを示す信号(“1”)が、判定レベルVLの判定結果の他の一部として、対応するラッチ回路201に格納される。
【0134】
このようにして得られた判定レベルVLの判定結果は、固有情報INFSを生成するための情報INFLである。
【0135】
例えば、ラッチ回路201に接続されているメモリセルが、判定レベルVHでオンしたメモリセルである場合、そのラッチ回路201内に、“0”が格納される。ラッチ回路201に接続されているメモリセルが、判定レベルVHでオフしたメモリセルである場合、そのラッ201内に、“1”が格納される。
【0136】
例えば、アドレス<5>(ビット線BL5)、アドレス<i>(ビット線BLi)、及びアドレス<n-2>のメモリセルは、判定レベルVHより高い閾値電圧を有するメモリセル(外れ値セル)である。
アドレス<5>、アドレス<i>及びアドレス<n-2>にそれぞれ対応するビット線BLを介して、判定レベルVHに関してオフ状態であることを示す信号(“1”)が、判定レベルVHの判定結果の一部として、対応するラッチ回路201に格納される。
他のアドレスのメモリセルに関して、判定レベルVHに関してオン状態であることを示す信号(“0”)が、判定レベルVHの判定結果の他の一部として、対応するラッチ回路201に格納される。
【0137】
このようにして得られた判定レベルVHの判定結果は、固有情報INFSを生成するための情報INFHである。
【0138】
このように、メモリセルのアドレス(メモリセル番号、ビット線番号)に対応するラッチ回路201に、判定レベルVL,VHに関するオン又はオフの情報INFL,INFHが、格納される。
【0139】
例えば、ラッチ回路201内のデータ(情報INFLと情報INFH)が、“00”又は“11”で示されている場合、そのラッチ回路201に対応するメモリセルMCそれぞれは、外れ値66(66a,66b)の閾値電圧を有する。
この一方で、ラッチ回路201内のデータが、判定レベルVHに関する情報INFH=“0”の結果及び判定レベルVLに関する情報INFL=“1”の結果で示されている場合、そのラッチ回路201に対応するメモリセルMCは、範囲Qc内の値(以下では、ヒット値ともよばれる)60の閾値電圧を有する。
【0140】
このように、外れ値セルが、判定(リード)対象の選択ワード線に接続された複数のメモリセルMCの中から、判別され得る。
【0141】
判定レベルVLにおける1つ以上の外れ値セル66aのセル番号(ビット線番号)を特定可能な情報が、情報INFLとして、センスアンプ20内に記憶される。
判定レベルVHにおける1つ以上の外れ値セル66bのセル番号を特定可能な情報が、情報INFHとして、センスアンプ20内に記憶される。
【0142】
<S3>
シーケンサ15は、フラッシュメモリ1の内部で、ラッチ回路201内の情報を用いた計算処理を行う。
この計算処理の結果が、フラッシュメモリ1の固有情報生成ブロックから得られた固有情報INFSとなる。
【0143】
例えば、XOR演算が実行された場合、外れ値セルを示す値は“1”となり、範囲Qc内の閾値電圧を有するメモリセルを示す値は“0”となる。
このように、固有情報INFSに関して、選択ワード線における外れ値を有するメモリセルのアドレス(セル番号、位置)は、データのビット列中の“1”の桁の位置として反映される。
【0144】
この結果として、本実施形態において、固有情報生成ブロックの選択ストリングユニットの1つの選択ワード線WLs(例えばワード線WL0)に接続された複数のメモリセルMCの特性に応じた“0”及び“1”のビット列のデータが、設定される。本実施形態において、選択ワード線WLsに接続された複数のメモリセルMCに関して、外れ値の閾値電圧を有するメモリセルの位置(アドレス又はセル番号)が、固有情報のデータのビット列の位置に、反映される。
【0145】
尚、判定レベルVHでオフとなるメモリセルは、ラフプログラムおける書き込み速度が速いメモリセルである。一方で、判定レベルVLでオンとなるメモリセルは、判定レベルVHでオフとなるメモリセルに比較して、ラフプログラムにおける書き込み速度が遅いメモリセルである。
メモリセルにおける書き込み速度とトンネル絶縁膜の性質を考慮した場合、判定レベルVLでオンとなるメモリセルを用いた情報は、判定レベルVHでオンとなるメモリセルを用いた情報に比較して、長期にわたって高い信頼性を維持し得る。
【0146】
それゆえ、判定レベルVLでオンとなるメモリセルのオン又はオフの判定結果(情報INFL)のみを用いて、固有情報が設定されてもよい。
逆に、判定レベルVHに関する情報INFHが、固有情報として、用いられてもよい。
【0147】
<S4>
シーケンサ15は、判定動作から得られた固有情報INFS(情報INFL、INFH)を、コントローラ7に送る。
【0148】
コントローラ7は、固有情報INFSを、ホストデバイス9Aに送る。
【0149】
ホストデバイス9Aに送られる情報は、判定レベルVLの判定結果の情報INFL又は判定レベルVHの判定結果の情報INFHでもよい。
【0150】
<S5>
シーケンサ15は、所定のビット数の固有情報の生成のための所定の回数の判定動作が実行されたか否か、判定する。
<S6>
所定の回数の判定動作が実行されている場合(S5のYesの場合)、所定のビット数の固有情報が得られているため、シーケンサ15は、判定動作を終了する。
【0151】
所定の回数の判定動作が実行されていない場合(S4のNoの場合)、シーケンサ15は、S2からS4までの処理を、リード動作の対象となる選択アドレスを変えながら、判定動作の実行回数が所定の回数に達するまで実行する。
【0152】
選択アドレス(例えば、選択アドレスを含むブロック全体、又は、ブロック内の選択アドレスを含む一部の領域)に対して、イレーズ動作が実行されてS1に戻り、再びラフプログラムが実行されてもよい。
例えば、複数回のプログラム動作及び複数回のリード動作が、固有情報の信頼性の向上のために、実行されてもよい。例えば、k回(kは1以上の整数)のラフプログラムのうち、或る回数以上において閾値電圧が外れ値であると判定されたメモリセルのアドレスが、外れ値セルの位置として特定されてもよい。
尚、ホストデバイス9Aが、外れ値セルの個数が所定の個数より少ない場合又は所定の個数より多いと判断した場合、レベルVL,VHの電圧値が変更されて、上記のステップS0~S4の処理が、実行されてもよい。
【0153】
<S01>
ホストデバイス9Aは、メモリシステムSYSから、フラッシュメモリ1の固有情報INFS(又は情報INFL又はINFH)を、受ける。
【0154】
ホストデバイス9A内において、固有情報処理回路93は、メモリシステムSYSからのフラッシュメモリ1の固有情報INFSを受ける。
固有情報処理回路93は、固有情報INFSに対して、所定の処理を施す。尚、固有情報処理回路93が、メモリシステムSYSから判定レベルVL,VHの判定結果に関する情報INFL,INFHを受領して、固有情報INFSを生成してもよい。
【0155】
固有情報処理回路93は、周知の技術を用いて、或る情報(例えば、デジタル情報生成鍵などの鍵情報)を用いてデジタル署名(電子署名)を生成する。尚、デジタル署名は、特定の秘密情報を有する者のみが生成できる、デジタル情報の署名である。このデジタル署名は、他者はその署名が正しいことを継承できるが、署名の偽造は実質的に行えない。
【0156】
固有情報処理回路93Aは、固有情報INFSに、生成されたデジタル署名を付与する。
このように、ホストデバイス9Aは、デジタル署名が付与された固有情報INFSである固有情報(例えば、鍵情報又は固有鍵ともよばれる)INFS1を生成する。
【0157】
<S02>
ホストデバイス9Aは、固有情報INFS1のライトを、メモリシステムSYSに指示する。ホストデバイス9Aは、固有情報INFS1を、メモリシステムSYSに送る。
【0158】
<S7>
メモリシステムSYSは、固有情報INFS1を、受ける。
コントローラ7は、ライトコマンド、保護ブロックBLKbのアドレス、及び固有情報INFS1を、フラッシュメモリ1に送る。
【0159】
フラッシュメモリ1内において、シーケンサ15は、周知の動作によって、ライトコマンドに応じて、固有情報INFS1を、所定の保護ブロックBLKb内に書き込む。
【0160】
尚、固有情報INFSにデジタル署名を付与せずに、デジタル署名の無い固有情報(例えば、固有情報INFS、又は情報INFL,INFSのいずれか)が、フラッシュメモリ1の保護ブロックBLKb内に書き込まれてもよい。
【0161】
この後、ホストデバイス9Aは、或る情報(例えば、コンテンツデータ)DTaを、メモリシステムSYSのフラッシュメモリ1内に書き込む。
例えば、固有情報処理回路92が、メモリシステムSYSに書き込む情報DTaに、固有情報INFS1に関連付けられた情報を、付与してもよい。
【0162】
以上のように、本実施形態のメモリシステムにおいて、フラッシュメモリの固有情報が、生成される。
【0163】
尚、ホストデバイス9Aの代わりに、メモリシステムSYSのコントローラ7が、上記の固有情報の生成のための各種の処理を指示してもよい。
【0164】
固有情報を生成するための各種の条件(選択アドレス、ラフプログラムの電圧値、判定レベルの電圧値)が、履歴情報として、フラッシュメモリ1の所定の領域(例えば、保護ブロックBLKb)内に、書き込まれてもよい。
【0165】
<認証処理>
図11及び図12を参照して、本実施形態のメモリシステムにおける、フラッシュメモリの固有情報を用いた認証処理について、説明する。
【0166】
図11は、本実施形態のメモリシステムにおける、固有情報を用いた認証処理を模式的に示す図である。
【0167】
図11では、ホストデバイス9の一例として、固有情報を用いた認証処理を実行するホストデバイス9Bを例示する。ホストデバイス9Bは、メモリシステムSYS内のデータ(情報)DTaへのアクセスのために、本実施形態のメモリシステムSYSに、電気的に接続される。
【0168】
尚、ホストデバイス9Bは、メモリシステムSYS(フラッシュメモリ1)の固有情報の生成に用いられたホストデバイス9Aである場合もあるし、別の構成を有するホストデバイスである場合もある。
【0169】
メモリシステムSYS内において、フラッシュメモリ1Xは、データ(例えば、コンテンツデータ及び機密データなど)DTa及び固有情報INFS1(第1の固有情報の一例)を記憶している。例えば、固有情報INFS1は、保護エリア(例えば、保護ブロック)BLKb内に格納されている。データDTaは、保護エリアBLKb内又はユーザーブロックBLKc内に格納されている。
【0170】
以下のように、本実施形態のメモリシステムは、フラッシュメモリの固有情報を用いた判定処理及び認証処理を実行する。
【0171】
図12は、本実施形態のメモリシステムにおける、固有情報を用いた判定処理を説明するためのフローチャートである。
【0172】
<S10>
ホストデバイス9Bは、プロセッサ90のアクセスプログラムAPの実行によって、メモリシステムSYS内のデータDTaへのアクセスを開始する。
この時、ホストデバイス9Bは、データDTaへのアクセスの認証のために、アクセスプログラムAPの認証鍵として、フラッシュメモリ1Xの保護ブロックBLKb内の固有情報INFS1を、読み出す。
ホストデバイス9Bは、固有情報INFS1の読み出しを、メモリシステムSYSに指示する。
【0173】
<S11>
メモリシステムSYSのコントローラ7は、ホストデバイス9Bからの指示(要求)に応じて、読み出しコマンド及びアドレスを、フラッシュメモリ1Xに送る。フラッシュメモリ1Xは、保護ブロックBLKbから、固有情報INFS1を読み出す。フラッシュメモリ1Xは、読み出した固有情報INFS1を、コントローラ7に送る。
【0174】
<S12>
メモリシステムSYSは、フラッシュメモリ1Xから読み出された固有情報INFS1を、ホストデバイス9Bに送る。
【0175】
<S13>
ホストデバイス9Bは、メモリシステムSYSからの固有情報INFS1を取得する。例えば、ホストデバイス9B内において、認証処理回路94Bは、固有情報INFS1を受ける。
【0176】
<S14>
ホストデバイス9Bは、メモリシステムSYSに、フラッシュメモリ1X内の所定のアドレス(第1のアドレス)を用いた固有情報INFS2(第2の固有情報の一例)の生成を指示する。
【0177】
<S15>
メモリシステムSYSは、ホストデバイス9Bからの指示に応答して、上述の図8の固有情報の生成処理S1~S4によって、フラッシュメモリ1Xの所定のアドレスを用いた固有情報INFS2を、生成する。
【0178】
例えば、メモリシステムSYSのフラッシュメモリ1Xにおいて、シーケンサ15は、固有情報の生成のための規格(又は、固有情報の生成の履歴情報)に基づいて、第1の固有情報INFS1の生成に用いられたアドレス番号と同じ値を有するアドレス(例えば、固有情報生成ブロックBLKaの第1のストリングユニットSU0の第1のワード線WL0)に対して、第1の固有情報INFS1の生成時と同じ条件のラフプログラム(図8のS1)を実行する。
【0179】
シーケンサ15は、ラフプログラムの後、第1の固有情報INFS1の生成時に用いられた判定レベルVH,VLと同じ判定レベルを用いて、ラフプログラム後のメモリセルの閾値電圧の大きさを、判定する(図8のS2)。これによって、選択アドレスに属する複数のメモリセルにおける判定レベルVH,VLの判定結果が、検出される。
【0180】
シーケンサ15は、判定レベルVH,VLの判定結果である情報INFH,INFL、又は、判定結果に対する計算処理(図8のS3)の結果である情報INFSを、第2の固有情報INFS2として、コントローラ7に送る(図8のS4)。
<S16>
メモリシステムSYSは、フラッシュメモリ1Xの所定のアドレスに基づく固有情報INFS2を、ホストデバイス9Bに送る。
【0181】
<S17>
ホストデバイス9Bは、固有情報INFS2を取得する。
【0182】
例えば、ホストデバイス9B内において、固有情報処理回路92は、固有情報INFS2を受ける。固有情報処理回路92は、固有情報INFS2に各種の処理を実行する。
【0183】
<S18,S19>
ホストデバイス9B内において、認証処理回路94Bは、フラッシュメモリ1Xの固有情報生成ブロックBLKaから生成された固有情報INFS2と、保護ブロックBLKbから読み出された第1の固有情報INFS1とを比較する。
【0184】
認証処理回路94は、固有情報INFS2のビット列における外れ値(“1”)の位置(ビット位置)が、固有情報INFS1のビット列における外れ値(“1”)の位置(ビット位置)と一致しているか否か、判定する。
【0185】
上記のように、固有情報INFS2における外れ値の位置は、フラッシュメモリ1Xの固有情報生成ブロックBLKaの第1のストリングユニットSU0の第1のワード線WL0に接続された複数のメモリセルの特性のばらつきに、応じる。それゆえ、固有情報INFS1,INFS2は、フラッシュメモリごとに異なる。
【0186】
<S20A>
固有情報INFS2の外れ値(“1”)の位置が固有情報INFS1の外れ値(“1”)の位置と一致している場合(S19のYesの場合)、認証処理回路94Bは、メモリシステムSYSをオリジナルメディア(正規メディア)であると判定する。
<S21A>
認証処理回路94Bは、判定結果を、プロセッサ90に通知する。
固有情報INFS1と固有情報INFS2とが一致する場合、プロセッサ90は、通知に基づいて、メモリシステムSYSのフラッシュメモリ1Xへのアクセスを、許可する。
【0187】
<S22>
ホストデバイス9Bは、ホストコマンドをメモリシステムSYSに送る。これによって、ホストデバイス9Bは、データDTaへアクセスする。
【0188】
<S23>
メモリシステムSYSは、ホストデバイス9Bからの指示に基づいて、データDTaに対する各種の処理を、実行する。
これによって、メモリシステムSYSがオリジナルメディアである場合における、メモリシステムSYSに対する処理が、終了する。
【0189】
<S20B>
固有情報INFS2の外れ値(“1”)の位置が固有情報INFS1の外れ値(“1”)の位置と一致していない場合(S19のNoの場合)、固有情報INFS2を有するフラッシュメモリ1Xが、データDTaに関連付けられた固有情報INF1を有するフラッシュメモリ1と異なっている、と判断される。
それゆえ、認証処理回路94は、固有情報INFS2を有するメモリシステムSYSは、クローンメディア(クローンメディア)であると、判定する。クローンメディアとは、不正にコピーされたデータを記憶する記録媒体である。
【0190】
<S21B>
認証処理回路94は、この判定結果を、プロセッサ90に通知する。
固有情報INF2と固有情報INF2とが一致しない場合、プロセッサ90は、通知に基づいて、メモリシステムSYSへのアクセスを禁止する。
これによって、メモリシステムSYSが、クローンメディアである場合における、メモリシステムSYSに対する処理が、終了する。
【0191】
本実施形態によれば、固有情報INFS1が他のメモリシステムSYS(フラッシュメモリ1X)にコピーされた場合であっても、フラッシュメモリ1X内のデータDTaを、保護できる。
【0192】
このように、本実施形態のメモリシステム及びホストデバイスは、固有情報生成ブロックBLKaから得られた固有情報INFS2と保護ブロックBLKb内の固有情報INFS1とを用いた判定処理(認証)によって、クローンメディアの使用を不可能にできる。
この結果として、本実施形態のメモリシステムは、クローンメディアの流布を防止できる。
【0193】
尚、上述の本実施形態における、2つの固有情報INFS1,INF2を用いた認証処理(判定処理)は、一例である。メモリシステムがオリジナルメディアであるか否かの判定処理は、本実施形態の手法で得られた固有情報を用いた処理であれば、他の処理で実行されてもよい。
【0194】
(c)変形例
図13を参照して、本実施形態のメモリシステムの変形例について、説明する。
図13は、本実施形態のメモリシステムの変形例を説明するための模式図である。
【0195】
本実施形態において、フラッシュメモリの固有情報は、特定のデータを固有情報生成エリアBLKa内に通常のライト動作によって書き込むことで、生成されてもよい。
【0196】
図13に示されるように、固有情報の生成時において、固有情報処理回路93は、ある特定の“1”及び“0”の配列を有するデータ(例えば、“0000・・・0000”)を、ライトデータとして、フラッシュメモリ1に提供する。
【0197】
シーケンサ15は、固有情報処理回路93からのライトデータデータを、固有情報生成ブロックBLKa内の選択ワード線WLsの複数のメモリセルMCに、プログラムする。
【0198】
シーケンサ15は、ライトデータが書き込まれた複数のメモリセルMCに対して、データのリードを、実行する。
【0199】
シーケンサ15は、リードデータを、固有情報処理回路93に送る。
【0200】
固有情報処理回路93は、リードデータとライトデータとを比較する。
【0201】
固有情報処理回路93は、リードデータ内の複数のビットとライトデータ内の複数のビットとが異なる値を有するビット66xの位置が、外れ値を有するメモリセルの位置に対応すると、判定する。
【0202】
これによって、リードデータとライトデータとの間の異なるビットの箇所に基づいて、フラッシュメモリの固有情報が生成され得る。
【0203】
(d)まとめ
近年、データの不正コピーが、増大している。
データの保護のために、様々な暗号化技術及び認証技術が、研究及び開発されている。
【0204】
例えば、フラッシュメモリを用いたメモリシステムを利用した、コンテンツ配信が知られている。コンテンツ配信において、コンテンツの不正コピーを防止するための保護技術が、重要である。
【0205】
フラッシュメモリ内の複数のメモリセルの特性は、フラッシュメモリのチップ毎に異なる。それゆえ、フラッシュメモリにおける或るアドレスに属する複数のメモリセルから得られる情報は、フラッシュメモリの固有の情報を示し得る。
【0206】
本実施形態のメモリシステムにおいて、或るブロック内の或るワード線に接続されたメモリセルに対して、プログラム動作を実行する。本実施形態において、プログラム動作によってシフトされた閾値電圧を有するメモリセルのそれぞれについて、ある判定レベルを用いて、メモリセルの閾値電圧が或る範囲内に収まっているか否か、判定される。
この判定結果に基づいて、本実施形態のメモリシステムにおいて、フラッシュメモリの固有の情報が、設定される。
【0207】
このように、本実施形態において、フラッシュメモリの固有情報は、複数のメモリセルのアナログ特性に基づいて、生成される。
それゆえ、本実施形態によって生成されるフラッシュメモリ1の固有情報は、原理的に複製が不能である。
【0208】
したがって、本実施形態のメモリシステムによれば、データを、保護できる。
【0209】
(その他)
尚、本実施形態において、NAND型フラッシュメモリが、メモリシステムに用いられるメモリデバイスとして、例示されている。但し、本実施形態に用いられるメモリデバイスは、NAND型フラッシュメモリ以外のメモリデバイスでもよい。
例えば、NOR型フラッシュメモリ、磁気メモリ(例えば、MRAM、磁壁メモリ)、相変化メモリ(例えば、PCRAM)、又は抵抗変化型メモリ(例えば、ReRAM)などが、本実施形態のメモリデバイスに用いられてもよい。
【0210】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0211】
SYS:メモリシステム、1:フラッシュメモリ、7:コントローラ、9:ホストデバイス、92:固有情報処理回路、93:認証処理回路
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13