(57)【要約】【課題】不揮発性半導体記憶装置に書き込まれたデータが使用可能或いは使用不可であるかを判断する。【解決手段】一つの実施形態によれば、半導体集積回路は、不揮発性半導体記憶装置と統括制御処理装置を含む。不揮発性半導体記憶装置は、データを格納するデータ保存領域と、前記データ保存領域へのデータ書き込み開始時に第１の値がセットされ、前記データ保存領域へのデータ書き込み終了時に第２の値がセットされるフラグ領域とから構成される記憶領域と、誤り符号を検出する誤り符号検出回路を含む制御回路とを有する。統括制御処理装置は、前記制御回路との間で種々の信号やデータのやり取りを行い、システム全体を統括制御する。【選択図】  図１
2020123418.tif 000002
【特許請求の範囲】
【請求項１】
データを格納するデータ保存領域と、前記データ保存領域へのデータ書き込み開始時に第１の値がセットされ、前記データ保存領域へのデータ書き込み終了時に第２の値がセットされるフラグ領域とから構成される記憶領域と、誤り符号を検出する誤り符号検出回路を含む制御回路とを有する不揮発性半導体記憶装置と、
前記制御回路との間で種々の信号やデータのやり取りを行い、システム全体を統括制御する統括制御処理装置と、
を具備することを特徴とする半導体集積回路。
【請求項２】
前記統括制御処理装置は、前記データ保存領域に格納されているデータを読み出すときに、前記フラグ領域に格納されている情報が前記第１の値の場合に前記データ保存領域から読み出されたデータが使用不可と判断し、前記フラグ領域に格納されている情報が前記第２の値の場合に前記データ保存領域から読み出されたデータが使用可能と判断する
ことを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記フラグ領域は１ビットのフラグビットである
ことを特徴とする請求項１又は２に記載の半導体集積回路。
【請求項４】
前記第１の値が“１”であり、前記第２の値が“０（ゼロ）”である
ことを特徴とする請求項３に記載の半導体集積回路。
【請求項５】
データを格納する第１のデータ保存領域と、前記第１のデータ保存領域に書き込まれる書き込みデータの誤り符号検出の検出結果がセットされる第１の誤り符号結果保存領域から構成される記憶領域と、前記第１のデータ保存領域と同容量の第２のデータ保存領域と前記第１の誤り符号結果保存領域と同容量の第２の誤り符号結果保存領域を含むデータバッファと、誤り符号を検出する誤り符号検出回路を有する制御回路とを有する不揮発性半導体記憶装置と、
前記制御回路との間で種々の信号やデータのやり取りを行い、システム全体を統括制御する統括制御処理装置と、
を具備することを特徴とする半導体集積回路。
【請求項６】
前記制御回路は、前記統括制御処理装置のデータ書き込みコマンドをセットする第１のレジスタを有し、
前記統括制御処理装置は、前記第１のレジスタのフラグビットに“１”をセットしてから、前記第１のデータ保存領域へのデータ書き込みを開始し、前記第１のデータ保存領域へのデータ書き込みが終了したときに前記第１のレジスタのフラグビットに“０（ゼロ）”をセットする
ことを特徴とする請求項５に記載の半導体集積回路。
【請求項７】
前記前記第１のデータ保存領域に格納されているデータを読み出すときに、
前記制御回路は、読み出されたデータを前記データバッファに転送してセットし、転送された記憶領域のデータの誤り符号検出を前記誤り符号検出回路で演算し、演算結果と前記第１の誤り符号結果保存領域に格納されているデータとを比較し、
前記統括制御処理装置は、前記演算結果と前記第１の誤り符号結果保存領域に格納されているデータとが同一であるかの判定を行う
ことを特徴とする請求項６に記載の半導体集積回路。
【請求項８】
前記統括制御処理装置は、ＣＰＵ、プロセッサ、ＭＰＵのいずれかである
ことを特徴とする請求項１乃至７のいずれか１項に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体集積回路に関する。
【背景技術】
【０００２】
近年、半導体集積回路は、揮発性半導体記憶装置、不揮発性半導体記憶装置、動作及び機能が異なる複数の集積回路等を取り込んでシステム化及び高集積化が進行している。半導体集積回路では、不揮発性半導体記憶装置へのデータ書き込み動作中に電源の遮断やシャットダウンが発生する場合がある。この場合、不揮発性半導体記憶装置に書き込まれたデータが使用可能或いは使用不可であるかを判断することは大変重要である。
【０００３】
不揮発性半導体記憶装置に書き込まれたデータが使用可能或いは使用不可であるかの判断を、特殊なソフトウェア（例えば、データ一致判断用ソフトウェア）等を用いて実行すると処理時間が長くなり、ＣＰＵへの負荷が増大し、コストアップになるという問題点がある。
【０００４】
不揮発性半導体記憶装置に書き込まれたデータが使用可能或いは使用不可であるかの判断を、特殊なソフトウェアを用いずに、簡略な回路構成で、短時間で実行することが要望されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２４１６１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、不揮発性半導体記憶装置に書き込まれたデータが使用可能或いは使用不可であるかを判断することができる半導体集積回路を提供することにある。
【課題を解決するための手段】
【０００７】
一つの実施形態によれば、半導体集積回路は、不揮発性半導体記憶装置と統括制御処理装置を含む。不揮発性半導体記憶装置は、データを格納するデータ保存領域と、前記データ保存領域へのデータ書き込み開始時に第１の値がセットされ、前記データ保存領域へのデータ書き込み終了時に第２の値がセットされるフラグ領域とから構成される記憶領域と、誤り符号を検出する誤り符号検出回路を含む制御回路とを有する。統括制御処理装置は、前記制御回路との間で種々の信号やデータのやり取りを行い、システム全体を統括制御する。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態に係る半導体集積回路を示す図である。
【図２】第１の実施形態に係るデータ書き込み動作を示すフローチャート。
【図３】第１の実施形態に係るデータ読み出し動作を示すフローチャート。
【図４】比較例の半導体集積回路を示す図である。
【図５】比較例のデータ書き込み動作を示すフローチャート。
【図６】比較例のデータ読み出し動作を示すフローチャート。
【図７】第２の実施形態に係る半導体集積回路を示す図である。
【図８】第２の実施形態に係るデータバッファの内部構成を示す図である。
【図９】第２の実施形態に係るデータ書き込み動作を示すフローチャート。
【図１０】第２の実施形態に係るデータ読み出し動作を示すフローチャート。
【図１１】第３の実施形態に係るデータ書き込み動作を示すフローチャート。
【発明を実施するための形態】
【０００９】
以下本発明の実施形態について図面を参照しながら説明する。
【００１０】
（第１の実施形態）
まず、第１の実施形態に係る半導体集積回路について、図面を参照して説明する。図１は半導体集積回路を示す図である。
【００１１】
第１の実施形態では、不揮発性半導体記憶装置の記憶領域にデータ保存領域とフラグ領域が設けられる。フラグ領域は、データ保存領域へのデータ書き込み開始時に“１”を記憶し、データ保存領域へのデータ書き込み終了時に“０(ゼロ)”を記憶する。制御回路は、フラグ領域に記憶された情報に基づいて、データ保存領域に書き込まれたデータが使用可能或いは使用不可であるかを判断する。
【００１２】
図1に示すように、半導体集積回路１００は、不揮発性半導体記憶装置１、ＣＰＵ２、揮発性半導体記憶装置３を含む。半導体集積回路１００は民生用機器や産業用機器に搭載され、民生用システムや産業用システムを構成する。半導体集積回路１００は、例えば車載システムに適用される。
【００１３】
不揮発性半導体記憶装置１には、例えばＮＡＮＤフラッシュメモリ、ＲｅＲＡＭ（Resistive Random Access Memory）、ＭＲＡＭ（Magnetoresistive Random Access Memory）、ＰＲＡＭ（Phase change Random Access Memory）、ＦｅＲＡＭ（Ferroelectric Random Access Memory）などが用いられる。
【００１４】
揮発性半導体記憶装置３には、例えばＤＲＡＭ（Dynamic Random Access Memory）、ＳＲＡＭ（Static Random Access Memory）などが用いられる。
【００１５】
半導体集積回路１００では、不揮発性半導体記憶装置１へのデータ書き込み動作中に電源の遮断やシャットダウンが発生する場合がある。
【００１６】
不揮発性半導体記憶装置１は、記憶領域１０、制御回路２０を含む。記憶領域１０は、データ保存領域１１、フラグ領域１２を含む。データ保存領域１１及びフラグ領域１２は、対をなし、複数段（例えば１２８段）から構成される。一対の記憶領域は、例えば１６バイト（ｂｙｔｅ）の容量のデータ保存領域１１と例えば１ビット（ｂｉｔ）の容量のフラグ領域１２から構成される。
【００１７】
データ保存領域１１は、ＣＰＵ(Central  Processing  Unit)２の指令に基づいてデータが書き込まれる。フラグ領域１２は、データ保存領域１１に書き込まれたデータが使用可能或いは使用不可であるかを示す情報を格納する。
【００１８】
制御回路２０は、記憶領域１０とＣＰＵ２の間に設けられ、ＣＰＵ２との間で種々の信号やデータのやり取りを行う。制御回路２０は、レジスタ（Ｉ）２１（第１のレジスタ）、レジスタ（ＩＩ）２２（第２のレジスタ）、データバッファ２３、誤り符号検出回路２４を含む。
【００１９】
レジスタ（Ｉ）２１は、ＣＰＵ２からの指令を受けて、記憶領域１０への書き込みコマンド等を設定する。レジスタ（ＩＩ）２２は、記憶領域１０に書き込まれた結果を一旦格納し、書き込み結果をＣＰＵ２に送信する。データバッファ２３は、記憶領域１０に書き込まれるデータ及び記憶領域１０から読み出されるデータを一旦格納する。誤り符号検出回路２４は、誤り符号検出を行う。誤り符号検出回路２４は、例えば、巡回冗長検査（ＣＲＣ; Cyclic Redundancy Check）、ＥＣＣ（Error Check and Correct）、チェックサム、パリティ等を含む。
【００２０】
制御回路２０は、フラグ領域１２に書き込まれた情報が“０（ゼロ）”（第２の値）の場合にデータ保存領域１１に書き込まれたデータが使用可能であると判断し、フラグ領域１２に書き込まれた情報が“１”（第１の値）の場合にデータ保存領域１１に書き込まれたデータが使用不可であると判断する。詳細は後述する。
【００２１】
ＣＰＵ２は、半導体集積回路１００を含むシステム全体を統括制御する処理装置である。第１の実施形態では、統括制御処理装置としてＣＰＵ２を用いているが必ずしもこれに限定されるものではない。ＣＰＵ２の代わりに、プロセッサ、ＭＰＵ（Micro Processing Unit）などを用いてもよい。
【００２２】
揮発性半導体記憶装置３は、ＣＰＵ２との間でデータのやりとりを行う。揮発性半導体記憶装置３から読み出された情報は、例えばＣＰＵ２を介して不揮発性半導体記憶装置１の記憶領域１０に書き込まれる。不揮発性半導体記憶装置１の記憶領域１０から読み出された情報は、例えばＣＰＵ２を介して揮発性半導体記憶装置３に書き込まれる。
【００２３】
次に、半導体集積回路１００の動作について、図２及び図３を参照して説明する。図２は、データ書き込み動作を示すフローチャートである。図３は、データ読み出し動作を示すフローチャートである。図２及び図３では、左側にＣＰＵ側の動作を示し、右側に制御回路側の動作を示す。
【００２４】
図２に示すように、データ書き込みでは、ＣＰＵ２は、データバッファ２３に書き込み先の番地とデータをセットする（ステップＳ１１１）。次に、ＣＰＵ２は、レジスタ（Ｉ）２１に書き込みコマンドをセットする（ステップＳ１１２）。
【００２５】
続いて、ＣＰＵ２から書き込み開始指示を受けると、制御回路２０はデータを書き込むデータ保存領域１１に対応するフラグ領域１２のフラグビットに“１”（第１の値）をセットし、データ保存領域１１にデータの書き込みを開始する（ステップＳ１２１）。
【００２６】
次に、ＣＰＵ２は、記憶領域１０への書き込みが終了しているか確認を行う（ステップＳ１１３）。記憶領域１０への書き込みが終了していない場合、フラグ領域１２のビットの情報は“１”を維持する。記憶領域１０への書き込みが終了した場合、ＣＰＵ２から書き込み終了要求を受けると、制御回路２０はフラグ領域１２のビットに“０(ゼロ)”（第２の値）をセットする（ステップＳ１２２）。
【００２７】
図３に示すように、データ読み出し動作では、ＣＰＵ２は、データバッファ２３に読み出し先の番地とデータをセットする（ステップＳ２１１）。
【００２８】
次に、制御回路２０は、フラグ領域１２のフラグビットの情報を読み出し、その情報をレジスタ（ＩＩ）２２にセットする（ステップＳ２２１）。続いて、ＣＰＵ２は、レジスタ（ＩＩ）２２のデータを読み出す（ステップＳ２２１）。
【００２９】
次に、ＣＰＵ２は、読み出された情報が正常なデータかを判断する（ステップＳ２１３）。フラグ領域１２のビットの情報が“０(ゼロ)”の場合、ＣＰＵ２は読み出されたデータが使用可能であると判断する（ステップＳ２１４）。フラグ領域１２のフラグビットの情報が“１”の場合、ＣＰＵ２は読み出されたデータが使用不可であると判断する(ステップＳ２１５)。
【００３０】
以上説明した処理フローから、例えば、電源の遮断やシャットダウンなどでデータ書き込み動作が途中で中断された場合、フラグ領域１２のフラグビットの情報が“１”のままであることを確認することが出来る。データ読み出しのとき、制御回路２０は番地をセットし、レジスタ（ＩＩ）２２のフラグビットを参照する。参照結果が“０(ゼロ)”の場合、フラグビットが“０(ゼロ)”のフラグ領域１２に対応するデータ保存領域１１のデータが使用可能であると判断される。参照結果が“１”の場合、データの書き込みが異常終了したと判断し、フラグビット情報が“１”のフラグ領域１２に対応するデータ保存領域１１のデータが使用不可であると判断することが出来る。
【００３１】
比較例の半導体集積回路について、図４乃至６を参照して説明する。図４は、比較例の半導体集積回路を示す図である。図５は、比較例のデータ書き込み動作を示すフローチャートである。図６は、比較例のデータ読み出し動作を示すフローチャートである。図５及び図６では、左側にＣＰＵ側の動作を示し、右側にソフトウェアの処理を示す。
【００３２】
図４に示すように、比較例の半導体集積回路２００は、ＣＰＵ２、揮発性半導体記憶装置３、コード記憶装置４、不揮発性半導体記憶装置５、誤り符号検出回路２５を含む。比較例の半導体集積回路２００では、書き込まれたデータが使用可能或いは使用不可であるかの判断がソフトウェアを用いて行われる。
【００３３】
比較例の半導体集積回路２００では、第１の実施形態の半導体集積回路２００と異なる部分の説明を行い、同一な部分の説明を省略する。
【００３４】
不揮発性半導体記憶装置５には、例えばＮＡＮＤフラッシュメモリ、ＲｅＲＡＭ（Resistive Random Access Memory）、ＭＲＡＭ（Magnetoresistive Random Access Memory）、ＰＲＡＭ（Phase change Random Access Memory）、ＦｅＲＡＭ（Ferroelectric Random Access Memory）などが用いられる。
【００３５】
誤り符号検出回路２５は、誤り検出を行い、例えば、巡回冗長検査（ＣＲＣ; Cyclic Redundancy Check）、ＥＣＣ（Error Check and Correct）、チェックサム、パリティ等を含む。
【００３６】
比較例の半導体集積回路２００では、不揮発性半導体記憶装置５は複数段から構成されるデータ保存領域１１を含む。ＣＰＵ２は、不揮発性半導体記憶装置５との間でデータのやりとりを行う。ＣＰＵ２は、揮発性半導体記憶装置３との間でデータのやりとりを行う。ＣＰＵ２は、コード記憶装置４との間でデータのやりとりを行う。ＣＰＵ２は、誤り符号検出回路２５に対して誤り検出指令を出す。誤り符号検出回路２５は、不揮発性半導体記憶装置５に対して誤り検出指令を出し、誤り検出結果を不揮発性半導体記憶装置５から受け取り、その結果をＣＰＵ２に転送する。
【００３７】
図５に示すように、書き込み動作では、ＣＰＵ２は、データの初期位置をセットする（ステップＳ３１１）。次に、ソフトウェア処理により、不揮発性半導体記憶装置５のデータ保存領域１１にデータを書き込む（ステップＳ３２１）。続いて、ソフトウェア処理により、誤り符号検出回路２５がこのとき、誤り符号検出回路２５がソフトウェア処理により読み出されたデータの誤り符号の検出を行う（ステップＳ３２２）。
【００３８】
ＣＰＵ２は、書き込まれたデータが最終データであるかの確認を行う（ステップＳ３１２）。ＣＰＵ２が最終データでないと判断した場合、ステップＳ３２１とステップＳ３２２の処理が再実行される。ＣＰＵ２が最終データと判断した場合、ソフトウェア処理により、誤り符号検出結果が例えばコード記憶装置４に書き込まれる（ステップＳ３２３）。
【００３９】
図６に示すように、読み出し動作では、ＣＰＵ２は、データの初期位置をセットする（ステップＳ４１１）。
【００４０】
次に、ソフトウェア処理により、データを読み出す。このとき、演算結果をデータとともに読み出す（ステップＳ４２１）。続いて、ソフトウェア処理により、読み出されたデータの誤り符号の検出を行う（ステップＳ４２２）。
【００４１】
ＣＰＵ２は、読み出したデータが最終データであるかの確認を行う（ステップＳ４１２）。ＣＰＵ２が最終データでないと判断した場合、ステップＳ４２１とステップＳ４２２の処理が再実行される。ＣＰＵ２は、誤り符号検出結果と読み出したデータを比較する（ステップＳ４１３）。比較結果が同一な場合、ＣＰＵ２は使用可能なデータと判断する（ステップＳ４１４）。比較結果が異なる場合、ＣＰＵ２は使用不可であるデータと判断する（ステップＳ４１５）。
【００４２】
比較例の半導体集積回路では、誤り符号検出結果と読み出したデータが一致或いは不一致の判断に専用のソフトウェアが必要となり、第１の実施形態と比較して処理時間が長くなり、ＣＰＵへの負荷が増大する。
【００４３】
上述したように、第１の実施形態の半導体集積回路１００では、不揮発性半導体記憶装置１、ＣＰＵ２、揮発性半導体記憶装置３が設けられる。不揮発性半導体記憶装置１は、記憶領域１０、制御回路２０を含む。記憶領域１０は、データ保存領域１１、フラグ領域１２を含む。制御回路２０は、レジスタ（Ｉ）２１（第１のレジスタ）、レジスタ（ＩＩ）２２（第２のレジスタ）、データバッファ２３、誤り符号検出回路２４を含む。フラグ領域１２には、不揮発性半導体記憶装置１へのデータ書き込み開始時にフラグビットに“１”の情報が書き込まれ、不揮発性半導体記憶装置１へのデータ書き込み終了時時にフラグビットに“０(ゼロ)”の情報が書き込まれる。制御回路２０は、フラグビットに書き込まれた情報を判断する。制御回路２０は、フラグビットが“０(ゼロ)”の情報の場合に書き込まれたデータが使用可能なデータであると判断し、フラグビットが“１”の情報の場合に書き込まれたデータが使用不可なデータであると判断する。
【００４４】
このため、簡略な構成を用いて不揮発性半導体記憶装置に書き込まれたデータが使用可能或いは使用不可であるかを判断することができる。第１の実施形態の半導体集積回路１００では、不揮発性半導体記憶装置に書き込まれたデータの使用可能或いは使用不可であるかの判断に専用のソフトウェアが不要である。
【００４５】
なお、第１の実施形態では、フラグ領域１２を１ビットのフラグビットとし、フラグビットが“０(ゼロ)”の情報の場合、書き込まれたデータが使用可能であると判断し、フラグビットが“１”の情報の場合、書き込まれたデータが使用不可であると判断しているが、必ずしもこれに限定されるものではない。例えば、フラグ領域１２を複数ビットのフラグビットとしてもよい。複数ビットのフラグビットの場合、データを“１”或いは“０(ゼロ)”以外の情報に設定してもよい。
【００４６】
（第２の実施形態）
次に、第２の実施形態に係る半導体集積回路について、図面を参照して説明する。図７は半導体集積回路を示す図である。
【００４７】
第２の実施形態では、不揮発性半導体記憶装置の記憶領域はデータ保存領域と誤り符号結果保存領域を含む。制御回路のデータバッファは、データ保存領域と誤り符号結果保存領域を含む。
【００４８】
以下、第１の実施形態と同一構成部分には、同一符号を付してその部分の説明を省略し、異なる部分のみ説明する。
【００４９】
図７に示すように、半導体集積回路１００ａは、不揮発性半導体記憶装置１ａ、ＣＰＵ２、揮発性半導体記憶装置３を含む。不揮発性半導体記憶装置１ａには、例えばＮＡＮＤフラッシュメモリ、ＲｅＲＡＭ（Resistive Random Access Memory）、ＭＲＡＭ（Magnetoresistive Random Access Memory）、ＰＲＡＭ（Phase change Random Access Memory）、ＦｅＲＡＭ（Ferroelectric Random Access Memory）などが用いられる。
【００５０】
不揮発性半導体記憶装置１ａは、記憶領域１０ａ、制御回路２０ａを含む。記憶領域１０ａは、データ保存領域１１、誤り符号結果保存領域１３を含む。データ保存領域１１（第１のデータ保存領域）及び誤り符号結果保存領域１３（第１の誤り符号結果保存領域）は、対をなし、複数段（例えば１２８段）から構成される。一対の記憶領域は、例えば１６バイト（ｂｙｔｅ）の容量のデータ保存領域１１と例えば１バイト（１バイト（８ビット））の容量の誤り符号結果保存領域１３から構成される。
【００５１】
ここでは、誤り符号結果保存領域１３の容量を１バイトに設定しているが必ずしもこれに限定されるものではない。適宜変更してもよい。
【００５２】
制御回路２０ａは、記憶領域１０ａとＣＰＵ２の間に設けられ、ＣＰＵ２との間で種々の信号やデータのやり取りを行う。制御回路２０ａは、レジスタ（Ｉ）２１（第１のレジスタ）、レジスタ（ＩＩ）２２（第２のレジスタ）、データバッファ２３ａ、誤り符号検出回路２４、書き込み読み出しアドレス２６を含む。
【００５３】
データバッファ２３ａは、ＣＰＵ２との間でデータのやりとりを行う。図８に示すように、データバッファ２３ａは、記憶領域１０ａの誤り符号結果保存領域１３（第１の誤り符号結果保存領域）と同じ容量の１バイト（１バイト（８ビット））の誤り符号結果保存領域３１（第２の誤り符号結果保存領域）と、記憶領域１０ａのデータ保存領域１１（第１のデータ保存領域）と同じ容量の１６バイト（ｂｙｔｅ）のデータ保存領域３２（第２のデータ保存領域）とが対をなし、記憶領域１０ａと同様に記憶領域が複数段設けられている。
【００５４】
誤り符号検出回路２４には、例えば、巡回冗長検査（ＣＲＣ; Cyclic Redundancy Check）が用いられ、誤り符号検出を行う。書き込み読み出しアドレス２６は、ＣＰＵ２との間でデータのやりとりを行う。
【００５５】
次に、半導体集積回路１００ａの動作について、図９及び図１０を参照して説明する。図９は、データ書き込み動作を示すフローチャートである。図１０は、データ読み出し動作を示すフローチャートである。図９及び図１０では、左側にＣＰＵ側の動作を示し、右側に制御回路側の動作を示す。
【００５６】
図９に示すように、データ書き込み動作では、ＣＰＵ２は、書き込み読み出しアドレス２６に書き込み先アドレスをセットする（ステップＳ５１１）。次に、ＣＰＵ２の指示に基づいて、誤り符号検出回路２４（ＣＲＣ）が書き込みデータを演算し、ＣＰＵ２が演算結果をデータバッファ２３ａの誤り符号結果保存領域３１にセットする（ステップＳ５１２）。
【００５７】
続いて、ＣＰＵ２は、書き込みデータをデータバッファ２３ａのデータ保存領域３２にセットする（ステップＳ５１３）。次に、ＣＰＵ２は、レジスタ（Ｉ）２１に対してデータ書き込みコマンドをセットする（ステップＳ５１４）。
【００５８】
続いて、ＣＰＵ２は、レジスタ（Ｉ）２１のフラグビットに“１”をセットし、指定された記憶領域にデータ書き込みを開始する（ステップＳ５１５）。
【００５９】
次に、ＣＰＵ２は、データ書き込みが終了しているかの確認を行う（ステップＳ５１６）。記憶領域１０ａへのデータ書き込みが終了していない場合、レジスタ（Ｉ）のフラグビットの情報は“１”を維持する。記憶領域１０ａへの書き込みが終了した場合、制御回路２０ａは、レジスタ（Ｉ）２１のフラグビットに“０(ゼロ)”をセットする（ステップＳ５２１）
【００６０】
図１０に示すように、データ読み出し動作では、ＣＰＵ２は、書き込み読み出しアドレス２６に読み出し先アドレスをセットする（ステップＳ６１１）。次に、ＣＰＵ２は、レジスタ（Ｉ）２１に対してデータ読み出しコマンドをセットする（ステップＳ６１２）。
【００６１】
続いて、制御回路２０ａは、指定された記憶領域のデータをデータバッファ２３ａに転送してセットする（ステップＳ６２１）。次に、制御回路２０ａは、転送された記憶領域の誤り符号検出を誤り符号検出回路２４（ＣＲＣ）で演算する（ステップＳ６２２）。続いて、制御回路２０ａは、ＣＲＣ演算結果と誤り符号結果保存領域３１の領域データを比較する（ステップＳ６２３）。
【００６２】
次に、ＣＰＵ２は、ＣＲＣ演算結果と誤り符号結果保存領域３１の領域データが同じであるかを判定する（ステップＳ６１３）。ＣＲＣ演算結果と誤り符号結果保存領域３１の領域データが同じの場合、制御回路２０ａは、レジスタ（ＩＩ）２２にデータ使用可能ビットをセットする（ステップＳ６２４）。ＣＲＣ演算結果と誤り符号結果保存領域３１の領域データが異なる場合、制御回路２０ａは、レジスタ（ＩＩ）２２のデータ使用可能ビットをクリアする（ステップＳ６２５）。
【００６３】
続いて、制御回路２０ａは、データ読み出し終了をセットする（ステップＳ６２６）。次に、データ読み出し終了後、ＣＰＵ２は、データ使用可能ビットを確認し、使用可能な場合データバッファ２３ａからデータを読み出す（ステップＳ６１４）。
【００６４】
第２の実施形態では、データ書き込み動作の途中で電源の遮断やシャットダウンが発生した場合、誤り符号結果保存領域のデータとデータ保存領域のデータとの整合が取れない。このため、書き込まれたデータが使用可能なデータ或いは使用不可なデータであるかの判断を行うことが出来る。
【００６５】
上述したように、第２の実施形態の半導体集積回路１００ａでは、不揮発性半導体記憶装置１ａ、ＣＰＵ２、揮発性半導体記憶装置３が設けられる。不揮発性半導体記憶装置１ａは、記憶領域１０ａ、制御回路２０ａを含む。記憶領域１０ａは、データ保存領域１１、誤り符号結果保存領域１３を含む。制御回路２０ａは、レジスタ（Ｉ）２１（第１のレジスタ）、レジスタ（ＩＩ）２２（第２のレジスタ）、データバッファ２３ａ、誤り符号検出回路２４、書き込み読み出しアドレス２６を含む。データバッファ２３ａは、記憶領域１０ａの誤り符号結果保存領域１３と同じ容量の１バイトの誤り符号結果保存領域３１と記憶領域１０ａのデータ保存領域１１と同じ容量の１６バイトのデータ保存領域３２が対をなし、記憶領域１０ａと同様に記憶領域が複数段設けられている。誤り符号検出回路２４には、ＣＲＣが用いられ、誤り符号検出を行う。
【００６６】
このため、簡略な構成を用いて不揮発性半導体記憶装置に書き込まれたデータが使用可能或いは使用不可であるかを判断することができる。第２の実施形態の半導体集積回路１００ａでは、不揮発性半導体記憶装置に書き込まれたデータが使用可能或いは使用不可であるかの判断に専用のソフトウェアが不要である。
【００６７】
（第３の実施形態）
次に、第３の実施形態に係る半導体集積回路の動作について、図面を参照して説明する。図１１はデータ書き込み動作を示すフローチャートである。図１１では、左側にＣＰＵ側の動作を示し、右側に制御回路側の動作を示す。
【００６８】
第３の実施形態の半導体集積回路（図示せず）は、第２の実施形態の半導体集積回路１００ａと同様な構成を有する。第３の実施形態のデータ書き込み動作は、第２の実施形態のデータ書き込み動作を変更している。なお、データ読み出し動作は第２の実施形態（図１０参照）と同様なので説明を省略する。
【００６９】
図１１に示すように、データ書き込み動作では、ＣＰＵ２は、書き込み読み出しアドレス２６に書き込み先アドレスをセットする（ステップＳ７１１）。次に、ＣＰＵ２は、書き込みデータをデータバッファ２３ａにセットする。このとき、誤り符号検出結果の情報はセットされない（ステップＳ７１２）。
【００７０】
続いて、制御回路２０ａは、誤り符号検出回路２４（ＣＲＣ）が書き込みデータを演算して演算結果をデータバッファ２３ａの誤り符号結果保存領域３１にセットする（ステップＳ７２１）。次に、制御回路２０ａは、レジスタ（Ｉ）２１のフラグビットに“１”をセットし、指定された記憶領域にデータ書き込みを開始する（ステップＳ７２２）。
【００７１】
続いて、ＣＰＵ２は、データ書き込みが終了しているかの確認を行う（ステップＳ７１３）。記憶領域１０ａへのデータ書き込みが終了していない場合、レジスタ（Ｉ）２１のフラグビットの情報は“１”を維持する。記憶領域１０ａへの書き込みが終了した場合、制御回路２０ａは、レジスタ（Ｉ）２１のフラグビットに“０(ゼロ)”をセットする（ステップＳ７２３）。
【００７２】
第３の実施形態の半導体集積回路では、ＣＰＵ２による誤り符号検出を省略している。
【００７３】
上述したように、第３の実施形態の半導体集積回路のデータ書き込み動作では、制御回路２０ａによる誤り符号検出を実行している。
【００７４】
このため、簡略な構成を用いて不揮発性半導体記憶装置への書き込みデータの使用可能或いは使用不可を判断することができる。また、第２の実施形態よりもＣＰＵ２への負荷が低減され、データ書き込み時間を短縮化することが出来る。
【００７５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７６】
１、１ａ、５  不揮発性半導体記憶装置
２  ＣＰＵ
３  揮発性半導体記憶装置
４  コード記憶装置
１０、１０ａ  記憶領域
１１、３２  データ保存領域
１２  フラグ領域
１３、３１  誤り符号結果保存領域
２０、２０ａ  制御回路
２１  レジスタ（Ｉ）
２２  レジスタ（ＩＩ）
２３、２３ａ  データバッファ
２４、２５  誤り符号検出回路
２６  書き込み読み出しアドレス
１００、２００  半導体集積回路
【図１】
2020123418.tif 000003
【図２】
2020123418.tif 000004
【図３】
2020123418.tif 000005
【図４】
2020123418.tif 000006
【図５】
2020123418.tif 000007
【図６】
2020123418.tif 000008
【図７】
2020123418.tif 000009
【図８】
2020123418.tif 000010
【図９】
2020123418.tif 000011
【図１０】
2020123418.tif 000012
【図１１】
2020123418.tif 000013