(57)【要約】【課題】  ECC回路を搭載した不揮発性記憶装置へのデータ書込み時間を可及的に短くする【解決手段】  ECC回路を含む不揮発性記憶装置を備えたデータ書込み装置において、これからデータを書き込もうとする書込み対象アドレスからデータ及び誤り訂正コードを読み出し、読み出したデータ及び誤り訂正コードに基づいて、書込み対象アドレスの領域が消去状態であるか否かを検査する。消去状態である場合は、書込み対象領域を消去することなくデータ書込みを行う第１モードに書込み回路を設定又は維持し、消去状態でない場合は、書込み対象領域を消去してからデータ書込みを行う第２モードに書込み回路を設定又は維持し、モードの設定後、書込み回路にデータ書込みを指示する。【選択図】  図２
2006079528.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性記憶装置であって、
書き換え可能な不揮発性メモリと、
書込み指示された第１データに基づき第１誤り訂正コードを算出する誤り訂正コード算出手段と、
前記第１データと前記第１誤り訂正コードとを前記不揮発性メモリにおける前記書込み指示に基づく書込み対象領域に書き込む書込み手段であって、前記書込み対象領域を一旦データ消去した後で前記第１データ及び第１誤り訂正コードの書込みを行う第１のモードと、前記書込み対象領域をデータ消去することなく前記第１データ及び第１誤り訂正コードの書込みを行う第２のモードとを有する書込み手段と、
通常読出し指示に基づき前記書込み対象領域から第２データ及び第２誤り訂正コードを読出し、前記第２誤り訂正コードに基づき前記第２データに誤りがある場合は前記第２データを訂正する誤り訂正処理を行い、前記誤り訂正処理後の第２データを出力する誤り訂正手段と、
検査読出し指示に基づき前記書込み対象領域から前記第２データ及び前記第２誤り訂正コードを読み出して出力する検査用データ出力手段と、
を有する不揮発性記憶装置と、
前記不揮発性記憶装置に前記書込み指示、通常読出し指示及び検査読出し指示を行うプロセッサであって、
前記検査読出し指示を行って、前記検査用データ出力手段から前記第２データ及び前記第２誤り訂正コードを出力させ、出力された前記第２データ及び第２誤り訂正コードに基づいて、前記書込み対象領域がデータ消去されているか否かを検査する検査手段と、
前記書込み対象領域がデータ消去されていない場合は前記書込み手段を前記第１のモードに設定し又は既に前記第１のモードが設定されている場合は前記第１のモードを維持し、前記書込み対象領域がデータ消去されている場合は、前記書込み手段を前記第２のモードに設定し又は既に前記第２のモードが設定されている場合は前記第２のモードを維持するモード設定手段と、
前記書込み手段に対する前記第１又は第２のモードの設定又は維持後、前記第１データの書込み指示を行う書込指示手段と、
を有するプロセッサと、
を備えたデータ書込み装置。
【請求項２】
前記検査用データ出力手段から出力された前記第２データ及び前記第２誤り訂正コードを用いて、前記第２データ及び第２誤り訂正コードを構成する全ビットの論理積又は論理和を計算する演算回路をさらに備え、
前記プロセッサにおける前記検査手段は、前記演算回路による計算結果に基づいて前記書込み対象領域がデータ消去されているか否かを検査することを特徴とする請求項１に記載のデータ書込み装置。
【請求項３】
前記プロセッサにおける前記検査手段は、前記計算結果が真又は偽である場合は、前記書込み対象領域がデータ消去されていると判断することを特徴とする請求項２に記載のデータ書込み装置。
【請求項４】
不揮発性記憶装置であって、
書き換え可能な不揮発性メモリと、
書込み指示された第１データに基づき第１誤り訂正コードを算出する誤り訂正コード算出手段と、
前記第１データと前記第１誤り訂正コードとを前記不揮発性メモリにおける前記書込み指示に基づく書込み対象領域に書き込む書込み手段であって、前記書込み対象領域を一旦データ消去した後で前記第１データ及び第１誤り訂正コードの書込みを行う第１のモードと、前記書込み対象領域をデータ消去することなく前記第１データ及び第１誤り訂正コードの書込みを行う第２のモードとを有する書込み手段と、
読出し指示に基づき前記書込み対象領域から第２データ及び第２誤り訂正コードを読出し、前記第２誤り訂正コードに基づき前記第２データに誤りがあるか否かを検査し、誤りがある場合は前記第２データを訂正する誤り訂正処理を行う誤り訂正手段と、
前記誤り訂正処理後の第２データ、及び前記検査の結果を出力する出力手段と、
を有する不揮発性記憶装置と、
前記不揮発性記憶装置に前記書込み指示及び前記読出し指示を行うプロセッサであって、
前記読出し指示を行って、前記出力手段から前記誤り訂正処理後の第２データと前記検査の結果とを出力させ、出力された前記第２データと前記検査の結果とに基づいて、前記書込み対象領域がデータ消去されているか否かを検査する検査手段と、
前記書込み対象領域がデータ消去されていない場合は前記書込み手段を前記第１のモードに設定し又は既に前記第１のモードが設定されている場合は前記第１のモードを維持し、前記書込み対象領域がデータ消去されている場合は、前記書込み手段を前記第２のモードに設定し又は既に前記第２のモードが設定されている場合は前記第２のモードを維持するモード設定手段と、
前記書込み手段に対する前記第１又は第２のモードの設定又は維持後、前記第１データの書込み指示を行う書込み指示手段と、
を有するプロセッサと、
を備えたデータ書込み装置。
【請求項５】
前記誤り訂正コード算出手段は、書込み指示されたデータが全て同一ビットの場合は、前記ビットと同一のビットで全てが構成される誤り訂正コードを算出するものであり、
前記検査手段は、前記第２データのビットが全て同じであり、且つ、誤りが検出されなかったことを前記検査の結果が示す場合は、前記書込み対象領域がデータ消去されていると判断することを特徴とする請求項４に記載のデータ書込み装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばＩＣカードやＳＩＭカード、無線カード等に搭載されるデータ書込み装置に関する。
【背景技術】
【０００２】
フラッシュメモリやEEPROMなどの不揮発性メモリでは、データの書込み時においては、まず書込み対象領域のデータ消去を行い、その後、書込みを行うのが一般的である。これは、データ書込み時には、不揮発性メモリセルにはVPP と呼ばれる20V程度の高電圧が印加され、一般に、データ消去さていない状態でデータ書込みを行うと、VPPが低下し、正しくデータを書き込みできないからである。ただ、CPUが、書込みの前に、書込み対象領域がデータ消去状態にあるか否かを当該領域からデータを読み出すことで確認し、データ消去状態にある場合はデータ消去処理を省略することなどが可能である。なお、不揮発性メモリにおいて、データ消去およびデータ書込みが連続して行われる場合、これらに要する時間は約6msec程度である。データ消去及びデータ書込みの各時間はそれぞれ約半分の3msecである。
【０００３】
ところで、近年、ＩＣカードでは、高品質が要求されてきており、ICカードにおける不揮発性メモリには、エラー訂正を行うECC回路の搭載が必須となってきている。ECC回路の一例としては、データ書込み時に8bitの書込みデータに対し4bitのパリティデータを計算するものがある。データ読出し時には4bitのパリティデータにより、8bitデータのうち、１bitのエラーを訂正できる。
【０００４】
このようなECC回路を搭載した不揮発性メモリは、データの書込み時においては、常に書込み対象領域（書込データ及びパリティデータを格納する領域）のデータ消去とデータ書込みとの両方を行う必要があった。その理由の一つとして、例えば、ECC回路を搭載した不揮発性メモリの場合、CPUが不揮発性メモリから読み出すデータはエラー訂正処理されたデータであり、それ故、CPUは、書込み対象領域がデータ消去状態にあるかを事前に判断できないことが挙げられる。このように、ECC回路を搭載した不揮発性メモリでは、データ書込み時には、常にデータ消去及び書込みの両方を行うため、データ書込み時間が長くなる問題があった。
【特許文献１】特開２００３−２６３３６８公報
【特許文献２】特開２００２−５２８８４１公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、ECC回路を搭載した不揮発性記憶装置へのデータ書込み時間を可及的に短くできるデータ書込み装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明のデータ書込み装置は、不揮発性記憶装置であって、書き換え可能な不揮発性メモリと、書込み指示された第１データに基づき第１誤り訂正コードを算出する誤り訂正コード算出手段と、前記第１データと前記第１誤り訂正コードとを前記不揮発性メモリにおける前記書込み指示に基づく書込み対象領域に書き込む書込み手段であって、前記書込み対象領域を一旦データ消去した後で前記第１データ及び第１誤り訂正コードの書込みを行う第１のモードと、前記書込み対象領域をデータ消去することなく前記第１データ及び第１誤り訂正コードの書込みを行う第２のモードとを有する書込み手段と、通常読出し指示に基づき前記書込み対象領域から第２データ及び第２誤り訂正コードを読出し、前記第２誤り訂正コードに基づき前記第２データに誤りがある場合は前記第２データを訂正する誤り訂正処理を行い、前記誤り訂正処理後の第２データを出力する誤り訂正手段と、検査読出し指示に基づき前記書込み対象領域から前記第２データ及び前記第２誤り訂正コードを読み出して出力する検査用データ出力手段と、を有する不揮発性記憶装置と、前記不揮発性記憶装置に前記書込み指示、通常読出し指示及び検査読出し指示を行うプロセッサであって、前記検査読出し指示を行って、前記検査用データ出力手段から前記第２データ及び前記第２誤り訂正コードを出力させ、出力された前記第２データ及び第２誤り訂正コードに基づいて、前記書込み対象領域がデータ消去されているか否かを検査する検査手段と、前記書込み対象領域がデータ消去されていない場合は前記書込み手段を前記第１のモードに設定し又は既に前記第１のモードが設定されている場合は前記第１のモードを維持し、前記書込み対象領域がデータ消去されている場合は、前記書込み手段を前記第２のモードに設定し又は既に前記第２のモードが設定されている場合は前記第２のモードを維持するモード設定手段と、前記書込み手段に対する前記第１又は第２のモードの設定又は維持後、前記第１データの書込み指示を行う書込指示手段と、を有するプロセッサと、を備える。
【０００７】
本発明データ書込み装置は、不揮発性記憶装置であって、書き換え可能な不揮発性メモリと、書込み指示された第１データに基づき第１誤り訂正コードを算出する誤り訂正コード算出手段と、前記第１データと前記第１誤り訂正コードとを前記不揮発性メモリにおける前記書込み指示に基づく書込み対象領域に書き込む書込み手段であって、前記書込み対象領域を一旦データ消去した後で前記第１データ及び第１誤り訂正コードの書込みを行う第１のモードと、前記書込み対象領域をデータ消去することなく前記第１データ及び第１誤り訂正コードの書込みを行う第２のモードとを有する書込み手段と、読出し指示に基づき前記書込み対象領域から第２データ及び第２誤り訂正コードを読出し、前記第２誤り訂正コードに基づき前記第２データに誤りがあるか否かを検査し、誤りがある場合は前記第２データを訂正する誤り訂正処理を行う誤り訂正手段と、前記誤り訂正処理後の第２データ、及び前記検査の結果を出力する出力手段と、を有する不揮発性記憶装置と、前記不揮発性記憶装置に前記書込み指示及び前記読出し指示を行うプロセッサであって、前記読出し指示を行って、前記出力手段から前記誤り訂正処理後の第２データと前記検査の結果とを出力させ、出力された前記第２データと前記検査の結果とに基づいて、前記書込み対象領域がデータ消去されているか否かを検査する検査手段と、前記書込み対象領域がデータ消去されていない場合は前記書込み手段を前記第１のモードに設定し又は既に前記第１のモードが設定されている場合は前記第１のモードを維持し、前記書込み対象領域がデータ消去されている場合は、前記書込み手段を前記第２のモードに設定し又は既に前記第２のモードが設定されている場合は前記第２のモードを維持するモード設定手段と、前記書込み手段に対する前記第１又は第２のモードの設定又は維持後、前記第１データの書込み指示を行う書込み指示手段と、を有するプロセッサと、を備える。
【発明の効果】
【０００８】
本発明により、ECC回路を搭載した不揮発性記憶装置へのデータ書込み時間を可及的に短くできる。
【発明を実施するための最良の形態】
【０００９】
図１は、本発明の実施の形態に従ったデータ書込み装置の構成を示すブロック図である。
【００１０】
このデータ書込み装置は、ICカード、SIM（Subscriber Identify Module）カード、無線カード等に搭載され、例えば１チップにより構成される。
【００１１】
データ書込み装置はCPU１０、ROM１１、RAM１２、不揮発性記憶装置１３及びシステムコントローラ１４を備える。これらの構成要素間はデータバス２５、制御及びアドレスバス２６によって接続される。データバス２５は例えば８ビットバスである。制御及びアドレスバス２６は、リード信号やライト信号といった制御信号と、アドレスとを送る。
【００１２】
ROM１１は、CPU１０によって実行されるプログラムや固定データを格納する。
【００１３】
CPU１０は、ROM１１内のプログラムを実行する。CPU10は、データ読出し時にはアドレス及びリード信号を制御及びアドレスバス２６に出力する。CPU10は、データ書込み時には、アドレス及びライト信号を制御アドレスバス２６に出力し、さらに書込みデータをデータバス２５に出力する。
【００１４】
システムコントローラ１４は、CPU１０によるデータ読出し時及びデータ書込み時において、制御及びアドレスバス２６からアドレスを読み取る。システムコントローラ１４はメモリマップを有し、読み取ったアドレスとメモリマップとに基づいて、読出し又は書込みの対象となるメモリ装置を特定し、特定したメモリ装置に向けてイネーブル（Enable）信号を出力する。
【００１５】
また、システムコントローラ１４は、ERCHKレジスタ１５、ERERRレジスタ１６及びMODEレジスタ１７を有する。ERCHKレジスタ１５はERCHK（＝１or０）を格納し、ERERRレジスタ１６はERERR（＝１or０）を格納し、MODEレジスタ１７はMODE（＝１or０）を格納する。各レジスタ１５〜１７にはアドレスが割り当てられており、各レジスタ１５〜１７はCPU１０によって書込み及び読出し可能である。
【００１６】
不揮発性メモリ装置１３は、不揮発性メモリ１９、書込み回路２０、出力回路２１及びECC（Error Checking & Correction）回路１８を備える。
【００１７】
不揮発性メモリ１９は、フラッシュメモリやEEPROMといった書き換え可能な不揮発性メモリである。
【００１８】
ECC回路１８は、不揮発性メモリ１９へのデータ書込み時に、書込みデータに基づいてパリティデータを算出する。本例ではパリティデータは４ビットとする。書込みデータは、上述したデータバス２５のビット幅から理解されるように、８ビットである。一方、ECC回路１８は、データ読出し時には、CPU１０によって指定されたアドレスの領域からデータ及びパリティデータを読出し、読出しデータに誤りがあるか否かをパリティデータに基づいて検査し、誤りがある場合は誤り訂正を行うといった誤り訂正処理を実行する。
【００１９】
書込み回路２０は、書込みデータと、ECC回路１８により算出されたパリティデータとを、CPU１０によって指定されたアドレスの領域（書込み対象領域）に書き込む。但し、書込み回路２０の書込み動作は、MODEレジスタ１７の値（MODE）によって異なる。即ち、書込み回路２０は、MODE=“０”（初期状態）の場合は、書込み対象領域を一旦消去してからデータの書込みを行い（第１モード）、MODE＝“１”の場合は、このような消去処理を行うことなく、データの書込みを行う（第２モード）。
【００２０】
出力回路２１は、ERCHKレジスタ１５の値（ERCHK）に応じた出力処理を行う。即ち、出力回路２１は、ERCHK＝“０”（初期状態）の場合は、ECC回路１８によって誤り訂正処理された読出しデータ（８ビット）をCPU１０に出力する（通常読出し）。一方、ERCHK＝“１”の場合は、出力回路２１は、この通常読出しに加えてさらに、誤り訂正処理される前の読出しデータ及びパリティデータをシステムコントローラ１４に出力する（空読出し）。つまり、CPUによって指定されたアドレスに示される領域内のデータをそのままの状態で出力する。
【００２１】
ここで、ＲＯＭ１１、ＲＡＭ１２、不揮発性記憶装置１３の読出し及び書込みの動作について説明する。
【００２２】
ROM１１は、CPU１０からのリード信号及びアドレスと、システムコントローラ１４からのイネーブル信号とに基づき、当該アドレスに格納されたデータを読み出し、CPU１０に出力する。
【００２３】
RAM１２は、CPU１０からのリード信号及びアドレスと、システムコントローラ１４からのイネーブル信号とに基づき、当該アドレスに格納されたデータを読み出し、CPU１０に出力する。また、RAM１２は、CPU１０からのライト信号、アドレス及び書込みデータと、システムコントローラ１４からのイネーブル信号とに基づき、当該書込みデータを当該アドレスに書き込む。
【００２４】
不揮発性記憶装置１３は、データ読出し時は、CPU１０からのリード信号及びアドレスと、システムコントローラ１４からのイネーブル信号とに基づき、当該アドレスに格納されたデータ及びパリティデータを読み出す。そして、不揮発性記憶装置１３は、読出しデータをEEC回路１８においてパリティデータに基づきエラー訂正処理してCPU１０に出力する。但し、上述のように、ERCHK＝“１”の場合は、さらに、エラー訂正処理前の読出しデータ及びパリティデータをシステムコントローラ１４に出力する。
【００２５】
不揮発性記憶装置１３へのデータ書込み動作は以下に詳細に示される。
【００２６】
図２は、不揮発性記憶装置１３への書込み動作を説明するフローチャートである。
【００２７】
初期状態として、ERCHK＝“０”、ERERR＝“０”、MODE＝“０”とする。
【００２８】
まず、CPU１０は、ERCHKレジスタ１５に“１”をセットする（ステップS1）。
【００２９】
この状態で、CPU１０は、まず、これからデータを書き込もうとするアドレスの領域がデータ消去状態であるか否かを検査するため、当該アドレスの領域からデータの読出しを行う（ステップS2）。ERCHK＝“１”の状態で、データ読出しを行うと、エラー訂正処理されていないデータ（８ビット）とパリティデータ（４ビット）とが不揮発性記憶装置１３からシステムコントローラ１４に入力される（空読出し）。但し、この際、上述のように、通常の読出しも行われ、CPU１０にはエラー訂正処理された読出しデータ（８ビット）も送られる。なお、CPU１０は、この通常の読出しによって受け取ったデータを特に使用しない。
【００３０】
システムコントローラ１４は、入力されたエラー訂正処理されていない読出しデータとパリティデータとに基づいて、これらの両データを構成する全ビットの論理積を計算し、さらに計算結果の否定を計算し、この計算結果をERERRとしてERERRレジスタ１６に格納する（ステップS3）。このERERRを算出するためにシステムコントローラ１４は図３に示す回路を備える。
【００３１】
図３において、論理積演算回路３１にエラー訂正前の読出しデータ（８ビット）とパリティデータ（４ビット）とが入力され、論理積演算回路３１は、入力された計１２ビットの論理積を計算し、出力する。例えば１２ビットの各ビットの値が“１”である場合は、論理積の結果は“１”となり、１２ビットの中に１つでも“０”が含まれる場合は、論理積の結果は“０”となる。論理積演算回路３１の出力に接続されたインバータ３２は、論理積演算回路３１の出力を反転して出力する。インバータ３２の出力が、ERERRレジスタ１６に、不揮発性記憶装置１３からの書込み指示信号のタイミングで格納される。ERERRレジスタ１６は、その値を保持するため論理和演算回路３３及びフリップフロップ回路３４を有する。
【００３２】
ここで、本実施の形態においては、不揮発性メモリ１９におけるあるアドレスの領域が全てデータ消去されている場合は、当該領域には全て“１”が格納されるとする。従って、エラー訂正処理されていない読出しデータ及びパリティデータが格納されていた領域が全て消去されていたと仮定した場合、論理積演算回路３１からは“１”が出力され、インバータ３２からは“０”が出力され、この結果、ERERRレジスタ１６には“０”が格納される。一方、当該領域が消去状態でなかった場合は、ERERRレジスタ１６には“１”が格納される。
【００３３】
次に、CPU１０は、ERERRレジスタ１６からその値（ERERR）を読み出す（ステップS4）。
【００３４】
ERERR＝“１”である場合は（ステップS5のYES）、即ち、読み出した領域が全て消去されていない場合は、CPU１０は、ERCHK＝“０”、ERERR＝“０”とする（ステップS6）。つまり、ERCHKレジスタ１５及びERERRレジスタ１６を初期状態に戻す。
【００３５】
CPU１０は、書込みデータ、アドレス及びライト信号を不揮発性記憶装置１３に出力し、不揮発性記憶装置１３は、システムコントローラ１４からのイネーブル信号に従って、上述した第１モードによる通常の書込みを行う（ステップS7）。即ち、MODE＝“０”であるため、不揮発性記憶装置１３は、まず、CPU１０からのアドレスに示される領域（パリティデータを格納する領域も含む）を消去し、また、CPU１０からの書込みデータに基づいてパリティデータを計算する。次いで、不揮発性記憶装置１３は、CPU１０からのアドレスに示される領域に、書込みデータ及びパリティデータを書き込む。
【００３６】
一方、ERERR＝“０”である場合は（ステップS5のNo）、即ち、読み出した領域が全て消去されている場合は、CPU１０は、ERCHK＝“０”とし（初期状態に戻し）、さらにMODE＝“１”とする（ステップS8）。
【００３７】
CPU１０は、書込みデータ、アドレス及びライト信号を不揮発性記憶装置１３に出力し、不揮発性記憶装置１３は、システムコントローラ１４からのイネーブル信号に従って、上述した第２モードによる書込み動作を行う（ステップS9）。即ち、MODE＝“１”であるため、不揮発性メモリ１９は、事前にデータ消去を行うことなく、ECC回路１８においてパリティデータを計算し、CPU１０からのアドレスに示される領域に、書込みデータ及び計算したパリティデータを書き込む。
【００３８】
この後、CPUは、MODE＝“０”として、MODEレジスタ１７を初期状態に戻す（ステップS10）。
【００３９】
以上の説明ではエラー訂正処理されていない読出しデータ及びパリティデータのビットが全て“１”の場合をデータ消去状態としたが、これらのビット全てが“０”の場合をデータ消去状態としても良い。この場合は、上述の論路積演算回路３１の代わりに、論理和演算回路を配置し、該論理和演算回路の演算結果が“０”、即ち、インバータ３２の出力が“１”の場合は、データ消去状態であると判断できる。
【００４０】
また、以上の説明では、書込み回路２０の初期状態を第１モード（MODE＝“０”）としたが、第２モード（MODE＝“１”）を初期状態としてもよい。
【００４１】
以上のように、本発明の実施の形態によれば、データ書込みを行う際は、事前に書込み対象領域内のデータをそのままの状態で読み出し、読み出したデータに基づき書込み対象領域が消去されている場合は、書込み回路２０を第２モードに設定して書込みを行うため、データ消去処理が省略され、データ書込み時間を短縮できる。
【００４２】
図４は、本発明の別の実施の形態に従ったデータ書込み装置の構成を示すブロック図である。
【００４３】
不揮発性記憶装置４３における出力回路４５は、前述した実施の形態と同様、データ読出し時に、ECC回路１８によってエラー訂正処理された読出しデータをCPU１０に出力する。さらに、出力回路４５は、ECC回路１８でエラーが検出された場合、即ちエラー訂正が行われた場合は、FLAG＝“１”をシステムコントローラ４４に出力し、エラーが検出されなかった場合、即ちエラー訂正が行われた場合は、システムコントローラ４４にFLAG＝“０”を出力する。
【００４４】
システムコントローラ４４は、不揮発性記憶装置４３から入力されたFLAGをERERRレジスタ１６に格納する。
【００４５】
図５は、不揮発性記憶装置４３への書込み動作を説明するフローチャートである。
【００４６】
初期状態として、ERERR＝“０”、MODE＝“０”とする。
【００４７】
まず、CPU１０は、これからデータを書き込もうとするアドレスに示される領域がデータ消去状態であるか否かを検査するため、当該領域からデータの読出しを行う（ステップS21）。ここで読み出されるデータはエラー訂正処理されたデータ（８ビット）である。
【００４８】
CPU１０は、読み出したデータが全て“１”（FFｈ）である場合は（ステップS22のYES）、ERERRレジスタ１６からFLAGを読み出す（ステップS23）。
【００４９】
FLAG＝“０”である場合は（ステップS24のYES）、即ち、データ読出し時にエラーが検出されなかった場合は、CPU１０は、当該アドレスに示される領域（パリティデータを格納する領域も含む）はデータ消去状態にあると判断し、MODE＝“１”とする（ステップS25）。但し、前提として、ECC回路１８は、パリティデータの計算において、書込みデータがオール“１”である場合は、パリティデータもオール“１”として算出するよう構成される。従って、読出しデータがオール“１”で、データ読出し時にエラーが検出されなかった場合は、当該アドレスに示される領域は消去状態であると判断できる。
【００５０】
MODE＝“１”としたCPU１０は、不揮発性記憶装置４３に対してデータ書込みを指示する（ステップS26）。MODE＝“１”であるため、不揮発性記憶装置４３は、事前に消去を行うことなく、書込データ及びパリティデータを書き込む（第２モード）。
【００５１】
データ書込みの後、CPU１０は、MODE＝“０”として、MODEレジスタ１７を初期状態に戻す（ステップS27）。
【００５２】
一方、読み出したデータ（８ビット）に１つでも“０”が含まれる場合（ステップS22のNO）、またFLAG＝“１”である場合は（ステップS24のNO）、CPU１０は、当該アドレスに示される領域は消去状態にないと判断し、ERERR＝“０”とした後（ステップS28）、MODE＝“０”のまま、不揮発性記憶装置４３に対してデータ書込みを指示する（ステップS29）。不揮発性記憶装置４３は、MODE＝“０”であるため、データ消去を行った後、書込みデータ及びパリティデータを書き込む（第１モード）。
【００５３】
以上のように、本実施の形態によれば、CPUが、データ書込みを行う際は，事前に書込み対象領域から通常読出しを行うと共に、エラー訂正処理における検査結果を取得し、読出しデータ及び取得した検査結果に基づき、書込み対象領域がデータ消去状態にある場合は、書込み回路２０を第２モードに設定して書込みを行うため、データ消去処理を省略して、データ書込み時間を短縮できる。
【図面の簡単な説明】
【００５４】
【図１】本発明の実施の形態に従ったデータ書込み装置の構成を示すブロック図である。
【図２】不揮発性記憶装置への書込み動作を説明するフローチャートである。
【図３】ERERRを生成する回路の構成を示す図である。
【図４】本発明の別の実施の形態に従ったデータ書込み装置の構成を示すブロック図である。
【図５】不揮発性記憶装置への書込み動作を説明するフローチャートである。
【符号の説明】
【００５５】
１０：CPU
１１：ROM
１２：RAM
１３、４３：不揮発性記憶装置
１４、４４：システムコントローラ
１５：ERCHKレジスタ
１６：ERERRレジスタ
１７：MODEレジスタ
１８：ECC回路
１９：不揮発性メモリ
２０：書込み回路
２１、４５：出力回路
２５：データバス
２６：制御及びアドレスバス
３１：論理積演算回路
３２：インバータ
３３：論理和演算回路
３４：フリップフロップ
【図１】
2006079528.tif 000003
【図２】
2006079528.tif 000004
【図３】
2006079528.tif 000005
【図４】
2006079528.tif 000006
【図５】
2006079528.tif 000007