JP2014191372A - 不揮発性記憶システム、不揮発性記憶装置、メモリコントローラ、および、プログラム - Google Patents

不揮発性記憶システム、不揮発性記憶装置、メモリコントローラ、および、プログラム Download PDF

Info

Publication number
JP2014191372A
JP2014191372A JP2013063391A JP2013063391A JP2014191372A JP 2014191372 A JP2014191372 A JP 2014191372A JP 2013063391 A JP2013063391 A JP 2013063391A JP 2013063391 A JP2013063391 A JP 2013063391A JP 2014191372 A JP2014191372 A JP 2014191372A
Authority
JP
Japan
Prior art keywords
data
authentication code
authentication
error correction
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2013063391A
Other languages
English (en)
Inventor
Takahiko Sugawara
崇彦 菅原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MegaChips Corp
Original Assignee
MegaChips Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by MegaChips Corp filed Critical MegaChips Corp
Priority to JP2013063391A priority Critical patent/JP2014191372A/ja
Publication of JP2014191372A publication Critical patent/JP2014191372A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】誤り訂正能力を超える誤りが発生した場合であっても、誤り発生を適切に検出する。
【解決手段】不揮発性記憶システム1000において、不揮発性メモリMEMからデータを読み出す場合、誤り訂正処理部25は、メモリインターフェース部26が取得した読み出しデータに対して、エラー訂正復号化処理を実行することで、読み出しデータに対応する認証コード化データを取得し、取得した認証コード化データから、データと、認証コードとを分離する。認証コード生成部241は、認証コード化データから分離されたデータに基づいて、認証コードを生成する。認証コード検出部242は、認証コード化データから分離することで取得された認証コードである第1認証コードと、認証コード化データから分離されたデータに基づいて生成された認証コードである第2認証コードと、を比較し、比較結果を示すフラグデータを出力する。
【選択図】図1

Description

