(57)【要約】【課題】長寿命化を図ることが可能な半導体記憶装置の制御方法を提供すること。【解決手段】演算部２１は、構成情報３２（分割情報）に従って、各セクタＳＣ１〜ＳＣ３を複数のセグメントＫ１１〜Ｋ１４，・・・，Ｋ３１〜Ｋ３４に分割する。演算部２１は、プロセス情報３１（ばらつき値、感度値）に従って、各セグメントＫ１１〜Ｋ１４，Ｋ２１〜Ｋ２４，Ｋ３１〜Ｋ３４におけるビット誤り率の確率分布を算出し、算出した確率分布を補助管理領域Ａ１１〜Ａ１４，Ａ２１〜Ａ２４，Ａ３１〜Ａ３４に格納する。さらに、演算部２１は、管理領域ＭＡ１〜ＭＡ３に格納した確率分布に基づいて、対応するセクタＳＣ１〜ＳＣ３のイールド値Ｙ１〜Ｙ３を算出する。制御部２０は、演算部２１により算出された各セクタＳＣ１〜ＳＣ３のイールド値Ｙ１〜Ｙ３に基づいて、優先してアクセスするセクタを選択する。【選択図】図３
2014026696.tif 000002
【特許請求の範囲】
【請求項１】
複数の不揮発性のメモリセルを含む複数の主記憶領域を有する記憶装置の制御方法であって、
前記複数の主記憶領域をそれぞれ複数の副記憶領域に分割し、
前記複数の副記憶領域のうち、ビット誤りが発生したメモリセルを含む第１の副記憶領域について、前記記憶装置に記憶されたプロセスばらつき値を含む第１の情報に基づいて算出したビット誤り率の確率分布を管理領域に格納し、
前記複数の副記憶領域のうち、前記第１の副記憶領域以外の第２の副記憶領域について、前記第１の情報と前記第１の副記憶領域と前記第２の副記憶領域の間の距離に基づく第２の情報に基づいて算出したビット誤り率の確率分布を前記管理領域に格納し、
前記管理領域から前記複数の副記憶領域に対する前記確率分布を読み出し、前記複数の主記憶領域のそれぞれに対して、各主記憶領域における前記ビット誤り率に基づく前記ビット誤りがないデータアクセスの歩留まりを表す第３の情報を算出し、
前記複数の主記憶領域に対する前記第３の情報に従ってアクセスする主記憶領域を選択する、
ことを特徴とする記憶装置の制御方法。
【請求項２】
前記第３の情報は、１つの前記主記憶領域に含まれる前記複数の副記憶領域に対応する前記確率分布を積分演算して得られること、を特徴とする請求項１に記載の記憶装置の制御方法。
【請求項３】
前記第２の情報は、前記第１の副記憶領域と前記第２の副記憶領域の間の距離に応じて設定される係数であること、を特徴とする請求項１または２に記載の記憶装置の制御方法。
【請求項４】
記憶装置に格納された分割情報に従って前記複数の主記憶領域のそれぞれを前記分割情報に応じた数の前記副記憶領域に分割すること、を特徴とする請求項１〜３のうちの何れか一項に記載の記憶装置の制御方法。
【請求項５】
前記記憶装置に格納された分割情報に従って前記記憶装置を前記分割情報に応じた数の前記主記憶領域に分割すること、を特徴とする請求項１〜４のうちの何れか一項に記載の記憶装置の制御方法。
【請求項６】
複数の不揮発性のメモリセルを含む複数の主記憶領域を有する記憶装置の制御装置であって、
前記複数の主記憶領域をそれぞれ複数の副記憶領域に分割し、前記複数の副記憶領域のうち、ビット誤りが発生したメモリセルを含む第１の副記憶領域について、前記記憶装置に記憶されたプロセスばらつき値を含む第１の情報に基づいて算出したビット誤り率の確率分布を管理領域に格納し、前記複数の副記憶領域のうち、前記第１の副記憶領域以外の第２の副記憶領域について、前記第１の情報と前記第１の副記憶領域と前記第２の副記憶領域の間の距離に基づく第２の情報に基づいて算出したビット誤り率の確率分布を前記管理領域に格納し、前記管理領域から前記複数の副記憶領域に対する前記確率分布を読み出し、前記複数の主記憶領域のそれぞれに対して、各主記憶領域における前記ビット誤り率に基づく前記ビット誤りがないデータアクセスの歩留まりを表す第３の情報を算出する演算部と、
前記複数の主記憶領域に対する前記第３の情報に従ってアクセスする主記憶領域を選択する制御部と、
を有することを特徴とする記憶装置の制御装置。
【請求項７】
複数の不揮発性のメモリセルを含む複数の主記憶領域を有する記憶装置を制御する処理装置が実行する制御プログラムであって、
前記処理装置が、
前記複数の主記憶領域をそれぞれ複数の副記憶領域に分割し、
前記複数の副記憶領域のうち、ビット誤りが発生したメモリセルを含む第１の副記憶領域について、前記記憶装置に記憶されたプロセスばらつき値を含む第１の情報に基づいて算出したビット誤り率の確率分布を管理領域に格納し、
前記複数の副記憶領域のうち、前記第１の副記憶領域以外の第２の副記憶領域について、前記第１の情報と前記第１の副記憶領域と前記第２の副記憶領域の間の距離に基づく第２の情報に基づいて算出したビット誤り率の確率分布を前記管理領域に格納し、
前記管理領域から前記複数の副記憶領域に対する前記確率分布を読み出し、前記複数の主記憶領域のそれぞれに対して、各主記憶領域における前記ビット誤り率に基づく前記ビット誤りがないデータアクセスの歩留まりを表す第３の情報を算出し、
前記複数の主記憶領域に対する前記第３の情報に従ってアクセスする主記憶領域を選択する、
処理を含む制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
半導体記憶装置の制御装置、半導体記憶装置の制御方法、及び制御プログラムに関する。
【背景技術】
【０００２】
従来、パーソナルコンピュータ等の電子機器は、データを記憶する記憶装置を備える。記憶装置の１個は、例えば不揮発性の半導体記憶装置である。不揮発性の半導体記憶装置、例えばフラッシュメモリは、記憶内容を電気的に書換え可能である。
【０００３】
フラッシュメモリに代表される不揮発性の半導体記憶装置は、各メモリセルに対する記憶内容の書換え回数に制限があり、その制限を超える回数の書換えが行われたメモリセルは、データの保持が保証されない。即ち、メモリセルに対する書換え回数の制限は、半導体記憶装置の使用可能な期間、つまり寿命に影響する。
【０００４】
半導体記憶装置の寿命を延ばす方法の一つは、書換え回数や消去回数を平均化するもの（所謂ウェアレベリング）である（例えば、特許文献１，２参照）。
ところで、不揮発性の半導体記憶装置は、データを一括して消去する複数の領域（例えば、セクタと呼ばれる）を有している。各領域における読み出しデータにおけるビット誤り率（BER：Bit Error Rate）は、互いに異なる場合がある。そして、各領域におけるビット誤り率は、各領域の使用状況に応じて変化する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平６−１２４５９６号公報
【特許文献２】特開２００３−２０８３５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、各セクタの書換え回数や消去回数を平均化する方法では、複数の領域において、最もビット誤り率が大きな領域が使用できなくなると、１個の半導体記憶装置全体が使用できなくなる。つまり、最もビット誤り率が大きな領域によって１つの半導体記憶装置の寿命が決定される。
【課題を解決するための手段】
【０００７】
本発明の一観点によれば、複数の不揮発性のメモリセルを含む複数の主記憶領域を有する記憶装置の制御方法であって、前記複数の主記憶領域をそれぞれ複数の副記憶領域に分割し、前記複数の副記憶領域のうち、ビット誤りが発生したメモリセルを含む第１の副記憶領域について、記憶装置に記憶されたプロセスばらつき値を含む第１の情報に基づいて算出したビット誤り率の確率分布を管理領域に格納し、前記複数の副記憶領域のうち、前記第１の副記憶領域以外の第２の副記憶領域について、前記第１の情報と前記第１の副記憶領域と前記第２の副記憶領域の間の距離に基づく第２の情報に基づいて算出したビット誤り率の確率分布を前記管理領域に格納し、前記管理領域から前記複数の副記憶領域に対する前記確率分布を読み出し、前記複数の主記憶領域のそれぞれに対して、各主記憶領域における前記ビット誤り率に基づく前記ビット誤りがないデータアクセスの歩留まりを表す第３の情報を算出し、前記複数の主記憶領域に対する前記第３の情報に従ってアクセスする主記憶領域を選択する。
【発明の効果】
【０００８】
本発明の一観点によれば、長寿命化を図ることが可能な半導体記憶装置の制御方法、半導体記憶装置の制御装置、及び制御プログラムを提供することができる。
【図面の簡単な説明】
【０００９】
【図１】電子機器の概略図である。
【図２】記憶装置の概略図である。
【図３】記憶装置をアクセスするためのソフトウェアの概略図である。
【図４】制御部の処理を示すフローチャートである。
【図５】（ａ）（ｂ）は距離相関の説明図である。
【図６】制御部の処理を示す説明図である。
【発明を実施するための形態】
【００１０】
以下、一実施形態を図１〜図６に従って説明する。
図１に示すように、電子機器１０は例えばパーソナルコンピュータであり、処理装置１１、メモリ１２、記憶装置１３、周辺装置１４を含み、これらはバス１５を介して相互に接続されている。処理装置１１は、例えば中央演算処理装置（ＣＰＵ）である。メモリ１２は、例えばダイナミックランダムアクセスメモリ（ＤＲＡＭ）であり、各種処理を提供するために必要なプログラムとデータが適宜格納される。記憶装置１３は、不揮発性の半導体記憶装置（例えば、フラッシュメモリ）を用いた装置であり、プログラムデータを含むファイルや、各種データを含むファイルが格納される。周辺装置１４は、表示装置，入力装置、またはそれらを接続するためのインタフェース回路を含む。処理装置１１は、バス１５を介して記憶装置１３のファイルに格納されたデータを読み出し、そのデータに基づいて、処理を実行する。そして、処理装置１１は、実行する処理に従って作成したデータを含むファイルを、バス１５を介して記憶装置１３に格納する。
【００１１】
［記憶装置１３の概略］
図２に示すように、記憶装置１３は、少なくとも１個のメモリチップＨ１を含む。メモリチップＨ１は、複数（図２において９個）のセクタＳＣ１〜ＳＣ９を有している。各セクタＳＣ１〜ＳＣ９は、例えば行列状（マトリックス状）に配列されている。各セクタＳＣ１〜ＳＣ９は、それぞれ複数のメモリセルＭＣを含む。各セクタＳＣ１〜ＳＣ９に含まれるメモリセルＭＣは、行列状（マトリックス状）に配列されている。１個のメモリセルＭＣは、例えば１ビットのデータを記憶する。１個のセクタに含まれる全てのメモリセルに記憶されたデータは、同時に消去される。１個のセクタにおけるメモリ容量は、例えば４Ｋバイト〜８Ｋバイトである。セクタは、不揮発性半導体記憶装置において、複数のデータが同時に消去される領域の一例である。
【００１２】
［記憶装置１３をアクセスするためのソフトウェアの概略］
図３に示すように、制御プログラム２０は記憶装置１３をアクセスするために利用されるソフトウェアであり、例えば図１に示す処理装置１１により実行される。この制御プログラム２０とファイル３１，３２は、例えば記憶装置１３に記憶される。制御プログラム２０は、処理装置１１によって記憶装置１３からメモリ１２へ転送され、処理装置１１によって実行される。
【００１３】
制御プログラム２０は例えば、文章作成や表計算のためのアプリケーションプログラムと、記憶装置１３に依存する処理等を行うためのプログラム（デバイスドライバ）との間に合って、アプリケーションプログラムとデバイスドライバの間を連絡するプログラムである。このようなプログラムは、例えばアプリケーションプログラミングインタフェース（API：Application Programming Interface）と呼ばれる。制御プログラム２０は例えば、単独で、または他の周辺機器（デバイス）に対応するプログラムとともに、アプリケーションプログラムから呼び出される関数として提供される。
【００１４】
処理装置１１は、ファイル３１，３２に格納された情報に従って制御プログラム２０を実行し、記憶装置１３に対するアクセスを制御する。制御プログラム２０は、演算部２１を含む。演算部２１は、記憶装置１３において設定された複数の領域（例えばセクタ）におけるイールド値Ｙｎ（ｎは領域を示す番号）を算出するためのプログラムデータを含む。処理装置１１は、演算部２１を実行し、各領域に対するイールド値Ｙｎを算出する。
【００１５】
制御プログラム２０による記憶装置１３のアクセス制御、演算部２１によるイールド値Ｙｎの算出を説明する。なお、この図３にかかる説明において、制御プログラム２０を実行する処理装置１１の動作を制御部２０の動作として説明し、演算部２１を実行する処理装置１１の動作を演算部２１の動作として説明する。
【００１６】
先ず、ファイル３１，３２について説明する。
ファイル３１には、プロセス情報が格納されている。プロセス情報は、プロセスばらつき値と感度の値（感度値）を含む。プロセスばらつき値は第１の情報の一例であり、感度は第２の情報の一例である。
【００１７】
プロセスばらつき値は、メモリチップＨ１を形成するプロセスに依存する値であり、この値はメモリチップＨ１のテクノロジ毎に異なる。プロセスばらつき値は、メモリチップＨ１に対して発生するシステマティックなばらつきの値と、メモリチップＨ１に含まれるメモリセルに対してランダムに発生するばらつきの値を含む。
【００１８】
図２に示すメモリセルＭＣは、例えば浮遊ゲートを有するＭＯＳ型トランジスタである。トランジスタのしきい値は、ビット誤り率に影響する。トランジスタのしきい値のばらつきは、プロセスに起因する物理的なばらつきに応じて変動する。プロセスに起因するばらつきは、パターンの形状（LER：line edge roughness やLWR：line width roughness）や酸化膜（例えばゲート酸化膜）の膜厚（Tox ）等のシステマティックなばらつきと、不純物量やウェハ形状（うねり、凹凸）等のランダムばらつきを含む。例えば、酸化膜欠陥によるチャージロス／ゲインや不純物（ドーパント）ばらつきによる劣化増大は、ビット誤り率を増加させる。
【００１９】
感度の値は、プロセスばらつきが確率に与える影響の強さである。感度値は、プロセスばらつきに応じて設定される。例えば、感度の値は、メモリチップＨ１上の距離に対応する。例えば、図５（ａ）に示すように、横軸の距離と縦軸の感度の値において、距離に従って感度の値が小さくなる直線を示す演算式として設定される。
【００２０】
プロセス情報は、例えば評価用チップ（ＴＥＧ）の測定結果に基づいて設定される。このプロセス情報は、例えばプロセス部門から提供される。
ファイル３２には、構成情報（コンフィグレーション情報）が格納されている。構成情報は、メモリチップＨ１に含まれる各セクタのサイズ（メモリ容量）（以下、セクタサイズ）を含む。また、構成情報は、メモリチップＨ１の各セクタを複数のセグメントに分割するための分割情報を含む。分割情報は、例えば、１個のセグメントのサイズ（メモリ容量）である。
【００２１】
セグメントのサイズは、例えば、用途（適用アプリケーションプログラム）に応じて設定される。セグメントのサイズを大きな値に設定すると、１個のセクタに含まれる各セグメントの数が少なくなるため、計算に要する時間短くなる。一方、セグメントのサイズを小さな値に設定すると、セグメント間の相関（例えば、距離に応じた相関）に対する影響の演算精度が向上する。
【００２２】
構成情報（コンフィグレーション情報）を含むファイル３２を提供することにより、各種の変更に容易に対応することができる。例えば、セクタ数やメモリ容量が異なるメモリチップを含む記憶装置を用いた場合、その記憶装置に応じた構成情報を含むファイルを用いることにより、容易に対応することができる。
【００２３】
なお、以下の説明において、プロセス情報、構成情報のそれぞれに、ファイルの符号を付し、プロセス情報３１、構成情報３２として説明することがある。
次に、演算部２１、制御部２０の動作を説明する。
【００２４】
図３に示すように、演算部２１は、構成情報３２（分割情報）に従って、各セクタＳＣ１〜ＳＣ３を複数のセグメントに分割する。なお、図３には、説明を簡単にするために、３個のセクタＳＣ１〜ＳＣ３を示す。演算部２１は、セクタＳＣ１を、構成情報３２（分割情報）に従って複数（図３において４個）のセグメントＫ１１〜Ｋ１４に分割する。同様に、演算部２１は、セクタＳＣ２，ＳＣ３を、それぞれセグメントＫ２１〜Ｋ２４，Ｋ３１〜Ｋ３４に分割する。なお、各セグメントの符号は、セクタの番号ｉと、セクタに含まれるセグメントの番号ｊにより、「Ｋｉｊ」（ｉ＝１〜３，ｊ＝１〜４）として示している。図３において、各セクタＳＣ１，ＳＣ２，ＳＣ３は、主記憶領域の一例であり、各セグメントＫ１１〜Ｋ１４，Ｋ２１〜Ｋ２４，Ｋ３１〜Ｋ３４は、副記憶領域の一例である。
【００２５】
そして、演算部２１は、セクタＳＣ１〜ＳＣ３に対応する管理領域ＭＡ１〜ＭＡ３を設定する。管理領域ＭＡ１〜ＭＡ３は、データの書き込み及び読み出しが可能な記憶領域、例えば、記憶装置１３の領域の一部に設定される。さらに、演算部２１は、各管理領域ＭＡ１〜ＭＡ３に対して、各セクタＳＣ１〜ＳＣ３のセグメントＫ１１〜Ｋ１４，Ｋ２１〜Ｋ２４，Ｋ３１〜Ｋ３４に対応する補助管理領域Ａ１１〜Ａ１４，Ａ２１〜Ａ２４，Ａ３１〜Ａ３４を設定する。
【００２６】
演算部２１は、プロセス情報３１（プロセスばらつき値、感度値）に従って、セクタＳＣ１のセグメントＫ１１におけるビット誤り率の確率分布を算出し、算出した確率分布を補助管理領域Ａ１１に格納する。セグメントにおける確率分布は、正規分布となり、その平均値μと分散値σ2 の説明変量は、プロセスばらつき、動作温度、動作電圧、等のばらつき要因である。なお、確率分布において、平均値μに対してマイナス側は、ビット誤りの確率が高くなることを意味する。そして、セグメントにおいてビット誤りが発生すると、確率分布の平均値μは、マイナス側にシフトする。例えば、演算部２１は、セグメントＫ１１における確率分布を、次式により算出する。
【００２７】
【数１】
2014026696.tif 000003
上記の式に示すように、演算部２１は、セグメント内のばらつきＸR と相関を持ったセグメント間のばらつきＸCOV を考慮した確率分布を算出する。
【００２８】
図２に示すメモリチップＨ１において、各メモリセルＭＣにおけるビット誤り率は、メモリチップＨ１を形成するプロセスにおけるシステマティックなばらつきの影響を受ける。例えば、メモリチップＨ１において隣接する２個のメモリセルＭＣにおけるそれぞれのビット誤り率は、メモリセルＭＣの使用に応じて互いに同じように変化する確率が高い。つまり、２個の隣接するメモリセルＭＣのビット誤り率は、互いに相関を持つ。
【００２９】
なお、隣接する２個のメモリセルＭＣは、同じセクタに含まれるとは限らない。即ち、隣接する２個のメモリセルＭＣのうち、一方のメモリセルＭＣは対応するセクタ（第１のセクタ）に含まれ、他方のメモリセルＭＣは第１のセクタと隣接する第２のセクタに含まれる場合がある。なお、システマティックなばらつきの影響は、隣接するメモリセルに限られず、離れた２個のメモリセルＭＣにおいても、プロセス等に応じた所定の傾向にて互いに相関を持つ。したがって、これらのプロセス等に応じた影響を感度値βi としてセグメント間のばらつきを考慮する。
【００３０】
同様に、演算部２１は、セクタＳＣ１のセグメントＫ１２〜Ｋ１４におけるビット誤り率の確率分布を算出し、算出した確率分布を補助管理領域Ａ１２〜Ａ１４に格納する。同様に、演算部２１は、セクタＳＣ２，ＳＣ３の各セグメントＫ２１〜Ｋ２４，Ｋ３１〜Ｋ３４におけるビット誤り率の確率分布をそれぞれ算出し、算出した確率分布を補助管理領域Ａ２１〜Ａ２４，Ａ３１〜Ａ３４に格納する。
【００３１】
さらに、演算部２１は、管理領域ＭＡ１の各補助管理領域Ａ１１〜Ａ１４に格納した確率分布に基づいて、対応するセクタＳＣ１のイールド値Ｙ１を算出する。演算部２１は、算出したイールド値Ｙ１を所定の領域、例えばメモリ１２（図１参照）に含まれる領域に格納する。例えば、演算部２１は、セクタＳＣ１のイールド値Ｙ１を、次式により算出する。
【００３２】
【数２】
2014026696.tif 000004
例えば、セクタに含まれる複数のセグメントにおけるビット誤り率がランダムな要因のみによって発生する場合、セクタにおける確率分散は、単純な最小値演算（ＭＩＮ演算）により求めることが可能である。しかし、セクタに含まれる複数のセグメントにおけるビット誤り率は、プロセス等に起因するメモリチップＨ１内のシステマティックなばらつきの影響を受ける。このため、単純な最小値演算による得られる分布は、実際のビット誤り率の分布を表していない。
【００３３】
これに対し、本実施形態は、上記の式に示すように、１個のセクタにおけるイールド値は、そのセクタに含まれる全てのセグメントにおけるビット誤り率の確率分布において、正の値のビット誤り率Ｓｉ（Ｓｉ＞０）を積分演算した結果の値である。このため、演算により得られるイールド値Ｙ１は、実際のビット誤り率に応じた値となる。
【００３４】
同様に、演算部２１は、管理領域ＭＡ２の各補助管理領域Ａ２１〜Ａ２４に格納した確率分布に基づいて、対応するセクタＳＣ２のイールド値Ｙ２を算出する。さらに、演算部２１は、管理領域ＭＡ３の各補助管理領域Ａ３１〜Ａ３４に格納した確率分布に基づいて、対応するセクタＳＣ３のイールド値Ｙ３を算出する。
【００３５】
制御部２０は、演算部２１により算出された各セクタＳＣ１〜ＳＣ３のイールド値Ｙ１〜Ｙ３に基づいて、優先してアクセスするセクタを選択する。例えば、制御部２０は、セクタＡＣ１〜ＳＣ３のうち、最も大きなイールド値のセクタから順にアクセスの対象として選択する。各セクタＳＣ１〜ＳＣ３のイールド値Ｙ１〜Ｙ３は、各セクタＳＣ１〜ＳＣ３のビット誤り率に対応（Ｙ＝１−ビット誤り率）する。従って、イールド値Ｙ１〜Ｙ３に応じてアクセスするセクタを選択することにより、アクセスにおけるビット誤りの発生する確率が少なくなる。つまり、ビット誤りの発生を抑制することが可能となる。イールド値Ｙ１〜Ｙ３は第３の情報の一例である。
【００３６】
次に、制御部２０（演算部２１）における処理の流れを説明する。
図４に示すように、ステップ４１［プロセス情報の設定］において、処理装置１１は、ファイル３１に格納されたプロセス情報を読み込み、確率分布を算出する演算式における係数、感度値を設定する。次に、ステップ４２［構成情報の設定］において、処理装置１１は、ファイル３２に格納された構成情報（コンフィグレーション情報）を読み込む。そして、ステップ４３［管理領域の設定］において、処理装置１１は、構成情報に従って各セクタを複数のセグメントに分割し、分割した各セグメントに対応する補助管理領域を設定する。また、処理装置１１は、各セクタに対応するイールド値の初期値を設定する。イールド値の初期値は、例えば「１００（％）」である。
【００３７】
なお、ステップ４１〜４３の処理は、記憶装置１３における最初の使用時に１回実行される処理である。即ち、ステップ４１〜４３の処理は、記憶装置１３に対する初期化処理の一例である。
【００３８】
ステップ４４［セクタ選択］において、処理装置１１は、セクタのイールド値に応じた加重平均により、アクセスするセクタを選択する。
ステップ４５［セクタアクセス］において、処理装置１１は、アプリケーションプログラムにより設定されるパラメータに応じて記憶装置１３をアクセスする。
【００３９】
例えば、書き込み動作において、処理装置１１は、選択されたセクタ（ステップ４４）に対して、入力ファイルのデータ（ライトデータ）を書き込む。アプリケーションプログラムによるデータ（例えば、１個のファイル）の書き込みには、１個のセクタに含まれる複数のセグメント、または複数のセクタが必要となる。処理装置１１は、１個のセグメントに対するアクセスを行うと、次のステップ４６へ移行する。
【００４０】
ここで、書き込み処理の一例を説明する。処理装置１１は、対象のセグメントにデータを書き込む。次に、処理装置は、そのデータを書き込んだメモリセルＭＣからデータを読み出し、その読み出したデータ（リードデータ）をライトデータと比較し、一致するか否か判定する。リードデータがライトデータと一致する場合、処理装置１１は「エラー無し」と判定する。一方、処理装置１１はリードデータがライトデータと一致しない場合、「ビット誤り発生」と判定する。
【００４１】
ステップ４６において、処理装置１１は、記憶装置１３に対するアクセスを完了したか否かを判定する。アクセスを完了していない場合（判定：ＮＯ）、ステップ４７へ移行し、アクセスを完了した場合（判定：ＹＥＳ）、ステップ５０へ移行する。
【００４２】
ステップ４７［セグメント位置取得］において、処理装置１１は、アクセスしたセグメントの位置と、アクセスの結果（ビット誤りの有無）を取得する。
そして、ステップ４８において、処理装置１１は、ビット誤りが発生したか否かを判定する。ビット誤りが発生した場合（判定：ＹＥＳ）、ステップ４９へ移行し、ビット誤りが発生していない場合（判定：ＮＯ）、ステップ４５へ移行する。
【００４３】
ステップ４９［ビット誤り率更新］において、処理装置１１は、１個のメモリチップＨ１に含まれる複数のセグメントのビット誤り率（確率分布）を更新する。つまり、処理装置１１は、アクセスしたセグメントにおけるビット誤り率を算出し、算出した値を対応する管理領域に格納する。次いで、処理装置１１は、１個のメモリチップＨ１に含まれる複数のセグメントにおける確率分布をそれぞれ算出し、算出結果を管理領域に格納する。したがって、アクセスしたセグメントにおけるビット誤り率の確率分布と、そのセグメントに対して相関のあるセグメントにおけるビット誤り率の確率分布が、上記ステップ４５のアクセスよって発生したビット誤りの影響を受ける。
【００４４】
上記ステップ４６においてアクセス完了と判定した場合（判定：ＹＥＳ）、処理装置１１は、ステップ５０へ移行する。このステップ５０において、処理装置１１は、ビット誤りが発生したか否かを判定する。ビット誤りが発生した場合（判定：ＹＥＳ）、ステップ５１へ移行し、ビット誤りが発生していない場合（判定：ＮＯ）、ステップ４４へ移行する。
【００４５】
ステップ５１［イールド値算出］において、処理装置１１は、１個のメモリチップＨ１に含まれる複数のセクタにおけるイールド値を算出し、算出結果を管理領域に格納する。そして、処理装置１１は、ステップ４４へ移行する。
【００４６】
次に、制御部２０（演算部２１）による作用を説明する。
図６に示すように、メモリチップＨ１に含まれるセクタＳＣ１〜ＳＣ９は、それぞれ９個のセグメントＫ１１〜Ｋ１９，・・・，Ｋ９１〜Ｋ９９に分割される。図６において、各セクタＳＣ１〜ＳＣ９は、主記憶領域の一例であり、各セグメントＫ１１〜Ｋ１９，・・・，Ｋ９１〜Ｋ９９は、副記憶領域の一例である。
【００４７】
例えば、セグメントＫ５３に対するアクセスにおいてビット誤りが発生する。
演算部２１は、このセグメントＫ５３におけるビット誤り率を更新する。そして、演算部２１は、各Ｋ１１〜Ｋ１９，・・・，Ｋ９１〜Ｋ９９における確率分布を算出し、算出した確率分布をＫ１１〜Ｋ１９，・・・，Ｋ９１〜Ｋ９９に対応する補助管理領域にそれぞれ格納する。
【００４８】
この確率分布の算出において、ビット誤りが発生したセグメントＫ５３に対して相関のあるセグメントに対して、相関に応じた感度値βi によってセグメントＫ５３に対するセグメント間ばらつきが考慮される。例えば、距離に応じた感度値βi が設定される。このよりに応じた感度値βi は、相関係数の一例である。つまり、演算部２１は、ビット誤りが発生したセグメントＫ５３における確率分布を算出する。さらに、演算部２１は、セグメントＫ５３におけるビット誤り率の確率分布に基づいて、セグメントＫ５３以外のセグメントＫ１１〜Ｋ５２，Ｋ５４〜Ｋ９９におけるビット誤り率の確率分布を算出する。このばあい、セグメントＫ５３は第１の副記憶領域の一例であり、セグメントＫ１１〜Ｋ５２，Ｋ５４〜Ｋ９９は第２の副記憶領域の一例である。
【００４９】
図６に示す同心円Ｃ１，Ｃ２は、ビット誤りが発生したセグメントＫ５３の所定位置（例えば、セグメントＫ５３の領域における中心）からの距離に応じた感度値βi の設定例を示す。例えば、円Ｃ１は、感度値βi が「０．８」の位置を示し、円Ｃ２は、感度値βi が「０．５」の位置を示す。
【００５０】
演算部２１は、セクタＳＣ５のセグメントＫ５２，Ｋ５５，Ｋ５６について、感度値βi を「０．８」として確率分布を算出する。更に、演算部２１は、セクタＳＣ２のセグメントＫ２９について、感度値βi を「０．８」として確率分布を算出する。同様に、演算部２１は、セクタＳＣ５のセグメントＫ５１，Ｋ５８，Ｋ５９について、感度値βi を「０．５」として確率分布を算出する。更に、演算部２１は、セクタＳＣ２のセグメントＫ２６，Ｋ２８、セクタＳＣ３のセグメントＫ３７、セクタＳＣ６のセグメントＫ６１，Ｋ６４について、感度値βi を「０．５」として確率分布を算出する。この演算例において、セグメントＫ５３において発生するビット誤りは、円Ｃ１，Ｃ２がかかるセクタ、つまりセクタＳＣ２，ＳＣ３，ＳＣ５，ＳＣ６のイールド値に影響を与える。
【００５１】
なお、これらのセクタＳＣ２，ＳＣ３，ＳＣ５，ＳＣ６は、円Ｃ１，Ｃ２、つまり感度値βi が「０．８」「０．５」に対応するセクタを示す。従って、演算部２１は、他のセクタＳＣ１，ＳＣ４，ＳＣ７〜ＳＣ９について、対応する感度値βi にしたがってビット誤り率の確率分布を算出する。
【００５２】
例えば、セクタＳＣ２のセグメントＫ２９においてビット誤りが発生していない場合であっても、このセグメントＫ２９における確率分布が、セクタＳＣ５のセグメントＫ５３において発生したビット誤りの影響を受ける。
【００５３】
例えば、セグメントＫ２９に含まれるメモリセルＭＣは、セグメントＫ５３に含まれるメモリセルＭＣと同様のプロセスばらつき（システマティックなばらつき）を受ける。つまり、セグメントＫ２９に含まれるメモリセルＭＣの電気的特性は、セグメントＫ５３に含まれるメモリセルＭＣの電気的特性に近い。従って、セグメントＫ５３に含まれるメモリセルＭＣにおいてビット誤りが発生した場合、セグメントＫ２９に含まれるメモリセルＭＣにおいても、距離的に遠いセグメント、例えばセグメントＫ１１に含まれるメモリセルＭＣと比べ、ビット誤りが発生する確率が高い。つまり、セグメントＫ５９に含まれるメモリセルＭＣは、潜在的に高いビット誤り率を持つ。従って、このようなセグメントＫ２９を含むセクタＳＣ２に対し、他のセクタ（例えばセクタＳＣ１，ＳＣ４，ＳＣ７）を優先的にアクセスの対象とすることにより、ビット誤りの発生を抑制することができる。
【００５４】
以上記述したように、本実施形態によれば、以下の効果を奏する。
（１）演算部２１は、構成情報３２（分割情報）に従って、各セクタＳＣ１〜ＳＣ３を複数のセグメントＫ１１〜Ｋ１４，・・・，Ｋ３１〜Ｋ３４に分割する。演算部２１は、セクタＳＣ１〜ＳＣ３に対応する管理領域ＭＡ１〜ＭＡ３を設定し、各管理領域ＭＡ１〜ＭＡ３に対して、各セクタＳＣ１〜ＳＣ３のセグメントＫ１１〜Ｋ１４，Ｋ２１〜Ｋ２４，Ｋ３１〜Ｋ３４に対応する補助管理領域Ａ１１〜Ａ１４，Ａ２１〜Ａ２４，Ａ３１〜Ａ３４を設定する。
【００５５】
演算部２１は、プロセス情報３１（ばらつき値、感度値）に従って、各セグメントＫ１１〜Ｋ１４，Ｋ２１〜Ｋ２４，Ｋ３１〜Ｋ３４におけるビット誤り率の確率分布を算出し、算出した確率分布を補助管理領域Ａ１１〜Ａ１４，Ａ２１〜Ａ２４，Ａ３１〜Ａ３４に格納する。さらに、演算部２１は、管理領域ＭＡ１〜ＭＡ３に格納した確率分布に基づいて、対応するセクタＳＣ１〜ＳＣ３のイールド値Ｙ１〜Ｙ３を算出する。
【００５６】
制御部２０は、演算部２１により算出された各セクタＳＣ１〜ＳＣ３のイールド値Ｙ１〜Ｙ３に基づいて、優先してアクセスするセクタを選択する。
イールド値は、「１」からビット誤り率を減算した値である。従って、イールド値は、記憶装置１３に対するアクセスにおいて、ビット誤りを発生することなくデータのアクセスが可能な割合、すなわちビット誤りのないデータアクセスの歩留まりである。このため、イールド値に応じて選択されたセクタにアクセスすることは、ビット誤りの発生確率を低減することになる。不揮発性のメモリチップＨ１においけるビット誤りの発生は、そのセクタ、ひいてはメモリチップＨ１の使用の期間を制限する。つまり、寿命を決定する。このため、ビット誤りの発生確率を低減することにより、メモリチップＨ１の寿命を長くすることができる。
【００５７】
（２）ビット誤りが発生したセグメントに対し、そのセグメントからの距離に応じた感度（相関係数）によって各セグメントの確率分布を算出するようにした。プロセスに起因するシステマティックなばらつきは、ランダムなばらつきと比べ、ビット誤りが発生したセグメントと、そのセグメントの近くのセグメントにおいて同様に生じる。従って、各セグメントにおいてシステマティックなばらつきに応じた確率分布を算出することができる。
【００５８】
（３）１個のセクタにおけるイールド値は、そのセクタに含まれる全てのセグメントにおけるビット誤り率の確率分布において、正の値のビット誤り率Ｓｉ（Ｓｉ＞０）を積分演算した結果の値である。このため、演算により得られるイールド値Ｙ１は、実際のビット誤り率に応じた値となる。つまり、各セクタにおけるイールド値を精度良く算出することができる。
【００５９】
（４）ファイル３１には、プロセス情報が格納されている。プロセス情報は、プロセスばらつき値と感度の値を含む。演算部２１は、ファイル３１のプロセス情報に従って確率分布を算出する。テクノロジの異なるメモリチップについて、プロセス情報を変更することで、テクノロジに応じた確率分布を算出する。したがって、テクノロジの変更に容易に対応することができる。
【００６０】
（５）演算部２１は、ファイル３２に格納された構成情報に従って各セクタを複数のセグメントにそれぞれ分割する。各セグメントのサイズを大きくすることにより、演算に要する時間が短くなり、処理の負荷を軽減することができる。一方、各セグメントのサイズを小さくすることにより、セグメント間の相関に対する影響の演算精度が向上し、各セクタにおけるイールド値を精度よく算出することができる。
【００６１】
尚、上記各実施形態は、以下の態様で実施してもよい。
・上記実施形態では、バス１５を介して処理装置１１に接続された記憶装置１３に対するアクセスについて説明した、このアクセスに関する処理は、電子機器１０に内蔵されるもの以外に、例えばインタフェースを介して電子機器の外部デバイスとして接続される記憶装置にも適用することができる。
【００６２】
・上記実施形態において、データの読み出し時に、ビット誤りの発生を判定するようにしてもよい。入力データに、記憶装置１３に書き込むデータに、パリティ等の誤り検出のための符号、ハミングコード等の誤り訂正のための符号を付加したライトデータを生成し、そのライトデータを記憶装置１３に格納する。そして、データの読み出し時に、付加した符号に基づいて、ビット誤りを判定する。
【００６３】
・上記実施形態では、ステップ４３（図４参照）において全てのセグメントに対して互いに同じ値のイールド初期値を設定したが、互いに異なるイールド初期値を設定してもよい。例えば、プロセスばらつき値（システマティックなばらつきの値）に応じて設定するイールド初期値を変更してもよい。また、イールド値の初期値をファイル３２に格納してもよい。
【００６４】
・上記実施形態において、１個のセクタを、互いに大きさ（サイズ）が異なる複数のセグメントに分割してもよい。
・上記実施形態において、図３に示すファイル３２に含まれる分割情報を、１個のセクタを分割するセグメントの数（分割数）としてもよい。
【００６５】
・上記実施形態において、図４に示すフローチャートでは、記憶装置１３をアクセスする（ステップ４５）こととしたが、他のプログラム（他の関数）が記憶装置１３をアクセスするようにしてもよい。この場合、ステップ４６において他のプログラムのアクセス完了を判定（例えば、アクセス完了の通知）し、ステップ４７において、アクセスしたセグメントの位置とアクセス結果（ビット誤りの有無）を取得する。
【００６６】
・上記実施形態は、１ビットのデータを記憶するメモリセルＭＣ（SLC：Single Level Cell）を有する記憶装置１３について説明したが、複数ビットのデータを記憶するメモリセル（MLC：Multi Level Cell，TLC：Triple Level Cell）を有する記憶装置をアクセスするようにしてもよい。
【００６７】
・上記実施形態において、感度の値は、図５（ａ）に示す直線状の演算式として設定されたが、プロセスばらつき等に応じて適宜変更してもよい。例えば、図５（ｂ）に示すように、２時曲線の演算式として設定してもよい。
【００６８】
・各セグメントにおける確率分布を算出するために用いる感度値βi は、演算式として与えられてもよい。例えば、図５（ａ）に示す特性において、セグメントの配列方向に従って異なる傾きの直線を示す演算式として与えられてもよい。また、感度値βi は、マトリックス状のテーブルとして与えられてもよい。
【００６９】
・電子機器の外部に接続される記憶装置に具体化してもよい。このような記憶装置の場合、制御部２０及び演算部２１は、記憶装置に含まれる処理装置（プロセッサ）によって実行される。つまり、記憶装置には制御部２０及び演算部２１として処理装置が機能するためのプログラムが記憶される。なお、プログラムが記憶される領域は、不揮発性の半導体記憶装置に限定されず、読み出し専用メモリ（ＲＯＭ）に格納されて提供されてもよい。
【００７０】
・記憶装置１３（補助記憶装置）を搭載する機器はパーソナルコンピュータに限定されない。例えば、携帯電話等の携帯端末、電子書籍のための装置、電子録音装置、等の不揮発性半導体記憶装置を有する電子機器に適用してもよい。
【符号の説明】
【００７１】
１１  処理装置
１３  記憶装置
２０  制御部
２１  演算部
３１  プロセス情報
３２  機器情報（コンフィグレーション情報）
ＭＡ１〜ＭＡ３  管理領域
Ａ１１〜Ａ１４，Ａ２１〜Ａ２４，Ａ３１〜Ａ３４  補助管理領域
ＳＣ１〜ＳＣ３  セクタ
Ｋ１１〜Ｋ１４，Ｋ２１〜Ｋ２４，Ｋ３１〜Ｋ３４  セグメント
ＭＣ  メモリセル
Ｙ１〜Ｙ３  イールド値
Βi   感度値
Ｓｉ  ビット誤り率
【図１】
2014026696.tif 000005
【図２】
2014026696.tif 000006
【図３】
2014026696.tif 000007
【図４】
2014026696.tif 000008
【図５】
2014026696.tif 000009
【図６】
2014026696.tif 000010