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 PDF

Info

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
Application number
JP2002165280A
Other languages
Japanese (ja)
Inventor
Shigeo Hamamura
濱村 繁男
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp NEC Display Solutions Ltd
Original Assignee
NEC Viewtechnology Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Viewtechnology Ltd filed Critical NEC Viewtechnology Ltd
Priority to JP2002165280A priority Critical patent/JP2004013477A/en
Publication of JP2004013477A publication Critical patent/JP2004013477A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To safely rewrite a boot program without damaging the using efficiency of a memory. <P>SOLUTION: This flash memory 10 is provided with blocks 0 and 1 for storing both a boot program and boot information, a boot information comparing part 12 and a block selection signal switching part 13 as a block selecting means for selecting either the block 0 or 1 in which the latest boot program is stored according to the boot information, and a data control part 14 as a block updating means for erasing the boot program and the boot information from the block different from the block selected by the block selecting means, and for writing a new boot program, and for writing the boot information indicating that the boot program is the latest when the writing is successful. <P>COPYRIGHT: (C)2004,JPO

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 blocks 120 and 121 for storing BIOS and a block 122 for storing status information. The address / boot conversion control unit 100 operates as follows. At the time of system startup, a block from which the BIOS is read is selected based on the information initially read from the block 122, and the system is started. On the other hand, when rewriting the BIOS, a block different from the block used to start up the system, out of the blocks 120 and 121 storing the BIOS, is rewritten with the new BIOS. Then, only when the rewriting is performed normally with the new BIOS, the next time the system is started, the BIOS is read from the block in which the new BIOS has been rewritten, and the system is started. As a result, even if the rewriting of the BIOS data fails, the system can be started up from the next time.
[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 block 122 storing the status information. Then, when rewriting to a new BIOS, the status information of the block 122 is rewritten only when the rewriting succeeds.
[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 block 122, an operation is performed in which all data in the block 122 is erased and then rewritten with new status information. As a result, if the rewriting fails due to a power failure or the like while rewriting the status information, all the status information is lost, so that the computer cannot be started normally.
[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 (claims 3 and 4). Therefore, by reading each piece of boot information and selecting, for example, the maximum value or the minimum value of the boot information, it is possible to select the block storing the latest boot program. At this time, if the boot information has the same value, a block may be selected according to a predetermined order (claims 5 and 6).
[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 flash memory 10 of the present embodiment includes a block 0, 1 for storing both a boot program and boot information, and a block selection for selecting a block 0, 1 in which the latest boot program is stored in accordance with the boot information. After erasing the boot program and the boot information for a block different from the block selected by the block information selecting section 12 and the block selection signal switching section 13 as a means, It is provided with a data control unit 14 as a block updating means for writing the boot information indicating the latest when the writing is successful.
[0020]
The flash memory 10 includes blocks 0 and 1 that store both a boot program and boot information. This boot information is a numerical value that increases or decreases each time a new boot program is written to the flash memory 10. Therefore, by reading out each piece of boot information and selecting the maximum value or the minimum value of the boot information, the block 0 or 1 in which the latest boot program is stored can be selected. At this time, if the boot information has the same value, block 0 is selected according to a predetermined order.
[0021]
When block 0 is selected and a new boot program is to be written, a new boot program is written to block 1 after erasing the boot program and the boot information. Is written in the boot information. 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 block 0. Furthermore, since both the boot program and the boot information are stored in one block 0 and 1, respectively, the memory use efficiency is high.
[0022]
Next, the description will be made in more detail by changing the language.
[0023]
The flash memory 10 has bootable blocks 0 and 1 and non-bootable blocks 2 to n in a memory cell 11. The bootable blocks 0 and 1 have areas 20 and 21 storing boot information, respectively. The boot information comparison unit 12 is connected to input a reset signal from the computer 20, generates addresses of the boot information 20 and 21 when the reset is released (that is, when the reset signal is not input), and stores the addresses. Read boot information and compare them. The comparison result of the boot information is output to the block selection signal switching unit 13 including two sets of selector circuits. The block selection signal switching unit 13 switches and outputs a block selection signal according to the comparison result of the boot information 20 and 21.
[0024]
FIG. 2 is a block diagram illustrating a configuration example of the bootable block 0. Areas 31 and 32 are provided in block 0 having a capacity of n words. The area 31 is an area for storing a boot program. The area 32 is an area for storing the boot information 20 set at an address that does not match the boot address output from the computer 30 and at an address that does not affect the operation of the boot program executed based on this boot address. . In this embodiment, one word is used as an area 32 for storing the boot information 20, and the other words are used as an area 31 for storing a boot program. Thus, one boot program and the corresponding boot information 20 are arranged in the same block 0, and are erased at the same time when erasing in block units. The configuration of the block 1 is the same as that of the block 0.
[0025]
In the flash memory 10, a block selection signal generator 15 and an intra-block address generator 16 are provided. When the computer 30 is booted, the boot information 20 and 21 are compared by the boot information comparison unit 12, and the address information from the computer 30 is converted by the block selection signal generation unit 15 according to a preset order, so that booting from an arbitrary block is possible. Like that.
[0026]
Assume that block 0 stores the boot program currently used. Here, when introducing a new boot program, after erasing all data in the block 1, a new program is written in the area 31, and when the writing is successful, the area 32 on the same block 1 is written. Then, the boot information 21 is selected so that the block 1 is selected as the boot. Thus, the next time the computer 30 starts up, the boot program of the rewritten block 1 is executed.
[0027]
On the other hand, when the rewriting fails during the boot program rewriting operation, the boot information 21 is in an erased state. Therefore, since the flash memory 10 is automatically arranged in a block arrangement before writing, an effect of preventing the computer 30 from being unable to start can be obtained.
[0028]
FIG. 3 is a flowchart showing an example of the operation of the flash memory 10. FIG. 4 is a chart showing an example of the block selection condition. FIG. 5 is an explanatory diagram showing a memory map. Hereinafter, the operation of the flash memory 10 will be described with reference to FIGS.
[0029]
In the memory cell 11, bit data is set to "1" by erasing. It is assumed that one word (4 bits) is assigned to the area 32 for storing boot information.
[0030]
When the computer 30 is started, first, the reset of the computer 30 is released (step S1). Then, the boot information comparison unit 12 outputs the address of the area 32 storing the boot information to the bootable blocks 0 and 1, and reads the respective boot information 20 and 21 (Steps S2 to S5). Subsequently, the two pieces of boot information 20 and 21 are compared in accordance with the block selection condition shown in FIG. 4, and the block in which "0" is written in the upper order is selected as the block to be booted (step S6), and the comparison result is obtained. , And outputs a control signal to the block selection signal switching unit 13 (step S7). If block 0 is selected as the boot program, the block selection signal switching unit 13 outputs the block selection signal as it is so that blocks 0 and 1 have a memory map in the order shown in FIG. 5A (step S8). ). Conversely, if block 1 is selected as the boot program, block selection signals are exchanged and output so that blocks 0 and 1 have a memory map in the order shown in FIG. 5B (step S9). In this way, the computer 30 is started by one of the boot programs of blocks 0 and 1 (steps S10 and S11).
[0031]
On the other hand, when the current boot program is stored in the block 0 and the new boot program is to be rewritten, the data is written after erasing all data in the block 1 to be rewritten. At this time, by erasing the block 1, the boot information 21 is erased together with the boot program. If all the boot programs have been normally written, data is written in the area 32 where the boot information 21 is stored such that bits higher than the block 0 become “0”. Thus, when the computer 30 is started next time, the rewritten block 1 is used as a boot program according to the conditions shown in FIG.
[0032]
However, if the writing fails during this series of writing operations, the boot information 21 is erased and all bits become "1". Therefore, the next time the computer 30 is started up, the block 0 that has not been rewritten is used as a boot program in accordance with the conditions shown in FIG.
[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 signal switching unit 43 are respectively n systems, so that n blocks can be arbitrarily set. They can be arranged on the memory map in order.
[0035]
The boot information is 4 bits, and the block having the boot information is 4 blocks. When the reset from the computer 30 is released, as in the first embodiment, the boot information comparison unit 42 sequentially outputs addresses to the boot information storage areas of all the blocks 0 to n and reads the boot information. A select signal is output to the block selection signal switching unit 43 in accordance with the boot selection condition shown in FIG. In this way, any of the n blocks 0 to n can be used as a boot program, and the n blocks can be arranged at any addresses.
[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 signal generation unit 15 and the intra-block address generation unit 16 so that the normal access memory map 55 is obtained. To do. On the other hand, at the time of accessing the boot information, the boot information is read and the boot information is written by expanding and switching commands such as block erase so that the memory map 56 at the time of the boot information access is obtained.
[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 flash memory 11 memory cell 12, 42 boot information comparing unit (block selecting means)
13, 43 block selection signal switching unit (block selection means)
14 Data control unit (block updating means)
15 Block selection signal generator 16 In-block address generator (in-block address generator)
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.
JP2002165280A 2002-06-06 2002-06-06 Method for selecting and updating boot program and flash memory using the same Pending JP2004013477A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (13)

* Cited by examiner, † Cited by third party
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