本発明は、不揮発性記憶装置に記憶されるデータの誤り検出技術に関する。
近年、NANDフラッシュメモリなどの不揮発性半導体メモリにおいて、プロセス技術の微細化等に伴うデータ信頼性の低下を防ぐ多様な技術が提案されている。そのような技術の1つとして、誤り訂正符号を用いて、不揮発性半導体メモリの記憶データの誤り検出を行う技術がある。
一般的に、NANDフラッシュメモリなどの不揮発性半導体メモリを用いた不揮発性記憶装置では、誤り訂正回路(ECC(Error Correcting Code)回路)を備えている。このような不揮発性記憶装置では、記憶したデータに誤りがあった場合、誤り訂正回路により、当該データに対して誤り検出処理や誤り訂正処理を行うことで、当該記憶データに誤りがあることを検出したり、当該記憶データを正しいデータに訂正したりすることができる。不揮発性記憶装置では、このように誤り検出・訂正処理を行うことで、不揮発性半導体メモリの記憶データの信頼性を確保している。
ところが、誤り訂正回路(ECC回路)では、誤り訂正能力を超える誤りが発生した場合、その挙動を保証することができない。
この問題に対処するために、例えば、特許文献1の技術では、誤り位置多項式により算出した誤り数と、誤りロケータ計算&誤り訂正器により、誤り無し領域と訂正対象領域とから構成されるデータのうち、訂正対象領域をチェン探索して算出した誤り数とを比較する。そして、比較した結果、一致しない場合は誤り訂正能力を超える誤りが発生したと判断している。そして、特許文献1の技術では、誤り訂正能力を超える誤りが発生したと判断した場合、誤り訂正を行わないようにすることで、データに誤り訂正能力を超える誤りがある場合に、さらなる誤りを付加することを防止している。
特開2011−119019号公報
しかしながら、上記特許文献1の技術における、誤り訂正能力を超える誤りが発生したとする判断は、必ずしも正しいとは限らない。
例えば、所定のメモリ領域に格納する、あるいは、格納された符号データ(データ+シンドローム)が、何らかのイレギュラーアクセスやデータ送受信系統のトラブル等によって、すべて「0x00」(「0x」は16進数表示を示す。)にデータ化けしてしまった場合、誤り訂正回路(ECC)は、誤り訂正能力を超える誤りが発生しているにも関わらず、誤りなしデータと判断する。つまり、符号データ(データ+シンドローム)が、全て「0x00」である場合、シンドロームの値も全て「0x00」であるので、誤り訂正回路は、当該シンドロームの値に基づいて、当該符号データには「誤りなし」と誤判定する。
このように、上記特許文献1の技術では、上記のような場合、誤り訂正能力を超える誤りが発生しているにも関わらず、誤り発生を検出することができない。
そこで、本発明は、上記問題点に鑑み、誤り訂正能力を超える誤りが発生した場合であっても、誤り発生を適切に検出することができる不揮発性記憶システム、不揮発性記憶装置、メモリコントローラ、および、プログラムを実現することを目的とする。
上記課題を解決するために、第1の発明は、不揮発性メモリと、認証コード生成部と、認証コード検出部と、誤り訂正処理部と、メモリインターフェース部と、を備える不揮発性記憶システムである。
メモリインターフェース部は、不揮発性メモリにデータを書き込む処理、および/または、不揮発性メモリからデータを読み出す処理の制御を行う。
(1)不揮発性メモリにデータを書き込む場合、
認証コード生成部は、不揮発性メモリへの書き込みデータに基づいて、認証コードを生成し、生成した認証コードを書き込みデータに付与する処理を実行することで、認証コード化データを取得し、
誤り訂正処理部は、認証コード化データに対して、エラー訂正符号化処理を実行し、
メモリインターフェース部は、誤り訂正処理部によりエラー訂正符号化処理が実行された認証コード化データを、不揮発性メモリに対する書き込みデータとして、不揮発性メモリに出力する。
(2)不揮発性メモリからデータを読み出す場合、
メモリインターフェース部は、不揮発性メモリから読み出しデータを取得し、
誤り訂正処理部は、メモリインターフェース部が取得した読み出しデータに対して、エラー訂正復号化処理を実行することで、読み出しデータに対応する認証コード化データを取得し、取得した認証コード化データから、データと、認証コードとを分離し、
認証コード生成部は、誤り訂正処理部により認証コード化データから分離されたデータに基づいて、認証コードを生成し、
認証コード検出部は、誤り訂正処理部により、認証コード化データから分離することで取得された認証コードである第1認証コードと、認証コード生成部により、認証コード化データから分離されたデータに基づいて生成された認証コードである第2認証コードと、を比較し、比較結果を示すフラグデータを出力する。
この不揮発性記憶システムでは、不揮発性メモリへのデータ書き込み処理において、認証技術を用いて生成した認証コードを含めた書き込みデータを不揮発性メモリに書き込み、データ読み出し処理において、読み出しデータから、データ書き込み時に書き込みデータに含めた認証コードと同じ値の認証コードを取得できるか否かを判断することにより、データの信頼性を適切に判断することができる。
このように、この不揮発性記憶システムでは、データ読み出し処理において、読み出しデータから、データ書き込み時に含めた認証コードを正しく復元できるか否かを判断するので、誤り訂正能力を超える誤りが発生した場合であっても、誤り発生を適切に検出することができる。
なお、「フラグデータ」とは、比較結果(上記比較処理の結果)を示すデータであれば、どのような形式のデータであってもよく、フラグ形式のデータに限定されない。
第2の発明は、ホスト装置と不揮発性記憶装置とを備え、ホスト装置と不揮発性記憶装置との間で、コマンドおよび/またはデータが送受信される不揮発性記憶システムである。
不揮発性記憶装置は、不揮発性メモリと、メモリコントローラと、を備える。
メモリコントローラは、認証コード生成部と、認証コード検出部と、誤り訂正処理部と、メモリインターフェース部と、を備える。
メモリインターフェース部は、不揮発性メモリにデータを書き込む処理、および/または、不揮発性メモリからデータを読み出す処理の制御を行う。
(1)不揮発性メモリにデータを書き込む場合、
認証コード生成部は、不揮発性メモリへの書き込みデータに基づいて、認証コードを生成し、生成した認証コードを書き込みデータに付与する処理を実行することで、認証コード化データを取得し、
誤り訂正処理部は、認証コード化データに対して、エラー訂正符号化処理を実行し、
メモリインターフェース部は、誤り訂正処理部によりエラー訂正符号化処理が実行された認証コード化データを、不揮発性メモリに対する書き込みデータとして、不揮発性メモリに出力する。
(2)不揮発性メモリからデータを読み出す場合、
メモリインターフェース部は、不揮発性メモリから読み出しデータを取得し、
誤り訂正処理部は、メモリインターフェース部が取得した読み出しデータに対して、エラー訂正復号化処理を実行することで、読み出しデータに対応する認証コード化データを取得し、取得した認証コード化データから、データと、認証コードとを分離し、
認証コード生成部は、誤り訂正処理部により認証コード化データから分離されたデータに基づいて、認証コードを生成し、
認証コード検出部は、誤り訂正処理部により、認証コード化データから分離することで取得された認証コードである第1認証コードと、認証コード生成部により、認証コード化データから分離されたデータに基づいて生成された認証コードである第2認証コードと、を比較し、比較結果を示すフラグデータを出力する。
これにより、不揮発性メモリとメモリコントローラとを備える不揮発性記憶装置と、ホスト装置とを用いて、不揮発性記憶システムを構成することができる。
そして、この不揮発性記憶システムでは、不揮発性メモリへのデータ書き込み処理において、認証技術を用いて生成した認証コードを含めた書き込みデータを不揮発性メモリに書き込み、データ読み出し処理において、読み出しデータから、データ書き込み時に書き込みデータに含めた認証コードと同じ値の認証コードを取得できるか否かを判断することにより、データの信頼性を適切に判断することができる。
このように、この不揮発性記憶システムでは、データ読み出し処理において、読み出しデータから、データ書き込み時に含めた認証コードを正しく復元できるか否かを判断するので、誤り訂正能力を超える誤りが発生した場合であっても、誤り発生を適切に検出することができる。
第3の発明は、第1または第2の発明であって、認証コード生成部は、改竄防止技術を用いて、認証コードを生成する。
これにより、この不揮発性記憶システムでは、改竄防止技術を用いて生成した認証コードを用いて、データ誤り発生の有無を適切に判断することができる。
第4の発明は、第3の発明であって、認証コード生成部は、
(1)不揮発性メモリにデータを書き込む場合、不揮発性メモリへの書き込みデータに基づいて、一方向ハッシュ関数により算出した値を取得することで、認証コードを生成し、
(2)不揮発性メモリからデータを読み出す場合、誤り訂正処理部により認証コード化データから分離されたデータに基づいて、一方向ハッシュ関数により算出した値を取得することで、認証コードを生成する。
これにより、この不揮発性記憶システムでは、一方向ハッシュ関数を用いた改竄防止技術により生成した認証コードを用いて、データ誤り発生の有無を適切に判断することができる。
第5の発明は、第1または第2の発明であって、認証コード生成部は、なりすまし防止技術を用いて、認証コードを生成する。
これにより、この不揮発性記憶システムでは、なりすまし防止技術を用いて生成した認証コードを用いて、データ誤り発生の有無を適切に判断することができる。
第6の発明は、第5の発明であって、認証コード生成部は、
(1)不揮発性メモリにデータを書き込む場合、鍵情報に用いて、不揮発性メモリへの書き込みデータから、メッセージ認証コードを算出することで、認証コードを生成し、
(2)不揮発性メモリからデータを読み出す場合、鍵情報に用いて、誤り訂正処理部により認証コード化データから分離されたデータから、メッセージ認証コードを算出することで、認証コードを生成する。
これにより、この不揮発性記憶システムでは、メッセージ認証コード技術を用いたなりすまし防止技術により生成した認証コードを用いて、データ誤り発生の有無を適切に判断することができる。
第7の発明は、第2から第6のいずれかの発明である不揮発性記憶システムに用いられる不揮発性記憶装置である。
これにより、第2から第6のいずれかの発明である不揮発性記憶システムを構成する不揮発性記憶装置を実現することができる。
第8の発明は、第2から第6のいずれかの発明である不揮発性記憶システムに用いられるメモリコントローラである。
これにより、第2から第6のいずれかの発明である不揮発性記憶システムを構成するメモリコントローラを実現することができる。
第9の発明は、不揮発性メモリと、不揮発性メモリにデータを書き込む処理、および/または、不揮発性メモリからデータを読み出す処理の制御を行うメモリインターフェース部と、を含む不揮発性記憶システムに用いられるデータ処理方法をコンピュータで実行するためのプログラムである。
データ処理方法は、不揮発性メモリにデータを書き込むデータ書き込みステップと、不揮発性メモリからデータを読み出すデータ読み出しステップと、を備える。
データ書き込みステップは、
不揮発性メモリへの書き込みデータに基づいて、認証コードを生成し、生成した認証コードを書き込みデータに付与する処理を実行することで、認証コード化データを取得するステップと、
認証コード化データに対して、エラー訂正符号化処理を実行するステップと、
メモリインターフェース部により、誤り訂正処理部によりエラー訂正符号化処理が実行された認証コード化データを、不揮発性メモリに対する書き込みデータとして、不揮発性メモリに出力するステップと、を備える。
データ読み出しステップは、
メモリインターフェース部により、不揮発性メモリから読み出しデータを取得するステップと、
メモリインターフェース部が取得した読み出しデータに対して、エラー訂正復号化処理を実行することで、読み出しデータに対応する認証コード化データを取得し、取得した認証コード化データから、データと、認証コードとを分離するステップと、
誤り訂正処理部により認証コード化データから分離されたデータに基づいて、認証コードを生成するステップと、
認証コード化データから分離することで取得された認証コードである第1認証コードと、認証コード化データから分離されたデータに基づいて生成された認証コードである第2認証コードと、を比較し、比較結果を示すフラグデータを出力するステップと、を備える。
これにより、第1の発明と同様の効果を奏するデータ処理方法をコンピュータで実行するためのプログラムを実現することができる。
本発明によれば、誤り訂正能力を超える誤りが発生した場合であっても、誤り発生を適切に検出することができる不揮発性記憶システム、不揮発性記憶装置、メモリコントローラ、および、プログラムを実現することができる。
第1実施形態に係る不揮発性記憶システム1000の概略構成図。 符号データ(不揮発性メモリMEMへの書き込みデータ)のフォーマット(一例)を示す図。 第2実施形態に係る不揮発性記憶システム2000の概略構成図。 符号データ(不揮発性メモリMEMへの書き込みデータ)のフォーマット(一例)を示す図。
[第1実施形態]
第1実施形態について、図面を参照しながら、以下、説明する。
<1.1:不揮発性記憶システムの構成>
図1は、第1実施形態に係る不揮発性記憶システム1000の概略構成図である。
不揮発性記憶システム1000は、図1に示すように、ホスト装置1と、不揮発性記憶装置2と、備える。ホスト装置1と不揮発性記憶装置2とは、例えば、バスで接続されている。
不揮発性記憶装置2は、図1に示すように、メモリコントローラMCと、不揮発性メモリMEMと、を備える。
メモリコントローラMCは、図1に示すように、ホストIF部21と、コマンド制御部22と、アドレス変換部23と、認証処理部24と、誤り訂正処理部25と、メモリIF部26と、を備える。
ホスト装置1は、バス(クロック信号、データ、コマンド等を送受信するための通信路)を介して、不揮発性記憶装置2と電気的に接続することが可能である。ホスト装置1は、不揮発性記憶装置2に対して、コマンド、データ等を送信し、および/または、不揮発性記憶装置2から、ステータス信号やデータ等を受信する。
不揮発性記憶装置2は、データを記憶することができる不揮発性メモリMEMと、不揮発性メモリMEMを制御するメモリコントローラMCとを備える。不揮発性記憶装置2は、バス(クロック信号、データ、コマンド等を送受信するための通信路)を介して、ホスト装置1と電気的に接続することが可能である。不揮発性記憶装置2は、ホスト装置1から、コマンド、データ等を受信し、および/または、ホスト装置1へ、ステータス信号やデータ等を送信する。
不揮発性メモリMEMは、例えば、NANDフラッシュメモリであり、メモリコントローラMCの制御に従い、データの書き込みおよび/または読み出しを行うことができるメモリである。
メモリコントローラMCは、不揮発性メモリMEMのデータの書き込み処理および/または読み出し処理の制御を行う。メモリコントローラMCは、図1に示すように、ホストIF部21と、コマンド制御部22と、アドレス変換部23と、認証処理部24と、誤り訂正処理部25と、メモリIF部26と、を備える。
ホストIF部21は、ホスト装置1とのインターフェース部である。ホストIF部21は、例えば、バスにより、ホスト装置1と接続され、バスを介して、ホスト装置1から、データ、コマンド等を受信する。また、ホストIF部は、バスを介して、ホスト装置1へ、ステータス信号、データ等を送信する。
ホストIF部21は、ホスト装置1から受信したコマンドを、コマンド制御部22に出力する。また、ホストIF部21は、ホスト装置1から受信したコマンドが書き込みコマンドである場合、当該書き込みコマンドに付随する書き込みデータを認証処理部24の認証コード生成部241に出力する。
また、ホストIF部21は、認証処理部24から出力される読み出しデータと比較結果フラグとを入力する。そして、ホストIF部21は、入力された読み出しデータと比較結果フラグとを、バスを介して、ホスト装置1へ送信する。
コマンド制御部22は、ホストIF部21からの出力を入力とする。コマンド制御部22は、ホストIF部21から出力されるコマンドをデコードし、当該コマンドで指定されている論理アドレスを取得する。そして、コマンド制御部22は、取得した論理アドレスに関する情報をアドレス変換部23に出力する。
アドレス変換部23は、コマンド制御部22から出力される論理アドレスに関する情報を入力する。また、アドレス変換部23は、論理アドレス/物理アドレス変換テーブルを有している。アドレス変換部23は、論理アドレス/物理アドレス変換テーブルに基づいて、コマンド制御部22から入力された論理アドレスを物理アドレスに変換する。そして、アドレス変換部23は、当該物理アドレスに関する情報をメモリIF部26に出力する。
認証処理部24は、図1に示すように、認証コード生成部241と、認証コード検出部242と、を備える。
認証コード生成部241は、ホストIF部21から出力される書き込みコマンドに付随する書き込みデータを入力する。認証コード生成部241は、入力された書き込みデータに基づいて、認証コードを生成する。そして、認証コード生成部241は、ホストIF部21から入力された書き込みデータと、生成した認証コードとを誤り訂正処理部25のECC符号化部251に出力する。
また、認証コード生成部241は、誤り訂正処理部25のECC復号化部252から出力されるデータを入力する。そして、認証コード生成部241は、入力されたデータに基づいて、認証コードを生成する。そして、認証コード生成部241は、生成した認証コードを認証コード検出部242に出力する。また、認証コード生成部241は、誤り訂正処理部25のECC復号化部252から出力されるデータを、ホストIF部21に出力する。
認証コード検出部242は、認証コード生成部241から出力される認証コードと、誤り訂正処理部25のECC復号化部252から出力される認証コードとを入力する。そして、認証コード検出部242は、入力された2つの認証コードを比較し、その比較結果を示すフラグデータをホストIF部21に出力する。
誤り訂正処理部25は、図1に示すように、ECC符号化部251と、ECC復号化部252とを備える。
ECC符号化部251は、認証コード生成部241から出力される書き込みデータと、認証コードとを入力する。そして、ECC符号化部251は、入力された書き込みデータと認証コードとに基づいて、シンドロームを算出する。そして、ECC符号化部251は、書き込みデータと、認証コードと、算出したシンドロームとを、不揮発性メモリMEMへの書き込みデータとして、メモリIF部26に出力する。
ECC復号化部252は、メモリIF部26から出力される読み出しデータを入力する。ECC復号化部252は、入力された読み出しデータに対して誤り訂正処理を実行し、誤り訂正処理後のデータを認証コード検出部242に出力する。
メモリIF部26は、不揮発性メモリMEMに対してデータを書き込む処理、および/または、不揮発性メモリMEMからデータを読み出す処理の制御を行うインターフェース部である。
不揮発性メモリMEMに対してデータを書き込む処理を行う場合、メモリIF部26は、アドレス変換部23から出力される物理アドレス(書き込みアドレス)と、ECC符号化部251から出力される書き込みデータとを入力する。そして、メモリIF部26は、不揮発性メモリMEMにおいて、当該物理アドレス(書き込みアドレス)に、ECC符号化部251から出力される書き込みデータが書き込まれるように、不揮発性メモリMEMに対して、データ書き込み制御を行う。
不揮発性メモリMEMからデータを読み出す処理を行う場合、メモリIF部26は、アドレス変換部23から出力される物理アドレス(読み出しアドレス)を入力する。そして、メモリIF部26は、不揮発性メモリMEMにおいて、当該物理アドレス(読み出しアドレス)に、記憶されているデータを読み出すように、不揮発性メモリMEMに対して、データ読み出し制御を行う。
<1.2:不揮発性記憶システムの動作>
以上のように構成された不揮発性記憶システム1000の動作について、図面を参照しながら、説明する。なお、以下では、データ書き込み処理と、データ読み出し処理とに分けて、図1に付した処理番号(図1中に括弧で付した番号)の順に、説明する。
(1.2.1:データ書き込み処理)
まず、データ書き込み処理について、説明する。
≪処理(1)≫
ホスト装置1は、メモリコントローラMCに対して、書き込みコマンドと書き込みデータを送信する。
≪処理(2)≫
ホストIF部21は、書き込みコマンドを取得し、取得した書き込みコマンドをコマンド制御部22に出力する。
≪処理(3)≫
コマンド制御部22は、書き込みコマンドをデコードし、書き込み論理アドレスを取得する。そして、コマンド制御部22は、取得した書き込み論理アドレスに関する情報をアドレス変換部23に出力する。
≪処理(4)≫
アドレス変換部23は、論理アドレス/物理アドレス変換テーブルに基づいて、入力された書き込み論理アドレスを物理アドレスに変換して、メモリIF部26に出力する。
≪処理(5)≫
ホストIF部は、書き込みコマンドに付随する書き込みデータ(これをD1と表記する。)を、認証コード生成部241(例えば、ハッシュ値生成回路)に出力する。
≪処理(6)≫
認証コード生成部241(例えば、ハッシュ値生成回路)は、ホストIF部から出力された書き込みデータの認証コード(例えば、ハッシュ値)(これをH1と表記する。)を算出する。例えば、認証コードをハッシュ値とする場合、認証コード生成部241は、書き込みデータに対して、一方向ハッシュ関数(例えば、SHA−1,SHA−2、MD5、RIPEMD−160等)を施すことで(書き込みデータを入力(キー)として一方向ハッシュ関数を施すことで)、ハッシュ値を算出する。
そして、認証コード生成部241(例えば、ハッシュ値生成回路)は、ホストIF部から出力された書き込みデータ(D1)と、算出した認証コード(例えば、ハッシュ値)(H1)とを誤り訂正処理部25のECC符号化部に出力する。
≪処理(7)≫
誤り訂正処理部25のECC符号化部251は、処理(6)で取得した「書き込みデータ+認証コード」(例えば、「書き込みデータ+ハッシュ値」)のシンドローム(これをS1と表記する。)を算出する。そして、ECC符号化部251は、「書き込みデータ+認証コード」(例えば、「書き込みデータ+ハッシュ値」)とシンドローム値とを、不揮発性メモリMEMへの書き込みデータ(符号データ)(これをD1+H1+S1と表記する。)として、メモリIF部26に出力する。
なお、図2に、符号データ(不揮発性メモリMEMへの書き込みデータ)のフォーマット(一例)を示す。
図2に示すように、符号データは、データD1と、認証コードH1(例えば、ハッシュ値)と、シンドロームS1と、からなる。
誤り訂正処理部25のECC符号化部251は、図2の「データD1+認証コードH1(例えば、ハッシュ値)」(図2のシンドローム算出対象データD2)を、シンドロームの算出対象として、シンドロームS1を算出する。そして、ECC符号化部251は、「データD1+認証コードH1(例えば、ハッシュ値)」(図2のシンドローム算出対象データD2)に、算出したシンドロームS1を付加して、図2のデータフォーマットを有する符号データを生成する。そして、ECC符号化部251は、生成した符号データを、不揮発性メモリMEMへの書き込みデータとして、メモリIF部26に出力する。
≪処理(8)≫
メモリIF部26は、アドレス変換部23から出力される書き込みアドレスと、ECC符号化部251から出力される書き込みデータ(符号データ)とを不揮発性メモリMEMに出力する。そして、不揮発性メモリMEMにおいて、メモリIF部26により指定された書き込みアドレスに、当該書き込みデータが、書き込まれる。
(1.2.2:データ読み出し処理)
次に、データ読み出し処理について、説明する。
≪処理(9)≫
ホスト装置1は、メモリコントローラMCに対して、読み出しコマンドを送信する。
≪処理(10)≫
ホストIF部21は、読み出しコマンドを取得し、取得した読み出しコマンドを、コマンド制御部22に出力する。
≪処理(11)≫
コマンド制御部22は、読み出しコマンドをデコードし、読み出し論理アドレスを取得する。そして、コマンド制御部22は、取得した読み出し論理アドレスに関する情報をアドレス変換部23に出力する。
≪処理(12)≫
アドレス変換部23は、論理アドレス/物理アドレス変換テーブルに基づいて、入力された読み出し論理アドレスを物理アドレスに変換して、メモリIF部26に出力する。
≪処理(13)≫
メモリIF部26は、アドレス変換部23から出力される読み出しアドレスを不揮発性メモリMEMに出力する。
そして、不揮発性メモリMEMにおいて、メモリIF部26により指定された読み出しアドレスから、データが読み出される。
≪処理(14)≫
不揮発性メモリMEMは、データ読み出し処理を開始し、読み出しデータ(符号データ)(これをD1’+H1’+S1’と表記する。)をメモリIF部26に出力する。
≪処理(15)≫
メモリIF部26は、不揮発性メモリMEMからの読み出しデータを取得し、取得した読み出しデータを誤り訂正処理部25のECC復号化部252に出力する。
≪処理(16)≫
ECC復号化部252は、読み出しデータ(符号データ)の誤り訂正処理を実行し、誤り訂正処理後の読み出しデータ(符号データに含まれるデータ部(実データ))(これをD1’と表記する。)を、認証処理部24の認証コード生成部241(例えば、ハッシュ値生成回路)に出力する。
≪処理(17)≫
認証コード生成部241(例えば、ハッシュ値生成回路)は、処理(16)により取得した読み出しデータ(符号データに含まれるデータ部)の認証コード(例えば、ハッシュ値)(これをH1’’と表記する。)を算出するとともに、読み出しデータ(符号データのデータ部)(D1’)をホストIF部21に出力する。
≪処理(18)≫
認証コード生成部241(例えば、ハッシュ値生成回路)は、処理(17)により算出された認証コード(例えば、ハッシュ値)(H1’’)を、認証コード検出部242に出力する。
≪処理(19)≫
ECC復号化部252は、誤り訂正処理後の読み出しデータ(符号データの認証コード(例えば、符号データのハッシュ値)(これをH1’と表記する。))を、認証コード検出部242に出力する。
≪処理(20)≫
認証コード検出部242は、処理(18)により取得した認証コード(例えば、ハッシュ値)(H1’’)と、処理(19)により取得した認証コード(例えば、ハッシュ値)(H1’)とを比較し、その比較結果を示すフラグデータを生成する。
具体的には、処理(18)により取得した認証コード(以下、例えば、ハッシュ値)(H1’’)と、処理(19)により取得した認証コード(例えば、ハッシュ値)(H1’)とが一致している場合、認証コード検出部242は、誤り訂正処理後の読み出しデータ(符号データのデータ部D1’)は、正常に誤り訂正が実施されたと判断し、フラグデータを、「正常に誤り訂正が実施された」ことを示す値(例えば、「0」)に設定する。
一方、処理(18)により取得した認証コード(以下、例えば、ハッシュ値)(H1’’)と、処理(19)により取得した認証コード(例えば、ハッシュ値)(H1’)とが不一致である場合、認証コード検出部242は、誤り訂正能力を超える誤りが発生したと判断し、フラグデータを、「誤り訂正能力を超える誤りが発生した」ことを示す値(例えば、「1」)に設定する。
そして、認証コード検出部242は、上記のようにして生成したフラグデータを、ホストIF部21に出力する。
≪処理(21)≫
ホストIF部21は、誤り訂正処理後の読み出しデータ(符号データのデータ部)と、認証コード(例えば、ハッシュ値)の比較結果を示すフラグデータとを、ホスト装置1に送信する。
ホスト装置1は、メモリコントローラMCのホストIF部21から受信した読み出しデータと、フラグデータとを受信する。ホスト装置1は、受信したフラグデータから、受信した読み出しデータの信頼性を確認することができるので、データ信頼性に基づいて、受信した読み出しデータに対して、適宜処理を行う。
以上のように、不揮発性記憶システム1000では、不揮発性メモリMEMへのデータ書き込み処理において、認証技術(例えば、一方向ハッシュ関数を用いた改竄防止技術)を用いて生成した認証コードを含めた書き込みデータを不揮発性メモリMEMに書き込む。そして、データ読み出し処理において、読み出しデータから、データ書き込み時に書き込みデータに含めた認証コードと同じ値の認証コードを取得できるか否かを判断することにより、つまり、誤り訂正能力以上の誤りが発生したデータを改竄データとみなすことで、不揮発性記憶システム1000では、データの信頼性を適切に判断することができる。
このように、不揮発性記憶システム1000では、データ読み出し処理において、読み出しデータから、データ書き込み時に含めた認証コードを正しく復元できるか否かを判断する。したがって、不揮発性記憶システム1000では、不揮発性メモリの所定のメモリ領域に格納する、あるいは、格納された符号データ(データ+シンドローム)が、何らかのイレギュラーアクセス(予期せぬアクセスや不正なアクセス)やデータ送受信系統のトラブル等により、誤り訂正能力を超える誤りが発生した場合であっても、誤り発生を適切に検出することができる。
例えば、メモリIF部26から誤り訂正処理部25のECC復号化部252に出力されるデータ(D1’+H1’+S1’)が全て「0x00」である場合、ECC復号化部252により取得されるデータD1’および認証コードH1’は、ともに、全て「0x00」である。一方、認証コード生成部241によりデータD1’から生成される認証コードH1’’(例えば、ハッシュ値)は、「0x00」からのみなるデータにはならない。全て「0x00」の入力データ(全バイトが「0x00」のデータ)に対して、誤り訂正符号化処理や、CRC符号化処理を実行すると、その出力は、全て「0x00」のデータ(全バイトが「0x00」のデータ)となるが、全て「0x00」のデータ(全バイトが「0x00」のデータ)に対して、一方向ハッシュ関数(認証コードを生成する関数)による認証処理を実行すると、その出力は、全て「0x00」のデータ(全バイトが「0x00」のデータ)にはならない。
したがって、全て「0x00」の入力データ(全バイトが「0x00」のデータ)が入力されている場合(誤り訂正処理における誤り訂正能力を超える誤りが発生している場合の一例)、認証コード検出部242では、認証コードH1’と認証コードH1’’とが一致しないことを示すフラグデータが生成される。つまり、このフラグデータは、誤り訂正処理における誤り訂正能力を超える誤りが発生している場合であっても、データに誤りが発生していることを正しく示すことができる。
その結果、不揮発性記憶システム1000では、フラグデータを参照することで、誤り訂正処理における誤り訂正能力を超える誤りが発生している場合であっても、読み出しデータに誤りがあるのか否かを適切に判断することができる。
[第2実施形態]
次に、第2実施形態について、説明する。
<2.1:不揮発性記憶システムの構成>
図3は、第2実施形態に係る不揮発性記憶システム2000の概略構成図である。
本実施形態に係る不揮発性記憶システム2000は、図3に示すように、ホスト装置1と、不揮発性記憶装置2Aとを備える。
不揮発性記憶装置2Aは、メモリコントローラMCAと、不揮発性メモリMEMとを備える。
メモリコントローラMCAは、第1実施形態のメモリコントローラMCにおいて、認証処理部24を、認証処理部24Aに置換した構成を有している。
つまり、本実施形態の不揮発性記憶システム2000では、第1実施形態の不揮発性記憶システム1000において、認証処理部24を、認証処理部24Aに置換した構成を有しており、この点のみが相違する。それ以外については、本実施形態の不揮発性記憶システム2000は、第1実施形態の不揮発性記憶システム1000と同様である。
第1実施形態では、認証コードが、例えば、一方向ハッシュ関数により取得されるハッシュ値であることを想定して説明したが、本実施形態では、認証コードが、例えば、メッセージ認証コード(MAC(Message Authentication Code)値)であることを想定している。
つまり、第1実施形態では、認証処理部が、改竄防止技術を用いて処理を実行するのに対して、本実施形態では、認証処理部が、なりすまし防止技術を用いて処理を実行する。
以下では、本実施形態に特有の部分を中心に説明し、第1実施形態と同様の部分については、同一符号を付し、詳細な説明は省略する。
認証処理部24Aは、図3に示すように、認証コード生成部241Aと、認証コード検出部242Aと、鍵情報格納部243と、を備える。
認証コード生成部241Aは、ホストIF部21から出力される書き込みコマンドに付随する書き込みデータと、鍵情報格納部243から出力される鍵情報(共有鍵暗号方式の共有鍵の情報)とを入力する。認証コード生成部241Aは、鍵情報格納部からの鍵情報、つまり、共有鍵を用いて、入力された書き込みデータからMAC値を算出することで、認証コード(MAC値)を生成する。そして、認証コード生成部241は、ホストIF部21から入力された書き込みデータと、生成した認証コード(MAC値)とを誤り訂正処理部25のECC符号化部251に出力する。
また、認証コード生成部241Aは、誤り訂正処理部25のECC復号化部252から出力されるデータを入力する。そして、認証コード生成部241Aは、入力されたデータに基づいて、鍵情報格納部243からの鍵情報、つまり、共有鍵を用いて、認証コード(MAC値)を生成する。そして、認証コード生成部241は、生成した認証コード(MAC値)を認証コード検出部242Aに出力する。また、認証コード生成部241Aは、誤り訂正処理部25のECC復号化部252から出力されるデータを、ホストIF部21に出力する。
認証コード検出部242Aは、認証コード生成部241Aから出力される認証コード(MAC値)と、誤り訂正処理部25のECC復号化部252から出力される認証コード(MAC値)とを入力する。そして、認証コード検出部242Aは、入力された2つの認証コード(MAC値)を比較し、その比較結果を示すフラグデータをホストIF部21に出力する。
鍵情報格納部243は、共有鍵暗号方式による共有鍵を格納保持しており、当該共有鍵に関する情報(鍵情報)を、認証コード生成部241Aに出力する。
<2.2:不揮発性記憶システムの動作>
以上のように構成された不揮発性記憶システム2000の動作について、図面を参照しながら、説明する。なお、以下では、データ書き込み処理と、データ読み出し処理とに分けて、図3に付した処理番号(図3中に括弧で付した番号)の順に、説明する。
(2.2.1:データ書き込み処理)
まず、データ書き込み処理について、説明する。
≪処理(1)≫
ホスト装置1は、メモリコントローラMCAに対して、書き込みコマンドと書き込みデータを送信する。
≪処理(2)≫
ホストIF部21は、書き込みコマンドを取得し、取得した書き込みコマンドをコマンド制御部22に出力する。
≪処理(3)≫
コマンド制御部22は、書き込みコマンドをデコードし、書き込み論理アドレスを取得する。そして、コマンド制御部22は、取得した書き込み論理アドレスに関する情報をアドレス変換部23に出力する。
≪処理(4)≫
アドレス変換部23は、論理アドレス/物理アドレス変換テーブルに基づいて、入力された書き込み論理アドレスを物理アドレスに変換して、メモリIF部26に出力する。
≪処理(5)≫
ホストIF部は、書き込みコマンドに付随する書き込みデータ(これをD1と表記する。)を、認証コード生成部241A(例えば、ハッシュ値生成回路)に出力する。
≪処理(6)≫
認証コード生成部241Aは、鍵情報格納部243に格納保持されている鍵情報、つまり、共有鍵を用いて、ホストIF部から出力された書き込みデータから、認証コード(MAC値)(これをM1と表記する。)を算出する。
そして、認証コード生成部241Aは、ホストIF部から出力された書き込みデータ(D1)と、算出した認証コード(MAC値)(M1)とを誤り訂正処理部25のECC符号化部に出力する。
≪処理(7)≫
誤り訂正処理部25のECC符号化部251は、処理(6)で取得した「書き込みデータ+認証コード(MAC値)」のシンドローム(これをS1と表記する。)を算出する。そして、ECC符号化部251は、「書き込みデータ+認証コード(MAC値)」とシンドローム値とを、不揮発性メモリMEMへの書き込みデータ(符号データ)(これをD1+M1+S1と表記する。)として、メモリIF部26に出力する。
なお、図4に、符号データ(不揮発性メモリMEMへの書き込みデータ)のフォーマット(一例)を示す。
図4に示すように、符号データは、データD1と、認証コードM1(MAC値)と、シンドロームS1と、からなる。
誤り訂正処理部25のECC符号化部251は、図2の「データD1+認証コードM1(MAC値)」(図4のシンドローム算出対象データD2)を、シンドロームの算出対象として、シンドロームS1を算出する。そして、ECC符号化部251は、「データD1+認証コードM1(MAC値)」(図4のシンドローム算出対象データD2)に、算出したシンドロームS1を付加して、図4のデータフォーマットを有する符号データを生成する。そして、ECC符号化部251は、生成した符号データを、不揮発性メモリMEMへの書き込みデータとして、メモリIF部26に出力する。
≪処理(8)≫
メモリIF部26は、アドレス変換部23から出力される書き込みアドレスと、ECC符号化部251から出力される書き込みデータ(符号データ)とを不揮発性メモリMEMに出力する。そして、不揮発性メモリMEMにおいて、メモリIF部26により指定された書き込みアドレスに、当該書き込みデータが、書き込まれる。
(2.2.2:データ読み出し処理)
次に、データ読み出し処理について、説明する。
≪処理(9)≫
ホスト装置1は、メモリコントローラMCAに対して、読み出しコマンドを送信する。
≪処理(10)≫
ホストIF部21は、読み出しコマンドを取得し、取得した読み出しコマンドを、コマンド制御部22に出力する。
≪処理(11)≫
コマンド制御部22は、読み出しコマンドをデコードし、読み出し論理アドレスを取得する。そして、コマンド制御部22は、取得した読み出し論理アドレスに関する情報をアドレス変換部23に出力する。
≪処理(12)≫
アドレス変換部23は、論理アドレス/物理アドレス変換テーブルに基づいて、入力された読み出し論理アドレスを物理アドレスに変換して、メモリIF部26に出力する。
≪処理(13)≫
メモリIF部26は、アドレス変換部23から出力される読み出しアドレスを不揮発性メモリMEMに出力する。
そして、不揮発性メモリMEMにおいて、メモリIF部26により指定された読み出しアドレスから、データが読み出される。
≪処理(14)≫
不揮発性メモリMEMは、データ読み出し処理を開始し、読み出しデータ(符号データ)(これをD1’+M1’+S1’と表記する。)をメモリIF部26に出力する。
≪処理(15)≫
メモリIF部26は、不揮発性メモリMEMからの読み出しデータを取得し、取得した読み出しデータを誤り訂正処理部25のECC復号化部252に出力する。
≪処理(16)≫
ECC復号化部252は、読み出しデータ(符号データ)の誤り訂正処理を実行し、誤り訂正処理後の読み出しデータ(符号データに含まれるデータ部(実データ))(これをD1’と表記する。)を、認証処理部24Aの認証コード生成部241Aに出力する。
≪処理(17)≫
認証コード生成部241Aは、鍵情報格納部243の鍵情報(共有鍵)を用いて、処理(16)により取得した読み出しデータ(符号データに含まれるデータ部)の認証コード(MAC値)(これをM1’’と表記する。)を算出するとともに、読み出しデータ(符号データのデータ部)(D1’)をホストIF部21に出力する。
≪処理(18)≫
認証コード生成部241Aは、処理(17)により算出された認証コード(MAC値)(M1’’)を、認証コード検出部242Aに出力する。
≪処理(19)≫
ECC復号化部252は、誤り訂正処理後の読み出しデータ(符号データに含まれる認証コード(符号データのMAC値)(これをM1’と表記する。))を、認証コード検出部242Aに出力する。
≪処理(20)≫
認証コード検出部242Aは、処理(18)により取得した認証コード(MAC値M1’’)と、処理(19)により取得した認証コード(MAC値M1’)とを比較し、その比較結果を示すフラグデータを生成する。
具体的には、処理(18)により取得した認証コード(MAC値M1’’)と、処理(19)により取得した認証コード(MAC値M1’)とが一致している場合、認証コード検出部242は、誤り訂正処理後の読み出しデータ(符号データに含まれるデータ部D1’)は、正常に誤り訂正が実施されたと判断し、フラグデータを、「正常に誤り訂正が実施された」ことを示す値(例えば、「0」)に設定する。
一方、処理(18)により取得した認証コード(MAC値M1’’)と、処理(19)により取得した認証コード(MAC値M1’)とが不一致である場合、認証コード検出部242Aは、誤り訂正能力を超える誤りが発生したと判断し、フラグデータを、「誤り訂正能力を超える誤りが発生した」ことを示す値(例えば、「1」)に設定する。
そして、認証コード検出部242Aは、上記のようにして生成したフラグデータを、ホストIF部21に出力する。
≪処理(21)≫
ホストIF部21は、誤り訂正処理後の読み出しデータ(符号データのデータ部)と、認証コード(MAC値)の比較結果を示すフラグデータとを、ホスト装置1に送信する。
ホスト装置1は、メモリコントローラMCAのホストIF部21から受信した読み出しデータと、フラグデータとを受信する。ホスト装置1は、受信したフラグデータから、受信した読み出しデータの信頼性を確認することができるので、データ信頼性に基づいて、受信した読み出しデータに対して、適宜処理を行う。
以上のように、不揮発性記憶システム2000では、不揮発性メモリMEMへのデータ書き込み処理において、認証技術(なりすまし防止技術)を用いて生成した認証コード(MAC値)を含めた書き込みデータを不揮発性メモリMEMに書き込み、データ読み出し処理において、読み出しデータから、データ書き込み時に書き込みデータに含めた認証コード(MAC値)と同じ値の認証コード(MAC値)を取得できるか否かを判断することにより、つまり、誤り訂正能力以上の誤りが発生したデータをなりすましデータとみなすことで、データの信頼性を適切に判断することができる。
このように、不揮発性記憶システム2000では、データ読み出し処理において、読み出しデータから、データ書き込み時に含めた認証コードを正しく復元できるか否かを判断する。したがって、不揮発性記憶システム2000では、不揮発性メモリの所定のメモリ領域に格納する、あるいは、格納された符号データ(データ+シンドローム)が、何らかのイレギュラーアクセス(予期せぬアクセスや不正なアクセス)やデータ送受信系統のトラブル等により、誤り訂正能力を超える誤りが発生した場合であっても、誤り発生を適切に検出することができる。
例えば、メモリIF部26から誤り訂正処理部25のECC復号化部252に出力されるデータ(D1’+M1’+S1’)が全て「0x00」である場合、ECC復号化部252により取得されるデータD1’および認証コード(MAC値)M1’は、ともに、全て「0x00」である。一方、認証コード生成部241AによりデータD1’から生成される認証コード(MAC値)M1’’は、「0x00」からのみなるデータにはならない。全て「0x00」の入力データ(全バイトが「0x00」のデータ)に対して、誤り訂正符号化処理や、CRC符号化処理を実行すると、その出力は、全て「0x00」のデータ(全バイトが「0x00」のデータ)となるが、全て「0x00」のデータ(全バイトが「0x00」のデータ)に対して、鍵情報に基づいて、MAC値を算出すると、その出力は、全て「0x00」のデータ(全バイトが「0x00」のデータ)にはならない。
したがって、全て「0x00」の入力データ(全バイトが「0x00」のデータ)が入力されている場合(誤り訂正処理における誤り訂正能力を超える誤りが発生している場合の一例)、認証コード検出部242Aでは、認証コードM1’と認証コードM1’’とが一致しないことを示すフラグデータが生成される。つまり、このフラグデータは、誤り訂正処理における誤り訂正能力を超える誤りが発生している場合であっても、データに誤りが発生していることを正しく示すことができる。
その結果、不揮発性記憶システム2000では、フラグデータを参照することで、誤り訂正処理における誤り訂正能力を超える誤りが発生している場合であっても、読み出しデータに誤りがあるのか否かを適切に判断することができる。
[他の実施形態]
上記実施形態では、不揮発性記憶装置(2、2A)に、認証処理部(24、24A)を備える構成について説明したが、これに限定されることはなく、例えば、ホスト装置が認証処理部を備える構成であってもよい。この場合、不揮発性記憶装置側の認証処理部は省略することができる。また、上記の場合、ホスト装置が認証コード(例えば、ハッシュ値やMAC値)を生成し、生成した認証コードを、書き込みコマンドに含めて、不揮発性記憶装置へ送信するようにしてもよい。また、上記の場合、不揮発性記憶装置からホスト装置へ送信される読み出しデータは、符号データのデータ部と、認証コード(例えば、ハッシュ値やMAC値)とを含むデータとすることが好ましい。
また、第1実施形態と第2実施形態とを組み合わせてもよい。
また、ホスト装置が不揮発性記憶装置を認証するための認証処理機構(認証処理を行う機能部)を有する場合、当該認証処理機構を用いて、第1、第2実施形態で説明した認証処理を実行するようにしてもよい。この場合、不揮発性記憶装置を認証するための認証処理機構を併用して、上記実施形態で説明した認証処理を実行することができるので、別途、認証処理部を設ける必要がなくなり、製造コスト等を抑えることができる。
上記実施形態の一部または全部を組み合わせて、不揮発性記憶システム、不揮発性記憶装置等を構成するようにしてもよい。
また、上記実施形態の不揮発性記憶システム、不揮発性記憶装置の一部または全部は、集積回路(例えば、LSI、システムLSI等)として実現されるものであってもよい。
上記実施形態の各機能ブロックの処理の一部または全部は、プログラムにより実現されるものであってもよい。そして、上記実施形態の各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置(CPU)により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ROMなどの記憶装置に格納されており、ROMにおいて、あるいはRAMに読み出されて実行される。
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェア(OS(オペレーティングシステム)、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。)により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。なお、上記実施形態に係る不揮発性記憶システム、不揮発性記憶装置をハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
また、上記実施形態における処理方法の実行順序は、必ずしも、上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
前述した方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリを挙げることができる。
上記コンピュータプログラムは、上記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
1000、2000 不揮発性記憶システム
1 ホスト装置
2 不揮発性記憶装置
MC、MCA メモリコントローラ
MEM 不揮発性メモリ
21 ホストIF部
24、24A 認証処理部
241、241A 認証コード生成部
242、242A 認証コード検出部
243 鍵情報格納部
25 誤り訂正処理部
251 ECC符号化部
252 ECC復号化部
26 メモリIF部

