(57)【要約】【課題】メモリの使用効率を損ねることなく、安全にブートプログラムを書き換え可能にする。【解決手段】フラッシュメモリ１０は、ブートプログラム及びブート情報の両方を格納するブロック０，１と、ブロック０，１のうち最新のブートプログラムが格納された方をブート情報に応じて選択するブロック選択手段としてのブート情報比較部１２及びブロック選択信号切替部１３と、このブロック選択手段によって選択されているブロックとは別のブロックに対して、ブートプログラム及びブート情報を消去した後、新しいブートプログラムを書き込むとともに、当該書き込みが成功した場合に最新であることを示すブート情報を書き込むブロック更新手段としてのデータ制御部１４とを備えたものである。【選択図】　　　　図１
2004013477.tif 000002
【特許請求の範囲】
【請求項１】
ブートプログラム及びブート情報の両方をそれぞれ格納する複数のブロックを備えたフラッシュメモリに対して、
これらのブロックの中から最新のブートプログラムが格納されたブロックを前記各ブート情報に応じて選択するとともに、
選択されているブロックとは別のブロックに対して、ブートプログラム及びブート情報を消去した後、新しいブートプログラムを書き込むとともに、当該書き込みが成功した場合に最新であることを示すブート情報を書き込む、
ブートプログラム選択及び更新方法。
【請求項２】
ブートプログラム及びブート情報の両方をそれぞれ格納する多数のブロックを備えたフラッシュメモリに対して、
これらのブロックの中から最新のブートプログラムが格納された複数のブロックを前記各ブート情報に応じて選択するとともに、
選択されているブロックとは別の複数のブロックに対して、ブートプログラム及びブート情報を消去した後、新しいブートプログラムを書き込むとともに、当該書き込みが成功した場合に最新であることを示すブート情報を書き込む、
ブートプログラム選択及び更新方法。
【請求項３】
前記ブート情報は、当該フラッシュメモリに対して新しいブートプログラムを書き込む度に増加する数値である、
請求項１又は２記載のブートプログラム選択及び更新方法。
【請求項４】
前記ブート情報は、当該フラッシュメモリに対して新しいブートプログラムを書き込む度に減少する数値である、
請求項１又は２記載のブートプログラム選択及び更新方法。
【請求項５】
前記ブート情報が最大値であるブロックを選択するとともに、当該ブート情報が同じ値であれば予め定めた順位に従ってブロックを選択する、
請求項３記載のブートプログラム選択及び更新方法。
【請求項６】
前記ブート情報が最小値であるブロックを選択するとともに、当該ブート情報が同じ値であれば予め定めた順位に従ってブロックを選択する、
請求項４記載のブートプログラム選択及び更新方法。
【請求項７】
前記ブート情報にアクセスしないときは、前記ブロック内のアドレスを変更することにより、当該ブート情報にアクセスできないようにする、
請求項１乃至６のいずれかに記載のブートプログラム選択及び更新方法。
【請求項８】
ブートプログラム及びブート情報の両方をそれぞれ格納する複数のブロックと、
これらのブロックの中から最新のブートプログラムが格納されたブロックを前記各ブート情報に応じて選択するブロック選択手段と、
このブロック選択手段によって選択されているブロックとは別のブロックに対して、ブートプログラム及びブート情報を消去した後、新しいブートプログラムを書き込むとともに、当該書き込みが成功した場合に最新であることを示すブート情報を書き込むブロック更新手段と、
を備えたフラッシュメモリ。
【請求項９】
ブートプログラム及びブート情報の両方をそれぞれ格納する多数のブロックと、
これらのブロックの中から最新のブートプログラムが格納された複数のブロックを前記各ブート情報に応じて選択するブロック選択手段と、
このブロック選択手段によって選択されているブロックとは別の複数のブロックに対して、ブートプログラム及びブート情報を消去した後、新しいブートプログラムを書き込むとともに、当該書き込みが成功した場合に最新であることを示すブート情報を書き込むブロック更新手段と、
を備えたフラッシュメモリ。
【請求項１０】
前記ブート情報は、当該フラッシュメモリに対して新しいブートプログラムを書き込む度に増加する数値である、
請求項８又は９記載のフラッシュメモリ。
【請求項１１】
前記ブート情報は、当該フラッシュメモリに対して新しいブートプログラムを書き込む度に減少する数値である、
請求項８又は９記載のフラッシュメモリ。
【請求項１２】
前記ブロック選択手段は、前記ブート情報が最大値であるブロックを選択するとともに、当該ブート情報が同じ値であれば予め定めた順位に従ってブロックを選択する、
請求項１０記載のフラッシュメモリ。
【請求項１３】
前記ブロック選択手段は、前記ブート情報が最小値であるブロックを選択するとともに、当該ブート情報が同じ値であれば予め定めた順位に従ってブロックを選択する、
請求項１１記載のフラッシュメモリ。
【請求項１４】
前記ブート情報にアクセスしないときは、前記ブロック内のアドレスを変更することにより、当該ブート情報にアクセスできないようにするブロック内アドレス発生手段を更に備えた、
請求項８乃至１３のいずれかに記載のフラッシュメモリ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ブートプログラムを格納するために用いられるフラッシュメモリに関する。ここで、ブート（Ｂｏｏｔ）とは、コンピュータの電源を投入してから、ユーザが操作できるようになるまでに、コンピュータが自動的に行う一連の動作のことであり、一般的には起動と同じ意味で使われる。ブートプログラムとは、コンピュータの起動時に、システムの初期設定や検査を実行したり、ディスクドライブなどの補助記憶装置から他のプログラムを読み込みんだりするプログラムのことである。
【０００２】
【従来の技術】
従来、このようなブートプログラムの格納には、マスクＲＯＭやＥＰＲＯＭなどの、コンピュータに取り付けた状態では書き換えのできないメモリが用いられてきた。一方、近年、ブロック単位で書き換え可能なフラッシュメモリにブートプログラムを格納して、プログラムの修正及び機能追加等のアップデートを可能としたコンピュータが製品化されている。
【０００３】
ところが、フラッシュメモリは、データの書き換え中に、誤って電源を切断したり、書き換えプログラムが途中で停止したりすると、データの一部にエラーが発生する。その結果、コンピュータが正常に起動しなくなることがあるので、安全な書き換え方法が要求されている。この要請に応えるため、コンピュータでは、同一のフラッシュメモリを複数搭載して、正常に起動しない場合はスイッチによってフラッシュメモリを切り替えて起動する手法を採ったりしている。
【０００４】
また、特開平１１−３０６００７号公報には、フラッシュメモリにステータスを記録するブロックを設け、ブートを行うブロックを指定する技術が記載されている。図９は、同公報に記載された従来技術を示すブロック図である。以下、この図面に基づき説明する。
【０００５】
フラッシュＲＯＭは、ＢＩＯＳを格納するブロック１２０，１２１と、ステータス情報を格納するブロック１２２とに分けられている。アドレス／ブート変換制御部１００は、次のように動作する。システム立上げ時には、最初にブロック１２２から読み出した情報に基づき、ＢＩＯＳを読み出すブロックを選択してシステムを立ち上げる。一方、ＢＩＯＳ書き換え時には、ＢＩＯＳを格納したブロック１２０，１２１のうちシステム立ち上げに用いられたブロックとは別のブロックを、新しいＢＩＯＳで書き換える。そして、新しいＢＩＯＳで書き換えが正常に行われた場合にのみ、次回のシステム立ち上げ時、新しくＢＩＯＳを書き換えたブロックからＢＩＯＳを読み出してシステムの立ち上げを行う。これにより、ＢＩＯＳデータの書き換えを失敗しても、次回以降のシステムの立ち上げを可能とする。
【０００６】
【発明が解決しようとする課題】
前述したように、図９の従来技術では、起動時に、ステータス情報を格納したブロック１２２からステータス情報を読み込む。そして、新しいＢＩＯＳに書き換える場合に、書き換えに成功したときにのみ、ブロック１２２のステータス情報を書き換える。
【０００７】
一般に、フラッシュメモリは、一旦反転させたビットデータを消去時と同じ状態にするためには、消去を実行する以外にない構造になっている。したがって、ブロック１２２のステータス情報を書き換えるためには、ブロック１２２の全データを消去した後に、新しいステータス情報に書き換えるという動作になる。その結果、ステータス情報の書き換え中に電源断などによりその書き換えに失敗すると、全てのステータス情報を失うことになるので、コンピュータを正常に起動できなくなるという欠点があった。
【０００８】
また、フラッシュメモリの１ブロック当たりの容量は、メモリ製造技術の向上によって大きくなる傾向にある。そのため、ステータス情報のみを１つのブロックに割り当てることは、メモリの使用効率を著しく低下させてしまう、という問題もあった。
【０００９】
【発明の目的】
そこで、本発明の目的は、メモリの使用効率を損ねることなく、安全にブートプログラムを書き換え可能にした、ブートプログラム選択及び更新方法並びにこれを用いたフラッシュメモリを提供することにある。
【００１０】
【課題を解決するための手段】
本発明に係るブートプログラム選択及び更新方法は、ブートプログラム及びブート情報の両方をそれぞれ格納する複数のブロックを備えたフラッシュメモリに対して、これらのブロックの中から最新のブートプログラムが格納されたブロックを前記各ブート情報に応じて選択するとともに、選択されているブロックとは別のブロックに対して、ブートプログラム及びブート情報を消去した後、新しいブートプログラムを書き込むとともに、当該書き込みが成功した場合に最新であることを示すブート情報を書き込む、というものである（請求項１）。このとき、ブートプログラムは複数のブロックに跨って格納されるもの、としてもよい（請求項２）。
【００１１】
フラッシュメモリは、ブートプログラム及びブート情報の両方をそれぞれ格納する複数のブロックを備えている。このブート情報は、例えば、フラッシュメモリに対して新しいブートプログラムを書き込む度に増加又は減少する数値である（請求項３、４）。したがって、各ブート情報を読み出し、例えば最大値又は最小値のブート情報を選択することにより、最新のブートプログラムが格納されたブロックを選択することができる。このとき、ブート情報が同じ値であれば予め定めた順位に従ってブロックを選択する、としてもよい（請求項５、６）。
【００１２】
また、新しいブートプログラムを書き込む場合は、選択されているブロックとは別のブロックに対して、ブートプログラム及びブート情報を消去した後、新しいブートプログラムを書き込むとともに、この書き込みが成功した場合に最新であることを示すブート情報を書き込む。ここで、ブート情報の書き換え中に電源断などによりその書き換えに失敗すると、ブート情報が消去されたまま残る。すなわち、このブート情報は最新であることを示さないので、他のブロックのブートプログラムによってコンピュータが起動される。これに対し、従来技術では、ステータス情報の書き換えに失敗すると、全てのステータス情報を失うことになるので、コンピュータを正常に起動できなかった。
【００１３】
更に、一つのブロックに、ブートプログラム及びブート情報の両方が格納されている。そのため、ステータス情報のみを一つのブロックに割り当てていた従来技術に比べて、メモリの使用効率がよい。
【００１４】
更にまた、ブート情報にアクセスしないときは、ブロック内のアドレスを変更することにより、ブート情報にアクセスできないようにする、としてもよい（請求項７）。この場合、ブート情報は不測の事態から保護される。
【００１５】
本発明に係るフラッシュメモリは、ブートプログラム及びブート情報の両方を格納する複数のブロックと、これらのブロックの中から最新のブートプログラムが格納されたブロックを前記各ブート情報に応じて選択するブロック選択手段と、このブロック選択手段によって選択されているブロックとは別のブロックに対して、ブートプログラム及びブート情報を消去した後、新しいブートプログラムを書き込むとともに、当該書き込みが成功した場合に最新であることを示すブート情報を書き込むブロック更新手段とを備えたものである。
【００１６】
本発明に係るフラッシュメモリ（請求項８〜１４）は、本発明に係るブートプログラム選択及び更新方法（請求項１〜７）を使用するものであるので、本発明に係るブートプログラム選択及び更新方法と同じ作用及び効果を奏する。
【００１７】
換言すると、本発明は、ブートプログラム格納デバイスとして、書換可能な不揮発性半導体記憶装置（フラッシュメモリ）を使用したコンピュータにおける、安全なブートプログラムの書き換えを行うために、ブートプログラムを格納したブロックを選択するための情報をそのブートプログラムと同じブロックに配置したことを特徴としている。
【００１８】
【発明の実施の形態】
図１は、本発明に係るフラッシュメモリの第一実施形態を示すブロック図である。以下、この図面に基づき説明する。
【００１９】
本実施形態のフラッシュメモリ１０は、ブートプログラム及びブート情報の両方を格納するブロック０，１と、ブロック０，１のうち最新のブートプログラムが格納された方をブート情報に応じて選択するブロック選択手段としてのブート情報比較部１２及びブロック選択信号切替部１３と、このブロック選択手段によって選択されているブロックとは別のブロックに対して、ブートプログラム及びブート情報を消去した後、新しいブートプログラムを書き込むとともに、当該書き込みが成功した場合に最新であることを示すブート情報を書き込むブロック更新手段としてのデータ制御部１４とを備えたものである。
【００２０】
フラッシュメモリ１０は、ブートプログラム及びブート情報の両方を格納するブロック０，１を備えている。このブート情報は、フラッシュメモリ１０に対して新しいブートプログラムを書き込む度に増加又は減少する数値である。したがって、各ブート情報を読み出し、最大値又は最小値のブート情報を選択することにより、ブロック０，１のうち最新のブートプログラムが格納された方を選択することができる。このとき、ブート情報が同じ値であれば予め定めた順位に従ってブロック０を選択する。
【００２１】
また、ブロック０が選択されている場合、新しいブートプログラムを書き込むときは、ブロック１に対して、ブートプログラム及びブート情報を消去した後、新しいブートプログラムを書き込むとともに、この書き込みが成功した場合に最新であることを示すブート情報を書き込む。ここで、ブート情報の書き換え中に電源断などによりその書き換えに失敗すると、ブート情報が消去されたまま残る。すなわち、このブート情報は最新であることを示さないので、ブロック０のブートプログラムによってコンピュータが起動される。更に、一つのブロック０，１に、それぞれブートプログラム及びブート情報の両方が格納されているので、メモリの使用効率がよい。
【００２２】
次に、言葉を換えて更に詳しく説明する。
【００２３】
フラッシュメモリ１０は、メモリセル１１内にブート可能なブロック０，１とブート不可能なブロック２〜ｎとを有している。ブート可能なブロック０，１は、それぞれブート情報を格納している領域２０，２１を持っている。ブート情報比較部１２は、コンピュータ２０からのリセット信号を入力するように接続され、リセットが解除になると（すなわちリセット信号を入力しなくなると）ブート情報２０，２１のアドレスを発生し、格納されているブート情報を読み込み、それらを比較する。ブート情報の比較結果は、二組のセレクタ回路からなるブロック選択信号切替部１３へ出力される。ブロック選択信号切替部１３は、ブート情報２０，２１の比較結果に応じて、ブロック選択信号を切り替えて出力する。
【００２４】
図２は、ブート可能なブロック０の構成例を示すブロック図である。ｎワードの容量を持つブロック０中に、領域３１，３２が設けられている。領域３１は、ブートプログラムを格納する領域である。領域３２は、コンピュータ３０から出力されるブートアドレスと一致しないアドレス、かつ、このブートアドレスに基づき実行されるブートプログラムの動作に影響のないアドレスに設定された、ブート情報２０を格納する領域である。本実施形態では、１ワード分をブート情報２０を格納する領域３２をとし、それ以外をブートプログラムを格納する領域３１としている。これにより、１つのブートプログラムとこれに対応するブート情報２０とは、同一のブロック０に配置され、ブロック単位の消去時には同時に消去される構成となっている。なお、ブロック１の構成もブロック０と同じである。
【００２５】
また、フラッシュメモリ１０内には、ブロック選択信号発生部１５及びブロック内アドレス発生部１６が設けられている。コンピュータ３０のブート時には、ブート情報比較部１２によってブート情報２０，２１が比較され、予め設定された順序に従ってコンピュータ３０からのアドレス情報をブロック選択信号発生部１５によって変換し、任意のブロックからブートできるようにしている。
【００２６】
現在使用しているブートプログラムを、ブロック０が格納しているとする。ここで、新しいブートプログラムを導入する際には、ブロック１に対して、全データを消去した後、領域３１に新しいプログラムの書き込みを行い、書き込みが成功した時点で、同じブロック１上の領域３２に、ブロック１がブートとして選択されるようなブート情報２１を書き込む。これにより、コンピュータ３０の次回起動時には、書き換えたブロック１のブートプログラムが実行される。
【００２７】
一方、ブートプログラム書き換え作業中に書き換えに失敗したときには、ブート情報２１は消去された状態になっている。そのため、フラッシュメモリ１０は自動的に書き込む前のブロック配置になるので、コンピュータ３０が起動不能になることを防止する効果が得られる。
【００２８】
図３は、フラシュメモリ１０の動作の一例を示すフーロチャートである。図４は、ブロック選択条件の一例を示す図表である。図５は、メモリマップを示す説明図である。以下、図１乃至図５に基づき、フラシュメモリ１０の動作を説明する。
【００２９】
メモリセル１１は、消去によりビットデータが「１」にセットされるものとする。また、ブート情報を格納する領域３２は、１ワード（４ビット）が割り当てられているものとする。
【００３０】
コンピュータ３０の起動時には、まずコンピュータ３０のリセットが解除される（ステップＳ１）。すると、ブート情報比較部１２は、ブート可能なブロック０，１に対してブート情報を格納した領域３２のアドレスを出力し、それぞれのブート情報２０，２１を読み込む（ステップＳ２〜Ｓ５）。続いて、二つのブート情報２０，２１を図４に示すブロック選択条件に従って比較し、上位に「０」が書き込まれている方のブロックをブートするブロックとして選択し（ステップＳ６）、その比較結果に応じてブロック選択信号切替部１３に対し制御信号を出力する（ステップＳ７）。ブロック選択信号切替部１３は、ブートプログラムとしてブロック０が選択されていれば、ブロック０，１が図５［１］に示す順序のメモリマップとなるよう、ブロック選択信号をそのまま出力する（ステップＳ８）。逆に、ブートプログラムとしてがブロック１が選択されていれば、ブロック０，１が図５［２］に示す順序のメモリマップとなるよう、ブロック選択信号を入れ替えて出力する（ステップＳ９）。こうして、コンピュータ３０は、ブロック０，１のいずれかのブートプログラムで起動する（ステップＳ１０，Ｓ１１）。
【００３１】
一方、現在のブートプログラムをブロック０が格納している場合に、新しいブートプログラムに書き換えるときは、書き換えるブロック１の全データを消去した後に、データの書き込みを行う。このとき、ブロック１の消去によりブートプログラムとともにブート情報２１も消去される。ブートプログラムがすべて正常に書き込まれた場合は、ブート情報２１が格納された領域３２に、ブロック０よりも上位のビットが「０」となるようなデータを書き込む。これにより、コンピュータ３０の次回の起動時には、図４に示す条件に従い、書き換えた方のブロック１がブートプログラムとして使用される。
【００３２】
ところが、この一連の書き込み作業の途中で書き込みを失敗した場合、ブート情報２１は消去されて全てのビットが「１」となる。したがって、コンピュータ３０の次回の起動時も、図４に示す条件に従い、書き換えていない方のブロック０がブートプログラムとして使用される。
【００３３】
図６は、本発明に係るフラッシュメモリの第二実施形態を示すブロック図である。以下、この図面に基づき説明する。ただし、図１と同じ部分は同じ符号を付すことにより説明を省略する。
【００３４】
本実施形態のフラッシュメモリ４０では、ブート情報を持つブロックをｎ個（ｎ＞２）とし、ブロック選択信号切替部４３の入力及び出力をそれぞれｎ系統にすることによって、ｎ個のブロックを任意の順序でメモリマップ上に配置できるようにしている。
【００３５】
ブート情報を４ビット、ブート情報を持つブロックを４ブロックとする。コンピュータ３０からのリセットが解除されると、第一実施形態と同様に、ブート情報比較部４２は全てのブロック０〜ｎのブート情報格納領域へアドレスを順次出力してブート情報を読み込み、図７に示すのブート選択条件に従い、ブロック選択信号切替部４３へセレクト信号を出力する。このようにしてｎ個のブロック０〜ｎのうち任意のブロックをブートプログラムとすることを可能にするとともに、ｎ個のブロックを任意のアドレスに配置することも可能としている。
【００３６】
図８は、本発明に係るフラッシュメモリの第三実施形態を示す説明図である。以下、この図面に基づき説明する。ただし、図６と同じ部分は図示及び説明を省略する。
【００３７】
上記第一及び第二実施形態では、ブートプログラム書き換え時にプログラムとブート情報とが同時に消去されるという作用を、プログラムとブート情報とを同一のブロックに配置することによって得ている。また、通常のＲＯＭとしてのアクセス時には、ブート情報がメモリマップ上に現れないように構成することも可能である。そのための構成を、第三実施形態として図８に示す。
【００３８】
本実施形態では、１ブロック当たりの容量を、ブート情報の格納領域分大きくしている。そして、通常のアクセス時には、通常アクセス時メモリマップ５５となるように、ブロック選択信号発生部１５及びブロック内アドレス発生部１６によってブロック選択信号及びブロック内アドレスを変更することにより、ブート情報にアクセスできないようにする。一方、ブート情報へのアクセス時には、ブート情報アクセス時メモリマップ５６となるように、ブロック消去などのコマンドを拡張して切り替えることにより、ブート情報の読み出し及びブート情報の書き込みを行う。
【００３９】
これにより、通常のＲＯＭとしてのアクセス時には、連続したメモリとして使用可能となる。ブロックの消去時にはブート情報格納領域も１つのブロックとして取り扱われるので、ブート情報も同時に消去され、本発明の目的が達成される。しかも、本実施形態では、通常のアクセス時はブート情報の領域が、別のブロックのデータに隠されている。そのため、プログラムの暴走などによるコンピュータの誤動作に対して、ブート情報を保護できる。これに加え、各ブロックが連続しているようにアクセスできるので、ブートプログラムの容量がブロックのサイズよりも大きいために複数のブロックに跨っていても、ブート情報の領域を避けてプログラムを作成する必要がない、という相乗的な効果を奏する。
【００４０】
【発明の効果】
本発明によれば、ブートプログラム及びブート情報の両方をそれぞれ格納する複数のブロックの中から、最新のブートプログラムが格納されたものを各ブート情報に応じて選択するとともに、選択されているブロックとは別のブロックに対して、ブートプログラム及びブート情報を消去した後、新しいブートプログラムを書き込むとともに、この書き込みが成功した場合に最新であることを示すブート情報を書き込むことにより、、ブート情報の書き換え中にその書き換えに失敗しても、他のブロックのブートプログラムによってコンピュータを起動できる。しかも、一つのブロックに、ブートプログラム及びブート情報の両方を格納することにより、ステータス情報のみを一つのブロックに割り当てていた従来技術に比べて、メモリの使用効率を向上できる。したがって、メモリの使用効率を損ねることなく、安全にブートプログラムを書き換えることができる。
【００４１】
また、ブート情報にアクセスしないときは、ブロック内のアドレスを変更して、ブート情報にアクセスできないようにすることにより、ブート情報を不測の事態から保護できる。しかも、各ブロックが連続しているようにアクセスできるので、ブートプログラムの容量がブロックのサイズよりも大きいために複数のブロックに跨っていても、ブート情報の領域を避けてプログラムを作成する必要がない、という相乗的な効果を奏する。
【００４２】
換言すると、ブート情報の書き込み途中で失敗すると、そのブート情報が消去された状態すなわちブートの優先順位がもっとも低い状態になるため、書き換えていない方のブロックがブートプログラムとして選択される。したがって、コンピュータに対し書き換えを行っていないブロックからブートさせることで、起動不能な状態を回避することがきる。
【００４３】
通常、フラッシュメモリは、書き換えていないビットに対しては、消去することなく追記可能となっている。そのため、ブートプログラムを書き換えずに、ブート情報のみ他方のブロックよりも上位ビットを書き換えることで、複数のブートの方法、例えばコンピュータが通常使用するプログラムを起動する場合と、コンピュータの保守などで使用するプログラムを起動する場合とを、簡単に切り替えることが可能である。また、ブロック当たりのブート情報の容量を増やすことにより、そのビット数分切り替えることが可能になる。
【図面の簡単な説明】
【図１】本発明に係るフラッシュメモリの第一実施形態を示すブロック図である。
【図２】図１のフラシュメモリにおけるブート可能なブロックの構成例を示すブロック図である。
【図３】図１のフラシュメモリにおける動作の一例を示すフーロチャートである。
【図４】図１のフラシュメモリにおけるブロック選択条件の一例を示す図表である。
【図５】図１のフラシュメモリにおけるメモリマップを示す説明図であり、図５［１］は第一の状態、図５［２］は第二の状態である。
【図６】本発明に係るフラッシュメモリの第二実施形態を示すブロック図である。
【図７】図６のフラシュメモリにおけるブロック選択条件の一例を示す図表である。
【図８】本発明に係るフラッシュメモリの第三実施形態を示す説明図である。
【図９】従来技術を示すブロック図である。
【符号の説明】
１０，４０　フラッシュメモリ
１１　メモリセル
１２，４２　ブート情報比較部（ブロック選択手段）
１３，４３　ブロック選択信号切替部（ブロック選択手段）
１４　データ制御部（ブロック更新手段）
１５　ブロック選択信号発生部
１６　ブロック内アドレス発生部（ブロック内アドレス発生手段）
３０　コンピュータ
【図１】
2004013477.tif 000003
【図２】
2004013477.tif 000004
【図３】
2004013477.tif 000005
【図４】
2004013477.tif 000006
【図５】
2004013477.tif 000007
【図６】
2004013477.tif 000008
【図７】
2004013477.tif 000009
【図８】
2004013477.tif 000010
【図９】
2004013477.tif 000011