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

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

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

<>
  • 特開-メモリシステム 図1
  • 特開-メモリシステム 図2
  • 特開-メモリシステム 図3
  • 特開-メモリシステム 図4
  • 特開-メモリシステム 図5
  • 特開-メモリシステム 図6
  • 特開-メモリシステム 図7
  • 特開-メモリシステム 図8
  • 特開-メモリシステム 図9
  • 特開-メモリシステム 図10
  • 特開-メモリシステム 図11
  • 特開-メモリシステム 図12
  • 特開-メモリシステム 図13
  • 特開-メモリシステム 図14
  • 特開-メモリシステム 図15
  • 特開-メモリシステム 図16
  • 特開-メモリシステム 図17
  • 特開-メモリシステム 図18
  • 特開-メモリシステム 図19
  • 特開-メモリシステム 図20
  • 特開-メモリシステム 図21
  • 特開-メモリシステム 図22
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022144469
(43)【公開日】2022-10-03
(54)【発明の名称】メモリシステム
(51)【国際特許分類】
   G06F 11/10 20060101AFI20220926BHJP
   G06F 21/60 20130101ALI20220926BHJP
【FI】
G06F11/10 604
G06F21/60 320
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2021045504
(22)【出願日】2021-03-19
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100103034
【弁理士】
【氏名又は名称】野河 信久
(74)【代理人】
【識別番号】100075672
【弁理士】
【氏名又は名称】峰 隆司
(74)【代理人】
【識別番号】100153051
【弁理士】
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100162570
【弁理士】
【氏名又は名称】金子 早苗
(72)【発明者】
【氏名】菅野 伸一
(57)【要約】
【課題】 より正確にデータを読み出せるメモリシステムを提供する。
【解決手段】 一実施形態によるメモリシステムは、メモリと、メモリコントローラとを含む。メモリコントローラは、第1データから第1誤り検出符号を生成し、第1誤り検出符号を含んだ第2データから第2誤り検出符号を生成するように構成された誤り検出符号回路を含む。メモリコントローラは、第1データ及び第2誤り検出符号を第1方法で変換して第3データを生成し、第3データをメモリに書き込む、ように構成されている。
【選択図】 図7