Claims (9)

  1. 不揮発性メモリと、
    認証コード生成部と、
    認証コード検出部と、
    誤り訂正処理部と、
    前記不揮発性メモリにデータを書き込む処理、および/または、前記不揮発性メモリからデータを読み出す処理の制御を行うメモリインターフェース部と、
    を備え、
    (1)前記不揮発性メモリにデータを書き込む場合、
    前記認証コード生成部は、前記不揮発性メモリへの書き込みデータに基づいて、認証コードを生成し、生成した認証コードを前記書き込みデータに付与する処理を実行することで、認証コード化データを取得し、
    前記誤り訂正処理部は、前記認証コード化データに対して、エラー訂正符号化処理を実行し、
    前記メモリインターフェース部は、前記誤り訂正処理部により前記エラー訂正符号化処理が実行された前記認証コード化データを、前記不揮発性メモリに対する書き込みデータとして、前記不揮発性メモリに出力し、
    (2)前記不揮発性メモリからデータを読み出す場合、
    前記メモリインターフェース部は、前記不揮発性メモリから読み出しデータを取得し、
    前記誤り訂正処理部は、前記メモリインターフェース部が取得した読み出しデータに対して、エラー訂正復号化処理を実行することで、前記読み出しデータに対応する認証コード化データを取得し、取得した前記認証コード化データから、データと、認証コードとを分離し、
    前記認証コード生成部は、前記誤り訂正処理部により前記認証コード化データから分離されたデータに基づいて、認証コードを生成し、
    前記認証コード検出部は、前記誤り訂正処理部により、前記認証コード化データから分離することで取得された認証コードである第1認証コードと、前記認証コード生成部により、前記認証コード化データから分離されたデータに基づいて生成された認証コードである第2認証コードと、を比較し、比較結果を示すフラグデータを出力する、
    不揮発性記憶システム。
  2. ホスト装置と不揮発性記憶装置とを備え、前記ホスト装置と前記不揮発性記憶装置との間で、コマンドおよび/またはデータが送受信される不揮発性記憶システムであって、
    前記不揮発性記憶装置は、
    不揮発性メモリと、
    前記不揮発性メモリを制御するメモリコントローラと、
    を備え、
    前記メモリコントローラは、
    認証コード生成部と、
    認証コード検出部と、
    誤り訂正処理部と、
    前記不揮発性メモリにデータを書き込む処理、および/または、前記不揮発性メモリからデータを読み出す処理の制御を行うメモリインターフェース部と、
    を備え、
    (1)前記不揮発性メモリにデータを書き込む場合、
    前記認証コード生成部は、前記不揮発性メモリへの書き込みデータに基づいて、認証コードを生成し、生成した認証コードを前記書き込みデータに付与する処理を実行することで、認証コード化データを取得し、
    前記誤り訂正処理部は、前記認証コード化データに対して、エラー訂正符号化処理を実行し、
    前記メモリインターフェース部は、前記誤り訂正処理部により前記エラー訂正符号化処理が実行された前記認証コード化データを、前記不揮発性メモリに対する書き込みデータとして、前記不揮発性メモリに出力し、
    (2)前記不揮発性メモリからデータを読み出す場合、
    前記メモリインターフェース部は、前記不揮発性メモリから読み出しデータを取得し、
    前記誤り訂正処理部は、前記メモリインターフェース部が取得した読み出しデータに対して、エラー訂正復号化処理を実行することで、前記読み出しデータに対応する認証コード化データを取得し、取得した前記認証コード化データから、データと、認証コードとを分離し、
    前記認証コード生成部は、前記誤り訂正処理部により前記認証コード化データから分離されたデータに基づいて、認証コードを生成し、
    前記認証コード検出部は、前記誤り訂正処理部により、前記認証コード化データから分離することで取得された認証コードである第1認証コードと、前記認証コード生成部により、前記認証コード化データから分離されたデータに基づいて生成された認証コードである第2認証コードと、を比較し、比較結果を示すフラグデータを出力する、
    不揮発性記憶システム。
  3. 前記認証コード生成部は、改竄防止技術を用いて、前記認証コードを生成する、
    請求項1または2に記載の不揮発性記憶システム。
  4. 前記認証コード生成部は、
    (1)前記不揮発性メモリにデータを書き込む場合、
    前記不揮発性メモリへの書き込みデータに基づいて、一方向ハッシュ関数により算出した値を取得することで、前記認証コードを生成し、
    (2)前記不揮発性メモリからデータを読み出す場合、
    前記誤り訂正処理部により前記認証コード化データから分離されたデータに基づいて、一方向ハッシュ関数により算出した値を取得することで、前記認証コードを生成する、
    請求項3に記載の不揮発性記憶システム。
  5. 前記認証コード生成部は、なりすまし防止技術を用いて、前記認証コードを生成する、
    請求項1または2に記載の不揮発性記憶システム。
  6. 前記認証コード生成部は、
    (1)前記不揮発性メモリにデータを書き込む場合、
    鍵情報に用いて、前記不揮発性メモリへの書き込みデータから、メッセージ認証コードを算出することで、前記認証コードを生成し、
    (2)前記不揮発性メモリからデータを読み出す場合、
    前記鍵情報に用いて、前記誤り訂正処理部により前記認証コード化データから分離されたデータから、メッセージ認証コードを算出することで、前記認証コードを生成する、
    請求項5に記載の不揮発性記憶システム。
  7. 請求項2から6のいずれかに記載の不揮発性記憶システムに用いられる前記不揮発性記憶装置。
  8. 請求項2から6のいずれかに記載の不揮発性記憶システムに用いられる前記メモリコントローラ。
  9. 不揮発性メモリと、前記不揮発性メモリにデータを書き込む処理、および/または、前記不揮発性メモリからデータを読み出す処理の制御を行うメモリインターフェース部と、を含む不揮発性記憶システムに用いられるデータ処理方法をコンピュータで実行するためのプログラムであって、
    前記データ処理方法は、
    前記不揮発性メモリにデータを書き込むデータ書き込みステップと、
    前記不揮発性メモリからデータを読み出すデータ読み出しステップと、
    を備え、
    前記データ書き込みステップは、
    前記不揮発性メモリへの書き込みデータに基づいて、認証コードを生成し、生成した認証コードを前記書き込みデータに付与する処理を実行することで、認証コード化データを取得するステップと、
    前記認証コード化データに対して、エラー訂正符号化処理を実行するステップと、
    前記メモリインターフェース部により、前記誤り訂正処理部により前記エラー訂正符号化処理が実行された前記認証コード化データを、前記不揮発性メモリに対する書き込みデータとして、前記不揮発性メモリに出力するステップと、
    を備え、
    前記データ読み出しステップは、
    前記メモリインターフェース部により、前記不揮発性メモリから読み出しデータを取得するステップと、
    前記メモリインターフェース部が取得した読み出しデータに対して、エラー訂正復号化処理を実行することで、前記読み出しデータに対応する認証コード化データを取得し、取得した前記認証コード化データから、データと、認証コードとを分離するステップと、
    前記誤り訂正処理部により前記認証コード化データから分離されたデータに基づいて、認証コードを生成するステップと、
    前記認証コード化データから分離することで取得された認証コードである第1認証コードと、前記認証コード化データから分離されたデータに基づいて生成された認証コードである第2認証コードと、を比較し、比較結果を示すフラグデータを出力するステップと、
    を備える
    データ処理方法をコンピュータに実行させるためのプログラム。
