JP2004013477A - Method for selecting and updating boot program and flash memory using the same - Google Patents
Method for selecting and updating boot program and flash memory using the same Download PDFInfo
- Publication number
- JP2004013477A JP2004013477A JP2002165280A JP2002165280A JP2004013477A JP 2004013477 A JP2004013477 A JP 2004013477A JP 2002165280 A JP2002165280 A JP 2002165280A JP 2002165280 A JP2002165280 A JP 2002165280A JP 2004013477 A JP2004013477 A JP 2004013477A
- Authority
- JP
- Japan
- Prior art keywords
- boot
- block
- information
- boot program
- boot information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、ブートプログラムを格納するために用いられるフラッシュメモリに関する。ここで、ブート(Boot)とは、コンピュータの電源を投入してから、ユーザが操作できるようになるまでに、コンピュータが自動的に行う一連の動作のことであり、一般的には起動と同じ意味で使われる。ブートプログラムとは、コンピュータの起動時に、システムの初期設定や検査を実行したり、ディスクドライブなどの補助記憶装置から他のプログラムを読み込みんだりするプログラムのことである。
【0002】
【従来の技術】
従来、このようなブートプログラムの格納には、マスクROMやEPROMなどの、コンピュータに取り付けた状態では書き換えのできないメモリが用いられてきた。一方、近年、ブロック単位で書き換え可能なフラッシュメモリにブートプログラムを格納して、プログラムの修正及び機能追加等のアップデートを可能としたコンピュータが製品化されている。
【0003】
ところが、フラッシュメモリは、データの書き換え中に、誤って電源を切断したり、書き換えプログラムが途中で停止したりすると、データの一部にエラーが発生する。その結果、コンピュータが正常に起動しなくなることがあるので、安全な書き換え方法が要求されている。この要請に応えるため、コンピュータでは、同一のフラッシュメモリを複数搭載して、正常に起動しない場合はスイッチによってフラッシュメモリを切り替えて起動する手法を採ったりしている。
【0004】
また、特開平11−306007号公報には、フラッシュメモリにステータスを記録するブロックを設け、ブートを行うブロックを指定する技術が記載されている。図9は、同公報に記載された従来技術を示すブロック図である。以下、この図面に基づき説明する。
【0005】
フラッシュROMは、BIOSを格納するブロック120,121と、ステータス情報を格納するブロック122とに分けられている。アドレス/ブート変換制御部100は、次のように動作する。システム立上げ時には、最初にブロック122から読み出した情報に基づき、BIOSを読み出すブロックを選択してシステムを立ち上げる。一方、BIOS書き換え時には、BIOSを格納したブロック120,121のうちシステム立ち上げに用いられたブロックとは別のブロックを、新しいBIOSで書き換える。そして、新しいBIOSで書き換えが正常に行われた場合にのみ、次回のシステム立ち上げ時、新しくBIOSを書き換えたブロックからBIOSを読み出してシステムの立ち上げを行う。これにより、BIOSデータの書き換えを失敗しても、次回以降のシステムの立ち上げを可能とする。
【0006】
【発明が解決しようとする課題】
前述したように、図9の従来技術では、起動時に、ステータス情報を格納したブロック122からステータス情報を読み込む。そして、新しいBIOSに書き換える場合に、書き換えに成功したときにのみ、ブロック122のステータス情報を書き換える。
【0007】
一般に、フラッシュメモリは、一旦反転させたビットデータを消去時と同じ状態にするためには、消去を実行する以外にない構造になっている。したがって、ブロック122のステータス情報を書き換えるためには、ブロック122の全データを消去した後に、新しいステータス情報に書き換えるという動作になる。その結果、ステータス情報の書き換え中に電源断などによりその書き換えに失敗すると、全てのステータス情報を失うことになるので、コンピュータを正常に起動できなくなるという欠点があった。
【0008】
また、フラッシュメモリの1ブロック当たりの容量は、メモリ製造技術の向上によって大きくなる傾向にある。そのため、ステータス情報のみを1つのブロックに割り当てることは、メモリの使用効率を著しく低下させてしまう、という問題もあった。
【0009】
【発明の目的】
そこで、本発明の目的は、メモリの使用効率を損ねることなく、安全にブートプログラムを書き換え可能にした、ブートプログラム選択及び更新方法並びにこれを用いたフラッシュメモリを提供することにある。
【0010】
【課題を解決するための手段】
本発明に係るブートプログラム選択及び更新方法は、ブートプログラム及びブート情報の両方をそれぞれ格納する複数のブロックを備えたフラッシュメモリに対して、これらのブロックの中から最新のブートプログラムが格納されたブロックを前記各ブート情報に応じて選択するとともに、選択されているブロックとは別のブロックに対して、ブートプログラム及びブート情報を消去した後、新しいブートプログラムを書き込むとともに、当該書き込みが成功した場合に最新であることを示すブート情報を書き込む、というものである(請求項1)。このとき、ブートプログラムは複数のブロックに跨って格納されるもの、としてもよい(請求項2)。
【0011】
フラッシュメモリは、ブートプログラム及びブート情報の両方をそれぞれ格納する複数のブロックを備えている。このブート情報は、例えば、フラッシュメモリに対して新しいブートプログラムを書き込む度に増加又は減少する数値である(請求項3、4)。したがって、各ブート情報を読み出し、例えば最大値又は最小値のブート情報を選択することにより、最新のブートプログラムが格納されたブロックを選択することができる。このとき、ブート情報が同じ値であれば予め定めた順位に従ってブロックを選択する、としてもよい(請求項5、6)。
【0012】
また、新しいブートプログラムを書き込む場合は、選択されているブロックとは別のブロックに対して、ブートプログラム及びブート情報を消去した後、新しいブートプログラムを書き込むとともに、この書き込みが成功した場合に最新であることを示すブート情報を書き込む。ここで、ブート情報の書き換え中に電源断などによりその書き換えに失敗すると、ブート情報が消去されたまま残る。すなわち、このブート情報は最新であることを示さないので、他のブロックのブートプログラムによってコンピュータが起動される。これに対し、従来技術では、ステータス情報の書き換えに失敗すると、全てのステータス情報を失うことになるので、コンピュータを正常に起動できなかった。
【0013】
更に、一つのブロックに、ブートプログラム及びブート情報の両方が格納されている。そのため、ステータス情報のみを一つのブロックに割り当てていた従来技術に比べて、メモリの使用効率がよい。
【0014】
更にまた、ブート情報にアクセスしないときは、ブロック内のアドレスを変更することにより、ブート情報にアクセスできないようにする、としてもよい(請求項7)。この場合、ブート情報は不測の事態から保護される。
【0015】
本発明に係るフラッシュメモリは、ブートプログラム及びブート情報の両方を格納する複数のブロックと、これらのブロックの中から最新のブートプログラムが格納されたブロックを前記各ブート情報に応じて選択するブロック選択手段と、このブロック選択手段によって選択されているブロックとは別のブロックに対して、ブートプログラム及びブート情報を消去した後、新しいブートプログラムを書き込むとともに、当該書き込みが成功した場合に最新であることを示すブート情報を書き込むブロック更新手段とを備えたものである。
【0016】
本発明に係るフラッシュメモリ(請求項8〜14)は、本発明に係るブートプログラム選択及び更新方法(請求項1〜7)を使用するものであるので、本発明に係るブートプログラム選択及び更新方法と同じ作用及び効果を奏する。
【0017】
換言すると、本発明は、ブートプログラム格納デバイスとして、書換可能な不揮発性半導体記憶装置(フラッシュメモリ)を使用したコンピュータにおける、安全なブートプログラムの書き換えを行うために、ブートプログラムを格納したブロックを選択するための情報をそのブートプログラムと同じブロックに配置したことを特徴としている。
【0018】
【発明の実施の形態】
図1は、本発明に係るフラッシュメモリの第一実施形態を示すブロック図である。以下、この図面に基づき説明する。
【0019】
本実施形態のフラッシュメモリ10は、ブートプログラム及びブート情報の両方を格納するブロック0,1と、ブロック0,1のうち最新のブートプログラムが格納された方をブート情報に応じて選択するブロック選択手段としてのブート情報比較部12及びブロック選択信号切替部13と、このブロック選択手段によって選択されているブロックとは別のブロックに対して、ブートプログラム及びブート情報を消去した後、新しいブートプログラムを書き込むとともに、当該書き込みが成功した場合に最新であることを示すブート情報を書き込むブロック更新手段としてのデータ制御部14とを備えたものである。
【0020】
フラッシュメモリ10は、ブートプログラム及びブート情報の両方を格納するブロック0,1を備えている。このブート情報は、フラッシュメモリ10に対して新しいブートプログラムを書き込む度に増加又は減少する数値である。したがって、各ブート情報を読み出し、最大値又は最小値のブート情報を選択することにより、ブロック0,1のうち最新のブートプログラムが格納された方を選択することができる。このとき、ブート情報が同じ値であれば予め定めた順位に従ってブロック0を選択する。
【0021】
また、ブロック0が選択されている場合、新しいブートプログラムを書き込むときは、ブロック1に対して、ブートプログラム及びブート情報を消去した後、新しいブートプログラムを書き込むとともに、この書き込みが成功した場合に最新であることを示すブート情報を書き込む。ここで、ブート情報の書き換え中に電源断などによりその書き換えに失敗すると、ブート情報が消去されたまま残る。すなわち、このブート情報は最新であることを示さないので、ブロック0のブートプログラムによってコンピュータが起動される。更に、一つのブロック0,1に、それぞれブートプログラム及びブート情報の両方が格納されているので、メモリの使用効率がよい。
【0022】
次に、言葉を換えて更に詳しく説明する。
【0023】
フラッシュメモリ10は、メモリセル11内にブート可能なブロック0,1とブート不可能なブロック2〜nとを有している。ブート可能なブロック0,1は、それぞれブート情報を格納している領域20,21を持っている。ブート情報比較部12は、コンピュータ20からのリセット信号を入力するように接続され、リセットが解除になると(すなわちリセット信号を入力しなくなると)ブート情報20,21のアドレスを発生し、格納されているブート情報を読み込み、それらを比較する。ブート情報の比較結果は、二組のセレクタ回路からなるブロック選択信号切替部13へ出力される。ブロック選択信号切替部13は、ブート情報20,21の比較結果に応じて、ブロック選択信号を切り替えて出力する。
【0024】
図2は、ブート可能なブロック0の構成例を示すブロック図である。nワードの容量を持つブロック0中に、領域31,32が設けられている。領域31は、ブートプログラムを格納する領域である。領域32は、コンピュータ30から出力されるブートアドレスと一致しないアドレス、かつ、このブートアドレスに基づき実行されるブートプログラムの動作に影響のないアドレスに設定された、ブート情報20を格納する領域である。本実施形態では、1ワード分をブート情報20を格納する領域32をとし、それ以外をブートプログラムを格納する領域31としている。これにより、1つのブートプログラムとこれに対応するブート情報20とは、同一のブロック0に配置され、ブロック単位の消去時には同時に消去される構成となっている。なお、ブロック1の構成もブロック0と同じである。
【0025】
また、フラッシュメモリ10内には、ブロック選択信号発生部15及びブロック内アドレス発生部16が設けられている。コンピュータ30のブート時には、ブート情報比較部12によってブート情報20,21が比較され、予め設定された順序に従ってコンピュータ30からのアドレス情報をブロック選択信号発生部15によって変換し、任意のブロックからブートできるようにしている。
【0026】
現在使用しているブートプログラムを、ブロック0が格納しているとする。ここで、新しいブートプログラムを導入する際には、ブロック1に対して、全データを消去した後、領域31に新しいプログラムの書き込みを行い、書き込みが成功した時点で、同じブロック1上の領域32に、ブロック1がブートとして選択されるようなブート情報21を書き込む。これにより、コンピュータ30の次回起動時には、書き換えたブロック1のブートプログラムが実行される。
【0027】
一方、ブートプログラム書き換え作業中に書き換えに失敗したときには、ブート情報21は消去された状態になっている。そのため、フラッシュメモリ10は自動的に書き込む前のブロック配置になるので、コンピュータ30が起動不能になることを防止する効果が得られる。
【0028】
図3は、フラシュメモリ10の動作の一例を示すフーロチャートである。図4は、ブロック選択条件の一例を示す図表である。図5は、メモリマップを示す説明図である。以下、図1乃至図5に基づき、フラシュメモリ10の動作を説明する。
【0029】
メモリセル11は、消去によりビットデータが「1」にセットされるものとする。また、ブート情報を格納する領域32は、1ワード(4ビット)が割り当てられているものとする。
【0030】
コンピュータ30の起動時には、まずコンピュータ30のリセットが解除される(ステップS1)。すると、ブート情報比較部12は、ブート可能なブロック0,1に対してブート情報を格納した領域32のアドレスを出力し、それぞれのブート情報20,21を読み込む(ステップS2〜S5)。続いて、二つのブート情報20,21を図4に示すブロック選択条件に従って比較し、上位に「0」が書き込まれている方のブロックをブートするブロックとして選択し(ステップS6)、その比較結果に応じてブロック選択信号切替部13に対し制御信号を出力する(ステップS7)。ブロック選択信号切替部13は、ブートプログラムとしてブロック0が選択されていれば、ブロック0,1が図5[1]に示す順序のメモリマップとなるよう、ブロック選択信号をそのまま出力する(ステップS8)。逆に、ブートプログラムとしてがブロック1が選択されていれば、ブロック0,1が図5[2]に示す順序のメモリマップとなるよう、ブロック選択信号を入れ替えて出力する(ステップS9)。こうして、コンピュータ30は、ブロック0,1のいずれかのブートプログラムで起動する(ステップS10,S11)。
【0031】
一方、現在のブートプログラムをブロック0が格納している場合に、新しいブートプログラムに書き換えるときは、書き換えるブロック1の全データを消去した後に、データの書き込みを行う。このとき、ブロック1の消去によりブートプログラムとともにブート情報21も消去される。ブートプログラムがすべて正常に書き込まれた場合は、ブート情報21が格納された領域32に、ブロック0よりも上位のビットが「0」となるようなデータを書き込む。これにより、コンピュータ30の次回の起動時には、図4に示す条件に従い、書き換えた方のブロック1がブートプログラムとして使用される。
【0032】
ところが、この一連の書き込み作業の途中で書き込みを失敗した場合、ブート情報21は消去されて全てのビットが「1」となる。したがって、コンピュータ30の次回の起動時も、図4に示す条件に従い、書き換えていない方のブロック0がブートプログラムとして使用される。
【0033】
図6は、本発明に係るフラッシュメモリの第二実施形態を示すブロック図である。以下、この図面に基づき説明する。ただし、図1と同じ部分は同じ符号を付すことにより説明を省略する。
【0034】
本実施形態のフラッシュメモリ40では、ブート情報を持つブロックをn個(n>2)とし、ブロック選択信号切替部43の入力及び出力をそれぞれn系統にすることによって、n個のブロックを任意の順序でメモリマップ上に配置できるようにしている。
【0035】
ブート情報を4ビット、ブート情報を持つブロックを4ブロックとする。コンピュータ30からのリセットが解除されると、第一実施形態と同様に、ブート情報比較部42は全てのブロック0〜nのブート情報格納領域へアドレスを順次出力してブート情報を読み込み、図7に示すのブート選択条件に従い、ブロック選択信号切替部43へセレクト信号を出力する。このようにしてn個のブロック0〜nのうち任意のブロックをブートプログラムとすることを可能にするとともに、n個のブロックを任意のアドレスに配置することも可能としている。
【0036】
図8は、本発明に係るフラッシュメモリの第三実施形態を示す説明図である。以下、この図面に基づき説明する。ただし、図6と同じ部分は図示及び説明を省略する。
【0037】
上記第一及び第二実施形態では、ブートプログラム書き換え時にプログラムとブート情報とが同時に消去されるという作用を、プログラムとブート情報とを同一のブロックに配置することによって得ている。また、通常のROMとしてのアクセス時には、ブート情報がメモリマップ上に現れないように構成することも可能である。そのための構成を、第三実施形態として図8に示す。
【0038】
本実施形態では、1ブロック当たりの容量を、ブート情報の格納領域分大きくしている。そして、通常のアクセス時には、通常アクセス時メモリマップ55となるように、ブロック選択信号発生部15及びブロック内アドレス発生部16によってブロック選択信号及びブロック内アドレスを変更することにより、ブート情報にアクセスできないようにする。一方、ブート情報へのアクセス時には、ブート情報アクセス時メモリマップ56となるように、ブロック消去などのコマンドを拡張して切り替えることにより、ブート情報の読み出し及びブート情報の書き込みを行う。
【0039】
これにより、通常のROMとしてのアクセス時には、連続したメモリとして使用可能となる。ブロックの消去時にはブート情報格納領域も1つのブロックとして取り扱われるので、ブート情報も同時に消去され、本発明の目的が達成される。しかも、本実施形態では、通常のアクセス時はブート情報の領域が、別のブロックのデータに隠されている。そのため、プログラムの暴走などによるコンピュータの誤動作に対して、ブート情報を保護できる。これに加え、各ブロックが連続しているようにアクセスできるので、ブートプログラムの容量がブロックのサイズよりも大きいために複数のブロックに跨っていても、ブート情報の領域を避けてプログラムを作成する必要がない、という相乗的な効果を奏する。
【0040】
【発明の効果】
本発明によれば、ブートプログラム及びブート情報の両方をそれぞれ格納する複数のブロックの中から、最新のブートプログラムが格納されたものを各ブート情報に応じて選択するとともに、選択されているブロックとは別のブロックに対して、ブートプログラム及びブート情報を消去した後、新しいブートプログラムを書き込むとともに、この書き込みが成功した場合に最新であることを示すブート情報を書き込むことにより、、ブート情報の書き換え中にその書き換えに失敗しても、他のブロックのブートプログラムによってコンピュータを起動できる。しかも、一つのブロックに、ブートプログラム及びブート情報の両方を格納することにより、ステータス情報のみを一つのブロックに割り当てていた従来技術に比べて、メモリの使用効率を向上できる。したがって、メモリの使用効率を損ねることなく、安全にブートプログラムを書き換えることができる。
【0041】
また、ブート情報にアクセスしないときは、ブロック内のアドレスを変更して、ブート情報にアクセスできないようにすることにより、ブート情報を不測の事態から保護できる。しかも、各ブロックが連続しているようにアクセスできるので、ブートプログラムの容量がブロックのサイズよりも大きいために複数のブロックに跨っていても、ブート情報の領域を避けてプログラムを作成する必要がない、という相乗的な効果を奏する。
【0042】
換言すると、ブート情報の書き込み途中で失敗すると、そのブート情報が消去された状態すなわちブートの優先順位がもっとも低い状態になるため、書き換えていない方のブロックがブートプログラムとして選択される。したがって、コンピュータに対し書き換えを行っていないブロックからブートさせることで、起動不能な状態を回避することがきる。
【0043】
通常、フラッシュメモリは、書き換えていないビットに対しては、消去することなく追記可能となっている。そのため、ブートプログラムを書き換えずに、ブート情報のみ他方のブロックよりも上位ビットを書き換えることで、複数のブートの方法、例えばコンピュータが通常使用するプログラムを起動する場合と、コンピュータの保守などで使用するプログラムを起動する場合とを、簡単に切り替えることが可能である。また、ブロック当たりのブート情報の容量を増やすことにより、そのビット数分切り替えることが可能になる。
【図面の簡単な説明】
【図1】本発明に係るフラッシュメモリの第一実施形態を示すブロック図である。
【図2】図1のフラシュメモリにおけるブート可能なブロックの構成例を示すブロック図である。
【図3】図1のフラシュメモリにおける動作の一例を示すフーロチャートである。
【図4】図1のフラシュメモリにおけるブロック選択条件の一例を示す図表である。
【図5】図1のフラシュメモリにおけるメモリマップを示す説明図であり、図5[1]は第一の状態、図5[2]は第二の状態である。
【図6】本発明に係るフラッシュメモリの第二実施形態を示すブロック図である。
【図7】図6のフラシュメモリにおけるブロック選択条件の一例を示す図表である。
【図8】本発明に係るフラッシュメモリの第三実施形態を示す説明図である。
【図9】従来技術を示すブロック図である。
【符号の説明】
10,40 フラッシュメモリ
11 メモリセル
12,42 ブート情報比較部(ブロック選択手段)
13,43 ブロック選択信号切替部(ブロック選択手段)
14 データ制御部(ブロック更新手段)
15 ブロック選択信号発生部
16 ブロック内アドレス発生部(ブロック内アドレス発生手段)
30 コンピュータ[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a flash memory used to store a boot program. Here, the boot is a series of operations automatically performed by the computer after the power of the computer is turned on until the user can operate the computer, and is generally the same as startup. Used in a meaning. The boot program is a program that executes initial settings and inspection of the system and reads another program from an auxiliary storage device such as a disk drive when the computer is started.
[0002]
[Prior art]
Conventionally, such a boot program is stored in a memory such as a mask ROM or an EPROM which cannot be rewritten when attached to a computer. On the other hand, in recent years, computers that store a boot program in a flash memory that can be rewritten in block units and that can update the program and add functions have been commercialized.
[0003]
However, if the power of the flash memory is accidentally turned off during rewriting of data or if the rewriting program is stopped halfway, an error occurs in a part of the data. As a result, the computer may not be able to start normally, and a safe rewriting method is required. In order to respond to this request, a computer employs a method in which a plurality of identical flash memories are mounted, and when the computer does not start normally, the flash memories are switched by a switch to be activated.
[0004]
Japanese Patent Application Laid-Open No. H11-306007 describes a technique in which a block for recording status in a flash memory is provided, and a block for booting is specified. FIG. 9 is a block diagram showing a conventional technique described in the publication. Hereinafter, description will be made based on this drawing.
[0005]
The flash ROM is divided into
[0006]
[Problems to be solved by the invention]
As described above, in the conventional technique of FIG. 9, at the time of startup, the status information is read from the
[0007]
In general, a flash memory has a structure that only requires erasure to bring bit data once inverted into the same state as at the time of erasure. Therefore, in order to rewrite the status information of the
[0008]
In addition, the capacity per block of the flash memory tends to increase with the improvement of memory manufacturing technology. For this reason, there is also a problem that allocating only the status information to one block significantly reduces the memory use efficiency.
[0009]
[Object of the invention]
Therefore, an object of the present invention is to provide a boot program selection and update method and a flash memory using the same, in which the boot program can be safely rewritten without impairing the use efficiency of the memory.
[0010]
[Means for Solving the Problems]
The boot program selection and update method according to the present invention is directed to a flash memory including a plurality of blocks each storing both a boot program and boot information. Is selected according to each of the boot information, and for a block different from the selected block, after erasing the boot program and the boot information, writing a new boot program, and when the writing is successful, The boot information indicating the latest is written (claim 1). At this time, the boot program may be stored over a plurality of blocks.
[0011]
The flash memory has a plurality of blocks each storing both a boot program and boot information. The boot information is, for example, a numerical value that increases or decreases each time a new boot program is written to the flash memory (
[0012]
When writing a new boot program, erase the boot program and boot information in a block different from the selected block, and then write a new boot program. Write boot information indicating that there is. Here, if the rewriting fails due to a power failure or the like while rewriting the boot information, the boot information remains erased. That is, since this boot information does not indicate that it is the latest, the computer is started by the boot program of another block. On the other hand, in the related art, if the rewriting of the status information fails, all the status information is lost, so that the computer cannot be started normally.
[0013]
Further, one block stores both the boot program and the boot information. Therefore, the use efficiency of the memory is higher than in the related art in which only the status information is assigned to one block.
[0014]
Furthermore, when the boot information is not accessed, the address in the block may be changed so that the boot information cannot be accessed (claim 7). In this case, the boot information is protected from an unexpected event.
[0015]
The flash memory according to the present invention includes a plurality of blocks that store both a boot program and boot information, and a block selection that selects a block that stores the latest boot program from these blocks in accordance with the respective boot information. Means and, after erasing the boot program and boot information in a block different from the block selected by the block selecting means, write a new boot program and, if the writing is successful, be up-to-date And a block updating means for writing boot information indicating the above.
[0016]
Since the flash memory according to the present invention (claims 8 to 14) uses the boot program selection and update method (claims 1 to 7) according to the present invention, the boot program selection and update method according to the present invention is used. It has the same action and effect as.
[0017]
In other words, the present invention selects a block storing a boot program in order to safely rewrite a boot program in a computer using a rewritable nonvolatile semiconductor storage device (flash memory) as a boot program storage device. This is characterized in that information for performing the operation is arranged in the same block as the boot program.
[0018]
BEST MODE FOR CARRYING OUT THE INVENTION
FIG. 1 is a block diagram showing a first embodiment of a flash memory according to the present invention. Hereinafter, description will be made based on this drawing.
[0019]
The
[0020]
The
[0021]
When
[0022]
Next, the description will be made in more detail by changing the language.
[0023]
The
[0024]
FIG. 2 is a block diagram illustrating a configuration example of the
[0025]
In the
[0026]
Assume that
[0027]
On the other hand, when the rewriting fails during the boot program rewriting operation, the
[0028]
FIG. 3 is a flowchart showing an example of the operation of the
[0029]
In the
[0030]
When the
[0031]
On the other hand, when the current boot program is stored in the
[0032]
However, if the writing fails during this series of writing operations, the
[0033]
FIG. 6 is a block diagram showing a second embodiment of the flash memory according to the present invention. Hereinafter, description will be made based on this drawing. However, the same parts as those in FIG.
[0034]
In the flash memory 40 of the present embodiment, the number of blocks having boot information is n (n> 2), and the input and output of the block selection
[0035]
The boot information is 4 bits, and the block having the boot information is 4 blocks. When the reset from the
[0036]
FIG. 8 is an explanatory diagram showing a third embodiment of the flash memory according to the present invention. Hereinafter, description will be made based on this drawing. However, illustration and description of the same parts as in FIG. 6 are omitted.
[0037]
In the first and second embodiments, the effect that the program and the boot information are simultaneously erased when the boot program is rewritten is obtained by arranging the program and the boot information in the same block. Also, it is possible to configure so that the boot information does not appear on the memory map when accessing as a normal ROM. The configuration for that is shown in FIG. 8 as a third embodiment.
[0038]
In the present embodiment, the capacity per block is increased by the storage area of the boot information. At the time of normal access, the boot information cannot be accessed by changing the block selection signal and the intra-block address by the block selection
[0039]
Thereby, at the time of access as a normal ROM, it can be used as a continuous memory. When erasing a block, the boot information storage area is also treated as one block, so that the boot information is also erased at the same time, thereby achieving the object of the present invention. Moreover, in the present embodiment, at the time of normal access, the area of the boot information is hidden by data of another block. Therefore, the boot information can be protected against a malfunction of the computer due to a program runaway or the like. In addition, since each block can be accessed as if it were contiguous, the program is created avoiding the boot information area even if it spans multiple blocks because the boot program capacity is larger than the block size. There is a synergistic effect that there is no need.
[0040]
【The invention's effect】
According to the present invention, from among a plurality of blocks each storing both a boot program and boot information, a block storing the latest boot program is selected in accordance with each piece of boot information, and After erasing the boot program and boot information in another block, the new boot program is written, and if the writing is successful, the boot information indicating the latest is written, thereby rewriting the boot information. Even if the rewriting fails during that time, the computer can be started by the boot program of another block. Moreover, by storing both the boot program and the boot information in one block, the memory use efficiency can be improved as compared with the related art in which only status information is allocated to one block. Therefore, the boot program can be safely rewritten without impairing the use efficiency of the memory.
[0041]
When the boot information is not accessed, the address in the block is changed so that the boot information cannot be accessed, so that the boot information can be protected from an unexpected situation. In addition, since each block can be accessed as if it were continuous, it is necessary to create a program that avoids the boot information area even if it spans multiple blocks because the capacity of the boot program is larger than the size of the block. No synergistic effect.
[0042]
In other words, if a failure occurs during the writing of the boot information, the boot information is erased, that is, the boot priority is the lowest, and the block that has not been rewritten is selected as the boot program. Therefore, by causing the computer to boot from a block that has not been rewritten, an unstartable state can be avoided.
[0043]
Normally, in a flash memory, bits that have not been rewritten can be additionally written without erasing. Therefore, by rewriting the higher bits of the other block than the other block only without rewriting the boot program, a plurality of boot methods are used, for example, when a computer starts a normally used program and when the computer is maintained. It is possible to easily switch between activating the program and activating the program. Further, by increasing the capacity of the boot information per block, it is possible to switch by the number of bits.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a first embodiment of a flash memory according to the present invention.
FIG. 2 is a block diagram showing a configuration example of a bootable block in the flash memory of FIG. 1;
FIG. 3 is a flowchart showing an example of an operation in the flash memory of FIG. 1;
FIG. 4 is a table showing an example of a block selection condition in the flash memory of FIG. 1;
5 is an explanatory diagram showing a memory map in the flash memory shown in FIG. 1; FIG. 5 [1] shows a first state, and FIG. 5 [2] shows a second state.
FIG. 6 is a block diagram showing a second embodiment of the flash memory according to the present invention.
FIG. 7 is a table showing an example of a block selection condition in the flash memory of FIG. 6;
FIG. 8 is an explanatory diagram showing a third embodiment of the flash memory according to the present invention.
FIG. 9 is a block diagram showing a conventional technique.
[Explanation of symbols]
10, 40
13, 43 block selection signal switching unit (block selection means)
14 Data control unit (block updating means)
15 Block
30 Computer
Claims (14)
これらのブロックの中から最新のブートプログラムが格納されたブロックを前記各ブート情報に応じて選択するとともに、
選択されているブロックとは別のブロックに対して、ブートプログラム及びブート情報を消去した後、新しいブートプログラムを書き込むとともに、当該書き込みが成功した場合に最新であることを示すブート情報を書き込む、
ブートプログラム選択及び更新方法。For a flash memory having a plurality of blocks each storing both a boot program and boot information,
While selecting a block in which the latest boot program is stored from these blocks according to the respective boot information,
For a block different from the selected block, after erasing the boot program and boot information, write a new boot program, and if the writing is successful, write boot information indicating that it is the latest.
Boot program selection and update method.
これらのブロックの中から最新のブートプログラムが格納された複数のブロックを前記各ブート情報に応じて選択するとともに、
選択されているブロックとは別の複数のブロックに対して、ブートプログラム及びブート情報を消去した後、新しいブートプログラムを書き込むとともに、当該書き込みが成功した場合に最新であることを示すブート情報を書き込む、
ブートプログラム選択及び更新方法。For a flash memory with a large number of blocks each storing both a boot program and boot information,
While selecting a plurality of blocks storing the latest boot program from these blocks according to the respective boot information,
After erasing the boot program and the boot information for a plurality of blocks other than the selected block, write a new boot program and, if the writing is successful, write boot information indicating that it is the latest ,
Boot program selection and update method.
請求項1又は2記載のブートプログラム選択及び更新方法。The boot information is a numerical value that increases each time a new boot program is written to the flash memory.
3. The method for selecting and updating a boot program according to claim 1 or 2.
請求項1又は2記載のブートプログラム選択及び更新方法。The boot information is a numerical value that decreases each time a new boot program is written to the flash memory.
3. The method for selecting and updating a boot program according to claim 1 or 2.
請求項3記載のブートプログラム選択及び更新方法。Selecting the block with the maximum value of the boot information, and selecting the block according to a predetermined order if the boot information is the same value;
The boot program selection and updating method according to claim 3.
請求項4記載のブートプログラム選択及び更新方法。Selecting the block having the minimum value of the boot information, and selecting the block according to a predetermined order if the boot information has the same value;
The boot program selection and update method according to claim 4.
請求項1乃至6のいずれかに記載のブートプログラム選択及び更新方法。When the boot information is not accessed, the address in the block is changed so that the boot information cannot be accessed.
The boot program selection and update method according to claim 1.
これらのブロックの中から最新のブートプログラムが格納されたブロックを前記各ブート情報に応じて選択するブロック選択手段と、
このブロック選択手段によって選択されているブロックとは別のブロックに対して、ブートプログラム及びブート情報を消去した後、新しいブートプログラムを書き込むとともに、当該書き込みが成功した場合に最新であることを示すブート情報を書き込むブロック更新手段と、
を備えたフラッシュメモリ。A plurality of blocks each storing both a boot program and boot information,
Block selecting means for selecting a block in which the latest boot program is stored from among these blocks according to the respective boot information;
After erasing the boot program and the boot information for a block different from the block selected by the block selecting means, a new boot program is written, and if the writing is successful, the boot indicating that the block is the latest is written. Block updating means for writing information;
Flash memory with.
これらのブロックの中から最新のブートプログラムが格納された複数のブロックを前記各ブート情報に応じて選択するブロック選択手段と、
このブロック選択手段によって選択されているブロックとは別の複数のブロックに対して、ブートプログラム及びブート情報を消去した後、新しいブートプログラムを書き込むとともに、当該書き込みが成功した場合に最新であることを示すブート情報を書き込むブロック更新手段と、
を備えたフラッシュメモリ。A number of blocks each storing both a boot program and boot information,
Block selecting means for selecting a plurality of blocks storing the latest boot program from these blocks in accordance with the respective pieces of boot information;
After erasing the boot program and the boot information for a plurality of blocks different from the block selected by the block selecting means, a new boot program is written, and if the writing is successful, it is confirmed that the boot program is the latest. Block updating means for writing boot information to be indicated,
Flash memory with.
請求項8又は9記載のフラッシュメモリ。The boot information is a numerical value that increases each time a new boot program is written to the flash memory.
The flash memory according to claim 8.
請求項8又は9記載のフラッシュメモリ。The boot information is a numerical value that decreases each time a new boot program is written to the flash memory.
The flash memory according to claim 8.
請求項10記載のフラッシュメモリ。The block selecting means selects the block having the maximum value of the boot information, and selects the block according to a predetermined order if the boot information has the same value.
The flash memory according to claim 10.
請求項11記載のフラッシュメモリ。The block selecting means selects the block having the minimum value of the boot information, and selects the block according to a predetermined order if the boot information has the same value.
The flash memory according to claim 11.
請求項8乃至13のいずれかに記載のフラッシュメモリ。When the boot information is not accessed, an address in the block is further changed by changing an address in the block to prevent access to the boot information.
14. The flash memory according to claim 8.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002165280A JP2004013477A (en) | 2002-06-06 | 2002-06-06 | Method for selecting and updating boot program and flash memory using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002165280A JP2004013477A (en) | 2002-06-06 | 2002-06-06 | Method for selecting and updating boot program and flash memory using the same |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004013477A true JP2004013477A (en) | 2004-01-15 |
Family
ID=30433155
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002165280A Pending JP2004013477A (en) | 2002-06-06 | 2002-06-06 | Method for selecting and updating boot program and flash memory using the same |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004013477A (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005250882A (en) * | 2004-03-04 | 2005-09-15 | Fuji Xerox Co Ltd | Information processor and program rewriting method |
JP2007304781A (en) * | 2006-05-10 | 2007-11-22 | Nec Electronics Corp | Semiconductor device and start-up method |
KR100816763B1 (en) | 2007-02-13 | 2008-03-25 | 삼성전자주식회사 | Electronic system using flash memory module by a main storage and booting method thereof |
KR100876748B1 (en) | 2004-07-23 | 2009-01-07 | 삼성전자주식회사 | Method for updating boot code |
JP2009070224A (en) * | 2007-09-14 | 2009-04-02 | Ricoh Co Ltd | Electronic equipment, start-up control method of electronic equipment and image forming device |
US8510544B2 (en) | 2008-06-23 | 2013-08-13 | Panasonic Corporation | Starts up of modules of a second module group only when modules of a first group have been started up legitimately |
US8555049B2 (en) | 2007-10-05 | 2013-10-08 | Panasonic Corporation | Secure boot terminal, secure boot method, secure boot program, recording medium, and integrated circuit |
CN111373368A (en) * | 2018-09-12 | 2020-07-03 | 株式会社Lg化学 | Non-volatile memory update apparatus and method |
-
2002
- 2002-06-06 JP JP2002165280A patent/JP2004013477A/en active Pending
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005250882A (en) * | 2004-03-04 | 2005-09-15 | Fuji Xerox Co Ltd | Information processor and program rewriting method |
KR100876748B1 (en) | 2004-07-23 | 2009-01-07 | 삼성전자주식회사 | Method for updating boot code |
US8037358B2 (en) | 2006-05-10 | 2011-10-11 | Renesas Electronics Corporation | Semiconductor device and boot method for the same |
JP2007304781A (en) * | 2006-05-10 | 2007-11-22 | Nec Electronics Corp | Semiconductor device and start-up method |
KR100816763B1 (en) | 2007-02-13 | 2008-03-25 | 삼성전자주식회사 | Electronic system using flash memory module by a main storage and booting method thereof |
US7861074B2 (en) | 2007-02-13 | 2010-12-28 | Samsung Electronics Co., Ltd. | Electronic systems using flash memory modules as main storage and related system booting methods |
JP2009070224A (en) * | 2007-09-14 | 2009-04-02 | Ricoh Co Ltd | Electronic equipment, start-up control method of electronic equipment and image forming device |
US8555049B2 (en) | 2007-10-05 | 2013-10-08 | Panasonic Corporation | Secure boot terminal, secure boot method, secure boot program, recording medium, and integrated circuit |
US8510544B2 (en) | 2008-06-23 | 2013-08-13 | Panasonic Corporation | Starts up of modules of a second module group only when modules of a first group have been started up legitimately |
CN111373368A (en) * | 2018-09-12 | 2020-07-03 | 株式会社Lg化学 | Non-volatile memory update apparatus and method |
JP2021509990A (en) * | 2018-09-12 | 2021-04-08 | エルジー・ケム・リミテッド | Non-volatile memory update device and method |
JP7072660B2 (en) | 2018-09-12 | 2022-05-20 | エルジー エナジー ソリューション リミテッド | Non-volatile memory update device and method |
CN111373368B (en) * | 2018-09-12 | 2023-11-14 | 株式会社Lg新能源 | Nonvolatile memory updating apparatus and method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0592098A2 (en) | Control method and apparatus for direct execution of a program on an external apparatus using a randomly accessible and rewritable memory | |
JP2009026296A (en) | Electronic device, memory device, and host apparatus | |
JP2008198310A (en) | Method for repairing bit error and information processing system | |
US20070101114A1 (en) | Method and apparatus for memory initializing in a computer system | |
JP2001195241A (en) | Computer | |
JP2006243780A (en) | Memory controller, flash memory system and control method of flash memory | |
JP2004295865A (en) | Automatic booting system and automatic booting method | |
KR20090021508A (en) | Flash memory device storing data with multi-bit and single-bit form and program method thereof | |
JP2006185535A (en) | Semiconductor memory device | |
JP3830867B2 (en) | Single-chip microcomputer and its boot area switching method | |
US8527733B2 (en) | Memory system | |
JP2004013477A (en) | Method for selecting and updating boot program and flash memory using the same | |
KR100485550B1 (en) | Nonvolatile semiconductor memory device with backup memory block | |
JP2003196102A (en) | Computer system | |
JP2000163268A (en) | Computer | |
JP3194900B2 (en) | Memory management method for computer having hard disk drive | |
JP2003248631A (en) | Memory control circuit and memory control method | |
JP2002278850A (en) | Semiconductor device | |
JP2001075941A (en) | Microcomputer with built-in flash memory and operating method therefor | |
JPH1049360A (en) | System for writing to flash memory | |
CN113590209B (en) | Chip starting control method, chip and electronic equipment | |
JP4594944B2 (en) | Memory control device | |
JP2014089497A (en) | Information processing device | |
JP4572205B2 (en) | Flash memory drive device, control method thereof, and program thereof | |
KR101342074B1 (en) | Computer system and control method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040421 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061110 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061128 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070118 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070213 |