(57)【特許請求の範囲】
【請求項１】
データ列の書き込み要求に応答して、前記データ列において論理値「０」のデータである第１データから論理値「１」のデータである第２データへの書き換えが発生するか否かを判定し、
前記データ列において前記第１データから前記第２データへの書き換えが発生しない位置のデータを第１の記憶領域に書き込み、
前記データ列において前記第１データから前記第２データへの書き換えが発生する位置の前記第２データを、前記第１の記憶領域と異なる第２の記憶領域に対して前記第１データとして書き込む、
ことを特徴とするメモリの制御方法。
【請求項２】
読み出し要求に応答して、前記第１の記憶領域からデータ列を読み出し、
前記第１の記憶領域から読み出したデータ列に対応して前記第２の記憶領域に記憶されたデータ列を論理反転したデータ列と、前記第１の記憶領域から読み出したデータ列とを合成したデータ列を、前記読み出し要求に対するデータ列として出力する、
請求項１記載のメモリの制御方法。
【請求項３】
読み出し要求に応答して、前記第１の記憶領域からデータ列を読み出し、
前記読み出し要求に応答して、前記第２の記憶領域からデータ列を読み出し、
前記第２の記憶領域から読み出した前記データ列を論理反転したデータ列と前記第１の記憶領域から読み出した前記データ列とを合成したデータ列を、前記読み出し要求に対するデータ列として出力する、
請求項１記載のメモリの制御方法。
【請求項４】
前記書き込み要求の前記データ列の書き込み先のデータ列を前記メモリから読み出し、
前記書き込み要求の前記データ列と前記メモリから読み出したデータ列とを比較して前記第１データから前記第２データへの書き換えが発生するか否かを判定する、
請求項１〜３のうちの何れか一項に記載のメモリの制御方法。
【請求項５】
前記書き込み要求の前記データ列の書き込み先に対して前記第２の記憶領域にデータが記憶されていない場合には、前記第１の記憶領域から読み出したデータ列と前記書き込み要求の前記データ列と比較して前記第１データから前記第２データへの書き換えが発生するか否かを判定し、
前記書き込み先に対して前記第２の記憶領域にデータが記憶されている場合には、前記第２の記憶領域のデータ列を反転したデータ列と、前記第１の記憶領域から読み出したデータ列とを合成して参照データ列を生成し、
前記書き込み要求の前記データ列と前記参照データ列とを比較して前記第１データから前記第２データへの書き換えが発生するか否かを判定する、
請求項１〜３のうちの何れか一項に記載のメモリの制御方法。
【請求項６】
第１の記憶領域に記憶されたデータに対する書き込み要求に対して、論理値「０」のデータである第１データから論理値「１」のデータである第２データへの書き換えが発生するか否かを判定し、
前記書き込み要求に応じたデータのうち、前記第１データから前記第２データへの書き換えが発生しない位置のデータを前記第１の記憶領域に書き込み、
前記書き込み要求に応じたデータのうち、前記第１データから前記第２データへの書き換えが発生する位置の前記第２データを前記第１データとして前記第１の記憶領域と異なる第２の記憶領域に書き込む、
ことを特徴とするメモリの制御方法。
【請求項７】
データ列の書き込み要求に応答して、前記データ列において論理値「０」のデータである第１データから論理値「１」のデータである第２データへの書き換えが発生するか否かを判定し、判定結果に応じて前記データ列を、前記データ列において前記第１データから前記第２データへの書き換えが発生しない位置のデータを含む第１のライトデータと、前記書き換えが発生する位置に前記第１データを書き込むための第２のライトデータと、に分解するデータ分解部と、
前記書き込み要求に応答して、外部アドレスを前記第１のライトデータを第１の記憶領域に書き込むための第１の内部アドレスへ変換し、前記外部アドレスを前記第２のライトデータを前記第１の記憶領域と異なる第２の記憶領域に書き込むための第２の内部アドレスへ変換するアドレス変換部と、
を有するメモリの制御回路。
【請求項８】
不揮発性のメモリと、
前記メモリに対するアクセスを制御する制御回路と、
を有し、
前記制御回路は、
データ列の書き込み要求に応答して、前記データ列において論理値「０」のデータである第１データから論理値「１」のデータである第２データへの書き換えが発生するか否かを判定し、判定結果に応じて前記データ列を、前記データ列において前記第１データから前記第２データへの書き換えが発生しない位置のデータを含む第１のライトデータと、前記書き換えが発生する位置に前記第１データを書き込むための第２のライトデータと、に分解するデータ分解部と、
前記書き込み要求に応答して、外部アドレスを前記第１のライトデータを第１の記憶領域に書き込むための第１の内部アドレスへ変換し、前記外部アドレスを前記第２のライトデータを前記第１の記憶領域と異なる第２の記憶領域に書き込むための第２の内部アドレスへ変換するアドレス変換部と、
を含む、記憶装置。
【請求項９】
不揮発性の記憶装置と、
前記記憶装置に対してデータ列を書き込む処理装置と、
を含み、
前記記憶装置は、
不揮発性のメモリと、
前記メモリに対するアクセスを制御する制御回路と、
を有し、
前記制御回路は、
データ列の書き込み要求に応答して、前記データ列において論理値「０」のデータである第１データから論理値「１」のデータである第２データへの書き換えが発生するか否かを判定し、判定結果に応じて前記データ列を、前記データ列において前記第１データから前記第２データへの書き換えが発生しない位置のデータを含む第１のライトデータと、前記書き換えが発生する位置に前記第１データを書き込むための第２のライトデータと、に分解するデータ分解部と、
前記書き込み要求に応答して、外部アドレスを前記第１のライトデータを第１の記憶領域に書き込むための第１の内部アドレスへ変換し、前記外部アドレスを前記第２のライトデータを前記第１の記憶領域と異なる第２の記憶領域に書き込むための第２の内部アドレスへ変換するアドレス変換部と、
を含む、電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
メモリの制御方法、メモリの制御回路、記憶装置、及び電子機器に関する。
【背景技術】
【０００２】
従来、パーソナルコンピュータ等の電子機器は、データを記憶する記憶装置を備える。記憶装置の１つは、不揮発性の半導体記憶装置を用いたものである。不揮発性の半導体記憶装置、例えばフラッシュメモリは、記憶内容を電気的に書換え可能に構成されている。
【０００３】
フラッシュメモリに代表される不揮発性の半導体記憶装置は、各メモリセルに対する記憶内容の書換え回数に制限があり、その制限を超える回数の書換えが行われたメモリセルは、データの保持が保証されない。即ち、メモリセルに対する書換え回数の制限は、半導体記憶装置の使用可能な期間、つまり寿命に影響する。
【０００４】
半導体記憶装置の寿命を延ばす方法の一つは、書換え回数や消去回数の少ない領域から順に使用することで、書換え回数を平準化するものである（例えば、特許文献１，２参照）。半導体記憶装置の寿命を延ばす他の方法は、物理ブロックを複数の領域に分割し、書き込み要求毎にデータを書き込む領域を変更し、書き込み可能な領域が無くなった場合に、物理ブロック内の有効なデータを他の物理ブロックに転送するものである（例えば、特許文献３参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−２４２８９７号公報
【特許文献２】特開２００３−２２８５１３号公報
【特許文献３】特開２００９−１１６４６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、フラッシュメモリは、記憶されたデータ「０」をデータ「１」に書き換える場合、その書換え対象のメモリセルを含むセクタ全体に対する消去動作を伴うという制約がある。このため、消去回数の低減が望まれている。
【課題を解決するための手段】
【０００７】
本発明の一観点によれば、データ列の書き込み要求に応答して、前記データ列において論理値「０」のデータである第１データから論理値「１」のデータである第２データへの書き換えが発生するか否かを判定し、前記データ列において前記第１データから前記第２データへの書き換えが発生しない位置のデータを第１の記憶領域に書き込み、前記データ列において前記第１データから前記第２データへの書き換えが発生する位置の前記第２データを、前記第１の記憶領域と異なる第２の記憶領域に対して前記第１データとして書き込む。
【発明の効果】
【０００８】
本発明の一観点によれば、消去回数を低減することができる。
【図面の簡単な説明】
【０００９】
【図１】電子機器の概略構成図である。
【図２】記憶装置の概略構成図である。
【図３】（ａ）〜（ｅ）は、記憶装置の動作説明図である。
【図４】記憶装置のブロック回路図である。
【図５】書込処理のフローチャートである。
【図６】転送処理のフローチャートである。
【図７】書き込み処理の説明図である。
【図８】書き込み処理の説明図である。
【図９】書き込み処理の説明図である。
【図１０】書き込み処理の説明図である。
【図１１】書き込み処理の説明図である。
【図１２】読み出し処理の説明図である。
【図１３】（ａ）〜（ｃ）は、別の記憶装置の動作説明図である。
【図１４】（ａ）〜（ｃ）は、別の記憶装置の動作説明図である。
【発明を実施するための形態】
【００１０】
以下、一実施形態を図１〜図１２に従って説明する。
図１に示すように、電子機器１０は例えばパーソナルコンピュータであり、処理装置（例えば、ＣＰＵ）１１と、この処理装置１１とバス１２を介して接続された記憶装置１３を備えている。
【００１１】
記憶装置１３は、不揮発性の半導体記憶装置（例えば、フラッシュメモリ）を用いた装置であり、プログラムデータを含むファイルや、各種データを含むファイルが格納される。処理装置１１は、バス１２を介して記憶装置１３のファイルに格納されたデータを読み出し、そのデータに基づいて、処理を実行する。そして、処理装置１１は、実行する処理に従って作成したデータを含むファイルを、バス１２を介して記憶装置１３に格納する。
【００１２】
次に、記憶装置１３の概略構成を説明する。
図２に示すように、記憶装置１３は、インタフェース回路（「Ｉ／Ｆ」と表記）２１と、制御回路２２と、メモリ２３とを備えている。
【００１３】
インタフェース回路２１は、図１に示すバス１２を介して処理装置１１と各種信号の授受を行う。例えば、処理装置１１は、記憶装置１３に対して、データ列をアクセスするためのコマンド情報、アクセスするデータ列を指定するアドレス情報、記憶装置１３に書き込むデータ列を出力する。データ列は複数（例えば８個）のデータ（又はビットという）を含む。図２に示すインタフェース回路２１は、バス１２を介して上記の各種情報を受け取り、制御回路２２に出力する。制御回路２２は、各種情報に従って、データ列をメモリ２３に書き込む。また、制御回路２２は、各種情報に従って、メモリ２３からデータ列を読み出し、そのデータ列をインタフェース回路２１に出力する。インタフェース回路２１は、制御回路２２から出力されるデータ列をバス１２に送出し、処理装置１１は、バス１２上のデータ列を受け取る。
【００１４】
メモリ２３は、不揮発性の半導体記憶装置（例えばフラッシュメモリ）である。メモリ２３に含まれる複数のメモリセルのそれぞれは、論理値「０」又は論理値「１」を記憶する。メモリセルの論理値を「０」から「１」に変更することを消去（又は「１書き換え」）といい、論理値を「１」から「０」に変更することを書き込み（又は「０書き換え」）という。つまり、メモリ２３に含まれる複数のメモリセルのそれぞれは、消去状態のときに論理値「１」を示し、書き込み状態のときに論理値「０」を示す。
【００１５】
各メモリセルは、他のメモリセルとは独立して消去状態から書き込み状態へと変化することができる。逆に、メモリセルは、そのメモリセルが含まれるセクタの他のメモリセルとは独立して書き込み状態から消去状態へと変化することができない。従って、１つのセクタに含まれる複数のメモリセルは、そのセクタに含まれる全てのメモリセルと同時に書き込み状態から消去状態へと制御される。
【００１６】
メモリ２３は、複数（図２において２つ）のセクタＭＳｍ，ＭＳｓを有している。セクタは、例えば記憶された複数のデータを一括して消去する領域の単位である。
第１のセクタＭＳｍは、処理装置１１からのアクセスによって示されるアドレス情報（以下、外部アドレスという）とデータ列のデータ数（ビット数）に応じた数のメモリセルを有する、即ち外部アドレスＡＤＲに応じたメモリ容量の記憶領域である。例えば、外部アドレスＡＤＲは３２ビットであり、データ列は８ビットである。
【００１７】
第２のセクタＭＳｓは、第１のセクタＭＳｍのメモリ容量に応じて設定されたメモリ容量（例えば、第１のセクタＭＳｍのメモリ容量の２分の１）の記憶領域である。各セクタＭＳｍ，ＭＳｓのアドレス情報は、それぞれ択一的にアクセスが可能に設定されている。このように設定された各セクタＭＳｍ，ＭＳｓのアドレス情報を内部アドレスと呼ぶ。第１のセクタＭＳｍは第１の記憶領域の一例であり、メインセクタと呼ぶ。第２のセクタＭＳｓは第２の記憶領域の一例であり、補助セクタと呼ぶ。
【００１８】
上記したように、処理装置１１は、データ列の書き込み（ライト）／読み出し（リード）のために外部アドレスＡＤＲを出力する。制御回路２２のアドレス変換部３１は、アドレス変換情報とセクタステータス情報とを記憶する変換テーブルを有している。変換テーブルは、例えばスタティック・ランダム・アクセス・メモリ（ＳＲＡＭ:Static Random Access Memory）である。
【００１９】
アドレス変換部３１は、外部アドレスＡＤＲを、メインセクタＭＳｍをアクセスするための内部アドレスＡＤｍへ変換する。また、アドレス変換部３１は、外部アドレスＡＤＲを、補助セクタＭＳｓをアクセスするための内部アドレスＡＤｓへ変換する。
【００２０】
制御回路２２は、図１に示す処理装置１１からインタフェース回路２１を介して供給されるライトデータ列ＷＤＴに基づいて、メインセクタＭＳｍに書き込むライトデータ列ＷＤｍと、補助セクタＭＳｓに書き込むライトデータ列ＷＤｓとを生成する。また、制御回路２２は、メインセクタＭＳｍから読み出されたリードデータ列ＲＤｍと、補助セクタＭＳｓから読み出したリードデータ列ＲＤｓに基づいて、リードデータ列ＲＤＴを生成する。
【００２１】
制御回路２２は、メインセクタＭＳｍ及び補助セクタＭＳｓに対するデータ列の書き込み及び読み出しを、アドレス変換部３１のテーブルに格納した情報に従って制御する。アドレス変換部３１の変換テーブルには、外部アドレスＡＤＲを内部アドレスＡＤｍ，ＡＤｓへ変換するためのアドレス変換情報が含まれる。また、アドレス変換部３１の変換テーブルには、メインセクタＭＳｍに記憶したデータ列に対応する補助データを補助セクタＭＳｓに記憶したか否かを示すステータス情報が含まれる。
【００２２】
先ず、データ列の書き込みを説明する。
上記したように、メモリ２３は、メモリセルの状態を書き込み状態から消去状態に変更するとき、その状態を変更するメモリセルが含まれるセクタ全体を一括して消去する必要がある。このため、制御回路２２は、メモリセルの状態を書き込み状態から消去状態に変更するデータ（「１変更データ」とよぶ）が、ライトデータ列ＷＤＴに含まれるか否かを判定する。制御回路２２は、外部アドレスＡＤＲに応じてメモリ２３から読み出したリードデータ列ＲＤＴとライトデータ列ＷＤＴとをビット比較し、ライトデータ列ＷＤＴに「１変更データ」が含まれるか否かを判定する。
【００２３】
ライトデータ列ＷＤＴに「１変更データ」が含まれない場合、制御回路２２は、そのライトデータ列ＷＤＴをメインセクタＭＳｍに書き込む。即ち、制御回路２２は、ライトデータ列ＷＤＴと等しいライトデータ列ＷＤｍを生成する。また、制御回路２２は、外部アドレスＡＤＲを、メインセクタＭＳｍをアクセスするための内部アドレスＡＤｍへ変換する。そして、制御回路は、内部アドレスＡＤｍとライトデータ列ＷＤｍをメモリ２３に出力し、メモリ２３は、内部アドレスＡＤｍに基づいて、メインセクタＭＳｍにライトデータ列ＷＤｍを記憶する。
【００２４】
ライトデータ列ＷＤＴに「１変更データ」が含まれる場合、制御回路２２は、ライトデータ列ＷＤＴから、メインセクタＭＳｍに書き込むライトデータ列ＷＤｍと、補助セクタＭＳｓに書き込むライトデータ列ＷＤｓとを生成する。例えば、制御回路２２は、ライトデータ列ＷＤＴに対して、「１変更データ」を論理値「０」としたライトデータ列ＷＤｍ、つまり「１変更データ」を含まないライトデータ列ＷＤｍを生成する。制御回路２２は、アドレス変換部３１によって外部アドレスＡＤＲから変換された内部アドレスＡＤｍに、ライトデータ列ＷＤｍを格納する。
【００２５】
制御回路２２は、「１変更データ」の位置（ビット位置）のデータ（又はビットという）のみを論理反転するためのデータを生成する。例えば、制御回路２２は、「１変更データ」の位置のデータを論理値「０」とし、他の位置のデータを論理値「１」とした補助データ列ＷＤｓを生成する。制御回路２２は、内部アドレスＡＤｍに応じて、メインセクタＭＳｍの所定領域に補助セクタＭＳｓを割り当てる。制御回路２２は、外部アドレスＡＤＲを、補助データ列ＷＤｓを補助セクタＭＳｓに書き込むための内部アドレスＡＤｓへ変換するためのアドレス変換情報をアドレス変換部３１のテーブルに記憶する。更に、制御回路２２は、外部アドレスＡＤＲを内部アドレスＡＤｍへ変換するためのアドレス変換情報に、ライトデータ列ＷＤｍに対応する補助データ列ＷＤｓが存在することを示すステータス情報を、関連付けてアドレス変換部３１のテーブルに記憶する。
【００２６】
このように、制御回路２２は、メインセクタＭＳｍに対して、「１変更データ」を含まないライトデータ列ＷＤｍを格納する。従って、「１変更データ」を含むライトデータ列ＷＤＴに対して、メインセクタＭＳｍに対して消去動作を伴わない。補助データ列ＷＤｓは、「１変更データ」の位置に応じて、論理値「０」を含む。論理値「０」は、メモリセルを書き込み状態に変更するものである。従って、補助セクタＭＳｓに対して補助データ列ＷＤｓを書き込むときに、消去動作を伴わない。
【００２７】
つまり、「１変更データ」を含むライトデータ列ＷＤＴであっても、消去動作を伴わないため、消去動作を伴うデータ列の書き込みに要する時間と比べ、短時間でライトデータ列ＷＤＴの書き込みを終了することができる。また、「１変更データ」を含むライトデータ列ＷＤＴの記憶に対して消去動作を伴わないため、メモリ２３の消去回数が、従来例と比べて少なくなる。その結果、メモリ２３を使用することが可能な期間、つまりメモリ２３の寿命を延ばすことが可能となる。
【００２８】
次に、データ列の読み出しを説明する。
制御回路２２は、外部アドレスＡＤＲを受け取る。アドレス変換部３１は、外部アドレスＡＤＲを内部アドレスＡＤｍへ変換する。制御回路２２は、内部アドレスＡＤｍに従ってメモリ２３のメインセクタＭＳｍからデータ列ＲＤｍを読み出す。また、制御回路２２は、内部アドレスＡＤｍに対応するステータス情報に従って、内部アドレスＡＤｍに対する補助データ列の有無を判定する。補助データ列が存在しない場合、制御回路２２は、メインセクタＭＳｍから読み出したデータ列ＲＤｍと等しいリードデータ列ＲＤＴを出力する。
【００２９】
一方、補助データ列が存在する場合、制御回路２２は、補助セクタＭＳｓの割り当て情報に従って、アドレス変換部３１によって外部アドレスＡＤＲを内部アドレスＡＤｓへ変換し、その内部アドレスＡＤｓに従ってメモリ２３の補助セクタＭＳｓから補助データ列ＲＤｓを読み出す。制御回路２２は、メインセクタＭＳｍから読み出したデータ列ＲＤｍと補助データ列ＲＤｓを合成してリードデータ列ＲＤＴを生成する。
【００３０】
補助データ列ＲＤｓは、メインセクタＭＳｍから読み出したデータ列ＲＤｍに対して、「１変更データ」の位置を示すデータ列である。例えば、論理値「０」は「１変更データ」の位置を示し、論理値「１」は「１変更データ」ではない位置を示す。制御回路２２は、補助データ列ＲＤｓとメインセクタＭＳｍから読み出したデータ列ＲＤｍとを合成することにより、１変換データを含むリードデータ列ＲＤＴを生成する。例えば、制御回路２２は、補助データ列ＲＤｓの各ビットを論理反転して反転データ列を生成し、この反転データ列とメインセクタＭＳｍから読み出したデータ列ＲＤｍとを合成する、例えば論理和処理（ＯＲ処理）する。この合成処理により、メインセクタＭＳｍから読み出したデータ列ＲＤｍに対して、リードデータ列ＲＤＴは、「１変更データ」の位置に論理値「１」を含むデータ列となる。つまり、制御回路２２は、補助データ列ＲＤｓに基づいて、メインセクタＭＳｍから読み出したデータ列ＲＤｍから、「１変更データ」の位置に論理値「１」を含むデータ列を生成するように、合成処理を行う。
【００３１】
次に、複数のメインセクタを有するメモリに対する動作を、図３（ａ）〜図３（ｅ）に従って説明する。なお、図３（ａ）〜図３（ｅ）では、制御回路２２に含まれるアドレス変換部３１とメモリ２３のみを示している。
【００３２】
図３（ａ）に示すように、メモリ２３は、２つのメインセクタ２３ａ，２３ｂと、２つの補助セクタ２３ｃ，２３ｄを有している。アドレス変換部３１は、メインセクタ２３ａ，２３ｂに対応するメインテーブル３１ａ，３１ｂと、補助セクタ２３ｃ，２３ｄに対応する補助テーブル３１ｃ，３１ｄを有している。
【００３３】
メインセクタ２３ａ，２３ｂは、図１に示す処理装置１１からのアクセスによって示される外部アドレスＡＤＲとデータ列のデータ数（ビット数）に応じた数のメモリセルを有する記憶領域である。補助セクタ２３ｃ，２３ｄは、メインセクタ２３ａ，２３ｂのメモリ容量に応じて設定されたメモリ容量（例えば、メインセクタ２３ａ，２３ｂのメモリ容量の２分の１）の記憶領域である。
【００３４】
制御回路２２は、２つのメインセクタ２３ａ，２３ｂのうちの一方を対象セクタとし、他方を非対象セクタとする。そして、制御回路２２は、２つのメインセクタ２３ａ，２３ｂに対する対象セクタ、非対象セクタを交互に切替える。制御回路２２は、対象セクタに対して外部アドレスＡＤＲに応答してアクセスする。制御回路２２は、非対象セクタのメモリセルを消去状態とする。例えば、メインセクタ２３ａを対象セクタとし、メインセクタ２３ｂを非対象セクタとする。
【００３５】
制御回路２２は、メインテーブル３１ａを用いて、外部アドレスＡＤＲを、メインセクタ２３ａをアクセスするための内部アドレスＡＤ１へ変換する。制御回路２２は、内部アドレスＡＤ１に対応するアドレス変換情報に関連付けられたステータス情報に基づいて、補助データ列の有無を判定する。そして、制御回路２２は、補助データ列が存在しない場合、内部アドレスＡＤ１に従ってメインセクタ２３ａをアクセスし、メインセクタ２３ａから読み出したリードデータ列ＲＤ１と等しいリードデータ列ＲＤＴを出力する。
【００３６】
制御回路２２は、ライトデータ列ＷＤＴに「１変更データ」が含まれるか否かを判定する。そして、制御回路２２は、「１変更データ」を含まないと判定した場合、ライトデータ列ＷＤＴと等しいライトデータ列ＷＤ１を、内部アドレスＡＤ１に従ってメインセクタ２３ａに格納する。
【００３７】
制御回路２２は、「１変更データ」を含むと判定した場合、図３（ｂ）に示すように、外部アドレスＡＤＲに従ってメインセクタ２３ａの対象領域に補助セクタ２３ｃを割り当てる。対象領域は、メインテーブル３１ａに従って外部アドレスＡＤＲを変換した内部アドレスＡＤ１にて示される記憶領域を含むように設定された領域である。メインセクタ２３ａにおいてハッチングを付した部分は、補助セクタ２３ｃが割り当てられた領域を示す。
【００３８】
制御回路２２は、ライトデータ列ＷＤＴから、「１変更データ」を含まないライトデータ列ＷＤ１を生成する。また、制御回路２２は、「１変更データ」の位置に、メモリセルに対する書き込みを行うデータ、つまり論理値「０」を含む補助データ列ＷＤ２を生成する。また、制御回路２２は、メインテーブル３１ａに従って外部アドレスＡＤＲに内部アドレスＡＤ１へ変換する。そして、制御回路２２は、内部アドレスＡＤ１に従って、ライトデータ列ＷＤ１を、メインセクタ２３ａに格納する。
【００３９】
制御回路２２は、この内部アドレスＡＤ１のためのアドレス変換情報に、補助データ列ＷＤ２の存在を示すステータス情報を関連付けてメインテーブル３１ａに記憶する。また、制御回路２２は、補助セクタ２３ｃの割り当て情報と、内部アドレスＡＤ１に基づいて、補助セクタ２３ｃをアクセスする内部アドレスを生成するためのアドレス変換情報を、補助テーブル３１ｃに格納する。そして、制御回路２２は、補助テーブル３１ｃに従って、外部アドレスＡＤＲを内部アドレスＡＤ２へ変換する。そして、制御回路２２は、内部アドレスＡＤ２に従って、補助データ列ＷＤ２を、補助セクタ２３ｃに格納する。
【００４０】
読み出し動作において、図３（ｃ）に示すように、制御回路２２は、メインテーブル３１ａを用いて、外部アドレスＡＤＲを、メインセクタ２３ａをアクセスするための内部アドレスＡＤ１へ変換する。そして、制御回路２２は、内部アドレスＡＤ１に従ってメインセクタ２３ａから読み出したリードデータ列ＲＤ１を保持する。
【００４１】
次いで、制御回路２２は、内部アドレスＡＤ１に対応するアドレス変換情報に関連付けられたステータス情報に基づいて、補助データ列の有無を判定する。そして、制御回路２２は、補助データ列が存在する場合、補助テーブル３１ｃに従って、外部アドレスＡＤＲを内部アドレスＡＤ２へ変換する。そして、制御回路２２は、内部アドレスＡＤ２に従って補助セクタ２３ｃから補助データ列ＲＤ２を読み出する。そして、制御回路２２は、読み出した補助データ列ＲＤ２と、保持したリードデータ列ＲＤ１とを合成してリードデータ列ＲＤＴを生成する。
【００４２】
制御回路２２は、所定のタイミングにおいて、転送処理を実行する。所定のタイミングは、例えば、外部（例えば図１に示す処理装置１１）から転送コマンドが供給されたときである。制御回路２２は、転送コマンドに応答して、図３（ｄ）に示すように、転送処理を行う。即ち、制御回路２２は、メインテーブル３１ａに従ってリードアドレスＲＡ１を生成し、このリードアドレスＲＡ１に従ってメインセクタ２３ａからデータ列ＲＤ１を読み出す。制御回路２２は、リードアドレスＲＡ１のためのアクセス情報に対応するステータス情報が補助データなしを示す場合、リードアドレスＲＡ１と等しいライトデータ列ＷＤを、メインテーブル３１ｂに従って生成したライトアドレスＷＡに従って、メインセクタ２３ｂに格納する。
【００４３】
一方、制御回路２２は、リードアドレスＲＡ１のためのアクセス情報に対応するステータス情報が補助データ有りを示す場合、補助テーブル３１ｃに従ってリードアドレスＲＡ２を生成し、このリードアドレスＲＡ２に従って補助セクタ２３ｃからデータ列ＲＤ２を読み出す。そして、制御回路２２は、図３（ｃ）と同様に、メインセクタ２３ａから読み出したデータ列ＲＤ１と補助セクタ２３ｃから読み出したデータ列ＲＤ２とを合成してライトデータ列ＷＤを生成し、メインテーブル３１ｂに従って生成したライトアドレスＷＡに従って、ライトデータ列ＷＤをメインセクタ２３ｂに格納する。
【００４４】
即ち、制御回路２２は、メインセクタ２３ａのデータ列と、補助セクタ２３ｃのデータ列を、メインセクタ２３ｂに転送する。そして、制御回路２２は、メインセクタ２３ａ及び補助セクタ２３ｃの全てのデータの転送を終了すると、転送先のメインセクタ２３ｂをアクセスの対象セクタに設定し、転送元のメインセクタ２３ａを非対象セクタに設定する。また、制御回路２２は、メインセクタ２３ａに対応するメインテーブル３１ａと、補助セクタ２３ｃに対応する補助テーブル３１ｃをダーティセクタとする。
【００４５】
上記の転送処理において、制御回路２２は、メモリ２３に対する書き込みと読み出しを許容する。書き込みと読み出しの対象となるセクタは、外部アドレスＡＤＲとライトアドレスＷＡとの比較結果に応じて決定される。つまり、外部アドレスＡＤＲがライトアドレスＷＡより小さい場合、その外部アドレスＡＤＲに対応するデータ列は、既にメインセクタ２３ａからメインセクタ２３ｂに転送されている。従って、外部アドレスＡＤＲに基づくアクセスの対象は、転送先のメインセクタ２３ｂとなる。一方、外部アドレスＡＤＲがライトアドレスＷＡより大きい場合、その外部アドレスＡＤＲに対応するデータ列は、まだメインセクタ２３ａに存在する。従って、外部アドレスＡＤＲに基づくアクセスの対象は、転送元のメインセクタ２３ａと、「１変更データ」の有無に応じて補助セクタ２３ｃとなる。
【００４６】
上記のように転送処理を終了すると、図３（ｅ）に示すように、制御回路２２は、メインテーブル３１ｂを用いて外部アドレスＡＤＲを内部アドレスＡＤ１へ変換し、その内部アドレスＡＤ１に従ってメインセクタ２３ｂに対する読み出しと書き込みを行う。また、制御回路２２は、ダーティセクタとしたメインセクタ２３ａと補助セクタ２３ｃのデータを消去する。そして、制御回路２２は、メインセクタ２３ｂに対するライトデータ列ＷＤＴに「１変更データ」が存在すると判定した場合、メインセクタ２３ｂに対して補助セクタ２３ｄを割り当て、図３（ｂ）と同様に、メインセクタ２３ｂと補助セクタ２３ｄに対してデータ列ＷＤ１，ＷＤ２を書き込む。
【００４７】
上記したように、制御回路２２は、２つのメインセクタ２３ａ，２３ｂのうちの一方を対象セクタとし、他方を非対象セクタとする。制御回路２２は、対象セクタに対して外部アドレスＡＤＲに応答してアクセスする。制御回路２２は、非対象セクタのメモリセルを消去状態とする。そして、制御回路２２は、非対象セクタに対する消去動作を、対象セクタに対するアクセスが可能な期間に行う。従って、図１に示す処理装置１１は、メインセクタに対する消去動作の完了を待つ必要がなく、継続的に記憶装置１３をアクセスすることができる。
【００４８】
また、制御回路２２は、２つのメインセクタ２３ａ，２３ｂに対する対象セクタ、非対象セクタを交互に切替える。つまり、制御回路２２は、２つのメインセクタ２３ａ，２３ｂに対して、交互に消去動作を実施する。これにより、各メインセクタ２３ａ，２３ｂに対する消去回数が、１つのセクタに対して書き込み動作と消去動作とを行う場合と比べて少なくなり、メモリ２３の使用期間、つまりメモリ２３の寿命を延ばすことができる。
【００４９】
次に、制御回路２２の一例を説明する。
図４に示すように、制御回路２２のアドレス変換部３１には、外部アドレスＡＤＲと、外部アクセス信号ＲＷが、インタフェース回路２１を介して供給される。外部アクセス信号ＲＷは、記憶装置１３に対するアクセスが、リードアクセスかライトアクセスかを示す信号である。例えば、Ｈレベルの外部アクセス信号ＲＷはリードアクセスを示し、Ｌレベルの外部アクセス信号ＲＷはライトアクセスを示す。
【００５０】
アドレス変換部３１は、複数の変換テーブル３１ａ〜３１ｄを有している。各変換テーブル３１ａ〜３１ｄは、例えばスタティック・ランダム・アクセス・メモリ（ＳＲＡＭ:Static Random Access Memory）である。第１の変換テーブル３１ａと第２の変換テーブル３１ｂはメインテーブルの一例であり、第３の変換テーブル３１ｃと第４の変換テーブル３１ｄは補助テーブルの一例である。
【００５１】
第１の変換テーブル３１ａには、外部アドレスＡＤＲを内部アドレスＡＤ１へ変換するためのアドレス変換情報と、内部アドレスＡＤ１にて示される領域（メモリセル）に格納されたデータ列に対して、補助データ列が存在するか否かを示すセクタステータス情報が格納される。同様に、第２の変換テーブル３１ｂには、外部アドレスＡＤＲを内部アドレスＡＤ１へ変換するためのアドレス変換情報と、内部アドレスＡＤ１にて示される領域（メモリセル）に格納されたデータ列に対して、補助データ列が存在するか否かを示すセクタステータス情報が格納される。第３の変換テーブル３１ｃには、リードアドレスＲＡＤを内部アドレスＡＤ２へ変換するためのアドレス変換情報が格納される。同様に、第４の変換テーブル３１ｄには、リードアドレスＲＡＤを内部アドレスＡＤ２へ変換するためのアドレス変換情報が格納される。リードアドレスＲＡＤは、読出制御部３３から供給される。
【００５２】
アドレス変換部３１は、外部アクセス信号ＲＷに基づいて、リードアクセスとライトアクセスのそれぞれのアクセスに応じて、内部アドレスと内部アクセス情報を出力する。
リードアクセスの場合、アドレス変換部３１は、メインテーブル３１ａ，３１ｂを用いて外部アドレスＡＤＲを内部アドレスＡＤ１へ変換し、リードアクセスを示す内部アクセス信号ＩＲＷと、内部アドレスＡＤ１をメモリ２３に出力する。アドレス変換部３１は、外部アドレスＡＤＲよって示されるデータ列に対して補助データ列が存在する場合、補助テーブル３１ｃ，３１ｄを用いて読出制御部３３から供給されるリードアドレスＲＡＤを内部アドレスＡＤ２へ変換し、リードアクセスを示す内部アクセス信号ＩＲＷと内部アドレスＡＤ２をメモリ２３に出力する。
【００５３】
ライトアクセスの場合、アドレス変換部３１は、上記のリードアクセスの場合と同様に、リードアクセスを示す内部アクセス信号ＩＲＷと内部アドレスＡＤ１（必要に応じて内部アドレスＡＤ２）をメモリ２３に出力する。その後、アドレス変換部３１は、データ分解部３６から供給されるテーブル指定信号ＬＳＷに基づいて、メインテーブル３１ａ，３１ｂを用いて外部アドレスＡＤＲを内部アドレスＡＤ１へ変換し、ライトアクセスを示す内部アクセス信号ＩＲＷと内部アドレスＡＤ１をメモリ２３に出力する。また、アドレス変換部３１は、補助データ列が存在する場合、データ分解部３６から供給されるテーブル指定信号ＬＳＷに基づいて、補助テーブル３１ｃ，３１ｄを用いて外部アドレスＡＤＲを内部アドレスＡＤ２へ変換し、ライトアクセスを示す内部アクセス信号ＩＲＷと内部アドレスＡＤ２をメモリ２３に出力する。
【００５４】
また、アドレス変換部３１は、外部アドレスＡＤＲに対応してメインの変換テーブル３１ａ，３１ｂに格納されたセクタステータス情報に基づいてヒット情報を読出リスト３２に格納する。セクタステータス情報は、外部アドレスＡＤＲに示されるデータ列に対応する補助データ列が存在するか否かを示す。補助データが存在する場合をヒットという。アドレス変換部３１は、補助データがヒットした場合に、ヒット情報を読出リスト３２に格納する。ヒット情報は、外部アドレスＡＤＲと、補助データを格納したセクタをアクセスするための内部アドレスを生成する変換テーブルを示す情報（テーブル番号）を含む。
【００５５】
また、アドレス変換部３１は、セクタステータス情報ＳＳＩを、読出制御部３３に出力する。
読出制御部３３は、セクタステータス情報ＳＳＩに応じて、補助データが補助セクタに格納されているとき、クロック信号に基づく次のサイクルにおいて、読出リスト３２に格納されたヒット情報に応じたセクタに対する読み出しを制御する。即ち、読出制御部３３は、読出リスト３２から読み出した外部アドレスＡＤＲに応じた補助リードアドレスＲＡＤを、アドレス変換部３１に出力する。また、読出制御部３３は、読出リスト３２から読み出したテーブル番号に応じたテーブル指定信号ＬＳＲを、アドレス変換部３１に出力する。
【００５６】
アドレス変換部３１は、テーブル指定信号ＬＳＲに応じた補助テーブル３１ｃ，３１ｄを用いて、補助リードアドレスＲＡＤを内部アドレスＡＤ２へ変換する。そして、アドレス変換部３１は、内部アドレスＡＤ２と、読み出しのための内部アクセス信号ＩＲＷをメモリ２３に出力する。メモリ２３は、内部アクセス信号ＩＲＷに従って、内部アドレスＡＤ２にて示される補助セクタのデータ列を読み出し、リードデータ列ＲＤ２を出力する。
【００５７】
また、読出制御部３３は、セクタステータス情報ＳＳＩに従って、データ反転部３４とデータ合成部３５に制御信号を出力する。セクタステータス情報ＳＳＩは、補助データの有無を示す。読出制御部３３は、補助データの有無に応じて、制御信号を出力する。
【００５８】
データ反転部３４は、読出制御部３３の制御信号に応答して、メインセクタ２３ａ，２３ｂから読み出したデータ列ＲＤ１と等しいデータ列を出力し、補助セクタ２３ｃ，２３ｄから読み出したデータ列ＲＤ２を論理反転して出力する。
【００５９】
データ合成部３５は、読出制御部３３の制御信号に応答して、補助データ列が存在しない場合に、データ反転部３４から出力されるデータ列と等しいリードデータ列ＲＤＴを出力する。また、データ合成部３５は、読出制御部３３の制御信号に応答して、補助データ列が存在する場合に、最初のサイクルにおいて、データ反転部３４から出力されるデータ列をバッファ３５ａに保持し、次サイクル以降において、データ反転部３４から出力されるデータ列を、バッファ３５ａに保持したデータ列と合成したリードデータ列ＲＤＴを出力する。
【００６０】
データ合成部３５から出力されるデータ列は、ライトアクセス（書込処理）と転送処理において、データ分解部３６にて利用される。ライトアクセスにおいてデータ合成部３５からデータ分解部３６に供給されるデータ列を、インタフェース回路２１を介してバス１２に出力されるリードデータ列ＲＤＴと区別するために、参照データ列ＲＲＤとする。
【００６１】
データ分解部３６には、ライトデータ列ＷＤＴが、インタフェース回路２１を介して供給される。データ分解部３６は、ライトデータ列ＷＤＴと参照データ列ＲＲＤとをビット毎に比較し、ライトデータ列ＷＤＴに「１変更データ」が含まれるか否かを判定する。そして、データ分解部３６は、「１変更データ」の判定結果に応じて、ライトデータ列ＷＤ１，ＷＤ２を生成し、ライトデータ列ＷＤ１，ＷＤ２をメモリ２３に出力する。
【００６２】
また、データ分解部３６は、「１変更データ」の判定結果に応じて、割当要否信号ＲＡＳを、割当制御部３７に出力する。例えば、データ分解部３６は、「１変更データ」がデータ列ＷＤＴに含まれる場合に割当必要を示す例えばＨレベルの割当要否信号ＲＡＳを出力し、「１変更データ」が含まれない場合に割当不要を示す例えばＬレベルの割当要否信号ＲＡＳを出力する。また、データ分解部３６は、判定結果に応じて、割当を必要とする場合が場合に、テーブル指定信号ＬＳＷを出力する。
【００６３】
アドレス変換部３１の各変換テーブル３１ａ〜３１ｄは、初期状態（例えば、転送処理直後）において、クリアされている。このため、割当制御部３７は、対象テーブルとして設定されるメインテーブルに、外部アドレスＡＤＲと、対象セクタをアクセスするための内部アドレスＡＤ１とのアドレス変換情報を設定する。また、割当制御部３７は、アドレス変換情報に対応してステータス情報（このときは補助データ列無し）を設定する。
【００６４】
アドレス変換部３１は、メインテーブル３１ａ，３１ｂに設定されたアドレス変換情報に従って、外部アドレスＡＤＲを内部アドレスＡＤ１へ変換する。そして、アドレス変換部３１は、内部アドレスＡＤ１と、外部アクセス信号ＲＷ（このときはライトアクセスを示す）と等しい内部アクセス信号ＩＲＷをメモリ２３に出力する。メモリ２３は、内部アクセス信号ＩＲＷに応答して、内部アドレスＡＤ１にて示される領域に、ライトデータ列ＷＤ１を記憶する。
【００６５】
割当制御部３７は、上記のデータ分解部３６から出力されるＨレベルの割当要否信号ＲＡＳに応答して、補助テーブルの割り当てを行い、補助テーブルに、アドレス変換情報を設定する。アドレス変換部３１は、補助テーブル３１ｃ，３１ｄに設定されたアドレス変換情報に従って、外部アドレスＡＤＲを内部アドレスＡＤ２へ変換する。そして、アドレス変換部３１は、内部アドレスＡＤ２と、書き込みのための内部アクセス信号ＩＲＷをメモリ２３に出力する。メモリ２３は、内部アクセス信号ＩＲＷに従って、内部アドレスＡＤ２にて示された補助セクタに、ライトデータ列ＷＤ２を記憶する。
【００６６】
また、割当制御部３７は、アドレス変換部３１から出力されるヒット情報に応答して、補助テーブルの割り当てを行い、補助テーブルにアドレス変換情報を設定する。アドレス変換部３１は、外部アドレスＡＤＲに対応する内部アドレスＡＤ１のセクタステータス情報が「補助データ有り」を示すとき、ヒット情報を出力する。補助データは、メインセクタに格納したデータ列において、「１変更データ」が発生したとき、つまり、論理値「０」を論理値「１」に変更するデータがライトデータ列ＷＤＴに含まれるときに、そのデータ（具体的には論理反転したデータ）を補助セクタ２３ｃ，２３ｄに格納する。これにより、メインセクタ２３ａ，２３ｂ全体に対する消去動作の発生を抑制する。
【００６７】
上記のように補助セクタ２３ｃ，２３ｄに補助データを格納したデータ列に対し、上記と同じ位置（ビット位置）において、再び論理値「０」を論理値「１」に変更する書き込みを行うことがある。即ち、メモリセルの状態を、「１」→「０」→「１」→「０」→「１」のように変更する、つまり２回以上、「１変更データ」が含まれるライトデータ列ＷＤＴを受け取る。このような書き込みに対して、クリアな補助セクタが存在する場合、割当制御部３７は、そのクリアな補助セクタを割り当て、その補助セクタに、「１変更データ」の位置に対応するデータを書き込む。
【００６８】
例えば、図４に示すメモリ２３は、２つの補助セクタ２３ｃ，２３ｄを有している。１つの補助セクタ（例えばセクタ２３）を対象セクタとしてアクセスを行っているとき、補助セクタ２３ｄはクリアな状態にある。従って、補助セクタ２３ｄを割り当てることで、上記のようなライトデータ列ＷＤＴの記憶が可能となる。
【００６９】
消去制御部３８は、外部からインタフェース回路２１を介して供給される書込終了信号ＷＣＳに応答して転送処理を実行する。消去制御部３８は、割当変更信号ＣＡＳを割当制御部３７に出力し、割当制御部３７は、割当変更信号ＣＡＳに応答して、未使用のセクタをデータ列の書き込みに設定する。また、消去制御部３８は、転送のためのアドレス信号ＴＡＤと、転送のためのテーブル指定信号ＬＳＴをアドレス変換部３１に出力する。アドレス変換部３１は、テーブル３１ａ〜３１ｄを用いて、転送のためのアドレス信号ＴＡＤを内部アドレスＡＤ１，ＡＤ２に変化し、その時々の動作に応じた内部アクセス信号ＩＲＷと内部アドレスＡＤ１，ＡＤ２をメモリ２３に出力する。
【００７０】
上記の制御回路２２のリード動作、ライト動作、転送動作を説明する。
［リード動作］
１．補助セクタに該当データなしの場合。
【００７１】
アドレス変換部３１には、リードアクセスを示す外部アクセス信号ＲＷと外部アドレスＡＤＲが供給される。アドレス変換部３１は、対象となるメインテーブル（例えば、メインテーブル３１ａ）を用いて外部アドレスＡＤＲを内部アドレスＡＤ１へ変換し、リードアクセスを示す内部アクセス信号ＩＲＷと内部アドレスＡＤ１をメモリ２３に出力する。なお、メインテーブル３１ａは、データ列の書き込み、つまりライト動作によって設定されている。
【００７２】
メモリ２３は、内部アドレスＡＤ１に示されるデータ列を読み出し、リードデータ列ＲＤ１を出力する。読出制御部３３は、データ反転部３４とデータ合成部３５を制御する。メモリ２３から出力されるリードデータ列ＲＤ１は、データ反転部３４とデータ合成部３５を介してリードデータ列ＲＤＴとしてインタフェース回路２１に供給され、そのインタフェース回路２１からバス１２に出力される。
【００７３】
２．補助セクタに該当データありの場合。
アドレス変換部３１には、リードアクセスを示す外部アクセス信号ＲＷと外部アドレスＡＤＲが供給される。アドレス変換部３１は、メインテーブル３１ａ，３１ｂを用いて外部アドレスＡＤＲを内部アドレスＡＤ１へ変換し、リードアクセスを示す内部アクセス信号ＩＲＷと内部アドレスＡＤ１をメモリ２３に出力する。メモリ２３は、内部アドレスＡＤ１に示されるデータ列を読み出し、リードデータ列ＲＤ１を出力する。読出制御部３３は、データ反転部３４とデータ合成部３５を制御する。メモリ２３から出力されるリードデータ列ＲＤ１は、データ反転部３４を介してデータ合成部３５に供給され、データ合成部３５はリードデータ列をバッファ３５ａに保持する。
【００７４】
また、アドレス変換部３１は、ヒット情報を出力し、読出リスト３２はヒット情報を記憶する。読出制御部３３は、次のサイクルにおいて、読出リスト３２に記憶されたヒット情報を読み出し、リードアドレスＲＡＤとテーブル指定信号ＬＳＲをアドレス変換部３１に出力する。アドレス変換部３１は、補助テーブル３１ｃ，３１ｄを用いてリードアドレスＲＡＤを内部アドレスＡＤ２に変化する。そして、アドレス変換部３１は、リードアクセスを示す内部アクセス信号ＩＲＷと内部アドレスＡＤ２をメモリ２３に出力する。メモリ２３は、内部アドレスＡＤ１に示されるデータ列を読み出し、リードデータ列ＲＤ２を出力する。読出制御部３３は、データ反転部３４に反転動作の制御信号を出力し、データ合成部３５に合成動作の制御信号を出力する。メモリ２３から出力されるリードデータ列ＲＤ１は、データ反転部３４にて論理反転されてデータ合成部３５に供給される。データ合成部３５はデータ反転部３４から供給されるリードデータ列と、バッファ３５ａに保持したリードデータ列と合成することにより生成したリードデータ列ＲＤＴを出力する。
【００７５】
外部アドレスＡＤＲに対して複数の補助セクタが設定されている場合、それらの補助セクタに対応する複数のヒット情報が読出リスト３２に記憶される。読出制御部３３は、読出リスト３２に記憶された全てのヒット情報を読み出し、上記と同様の制御を行って複数の補助セクタのそれぞれから読み出した複数のデータ列と、バッファ３５ａに保持したデータ列とを合成してリードデータ列ＲＤＴを生成する。
【００７６】
［ライト動作］
１．初回のライト動作。
アドレス変換部３１には、ライトアクセスを示す外部アクセス信号ＲＷと外部アドレスＡＤＲが供給される。データ分解部３６には、ライトデータ列ＷＤＴが供給される。最初の書き込みのとき、アドレス変換部３１のメインテーブル３１ａ，３１ｂはクリアされているため、割当制御部３７により対象となるメインテーブル（例えば、メインテーブル３１ａ）にアドレス変換情報とセクタステータス情報が設定される。アドレス変換部３１は、メインテーブル３１ａを用いて外部アドレスＡＤＲを内部アドレスＡＤ１へ変換する。アドレス変換部３１は、ライトアクセスを示す内部アクセス信号ＩＲＷと内部アドレスＡＤ１をメモリ２３に出力する。データ分解部３６は、ライトデータ列ＷＤＴと等しいライトデータ列ＷＤ１をメモリ２３に出力する。メモリ２３は、内部アドレスＡＤ１にて示される領域に、ライトデータ列ＷＤ１を記憶する。
【００７７】
２．２回目以降のライト動作。
アドレス変換部３１には、ライトアクセスを示す外部アクセス信号ＲＷと外部アドレスＡＤＲが供給される。データ分解部３６は、供給されるライトデータ列ＷＤＴをバッファ３６ａに保持する。アドレス変換部３１は、リード動作と同様に、外部アドレスＡＤＲに対応するデータ列ＲＤ１，ＲＤ２をメモリ２３から読み出す。該当セクタの有無に応じて、データ列ＲＤ１と等しい参照データ列ＲＲＤ、又はデータ列ＲＤ１とデータ列ＲＤ２を合成した参照データ列ＲＲＤが、データ合成部３５からデータ分解部３６に供給される。データ分解部３６は、バッファ３６ａに保持したライトデータ列ＷＤＴと参照データ列ＲＲＤと、を互いに比較する。
【００７８】
２．１．「１変更データ」なし。
アドレス変換部３１は、メインテーブル３１ａを用いて外部アドレスＡＤＲを内部アドレスＡＤ１へ変換する。アドレス変換部３１は、ライトアクセスを示す内部アクセス信号ＩＲＷと内部アドレスＡＤ１をメモリ２３に出力する。データ分解部３６は、ライトデータ列ＷＤＴと等しいライトデータ列ＷＤ１をメモリ２３に出力する。メモリ２３は、内部アドレスＡＤ１にて示される領域に、ライトデータ列ＷＤ１を記憶する。
【００７９】
２．２．「１変更データ」あり。
データ分解部３６は、割当要否信号ＲＡＳを出力する。割当制御部３７は、補助テーブル（例えば、補助テーブル３１ｃ）を設定し、メインセクタ２３ａに補助セクタ２３ｃを割り当てる。メインテーブル３１ａには、外部アドレスＡＤＲを内部アドレスＡＤ１に変換するアドレス変換情報に対応するセクタステータス情報に、補助データ有りを示す情報が設定される。
【００８０】
データ分解部３６は、ライトデータ列ＷＤＴと参照データ列ＲＲＤとの比較結果に基づいて、「１変更データ」を含まないライトデータ列ＷＤ１を生成する。そして、データ分解部３６は、ライトデータ列ＷＤ１をメモリ２３に出力し、テーブル指定信号ＬＳＷをアドレス変換部３１に出力する。アドレス変換部３１は、テーブル指定信号ＬＳＷに基づいて、メインテーブル３１ａを用いて外部アドレスＡＤＲを内部アドレスＡＤ１へ変換し、ライトアクセスを示す内部アクセス信号ＩＲＷと内部アドレスＡＤ１をメモリ２３に出力する。メモリ２３は、内部アドレスＡＤ１にて示されるメインセクタ２３ａの領域に、ライトデータ列ＷＤ１を記憶する。
【００８１】
次いで、データ分解部３６は、ライトデータ列ＷＤＴと参照データ列ＲＲＤとの比較結果に基づいて、「１変更データ」の位置のデータを論理値「０」とし、他の位置のデータを論理値「１」としたライトデータ列ＷＤ２を生成する。そして、データ分解部３６は、ライトデータ列ＷＤ２をメモリ２３に出力し、テーブル指定信号ＬＳＷをアドレス変換部３１に出力する。アドレス変換部３１は、テーブル指定信号ＬＳＷに基づいて、補助テーブル３１ｃを用いて外部アドレスＡＤＲを内部アドレスＡＤ２へ変換し、ライトアクセスを示す内部アクセス信号ＩＲＷと内部アドレスＡＤ２をメモリ２３に出力する。メモリ２３は、内部アドレスＡＤ２にて示される補助セクタ２３ｃの領域に、ライトデータ列ＷＤ２を記憶する。
【００８２】
［転送動作］
消去制御部３８は、供給される書込終了信号ＷＣＳに応答して転送のための処理を行う。例えば、消去制御部３８は、割当制御部３７に対し、割当変更信号ＣＡＳを出力する。割当制御部３７は、割当変更信号ＣＡＳに応答して、未使用のセクタ（例えばメインセクタ２３ｂ）を確保する。アドレス変換部３１は、消去制御部３８から出力される転送アドレスＡＤＴに基づいて、リード動作と同様に、データ列ＲＤ１，ＲＤ２をメモリ２３から読み出す。該当セクタの有無に応じて、データ列ＲＤ１と等しい転送データ列ＴＲＤ、又はデータ列ＲＤ１とデータ列ＲＤ２を合成した転送データ列ＴＲＤが、データ合成部３５からデータ分解部３６に供給される。データ分解部３６は、転送データ列ＴＲＤと等しいライトデータ列ＷＤをメモリ２３に出力し、テーブル指定信号ＬＳＷをアドレス変換部３１に出力する。アドレス変換部３１は、テーブル指定信号ＬＳＷに基づいて、確保されたメインテーブル３１ｂを用いて転送アドレスＡＤＴを内部アドレスＡＤ１へ変換し、ライトアクセスを示す内部アクセス信号ＩＲＷと内部アドレスＡＤ１をメモリ２３に出力する。メモリ２３は、内部アドレスＡＤ１にて示されるメインセクタ２３ｂの領域に、ライトデータ列ＷＤを記憶する。
【００８３】
消去制御部３８は、１つのデータ列のメインセクタ２３ｂへの書き込みが終了すると、インクリメントした転送アドレスＡＤＴをアドレス変換部３１に出力する。従って、上記の処理が、メインセクタ２３ａの全ての内部アドレスに対して繰り返し実行され、メインセクタ２３ａと補助セクタ２３ｃのデータ列が、確保したメインセクタ２３ｂに転送される。消去制御部３８は、データ列の転送が終了すると、割当変更信号ＣＡＳを割当制御部３７に出力し、割当制御部３７は、割当変更信号ＣＡＳに応答して、メインセクタ２３ａと補助セクタ２３ｃを無効化し、確保したメインセクタ２３ｂを対象とするセクタに設定する（有効化する）。次いで、消去制御部３８は、メモリ２３に対して、セクタ消去命令を出力し、メモリ２３は、メインセクタ２３ａと補助セクタ２３ｃのデータ列を消去する。
【００８４】
制御回路２２の書込処理手順をフローチャートに従って説明する。
図５に示すように、制御回路２２は、メモリ２３のメインセクタ２３ａ，２３ｂが変換テーブルに登録されているか否か、例えばメインの変換テーブル３１ａ，３１ｂに外部アドレスＡＤＲに対するアドレス変換情報が登録されているか否かを判定する（ステップ４１）。登録されていない場合、制御回路２２は、対象とするメインセクタ（例えばセクタ２３ａ）を変換テーブル（例えば、メインテーブル３１ａ）に登録し（ステップ４２）、ステップ４５へ移行する。一方、登録されている場合、制御回路は、外部アドレスＡＤＲにて示される書き込み先のデータ（参照データ列ＲＲＤ）を読み出し、参照データ列ＲＲＤとライトデータ列ＷＤＴとを比較する（ステップ４３）。
【００８５】
制御回路２２は、比較結果に基づいて、論理値「０」から論理値「１」への書き換えが発生するか否か、即ち「１変更データ」がライトデータ列ＷＤＴに含まれるか否かを判定する（ステップ４４）。書き換えが発生しない場合、制御回路２２は、ライトデータ列ＷＤＴを、メインセクタ２３ａに書き込み（ステップ４５）、ステップ５１へ移行する。
【００８６】
書き換えが発生する場合、制御回路２２は、割り当て済みの補助セクタが存在するか否かを判定する（ステップ４６）。補助セクタが存在しない場合、制御回路２２は、補助セクタのうちの１つ（例えば、補助セクタ２３ｃ）をテーブル（例えばテーブル３１ｃ）に登録し、外部アドレスＡＤＲに応じてメインセクタ２３ａに対して補助セクタ２３ｃを割り当て（ステップ４７）、ステップ５０へ移行する。
【００８７】
補助セクタが存在する場合、制御回路２２は、その補助セクタにあって外部アドレスＡＤＲにて示されるデータ列の対応するビットが、論理値「１」か否かを判定する（ステップ４８）。論理値「１」は、そのビットに対して「１変更データ」に基づく変更が行われていないことを示し、論理値「０」はそのビットに対して「１変更データ」に基づく変更が行われたことを示す。従って、該当データが論理値「１」ではない、即ち論理値「０」の場合、制御回路２２は、新たな補助セクタ（例えば、補助セクタ２３ｄ）を追加設定し（ステップ４９）、ステップ４７へ移行する。
【００８８】
該当データが論理値「１」の場合、制御回路２２は、ライトデータ列ＷＤＴから生成した「１変更データ」を含まないデータ列をメインセクタ２３ａに書き込み、補助セクタ２３ｃの該当ビットに論理値「０」を書き込む（ステップ５０）。
【００８９】
次いで、制御回路２２は、書き込みが成功したか否かを判定する（ステップ５１）。書き込みが成功した場合、制御回路２２は、１つのデータ列の書き込み処理を終了する。書き込みが失敗した場合、制御回路２２は、ライトデータ列ＷＤＴの供給元（例えば、図１に示す処理装置１１）に対して書込失敗通知を示す信号を出力する（ステップ５２）。次いで、制御回路は、外部アドレスＡＤＲに対応する情報（メインテーブル３１ａにおける「１変更データ」の存在を示すセクタステータス情報、補助セクタ２３ｃを参照するアドレス変換情報、等）を消去し、補助セクタ２３ｃの消去し（ステップ５３）、１つのデータ列の書き込み処理を終了する。補助セクタの２３ｃの消去において、他のデータが書き込まれている場合には、それらのデータの退避した後、セクタ全体を消去し、退避データをセクタに書き戻す。
【００９０】
制御回路２２の転送処理手順をフローチャートに従って説明する。
図６に示すように、制御回路２２は、書き込み完了通知を受け取る（又は書き込み完了を検知する）と（ステップ６１）、対象とするメインセクタ（例えばセクタ２３ａ）のデータ列と、メインセクタに対して割り当てられた補助セクタ（例えば補助セクタ２３ｃ）データ列とを読み出し（ステップ６２）、書き込みのために設定したメインセクタ（例えばセクタ２３ｂ）に合成したデータ列を書き込む（ステップ６３）。つまり、制御回路２２は、メインセクタ２３ａと補助セクタ２３ｃのデータ列を、メインセクタ２３ｂに転送する。
【００９１】
次いで、制御回路２２は、全てのデータを転送したか否かを判定する（ステップ６４）。全てのデータについて転送を完了していない場合、制御回路２２は、ステップ６２へ移行する。つまり、ステップ６２とステップ６３の処理を繰り返し実行し、全てのデータを、メインセクタ２３ａ及び補助セクタ２３ｃからメインセクタ２３ｂへ転送する。
【００９２】
全てのデータの転送を完了すると、制御回路２２は、転送先のメインセクタ２３ｂを外部アドレスＡＤＲに従ってアクセスするように、メインテーブル３１ｂにアドレス変換情報を登録する。次いで、制御回路２２は、転送元のメインセクタ２３ａ及び補助セクタ２３ｃに対応するテーブル３１ａ，３１ｃをクリアし、処理を終了する。
【００９３】
次に、書き込み動作におけるデータの一例を説明する。
図７に示すように、メインセクタ２３ａと補助セクタ２３ｃはそれぞれ初期状態にある。従って、メインセクタ２３ａにおいて、アドレス［０００］〜［００２］で示される領域のメモリセルは、全て論理値「１」を示す。同様に、補助セクタ２３ｃにおいて、アドレス［０００］〜［００２］にて示される領域のメモリセルは、全て論理値「１」を示す。なお、図７において、メインセクタ２３ａのアドレス［０００］〜［００２］は、メインセクタ２３ａにおける相対的なアドレスを示す。同様に、補助セクタ２３ｃのアドレス［０００］〜［００２］は、メインセクタ２３ａにおける相対的なアドレスを示す。
【００９４】
このようなメインセクタ２３ａに対し、例えば、メインセクタ２３ａのアドレス［０００］〜［００２］にデータ列「００００１１１１」を書き込む。このデータ列「００００１１１１」は、メインセクタ２３ａに含まれる各メモリセルの論理値「１」を「０」に書き換える。従って、データ列「００００１１１」はそのままメインセクタ２３ａに供給される。その結果、図８に示すように、メインセクタ２３ａにデータ列「００００１１１１」が記憶される。
【００９５】
次に、例えば、メインセクタ２３ａのアドレス［００１］に、データ列ＷＤＴを書き込む。このデータ列ＷＤＴの各ビットは、例えば「００１１１１００」である。この場合、図８に示すメインセクタ２３ａのアドレス［００１］に格納されたデータ列「００００１１１１」が、参照データ列ＲＲＤとして読み出される。
【００９６】
そして、図９に示すように、参照データ列ＲＲＤとライトデータ列ＷＤＴが比較される。この場合、参照データ列ＲＲＤにおいて一点鎖線で囲む２つのビット「００」が、ライトデータ列ＷＤＴでは「１１」である。また、参照データ列ＲＲＤにおいて二点鎖線で囲む２つのビット「１１」が、ライトデータ列ＷＤＴでは「００」である。従って、ライトデータ列ＷＤＴにおいて一点鎖線で囲む２つのビット「１１」は、メインセクタ２３ａのデータを、論理値「０」から論理値「１」へ書き換えるデータであり、「１変更データ」である。
【００９７】
従って、ライトデータ列ＷＤＴを、図１０左側に示すように、「１変更データ」を含まないデータ列ＷＤ１（ビット配列は「００００１１００」）と、図１０右側に示すように、「１変更データ」の位置に論理値「０」を書き込むデータ列ＷＤ２（ビット配列は「１１００１１１１」）とに分割する。
【００９８】
図１１に示すように、メインセクタ２３ａのアドレス［００１］に、補助セクタ２３ｃのアドレス「０００」を割り当てる。そして、メインセクタ２３ａのアドレス［００１］に、図１０に示すデータ列ＷＤ１を書き込み、補助セクタ２３ｃのアドレス［０００］に、図１０に示すデータ列ＷＤ２を書き込む。
【００９９】
次に、読み出し動作にけるデータの一例を説明する。
図１２に示すように、メインセクタ２３ａのアドレス［００１］に、補助セクタ２３ｃのアドレス「０００」が割り当てられている。メインセクタ２３ａのアドレス［００１］にはデータ列「００００１１００」が記憶され、補助セクタ２３ｃのアドレス［０００］にはデータ列「１１００１１１１」が記憶されている。メインセクタ２３ａのアドレス［００１］のデータ列がリードデータ列ＲＤ１として読み出される。補助セクタ２３ｃのアドレス［０００］のデータ列が補助データ列ＲＤ２として読み出される。この補助データ列ＲＤ２は、論理反転されて反転データ列ＲＤ２ｘとされる。そして、リードデータ列ＲＤ１と反転データ列ＲＤ２ｘが合成（論理和）されたリードデータ列ＲＤＴが出力される。
【０１００】
以上記述したように、本実施形態によれば、以下の効果を奏する。
（１）制御回路２２は、メモリセルの状態を書き込み状態から消去状態に変更する「１変更データ」がライトデータ列ＷＤＴに含まれるか否かを判定する。ライトデータ列ＷＤＴに「１変更データ」が含まれる場合、制御回路２２は、ライトデータ列ＷＤＴから、「１変更データ」ではない位置のデータをメインセクタＭＳｍに書き込み、「１変更データ」である位置のデータを論理反転して補助セクタＭＳｓに書き込む。「１変更データ」を論理反転したデータは、論理値「０」であるため、補助セクタＭＳｓにおいて消去動作は発生しない。このように、論理値「０」を論理値「１」に変更するデータを含むライトデータ列ＷＤＴを、メインセクタＭＳｍと補助セクタＭＳｓに書き込む。この結果、論理値「０」を論理値「１」に変更するデータを含むライトデータ列ＷＤＴについて、消去動作を伴わない書き込み動作とすることで、消去回数を低減することができる。
【０１０１】
（２）制御回路２２は、「１変更データ」である位置のデータを論理反転して補助セクタＭＳｓに書き込む。この処理は、外部（例えば、図１に示す処理装置１１）に対して、メインセクタＭＳｍに記憶したデータを、データ列の単位、又はビット単位で消去する処理を提供する。つまり、データ列単位又はビット単位の消去動作を可能とすることができる。
【０１０２】
（３）記憶装置１３は、「１変更データ」を含むライトデータ列ＷＤＴの書き込みに対して消去動作を伴わない。従って、消去動作を伴うメモリにおいて書き込みに要する時間と比べ、記憶装置１３の書き込みに要する時間は短い。このように、「１変更データ」を含むライトデータ列ＷＤＴの書き込みに要する時間を短縮することができる。
【０１０３】
（４）「１変更データ」を含むライトデータ列ＷＤＴの書き込み、即ちデータを「０」から「１」に書き換える処理毎に消去動作を伴わないため、メモリ２３の消去回数の制約を緩和することができ、ひいてはメモリ２３の寿命を延ばすことができる。
【０１０４】
尚、上記各実施形態は、以下の態様で実施してもよい。
・上記実施形態に対し、各セクタの数やセクタの大きさを適宜変更してもよい。例えば、外部アドレスＡＤＲに対するセクタの数を適宜変更してもよい。メインセクタと補助セクタの数を適宜変更してもよい。また、メインセクタの数と補助セクタの数を、互いに異なる値に設定してもよい。
【０１０５】
例えば、図１３（ａ）に示すように、外部アドレスＡＤＲは、２つの論理セクタ７１ａ，７１ｂを示す論理アドレスである。外部アドレスＡＤＲは、第１の論理セクタ７１ａを示す第１の外部アドレスＡＤＲａと、第２の論理セクタ７１ｂを示す第２の外部アドレスＡＤＲｂを含む。
【０１０６】
メモリ８１は、論理セクタ７１ａ，７１ｂに応じたメモリ容量に設定された４つのメインセクタ８１ａ，８１ｂ，８１ｃ，８１ｄと、所定のメモリ容量に設定された３つの補助セクタ８１ｅ，８１ｆ，８１ｇを含む。各補助セクタ８１ｅ〜８１ｇのメモリ容量は、例えばメインセクタ８１ａ〜８１ｄのメモリ容量の２分の１に設定されている。
【０１０７】
アドレス変換部９１は、メインセクタ８１ａ〜８１ｄに対応するメインテーブル９１ａ〜９１ｄと、補助セクタ８１ｅ〜８１ｇに対応する補助テーブル９１ｅ〜９１ｇを含む。
例えば、メインセクタ８１ａがメインテーブル９１ａに登録され、メインセクタ８１ｂがメインテーブル９１ｂに登録されている。
【０１０８】
図１３（ｂ）に示すように、外部アドレスＡＤＲａは、メインテーブル９１ａに格納されたアドレス変換情報に従ってメインセクタ８１ａを示す内部アドレスＡＤ１ａへ変換される。メモリ８１は、内部アドレスＡＤ１ａに従って、ライトデータ列ＷＤＴをメインセクタ８１ａに記憶する。また、メモリ８１は、内部アドレスＡＤ１に従って、メインセクタ８１ａからデータ列を読み出し、リードデータ列ＲＤＴを出力する。
【０１０９】
同様に、外部アドレスＡＤＲｂは、メインテーブル９１ｂに格納されたアドレス変換情報に従ってメインセクタ８１ｂを示す内部アドレスＡＤ１ｂへ変換される。メモリ８１は、内部アドレスＡＤ１ｂに従って、メインセクタ８１ｂに対してデータ列のリード／ライトを行う。
【０１１０】
メインセクタ８１ａに書き込むライトデータ列に「１変更データ」が含まれる場合、図１３（ｃ）に示すように、補助セクタ８１ｅをメインセクタ８１ａに割り当て、アドレス変換情報を補助セクタ８１ｅに対応する補助テーブル９１ｅに登録する。メインセクタ８１ａにおいてハッチングを付した部分は、補助セクタ８１ｅが割り当てられた領域を示す。外部アドレスＡＤＲａは、メインテーブル９１ａによって内部アドレスＡＤ１ａへ変換されるとともに、補助テーブル９１ｅによって内部アドレスＡＤ２ａへ変換される。「１変更データ」を含むライトデータ列は、「１変更データ」を含まない第１のライトデータ列と、「１変更データ」の位置に応じたデータを含む第２のライトデータ列とに分割される。そして、第１のライトデータ列は、内部アドレスＡＤ１ａに従ってメインセクタ８１ａに書き込まれ、第２のライトデータ列は、内部アドレスＡＤ２ａに従って補助セクタ８１ｅに書き込まれる。
【０１１１】
同様に、メインセクタ８１ｂに書き込むライトデータ列に「１変更データ」が含まれる場合、図１４（ａ）に示すように、補助セクタ８１ｆをメインセクタ８１ｂに割り当て、アドレス変換情報を補助セクタ８１ｆに対応する補助テーブル９１ｆに登録する。メインセクタ８１ｂにおいてハッチングを付した部分は、補助セクタ８１ｆが割り当てられた領域を示す。外部アドレスＡＤＲｂは、メインテーブル９１ｂによって内部アドレスＡＤ１ｂへ変換されるとともに、補助テーブル９１ｆによって内部アドレスＡＤ２ｂへ変換される。「１変更データ」を含むライトデータ列は、「１変更データ」を含まない第１のライトデータ列と、「１変更データ」の位置に応じたデータを含む第２のライトデータ列とに分割される。そして、第１のライトデータ列は、内部アドレスＡＤ１ｂに従ってメインセクタ８１ｂに書き込まれ、第２のライトデータ列は、内部アドレスＡＤ２ｂに従って補助セクタ８１ｆに書き込まれる。
【０１１２】
メインセクタ８１ａに対する書き込み完了信号、又は完了を検知すると、メインセクタ８１ａと補助セクタ８１ｅのデータがメインセクタ８１ｃに転送される。全てのデータの転送が終了すると、図１４（ｂ）に示すように、メインセクタ８１ｃに対応するメインテーブル９１ｃにアドレス変換情報が登録される。その結果、外部アドレスＡＤＲａは、メインテーブル９１ｃによって内部アドレスＡＤ１ａへ変換され、内部アドレスＡＤ１ａによってメインセクタ８１ｃがアクセスされる。
【０１１３】
同様に、メインセクタ８１ｂに対する書き込み完了信号、又は完了を検知すると、メインセクタ８１ｂと補助セクタ８１ｆのデータがメインセクタ８１ｄに転送される。全てのデータの転送が終了すると、図１４（ｃ）に示すように、メインセクタ８１ｄに対応するメインテーブル９１ｄにアドレス変換情報が登録される。その結果、外部アドレスＡＤＲｂは、メインテーブル９１ｄによって内部アドレスＡＤ１ｂへ変換され、内部アドレスＡＤ１ｂによってメインセクタ８１ｄがアクセスされる。
【０１１４】
・補助セクタの大きさ（記憶容量）を適宜変更してもよい。例えば、メインセクタに対する書き換えが少ない場合、補助セクタを小さく設定することで、メモリ２３の大きさ（面積）を小さくすることができる。
【０１１５】
・上記実施形態では、ヒット情報として外部アドレスＡＤＲを読出リスト３２に格納するようにした。ヒット情報は、外部アドレスＡＤＲ以外でもよい。ヒット情報には、例えば、メインテーブル３１ａ，３１ｂを用いて外部アドレスＡＤＲを変換した内部アドレスＡＤ１、補助テーブル３１ｃ，３１ｄを用いて外部アドレスＡＤＲを変換した内部アドレスＡＤ２、補助データが格納されたセクタ（補助セクタ）を示すセクタ情報（例えばセクタアドレス）、等を用いることができる。
【０１１６】
・上記実施形態に対し、ライトデータ列ＷＤＴと参照データ列ＲＲＤとの比較結果に応じて、書き換えが必要な位置（ビット）のデータを、例えばビット操作により変更するようにしてもよい。
【０１１７】
・上記実施形態に対し、メインセクタ２３ａ，２３ｂから読み出したデータ列ＲＤ１をデータ合成部３５に供給し、補助セクタ２３ｃ，２３ｄから読み出したデータ列ＲＤ２をデータ反転部３４に供給して反転したデータ列をデータ合成部３５に供給するようにしてもよい。
【０１１８】
・メインセクタＭＳｍのメモリ容量と等しい揮発性のメモリ（例えば、ＤＲＡＭ）を備え、メインセクタＭＳｍのデータと補助セクタＭＳｓのデータを揮発性のメモリに転送し、メインセクタＭＳｍ及び補助セクタＭＳｓのデータを消去した後、揮発性のメモリのデータをメインセクタＭＳｍに書き込むようにしてもよい。
【０１１９】
・書込終了信号ＷＣＳは、例えば、電子機器１０の電源をオフするときに生成する信号、記憶装置１３をバス１２から電気的又は物理的に切り離すときに生成する信号、電子機器１０のリセット信号、電子機器１０に含まれる回路の一部の回路の動作を停止等の状態に設定するためのスタンバイ信号、等を用いることができる。
【０１２０】
・複数の補助セクタを含むメモリに対応する制御回路は、補助セクタの割り当て状況に応じて、転送処理を制御するようにしてもよい。例えば、次の書き込みアクセスにおいて割り当てるべき補助セクタの残数がある閾値以下になる、または無くなった段階で、制御回路は新たなデータ列の書き込みの受付を停止し、転送処理を実行する。この場合、書き込み完了信号を外部から供給することなく転送処理が実行されるため、外部の回路（例えば、図１に示す処理装置１１）の処理の増加を抑制することができる。
【０１２１】
・電子機器１０は、フラッシュメモリを用いる他の装置、例えば、録音装置、デジタルスチルカメラ、デジタルビデオカメラ、携帯電話、携帯型音楽再生装置、等としてもよい。
【０１２２】
・上記実施形態は、バス１２に接続された記憶装置１３としたが、カード型の記憶装置、電子機器に外部接続される記憶装置、等のように、インタフェース回路等に接続される記憶装置に具体化してもよい。
【符号の説明】
【０１２３】
２２  制御回路
２３  メモリ（フラッシュメモリ）
２３ａ〜２３ｄ  セクタ
３１  アドレス変換部
３１ａ〜３１ｄ  テーブル
３６  データ分解部
ＡＤＲ  外部アドレス
ＭＳｍ  セクタ（第１の記憶領域）
ＭＳｓ  セクタ（第２の記憶領域）
ＲＤＴ，ＲＤ１，ＲＤ２  リードデータ列
ＷＤＴ，ＷＤ１，ＷＤ２  ライトデータ列
ＲＲＤ  参照データ列
【図１】
0005614337.tif 000002
【図２】
0005614337.tif 000003
【図３】
0005614337.tif 000004
【図４】
0005614337.tif 000005
【図５】
0005614337.tif 000006
【図６】
0005614337.tif 000007
【図７】
0005614337.tif 000008
【図８】
0005614337.tif 000009
【図９】
0005614337.tif 000010
【図１０】
0005614337.tif 000011
【図１１】
0005614337.tif 000012
【図１２】
0005614337.tif 000013
【図１３】
0005614337.tif 000014
【図１４】
0005614337.tif 000015