JP2013063391A 2013-03-26 2013-03-26 不揮発性記憶システム、不揮発性記憶装置、メモリコントローラ、および、プログラム Pending JP2014191372A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013063391A JP2014191372A (ja) 2013-03-26 2013-03-26 不揮発性記憶システム、不揮発性記憶装置、メモリコントローラ、および、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013063391A JP2014191372A (ja) 2013-03-26 2013-03-26 不揮発性記憶システム、不揮発性記憶装置、メモリコントローラ、および、プログラム

Publications (1)

Publication Number Publication Date
JP2014191372A true JP2014191372A (ja) 2014-10-06

Family

ID=51837614

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013063391A Pending JP2014191372A (ja) 2013-03-26 2013-03-26 不揮発性記憶システム、不揮発性記憶装置、メモリコントローラ、および、プログラム

Country Status (1)

Country Link
JP (1) JP2014191372A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020195134A (ja) * 2019-05-28 2020-12-03 新唐科技股▲ふん▼有限公司 メモリエラーを訂正するためのシステム及び方法
JP2022523294A (ja) * 2019-01-23 2022-04-22 マイクロン テクノロジー,インク. 暗号化構成要素を備えたメモリデバイス

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007136865A (ja) * 2005-11-18 2007-06-07 Kyocera Mita Corp 画像形成装置
JP2009508272A (ja) * 2005-09-14 2009-02-26 サンディスク コーポレイション メモリカードコントローラファームウェアのハードウェアドライバ完全性チェック
JP2009512022A (ja) * 2005-10-07 2009-03-19 マイクロソフト コーポレーション フラッシュメモリの管理
JP2009252294A (ja) * 2008-04-07 2009-10-29 Spansion Llc メモリコントローラ、メモリシステム、及びメモリデバイスへのデータの書込方法
JP2012003569A (ja) * 2010-06-18 2012-01-05 Tdk Corp メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2012252557A (ja) * 2011-06-03 2012-12-20 Mega Chips Corp メモリコントローラ
JP2013003656A (ja) * 2011-06-13 2013-01-07 Mega Chips Corp メモリコントローラ

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009508272A (ja) * 2005-09-14 2009-02-26 サンディスク コーポレイション メモリカードコントローラファームウェアのハードウェアドライバ完全性チェック
JP2009512022A (ja) * 2005-10-07 2009-03-19 マイクロソフト コーポレーション フラッシュメモリの管理
JP2007136865A (ja) * 2005-11-18 2007-06-07 Kyocera Mita Corp 画像形成装置
JP2009252294A (ja) * 2008-04-07 2009-10-29 Spansion Llc メモリコントローラ、メモリシステム、及びメモリデバイスへのデータの書込方法
JP2012003569A (ja) * 2010-06-18 2012-01-05 Tdk Corp メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2012252557A (ja) * 2011-06-03 2012-12-20 Mega Chips Corp メモリコントローラ
JP2013003656A (ja) * 2011-06-13 2013-01-07 Mega Chips Corp メモリコントローラ

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022523294A (ja) * 2019-01-23 2022-04-22 マイクロン テクノロジー,インク. 暗号化構成要素を備えたメモリデバイス
US11514174B2 (en) 2019-01-23 2022-11-29 Micron Technology, Inc. Memory devices with cryptographic components
US11868488B2 (en) 2019-01-23 2024-01-09 Micron Technology, Inc. Memory devices with cryptographic components
JP2020195134A (ja) * 2019-05-28 2020-12-03 新唐科技股▲ふん▼有限公司 メモリエラーを訂正するためのシステム及び方法
JP7160860B2 (ja) 2019-05-28 2022-10-25 新唐科技股▲ふん▼有限公司 メモリエラーを訂正するためのシステム及び方法