【特許請求の範囲】
【請求項1】
メモリと、
第1データから第1誤り検出符号を生成し、前記第1誤り検出符号を含んだ第2データから第2誤り検出符号を生成するように構成された誤り検出符号回路を含み、
前記第1データ及び前記第2誤り検出符号を第1方法で変換して第3データを生成し、
前記第3データを前記メモリに書き込む、
ように構成されたメモリコントローラと、
を備えるメモリシステム。
【請求項2】
前記メモリコントローラは、第3誤り検出符号が、前記第1誤り検出符号と一致する場合に、前記第2誤り検出符号を生成するようにさらに構成されている
請求項1に記載のメモリシステム。
【請求項3】
前記メモリコントローラは、前記第1データ及び前記第3誤り検出符号を前記メモリコントローラの外部から受け取るようにさらに構成されている、
請求項2に記載のメモリシステム。
【請求項4】
前記第3誤り検出符号は、前記第1データに基づく、
請求項3に記載のメモリシステム。
【請求項5】
前記第1データは、第1論理アドレスを付されており、
前記第2データは、前記第1誤り検出符号及び前記第1論理アドレスを含む、
請求項4に記載のメモリシステム。
【請求項6】
前記メモリコントローラは、
前記メモリに第4データの読出しを指示し、
前記第4データを、前記第1方法によって変換されたデータを復元する第2方法で変換して、第5データを生成し、
前記第5データから第4誤り検出符号を生成し、
前記第5データ及び前記第4誤り検出符号を出力する、
ようにさらに構成されている、
請求項1に記載のメモリシステム。
【請求項7】
前記メモリコントローラは、前記第1データの読出しを要求されると、前記第4データの読出しを前記メモリに指示するようにさらに構成されている、
請求項6に記載のメモリシステム。
【請求項8】
前記第1データは、第1論理アドレスを付されており、
前記メモリコントローラは、
前記第4誤り検出符号と第2論理アドレスを含んだ第6データから第5誤り検出符号を生成する、
ようにさらに構成されている、
請求項6に記載のメモリシステム。
【請求項9】
前記メモリコントローラは、
前記第5データを前記第2方法で変換して、第6誤り検出符号を生成し、
前記第5誤り検出符号と前記第6誤り検出符号が一致する場合、前記第5データ及び前記第4誤り検出符号を出力する、
ようにさらに構成されている、
請求項8に記載のメモリシステム。
【請求項10】
前記メモリコントローラは、
第1演算によって、前記第2データから前記第2誤り検出符号を生成し、
前記第1演算によって、前記第6データから前記第5誤り検出符号を生成する、
ようにさらに構成されている、
請求項8に記載のメモリシステム。
【請求項11】
前記メモリコントローラは、
前記メモリ中の、前記第1論理アドレスと関連付けられた第1物理アドレスの領域に前記第3データを書き込み、
前記第1データの読出しを要求されると、前記メモリ中の、前記第2論理アドレスと関連付けられた第2物理アドレスの領域からデータを読み出す、
ようにさらに構成されている、
請求項8に記載のメモリシステム。
【請求項12】
前記第1論理アドレスは、前記第2論理アドレスと同じであり、
前記第1物理アドレスは、前記第2物理アドレスと同じである、
請求項11に記載のメモリシステム。
【請求項13】
前記第1データは、第1論理アドレスを付されており、
前記第2データは、前記第1誤り検出符号及び前記第1論理アドレスを含み、
前記メモリコントローラは、
前記メモリに第4データの読出しを指示し、
前記第4データを、前記第1方法によって変換されたデータを復元する第2方法で変換して、前記第1データ及び第2論理アドレスを取得する、
ようにさらに構成されている、
請求項1に記載のメモリシステム。
【請求項14】
前記誤り検出符号回路は、
前記第1データから前記第1誤り検出符号を生成する第1回路と、
前記第2データから前記第2誤り検出符号を生成するように構成された第2回路と、
を含む、
請求項1に記載のメモリシステム。
【請求項15】
前記第1データは、第1論理アドレスを付されており、
前記メモリコントローラは、前記メモリ中の、前記第1論理アドレスと関連付けられた第1物理アドレスの領域に前記第3データを書き込むようにさらに構成されており、
前記第2データは、前記第1物理アドレス及び前記第1物理アドレスに固有の情報の少なくとも一方を含む第1情報を含む、
請求項1に記載のメモリシステム。
【請求項16】
前記メモリコントローラは、
前記第1データの読出しを要求されると、前記メモリ中の第2論理アドレスと関連付けられた第2物理アドレスの領域から第4データを読み出し、
前記第4データを、前記第1方法によって変換されたデータを復元する第2方法で変換して、第5データを生成し、
前記第5データから第4誤り検出符号を生成し、
前記第4誤り検出符号と第2論理アドレスを含んだ第6データから第5誤り検出符号を生成する、
ようにさらに構成されており、
前記第2データは、前記第1物理アドレス及び前記第1物理アドレスに固有の情報の少なくとも一方を含む第1情報を含み、
前記第6データは、前記第2物理アドレス及び前記第2物理アドレスに固有の情報の少なくとも一方を含む第2情報をさらに含む、
請求項15に記載のメモリシステム。
【請求項17】
前記第1物理アドレスに固有の情報は、前記第1物理アドレスの領域のデータが、第1時刻から消去された回数であり、
前記第2物理アドレスに固有の情報は、前記第2物理アドレスの領域のデータが、前記第1時刻から消去された回数である、
請求項16に記載のメモリシステム。
【請求項18】
前記第1論理アドレスは、前記第2論理アドレスと同じであり、
前記第1物理アドレスは、前記第2物理アドレスと同じである、
請求項16に記載のメモリシステム。
【請求項19】
メモリと、
第1データ及び前記第1データについての第1誤り検出符号を取得するように構成された誤り検出符号回路を含み、
前記第1データを第1方法で変換して第2データを生成し、
前記第2データの前記メモリへの書込みの完了までに前記第1誤り検出符号を前記メモリに書き込まない、
ように構成されたメモリコントローラと、
を備えるメモリシステム。
【請求項20】
前記メモリコントローラは、暗号化回路及び誤り訂正回路をさらに含み、
前記暗号化回路及び前記誤り訂正回路の組は、前記暗号化回路に供給されたデータを前記第1方法で変換するように構成されており、
前記第1データは前記暗号化回路に供給され、
前記第1誤り検出符号は前記暗号化回路に供給されない、
請求項19に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
実施形態は、概してメモリシステムに関する。
【背景技術】
【0002】
メモリと、メモリを制御するコントローラを含んだメモリシステムが知られている。メモリシステムは、ホスト装置からの指示に基づいてデータを記憶し、ホスト装置からの指示に基づいてデータを読み出す。メモリシステムは、メモリとして、NAND型フラッシュメモリを使用し得る。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許出願公開第2020/0192800号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
より正確にデータを読み出せるメモリシステムを提供しようとするものである。
【課題を解決するための手段】
【0005】
一実施形態によるメモリシステムは、メモリと、メモリコントローラとを含む。上記メモリコントローラは、第1データから第1誤り検出符号を生成し、上記第1誤り検出符号を含んだ第2データから第2誤り検出符号を生成するように構成された誤り検出符号回路を含む。メモリコントローラは、上記第1データ及び上記第2誤り検出符号を第1方法で変換して第3データを生成し、上記第3データを上記メモリに書き込む、ように構成されている。
【図面の簡単な説明】
【0006】
図1図1は、第1実施形態の情報処理システムの構成の例を示す。
図2図2は、第1実施形態のメモリコントローラのハードウェアによる構成を示す。
図3図3は、第1実施形態のメモリコントローラの機能ブロックによる構成を示す。
図4図4は、第1実施形態のCRC回路の構成の例を示す。
図5図5は、第1実施形態のアドレス変換テーブルの例を示す。
図6図6は、第1実施形態の消去回数テーブルの例を示す。
図7図7は、第1実施形態のメモリシステムでのホスト装置からのデータ書込み要求に基づくデータの流れを示す。
図8図8は、第1実施形態のメモリシステムでのデータ書込みの間に取得及び生成される幾つかのCRC値を示す。
図9図9は、第1実施形態のメモリシステムでのホスト装置からのデータ読出し要求に基づくデータの流れを示す。
図10図10は、第1実施形態のメモリシステムでのデータ書込みの間に取得及び生成される幾つかのCRC値を示す。
図11図11は、第1実施形態のメモリシステムでのデータコピーでのデータの流れを示す。
図12図12は、第1実施形態のメモリシステムでのデータコピーでのデータの流れを示す。
図13図13は、第1実施形態のメモリシステムでのデータコピーの間に取得及び生成される幾つかのCRC値を示す。
図14図14は、第1実施形態のメモリシステムでのデータコピーの間に取得及び生成される幾つかのCRC値を示す。
図15図15は、第2実施形態のメモリシステムでのホスト装置からのデータ書込み要求に基づくデータの流れを示す。
図16図16は、第2実施形態のメモリシステムでのデータ書込みの間に取得及び生成される幾つかのCRC値を示す。
図17図17は、第2実施形態のメモリシステムでのホスト装置からのデータ読出し要求に基づくデータの流れを示す。
図18図18は、第2実施形態のメモリシステムでのデータ書込みの間に取得及び生成される幾つかのCRC値を示す。
図19図19は、第2実施形態のメモリシステムでのデータコピーでのデータの流れを示す。
図20図20は、第2実施形態のメモリシステムでのデータコピーでのデータの流れを示す。
図21図21は、第2実施形態のメモリシステムでのデータコピーの間に取得及び生成される幾つかのCRC値を示す。
図22図22は、第2実施形態のメモリシステムでのデータコピーの間に取得及び生成される幾つかのCRC値を示す。
【発明を実施するための形態】
【0007】
以下に実施形態が図面を参照して記述される。以下の記述において、略同一の機能及び構成を有する構成要素は同一の参照符号を付され、繰返しの説明は省略される場合がある。略同一の機能及び構成を有する複数の構成要素が相互に区別されるために、参照符号の末尾にさらなる数字又は文字が付される場合がある。
【0008】
或る実施形態についての記述は全て、明示的に又は自明的に排除されない限り、別の実施形態の記述としても当てはまる。
【0009】
1.第1実施形態
1.1.構成
図1は、第1実施形態の情報処理システムの構成の例を示す。図1に示されるように、情報処理システムは、メモリシステム1、及びホスト装置2を含む。ホスト装置2の例は、パーソナルコンピュータ、携帯情報端末、及びサーバを含む。
【0010】
メモリシステム1は、ホスト装置2からデータの処理の命令を受け取り、受け取られた命令に基づいて、データの記憶、データの読出しを含む種々の処理を行う。ホスト装置2からの処理の命令は、以下、要求又はホスト要求と称される場合がある。メモリシステム1の例は、SSD(Solid State Drive)及び各種メモリカード等である。
【0011】
メモリシステム1は、メモリ5及びメモリコントローラ4を含む。メモリ5は、不揮発にデータを記憶する。メモリ5は、例えば半導体チップである。メモリ5は、複数の半導体チップを含んでいてもよい。メモリ5は、データが消去された領域、換言すると、データが書き込まれていない(未書き込みの)領域にのみデータを書き込む。メモリ5は、例えば、NAND型フラッシュメモリである。以下の記述は、メモリ5がNAND型フラッシュメモリである例に基づく。
【0012】
メモリ5は、メモリ5によって提供される記憶領域の全体のうち、或る大きさの領域ごとにデータを書き込む。データを書き込む単位は、以下、記憶単位と称される場合がある。メモリ5がNAND型フラッシュメモリである場合、記憶単位はページである。
【0013】
メモリ5は、メモリ5によって提供される記憶領域の全体のうち、或る大きさの領域ごとにデータを消去する。データを消去する単位は、以下、消去単位と称される場合がある。消去単位は、複数の記憶単位の集合である。メモリ5がNAND型フラッシュメモリである場合、消去単位はブロックであり、ブロックは複数のページの集合である。
【0014】
メモリコントローラ4は、ホスト装置2からの要求に示される処理を行うように、メモリ5を制御する。メモリコントローラ4はまた、要求に基づかずに、自律的にメモリ5を制御し得る。メモリコントローラ4は、例えば半導体チップである。メモリコントローラ4は、例えばSoC(System on a Chip)である。
【0015】
1.1.2.メモリコントローラの構成
図2は、第1実施形態のメモリコントローラのハードウェアによる構成を示す。図2に示されるように、メモリコントローラ4は、ホストインターフェース11、CPU(Central Processing Unit)12、ROM(Read Only Memory)13、RAM(Random Access Memory)14、誤り訂正回路15、CRC(Cyclic Redundancy Check)回路16、暗号化及び復号回路17、及びメモリインターフェース18を含む。ホストインターフェース11、CPU12、ROM13、RAM14、誤り訂正回路15、CRC回路16、暗号化及び復号回路17、及びメモリインターフェース18は、バスにより相互に接続されている。
【0016】
ホストインターフェース11は、ホスト装置2と通信するためのインターフェースであり、ハードウェア、又はハードウェアとソフトウェアの組合せからなることが可能である。
ホストインターフェース11は、或る通信規格に準拠しており、準拠している通信規格に則って、ホスト装置2と接続されているとともにホスト装置2と通信できる。すなわち、ホスト装置2及びホストインターフェース11はともに、或る通信規格に準拠しており、準拠する通信規格に従って通信するために、準拠する通信規格に従った通信を可能にするケーブルで接続されることが可能である。使用される通信規格は、少なくとも、ユーザデータ及び付帯データの伝送を定義する。ユーザデータは、情報処理システムのユーザによって記憶することを望まれるデータである。付帯データは、ユーザデータについての情報、及びユーザデータの記憶並びに読出しに使用されるデータを含む。付帯データの例は、タグデータ及びメタデータを含む。タグデータは、タグを伝送する。タグは、ユーザデータと関連付けられた補足的な情報である。メタデータは、ユーザデータについての情報である。使用される通信規格の例は、SATA(Serial Advanced Technology Attachment)、SAS(Serial Attached Small computer system interface)、及びNVMe(Non-Volatile Memory express)を含む。
【0017】
ROM13は、不揮発性のメモリである。ROM13の例は、EEPROM(登録商標)(Electrically Erasable Programmable Read Only Memory)を含む。ROM13は、例えば、ファームウェアを含むプログラムを記憶する。
【0018】
RAM14は、揮発性のメモリである。RAM14の例は、DRAM(Dynamic Random Access Memory)、及びSRAM(Static Random Access Memory)を含む。RAM14は、データを一時的に記憶する。RAM14は、バッファメモリ及び作業領域として機能できる。RAM14には、例えば、メモリシステム1が電源の供給を受けている間、ROM13に記憶されているプログラムがロードされる。
【0019】
CPU12は、プロセッサであり、メモリコントローラ4の全体の動作を制御する。ROM13に記憶されているとともにRAM14上にロードされたプログラムがCPU12によって実行されることによって、メモリコントローラ4は種々の動作を実行する。ファームウェアは、CPU12に、各実施形態として記述される動作を行わせることができるように構成されている。
【0020】
誤り訂正回路15は、独立した専用の半導体チップとして実現されていてもよいし、半導体基板に形成された回路であってもよいし、CPU12がファームウェアを実行することにより実現されてもよい。誤り訂正回路15は、誤り訂正符号(Error Correction Code, ECC)を使用して、メモリ5に書き込まれるデータ及びメモリ5から読み出されたデータの誤りの検出及び訂正を行う。誤り訂正回路15は、メモリ5に書き込まれるデータ(実書き込みデータ)から誤り訂正符号を生成する。誤り訂正符号の生成の方式に基づいて、実書込みデータに対して、この実書込みデータから生成された冗長データ(誤り訂正符号)が付加される。誤り訂正回路15は、誤り訂正回路15が受け取ったデータの或る大きさの部分ごとに誤り訂正符号を生成する。実書込みデータと、この実書込みデータから生成された誤り訂正符号は、メモリ5に書き込まれる。誤り訂正回路15は、誤り訂正符号を使用して、メモリ5から読み出されたデータの中の誤りを検出し、誤りが検出された場合に誤りの訂正を試みる。
【0021】
CRC回路16は、例えば、独立した専用の半導体チップとして実現されていてもよいし、半導体基板に形成された回路であってもよいし、CPU12がファームウェアを実行することにより実現されてもよい。CRC回路16は、CPU12がファームウェアを実行することにより実現されてもよい。CRC回路は、巡回冗長検査(Cyclic Redundancy Check)及び生成多項式を使用して、メモリシステム1とホスト装置2との間で送受信されるデータの誤りを検出する。CRC回路16は、受け取られたデータを予め定められた1以上の生成多項式で除することにより、検査データを生成する。検査データは、生成多項式による除算により得られる余りである。
【0022】
CRC回路16は、CRC回路16によって受け取られた或る第1データの値の生成多項式による除算の途中で得られる第1検査データと、CRC回路16によって受け取られる別の第2データが連結(結合)されたデータの値の生成多項式による除算を行って第2検査データを生成できる。第1データから第1検査データを生成することは、以下、プリCRC演算と称される場合がある。第2データから第2検査データを生成することは、以下、ポストCRC演算と称される場合がある。
【0023】
暗号化及び復号回路17は、独立した専用の半導体チップとして実現されていてもよいし、半導体基板に形成された回路であってもよいし、CPU12がファームウェアを実行することにより実現されてもよい。暗号化及び復号回路17は、鍵(暗号鍵)を使用して、メモリ5に書き込まれるデータを暗号化する。暗号化及び復号回路17は、鍵(復号鍵)を使用して、メモリ5から読み出されたデータを復号する。暗号化はスクランブル処理を含み得、復号はデスクランブルを含み得る。
【0024】
メモリインターフェース18は、メモリ5と通信するためのインターフェースであり、ハードウェア、又はハードウェアとソフトウェアの組合せからなることが可能である。メモリインターフェース18は、メモリ5の形式に基づく方式で、メモリ5と通信できる。メモリインターフェース18は、メモリ5の形式に基づく方式での通信ができるように、メモリ5の形式に基づく方式の通信を可能にするための配線によってメモリ5と接続されている。メモリ5がNAND型フラッシュメモリである例に基づくと、メモリインターフェース18は、NANDインターフェースであり、NANDインターフェースに従って信号を送信及び受信する。
【0025】
1.1.2.1.メモリコントローラの機能ブロックによる構成
図3は、第1実施形態のメモリコントローラ4の機能ブロックによる構成を示す。各機能ブロックは、明示的に又は自明的に排除されたり、明示的に特定されていない限り、ハードウェア、コンピュータソフトウェアのいずれか又は両者を組み合わせたものとして実現されることが可能である。また、各機能ブロックが、以下の例のように区別されていることは必須ではない。例えば、一部の機能が例示の機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示の機能ブロックがさらに細かい機能サブブロックに分割されていてもよい。
【0026】
図3に示されるように、メモリコントローラ4は、ホストインターフェース11、CRC回路16、誤り訂正回路15、暗号化及び復号回路17、メモリインターフェース18、アドレス変換部21、消去回数参照部22、及び鍵生成部23を含む。
【0027】
アドレス変換部21、消去回数参照部22、及び鍵生成部23は、ROM13に記憶されているとともにRAM14上にロードされたプログラムがCPU12によって実行されることによって、また、RAM14の一部によって、実現されることが可能である。
【0028】
アドレス変換部21は、以下に記述されるように、メモリシステム1での論理アドレスと物理アドレスの対応を管理する。
【0029】
ホスト装置2は、メモリシステム1により提供される記憶空間を複数の論理領域へと分割し、各論理領域に固有の論理アドレスを付し、論理アドレスを使用してメモリシステム1の記憶空間を管理する。ホスト装置2は、書込み対象のデータを或る論理領域に記憶すると決定すると、決定された論理アドレスを書込み対象データに割り当てる。そして、ホスト装置2は、論理アドレスによって特定される論理領域への書込み対象データの書込みをメモリシステム1に要求する。
【0030】
一方、メモリコントローラ4は、論理アドレスとは異なるアドレス体系を使用してメモリ5の記憶空間を管理する。すなわち、メモリ5により提供される記憶領域は、論理アドレスとは異なる体系でアドレスを付されている。メモリ5の中の記憶領域を特定するアドレスは、物理アドレスと称される。メモリコントローラ4は、物理アドレスを使用して、メモリ5にデータを書き込み、メモリ5からデータを読み出す。
【0031】
アドレス変換部21は、論理アドレスと物理アドレスの対応を管理する。物理アドレスとして、任意の単位が使用されることが可能である。メモリ5がNAND型フラッシュメモリである場合、物理アドレスとして、ブロックのアドレス(ブロックを一意に特定するする情報)が使用されることが可能である。
【0032】
消去回数参照部22は、各消去単位(ブロック)ごとに、その消去単位中のデータが消去された回数を管理する。消去回数は、メモリシステム1がリセット又は初期化されない限り、過去に達した値に戻らない。消去回数は、例えば、メモリシステム1が最初に電源を受けてオンしたときから、メモリシステム1がリセット又は初期化されるまでの消去回数であることが可能である。
【0033】
鍵生成部23は、暗号鍵及び復号鍵を生成する。鍵生成部23は、少なくとも物理アドレスを用いて、暗号鍵及び復号鍵を生成することができる。
【0034】
1.1.2.2.CRC回路
図4は、第1実施形態のCRC回路16の構成の例を示す。
【0035】
上記のように、CRC回路16は、プリCRC演算とポストCRC演算を行う。
【0036】
図4に示されるように、CRC回路16は、2つのサブCRC回路を含む。第1のサブCRC回路は、プリCRC回路16Aと称され、プリCRC演算に使用される。第2のサブCRC回路は、ポストCRC回路16Bと称され、ポストCRC演算に使用される。
【0037】
プリCRC回路16Aは、プリCRC回路16Aの外部から第1CRC入力データCRI1を受け取る。プリCRC回路16Aは、第1CRC入力データCRI1を、第1生成多項式で除する。除算により、余りが得られる。プリCRC回路16Aは、除算による余りを第1検査データSCD1として取得する。
【0038】
プリCRC回路16Aは、プリCRC回路16Aの外部から第2CRC入力データCRI2を受け取る。プリCRC回路16Aは、第1検査データSCD1の値と、第2CRC入力データCRI2の値を比較する。プリCRC回路16Aは、第1検査データSCD1の値と、第2CRC入力データCRI2の値が一致している場合、その旨を示す信号SRC1を出力する。プリCRC回路16Aは、第1検査データSCD1の値と、第2CRC入力データCRI2の値が一致していない場合、その旨を示す信号SRC1を出力する。
【0039】
プリCRC回路16Aは、第1検査データSCD1を出力する。第1検査データSCD1は、ポストCRC回路16Bにより受け取られる。ポストCRC回路16Bは、ポストCRC回路16Bの外部から第3CRC入力データCRI3を受け取る。ポストCRC回路16Bは、第1検査データSCD1と第3CRC入力データCRI3を連結して、第4CRC入力データCRI4を取得する。ポストCRC回路16Bは、第4CRC入力データCRI4の値を第2生成多項式で除する。第2生成多項式は、第1生成多項式と、同じであってもよいし、異なっていてもよい。除算により、余りが得られる。ポストCRC回路16Bは、除算による余りを第2検査データSCD2として取得する。ポストCRC回路16Bは、第2検査データSCD2を、実行中の処理に基いて、出力する場合がある。
【0040】
ポストCRC回路16Bは、ポストCRC回路16Bの外部から第5CRC入力データCRI5を受け取る。ポストCRC回路16Bは、第2検査データSCD2の値と、第5CRC入力データCRI5の値を比較する。ポストCRC回路16Bは、第2検査データSCD2の値と、第5CRC入力データCRI5の値が一致している場合、その旨を示す信号SRC2を出力する。ポストCRC回路16Bは、第2検査データSCD2の値と、第5CRC入力データCRI5の値が一致していない場合、その旨を示す信号SRC2を出力する。
【0041】
1.2.動作
1.2.1.RAMによるテーブルの保持
第1実施形態のメモリコントローラは、メモリシステム1が電源の供給を受けてオンしている間、例えば、RAM14によって、幾つかのテーブルを記憶している。テーブルは、アドレス変換テーブル31及び消去回数テーブル32を含む。アドレス変換テーブル31は、アドレス変換部21において記憶される。消去回数テーブル32は、消去回数参照部22において記憶される。
【0042】
図5は、第1実施形態のアドレス変換テーブル31の例を示す。アドレス変換テーブル31は、図5に示されるように互いに関連付けられたデータの複数の組を含んでいる。アドレス変換テーブル31は、複数のエントリを有する。各エントリは、論理アドレス、及びこの論理アドレスに関連付けられた物理アドレスを含む。
【0043】
或るエントリに含まれる物理アドレスは、メモリ5の記憶領域のうち、このエントリに含まれる論理アドレスを付されたデータを記憶している領域を特定する。
【0044】
図6は、第1実施形態の消去回数テーブル32の例を示す。消去回数テーブル32は、図6に示されるように互いに関連付けられたデータの複数の組を含んでいる。消去回数テーブル32は、複数のエントリを有する。各エントリは、消去単位(ブロック)を特定する物理アドレス、及びこの物理アドレスによって特定されるブロックについての消去回数を含む。
【0045】
1.2.2.メモリでのデータを扱う処理
1.2.2.1.データ書込み
メモリコントローラ4が或る論理アドレスを付されたデータの書込みの要求をホスト装置2から受け取ると、メモリコントローラ4は、メモリ5中のデータが未書込みの領域の中から、この書込み要求の対象のデータ(書込み要求対象データ)が書き込まれる領域を決定する。そして、メモリコントローラ4は、アドレス変換テーブル31中の書込み要求対象データの論理アドレスについてのエントリ中に、決定された書込み先の領域を特定する物理アドレスを書き込む。書込み要求対象データは、後に詳述されるように、書込み要求対象データに付帯する管理データとともに暗号化され、且つ誤り訂正符号を付される。暗号化されたデータは、この暗号化されたデータから生成された誤り訂正符号とともにメモリ5に書き込まれる。
【0046】
メモリコントローラ4は、暗号化されたデータ及び誤り訂正符号を、決定した物理アドレスによって特定される領域に書き込むことをメモリ5に指示する。
【0047】
1.2.2.2.データ読出し
メモリコントローラ4が或る論理アドレスを付されたデータの読出しの要求をホスト装置2から受け取ると、メモリコントローラ4は、アドレス変換テーブル31を参照して、この読出し要求の対象のデータ(読出し要求対象データ)の論理アドレスと関連付けられている(対応する)物理アドレスを知る。メモリコントローラ4は、得られた物理アドレスによって特定される領域からのデータの読出しをメモリ5に指示し、メモリ5から読み出されたデータを取得する。メモリコントローラ4は、メモリ5から読み出されたデータの誤りを検出し、誤りが検出される場合に誤りを訂正し、誤り訂正されたデータを復号して、読出し要求対象データを生成する。読出し要求対象データは、ホスト装置2に送信される。
【0048】
1.2.2.3.データ消去
メモリコントローラ4が或る論理アドレスを付されたデータの消去の要求をホスト装置2から受け取ると、メモリコントローラ4は、アドレス変換テーブル31中で、この消去要求の対象のデータ(消去要求対象データ)の論理アドレスと関連付けられた物理アドレスを消去する(無効にする)。また、メモリコントローラ4は、消去回数テーブル32中の消去要求対象データの論理アドレスと関連付けられた物理アドレスについての消去回数を1インクリメントする。
【0049】
メモリコントローラ4は、消去要求の受信後すぐに、消去要求対象データの論理アドレスと関連付けられた物理アドレスによって特定される領域のデータをメモリ5から消去してもよいし、後の何らかのタイミングで消去してもよい。消去のタイミングは、メモリコントローラ4の設計(メモリコントローラ4を制御するプログラム)に依存する。すぐの消去が行われない場合、消去要求対象データは、論理アドレスとの関連付けを解除されているため、ホスト装置2からアクセスされることはできないが、メモリ5の中に存在している。以下、論理アドレスとの関連付けが解除されているとともにメモリ5中に存在しているデータは、無効データと称される場合がある。一方。論理アドレスとの関連付けがなされているとともにメモリ5において記憶されているデータは、有効データと称される場合がある。
【0050】
1.2.2.4.データ更新
上記のように、メモリ5は、未書込みの領域にデータを書き込むことが可能であり、よって、データを上書きすることができない。一方、メモリシステム1がホスト装置2から、データの上書きの要求、すなわち、或る論理アドレスを付されたデータがメモリ5に記憶されている状態で、この論理アドレスを付された別のデータ(以下、更新データと称される場合がある)を書き込む要求を受け取る場合がある。この場合、メモリコントローラ4は、メモリ5の特徴に合わせた命令をメモリ5に送信することによって、上書き要求をメモリシステム1において間接的に実行する。具体的には、メモリコントローラ4は、更新データを、或る物理アドレスを有するとともに未書込みの領域に書き込む。次いで、メモリコントローラ4は、アドレス変換テーブル31を、上書きの対象の論理アドレスと関連付けられた物理アドレスを、更新データが書き込まれた領域の物理アドレスで更新する。更新前のデータは、更新の後、消去される。消去のタイミングは、データの消去要求に基づく消去と同じく、更新の直後とは限らず、メモリコントローラ4の設計に依存する。
【0051】
1.2.3.書込み要求に基づく動作
図7は、第1実施形態のメモリシステム1でのホスト装置2からのデータ書込み要求に基づくデータの流れを示す。より具体的には、図7は、書込み要求に基づいて受信されるデータ、及び受信されたデータの変化並びにその流れを示す。図7に示される状態は、メモリシステム1がホスト装置2からデータの書込み要求を示すコマンド(書込み要求コマンド)、書込み要求対象データ、及び書込み要求対象データに関連するデータを受け取ると、生じる。
【0052】
図7に示されるように、メモリシステム1は、ホスト装置2から、書込み要求コマンド(図示せず)、書込み要求対象データRDw、書込みタグデータTDw、及び書込みメタデータMDwを受け取る。書込み要求コマンドは、書込み要求対象データRDwの論理アドレスを含む。以下、書込み要求対象データRDwの論理アドレスは、供給書込み対象論理アドレスLAwgと称される場合がある。
【0053】
供給書込み対象論理アドレスLAwgは、書込みタグデータTDwによって伝送される。
【0054】
書込みメタデータMDwは、書込み要求対象データRDwから第1生成多項式に基づくCRC演算によって得られる余りを伝送する。以下、CRC演算によって得られる余りは、CRC値と称される場合がある。ホスト装置2によって書込み要求対象データRDwから演算されるとともにメモリシステム1に供給されるCRC値は、供給CRC値VTCと称される場合がある。書込みメタデータMDwのうち、供給CRC値VTCを除く部分は、以下、書込み残余メタデータRMwと称される場合がある。供給CRC値VTC及び書込み残余メタデータRMwは別々に送信されてもよい。そのような送信の形態は、ホスト装置2及びホストインターフェース11がNVMeに準拠している場合を含む。NVMeでは、供給CRC値VTCは、PI(Protect Information)に相当する。
【0055】
書込み要求コマンド、書込み要求対象データRDw、書込みタグデータTDw、及び書込みメタデータMDwは、ホストインターフェース11によって受け取られ、その後、CPU12の制御によって、これらのデータに関連する要素へとバスを介して転送される。
【0056】
プリCRC回路16Aは、書込み要求対象データRDwを受け取る。書込み要求対象データRDwは、図4を参照して記述される第1CRC入力データCRI1に相当する。プリCRC回路16Aは、書込み要求対象データRDwの値に対する第1生成多項式を用いたCRC演算による余りを生成する。すなわち、プリCRC回路16Aは、書込み要求対象データRDwの値に対してプリCRC演算を行う。プリCRC演算により得られる余りは、図4を参照して記述される第1検査データSCD1に相当する。以下、プリCRC演算によって得られる余りは、プリCRC値と称される場合がある。また、書込み要求対象データRDwから得られるプリCRC値は、取得プリCRC値VRCgと称される場合がある。取得プリCRC値VRCgは、図4を参照して記述される第1検査データSCD1に相当する。
【0057】
プリCRC回路16Aは、供給CRC値VTCを受け取る。供給CRC値VTCは、図4を参照して記述される第2CRC入力データCRI2に相当する。プリCRC回路16Aは、取得プリCRC値VRCgと供給CRC値VTCを比較する。プリCRC回路16Aは、取得プリCRC値VRCgと供給CRC値VTCが不一致の場合、ホストインターフェース11を介して、エラーを示す信号SRC1を、ホスト装置2に送信する。エラーを示す信号SRC1が送信される場合、実行中の書込み要求に応じた処理は終了する。その場合、例えば、ホスト装置2は、エラーと判断された書込み要求及び関連するデータをメモリシステム1に再送することができる。
【0058】
取得プリCRC値VRCgと供給CRC値VTCが一致している場合、プリCRC回路16Aは、取得プリCRC値VRCgを、ポストCRC回路16Bに送信する。取得プリCRC値VRCgは、供給CRC値VTCと同じであるため、供給CRC値VTCが送信されてもよい。
【0059】
供給書込み対象論理アドレスLAwgは、アドレス変換部21によって受け取られる。アドレス変換部21は、メモリ5の中で書込み要求対象データRDwを書き込むブロックを決定する。アドレス変換部21は、決定されたブロックの物理アドレスを、アドレス変換テーブル31中の供給書込み対象論理アドレスLAwgのエントリに書き込む。書込み要求対象データRDwが書き込まれるブロックは、以下、取得書込み対象物理アドレスPAwgと称される場合がある。
【0060】
鍵生成部23は、鍵(暗号鍵)を生成する。鍵生成部23は、鍵の生成に、例えば、取得書込み対象物理アドレスPAwgを用いることができる。
【0061】
ポストCRC回路16Bは、書込みタグデータTDwに含まれる供給書込み対象論理アドレスLAwgを受け取る。ポストCRC回路16Bはさらに、取得プリCRC値VRCg、及び書込み残余メタデータRMwを受け取る。供給書込み対象論理アドレスLAwg及び書込み残余メタデータRMwの組は、図4を参照して記述される第3CRC入力データCRI3に相当する。
【0062】
ポストCRC回路16Bは、受け取った供給書込み対象論理アドレスLAwg、取得プリCRC値VRCg、及び書込み残余メタデータRMwを連結する。連結により形成されるビット列は、以下、書込みポストCRC入力データWSCIと称される場合がある。書込みポストCRC入力データWSCIは、図4を参照して記述される第4CRC入力データCRI4に相当する。ポストCRC回路16Bは、書込みポストCRC入力データWSCIの値に対する第2生成多項式を用いたCRC演算による余りを生成する。すなわち、ポストCRC回路16Bは、書込みポストCRC入力データWSCIの値に対してポストCRC演算を行う。ポストCRC演算により得られる余りは、図4を参照して記述される第2検査データSCD2に相当する。以下、ポストCRC演算によって得られる余りは、ポストCRC値と称される場合がある。また、書込み要求対象データRDwから得られるポストCRC値は、書込みポストCRC値VSCwと称される場合がある。
【0063】
暗号化及び復号回路17は、暗号鍵、書込みタグデータTDw中の供給書込み対象論理アドレスLAwg、書込み要求対象データRDw、書込み残余メタデータRMw、及び書込みポストCRC値VSCwを受け取る。暗号化及び復号回路17は、書込みタグデータTDw中の供給書込み対象論理アドレスLAwg、書込み要求対象データRDw、書込み残余メタデータRMw、及び書込みポストCRC値VSCwを暗号鍵に基づいて暗号化する。暗号化により書込みデータNDwが得られる。書込みデータNDwは、誤り訂正回路15に供給される。
【0064】
誤り訂正回路15は、書込みデータNDwの誤り訂正符号を生成する。書込みデータNDwの誤り訂正符号は、以下、書込み誤り訂正符号ECCwと称される場合がある。
【0065】
書込みデータNDw及び書込み誤り訂正符号ECCwは、メモリインターフェース18によって受け取られる。メモリインターフェース18は、メモリ5の記憶領域のうちの取得書込み対象物理アドレスPAwgによって特定される領域に、書込みデータNDw及び書込み誤り訂正符号ECCwを書き込む。すなわち、メモリインターフェース18は、書込みデータNDw及び書込み誤り訂正符号ECCw、並びに書込みデータNDw及び書込み誤り訂正符号)ECCwを取得書込み対象物理アドレスPAwgによって特定される領域に書き込むことを指示する書込みコマンドセットをメモリ5に供給する。
【0066】
メモリ5は、書込みデータNDw及び書込み誤り訂正符号ECCw、並びに書込みコマンドセットを受け取ると、取得書込み対象物理アドレスPAwgに書込みデータNDwを書き込む。
【0067】
1.2.3.1.書込み要求に基づいて取得及び生成されるCRC値
図8は、第1実施形態のメモリシステム1でのデータ書込みの間に取得及び生成される幾つかのCRC値を示す。
【0068】
図7を参照して記述されるとともに図8に示されるように、書込み要求対象データRDwの値が第1生成多項式で除されることにより、すなわち、プリCRC演算により、取得プリCRC値VRCgが生成される。
【0069】
ポストCRC回路16Bにおいて、取得プリCRC値VRCgが、供給書込み対象論理アドレスLAwg及び書込み残余メタデータRMwと連結されることにより、書込みポストCRC入力データWSCIが生成される。書込みポストCRC入力データWSCIでの取得プリCRC値VRCg、供給書込み対象論理アドレスLAwg、及び書込み残余メタデータRMwは、いずれの連結に亘っても固定されていれば、どのような順序であってもよい。
【0070】
書込みポストCRC入力データWSCIの値が第2生成多項式で除されることにより、すなわち、ポストCRC演算により、書込みポストCRC値VSCwが生成される。書込みポストCRC値VSCwは、書込みポストCRC入力データWSCIを被除数として生成され、書込みポストCRC入力データWSCIは、取得プリCRC値VRCg、及び供給書込み対象論理アドレスLAwgを含む。このため、書込みポストCRC値VSCwは、取得プリCRC値VRCg、及び供給書込み対象論理アドレスLAwgを反映している。
【0071】
書込みポストCRC値VSCwは、暗号化及び復号回路17に供給される。一方、取得プリCRC値VRCg及び供給CRC値VTCは、暗号化及び復号回路17に供給されない。よって、取得プリCRC値VRCg及び供給CRC値VTCは、書込みデータNDwには含まれず、メモリ5に書き込まれない。
【0072】
1.2.4.読出し要求に基づく動作
図9は、第1実施形態のメモリシステム1でのホスト装置からのデータ読出し要求に基づくデータの流れを示す。より具体的には、図9は、読出し要求に基づいて受信されるデータ、及び受信されたデータの変化並びにその流れを示す。図9に示される状態は、メモリシステム1がホスト装置2からデータ読出し要求を示すコマンド(読出し要求コマンド)を受け取ると、生じる。
【0073】
読出し要求コマンドは、読出し要求対象データRDrの論理アドレスを含む。以下、読出し要求対象データRDrの論理アドレスは、供給読出し対象論理アドレスLArgと称される場合がある。以下の記述は、供給読出し対象論理アドレスLArgは、読出し要求対象データRDrが書き込まれたときの供給書込み対象論理アドレスLAwgと同じである例に基づく。
【0074】
図9に示されるように、読出し要求対象データRDrの論理アドレスは、アドレス変換部21によって受け取られる。アドレス変換部21は、アドレス変換テーブル31を参照して、供給読出し対象論理アドレスLArgと関連付けられた物理アドレスを知る。供給読出し対象論理アドレスLArgと関連付けられた物理アドレスは、以下、取得読出し対象物理アドレスPArgと称される場合がある。取得読出し対象物理アドレスPArgは、データ読出し要求の受信から取得読出し対象物理アドレスPArgの取得までに何らかの意図されないエラーが生じない限り、取得書込み対象物理アドレスPAwgと同じである。
【0075】
鍵生成部23は、鍵(復号鍵)を生成する。鍵生成部23は、鍵の生成に、例えば、取得読出し対象物理アドレスPArgを用いることができる。
【0076】
メモリインターフェース18は、メモリ5の記憶領域のうちの取得読出し対象物理アドレスPArgによって特定される領域からデータを読み出す。すなわち、メモリインターフェース18は、取得読出し対象物理アドレスPArgによって特定される領域からデータを読み出すことを指示する読出しコマンドセットをメモリ5に供給する。
【0077】
メモリ5は、読出しコマンドセットを受け取ると、取得読出し対象物理アドレスPArgによって特定される領域からデータを読み出して、読出しデータNDr及び読出し誤り訂正符号ECCrを取得する。読出しデータNDr及び読出し誤り訂正符号ECCrは、データ読出し要求の受信から読出しデータNDr及び読出し誤り訂正符号ECCrの取得までに何らかの意図されないエラーが生じていない限り、読出しデータNDrが読み出された物理アドレスによって特定される領域に書き込まれた書込みデータNDw及び対応する書込み誤り訂正符号ECCwと同じである。
【0078】
読出しデータNDr及び読出し誤り訂正符号ECCrは、誤り訂正回路15によって受け取られる。誤り訂正回路15は、読出し誤り訂正符号ECCrを使用して、読出しデータNDrの誤りを検出するとともに誤りが含まれる場合に誤りを訂正する。読出しデータNDrが誤りを含まない場合、誤り訂正回路15は、受け取られた読出しデータNDrを出力する。読出しデータNDrに誤りが含まれる場合で誤りが訂正された場合、誤り訂正回路15は、誤りを含まない読出しデータNDrを出力する。
【0079】
読出しデータNDrは、暗号化及び復号回路17によって受け取られる。暗号化及び復号回路17は、鍵生成部23から復号鍵を受け取る。暗号化及び復号回路17は、復号鍵に基づいて、読出しデータNDrを復号する。復号が成功すると、読出し要求対象データRDr、読出し論理アドレスLAr、読出し残余メタデータRMr、及び読出しポストCRC値VSCrが得られる。読出し要求対象データRDr、読出し論理アドレスLAr、読出し残余メタデータRMr、及び読出しポストCRC値VSCrは、データ読出し要求の受信から復号の終了までに意図されないエラーが生じていない限り、それぞれ、読出し要求対象データRDrの論理アドレスを付された書込み要求対象データRDw、供給読出し対象論理アドレスLArg(及び供給書込み対象論理アドレスLAwg)、書込み残余メタデータRMw、及び書込みポストCRC値VSCwと同じである。
【0080】
読出し要求対象データRDrは、プリCRC回路16Aにより受け取られる。読出し要求対象データRDrは、図4を参照して記述される第1CRC入力データCRI1に相当する。プリCRC回路16Aは、読出し要求対象データRDrを第1生成多項式で除することにより、プリCRC値を生成する。生成されたプリCRC値は、復元プリCRC値VRCpと称される。復元プリCRC値VRCpは、図4を参照して記述される第1検査データSCD1に相当する。復元プリCRC値VRCpは、データ読出し要求の受信から復元プリCRC値VRCpの取得までに意図されないエラーが生じていない限り、供給CRC値VTCと同じである。CRC演算は、2つの同じ値を有する2つのビット列がいずれも或る1つの生成多項式で除される場合、同じCRC値を算出する。このため、データ読出し要求の受信から復元プリCRC値VRCpの取得までに意図されないエラーが生じていない限り、復元プリCRC値VRCpは、供給CRC値VTC又は取得プリCRC値VRCgと同じである。
【0081】
復元プリCRC値VRCpは、ポストCRC回路16Bによって受け取られる。ポストCRC回路16Bはまた、供給読出し対象論理アドレスLArg、及び読出し残余メタデータRMrを受け取る。供給読出し対象論理アドレスLArg及び読出し残余メタデータRMrの組は、図4を参照して記述される第3CRC入力データCRI3に相当する。ポストCRC回路16Bは、復元プリCRC値VRCp、供給読出し対象論理アドレスLArg、及び読出し残余メタデータRMrを連結することにより、読出しポストCRC入力データRSCIを取得する。読出しポストCRC入力データRSCIは、図4を参照して記述される第4CRC入力データCRI4に相当する。ポストCRC回路16Bは、読出しポストCRC入力データRSCIの値を第2生成多項式で除することによりポストCRC値を生成する。生成されるポストCRC値は、取得ポストCRC値VSCgと称される。取得ポストCRC値VSCgは、図4を参照して記述される第2検査データSCD2に相当する。
【0082】
ポストCRC回路16Bは、読出しポストCRC値VSCrを受け取る。読出しポストCRC値VSCrは、図4を参照して記述される第5CRC入力データCRI5に相当する。ポストCRC回路16Bは、取得ポストCRC値VSCgと読出しポストCRC値VSCrを比較する。データ読出し要求の受信から取得ポストCRC値VSCgの取得までに意図されないエラーが生じていない限り、取得ポストCRC値VSCgは、読出しポストCRC値VSCrと同じである。さらに、データ書込み要求の受信から取得ポストCRC値VSCgの取得までに意図されないエラーが生じていない限り、取得ポストCRC値VSCgは、書込みポストCRC値VSCwと同じである。取得ポストCRC値VSCgが読出しポストCRC値VSCrと一致していない場合、ポストCRC回路16Bは、ホストインターフェース11を介して、エラーを示す信号SRC2を、ホスト装置2に送信する。エラーを示す信号SRC2が送信される場合、実行中の読出し要求に応じた処理は終了する。
【0083】
取得ポストCRC値VSCgが読出しポストCRC値VSCrと一致している場合、ポストCRC回路16Bは、検査パスの旨の信号SRC2をホストインターフェース11に送信する。
【0084】
ホストインターフェース11は、検査パスの旨の信号SRC2を受け取ると、以下に記述されるデータをホスト装置2に送信する。ホストインターフェース11は、読出し要求対象データRDrをホスト装置2に送信する。ホストインターフェース11は、読出し論理アドレスLArを読出しタグデータTDrとしてホスト装置2に送信する。ホストインターフェース11は、復元プリCRC値VRCpと読出し残余メタデータRMrを連結して読出しメタデータMDrを生成し、読出しメタデータMDrをホスト装置2に送信する。
【0085】
1.2.4.1.読出し要求に基づいて取得及び生成されるCRC値
図10は、第1実施形態のメモリシステム1でのデータ読出しの間に取得及び生成される幾つかのCRC値を示す。
【0086】
図9を参照して記述されるとともに図10に示されるように、読出し要求対象データRDrの値が第1生成多項式で除されることにより、すなわち、プリCRC演算により、復元プリCRC値VRCpが生成される。
【0087】
ポストCRC回路16Bにおいて、復元プリCRC値VRCpが、供給読出し対象論理アドレスLArg及び読出し残余メタデータRMrと連結されることにより、読出しポストCRC入力データRSCIが生成される。読出しポストCRC入力データRSCIでの連結される要素の順序は、書込みポストCRC入力データWSCIでの対応する要素の順序と一致していれば、どのような順序であってもよい。すなわち、復元プリCRC値VRCp、供給読出し対象論理アドレスLArg、及び読出し残余メタデータRMrは、それぞれ、書込みポストCRC入力データWSCIでの取得プリCRC値VRCg、供給書込み対象論理アドレスLAwg、及び書込み残余メタデータRMwに対応する。このことに基づいて、読出しポストCRC入力データRSCIでの復元プリCRC値VRCpの順位は、書込みポストCRC入力データWSCIでの取得プリCRC値VRCgの順位と同じである。読出しポストCRC入力データRSCIでの供給読出し対象論理アドレスLArgの順位は、書込みポストCRC入力データWSCIでの供給書込み対象論理アドレスLAwgの順位と同じである。読出しポストCRC入力データRSCIでの読出し残余メタデータRMrの順位は、書込みポストCRC入力データWSCIでの書込み残余メタデータRMwの順位と同じである。
【0088】
読出しポストCRC入力データRSCIの値が第2生成多項式で除されることにより、すなわち、ポストCRC演算により、取得ポストCRC値VSCgが生成される。
【0089】
1.2.5.データコピー
上記のように、メモリシステム1は、ホスト装置2からの要求を受けなくとも自律的に動作し得る。そのような動作は、ガベージコレクションを含む。ガベージコレクションは、メモリ5中での断片化を解消するための処理を指す。メモリコントローラ4は、有効データと無効データを含んでいる消去単位(ブロック)に対してガベージコレクションを行い得る。ガベージコレクションにより、有効データのみが、未書込みのブロックに書き込まれる。具体的には、以下の通りである。メモリコントローラ4は、ガベージコレクションの対象のブロックの物理アドレス中の有効データをメモリ5から読み出す。メモリコントローラ4は、得られた読出しデータについて、読出し要求に基づくデータ読出しと同様にポストCRC値の取得及び比較を行うことを経て、書込みデータを生成し直す。得られた書込みデータに含まれるユーザデータは、ガベージコレクションの対象の有効データに含まれているユーザデータと同じである。メモリコントローラ4は、得られた書込みデータを、メモリ5に書き込む。
【0090】
ガベージコレクションは、メモリ5の或る領域からのデータの読出しと、読み出されたデータをメモリ5の、読出された領域とは別の領域に書き込むことを含む。このデータ読出しとデータ書込みは、図9を参照して記述される読出し要求に基づくデータ書込み及び図7を参照して記述される書込み要求に基づくデータ書込みに類似する。ガベージコレクションでは、或る論理アドレスのデータの更新(上書き)は生じない。代わりに、或る論理アドレスを付されたデータを記憶している領域の物理アドレスが変わり得る。このため、データ書込み及びデータ読出しがホスト装置2の要求に基づかない。この点において、データ読出し及びデータ書込みは、ホスト装置2からの要求に基づく場合と、ガベージコレクションで行われる場合とで異なる。よって、ガベージコレクションでのデータ読出しでは、供給読出し対象論理アドレスLArgが存在しない。
【0091】
図11及び図12は、第1実施形態のメモリシステム1でのデータコピーでのデータの流れを示す。より具体的には、図11及び図12は、ホスト要求を伴わないデータコピーにおいて取得されるデータ、及び取得されたデータの変化並びにその流れを示す。図12は、図11の状態に後続する状態を示す。図11に示される状態は、メモリシステム1がメモリ5でのデータのコピー(移動)を行うことを決定し、そのためにコピーの起点である取得読出し対象物理アドレスPArgによって特定される領域からデータを読み出すことを指示する読出しコマンドセットをメモリ5に供給すると、生じる。以下の読出しコマンドセットに基づく動作は、読出し要求に基づくデータ読出しに類似する。以下、異なる点が主に記述される。
【0092】
読出しコマンドセットがメモリ5によって受け取られると、メモリ5は、取得読出し対象物理アドレスPArgによって特定される領域からデータを読み出し、読出しデータNDr及び読出し誤り訂正符号ECCrを取得する。
【0093】
読出しデータNDr及び読出し誤り訂正符号ECCrは、誤り訂正回路15によって受け取られる。誤り訂正回路15は、読出し要求に基づくデータ読出しと同じく、誤りを含まない読出しデータNDrを出力する。
【0094】
読出しデータNDrは、暗号化及び復号回路17によって受け取られる。暗号化及び復号回路17は、読出し要求に基づくデータ読出しと同じく、読出しデータNDrを復号し、読出し要求対象データRDr、読出し論理アドレスLAr、読出し残余メタデータRMr、及び読出しポストCRC値VSCrを生成する。このとき、暗号化及び復号回路17によって使用される鍵は、鍵生成部23によって、例えば、取得読出し対象物理アドレスPArgから生成される。
【0095】
読出し要求対象データRDrは、プリCRC回路16Aによって受け取られる。プリCRC回路16Aは、読出し要求に基づくデータ読出しと同じく、復元プリCRC値VRCpを生成する。
【0096】
復元プリCRC値VRCpは、ポストCRC回路16Bによって受け取られる。ポストCRC回路16Bは、読出し要求に基づくデータ読出しと同じく、読出し残余メタデータRMrを受け取る。一方、ポストCRC回路16Bは、読出し要求に基づくデータ読出しと異なり、読出し論理アドレスLArを受け取る。ポストCRC回路16Bは、読出し論理アドレスLArを、読出し要求に基づくデータ読出しでの供給読出し対象論理アドレスLArgの代わりに使用する。すなわち、ポストCRC回路16Bは、復元プリCRC値VRCp、読出し論理アドレスLAr、及び読出し残余メタデータRMrを連結することにより、読出しポストCRC入力データRSCI2を取得する。読出しポストCRC入力データRSCI2が第2生成多項式で除されることにより、すなわち、ポストCRC演算により、取得ポストCRC値VSCg2が生成される。
【0097】
データ読出しの開始から取得ポストCRC値VSCg2の取得までに意図されないエラーが生じていない限り、取得ポストCRC値VSCg2は、読出しポストCRC値VSCrと同じである。さらに、データ書込みの開始から取得ポストCRC値VSCg2の取得までに意図されないエラーが生じていない限り、取得ポストCRC値VSCg2は、取得ポストCRC値VSCg2が書き込まれたときの書込みポストCRC値VSCwと同じである。取得ポストCRC値VSCg2が読出しポストCRC値VSCrと一致していない場合、ポストCRC回路16Bはエラーの旨の信号SRC2をホスト装置2に送信するとともに、メモリシステム1はデータコピーを中止する。
【0098】
取得ポストCRC値VSCg2が読出しポストCRC値VSCrと一致している場合、メモリシステム1は、読出し要求対象データRDr及び読出し残余メタデータRMrをメモリ5に書き込む。この書込みの開始以降、書き込まれる読出し要求対象データRDr及び読出し残余メタデータRMrは、それぞれ、書込み要求対象データRDw及び書込み残余メタデータRMwとして機能する。また、復元プリCRC値VRCpは、書込み要求に基づく書込みでの取得プリCRC値VRCgとして機能する。書込みは、書込み要求に基づく書込みに類似する。相違点として、存在しない書込みタグデータTDw(すなわち、供給書込み対象論理アドレスLAwg)に代えて、データコピーのための読出しにおいて取得された読出し論理アドレスLArが使用される。具体的には、以下の通りである。
【0099】
図12に示されるように、アドレス変換部21は、メモリ5の中で書込み要求対象データRDwを書き込むブロックの取得書込み対象物理アドレスPAwgを決定する。アドレス変換部21は、アドレス変換テーブル31において、読出し論理アドレスLArに関連付けられている物理アドレスを、取得書込み対象物理アドレスPAwgで更新する。
【0100】
鍵生成部23は、鍵(暗号鍵)を生成する。鍵生成部23は、鍵の生成に、例えば、取得書込み対象物理アドレスPAwgを用いることができる。
【0101】
ポストCRC回路16Bは、書込みタグデータTDwに含まれる読出し論理アドレスLArを受け取る。ポストCRC回路16Bはさらに、取得プリCRC値VRCg、及び書込み残余メタデータRMwを受け取る。
【0102】
ポストCRC回路16Bは、受け取った取得プリCRC値VRCg、読出し論理アドレスLAr、及び書込み残余メタデータRMwを連結することにより、書込みポストCRC入力データWSCI2を取得する。書込みポストCRC入力データWSCI2が第2生成多項式で除されることにより、すなわち、ポストCRC演算により、書込みポストCRC値VSCw2が生成される。
【0103】
暗号化及び復号回路17は、書込み要求に基づくデータ書込みと同じく、読出し論理アドレスLAr、書込み要求対象データRDw、書込み残余メタデータRMw、及び書込みポストCRC値VSCw2を暗号化して、書込みデータNDwを生成する。
【0104】
誤り訂正回路15は、書込み要求に基づくデータ書込みと同じく、書込みデータNDwから、書込み誤り訂正符号ECCwを生成する。書込みデータNDw及び書込み誤り訂正符号ECCwは、メモリ5の記憶領域のうちの取得書込み対象物理アドレスPAwgによって特定される領域に書き込まれる。
【0105】
1.2.5.1.データコピーに基づいて取得及び生成されるCRC値
図13及び図14は、第1実施形態のメモリシステム1でのデータコピーの間に取得及び生成される幾つかのCRC値を示す。図14は、図13の状態に後続する状態を示す。
【0106】
図11を参照して記述されるとともに図13に示されるように、読出し要求対象データRDrの値が第1生成多項式で除されることにより、すなわち、プリCRC演算により、復元プリCRC値VRCpが生成される。
【0107】
ポストCRC回路16Bにおいて、復元プリCRC値VRCpが、読出し論理アドレスLAr及び読出し残余メタデータRMrと連結されることにより、読出しポストCRC入力データRSCI2が生成される。読出しポストCRC入力データRSCI2での連結される要素の順序は、読出し要求対象データRDrが書き込まれたときに生成された書込みポストCRC入力データWSCIでの対応する要素の順序と一致していれば、どのような順序であってもよい。すなわち、復元プリCRC値VRCp、読出し論理アドレスLAr、及び読出し残余メタデータRMrは、それぞれ、書込みポストCRC入力データWSCIでの取得プリCRC値VRCg、供給書込み対象論理アドレスLAwg、及び書込み残余メタデータRMwに対応する。このことに基づいて、読出しポストCRC入力データRSCI2での復元プリCRC値VRCpの順位は、書込みポストCRC入力データWSCIでの取得プリCRC値VRCgの順位と同じである。読出しポストCRC入力データRSCI2での読出し論理アドレスLArの順位は、書込みポストCRC入力データWSCIでの供給書込み対象論理アドレスLAwgの順位と同じである。読出しポストCRC入力データRSCI2での読出し残余メタデータRMrの順位は、書込みポストCRC入力データWSCIでの書込み残余メタデータRMwの順位と同じである。
【0108】
読出しポストCRC入力データRSCI2の値が第2生成多項式で除されることにより、すなわち、ポストCRC演算により、取得ポストCRC値VSCg2が生成される。
【0109】
図12を参照して記述されるとともに図14に示されるように、ポストCRC回路16Bにおいて、取得プリCRC値VRCg(すなわち、復元プリCRC値VRCp)が、読出し論理アドレスLAr及び書込み残余メタデータRMwと連結されることにより、書込みポストCRC入力データWSCI2が生成される。書込みポストCRC入力データWSCI2での連結される要素の順序は、読出しポストCRC入力データRSCI2での対応する要素の順序と一致していれば、どのような順序であってもよい。すなわち、取得プリCRC値VRCg、読出し論理アドレスLAr、及び書込み残余メタデータRMwは、それぞれ、読出しポストCRC入力データRSCI2での復元プリCRC値VRCp、読出し論理アドレスLAr、及び読出し残余メタデータRMrに対応する。このことに基づいて、書込みポストCRC入力データWSCI2での取得プリCRC値VRCgの順位は、読出しポストCRC入力データRSCI2での復元プリCRC値VRCpの順位と同じである。書込みポストCRC入力データWSCI2での読出し論理アドレスLArの順位は、読出しポストCRC入力データRSCI2での読出し論理アドレスLArの順位と同じである。書込みポストCRC入力データWSCI2での書込み残余メタデータRMwの順位は、読出しポストCRC入力データRSCI2での読出し残余メタデータRMrの順位と同じである。
【0110】
書込みポストCRC入力データWSCI2の値が第2生成多項式で除されることにより、すなわち、ポストCRC演算により、書込みポストCRC値VSCw2が生成される。書込みポストCRC値VSCw2は、書込みポストCRC入力データWSCI2を被除数として生成され、書込みポストCRC入力データWSCI2は、取得プリCRC値VRCg、及び読出し論理アドレスLArを含む。このため、書込みポストCRC値VSCw2は、取得プリCRC値VRCg、及び読出し論理アドレスLArを反映している。
【0111】
書込みポストCRC値VSCw2は、暗号化及び復号回路17に供給される。一方、取得プリCRC値VRCgは、暗号化及び復号回路17に供給されない。よって、取得プリCRC値VRCgは、書込みデータNDwには含まれず、メモリ5に書き込まれない。
【0112】
1.3.利点(効果)
第1実施形態によれば、以下に記述されるように、正確にデータを読み出せるメモリシステム1が提供されることが可能である。
【0113】
参考用としてのメモリシステム101は、メモリコントローラ104及びメモリ5を含む。メモリコントローラ104は、メモリコントローラ4に含まれる構成要素のうち、プリCRC回路16A及びポストCRC回路16Bにそれぞれ代えて、プリCRC回路116A及びポストCRC回路116Bを含む。
【0114】
メモリコントローラ104は、供給CRC値VTCをメモリ5に書き込む。供給CRC値VTCをメモリ5に書き込むことは、例えば、ホストインターフェース11が準拠する通信規格で規定されている場合がある。供給CRC値VTCがメモリ5に書き込まれる場合、中でも、供給CRC値VTCのメモリ5への書込みを規定する規格では、供給CRC値VTCはポストCRC回路116Bに供給されない。ポストCRC回路116Bは、書込みタグデータTDw及び書込み残余メタデータRMwに対するポストCRC演算を行い、ポストCRC値VSCQを生成する。ポストCRC値VSCQは、メモリ5に書き込まれる。したがって、CRC値として、供給CRC値VTCとポストCRC値VSCQの両方が書き込まれる。
【0115】
第1実施形態によれば、ポストCRC演算は取得プリCRC値VRCg(すなわち、供給CRC値VTC)を含んだ書込みポストCRC入力データWSCIを被除数として生成され、得られた書込みポストCRC値VSCwはメモリ5に書き込まれ、他方、取得プリCRC値VRCgはメモリ5に書き込まれない。このため、或る書込み要求対象データRDwの書込みのために、参考用のメモリシステム101のように2種類のCRC値、すなわち供給CRC値VTC及びポストCRC値VSCQの両方は書き込まれない。このことは、或る書込み要求対象データRDwの書込みに付帯するデータ(例えば、タグデータ及び(又は)メタデータ)の量が、メモリシステム1では、メモリシステム101よりも少ないことを意味する。このため、メモリシステム1のメモリ5とメモリシステム101のメモリ5が同じ記憶容量を有する場合に、メモリシステム1に書き込まれることが可能なデータはメモリシステム101に書き込まれることが可能なデータより多い。
【0116】
または、メモリシステム1及びメモリシステム101が、同じ記憶容量のメモリ5を有するとともに或る書込み要求対象データRDwの書込みに対して同じ大きさの付帯データの書込みを許容される場合、或る書込み要求対象データRDwに対して、メモリシステム1は、メモリシステム101よりも多くの付帯データが書き込まれることが可能である。このメモリシステム101での場合よりも多い量の付帯データを、誤り訂正符号とすることにより、メモリシステム1は、メモリシステム101よりも高い精度の誤り訂正を実現できる。すなわち、メモリシステム1は、メモリシステム101よりも正確にデータを読み出せる。
【0117】
メモリシステム1において、取得プリCRC値VRCgは、メモリ5に書き込まれない。代わりに、取得プリCRC値VRCgは、ポストCRC演算での被除数に含まれる。このため、書込みポストCRC値VSCwに取得プリCRC値VRCgの値が反映される。読出し要求に対して、復元プリCRC値VRCpが算出され、復元プリCRC値VRCpを含んだ読出しポストCRC入力データRSCIが算出され、読出しポストCRC入力データRSCIと、読出しポストCRC値VSCrが比較される。読出しポストCRC入力データRSCIと読出しポストCRC値VSCrは、エラーが生じない限り、同じである。よって、読出しポストCRC入力データRSCIと読出しポストCRC値VSCrの一致の確認によって、高い精度で読出し要求対象データRDrが正しく読み出されることが可能である。
【0118】
1.4.変形例
ここまでの記述は、CRC回路16が2つのCRCサブ回路、すなわちプリCRC回路16A及びポストCRC回路16Bを含む例に関する。CRC回路16は、このようなCRCサブ回路を含むことなく、1つのCRC回路であってもよい。その場合、CRC回路16は、CRC演算の途中の結果を別のCRC演算の入力の一部として使用できるように構成されている。すなわち、CRC回路16は、図4に示されるように、第1CRC入力データCRI1を、第1生成多項式で除することにより、第1検査データSCD1を取得する。
【0119】
CRC回路16は、第1検査データSCD1の値と、第2CRC入力データCRI2の値を比較する。CRC回路16は、第1検査データSCD1の値と、第2CRC入力データCRI2の値が一致していない場合、その旨を示す信号SRC1を出力するとともに、第1CRC入力データCRI1を入力として使用する処理を終了する。
【0120】
CRC回路16は、第1検査データSCD1の値と、第2CRC入力データCRI2の値が一致している場合、第1検査データSCD1と第3CRC入力データCRI3を結合して、第4CRC入力データCRI4を取得する。
【0121】
CRC回路16は、第4CRC入力データCRI4の値を第2生成多項式で除することにより、第2検査データSCD2を取得する。
【0122】
CRC回路16は、第2検査データSCD2の値と、第5CRC入力データCRI5の値を比較する。ポストCRC回路16Bは、第2検査データSCD2の値と、第5CRC入力データCRI5の値が一致していない場合、その旨を示す信号SRC2を出力するとともに、第3CRC入力データCRI3を入力として使用する処理を終了する。
【0123】
CRC回路16は、第2検査データSCD2の値と、第5CRC入力データCRI5の値が一致している場合、第2検査データSCD2を出力する。
【0124】
2.第2実施形態
第2実施形態は、第1実施形態に付加して使用される。第2実施形態では、ポストCRC演算に、さらなる情報が使用される。以下、第1実施形態と異なる点が主に記述される。
【0125】
2.1.構成
第2実施形態のメモリシステム1は、第1実施形態のメモリシステム1と同じ構成要素、及び構成要素の同じ接続を有する。一方、第2実施形態のメモリシステム1では、メモリコントローラ4での動作が、第1実施形態のメモリコントローラ4での動作と異なる。具体的には、メモリコントローラ4の中の幾つかの構成要素は、第1実施形態と異なるデータを受け取る。メモリコントローラ4は、例えば、以下に記述されるようにデータが供給されるように構成されている。具体的には、ROM13中のファームウェアがメモリコントローラ4、及び関連する構成要素に、以下に記述される動作を行わせるように構成されている。以下、第2実施形態の各要素は、第1実施形態の要素との区別のために、名称の末尾に「b」を付される場合がある。例えば、第2実施形態のメモリシステム1は、メモリシステム1bと称される場合がある。
【0126】
2.2.動作
2.2.1.書込み要求に基づく動作
図15は、第2実施形態のメモリシステム1bでのホスト装置2からのデータ書込み要求に基づくデータの流れ示す。より具体的には、図15は、書込み要求に基づいて受信されるデータ、及び受信されたデータの変化並びにその流れを示す。図7に示される状態は、メモリシステム1bがホスト装置2から書込み要求コマンド、書込み要求対象データ、及び書込みメタデータMDwを受け取ると、生じる。
【0127】
図15に示されるように、取得書込み対象物理アドレスPAwgは、消去回数参照部22によって受け取られる。消去回数参照部22は、消去回数テーブル32を参照して、取得書込み対象物理アドレスPAwgについての消去回数ESNを出力する。以下、取得書込み対象物理アドレスPAwgについての消去回数ESNは、書込み対象消去回数ESNwと称される場合がある。
【0128】
書込み対象消去回数ESNwは、ポストCRC回路16Bによって受け取られる。ポストCRC回路16Bはまた、取得書込み対象物理アドレスPAwgを受け取る。ポストCRC回路16Bは、取得プリCRC値VRCg、供給書込み対象論理アドレスLAwg、書込み残余メタデータRMw、取得書込み対象物理アドレスPAwg、及び書込み対象消去回数ESNwを連結する。連結により形成されるビット列は、以下、書込みポストCRC入力データWSCIbと称される場合がある。ポストCRC回路16Bは、書込みポストCRC入力データWSCIbの値に対する第2生成多項式を用いたCRC演算によって余りを生成する。すなわち、ポストCRC回路16Bは、書込みポストCRC入力データWSCIbの値に対してポストCRC演算を行う。得られたポストCRC値は、書込みポストCRC値VSCwbと称される場合がある。
【0129】
暗号化及び復号回路17は、供給書込み対象論理アドレスLAwg、書込み要求対象データRDw、書込み残余メタデータRMw、及び書込みポストCRC値VSCwbを暗号化して、書込みデータNDwを生成する。誤り訂正回路15は、書込みデータNDwから、書込み誤り訂正符号ECCwを生成する。メモリインターフェース18は、メモリ5の記憶領域のうちの取得書込み対象物理アドレスPAwgによって特定される領域に、書込みデータNDw及び書込み誤り訂正符号ECCwを書き込む。
【0130】
2.2.1.1.書込み要求に基づいて取得及び生成されるCRC値
図16は、第2実施形態のメモリシステム1bでのデータ書込みの間に取得及び生成される幾つかのCRC値を示す。
【0131】
図16を参照して記述されるとともに図15に示されるように、書込み要求対象データRDwの値が第1生成多項式で除されることにより、すなわち、プリCRC演算により、取得プリCRC値VRCgが生成される。
【0132】
取得プリCRC値VRCgが、ポストCRC回路16Bにおいて、供給書込み対象論理アドレスLAwg、書込み残余メタデータRMw、取得書込み対象物理アドレスPAwg、及び書込み対象消去回数ESNwと連結されることにより、書込みポストCRC入力データWSCIbが生成される。書込みポストCRC入力データWSCIbでの取得プリCRC値VRCg、供給書込み対象論理アドレスLAwg、書込み残余メタデータRMw、取得書込み対象物理アドレスPAwg、及び書込み対象消去回数ESNwは、いずれの連結に亘っても固定されていれば、どのような順序であってもよい。
【0133】
書込みポストCRC入力データWSCIbの値が第2生成多項式で除されることにより、すなわち、ポストCRC演算により、書込みポストCRC値VSCwbが生成される。書込みポストCRC値VSCwbは、書込みポストCRC入力データWSCIbを被除数として生成され、書込みポストCRC入力データWSCIbは、取得プリCRC値VRCg、供給書込み対象論理アドレスLAwg、取得書込み対象物理アドレスPAwg、及び書込み対象消去回数ESNwを含む。このため、書込みポストCRC値VSCwbは、取得プリCRC値VRCg、供給書込み対象論理アドレスLAwg、取得書込み対象物理アドレスPAwg、及び書込み対象消去回数ESNwを反映している。
【0134】
書込みポストCRC値VSCwbは、暗号化及び復号回路17に供給される。一方、取得プリCRC値VRCg及び供給CRC値VTCは、暗号化及び復号回路17に供給されない。よって、取得プリCRC値VRCg及び供給CRC値VTCは、書込みデータNDwには含まれず、メモリ5に書き込まれない。
【0135】
2.2.2.読出し要求に基づく動作
図17は、第2実施形態のメモリシステム1bでのホスト装置からのデータ読出し要求に基づくデータの流れを示す。より具体的には、図17は、読出し要求に基づいて受信されるデータ、及び受信されたデータの変化並びにその流れを示す。図17に示される状態は、メモリシステム1bがホスト装置2から読出し要求コマンドを受け取ると、生じる。
【0136】
以下の記述は、供給読出し対象論理アドレスLArgが読出し要求対象データRDrが書き込まれたときの供給書込み対象論理アドレスLAwgと同じである例に基づく。
【0137】
図17に示されるように、供給読出し対象論理アドレスLArgは、アドレス変換部21によって受け取られる。アドレス変換部21は、アドレス変換テーブル31を参照して、供給読出し対象論理アドレスLArgと関連付けられた物理アドレス、すなわち、取得読出し対象物理アドレスPArgを知る。取得読出し対象物理アドレスPArgは、データ読出し要求の受信から取得読出し対象物理アドレスPArgの取得までに何らかの意図されないエラーが生じない限り、取得書込み対象物理アドレスPAwgと同じである。
【0138】
取得読出し対象物理アドレスPArgは、消去回数参照部22によって受け取られる。消去回数参照部22は、消去回数テーブル32を参照して、取得読出し対象物理アドレスPArgについての消去回数ESNを出力する。以下、取得読出し対象物理アドレスPArgについての消去回数ESNは、読出し対象消去回数ESNrと称される場合がある。
【0139】
メモリインターフェース18は、メモリ5の記憶領域のうちの取得読出し対象物理アドレスPArgによって特定される領域からデータを読み出す。データ読出しにより、読出しデータNDr及び読出し誤り訂正符号ECCrが得られる。
【0140】
読出しデータNDr及び読出し誤り訂正符号ECCrは、誤り訂正回路15によって受け取られる。誤り訂正回路15は、読出し要求に基づくデータ読出しと同じく、誤りを含まない読出しデータNDrを出力する。
【0141】
読出しデータNDrは、暗号化及び復号回路17によって受け取られる。暗号化及び復号回路17は読出しデータNDrを復号し、読出し要求対象データRDr、読出し論理アドレスLAr、読出し残余メタデータRMr、及び読出しポストCRC値VSCrを生成する。
【0142】
ポストCRC回路16Bは、復元プリCRC値VRCp、供給読出し対象論理アドレスLArg、読出し残余メタデータRMr、取得読出し対象物理アドレスPArg、及び読出し対象消去回数ESNrを受け取る。読出し対象消去回数ESNrは、データ読出し要求の受信から読出し対象消去回数ESNrの取得までに何らかの意図されないエラーが生じない限り、書込み対象消去回数ESNwと同じである。ポストCRC回路16Bは、復元プリCRC値VRCp、供給読出し対象論理アドレスLArg、読出し残余メタデータRMr、取得読出し対象物理アドレスPArg、及び読出し対象消去回数ESNrを連結することにより、読出しポストCRC入力データRSCIbを取得する。ポストCRC回路16Bは、読出しポストCRC入力データRSCIbの値を第2生成多項式で除することによりポストCRC値を生成する。生成されたポストCRC値は、取得ポストCRC値VSCgbと称される。
【0143】
ポストCRC回路16Bはさらに、読出しポストCRC値VSCrbを受け取る。ポストCRC回路16Bは、取得ポストCRC値VSCgbと読出しポストCRC値VSCrbを比較する。データ読出し要求の受信から取得ポストCRC値VSCgbの取得までに意図されないエラーが生じていない限り、取得ポストCRC値VSCgbは、読出しポストCRC値VSCrbと同じである。このため、データ読出し要求の受信から取得ポストCRC値VSCgbの取得までに意図されないエラーが生じていない限り、取得ポストCRC値VSCgbは、読出しポストCRC値VSCrbと同じである。さらに、データ書込み要求の受信から取得ポストCRC値VSCgbの取得までに意図されないエラーが生じていない限り、取得ポストCRC値VSCgbは、書込みポストCRC値VSCwbと同じである。取得ポストCRC値VSCgbが読出しポストCRC値VSCrbと一致していない場合、ポストCRC回路16Bは、ホストインターフェース11を介して、エラーを示す信号SRC2を、ホスト装置2に送信する。
【0144】
取得ポストCRC値VSCgbが読出しポストCRC値VSCrbと一致している場合、ポストCRC回路16Bは、検査パスの旨の信号SRC2をホストインターフェース11に送信する。
【0145】
ホストインターフェース11は、検査パスの旨の信号SRC2を受け取ると、以下に記述されるデータをホスト装置2に送信する。ホストインターフェース11は、読出し要求対象データRDrをホスト装置2に送信する。ホストインターフェース11は、読出し論理アドレスLArを読出しタグデータTDrとしてホスト装置2に送信する。ホストインターフェース11は、復元プリCRC値VRCpと読出し残余メタデータRMrを連結して読出しメタデータMDrを生成し、読出しメタデータMDrをホスト装置2に送信する。
【0146】
2.2.2.1.読出し要求に基づいて取得及び生成されるCRC値
図18は、第2実施形態のメモリシステム1でのデータ読出しの間に取得及び生成される幾つかのCRC値を示す。
【0147】
図17を参照して記述されるとともに図18に示されるように、読出し要求対象データRDrの値が第1生成多項式で除されることにより、すなわち、プリCRC演算により、復元プリCRC値VRCpが生成される。
【0148】
復元プリCRC値VRCpが、ポストCRC回路16Bにおいて、供給読出し対象論理アドレスLArg、読出し残余メタデータRMr、取得読出し対象物理アドレスPArg、及び読出し対象消去回数ESNrと連結されることにより、読出しポストCRC入力データRSCIbが生成される。読出しポストCRC入力データRSCIbでの連結される要素の順序は、書込みポストCRC入力データWSCIbでの対応する要素の順序と一致していれば、どのような順序であってもよい。すなわち、復元プリCRC値VRCp、供給読出し対象論理アドレスLArg、読出し残余メタデータRMr、取得読出し対象物理アドレスPArg、及び読出し対象消去回数ESNrは、それぞれ、書込みポストCRC入力データWSCIbでの取得プリCRC値VRCg、供給書込み対象論理アドレスLAwg、書込み残余メタデータRMw、取得書込み対象物理アドレスPAwg、及び書込み対象消去回数ESNwに対応する。このことに基づいて、読出しポストCRC入力データRSCIbでの復元プリCRC値VRCpの順位は、書込みポストCRC入力データWSCIbでの取得プリCRC値VRCgの順位と同じである。読出しポストCRC入力データRSCIbでの供給読出し対象論理アドレスLArgの順位は、書込みポストCRC入力データWSCIbでの供給書込み対象論理アドレスLAwgの順位と同じである。読出しポストCRC入力データRSCIbでの読出し残余メタデータRMrの順位は、書込みポストCRC入力データWSCIbでの書込み残余メタデータRMwの順位と同じである。読出しポストCRC入力データRSCIbでの取得読出し対象物理アドレスPArgの順位は、書込みポストCRC入力データWSCIbでの取得書込み対象物理アドレスPAwgの順位と同じである。読出しポストCRC入力データRSCIbでの読出し対象消去回数ESNrの順位は、書込みポストCRC入力データWSCIbでの書込み対象消去回数ESNwの順位と同じである。
【0149】
読出しポストCRC入力データRSCIbの値が第2生成多項式で除されることにより、すなわち、ポストCRC演算により、取得ポストCRC値VSCgbが生成される。
【0150】
2.2.3.データコピー
図19及び図20は、第2実施形態のメモリシステム1bでのデータコピーでのデータの流れを示す。より具体的には、図19及び図20は、ホスト要求を伴わないデータコピーにおいて取得されるデータ、及び取得されたデータの変化並びにその流れを示す。図20は、図19の状態に後続する状態を示す。図19に示される状態は、メモリシステム1bがメモリ5でのデータのコピー(移動)を行うことを決定し、そのためにコピーの起点である取得読出し対象物理アドレスPArgによって特定される領域からデータを読み出すことを指示する読出しコマンドセットをメモリ5に供給すると、生じる。
【0151】
読出しコマンドセットがメモリ5によって受け取られると、メモリ5は、取得読出し対象物理アドレスPArgによって特定される領域からデータを読み出し、読出しデータNDr及び読出し誤り訂正符号ECCrを取得する。
【0152】
読出しデータNDr及び読出し誤り訂正符号ECCrは、誤り訂正回路15によって受け取られる。誤り訂正回路15は、読出し要求に基づくデータ読出しと同じく、誤りを含まない読出しデータNDrを出力する。
【0153】
読出しデータNDrは、暗号化及び復号回路17によって受け取られる。暗号化及び復号回路17は、読出し要求に基づくデータ読出しと同じく、読出しデータNDrを復号し、読出し要求対象データRDr、読出し論理アドレスLAr、読出し残余メタデータRMr、及び読出しポストCRC値VSCrbを生成する。
【0154】
読出し要求対象データRDrは、プリCRC回路16Aによって受け取られる。プリCRC回路16Aは、読出し要求に基づくデータ読出しと同じく、復元プリCRC値VRCpを生成する。
【0155】
復元プリCRC値VRCpは、ポストCRC回路16Bによって受け取られる。ポストCRC回路16Bはまた、読出し要求に基づくデータ読出しと同じく、読出し残余メタデータRMr、取得読出し対象物理アドレスPArg、及び読出し対象消去回数ESNrを受け取る。一方、ポストCRC回路16Bは、読出し要求に基づくデータ読出しと異なり、読出し論理アドレスLArを受け取る。ポストCRC回路16Bは、読出し論理アドレスLArを、読出し要求に基づくデータ読出しでの供給読出し対象論理アドレスLArgの代わりに使用する。すなわち、ポストCRC回路16Bは、復元プリCRC値VRCp、読出し論理アドレスLAr、読出し残余メタデータRMr、取得読出し対象物理アドレスPArg、及び読出し対象消去回数ESNrを連結することにより、読出しポストCRC入力データRSCIb2を取得する。読出しポストCRC入力データRSCIb2が第2生成多項式で除されることにより、すなわち、ポストCRC演算により、取得ポストCRC値VSCgb2が生成される。
【0156】
データ読出しの開始から取得ポストCRC値VSCgb2の取得までに意図されないエラーが生じていない限り、取得ポストCRC値VSCgb2は、読出しポストCRC値VSCrbと同じである。さらに、データ書込みの開始から取得ポストCRC値VSCgb2の取得までに意図されないエラーが生じていない限り、取得ポストCRC値VSCgb2は、取得ポストCRC値VSCgb2が書き込まれたときの書込みポストCRC値VSCwbと同じである。取得ポストCRC値VSCg2bが読出しポストCRC値VSCrbと一致していない場合、ポストCRC回路16Bはエラーの旨の信号SRC2をホスト装置2に送信するとともに、メモリシステム1bはデータコピーを中止する。
【0157】
取得ポストCRC値VSCg2bが読出しポストCRC値VSCrbと一致している場合、メモリシステム1bは、読出し要求対象データRDr及び読出し残余メタデータRMrをメモリ5に書き込む。この書込みの開始以降、書き込まれる読出し要求対象データRDr及び読出し残余メタデータRMrは、それぞれ、書込み要求対象データRDw及び書込み残余メタデータRMwとして機能する。また、復元プリCRC値VRCpは、書込み要求に基づく書込みでの取得プリCRC値VRCgとして機能する。書込みは、書込み要求に基づく書込みに類似する。相違点として、存在しない書込みタグデータTDw(すなわち、供給書込み対象論理アドレスLAwg)に代えて、データコピーのための読出しにおいて取得された読出し論理アドレスLArが使用される。
【0158】
図20に示されるように、ポストCRC回路16Bは、書込みタグデータTDwに含まれる読出し論理アドレスLArを受け取る。ポストCRC回路16Bはさらに、取得プリCRC値VRCg、書込み残余メタデータRMw、取得書込み対象物理アドレスPAwg、及び書込み対象消去回数ESNwを受け取る。
【0159】
ポストCRC回路16Bは、受け取った取得プリCRC値VRCg、読出し論理アドレスLAr、書込み残余メタデータRMw、取得書込み対象物理アドレスPAwg、及び書込み対象消去回数ESNwを連結することにより、書込みポストCRC入力データWSCIb2を取得する。書込みポストCRC入力データWSCIb2が第2生成多項式で除されることにより、すなわち、ポストCRC演算により、書込みポストCRC値VSCwb2が生成される。
【0160】
暗号化及び復号回路17は、書込み要求に基づくデータ書込みと同じく、読出し論理アドレスLAr、書込み要求対象データRDw、書込み残余メタデータRMw、及び書込みポストCRC値VSCwb2を暗号化して、書込みデータNDwを生成する。
【0161】
誤り訂正回路15は、書込み要求に基づくデータ書込みと同じく、書込みデータNDwから、書込み誤り訂正符号ECCwを生成する。書込みデータNDw及び書込み誤り訂正符号ECCwは、メモリ5の記憶領域のうちの取得書込み対象物理アドレスPAwgによって特定される領域に書き込まれる。
【0162】
2.2.3.1.データコピーに基づいて取得及び生成されるCRC値
図21及び図22は、第2実施形態のメモリシステム1bでのデータコピーの間に取得及び生成される幾つかのCRC値を示す。図22は、図21の状態に後続する状態を示す。
【0163】
図19を参照して記述されるとともに図21に示されるように、読出し要求対象データRDrの値が第1生成多項式で除されることにより、すなわち、プリCRC演算により、復元プリCRC値VRCpが生成される。
【0164】
ポストCRC回路16Bにおいて、復元プリCRC値VRCpが、読出し論理アドレスLAr、読出し残余メタデータRMr、取得読出し対象物理アドレスPArg、及び読出し対象消去回数ESNrと連結されることにより、読出しポストCRC入力データRSCIb2が生成される。読出しポストCRC入力データRSCIb2での連結される要素の順序は、読出し要求対象データRDrが書き込まれたときに生成された書込みポストCRC入力データWSCIbでの対応する要素の順序と一致していれば、どのような順序であってもよい。すなわち、復元プリCRC値VRCp、読出し論理アドレスLAr、読出し残余メタデータRMr、取得読出し対象物理アドレスPArg、及び読出し対象消去回数ESNrは、それぞれ、書込みポストCRC入力データWSCIbでの取得プリCRC値VRCg、供給書込み対象論理アドレスLAwg、書込み残余メタデータRMw、取得書込み対象物理アドレスPAwg、及び書込み対象消去回数ESNwに対応する。このことに基づいて、読出しポストCRC入力データRSCIb2での復元プリCRC値VRCpの順位は、書込みポストCRC入力データWSCIbでの取得プリCRC値VRCgの順位と同じである。読出しポストCRC入力データRSCIb2での読出し論理アドレスLArの順位は、書込みポストCRC入力データWSCIbでの供給書込み対象論理アドレスLAwgの順位と同じである。読出しポストCRC入力データRSCIb2での読出し残余メタデータRMrの順位は、書込みポストCRC入力データWSCIbでの書込み残余メタデータRMwの順位と同じである。読出しポストCRC入力データRSCIb2での取得読出し対象物理アドレスPArgの順位は、書込みポストCRC入力データWSCIbでの取得書込み対象物理アドレスPAwgの順位と同じである。読出しポストCRC入力データRSCIb2での読出し対象消去回数ESNrの順位は、書込みポストCRC入力データWSCIbでの書込み対象消去回数ESNwの順位と同じである。
【0165】
読出しポストCRC入力データRSCIb2の値が第2生成多項式で除されることにより、すなわち、ポストCRC演算により、取得ポストCRC値VSCgb2が生成される。
【0166】
図20を参照して記述されるとともに図22に示されるように、ポストCRC回路16Bにおいて、取得プリCRC値VRCg(すなわち、復元プリCRC値VRCp)が、読出し論理アドレスLAr、書込み残余メタデータRMw、取得書込み対象物理アドレスPAwg、及び書込み対象消去回数ESNwと連結されることにより、書込みポストCRC入力データWSCIb2が生成される。書込みポストCRC入力データWSCIb2での連結される要素の順序は、読出しポストCRC入力データRSCIb2での対応する要素の順序と一致していれば、どのような順序であってもよい。すなわち、取得プリCRC値VRCg、読出し論理アドレスLAr、書込み残余メタデータRMw、取得書込み対象物理アドレスPAwg、及び書込み対象消去回数ESNwは、それぞれ、読出しポストCRC入力データRSCIb2での復元プリCRC値VRCp、読出し論理アドレスLAr、読出し残余メタデータRMr、取得読出し対象物理アドレスPArg、及び読出し対象消去回数ESNrに対応する。このことに基づいて、書込みポストCRC入力データWSCIb2での取得プリCRC値VRCgの順位は、読出しポストCRC入力データRSCIb2での復元プリCRC値VRCpの順位と同じである。書込みポストCRC入力データWSCIb2での読出し論理アドレスLArの順位は、読出しポストCRC入力データRSCIb2での読出し論理アドレスLArの順位と同じである。書込みポストCRC入力データWSCIb2での書込み残余メタデータRMwの順位は、読出しポストCRC入力データRSCIb2での読出し残余メタデータRMrの順位と同じである。書込みポストCRC入力データWSCIb2での取得書込み対象物理アドレスPAwgの順位は、読出しポストCRC入力データRSCIb2での取得読出し対象物理アドレスPArgの順位と同じである。書込みポストCRC入力データWSCIb2での書込み対象消去回数ESNwの順位は、読出しポストCRC入力データRSCIb2での読出し対象消去回数ESNrの順位と同じである。
【0167】
書込みポストCRC入力データWSCIb2の値が第2生成多項式で除されることにより、すなわち、ポストCRC演算により、書込みポストCRC値VSCwb2が生成される。書込みポストCRC値VSCwb2は、書込みポストCRC入力データWSCIb2を被除数として生成され、書込みポストCRC入力データWSCIb2は、取得プリCRC値VRCg、読出し論理アドレスLAr、取得書込み対象物理アドレスPAwg、及び書込み対象消去回数ESNwを含む。このため、書込みポストCRC値VSCwb2は、取得プリCRC値VRCg、読出し論理アドレスLAr、取得書込み対象物理アドレスPAwg、及び書込み対象消去回数ESNwを反映している。
【0168】
書込みポストCRC値VSCwb2は、暗号化及び復号回路17に供給される。一方、取得プリCRC値VRCgは、暗号化及び復号回路17に供給されない。よって、取得プリCRC値VRCgは、書込みデータNDwには含まれず、メモリ5に書き込まれない。
【0169】
2.3.利点(効果)
第2実施形態によれば、第1実施形態と同じく、ポストCRC演算は取得プリCRC値VRCg(すなわち、供給CRC値VTC)を含んだ書込みポストCRC入力データWSCI(書込みポストCRC入力データWSCIb)を被除数として生成され、得られた書込みポストCRC値VSCw(書込みポストCRC入力データWSCIb)はメモリ5に書き込まれ、他方、取得プリCRC値VRCgはメモリ5に書き込まれない。このため、第1実施形態と同じ利点を得られる。
【0170】
第2実施形態によれば、以下に記述されるように、さらに正確にデータを読み出せるメモリシステム1bが実現されることが可能である。
【0171】
メモリシステム1bのように、メモリシステムによっては、ホスト装置のアドレス体系とは異なるアドレス体系を使用してメモリ5の記憶空間を管理する。そのために、ホスト装置によって使用される論理アドレスと、メモリシステムによって使用される物理アドレスの変換の仕組みが必要である。変換が誤っている場合、得られる物理アドレスが誤っているため、読み出されるデータは、ホスト装置から要求されたデータと異なる。誤変換は、種々の要因で起こり得る。その1つとして、アドレス変換テーブル31のような変換テーブルでの誤変換がある。変換テーブルは、メモリシステムの動作の間、メモリシステム中のRAMにおいて記憶されている。或る論理アドレスのデータが書き込まれ、この論理アドレスのデータの読出しの要求が受信される場合、書込みのときに供給された論理アドレスから変換された物理アドレスは、読出しのときに供給された論理アドレスから変換された物理アドレスと同じはずである。しかしながら、RAMで記憶されているデータは、ソフトエラー等のエラーが原因で、別のデータに意図せずに変化し得る。これにより、読出しのときに供給された論理アドレスから変換された物理アドレスが、書込みのときに供給された論理アドレスから変換された物理アドレスと異なり得る。
【0172】
第2実施形態によれば、ポストCRC演算は、物理アドレスを含んだデータを被除数として行われる。すなわち、データの書込みのときは、或る供給書込み対象論理アドレスLAwgから取得書込み対象物理アドレスPAwgが取得され、取得書込み対象物理アドレスPAwgを含んだ書込みポストCRC入力データWSCIbを被除数として書込みポストCRC値VSCwbが生成され、書込みポストCRC値VSCwbがメモリ5に書き込まれる。データの読出しのときは、供給読出し対象論理アドレスLArgから取得読出し対象物理アドレスPArgが取得され、取得読出し対象物理アドレスPArgを含んだ読出しポストCRC入力データRSCIbを被除数として取得ポストCRC値VSCgbが生成される。そして、取得ポストCRC値VSCgbが、読出しポストCRC値VSCrbと比較される。
【0173】
書込みポストCRC値VSCwbは、取得書込み対象物理アドレスPAwgを反映しており、読出しポストCRC値VSCrbは取得読出し対象物理アドレスPArgを反映している。或る論理アドレスのデータが書き込まれ、この論理アドレスのデータの読出しの要求が受信される場合、書込みポストCRC値VSCwb、ひいては読出しポストCRC値VSCrbは、取得ポストCRC値VSCgbと、同じはずである。同じである場合、取得書込み対象物理アドレスPAwgと、取得読出し対象物理アドレスPArgも同じである。このため、読出しポストCRC値VSCrbと、取得ポストCRC値VSCgbとの一致の判断によって、取得書込み対象物理アドレスPAwgと取得読出し対象物理アドレスPArgが一致していると判断されることが可能である。よって、論理アドレスと物理アドレスの誤変換によって誤ったデータが読み出されることが抑制されることが可能である。
【0174】
また、第1実施形態において記述されるように、メモリシステム1等のメモリシステムによっては、無効データを記憶している場合がある。この場合、或る第1論理アドレスの更新前の(古い)無効データが或る第1物理アドレスに記憶されており、第1論理アドレスの更新後(最新の)のデータ(すなわち、有効データ)が或る第2物理アドレスに記憶されている。第1論理アドレスは、第2物理アドレスと関連付けられている。しかし、メモリシステムでのアドレスの管理の方法に依存する、意図しない現象によって、第1論理アドレスが第1物理アドレスと関連付けられていると誤って決定されることがある。例えば、物理アドレスが有効データと無効データのいずれを記憶しているかがメモリコントローラ中のRAM上のテーブルによって管理され、テーブルのデータのソフトエラー、或いはRAM中の配線のショート又は接続不良によって、第1物理アドレスが有効データを記憶していると判断されることが考えられる。この場合、第1論理アドレスのデータの読出しの要求に対して、旧データが読み出される。旧データは、データそのものが破損しているわけでないので、誤り訂正は正しく行われ、旧データが読出し要求の対象として送信される。しかしながら、旧データは、本来、ホスト装置が取得を望むデータではない。
【0175】
第2実施形態によれば、ポストCRC演算は、アクセスの対象の物理アドレスのデータの消去回数を含んだデータを被除数として行われる。すなわち、データ書込みのときは、取得書込み対象物理アドレスPAwgについての書込み対象消去回数ESNwが取得され、書込み対象消去回数ESNwを含んだ書込みポストCRC入力データWSCIbを被除数として書込みポストCRC値VSCwbが生成され、書込みポストCRC値VSCwbがメモリ5に書き込まれる。データの読出しのときには、取得読出し対象物理アドレスPArgについての読出し対象消去回数ESNrが取得され、読出し対象消去回数ESNrを含んだ読出しポストCRC入力データRSCIbを被除数として取得ポストCRC値VSCgbが生成される。そして、取得ポストCRC値VSCgbが、読出しポストCRC値VSCrbと比較される。
【0176】
書込みポストCRC値VSCwbは、書込み対象消去回数ESNwを反映しており、読出しポストCRC値VSCrbは読出し対象消去回数ESNrを反映している。或る論理アドレスのデータが書き込まれ、この論理アドレスのデータの読出しの要求が受信される場合、書込みポストCRC値VSCwb、ひいては読出しポストCRC値VSCrbは、取得ポストCRC値VSCgbと、同じはずである。同じである場合、書込み対象消去回数ESNwと、読出し対象消去回数ESNrも同じである。一方、或る論理アドレスが、書込みのときに第1物理アドレスと関連付けられていると判断されるとともに読出しのときに第2物理アドレスと関連付けられていると判断される場合、第1物理アドレスについての消去回数と第2物理アドレスについての消去回数は異なるはずである。このため、書込み対象消去回数ESNwと、読出し対象消去回数ESNrの一致の判断によって、取得書込み対象物理アドレスPAwgと取得読出し対象物理アドレスPArgが一致していると判断されることが可能である。よって、論理アドレスと物理アドレスの誤変換によって誤ったデータが読み出されることが抑制されることが可能である。
【0177】
2.2.変形例
メモリ5へのデータの書込み及びメモリ5からのデータ読み出しのときのポストCRC演算での被除数に、物理アドレス及び消去回数の両方が含まれる例について記述された。しかしながら、いずれか一方のみが使用されてもよい。すなわち、書込みポストCRC入力データWSCIbは、取得書込み対象物理アドレスPAwgを含むとともに書込み対象消去回数ESNwを含まず、読出しポストCRC入力データRSCIbは、取得読出し対象物理アドレスPArgを含むとともに読出し対象消去回数ESNrを含まない。または、書込みポストCRC入力データWSCIbは、書込み対象消去回数ESNwを含むとともに取得書込み対象物理アドレスPAwgを含まず、読出しポストCRC入力データRSCIbは、読出し対象消去回数ESNrを含むとともに取得読出し対象物理アドレスPArgを含まない。データコピーの場合は、書込みポストCRC入力データWSCIb2は、取得書込み対象物理アドレスPAwgを含むとともに書込み対象消去回数ESNwを含まず、読出しポストCRC入力データRSCIb2は、取得読出し対象物理アドレスPArgを含むとともに読出し対象消去回数ESNrを含まない。または、書込みポストCRC入力データWSCIb2は、書込み対象消去回数ESNwを含むとともに取得書込み対象物理アドレスPAwgを含まず、読出しポストCRC入力データRSCIb2は、読出し対象消去回数ESNrを含むとともに取得読出し対象物理アドレスPArgを含まない。
【0178】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0179】
1…メモリシステム、2…ホスト装置、4…メモリコントローラ、5…メモリ、11…ホストインターフェース、12…CPU、13…ROM、14…RAM、15…誤り訂正回路、16…CRC回路、17…暗号化及び復号回路、18…メモリインターフェース、21…アドレス変換部、22…消去回数参照部、23…鍵生成部、16A…プリCRC回路、16B…ポストCRC回路、CRI1…第1CRC入力データ、SCD1…第1検査データ、CRI2…第2CRC入力データ、SRC1…信号、CRI3…第3CRC入力データ、CRI4…第4CRC入力データ、SCD2…第2検査データ、CRI5…第5CRC入力データ、SRC2…信号、…、31…アドレス変換テーブル、32…消去回数テーブル、RDw…書込み要求対象データ、TDw…書込みタグデータ、MDw…書込みメタデータ、LAwg…供給書込み対象論理アドレス、VTC…供給CRC値、RMw…書込み残余メタデータ、VRCg…取得プリCRC値、PAwg…取得書込み対象物理アドレス、WSCI…書込みポストCRC入力データ、VSCw…書込みポストCRC値、NDw…書込みデータ、ECCw…書込み誤り訂正符号、RDr…読出し要求対象データ、LArg…供給読出し対象論理アドレス、PArg…取得読出し対象物理アドレス、NDr…読出しデータ、ECCr…読出し誤り訂正符号、LAr…読出し論理アドレス、RMr…読出し残余メタデータ、VSCr…読出しポストCRC値、VRCp…復元プリCRC値、RSCI…読出しポストCRC入力データ、MDr…読出しメタデータ、VSCg…取得ポストCRC値、TDr…読出しタグデータ、ESNw…書込み対象消去回数、ESNr…読出し対象消去回数
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22