(57)【要約】      （修正有）【課題】メモリの監視処理に費やされる時間、電力消費量を低減可能な半導体記憶装置、メモリコントローラ及びメモリの監視方法を提供する。【解決手段】書き込み時に、書き込み対象となる情報データを暗号化した暗号データ、情報データに基づく誤り検出用の第１の符号、暗号データに基づく誤り検出用の第２の符号をメモリに書き込む。読み出し時又は監視処理時に、メモリから暗号データ、第１の符号、第２の符号を読み出し、メモリから読み出された暗号データを復号して得た読出データと、メモリから読み出された第１の符号に誤り検出処理を施して第１の誤り検出結果を得、メモリから読み出された暗号データ及び第２の符号に誤り検出処理を施して第２の誤り検出結果を得る。監視部は、監視処理実行時は復号部の動作を停止させ、第２の誤り検出結果に基づき劣化度を求めることでメモリの劣化度を断続的に監視する。【選択図】図１
2018194948.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、書込指令又は読出指令を受けて前記メモリを制御するメモリコントローラと、を含み、
前記メモリコントローラは、
前記メモリから読み出されたデータに生じている誤りの数に対応した前記メモリの劣化度を監視する監視処理を断続的に実行する監視部と、
前記書込指令を受けた場合には、書込対象となる情報データを暗号化した暗号データ、前記情報データに基づく誤り検出用の第１の符号、及び前記暗号データに基づく誤り検出用の第２の符号を前記メモリに書き込み、前記読出指令を受けた場合又は前記監視処理の実行時には、前記メモリから前記暗号データ、前記第１の符号、及び前記第２の符号を読み出すメモリアクセス部と、
前記メモリから読み出された前記暗号データを復号することにより暗号解除された読出データを得る復号部と、
前記読出データ、及び前記メモリから読み出された前記第１の符号に誤り検出処理を施すことにより第１の誤り検出結果を得る、或いは前記メモリから読み出された前記暗号データ及び前記第２の符号に誤り検出処理を施すことにより第２の誤り検出結果を得る誤り検出部と、を有し、
前記監視部は、前記監視処理の実行時に前記復号部の動作を停止させると共に、前記第２の誤り検出結果に基づき前記劣化度を求めることを特徴とする半導体記憶装置。
【請求項２】
前記メモリアクセス部は、前記監視処理の非実行時において前記第１の誤り検出結果が誤り有りを表す場合には、前記第２の誤り検出結果が誤り無しを表す状態に到るまで繰り返し前記暗号データ、前記第１の符号及び前記第２の符号を読み出す再読出処理を実行し、
前記復号部は、前記再読出処理の実行中は自身の復号動作を停止することを特徴とする請求項１に記載の半導体記憶装置。
【請求項３】
前記第１の誤り検出結果が誤り無しを表す場合に、前記読出データを前記メモリコントローラの外部に出力するインタフェース部を含むことを特徴とする請求項２に記載の半導体記憶装置。
【請求項４】
前記第１の符号は前記情報データに基づいて算出したパリティビットであり、前記第２の符号は前記暗号データに基づいて算出したパリティビットであることを特徴とする請求項１〜３のいずれか１に記載の半導体記憶装置。
【請求項５】
前記メモリアクセス部は、前記暗号データに前記第１の符号を付加したデータブロックに基づく誤り検出用の符号を前記第２の符号とし、
前記誤り検出部は、前記データブロック及び前記第２の符号に誤り検出処理を施すことにより前記第２の誤り検出結果を得ることを特徴とする請求項１〜４のいずれか１に記載の半導体記憶装置。
【請求項６】
書込指令又は読出指令に応じてメモリを制御するメモリコントローラであって、
前記メモリから読み出されたデータに生じている誤りの数に対応した前記メモリの劣化度を監視する監視処理を断続的に実行する監視部と、
前記書込指令を受けた場合には、書込対象となる情報データを暗号化した暗号データ、前記情報データに基づく誤り検出用の第１の符号、及び前記暗号データに基づく誤り検出用の第２の符号を前記メモリに書き込み、前記読出指令を受けた場合又は前記監視処理の実行時には、前記メモリから前記暗号データ、前記第１の符号、及び前記第２の符号を読み出すメモリアクセス部と、
前記メモリから読み出された前記暗号データを復号することにより暗号解除された読出データを得る復号部と、
前記読出データ、及び前記メモリから読み出された前記第１の符号に誤り検出処理を施すことにより第１の誤り検出結果を得る、或いは前記メモリから読み出された前記暗号データ及び前記第２の符号に誤り検出処理を施すことにより第２の誤り検出結果を得る誤り検出部と、を有し、
前記監視部は、前記監視処理の実行時に前記復号部の動作を停止させると共に、前記第２の誤り検出結果に基づき前記劣化度を求めることを特徴とするメモリコントローラ。
【請求項７】
前記メモリアクセス部は、前記監視処理の非実行時において前記第１の誤り検出結果が誤り有りを表す場合には、前記第２の誤り検出結果が誤り無しを表す状態に到るまで繰り返し前記暗号データ、前記第１の符号及び前記第２の符号を読み出す再読出処理を実行し、
前記復号部は、前記再読出処理の実行中は自身の復号動作を停止することを特徴とする請求項６に記載のメモリコントローラ。
【請求項８】
前記第１の誤り検出結果が誤り無しを表す場合に、前記読出データを前記メモリコントローラの外部に出力するインタフェース部を含むことを特徴とする請求項７に記載のメモリコントローラ。
【請求項９】
前記第１の符号は前記情報データに基づいて算出したパリティビットであり、前記第２の符号は前記暗号データに基づいて算出したパリティビットであることを特徴とする請求項６〜８のいずれか１に記載のメモリコントローラ。
【請求項１０】
前記メモリアクセス部は、前記暗号データに前記第１の符号を付加したデータブロックに基づく誤り検出用の符号を前記第２の符号とし、
前記誤り検出部は、前記データブロック及び前記第２の符号に誤り検出処理を施すことにより前記第２の誤り検出結果を得ることを特徴とする請求項６〜９のいずれか１に記載のメモリコントローラ。
【請求項１１】
書込対象となる情報データを暗号化した暗号データ、前記情報データに基づく誤り検出用の第１の符号、及び前記暗号データに基づく誤り検出用の第２の符号が格納されているメモリから読み出されたデータに生じている誤りの数に対応した前記メモリの劣化度を監視する監視処理を断続的に実行するメモリの監視方法であって、
読出指令を受けた場合又は前記監視処理の実行時に、前記メモリから前記暗号データ、前記第１の符号、及び前記第２の符号を読み出し、
前記メモリから読み出された前記暗号データに復号処理を施すことにより暗号解除された読出データを得て、
前記読出データ、及び前記メモリから読み出された前記第１の符号に誤り検出処理を施して第１の誤り検出結果を得る、或いは前記メモリから読み出された前記暗号データ及び前記第２の符号に誤り検出処理を施すことにより第２の誤り検出結果を得て、
前記監視処理の実行時には前記復号処理を停止させると共に、前記第２の誤り検出結果に基づき前記劣化度を求めることを特徴とするメモリの監視方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、 半導体記憶装置、メモリを制御するメモリコントローラ、及びメモリの監視方法に関する。
【背景技術】
【０００２】
近年、機密データを保護する為に、保護対象となる情報データを暗号化してディスクに格納するストレージ装置が提案されている（例えば、特許文献１参照）。
【０００３】
かかるストレージ装置では、当該情報データと共にこの情報データに付加されている誤り検出用のＣＲＣ（Cyclic Redundancy Check）コードを、例えば暗号鍵を用いて暗号化した暗号データをディスクに記憶する。
【０００４】
よって、当該ストレージ装置に格納されている情報データを取得するには、先ず、ディスクから暗号データを読み出し、読み出した暗号データに対して暗号を解除する復号処理を施すことにより、情報データ及びＣＲＣコードを復元する。そして、ストレージ装置は、これら情報データ及びＣＲＣコードに対して誤り検出処理を施して、誤りが検出されなかった場合に、この情報データを読出データとして出力する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−５２３６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、上記のように暗号化したデータをディスクではなく、例えばＮＡＮＤ型フラッシュメモリのような不揮発性半導体メモリに記憶させることも考えられる。
【０００７】
ＮＡＮＤ型フラッシュメモリでは、外部からの読出アクセスに応じた通常のデータ読出の他に、メモリの記憶領域の劣化度を監視するメモリ監視が行われる。
【０００８】
このメモリ監視では、ＮＡＮＤ型フラッシュメモリの各ブロックに対してページ単位でデータ（例えば誤り検出用の符号としてＣＲＣコードを含む）の読み出しを行う。この際、格納されているデータが上記のように暗号化されている場合には、この読み出された暗号データを復号することにより暗号を解除した読出データを得る。
【０００９】
そして、当該読出データに誤り検出処理を施して得られた誤り検出結果に基づき、その読出データが格納されていた記憶領域の劣化度を求める。従って、不揮発性半導体メモリに暗号データの書き込みを行うと、上記したメモリ監視を行う度に、暗号を解除する復号処理を実施することになるので、電力消費量及び監視に費やされる時間の増大を招くという問題が生じる。
【００１０】
そこで、本発明は、メモリの監視に費やされる時間、及び電力消費量を低減させることが可能な半導体記憶装置、メモリコントローラ及びメモリの監視方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明に係る半導体記憶装置は、メモリと、書込指令又は読出指令を受けて前記メモリを制御するメモリコントローラと、を含み、前記メモリコントローラは、前記メモリから読み出されたデータに生じている誤りの数に対応した前記メモリの劣化度を監視する監視処理を断続的に実行する監視部と、前記書込指令を受けた場合には、書込対象となる情報データを暗号化した暗号データ、前記情報データに基づく誤り検出用の第１の符号、及び前記暗号データに基づく誤り検出用の第２の符号を前記メモリに書き込み、前記読出指令を受けた場合又は前記監視処理の実行時には、前記メモリから前記暗号データ、前記第１の符号、及び前記第２の符号を読み出すメモリアクセス部と、前記メモリから読み出された前記暗号データを復号することにより暗号解除された読出データを得る復号部と、前記読出データ、及び前記メモリから読み出された前記第１の符号に誤り検出処理を施すことにより第１の誤り検出結果を得る、或いは前記メモリから読み出された前記暗号データ及び前記第２の符号に誤り検出処理を施すことにより第２の誤り検出結果を得る誤り検出部と、を有し、前記監視部は、前記監視処理の実行時に前記復号部の動作を停止させると共に、前記第２の誤り検出結果に基づき前記劣化度を求める。
【００１２】
また、本発明に係るメモリコントローラは、書込指令又は読出指令に応じてメモリを制御するメモリコントローラであって、前記メモリから読み出されたデータに生じている誤りの数に対応した前記メモリの劣化度を監視する監視処理を断続的に実行する監視部と、前記書込指令を受けた場合には、書込対象となる情報データを暗号化した暗号データ、前記情報データに基づく誤り検出用の第１の符号、及び前記暗号データに基づく誤り検出用の第２の符号を前記メモリに書き込み、前記読出指令を受けた場合又は前記監視処理の実行時には、前記メモリから前記暗号データ、前記第１の符号、及び前記第２の符号を読み出すメモリアクセス部と、前記メモリから読み出された前記暗号データを復号することにより暗号解除された読出データを得る復号部と、前記読出データ、及び前記メモリから読み出された前記第１の符号に誤り検出処理を施すことにより第１の誤り検出結果を得る、或いは前記メモリから読み出された前記暗号データ及び前記第２の符号に誤り検出処理を施すことにより第２の誤り検出結果を得る誤り検出部と、を有し、前記監視部は、前記監視処理の実行時に前記復号部の動作を停止させると共に、前記第２の誤り検出結果に基づき前記劣化度を求める。
【００１３】
また、本発明に係るメモリの監視方法は、書込対象となる情報データを暗号化した暗号データ、前記情報データに基づく誤り検出用の第１の符号、及び前記暗号データに基づく誤り検出用の第２の符号が格納されているメモリから読み出されたデータに生じている誤りの数に対応した前記メモリの劣化度を監視する監視処理を断続的に実行するメモリの監視方法であって、読出指令を受けた場合又は前記監視処理の実行時に、前記メモリから前記暗号データ、前記第１の符号、及び前記第２の符号を読み出し、前記メモリから読み出された前記暗号データに復号処理を施すことにより暗号解除された読出データを得て、前記読出データ、及び前記メモリから読み出された前記第１の符号に誤り検出処理を施して第１の誤り検出結果を得る、或いは前記メモリから読み出された前記暗号データ及び前記第２の符号に誤り検出処理を施すことにより第２の誤り検出結果を得て、前記監視処理の実行時には前記復号処理を停止させると共に、前記第２の誤り検出結果に基づき前記劣化度を求める。
【発明の効果】
【００１４】
本発明は、情報データを暗号化してメモリに書き込むにあたり、当該情報データを暗号化した暗号データと共に、情報データに基づく誤り検出用の第１の符号、及び暗号データに基づく誤り検出用の第２の符号を書き込む。一方、読出指令を受けた場合、又はメモリの劣化度を監視する監視処理の実行時には、メモリから暗号データ、第１及び第２の符号を読み出す。
【００１５】
また、メモリから読み出された暗号データに復号処理を施すことにより暗号解除された読出データを得る。そして、読出データ及びメモリから読み出された第１の符号に誤り検出処理を施して第１の誤り検出結果を得る、或いは、メモリから読み出された暗号データ及び第２の符号に誤り検出処理を施すことにより第２の誤り検出結果を得る。この際、メモリの劣化度を監視する監視処理の実行時には、上記した復号処理を停止させると共に、第２の誤り検出結果に基づきメモリの劣化度を求める。
【００１６】
よって、本発明によれば、メモリの監視処理時には復号処理によって費やされる電力消費量が実質的にゼロとなるので、半導体記憶装置の電力消費量を低減させることが可能となる。更に、上記した監視処理によれば、復号処理に費やされる時間を待つことなく、メモリから読み出された暗号データ及び第２の符号に誤り検出処理を施すことができるので、監視処理に費やされる時間を短縮することが可能となる。
【図面の簡単な説明】
【００１７】
【図１】本発明に係る半導体記憶装置１００の構成を示すブロック図である。
【図２】メモリセルアレイ部１０に書き込まれるデータの形態を表す図である。
【図３】誤り検出処理を表すフローチャートである。
【図４】再読出処理を表すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明の実施例について、図面を参照しつつ詳細に説明する。
【００１９】
図１は、本発明に係る半導体記憶装置１００の構成を示すブロック図である。図１に示すように、半導体記憶装置１００は、メモリセルアレイ部１０、メモリコントローラ２０を有する。
【００２０】
メモリセルアレイ部１０は、例えばＮＡＮＤ型の複数のメモリセルが配置されたメモリセルアレイと、当該メモリセルアレイにデータ書込用又は読み出し用の各種電圧を印加するドライバと、を含む。当該メモリセルアレイには、複数のメモリセルによってアクセスの最小単位となるページが形成され、複数個のページによってブロックが形成されている。
【００２１】
メモリコントローラ２０は、インタフェース部２１、暗号化部２２、パリティ算出部２３、バッファ２４、復号部２５、誤り検出部２６、メモリ監視部２７及びメモリアクセス部２８を含む。
【００２２】
インタフェース部２１は、ホスト装置（図示せず）から送出された各種コマンド（読出指令、書込指令等）、アドレスＡＤ及び情報データＤＡＴを受け付ける。
【００２３】
インタフェース部２１は、例えば、データの書込を促す書込指令、アドレスＡＤ、及び書込対象となる情報データＤＡＴを受けた場合には、当該情報データＤＡＴを書込データＷＲＤとして暗号化部２２及びパリティ算出部２３に供給する。更に、インタフェース部２１は、当該アドレスＡＤへの書込データＷＲＤの書き込みを促す書込アクセス信号をメモリアクセス部２８に供給する。
【００２４】
また、インタフェース部２１は、データの読み出しを促す読出指令及びアドレスＡＤを受けた場合には、当該アドレスＡＤに格納されているデータの読み出しを促す読出アクセス信号をメモリアクセス部２８に供給する。更に、インタフェース部２１は、当該読出アクセス信号に応じて、メモリセルアレイ部１０から読み出され、引き続き復号部２５にて復号された読出データＲＤを、情報データＤＡＴとして出力する。ただし、この間、誤り検出部２６から供給された誤り検出結果信号ＰＣが誤り有りを表す場合には、インタフェース部２１は、情報データＤＡＴとしての読出データＲＤの出力を行わない。
【００２５】
暗号化部２２は、上記した書込データＷＲＤを例えば暗号鍵を用いて暗号化した暗号データＥＤを生成する。暗号化部２２は、暗号データＥＤを、パリティ算出部２３及びバッファ２４に供給する。
【００２６】
パリティ算出部２３は、上記した書込データＷＲＤから誤り検出用符号としてのパリティビットを算出する。パリティ算出部２３は、書込データＷＲＤに基づいて算出したパリティビットを、平文パリティビットＰ１としてバッファ２４に供給する。更に、パリティ算出部２３は、暗号データＥＤに平文パリティビットＰ１を付加したデータブロックから誤り検出用符号としてのパリティビットを算出し、算出したパリティビットを暗号パリティビットＰ２としてバッファ２４に供給する。
【００２７】
バッファ２４は、上記した暗号データＥＤ、平文パリティビットＰ１及び暗号パリティビットＰ２を取り込む。そして、バッファ２４は、図２に示すように、暗号データＥＤに、平文パリティビットＰ１及び暗号パリティビットＰ２を付加したデータ形態を有するデータをメモリセルアレイ部１０に供給する。
【００２８】
また、バッファ２４は、メモリセルアレイ部１０から読み出されたデータ、つまり図２に示す形態を有するデータを取り込み、これを読出暗号データＲＥＤとして復号部２５及び誤り検出部２６に供給する。
【００２９】
復号部２５は、読出暗号データＲＥＤに含まれる暗号データＥＤに暗号を解除する復号処理を施す。復号部２５は、当該復号処理によって暗号解除されたデータを、読出データＲＤとしてインタフェース部２１及び誤り検出部２６に供給する。尚、復号部２５は、メモリ監視部２７から監視処理の実行中を表す監視処理実行信号ＥＸが供給されている場合には、自身の復号動作を停止する。
【００３０】
すなわち、復号部２５は、監視処理の非実行中は復号処理を実行するが、監視処理の実行中は当該復号処理を停止する。
【００３１】
誤り検出部２６は、読出暗号データＲＥＤから平文パリティビットＰ１及び暗号パリティビットＰ２を抽出する。誤り検出部２６は、監視処理実行信号ＥＸが監視処理の非実行中を表す場合には、読出データＲＤに対して、以下のようなパリティ検査（平文パリティ検査と称する）を施す。すなわち、誤り検出部２６は、読出データＲＤからパリティビットを算出し、この算出したパリティビットの論理レベルと平文パリティビットＰ１の論理レベルとが一致するか否かを判定する。ここで、両者が一致すると判定された場合には、誤り検出部２６は、平文パリティ検査の結果として、パリティエラー無しを表す検査結果を得る。また、両者が一致していないと判定された場合には、誤り検出部２６は、平文パリティ検査の結果としてパリティエラー有り表す検査結果を得る。
【００３２】
一方、監視処理実行信号ＥＸが監視処理の実行中を表す場合には、誤り検出部２６は、読出暗号データＲＥＤに含まれる暗号データＥＤに平文パリティビットＰ１を付加したデータブロックに対して、以下のようなパリティ検査（暗号パリティ検査と称する）を施す。すなわち、誤り検出部２６は、暗号データＥＤに平文パリティビットＰ１を付加したデータブロックからパリティビットを算出し、この算出したパリティビットの論理レベルと暗号パリティビットＰ２の論理レベルとが一致するか否かを判定する。ここで、両者が一致すると判定された場合には、誤り検出部２６は、暗号パリティ検査の結果として、パリティエラー無しを表す検査結果を得る。また、両者が一致していないと判定された場合には、誤り検出部２６は、暗号パリティ検査の結果としてパリティエラー有り表す検査結果を得る。
【００３３】
誤り検出部２６は、上記した平文パリティ検査の結果がパリティエラー有りを表す場合には誤り有り、パリティエラー無しを表す場合には誤り無しを表す誤り検出結果信号ＰＣを生成する。また、誤り検出部２６は、上記した暗号パリティ検査の結果がパリティエラー有りを表す場合には誤り有り、パリティエラー無しを表す場合には誤り無しを表す誤り検出結果信号ＰＣを生成する。
【００３４】
すなわち、誤り検出部２６は、平文パリティ検査の結果、或いは暗号パリティ検査の結果に基づく誤り検出結果信号ＰＣを生成し、これをインタフェース部２１、メモリ監視部２７及びメモリアクセス部２８に供給する。
【００３５】
メモリ監視部２７は、電源投入直後、或いはホスト装置からのアクセス（読出又は書込）に応じた読出処理及び書込処理が行われていない期間中に、メモリセルアレイ部１０の各ブロックの劣化度を監視する監視処理を断続的に実行する。更に、メモリ監視部２７は、自身が上記した監視処理の実行中であるのか、或いは非実行中であるのかを表す監視処理実行信号ＥＸを復号部２５、誤り検出部２６及びメモリアクセス部２８に供給する。
【００３６】
すなわち、メモリ監視部２７は、先ず、メモリセルアレイ部１０のブロック毎に、そのブロックに含まれる各ページからデータの読出を促す読出アクセス信号をメモリアクセス部２８に供給する。これにより、メモリアクセス部２８は、メモリセルアレイ部１０から、当該メモリセルアレイ部１０に格納されているデータ、つまり図２に示すデータ形態を有するデータを読み出す。この読み出されたデータは、メモリコントローラ２０のバッファ２４を介して、読出暗号データＲＥＤとして誤り検出部２６に供給される。
【００３７】
この際、監視処理実行信号ＥＸが監視処理の実行中を表す場合には、誤り検出部２６は、読出暗号データＲＥＤに含まれる暗号データＥＤに暗号パリティビットＰ２を付加した符号ブロックに対して暗号パリティ検査を施す。そして、誤り検出部２６は、当該暗号パリティ検査の結果に基づき、誤りの有無を表す誤り検出結果信号ＰＣを生成し、これをメモリ監視部２７に供給する。メモリ監視部２７は、当該誤り検出結果信号ＰＣにて表される誤り有りの総数をブロック毎に求める。そして、メモリ監視部２７は、このブロック毎に求めた誤りの総数を、そのブロックの劣化度として求める。
【００３８】
ここで、劣化度が所定閾値より大きいと判定された場合、メモリ監視部２７は、該当するブロックを今後、使用不可とし、このブロックに格納されていたデータを他のブロックに書き込ませる制御をメモリセルアレイ部１０に施す。また、劣化度合いが所定閾値より小さいと判定された場合、メモリ監視部２７は、該当するブロックに格納されていたデータをこのブロックに再書込するという、いわゆるリフレッシュ処理の実行をメモリセルアレイ部１０に促す。
【００３９】
メモリアクセス部２８は、インタフェース部２１から書込アクセス信号（書込指令、アドレスを含む）を受けた場合には、当該書込アクセス信号によって示されるアドレスＡＤ及び書込信号をメモリセルアレイ部１０に供給する。これにより、書込対象としての情報データＤＡＴを暗号化した暗号データＥＤ、情報データＤＡＴに基づく誤り検出用の平文パリティビットＰ１、及び暗号データＥＤに基づく誤り検出用の暗号パリティビットＰ２が、メモリセルアレイ部１０に書き込まれる。
【００４０】
また、メモリアクセス部２８は、インタフェース部２１から読出アクセス信号（読出指令、アドレスを含む）を受けた場合、或いはメモリ監視部２７から監視処理の実行中を表す監視処理実行信号ＥＸ及び読出アクセス信号を受けた場合には、当該読出アクセス信号にて示されるアドレス及び読出信号をメモリセルアレイ部１０に供給する。これにより、メモリセルアレイ部１０は、図２に示すデータ形態を有する暗号データＥＤ、平文パリティビットＰ１、及び暗号パリティビットＰ２を読み出す。この読み出されたデータ（ＥＤ、Ｐ１、Ｐ２）は読出暗号データＲＥＤとして復号部２５及び誤り検出部２６に供給される。
【００４１】
ここで、ホスト装置からの読出アクセスに応じた読出処理の実行中は、誤り検出部２６には、監視処理の非実行中を表す監視処理実行信号ＥＸが供給されている。よって、誤り検出部２６は、上記した平文パリティ検査を実行し、その結果を表す誤り検出結果信号ＰＣをメモリアクセス部２８に供給する。この際、誤り有りを表す誤り検出結果信号ＰＣを受けた場合、メモリアクセス部２８は再読出処理（後述する）を実行する。
【００４２】
以下に、メモリセルアレイ部１０からのデータ読出時に、復号部２５及び誤り検出部２６において実施される誤り検出処理について説明する。
【００４３】
図３は、当該誤り検出処理の手順を示すフローチャートである。図３において、復号部２５及び誤り検出部２６は、先ず、監視処理実行信号ＥＸに基づき監視処理の実行中であるか否かを判定する（ステップＳ１１）。
【００４４】
ステップＳ１１にて監視処理の実行中ではないと判定された場合、復号部２５は、メモリセルアレイ部１０から読み出された、図２に示すデータ形態を有する読出暗号データＲＥＤに含まれる暗号データＥＤに対して暗号を解除する復号を実行する（ステップＳ１２）。ステップＳ１２により、復号部２５は、当該復号によって暗号が解除されたデータを読出データＲＤとして誤り検出部２６に供給する。
【００４５】
次に、誤り検出部２６が、当該読出データＲＤからパリティビットを算出し、この算出したパリティビットの論理レベルと平文パリティビットＰ１の論理レベルとが一致するか否かを判定することにより、パリティエラーが有るか否かを表すパリティ検査結果を得る、平文パリティ検査を実行する（ステップＳ１３）。  一方、ステップＳ１１において監視処理の実行中であると判定された場合、復号部２５は、自身の動作を停止、つまり暗号データＥＤに対する復号処理を停止する（ステップＳ１４）。
【００４６】
次に、誤り検出部２６が、読出暗号データＲＥＤに含まれる暗号データＥＤに平文パリティビットＰ１を付加したデータブロックからパリティビットを算出し、この算出したパリティビットの論理レベルと暗号パリティビットＰ２の論理レベルとが一致するか否かを判定する。これにより、誤り検出部２６は、パリティエラーが有るか否かを表すパリティ検査結果を得る暗号パリティ検査を実行する（ステップＳ１５）。
【００４７】
そして、このステップＳ１５又は上記したステップＳ１３の実行後、誤り検出部２６は、上記した平文パリティ検査の結果、或いは暗号パリティ検査の結果に基づき、誤りの有無を表す誤り検出結果信号ＰＣを生成する（ステップＳ１６）。
【００４８】
このように、メモリコントローラ２０では、情報データを暗号化した暗号データＥＤに平文パリティビットＰ１、暗号パリティビットＰ２を付加したものをメモリセルアレイ部１０に書き込む。尚、平文パリティビットＰ１は、誤り検出用の第１の符号として、暗号化前の平文状態の情報データに基づいて算出されたパリティビットである。また、暗号パリティビットＰ２は、誤り検出用の第２の符号として、暗号データＥＤに基づいて算出されたパリティビットである。
【００４９】
ここで、メモリコントローラ２０は、データ読出時に実施するパリティ検査の方法を、当該データ読出がメモリの監視処理に伴う読出処理であるか否かにより、以下のように切り替えている。
【００５０】
すなわち、ホスト装置からの読出指令に応じたデータの読出処理時、つまりメモリ監視部２７による監視処理が非実行中である場合には、メモリコントローラ２０は、平文パリティ検査を行う。つまり、メモリコントローラ２０は、暗号データＥＤを復号した読出データＲＤに対して、読出暗号データＲＥＤに含まれる平文パリティビットＰ１を用いたパリティ検査を行う（Ｓ１３）。
【００５１】
一方、監視処理が実行中である場合、つまり監視処理に伴うデータ読出時には、メモリコントローラ２０は、暗号パリティ検査を行う。すなわち、メモリコントローラ２０は、読出暗号データＲＥＤに含まれる暗号データＥＤに平文パリティビットＰ１を付加したデータブロックに対して、暗号パリティビットＰ２を用いたパリティ検査を行う（Ｓ１５）。
【００５２】
このように、暗号パリティ検査では復号部２５による復号処理が不要となる。そこで、この際、メモリ監視部２７は、自身の監視処理の実行期間に亘り復号部２５の動作を停止させ（Ｓ１４）、暗号パリティ検査の結果に基づく誤りの総数に対応したメモリの劣化度を求める。
【００５３】
よって、メモリの監視処理時においては復号部２５での電力消費量力が実質的にゼロとなるので、半導体記憶装置１００の電力消費量が小さくなる。更に、上記した監視処理では復号処理が終了するのを待つことなく、メモリセルアレイ部１０から読み出されたデータ（ＥＤ、Ｐ１、Ｐ２）に対して直ちにパリティ検査を施すことができるので、監視処理に費やされる時間を短縮することが可能となる。
【００５４】
ところで、上記実施例では、監視処理でのパリティ検査として暗号パリティ検査を採用しているが、ホスト装置からの読出アクセスに応じて再読出処理が実施された場合にも、同様に暗号パリティ検査を行うようにしても良い。
【００５５】
尚、再読出処理は、監視処理の非実行時に、ホスト装置からの読出アクセスに応じてメモリセルアレイ部１０から読み出され、且つ復号されたデータ（ＲＤ、Ｐ１）に対する平文パリティ検査の結果が誤り有りを表す場合に実施される処理である。再読出処理では、パリティ検査の結果が誤り無しを表す状態になるまで、或いは読み出し回数が所定の上限に到るまで、読み出し条件（例えば読出電圧の電圧値）を変更しながら、同一のアドレスからデータを繰り返し読み出す。
【００５６】
図４は、メモリアクセス部２８が実行する再読出処理のフローを表すフローチャートである。先ず、メモリアクセス部２８は、復号部２５の動作を停止させる（ステップＳ２１）。
【００５７】
次に、メモリアクセス部２８は、メモリセルアレイ部１０における現時点での読出条件を変更、例えば読出用電圧の電圧値を所定値だけ増加又は低下させる（ステップＳ２２）。次に、メモリアクセス部２８は、上記した読出アクセスによって指定されたアドレスと同一のアドレスからデータを読み出す読出制御をメモリセルアレイ部１０に施す（ステップＳ２３）。
【００５８】
次に、メモリアクセス部２８は、誤り検出部２６に暗号パリティ検査を実行させる（ステップＳ２４）。
【００５９】
次に、メモリアクセス部２８は、誤り検出部２６から供給された誤り検出結果信号ＰＣが誤り有りを表すか否かを判定する（ステップＳ２５）。
【００６０】
ステップＳ２５において、誤り検出結果信号ＰＣが誤り有りを表すと判定された場合、メモリアクセス部２８は、再読出の回数が所定の上限に到達したか否かを判定する（ステップＳ２６）。
【００６１】
ステップＳ２６において再読出の回数が所定の上限に到達していないと判定された場合、メモリアクセス部２８は、ステップＳ２２の実行に戻り、前述したステップＳ２２〜Ｓ２５の動作を再び実行する。つまり、読出条件を変更（Ｓ２２）した後、再び、同一のアドレスからデータ（ＥＤ、Ｐ１、Ｐ２）を読み出し（Ｓ２３）、読み出され暗号データＥＤに平文パリティビットＰ１を付加したデータブロックに対して、暗号パリティビットＰ２を用いたパリティ検査（暗号パリティ検査）を行う（Ｓ２４）。
【００６２】
一方、当該ステップＳ２６において再読出の回数が所定の上限に到達したと判定された場合、或いは上記ステップＳ２５において誤り検出結果信号ＰＣが誤り有りを表していないと判定された場合、メモリアクセス部２８は、復号部２５の復号動作を再開させる（ステップＳ２７）。
【００６３】
このように、図４に示す再読出処理では、メモリセルアレイ部１０から繰り返し読み出されたデータに施すパリティ検査として暗号パリティ検査を採用している。よって、再読出処理の実行期間中は復号部２５による復号動作が不要となるので、図４に示す再読出処理では、この再読出処理の実行中に亘り、復号部２５の動作を停止（Ｓ２１、Ｓ２７）させている。
【００６４】
これにより、再読出処理時において復号部２５で消費される電力が実質的にゼロとなるので、半導体記憶装置１００の電力消費量が小さくなる。更に、図４に示す再読出処理では、復号部２５での復号処理の終了を待つことなく、メモリセルアレイ部１０から読み出されたデータ（ＥＤ、Ｐ２）に対して直ちにパリティ検査を施すことができるので、再読出処理に費やされる時間を短縮することが可能となる。
【００６５】
尚、上記実施例におけるパリティ算出部２３では、暗号データＥＤに平文パリティビットＰ１を付加したデータブロックから暗号パリティビットＰ２を算出しているが、暗号データＥＤから直接算出したパリティビットを暗号パリティビットＰ２としても良い。この際、暗号パリティ検査では、誤り検出部２６は、暗号データＥＤからパリティビットを算出し、この算出したパリティビットの論理レベルと暗号パリティビットＰ２の論理レベルとが一致するか否かを判定する。
【００６６】
また、上記実施例では、メモリセルアレイ部１０から読み出されたデータに対する誤り検出方式としてパリティ検査を採用しているが、他の誤り検出方式、例えばＣＲＣ（Cyclic Redundancy Check）を採用しても良い。或いは、当該誤り検出方式として誤り訂正符号を採用しても良い。
【００６７】
例えば、誤り検出方式としてＣＲＣを採用した場合、パリティ算出部２３に代えて、ＣＲＣ方式に従った所定の生成多項式によって誤り検出用の少なくとも１ビットの符号を算出するＣＲＣ符号算出部を採用する。当該ＣＲＣ符号算出部は、書込データＷＲＤに基づいて算出した符号を図２に示すＰ１、暗号データＥＤに基づいて算出した符号をＰ２としてバッファ２４に供給する。また、この際、誤り検出部２６は、暗号解除された読出データＲＤに符号Ｐ１を付加したビットストリーム、又は暗号データＥＤに符号Ｐ２を付加したビットストリームに対して、ＣＲＣ符号算出部で用いた生成多項式に従った演算を施す。これにより、誤り検出部２６は、誤りビットの有無を表す誤り検出結果信号ＰＣを得る。
【００６８】
要するに、半導体記憶装置１００としては、書込指令又は読出指令を受けてメモリ（１０）を制御するメモリコントローラ（２０）として、以下の監視部、メモリアクセス部、復号部、及び誤り検出部を含むものであれば良い。
【００６９】
監視部（２７）は、メモリ（１０）から読み出されたデータに生じている誤りの数に対応したメモリの劣化度を監視する監視処理を断続的に実行する。メモリアクセス部（２７）は、書込指令を受けた場合には、書込対象となる情報データ（ＷＲＤ）を暗号化した暗号データ（ＥＤ）、この情報データに基づく誤り検出用の第１の符号（Ｐ１）、及び暗号データに基づく誤り検出用の第２の符号（Ｐ２）をメモリ（１０）に書き込む。また、メモリアクセス部（２７）は、読出指令を受けた場合又は監視処理の実行時には、メモリ（１０）から暗号データ（ＥＤ）、第１の符号（Ｐ１）、及び第２の符号（Ｐ２）を読み出す。
【００７０】
復号部（２５）は、メモリ（１０）から読み出された暗号データ（ＥＤ）を復号することにより暗号解除された読出データ（ＲＤ）を得る。
【００７１】
誤り検出部（２６）は、読出データ（ＲＤ）及びメモリ（１０）から読み出された第１の符号（Ｐ１）に誤り検出処理を施すことにより第１の誤り検出結果を得る。或いは、誤り検出部（２６）は、メモリ（１０）から読み出された暗号データ（ＥＤ）及び第２の符号（Ｐ２）に誤り検出処理を施すことにより第２の誤り検出結果を得る。ここで、監視部（２７）は、監視処理の実行時には、復号部（２５）の動作を停止させると共に上記した第２の誤り検出結果に基づきメモリ（１０）の劣化度を求める。
【符号の説明】
【００７２】
１０      メモリセルアレイ部
２０      メモリコントローラ
２２      暗号化部
２３      パリティ算出部
２５      復号部
２６      誤り検出部
２７      メモリ監視部
１００    半導体記憶装置
【図１】
2018194948.tif 000003
【図２】
2018194948.tif 000004
【図３】
2018194948.tif 000005
【図４】
2018194948.tif 000006