Similar Documents

Publication Publication Date Title
US10467091B2 (en) Memory module, memory system including the same, and error correcting method thereof
US8533557B2 (en) Device and method for error correction and protection against data corruption
US8713407B2 (en) Semiconductor memory system having ECC circuit and controlling method thereof
KR101919990B1 (ko) 데이터 처리 시스템 및 그것의 에러 정정 코드 처리 방법
US9946474B2 (en) Storing and accessing data
JP2013137708A (ja) メモリコントローラ、データ記憶装置およびメモリ制御方法
US9952924B2 (en) Memory device, server device, and memory control method
TWI690165B (zh) 數據完整性檢查的方法與積體電路
CN112867992A (zh) 检测地址错误的系统、方法及设备
US9734008B2 (en) Error vector readout from a memory device
WO2016013285A1 (ja) メモリコントローラおよびメモリコントローラの制御方法
KR101819152B1 (ko) 오류 정정 코드를 디코딩하기 위한 방법 및 이와 관련된 디코딩 회로
US9431132B2 (en) Data managing method, memory control circuit unit and memory storage apparatus
JPWO2007096997A1 (ja) メモリ制御装置およびメモリ制御方法
JP6568012B2 (ja) メモリ管理システム、方法、およびコンピュータ・プログラム
US8738989B2 (en) Method and apparatus for detecting free page and a method and apparatus for decoding error correction code using the method and apparatus for detecting free page
TWI566096B (zh) 資料儲存系統與其相關方法
JP2007200535A (ja) ポストビタビエラー訂正方法及びポストビタビ処理器
JP2014191372A (ja) 不揮発性記憶システム、不揮発性記憶装置、メモリコントローラ、および、プログラム
JP2013029882A (ja) メモリコントローラ、半導体記憶装置および復号方法
JP2007207325A (ja) 誤り訂正処理装置及び誤り訂正処理方法
JP2009295252A (ja) 半導体記憶装置及びそのエラー訂正方法
KR20090129626A (ko) 메모리 기반 저장 장치 및 그것의 블록 관리 기법
US11809272B2 (en) Error correction code offload for a serially-attached memory device
JP2005011386A (ja) 誤り訂正装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160302

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170214

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170801