(57)【要約】【課題】２つの記憶領域を有し、フラグによって有効な記憶領域が指定される半導体記憶装置において、フラグがどのような状態であっても有効拡張領域が不定になる事態を避けるための技術を提供する。【解決手段】本発明による半導体装置１０は、メモリブロック０、１を備えたフラッシュメモリ１１とメモリコントローラ１２とを備えている。メモリブロック０、１には、それぞれ、それぞれ１ビットのフラグを記憶する拡張領域０、１が設けられている。メモリコントローラ１２は、拡張領域０、１のそれぞれに記憶されているフラグの排他的論理和を算出し、算出された排他的論理和に応じて拡張領域０、１の一方を有効拡張領域として選択する。書き込み動作に使用される書き込みパラメータは、その有効拡張領域から読み出される。【選択図】図４
2008084438.tif 000002
【特許請求の範囲】
【請求項１】
第１記憶領域と、
第２記憶領域と、
書き込み／読み出し部
とを具備し、
前記第１記憶領域及び前記第２記憶領域は、それぞれ１ビットのフラグを記憶しており、
前記書き込み／読み出し回路は、前記第１記憶領域及び前記第２記憶領域のそれぞれに記憶されている前記フラグの排他的論理和を第１演算値として算出し、前記第１演算値に応じて前記第１記憶領域と前記第２記憶領域の一方を有効記憶領域として選択し、前記有効記憶領域からデータを読み出すように構成される
半導体記憶装置。
【請求項２】
請求項１に記載の半導体記憶装置であって、
前記書き込み／読み出し回路は、前記第１記憶領域と前記第２記憶領域のうちから選択された書き込み対象領域が更新されたとき、前記第１演算値と前記書き込み対象領域の領域番号の排他的論理和を第２演算値として算出し、前記第２演算値に応じて、前記書き込み対象領域の前記フラグを反転し、又は反転せずにそのまま維持する
半導体記憶装置。
【請求項３】
請求項１に記載の半導体記憶装置であって、
前記第１記憶領域と前記第２記憶領域の一方の領域番号は”０”であり、他方の領域番号は”１”であり、
前記書き込み／読み出し部は、前記第１記憶領域と前記第２記憶領域のうち前記第１演算値に一致する領域番号を有する記憶領域を前記有効記憶領域として選択する
半導体記憶装置。
【請求項４】
請求項２に記載の半導体記憶装置であって、
前記第１記憶領域と前記第２記憶領域の一方の領域番号は”０”であり、他方の領域番号は”１”であり、
前記書き込み／読み出し部は、前記第２演算値が”１”であるときに前記書き込み対象領域の前記フラグを反転し、前記第２演算値が”０”であるときには前記フラグを反転せずにそのまま維持する
半導体記憶装置。
【請求項５】
請求項１に記載の半導体記憶装置であって、
前記書き込み／読み出し回路は、
前記第１記憶領域及び前記第２記憶領域のそれぞれに記憶されている前記フラグの排他的論理和を前記第１演算値として算出するＸＯＲゲートと、
前記第１演算値に応じて前記第１記憶領域と前記第２記憶領域の一方を前記有効記憶領域として判別する有効領域判別回路
とを備える
半導体記憶装置。
【請求項６】
フラッシュメモリセルが行列に配置された第１メモリブロック及び第２メモリブロックと、
書き込み／読み出し回路
とを具備し、
前記第１メモリブロックは、第１ユーザデータ領域と第１拡張領域とを備え、
前記第２メモリブロックは、第２ユーザデータ領域と第２拡張領域とを備え、
前記第１拡張領域と前記第２拡張領域のそれぞれには、書き込みパラメータと、１ビットのフラグとが格納され、
前記書き込み／読み出し回路は、前記第１拡張領域及び前記第２拡張領域のそれぞれに格納されている前記フラグの排他的論理和を第１演算値として算出し、前記第１演算値に応じて前記第１拡張領域と前記第２拡張領域の一方を有効拡張領域として選択し、前記有効拡張領域から前記書き込みパラメータを読み出し、前記第１ユーザデータ領域と第２ユーザデータ領域のうちから選択された書き込み対象ユーザデータ領域に、ユーザデータを前記書き込みパラメータを用いて書き込むように構成される
不揮発性半導体記憶装置。
【請求項７】
請求項６に記載の不揮発性半導体装置であって、
前記第１拡張領域と前記第２拡張領域のそれぞれには、セキュリティ設定データが格納され、
前記書き込み／読み出し回路は、前記第１拡張領域及び前記第２拡張領域のうち、前記書き込み対象ユーザデータ領域と同一のメモリブロックにある書き込み対象拡張領域に格納された前記セキュリティ設定データを更新可能に構成されており、
前記書き込み／読み出し回路は、前記書き込み対象拡張領域に格納された前記セキュリティ設定データを更新した場合、前記第１演算値と前記書き込み対象拡張領域の領域番号の排他的論理和を第２演算値として算出し、前記第２演算値に応じて、前記書き込み対象拡張領域の前記フラグを反転し、又は反転せずにそのまま維持する
不揮発性半導体記憶装置。
【請求項８】
第１記憶領域と第２記憶領域のそれぞれから、１ビットのフラグを読み出し、
前記第１記憶領域及び前記第２記憶領域から読み出された前記フラグの排他的論理和を第１演算値として算出し、
前記第１演算値に応じて前記第１記憶領域と前記第２記憶領域の一方を有効記憶領域として選択し、
前記有効記憶領域からデータを読み出す
ことを特徴とする半導体記憶装置の動作方法。
【請求項９】
フラッシュメモリセルが行列に配置された第１メモリブロック及び第２メモリブロックを具備し、前記第１メモリブロックが第１ユーザデータ領域と第１拡張領域とを備え、前記第２メモリブロックが第２ユーザデータ領域と第２拡張領域とを備える不揮発性半導体装置の動作方法であって、
前記第１拡張領域と前記第２拡張領域のそれぞれから１ビットのフラグを読み出し、
前記第１拡張領域及び前記第２拡張領域のそれぞれに記憶されている前記フラグの排他的論理和を第１演算値として算出し、
前記第１演算値に応じて前記第１拡張領域と前記第２拡張領域の一方を有効拡張領域として選択し、
前記有効拡張領域から書き込みパラメータを読み出し、
前記第１ユーザデータ領域と第２ユーザデータ領域のうちから選択された書き込み対象ユーザデータ領域に、ユーザデータを、前記書き込みパラメータを用いて書き込む
ことを特徴とする
不揮発性半導体記憶装置の動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置に関し、特に、複数の記憶領域が設けられた半導体記憶装置において、有効な記憶領域を最適に選択するための技術に関する。
【背景技術】
【０００２】
メモリデバイスは、データの書き込みと読み出しとを同時に実行できることが望ましい場合がある。その典型的な一例は、ＣＰＵ（central processing unit）によって実行されるコンピュータプログラムが書き込まれているフラッシュメモリである。データの書き込みと読み出しとが同時に実行できないフラッシュメモリが使用されると、書き込み動作中は、フラッシュメモリから命令コードを読み出すことができず、ＣＰＵによる処理が中断してしまう。このようなフラッシュメモリでは、書き込み動作が行われている間にもプログラムの命令コードが読み出し可能であることが望ましい。
【０００３】
データの書き込みと読み出しとを同時に実行するための一つの方策は、メモリデバイスを独立してアクセス可能な複数のメモリブロックで構成することである。図１は、このように構成されたメモリデバイス１００の構成を示すブロック図である。メモリデバイス１００は、２つのメモリブロック：メモリブロック０、メモリブロック１を備えており、メモリブロック０からデータが読み出されている間に、メモリブロック１にデータを書き込むことができる。
【０００４】
このような方策をフラッシュメモリに適用する場合に問題になるのは、フラッシュメモリでは、書き込みパラメータ及びセキュリティ設定データをメモリアレイに記憶しておく必要がある点である。書き込みパラメータとは、データ書き込みに使用されるデータであり、例えば、セクタの構成を示すデータが書き込みパラメータに含まれる。セキュリティ設定データとは、フラッシュメモリのセキュリティの設定を行うためのデータであり、フラッシュメモリ全体、及び／又は、各ブロックの書き込み及び消去が、許可されているか又は禁止されているかを表している。セキュリティ設定データにより、フラッシュメモリ全体の書き込み／消去を禁止したり、各ブロックの書き込み／消去を禁止したりすることができる。セキュリティの設定を変更するためには、セキュリティ設定データを更新する必要がある。
【０００５】
問題は、セキュリティ設定データを更新する場合に発生する。セキュリティ設定データの更新は、書き込み動作に付随して行われることが望ましい。しかしながら、或る特定の一つのメモリブロックに書き込みパラメータ及びセキュリティ設定データが記憶されている構成では、他のメモリブロックへの書き込み動作が行われている場合に、書き込みパラメータ及びセキュリティ設定データの更新を行うことができない。
【０００６】
図２Ａは、上記の問題を説明する図である。図２Ａの半導体装置２００は、フラッシュメモリ２０１と、メモリコントローラ２０２とを備えている。フラッシュメモリ２０１は、２つのメモリブロック：メモリブロック０、メモリブロック１を備えており、各メモリブロックは、ユーザデータ領域と拡張領域とを備えている。メモリブロック０の拡張領域０には、書き込みパラメータ及びセキュリティ設定データが格納されている。メモリブロック１の拡張領域１は、未使用である。メモリブロック０からの読み出し動作と、メモリブロック１への書き込み動作が同時に行われる場合、まず、メモリブロック１が書き込みモードに、メモリブロック０が読み出しモードに設定される。続いて、書き込みパラメータが拡張領域０から読み出され、メモリコントローラ２０２は、読み出された書き込みパラメータを使用してメモリブロック１にデータ書き込みを行う。このような動作では、メモリブロック１へのデータの書き込みに続けて、セキュリティ設定データの書き換えを連続的に行うことができない。セキュリティ設定データの書き換えを行うためには、メモリブロック０を読み出しモードから書き込みモードに切り換える必要がある。このような動作によるセキュリティ設定データの書き換えは、書き込み動作の手順を煩雑にするため好ましくない。
【０００７】
このような問題に対処するための一つの方策は、フラッシュメモリのメモリブロックのそれぞれに、書き込みパラメータ及びセキュリティ設定データを保存することである。図２Ｂは、このようなメモリデバイスの構成を示すブロック図である。図２Ｂの半導体装置２００では、メモリブロック０、１のそれぞれに拡張領域０、１が用意され、その両方に、書き込みパラメータ及びセキュリティ設定データが格納される。
【０００８】
図２Ｂの半導体装置２００では、例えば、メモリブロック０からの読み出し動作と、メモリブロック１への書き込み動作は下記の手順で行われる。まず、書き込みパラメータ及びセキュリティ設定データが読み出された後、メモリブロック０が読み出しモードに、メモリブロック１が書き込みモードに設定される。読み出された書き込みパラメータを用いて、メモリブロック１にデータが書き込まれる。続いて、メモリブロック１の拡張領域１のセキュリティ設定データが更新される。メモリブロック１は、拡張領域１のセキュリティ設定データの更新が完了するまで、書き込みモードに設定された状態に維持される。拡張領域０のセキュリティ設定データは更新されない。
【０００９】
このような動作では、セキュリティ設定データの更新は、２つの拡張領域０、１のうちの一方にしか行われないから、拡張領域０、１のいずれに格納されたセキュリティ設定データが有効であるか（即ち、最新であるか）を判別する必要がある。複数の領域に格納されたデータのいずれが有効であるかを識別する最も典型的な方法は、例えば特開平１０−５００８７号公報に開示されているように、フラグを用いることである。例えば、図３に示されているように、データ領域０、１のいずれに格納されたデータが有効であるかを示すために、データ領域０、１のそれぞれにフラグ０、１が用意される。データ領域０に格納されたデータが有効である場合、フラグ０が”１”にセットされ、フラグ１が”０”にリセットされる。一方、データ領域１に格納されたデータが有効である場合、フラグ１が”１”にセットされ、フラグ０が”０”にリセットされる。
【００１０】
更に、特開２００５−３８５１８号公報は、２つのメモリのいずれが有効であるかを示すために、該２つのメモリのそれぞれの管理エリアに、２ビットのメモリセレクタを用意することを開示している（特に図１８、図２１参照）。この公報に記載された技術では、２つのメモリのメモリセレクタの両方のデータから、データを読み出すべきメモリが判別されている。この技術では、メモリセレクタの書き換えは、２つのメモリの一方をプログラムモードに、他方のメモリを消去モードにすることによって行われる。
【特許文献１】特開平１０−５００８７号公報
【特許文献２】特開２００５−３８５１８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、特開平１０−５００８７号公報に記載されているような、フラグを”１”にセットすることによって有効な領域を示す技術では、何らかの不具合によってフラグ０、１の両方が”１”になると、有効なデータ領域が不定になるという問題がある。有効なデータ領域が不定になる状態は、半導体装置の動作の安定性を確保する上で好ましくない。
【００１２】
加えて、特開平１０−５００８７号公報に記載されているような、フラグを”１”にセットすることによって有効な領域を示す技術では、有効な領域を切り替えるために全ての領域のフラグを書き換える必要があるという問題がある。例えば、メモリ０のフラグ０が”１”にセットされている状態から、メモリ１のフラグ１が”１”にセットされている状態に切り替えるためには、メモリ１のフラグ１を”１”にセットすると共に、メモリ０のフラグ０を”０”にリセットする必要がある。このような手順は、メモリ０、１の一方について書き込み動作、他方について読み出し動作が実行される場合には好ましくない。
【００１３】
例えば、メモリ１への書き込み動作と、メモリ０からの読み出し動作が同時に行われる場合を考えよう。この場合、メモリ０のフラグ０を”０”にリセットするためには、メモリ０を読み出しモードから書き込みモードに切り替える必要がある。このような動作によるフラグの書き換えは、動作手順を煩雑にするため好ましくない。
【００１４】
特開２００５−３８５１８号公報に開示されている技術は、このような問題を解決するものではない。
【課題を解決するための手段】
【００１５】
上記の課題を解決するために、本発明による半導体記憶装置は、第１記憶領域と、第２記憶領域と、書き込み／読み出し部とを具備する。前記第１記憶領域及び前記第２記憶領域は、それぞれ１ビットのフラグを記憶している。前記書き込み／読み出し回路は、前記第１記憶領域及び前記第２記憶領域のそれぞれに記憶されている前記フラグの排他的論理和を第１演算値として算出し、前記第１演算値に応じて前記第１記憶領域と前記第２記憶領域の一方を有効記憶領域として選択し、前記有効記憶領域からデータを読み出すように構成されている。
【００１６】
このような半導体記憶装置では、前記第１記憶領域及び前記第２記憶領域のフラグの両方から、具体的には、該フラグの排他的論理和から有効拡張領域が決定される。これにより、フラグがどのような状態であっても、有効拡張領域が不定になることはなく、単一の拡張領域が有効な拡張領域として決定される。
【００１７】
好適には、前記書き込み／読み出し回路は、前記第１記憶領域と前記第２記憶領域のうちから選択された書き込み対象領域が更新されたとき、前記第１演算値と前記書き込み対象領域の領域番号の排他的論理和を第２演算値として算出し、前記第２演算値に応じて、前記書き込み対象領域の前記フラグを反転し、又は反転せずにそのまま維持することが好ましい。このような構成によれば、書き込み対象領域が更新された場合に、該書き込み対象領域のフラグのみを反転させることにより、該書き込み対象領域を有効記憶領域に設定することができる。従って、書き込み対象領域以外の記憶領域に対して書き込みを行う必要性をなくし、書き込み動作を有効に簡素化することができる。
【発明の効果】
【００１８】
本発明によれば、２つの記憶領域を有し、フラグによって有効な記憶領域が指定される半導体記憶装置において、フラグがどのような状態であっても有効拡張領域が不定になる事態を避けることができる。
【発明を実施するための最良の形態】
【００１９】
図４Ａは、本発明の一実施形態における半導体装置１０の構成を示すブロック図である。半導体装置１０は、フラッシュメモリ１１と、メモリコントローラ１２と、ＣＰＵ１３とを備えている。メモリコントローラ１２は、フラッシュメモリ１１を制御する機能、特に、フラッシュメモリ１１への書き込み動作を制御する機能を有している。ＣＰＵ１３は、フラッシュメモリ１１にアクセスしてフラッシュメモリ１１からデータを読み出すことができるように構成されている。
【００２０】
フラッシュメモリ１１は、２つのメモリブロック０、１で構成されている。メモリブロック０、１のそれぞれには、フローティングゲートに電荷を蓄積してデータを記憶するフラッシュメモリセルが行列に配置されている。ここで、フローティングゲートという用語は、ポリシリコンのように導電性のものに限定されず、ＭＯＮＯＳ（metal oxide nitride oxide silicon）技術で採用されるように、電荷を保持可能な絶縁体をも含む意味で使用されていることに留意されたい。
【００２１】
メモリブロック０は、ユーザデータ領域０と拡張領域０とで構成され、同様に、メモリブロック１は、ユーザデータ領域１と拡張領域１とで構成されている。ユーザデータ領域０、１は、ユーザデータを格納するための領域である。一方、拡張領域０、１は、書き込みパラメータとセキュリティ設定データを格納するための領域である。上述のとおり、書き込みパラメータは、データ書き込みに使用されるデータであり、セキュリティ設定データは、フラッシュメモリのセキュリティの設定を行うためのデータである。セキュリティ設定データは、フラッシュメモリ全体、及び／又は、各ブロックの書き込み及び消去が、許可されているか又は禁止されているかを表している。セキュリティの設定を変更するためには、セキュリティ設定データを更新する必要がある。それぞれ、拡張領域０、１には、それぞれ、領域番号０、１が割り当てられている。
【００２２】
拡張領域０、１には、それぞれ、１ビットのフラグ０、１が格納されている。フラグ０、１は、拡張領域０、１のいずれに有効な（即ち、最新の）セキュリティ設定データが格納されているかを示している。後述されるように、書き込みパラメータ及びセキュリティ設定データの読み出しの際には、フラグ０、１がメモリコントローラ１２によって参照され、有効なセキュリティ設定データが格納されている拡張領域がフラグ０、１に基づいて判別される。なお、有効なセキュリティ設定データが格納されている拡張領域は、以下、単に、有効な拡張領域と記載することがある。
【００２３】
ユーザデータ領域０、１及び拡張領域０、１のそれぞれは、複数のセクタに区分されている。ここでセクタとは、メモリブロックにおける消去の単位であり、同一のセクタに属するメモリセルの消去は同時に行われる。一般に、各セクタは、同一のウェルに形成されたメモリセルのアレイで構成される。
【００２４】
より具体的には、ユーザデータ領域０は、セクタ０〜ｍで構成され、ユーザデータ領域１は、セクタｍ＋１〜ｎで構成されている。また、拡張領域０は、拡張セクタ０、１で構成され、拡張領域１は、拡張セクタ２、３で構成されている。拡張セクタ０、２は、書き込みパラメータを記憶するために使用されるセクタであり、拡張セクタ１、３は、セキュリティ設定データ及びフラグ０、１を記憶するために使用されるセクタである。拡張領域０、１では、セキュリティ設定データ及びフラグ０、１が、書き込みパラメータとは別のセクタに保存されていることに留意されたい。セキュリティ設定データ及びフラグ０、１は、書き込みパラメータとは別に消去可能であり、従って、セキュリティ設定データ及びフラグ０、１は、書き込みパラメータとは独立して書き換え可能である。
【００２５】
メモリコントローラ１２は、拡張領域０、１からそれぞれフラグ０、１を受け取って保存するフラグレジスタ０、１と、フラグレジスタ０、１に保存されたフラグ０、１から有効な拡張領域を判別する有効フラグ選択回路１４と、有効エリア情報レジスタ１５とを備えている。有効フラグ選択回路１４は、ＸＯＲゲート１６と有効領域判別回路１７とを備えている。ＸＯＲゲート１６は、フラグ０、１のＸＯＲ（exclusive OR：排他的論理和）を算出する。有効領域判別回路１７は、ＸＯＲゲート１５の出力（即ち、フラグ０、１のＸＯＲ）から、有効な拡張領域を判別する。
【００２６】
本実施形態のフラッシュメモリ１１の特徴の一つは、フラグ０、１の設定方法、及びフラグ０、１から有効な拡張領域を判別する手法にある。図５は、フラグ０、１の値と有効な拡張領域との対応関係を示す表である。フラグ０、１は、それらのＸＯＲが有効な拡張領域の領域番号に一致するように決定されている。具体的には、フラグ０、１の両方が”０”である、又は両方が”１”である場合には、有効な拡張領域として拡張領域０が指定される。この場合には、フラグ０、１のＸＯＲが０であることに留意されたい。一方、フラグ０、１の一方が”０”であり、他方が”１”である場合には、有効な拡張領域として拡張領域１が指定される。この場合には、フラグ０、１のＸＯＲが１であることに留意されたい。上述のＸＯＲゲート１５は、フラグ０、１のＸＯＲ、即ち、有効な拡張領域の番号を算出する役割を果たしている。
【００２７】
図５に定められたような、フラグ０、１の値と有効な拡張領域との対応関係の第１の利点は、フラグ０、１がどのような状態であっても、単一の拡張領域が有効な拡張領域として決定されることである。フラグ０が”１”にセットされていても、それは必ずしも拡張領域０が有効な拡張領域であることを意味しない。上述のように、フラグが特定値（例えば、”１”）を有する場合に対応する拡張領域が有効であると判断するような動作では、フラグ０、１の両方が”１”になったときに有効なデータ領域が不定になり、好ましくない。
【００２８】
第２の利点は、フラグ０、１の一方のみを反転することにより、有効な拡張領域を切り換えることができる点にある。例えば、初期状態において、フラグ０、１の両方が”０”である場合を考えよう。初期状態では、有効な拡張領域として拡張領域０が指定されている。有効な拡張領域を拡張領域０から拡張領域１に切り換えるためには、フラグ１の値を”０”から”１”に反転させればよい。より一般に表現すると、有効な拡張領域を拡張領域ｉから拡張領域ｊに切り換えるためには、フラグｊを反転させればよい。ここで、ｉ、ｊは、一方が”０”、他方が”１”である値である。
【００２９】
本実施形態の半導体装置１０は、図５に示された対応関係の性質を利用して、書き込み動作と読み出し動作とを、同時に、且つ、簡便な動作シーケンスで実行する。図６は、書き込み動作と読み出し動作とを同時的に実行するための動作シーケンスの例を示す図である。以下では、メモリブロック０のユーザデータ領域０に読み出し動作、メモリブロック１のユーザデータ領域１に書き込み動作が行われる場合について説明される。初期状態では、フラグ０、１の値はいずれも、”０”であるとする。即ち、初期的には、拡張領域０が有効な拡張領域である。
【００３０】
まず、書き込みパラメータとセキュリティ設定データの読み出しが行われる（ステップＳ０１）。図７は、書き込みパラメータとセキュリティ設定データの読み出しのフローチャートである。メモリコントローラ１２は、まず、拡張領域０、１から、それぞれ、フラグ０、１を読み出す（ステップＳ１１）。続いて、ＸＯＲゲート１５は、フラグ０、１のＸＯＲを算出する（ステップＳ１２）。算出されたフラグ０、１のＸＯＲに基づいて、有効領域判別回路１６は、有効な拡張領域を判別する（ステップＳ１３）。有効領域判別回路１６は、フラグ０、１のＸＯＲに一致する番号が割り当てられている拡張領域を、有効な拡張領域と判別する。有効な拡張領域を特定するためにフラグ０、１の両方が使用されていることに留意されたい。フラグ０、１の両方が使用されることにより、フラグ０、１が如何なる状態でも、有効な拡張領域が不定になるという事態は発生しない。有効領域判別回路１６は、拡張領域０、１のいずれが有効な拡張領域であるかを示す有効領域情報をＣＰＵ１３に出力する。
【００３１】
続いて、メモリコントローラ１２は、有効な拡張領域にアクセスして、書き込みパラメータとセキュリティ設定データとを読み出す（ステップＳ１４）。読み出された書き込みパラメータとセキュリティ設定データは、メモリコントローラ１２に用意されているテンポラリメモリ（図示されない）に記憶される。
【００３２】
図８は、拡張領域０、１からの書き込みパラメータとセキュリティ設定データの読み出し動作をより具体的に示す図である。フラグ０、１がいずれも”０”である場合には、フラグ０、１のＸＯＲは”０”である。従って、有効な拡張領域は拡張領域０であると判別され、拡張領域０から書き込みパラメータとセキュリティ設定データが読み出される。図８の表には、書き込みパラメータのデータ”Ａ”の値が図示されている。フラグ０、１のＸＯＲが”０”である場合には、データＡとして拡張領域０に格納されている値”ＦＦＦＦｈ”が読み出される。
【００３３】
続いてメモリコントローラ１２は、セキュリティ設定データから、指定された書き込みアドレスへの書き込み動作が許容されているか、及び指定された読み出しアドレスからの読み出し動作が許容されているかを判断する。許容されていない場合、書き込み動作及び／又は読み出し動作は、行われない。
【００３４】
図６に示されているように、書き込みパラメータとセキュリティ設定データの読み出しに続いてユーザデータの書き込みと読み出しが行われる（ステップＳ０２）。より具体的には、メモリブロック０が読み出しモードに、メモリブロック１が書き込みモードに設定され、その後、図４に示されているように、メモリブロック１のユーザデータ領域１にユーザデータが書き込まれ、メモリブロック０のユーザデータ領域０からユーザデータが読み出される。ユーザデータ領域１へのユーザデータの書き込みには、ステップＳ０１で読み込まれた書き込みパラメータが使用される。
【００３５】
続いて、セキュリティ設定データとフラグの更新が行われる（ステップＳ０３）。より具体的には、ステップＳ０３では、ユーザデータが書き込まれたユーザデータ領域と同一のメモリブロックの拡張領域に記憶されているセキュリティ設定データが更新され、更に、セキュリティ設定データが更新された拡張領域が有効な拡張領域に設定されるようにフラグが更新される。本実施形態では、書き込み動作が行われたメモリブロック１の拡張領域１のセキュリティ設定データが更新され、更に、有効な拡張領域が拡張領域０から拡張領域１に切り換えられるようにフラグが更新される。
【００３６】
フラッシュメモリ１１の一つの特徴は、更新された拡張領域（即ち、書き込み動作が行われたメモリブロックの拡張領域）のフラグのみが更新されることである。本実施形態では、書き込み動作が行われたメモリブロック１の拡張領域１のフラグ１のみが更新され、拡張領域０のフラグ０は、そのままに維持される。メモリブロック１は、ステップＳ０２において既に書き込みモードに設定されているので、メモリブロック１の拡張領域１のフラグ１を更新するために動作モードを切り換える必要はない。また、メモリブロック０の動作モードを、読み出しモードから書き込みモードに切り換える必要もない。従って、簡便な動作シーケンスによってフラグを書き換えることができる。
【００３７】
図９は、セキュリティ設定データとフラグの更新の手順を示すフローチャートである。まず、更新されるべきセキュリティ設定データとフラグとが記憶されている拡張セクタ（詳細には、ユーザデータが書き込まれたユーザデータ領域と同一のメモリブロックの拡張領域におけるセキュリティ設定データとフラグが記憶されている拡張セクタ）に対して消去動作が行われる（ステップＳ２１）。本実施形態では、拡張領域１の拡張セクタ３に対して消去動作が行われる。
【００３８】
続いて、フラグ”０”、”１”のＸＯＲと、セキュリティ設定データが更新される拡張領域の番号のＸＯＲが算出される（ステップＳ２２）。上述のように、フラグ”０”、”１”のＸＯＲは、直前に有効であった（即ち、更新前に有効であった）拡張領域の番号を示しているから、ステップＳ２２の動作は、直前に有効であった拡張領域と更新される拡張領域の番号のＸＯＲを算出することと等価である。
【００３９】
続いて、ステップＳ２１においてデータが消去された拡張セクタに対してプログラム動作が行われ、当該拡張セクタに、所望のセキュリティ設定データとフラグとが書き込まれる（ステップＳ２３）。フラグの書き込みは、セキュリティ設定データが更新された拡張領域が、以後、有効な拡張領域として指定されるように行われる。
【００４０】
書き込み後のフラグの値は、更新前のフラグの値と、ステップＳ２２で算出されたＸＯＲの値に応じて決定される。具体的には、ステップＳ２２で算出されたＸＯＲが”１”である場合には、書き込み後のフラグの値が更新前のフラグの値から反転されるようにフラグが書き込まれる。一方、ステップＳ２１で算出されたＸＯＲが”０”である場合には、書き込み後のフラグの値と更新前のフラグの値が一致するようにフラグが書き込まれる。ステップＳ２１において消去動作が行われるから、書き込み後のフラグの値と更新前のフラグの値が一致する場合でも、プログラム動作によってフラグが書き込む必要がある場合があることに留意されたい。
【００４１】
図１０は、フラグの更新の動作をより具体的に示す図であり、更新前のフラグ０、１がいずれも”０”であり、拡張領域１のセキュリティ設定データが更新される場合における半導体装置１０の動作を示している。まず、拡張領域１の拡張セクタ３に対して消去動作が行われる。拡張セクタ３は、拡張領域１においてセキュリティ設定データ及びフラグが格納されるセクタであることに留意されたい。この消去動作により、拡張セクタ３のセキュリティ設定データ及びフラグは、オール０に設定される。
【００４２】
続いて、プログラム動作が行われ、拡張セクタ３に所望のセキュリティ設定データ及びフラグが書き込まれる。フラグの値は下記のように決定される。更新前には、フラグ０、１がいずれも”０”であるから、更新前のフラグ０、１のＸＯＲ、即ち、直前に有効であった拡張領域の番号は”０”である。更に、更新された拡張領域の番号は、”１”である。従って、ステップＳ２２で算出されるＸＯＲの値は、”１”である。プログラム動作では、ステップＳ２２で算出されたＸＯＲが”１”であることに応答して、フラグ１として”１”が書き込まれ、この結果、フラグ１は、”０”から”１”に反転される。一方、フラグ０はそのままに維持される。これにより、有効な拡張領域が、拡張領域０から拡張領域１に切り換えられる。
【００４３】
如何なるフラグ０、１の状態からも、図９の動作によってフラグを正しく更新可能であることは、図１１の状態遷移図から理解されよう。例えば、フラグ０、１がいずれも”０”であり、且つ、拡張領域０が更新された場合には、ステップＳ２１で算出されるＸＯＲの値は”０”である。よって、拡張領域０のフラグ０は更新されず、有効な拡張領域は、拡張領域０のまま正しく維持される。更に、フラグ０が”０”、フラグ１が”１”であり、従って、有効な拡張領域として拡張領域１が指定されていた場合に、拡張領域０が更新されたときは、ステップＳ２１で算出されるＸＯＲの値が”１”である。従って、フラグ０が”０”から”１”に反転され、これにより、有効な拡張領域が拡張領域１から拡張領域０に切り換えられる。
【００４４】
以上に説明されているように、本実施形態では、フラグ０、１は、それらのＸＯＲが有効な拡張領域の番号に一致するように決定されている。これにより、フラグ０、１がどのような状態であっても、有効な拡張領域が不定になることはなく、単一の拡張領域が有効な拡張領域として決定される。加えて、特定の拡張領域が更新された場合に、該特定の拡張領域のフラグのみを反転させることにより、該特定の拡張領域を有効な拡張領域に設定することができる。これは、該特定の拡張領域を含むメモリブロック以外のメモリブロックを書き込みモードに設定する必要性をなくし、書き込み動作を有効に簡素化する。
【００４５】
上述の動作が、拡張領域０、１のそれぞれに僅か１ビットのフラグを追加することによって実現されていることに留意されたい。各拡張領域に１ビットのフラグしか必要でないことは、拡張領域のサイズを小さくするために有効であり、また、フラグから有効は拡張領域を判別するために必要なハードウェアを小さくするためにも有効である。
【００４６】
なお、本実施形態では、本発明が拡張領域０、１のうちから有効な拡張領域を指定するために用いられているが、本実施形態に開示されている技術は、一般に、複数の領域のいずれを有効であるかを判別するために使用することが可能である。
【図面の簡単な説明】
【００４７】
【図１】図１は、従来のメモリデバイスの構成を示す図である。
【図２Ａ】図２Ａは、一のメモリブロックの拡張領域に書き込みパラメータとセキュリティ設定データが格納されているフラッシュメモリの構成の例を示す図である。
【図２Ｂ】図２Ｂは、複数のメモリブロックのそれぞれの拡張領域に書き込みパラメータとセキュリティ設定データが格納されているフラッシュメモリの構成の例を示す図である。
【図３】図３は、複数のデータ領域を有する従来のメモリデバイスの構成を示す図である。
【図４】図４は、本発明の一実施形態における半導体装置の構成を示すブロック図である。
【図５】図５は、フラグの値と有効な拡張領域の対応関係を示す表である。
【図６】図６は、一実施形態における半導体装置の動作を示すフローチャートである。
【図７】図７は、書き込みパラメータとセキュリティ設定データの読み出しの手順を示すフローチャートである。
【図８】図８は、書き込みパラメータとセキュリティ設定データの読み出し動作の例を示す図である。
【図９】図９は、フラグの更新の手順を示すフローチャートである。
【図１０】図１０は、フラグを更新する動作の例を示す図である。
【図１１】図１１は、フラグの状態遷移図である。
【符号の説明】
【００４８】
１０：半導体装置
１１：フラッシュメモリ
１２：メモリコントローラ
１３：ＣＰＵ
１４：有効フラグ選択回路
１５：有効領域情報レジスタ
１６：ＸＯＲゲート
１７：有効領域判別回路
１００：メモリデバイス
２００：半導体装置
２０１：フラッシュメモリ
２０２：メモリコントローラ
２０３：ＣＰＵ
【図１】
2008084438.tif 000003
【図２Ａ】
2008084438.tif 000004
【図２Ｂ】
2008084438.tif 000005
【図３】
2008084438.tif 000006
【図４】
2008084438.tif 000007
【図５】
2008084438.tif 000008
【図６】
2008084438.tif 000009
【図７】
2008084438.tif 000010
【図８】
2008084438.tif 000011
【図９】
2008084438.tif 000012
【図１０】
2008084438.tif 000013
【図１１】
2008084438.tif 000014