JP2007122151A - ブート制御装置およびブート制御方法 - Google Patents

ブート制御装置およびブート制御方法 Download PDF

Info

Publication number
JP2007122151A
JP2007122151A JP2005309858A JP2005309858A JP2007122151A JP 2007122151 A JP2007122151 A JP 2007122151A JP 2005309858 A JP2005309858 A JP 2005309858A JP 2005309858 A JP2005309858 A JP 2005309858A JP 2007122151 A JP2007122151 A JP 2007122151A
Authority
JP
Japan
Prior art keywords
boot
unit
register
control
state
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.)
Withdrawn
Application number
JP2005309858A
Other languages
English (en)
Inventor
Hiroyuki Saito
弘幸 齋藤
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.)
NEC Saitama Ltd
Original Assignee
NEC Saitama 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 Saitama Ltd filed Critical NEC Saitama Ltd
Priority to JP2005309858A priority Critical patent/JP2007122151A/ja
Publication of JP2007122151A publication Critical patent/JP2007122151A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】異常を生じたメモリを自動で更新することのできるブート制御装置を提供する。
【解決手段】同一内容のブートプログラムが格納されるFROM1、2と、FROM1、2からブートプログラムを読み出し、該読み出したブートプログラムにしたがってブート制御を実行するCPU3と、CPU3によるブートプログラムの読み出しを制御するブート制御部4とを有する。ブート制御部4は、CPU3によるブート制御の実行状態を保持するレジスタ部を有し、該レジスタ部の状態に応じてFROM1、2の更新を行う。
【選択図】図1

Description

本発明は、コンピュータを起動するためのブート制御を行うブート制御装置に関する。
コンピュータシステムでは、電源投入時やシステムリセット時に、ブート制御が実行される。通常、ブート制御に必要なプログラム(以下、ブートプログラム)は、不揮発性メモリ(例えば、FROM(Flash Read Only Memory))に格納されており、システムの起動またはリセットを行う際に、CPUがそのブートプログラムを不揮発性メモリから読み出して実行する。
最近では、ブート制御が可能な制御カードの1つとして、外部コンピュータから通信ネットワークを介して行われる遠隔ダウンロードによるブートプログラムの更新が可能な制御カードが提供されている。この種の制御カードでは、ブートプログラムの更新が正常に行われた場合は、更新されたブートプログラムでの起動が可能となる。しかし、操作ミスやプログラム更新中の停電等の事故により、ブートプログラムの更新が正常に行われず、ブートプログラムのデータ自体にデータ化けなどの異常が発生した場合は、制御カードを正常に起動することができなくなってしまう。
そこで、ブートプログラムを格納するメモリを二重化し、一方のメモリに不具合が生じた場合に、他方のメモリに切り替る方法が提案されている(特許文献1)。
特開2001−331325号公報
しかしながら、上述したメモリを二重化した従来のブート制御方法においては、以下のような問題がある。
メモリ自体に損傷がなく、格納されているブートプログラムにデータ化けなどの異常が発生しているだけであれば、そのメモリを更新することで、再び利用可能な状態に復旧することができる。しかし、従来のブート制御方法は、ブートプログラムに異常が生じたメモリに対して、ブートプログラムの更新を自動で行うようにはなっていない。このため、ユーザ自身が、異常を生じたメモリの復旧を行うための処理を行う必要がある。このようなメモリ復旧処理は、ユーザにとって面倒である。
本発明の目的は、上記問題を解決し、異常を生じたメモリを自動で更新することのできるブート制御装置を提供することにある。
上記目的を達成するため、本発明は、同一内容のブートプログラムが格納される第1および第2のメモリ部と、前記第1または第2のメモリ部からブートプログラムを読み出し、該読み出したブートプログラムにしたがってブート制御を実行する制御部と、前記制御部によるブートプログラムの読み出しを制御するブート制御部とを有し、前記ブート制御部は、前記制御部によるブート制御の実行状態を保持するレジスタ部を有し、該レジスタ部に、前記第1のメモリ部に格納されたブートプログラムに基づくブート制御が異常とされ、前記第2のメモリ部に格納されたブートプログラムに基づくリブート制御が正常に行われたことを示す第1の状態が保持されている場合は、前記第2のメモリ部に格納されたブートプログラムを用いて前記第1のメモリ部を更新し、前記レジスタ部に、前記第2のメモリ部に格納されたブートプログラムに基づくブート制御が異常とされ、前記第1のメモリ部に格納されたブートプログラムに基づくリブート制御が正常に行われたことを示す第2の状態が保持されている場合には、前記第1のメモリ部に格納されたブートプログラムを用いて前記第2のメモリ部を更新するように構成したことを特徴とする。
上記の構成によれば、第1および第2のメモリ部のうちの一方に異常が生じると、その状態がレジスタ部に反映される。そして、レジスタ部の状態に基づいて、正常なメモリ部のプログラムデータを用いて、異常が生じたメモリ部のプログラムが自動更新される。
本発明によれば、異常が生じたメモリ部のプログラムを自動更新することができるので、ユーザ自身がメモリの復旧処理を行う必要がない。よって、ユーザに対する負担を軽減することができる。
次に、本発明の実施形態について図面を参照して説明する。
図1は、本発明の一実施形態である制御カードの構成を示すブロック図である。図1を参照すると、本実施形態の制御カードは、ブートプログラムデータ格納用の不揮発性メモリ(以下、FROMと称す)1、2と、CPU3と、ブートプログラムデータの読み出し先の切り替えやリブート動作を制御するブート制御部4と、起動に失敗したことを視覚的に表示するためのLED5とから構成されている。
CPU3、FROM1、2およびブート制御部4のそれぞれは、バスを介して相互に接続されている。CPU3から見たFROM1とFROM2のメモリアドレスは同一とされている。CPU3は、どちらか一方のFROMにバスを介してアクセスすることが可能とされ、同時に両方のFROMへアクセスすることはできない。CPU3は、FROM1、2のいずれかへアクセスする場合は、FROMを指定するためのチップセレクト(CS)信号をブート制御部4に供給する。また、CPU3は、FROMからのプログラムの読み出しが正常に行われた場合は、その旨を示すACT信号を出力する。
ブート制御部4は、CPU3からCS信号が供給されると、ブートプログラムデータの読み出し先であるFROMを決定して、その決定したFROMに対してCS信号を送出する。ブートプログラムデータの読み出し先をFROM1とした場合は、ブート制御部4は、CS1信号をFROM1へ送出する。ブートプログラムデータの読み出し先をFROM2とした場合は、ブート制御部4は、CS2信号をFROM2へ送出する。また、ブート制御部4は、CPU3が起動したことを示すACT信号が有効となった時点で、制御カードが正常に起動したと判断する。
CPU3やブート制御部4には、電源ON時に、外部装置から初期化用の信号として、制御カードを初期化するリセット信号(以下、パワーオンリセット信号)と、起動後に任意のタイミングで制御カードを初期化するリセット信号(以下、ローカルリセット信号)が供給されている。本実施形態では、ブート制御部4がリブート動作を制御する都合上、ローカルリセット信号をドライブするようになっており、そのため、ローカルリセット信号は双方向に送受信される信号とされている。また、ブート制御部4は、パワーオンリセット信号により全てが初期化され、ローカルリセット信号により一部が初期化されるようになっている。
なお、FROM1およびFROM2のいずれにおいてもプログラムのブートに失敗した場合には、CPU3は、正常に起動できなくなる。この場合には、ブート制御部4は、CPU3が起動に失敗したことを報知するために、LED5の点灯制御を行う。LED5は、別の発光手段、例えばレーザダイオードに代表される半導体レーザに置き換えることができる。
図2に、ブート制御部4の構成を示す。図2を参照すると、ブート制御部4は、ブート制御に必要な各種設定や状態監視を行うためのレジスタ部6と、CPU3が起動するのに必要とする時間をカウントすることが可能なブートタイマ7と、入力されたクロックの分周や断検出を行うクロック機能部8と、FROM1およびFROM2のどちらかを選択するFROM選択部9とから構成される。
レジスタ部6は、CPU3のブート状態やメモリ選択状態などを監視するステータスレジスタと、ステータスレジスタを初期化するクリアレジスタと、ブートタイマ7のタイムアウト値を設定することができるタイマレジスタとを有する。ステータスレジスタおよびタイマレジスタは、パワーオンリセット信号により初期化されるが、ローカルリセット信号では初期化されない。これは、ローカルリセット信号によるリブート制御を行うためである。
図3に、ステータスレジスタの内容を示す。図3を参照すると、ステータスレジスタは、FROM1およびFROM2の各ブート状態(正常状態を「0」、異常状態を「1」とする)、入力クロック状態(正常状態を「0」、異常状態を「1」とする)、リブート状態(「なし」の場合を「0」、「あり」の場合を「1」とする)、FROM選択状態(FROM1を選択している状態を「0」、FROM2を選択している状態を「1」とする)といった各状態を示すための項目が設けられている。ステータスレジスタでは、制御カードのブート状態の確認、ブートタイマ7のタイムアウト値の設定、FROM選択部9の制御、クロック機能部8の断検出などの各状態の監視結果に基づいて、それぞれの項目の値が設定される。各項目のデフォルト値は、「0」とされている。ステータスレジスタのアドレスは、「0x0000」である。
図4に、クリアレジスタの内容を示す。図4を参照すると、クリアレジスタでは、データ「0x09」(下2桁は16進数)をライトすることで、ステータスレジスタを初期化するようになっている。クリアレジスタのアドレスは「0x0001」とされている。ただし、ステータスレジスタのFROMSELビットのみは、このクリアレジスタでは初期化されない。このクリアレジスタの状態は任意にクリアすることができる。
図5に、タイマレジスタの内容を示す。図5を参照すると、タイマレジスタは、上位のタイマ(アドレスは「0x0002」)と下位のタイマ(アドレスは「0x0003」)を合わせて、「0x0000」から「0xFFFF」(下四桁は16進数)まで設定が可能とされている。ここで、「0x0000」および「0xFFFF」はそれぞれ十進法で「1」および「65536」を表す。クロック機能部8から供給されるクロックが1kHzで、タイマレジスタ値が「0x00FF」であった場合は、ブートタイマ7のタイムアウト値は、
256(タイマ値)×1ms(1kHz)=256ms
となる。このタイマレジスタは、パワーオンリセット信号により初期化される。また、タイマレジスタは、所定の条件が整ったところで、リブート制御するためのローカルリセット信号を出力する。
ブートタイマ7は、クロック機能部8から供給されるクロックにて動作するタイマであり、ローカルリセット信号の解除によりカウント動作をスタートし、CPU3からのACT信号が有効(「1」は起動状態を示す)になった時点またはタイマがタイムアウトした時点でカウント動作を停止する。ブートタイマ7のタイムアウト値は、レジスタ部6のタイマレジスタにて設定することができる。タイムアウトした場合は、その旨を示す情報がレジスタ部6やFROM選択部9に通知される。FROM1からのブート処理とFROM2からのブート処理は、同時に行なわれることはないので、ブートタイマ回路としては1系統あれば十分である。本実施形態では、1系統のブートタイマ回路を想定している。
クロック機能部8は、外部から入力されるクロックを分周してブートタイマ7に供給したり、外部から入力されるクロックの断検出を行ったりする。ブートタイマ7の設定範囲は決まっている(図5の例では、「1」から「65536」の範囲とされている)ため、分周されたクロックの速度により同じカウント数でもタイムアウト時間が変わってくる。例えば、分周されたクロックが1kHzでタイマレジスタ値が256であった場合は、タイムアウト時間は256msとなるが、同じタイマ値でも、分周クロックが10kHzであった場合には、タイムアウト時間は25.6msとなる。入力されるクロック状態は、レジスタ部6のステータスレジスタに反映される。本実施形態では、CPU3の正常起動を期待するものであるため、入力クロックはCPU3の動作クロックと同じであることが望ましい。通常、CPU3の動作クロックは高速であるので、クロック機能部8の分周回路規模を小さくしたい場合は、入力クロックをCPU3の動作クロックと異なるようにしてもよい。本実施形態では、入力クロックはCPU3の動作クロックと同じとする。
FROM選択部9は、FROM1とFROM2のどちらかを選択するものであって、CPU3からのCS信号を受信すると、レジスタ部6からの指示により、CS1信号またはCS2信号のいずれかの出力を選択する。また、FROM選択部9は、ブートタイマ7からタイムアウト状態の通知を受けると、それまで選択していたFROMとは異なる側のFROMへのCS信号を選択して、リブートすることをレジスタ部6へ通知する。
次に、本実施形態の制御カードにおける電源投入時の立ち上げ動作について説明する。図6は、電源投入された場合の立ち上げ動作の手順を示すフローチャートである。以下、図6を用いて、電源投入された場合の立ち上げについて説明する。
電源投入後、パワーオンリセット信号が解除されると(ステップ100)、FROM選択部9は、デフォルトでCS1信号を有効、CS2信号を無効として、CPU3に対してFROM1からプログラムを読み出すことを許可する(ステップ101)。ローカルリセット信号が解除されると(ステップ102)、レジスタ部6のタイマレジスタの初期タイムアウト値に従いブートタイマ7によるカウント動作がスタートする(ステップ103)。
ACT信号が有効(「1」は起動状態を示す)になれば(ステップ104、NO)、CPU3がFROM1からのブート処理に成功したことを示すため、ブート制御部4は、ブートタイマ7の動作をストップして当該処理を終える(ステップ105)。ACT信号が有効とならず(ステップ104、YES)、ブートタイマ7がタイムアウトした場合(ステップ106、YES)、ブート制御部4は、ブートタイマ7の動作をストップして(ステップ107)、ステータスレジスタのリブートフラグを確認する(ステップ108)。
リブートフラグが「0」の場合(ステップ108、YES)は、ブート制御部4は、ステータスレジスタにFROM1のブート異常を反映させる(ステップ109)。次いで、ブート制御部4は、CS1信号を無効、CS2信号を有効として(ステップ110)、CPU3がFROM2からプログラムを読み出すことを許可して、リブートフラグ(この場合のフラグは「1」)を立てる(ステップ111)。次いで、ブート制御部4は、FROM2からのリブートが必要となったので、ローカルリセット信号を出力して(ステップ112)、CPU3が再度ブート処理に入るように促す。
ステップ112でのローカルリセット信号の出力後、ステップ102に戻り、ローカルリセット信号が解除される。そして、ステップ103にてブートタイマ7が起動され、ステップ104で、ACT信号が有効になった否かの確認が行われる。ACT信号が有効になった場合は、ステップ105のブートタイマストップの処理に移行した後、当該処理を終了する。ACT信号が有効にならずにタイムアウトした場合は、ステップ107のブートタイマストップ処理に移行する。その後、ステップ108で、ステータスレジスタのリブートフラグを確認する。この場合は、リブートフラグは「1」であるので、ブート制御部4は、ステータスレジスタにFROM2のブート異常を反映させる(ステップ113)。そして、ブート制御部4は、FROM1とFROM2のどちらからのブートも失敗となり、CPU3が正常起動していないために、LED5を点灯する(ステップ114)。CPU3が正常起動せず、ブート制御部4の各種レジスタへのアクセスができなくなる場合は、ハードウェアにてLED5の点灯制御が行われるようにしてもよい。
次に、本実施形態の制御カードにおいて行われるローカルリセットによる立ち上げ動作について説明する。図7は、ローカルリセットによる立ち上げ動作の手順を示すフローチャートである。以下、図7を用いて、ローカルリセットによる立ち上げ動作について説明する。
電源投入により起動した制御カードは、アプリケーションにもよるが、電源投入状態で再起動をかけたりすることがある。例えば、ダウンロードなどによりデータを更新する場合や障害復旧のための再起動を行う場合が、そのような再起動に相当する。この再起動では、前提として、CPUは一度正常に起動しているといえる。
ローカルリセットを実施する前に、リブートフラグを初期化する目的でクリアレジスタを使用することが望ましいが、必ずしもクリアレジスタを使用する必要はない。仮に、リブートフラグをクリアしておけば、パワーオンリセットによる起動と同じように、FROM1とFROM2の二重化によるブートを行うことができる。この場合は、後述するカード診断のしやすさに影響を与えるのみである。使用するアプリケーションに応じて、クリアレジスタを使用するようなソフトウェアの作りを考えることも可能である。以下のローカルリセットによる立ち上げ動作の説明では、特にクリアレジスタのことには触れずに動作説明を行う。
ローカルリセット信号が解除されると(ステップ200)、レジスタ部6のタイマレジスタのタイムアウト値に従いブートタイマ7をスタートさせる(ステップ201)。ここで、タイムアウト値はローカルリセット前にCPU3から設定値を変更することが可能である。
次いで、ブート制御部4は、ACT信号が有効(「1」は起動状態を示す)になれば(ステップ202、NO)、CPU3がブート処理に成功したことを示すため、ブートタイマ7の動作をストップして当該処理を終える(ステップ203)。ACT信号が有効とならず(ステップ202、YES)、ブートタイマ7がタイムアウトした場合(ステップ204、YES)は、ブート制御部4は、ブートタイマ7の動作をストップし(ステップ205)、リブートフラグの状態を確認する(ステップ206)。
リブートフラグが立っていれば、すなわちフラグの状態が「1」であれば(ステップ206、NO)、ブート制御部4は、FROM1とFROM2のどちらからのブートも失敗とみなしてLED5を点灯し(ステップ207)、当該処理を終了する。リブートフラグが立っていない場合(ステプ206、YES)は、ブート制御部4は、CS1信号の有効の有無を確認する(ステップ208)。
ステップ208の確認でCS1信号が有効であれば(ステップ208、YES)、ブート制御部4は、ステータスレジスタにFROM1のブート異常を反映し(ステップ209)、CS1信号を無効、CS2信号を有効とし(ステップ210)、CPU3がFROM2からプログラムを読み出すことを許可して、リブートフラグを立てる(ステップ211)。
反対に、ステップ208の確認でCS1信号が無効で、もともとCS2信号が有効であったならば(ステップ208、NO)、ブート制御部4は、ステータスレジスタにFROM2のブート異常を反映し(ステップ213)、CS1信号を有効、CS2信号を無効とし(ステップ214)、CPU3がFROM1からプログラムを読み出すことを許可して、リブートフラグを立てる(ステップ211)。リブートが必要となったので、ブート制御部4は、ローカルリセット信号を出力し(ステップ212)、CPU3が再度ブート処理に入るように促す。
次に、本実施形態の制御カードにおいて行われるブートプログラムの更新処理について説明する。図8は、ブートプログラムの更新処理の基本的な手順を示すフローチャートである。以下、図8を用いて、ブートプログラムの更新処理の基本的な手順を説明する。
ブートプログラムを更新するには、CPU3が正常に起動していることが前提とされる。本実施形態では、CPU3から見たFROM1、2のアドレスは同一であり、CPU3はFROM1とFROM2へ同時にアクセスすることはできない。このため、FROMへのアクセスには、必ずソフトウェアによるメモリ指定が必要となる。
ブート制御部4は、FROM1の更新か否か(ソフトウェアによりFROM1が指定されたか否か)を判断する(ステップ300)。FROM1の更新である場合(ステップ300、YES)は、ブート制御部4は、ステータスレジスタのFROMSELビットに0を設定し(ステップ301)、FROM1のプログラムを、使用する不揮発性メモリの仕様にしたがって更新する(ステップ302、303)。FROM2の更新である場合(ステップ300、NO)は、ブート制御部4は、ステータスレジスタのFROMSELビットに1を設定し(ステップ304)、FROM2のプログラムを、使用する不揮発性メモリの仕様にしたがって更新する(ステップ305、306)。
次に、上記ブートプログラムの更新処理について、さらに具体的に説明する。ブートプログラムの更新には、外部システムからのメッセージ受信を契機とした遠隔操作によるプログラムの更新と、定期的にステータスレジスタの状態をチェックして自律的にプログラムの更新を行う自律更新と、ダウンロードによるプログラムのバージョンアップの3つがあり、いずれの更新処理も、ソフトウェア(プログラム)により実現される。ここでは、通常CPU3が動作するのに必要なRAM(不図示)を周辺に備えていることを前提に、このRAM上で、FROM1、2に格納されているブートプログラムデータや外部装置からのプログラムデータの展開を行うことが可能とされている。
まず、遠隔操作によるブートプログラムの更新処理を説明する。図9に、ブート制御部4において行われる、遠隔操作によるブートプログラムの更新処理の手順を示す。
図9を参照すると、まず、外部システムからFROM更新要求メッセージを受信したか否かを判断する(ステップ400)。更新要求メッセージを受信した場合(ステップ400、YES)は、続いて、更新要求メッセージがFROM1の更新要求であるか否かを判断する(ステップ401)。
ステップ401で、FROM1の更新であると判断した場合(ステップ401、YES)は、続いて、FROM1が異常な状態か否かを判断する(ステップ402)。このステップ402で、FROM1が異常な状態であると判断した場合(ステップ402、YES)は、ステータスレジスタのFROMSELに「1」を設定し(ステップ403)、FROM2のブートプログラムデータをRAM上に展開する(ステップ404)。次いで、ステータスレジスタのFROMSELに「0」を設定し(ステップ405)、RAM上に展開したブートプログラムデータでFROM1の更新を行う(ステップ406)。その後、クリアレジスタに「0x09」を書き込む(ステップ407)。
ステップ402で、FROM1が正常な状態であると判断した場合(ステップ402、NO)は、ステータスレジスタのFROMSELに「0」を設定し(ステップ408)、FROM1のブートプログラムデータをRAM上に展開する(ステップ409)。そして、RAM上に展開したブートプログラムデータでFROM1を更新し(ステップ410)、その後、ステップ407に移行して、クリアレジスタに「0x09」を書き込む。
ステップ401で、FROM1の更新でない、すなわち、FROM2の更新であると判断した場合(ステップ401、NO)は、続いて、FROM2が異常な状態か否かを判断する(ステップ411)。このステップ411で、FROM2が異常な状態であると判断した場合(ステップ411、YES)は、ステータスレジスタのFROMSELに「0」を設定し(ステップ412)、FROM1のブートプログラムデータをRAM上に展開する(ステップ413)。次いで、ステータスレジスタのFROMSELに「1」を設定し(ステップ414)、RAM上に展開したブートプログラムデータでFROM2の更新を行う(ステップ415)。その後、ステップ407に移行して、クリアレジスタに「0x09」を書き込む。
ステップ411で、FROM2が正常な状態であると判断した場合(ステップ411、NO)は、ステータスレジスタのFROMSELに「1」を設定し(ステップ416)、FROM2のブートプログラムデータをRAM上に展開する(ステップ417)。そして、RAM上に展開したブートプログラムデータでFROM2を更新し(ステップ418)、その後、ステップ407で、クリアレジスタに「0x09」を書き込む。
上記のプログラム更新処理において、ステップ402およびステップ411のFROMの異常の有無は、ステータスレジスタの状態に基づいて行う。具体的には、FROM1、2の各ブート状態を示すブートフラグの値の組み合わせと、リブートフラグの値との関係から、FROMの異常を判断する。図10に、FROM1、2の各ブート状態を示すブートフラグの値の組み合わせと、リブートフラグの値との関係を示す。
図10に示すように、本実施形態では、第1乃至第3の状態を取り得る。第1の状態は、FROM1、2のブート状態が共に「0」で、リブートフラグの値が「0」の状態である((FROM2:FROM1)=(0:0)かつREBOOTFLAG=0)。第1の状態である場合は、1回目のブート制御(FROM1からのブートプログラムの読み出し)で正常起動されたものと判断する。なお、第1の状態の場合は、電源投入による起動であれば、FROM1によるブート処理は正常であるが、FROM2によるブート処理が正常に行われるかは不明である。ローカルリセットによる起動であれば、FROMSELで選択されたFROMからのブートが正常ではあるが、選択されていないFROMからのブートが正常に行われるかは不明である。仮に、ブートしていない側のFROMによるブートの正常性を確認したい場合は、FROMSELによりブートしていない側のFROMを選択してからローカルリセットによる再起動を実施すればよい。
第2の状態は、FROM1のブート状態が「0」、FROM2のブート状態が「1」、リブートフラグの値が「1」の状態である((FROM2:FROM1)=(0:1)かつREBOOTFLAG=1)。第2の状態の場合は、FROM1を用いたブート処理が異常となり、FROM2を用いたリブート処理が正常に起動したと判断する。
第3の状態は、FROM1のブート状態が「1」、FROM2のブート状態が「0」、リブートフラグの値が「1」の状態である((FROM2:FROM1)=(1:0)かつREBOOTFLAG=1)。第3の状態の場合は、FROM2を用いたブート処理で異常となり、FROM1を用いたリブート処理で正常に起動したと判断する。
なお、FROM1、2のブート状態が共に「1」の状態((FROM2:FROM1)=(1:1))は、CPU3が正常に起動していないことを示す。この場合は、ステータスレジスタの状態を確認することさえもできないが、ハードウェア的にLED5が点灯されるので、FROM1、FROM2の両方のブートが異常であったことがわかる。場合によっては、CPU3の故障も考えられる。
次に、ブートプログラムの自律更新について説明する。ブート制御部4では、ソフトウェアにより時間管理が行われており、ある時刻になったところで、ステータスレジスタの状態確認(上述の第1乃至第3の状態の確認)が行われる。このステータスレジスタの状態確認処理で、FROM1、2のいずれかによるブート処理の異常終了が確認された場合、すなわち第2または第3の状態が確認された場合は、ブート制御部4は、その異常終了したFROMに対してブートプログラムの更新処理を行う。例えば、FROM1が異常終了している場合(第2の状態の場合)は、図9のステップ403〜407の手順でFROM1の更新処理を行う。反対に、FROM2が異常終了している場合(第3の状態の場合)は、図9のステップ412〜415およびステップ407の手順でFROM2の更新処理を行う。
次に、ダウンロードによるバージョンアップを行う際のブートプログラムの更新処理を説明する。図11に、バージョンアップによるブートプログラムの更新処理の手順を示す。
図11を参照すると、外部システムからダウンロードしたプログラムデータをRAM上に展開する(ステップ500)。次いで、ソフトウェアにより指定されたプログラム更新対象であるFROMがFROM1であるか否かが判断される(ステップ501)。ステップ501で、プログラム更新対象がFROM1であると判断された場合(ステップ501、YES)は、ステータスレジスタのFROMSELに「0」を設定し(ステップ502)、ステップ500でRAM上に展開したプログラムでFROM1のブートプログラムデータを更新する(ステップ503、504)。その後、クリアレジスタに「0x09」を書き込む(ステップ505)。
ステップ501で、FROM1の更新でない、すなわち、FROM2の更新であると判断した場合(ステップ501、NO)は、ステータスレジスタのFROMSELに「1」を設定し(ステップ506)、ステップ500でRAM上に展開したプログラムでFROM2のブートプログラムデータを更新する(ステップ507、508)。その後、ステップ505に移行し、クリアレジスタに「0x09」を書き込む。
以上説明した本実施形態のブート制御装置によれば、CPU3が読み出すブートプログラムを完全二重化し、リブート制御を行うことで再起動を行うようになっているので、ダウンロードによる更新中の事故や部品故障による制御カードの起動失敗の頻度が減ることが期待できる。
また、ステータスレジスタ中に、各FROM1、2からのブート状態を監視できる部分と、リブートしたかどうかを示すリブートフラグを用意したので、ステータスレジスタの状態を確認することで、どの段階でブートに失敗したかを特定することができる。このように、ブートに失敗した原因となる部分を容易に特定することができる。
さらに、CPU3から見たFROM1、2のメモリアドレスを同一とし、FROMSELにより、どちらか1つのFROMに対して、バスアクセスを許容する構成としているため、ダウンロードなどによりブートプログラムを更新する際に同時に2つのFROMを壊さないようにすることができる。
さらに、CPU3が動作できない場合には、ハードウェア的にLEDが点灯するようになっているため、万が一、FROM1、2からのブートがともに失敗した場合でも、FROM1、2の異常を容易に判断することができる。
さらに、CPU3のブート処理時間のタイムアウトをタイマレジスタにより調整することができるので、CPU3の起動にかかる時間のバラツキを吸収することができる。
(他の実施形態)
図12は、本発明の他の実施形態である制御カードの構成を示すブロック図である。図12を参照すると、この制御カードは、FROM100、CPU101、ブート制御部102およびLED103からなり、FROM1、2に代えてFROM100が設けられた以外は、図1に示した構成と同じものである。FROM100は、FROM1、2に比べて2倍のメモリ容量を有する。FROM100に接続されるアドレスピンのうち最上位アドレス1ビットを意図的に制御することにより、1つの不揮発性メモリ内に2つのエリアを確保し、それぞれのエリアに同じプログラムデータを格納する。
図13の(a)に、FROM独立型のイメージを示し、図13の(b)に、FROM分割型のイメージを示す。FROM独立型は、図1に示したFROM1、2に対応するメモリ形態であり、FROM1、2のそれぞれで、アドレス「0x0000」〜「0x7FFF」までのメモリ領域を有する。これに対して、FROM分割型の場合は、1つのFROM上で、アドレス「0x0000」〜「0x7FFF」の第1のメモリ領域(FROM1に相当する領域)と、アドレス「0x8000」〜「0xFFFF」の第2のメモリ領域(FROM2に相当する領域)とを有する。FROM100は、図13の(b)に示したFROM分割型のメモリである。
CPU101から見たFROM100のメモリアドレスに対応するメモリ容量は、FROM100の容量の半分である。FROM100へ接続されるアドレスピンのうち、最上位アドレス(ADR信号)のみがブート制御部102に接続される。ブート制御部102からADR信号を制御することで、ちょうど1つのFROMを2つのエリア(FROM1エリアとFROM2エリア)に分けて使用することが可能となり、CPU101は、同時に2つのエリアにアクセスすることはできない。また、CPU101が起動したことを示すACT信号が、CPU101からブート制御部102へ供給されており、ACT信号が有効となった時点で、ブート制御部102は制御カードが正常起動したと判断する。
CPU101およびブート制御部102には、初期化するための信号として、パワーオンリセット信号とローカルリセット信号が供給されている。パワーオンリセット信号の供給により、制御カードの電源ON時に、各機能部が初期化される。ローカルリセット信号の供給により、制御カード起動後に、各機能部を任意に初期化することができる。
本実施形態においても、ブート制御部102がリブート動作を制御する都合上、ローカルリセット信号をドライブするので、ローカルリセット信号は双方向信号となっている。また、ブート制御部102は、パワーオンリセット信号では全てが初期化されるのに対し、ローカルリセット信号では一部が初期化される。
また、万が一、FROM1エリアおよびFROM2エリアのどちらでもプログラムのブートに失敗した場合には、CPU101は正常に起動できなくなる。この場合には、ブート制御部102がLED103を点灯することにより、CPU101が起動に失敗したことを視覚的に訴えるものとする。
図14に、ブート制御部102の概略構成を示す。図14を参照すると、ブート制御部102は、ブート制御に必要な各種設定や状態監視を行うレジスタ部104と、CPU101が起動するのに必要とする時間をカウントできるブートタイマ105と、入力されたクロックの分周や断検出を行うクロック機能部106と、FROM1エリアおよびFROM2エリアのどちらかを選択するFROM選択部107から構成される。
レジスタ部104は、CPU101のブート状態やメモリ選択状態などを監視するステータスレジスタと、ステータスレジスタを初期化するクリアレジスタと、ブートタイマ105のタイムアウト値を設定できるタイマレジスタとを有する。これらステータスレジスタ、クリアレジスタ、タイマレジスタはそれぞれ、図3、図4、図5に示したレジスタと同様の構成のものである。ただし、図3のステータスレジスタのFROMSELビットについては、0=ADR信号が0(FROM1エリアを選択)、1=ADR信号が1(FROM2エリアを選択)という読み替えをおこなう必要がある。ステータスレジスタとタイマレジスタは、パワーオンリセット信号により初期化されるが、ローカルリセット信号では初期化されない。これはローカルリセット信号によるリブート制御を行うためである。
ステータスレジスタは、制御カードのブート状態の確認、ブートタイマ105のタイムアウト値の設定、FROM選択部107の制御、クロック機能部106の断検出の状態監視を行う。クリアレジスタは、ステータスレジスタを初期化するためのレジスタで、任意に状態をクリアすることができる。タイマレジスタは、ブートタイマ105のタイムアウト値を設定する。また、リブート制御するためのローカルリセット信号の出力についても、条件が整ったところで実施する。
ブートタイマ105は、クロック機能部106から供給されるクロックにて動作するタイマであり、ローカルリセット信号の解除によりカウント動作をスタートし、CPU101からのACT信号が有効(1で起動状態を示す)もしくはタイマがタイムアウトすると、カウント動作をストップする。ブートタイマ105のタイムアウト値は、レジスタ部104のタイマレジスタにて設定することができ、タイムアウトしたという情報はレジスタ部104やFROM選択部107に通知される。
FROM1エリアからのブート処理とFROM2エリアからのブート処理は同時に行なわれることはないので、ブートタイマ回路としては1系統あれば十分である。本実施形態では、1系統のブートタイマ回路を想定している。
クロック機能部106は、外部から入力されるクロックを分周してブートタイマ105に供給したり、外部から入力されるクロックの断検出を行ったりする。ブートタイマ105の設定可能な範囲は決まっている(1から65536まで)ため、分周されたクロックの速度により同じカウント数でも時間が変わってくる。入力されるクロック状態は、レジスタ部104のステータスレジスタに反映される。
本実施形態では、CPU101の正常起動を期待するものであるため、入力クロックは、CPU101の動作クロックと同じであることが望ましい。ただし、通常、CPU101の動作クロックは高速であるので、クロック機能部106の分周回路規模を小さくしたい場合は、CPU101の動作クロックと同じでなくともよい。
FROM選択部107は、FROM1エリアとFROM2エリアのどちらかを選択するものであって、レジスタ部104からの指示により、FROM100の最上位アドレスに接続されるADR信号を制御する。また、FROM選択部107は、ブートタイマ105からのタイムアウト状態の通知を受けると、それまで選択していたFROMエリアとは異なる側のFROMエリアを選択し、リブートすることをレジスタ部104へ通知する。
次に、本実施形態の制御カードにおける電源投入時の立ち上げ動作について説明する。図15は、電源投入された場合の立ち上げ動作の手順を示すフローチャートである。以下、図15を用いて、電源投入された場合の立ち上げについて説明する。
電源投入後、パワーオンリセット信号が解除されると(ステップ600)、FROM選択部107は、デフォルトでADR信号=0とし(ステップ601)、CPU101に対してFROM1エリアからプログラムを読み出すことを許可する。
ローカルリセット信号が解除されると(ステップ602)、ブート制御部102は、レジスタ部104のタイマレジスタの初期タイムアウト値に従いブートタイマ105をスタートさせる(ステップ603)。ACT信号が有効(「1」は起動状態を示す)になれば(ステップ604、NO)、CPU101がFROM1エリアからのブート処理に成功したことを示すため、ブート制御部102は、ブートタイマ105の動作をストップし(ステップ605)、当該処理を終える。
ACT信号が有効とならず(ステップ604、YES)、ブートタイマ105がタイムアウトした場合(ステップ606、YES)は、ブート制御部102は、ブートタイマ105の動作をストップし(ステップ607)、リブートフラグが「0」か否かを確認する(ステップ608)。
リブートフラグが「0」であることを確認した場合(ステップ608、YES)は、ブート制御部102は、ステータスレジスタにFROM1エリアのブート異常を反映する(ステップ609)。その後、ブート制御部102は、ADR信号=1とし(ステップ601)、CPU101に対してFROM2エリアからプログラムを読み出すことを許可して、リブートフラグを立てる(ステップ611)。FROM2エリアからのリブートが必要となったので、ブート制御部102は、ローカルリセット信号を出力して(ステップ612)、CPU101が再度ブート処理に入るように促す。
ステップ612でのローカルリセット信号の出力後、ステップ602に戻り、ローカルリセット信号が解除される。そして、ステップ603にてブートタイマ105が起動され、ステップ604で、ACT信号が有効になった否かの確認が行われる。ACT信号が有効になった場合は、ステップ605のブートタイマストップの処理に移行した後、当該処理を終了する。ACT信号が有効にならずにタイムアウトした場合は、ステップ607のブートタイマストップ処理に移行する。その後、ステップ608で、ステータスレジスタのリブートフラグを確認する。この場合は、リブートフラグは「1」であるので、ブート制御部102は、ステータスレジスタにFROM2エリアのブート異常を反映させる(ステップ613)。そして、ブート制御部102は、FROM1エリアとFROM2エリアのどちらからのブートも失敗となり、CPU101が正常起動していないために、LED5を点灯する(ステップ614)。CPU101が正常起動せず、ブート制御部102の各種レジスタへのアクセスができなくなるので、LED5の点灯制御をハードウェアにて行うようにしてもよい。
次に、本実施形態の制御カードにおいて行われるローカルリセットによる立ち上げ動作について説明する。図16は、ローカルリセットによる立ち上げ動作の手順を示すフローチャートである。以下、図16を用いて、ローカルリセットによる立ち上げ動作について説明する。
電源投入により起動した制御カードは、アプリケーションにもよるが、電源投入状態で再起動をかけたりすることがある。例えば、ダウンロードなどによりデータを更新する場合や障害復旧のための再起動を行う場合が、そのような再起動に相当する。この再起動では、前提として、CPUは一度正常に起動しているといえる。
ローカルリセットを実施する前に、リブートフラグを初期化する目的でクリアレジスタを使用することが望ましいが、必ずしもクリアレジスタを使用する必要はない。仮に、リブートフラグをクリアしておけば、パワーオンリセットによる起動と同じように、FROM1エリアとFROM2エリアの二重化によるブートを行うことができる。この場合は、後述するカード診断のしやすさに影響を与えるのみである。使用するアプリケーションに応じて、クリアレジスタを使用するようなソフトウェアの作りを考えることも可能である。以下のローカルリセットによる立ち上げ動作の説明では、特にクリアレジスタのことには触れずに動作説明を行う。
ローカルリセット信号が解除されると(ステップ700)、レジスタ部104のタイマレジスタのタイムアウト値に従いブートタイマ105をスタートさせる(ステップ701)。ここで、タイムアウト値はローカルリセット前にCPU101から設定値を変更することが可能である。
次いで、ブート制御部102は、ACT信号が有効(「1」は起動状態を示す)になれば(ステップ702、NO)、CPU101がブート処理に成功したことを示すため、ブートタイマ105の動作をストップし(ステップ703)、当該処理を終える。ACT信号が有効とならず(ステップ702、YES)、ブートタイマ105がタイムアウトした場合(ステップ704、YES)は、ブート制御部102は、ブートタイマ105の動作をストップし(ステップ705)、リブートフラグの状態を確認する(ステップ706)。
リブートフラグが立っていれば、すなわちフラグの状態が「1」であれば(ステップ706、NO)、ブート制御部102は、FROM1エリアとFROM2エリアのどちらからのブートも失敗とみなしてLED103を点灯し(ステップ707)、当該処理を終了する。リブートフラグが立っていない場合(ステプ706、YES)は、ブート制御部102は、ADR信号の状態を確認する(ステップ708)。
ステップ708の確認でADR信号=0であれば(ステップ708、YES)、ブート制御部102は、ステータスレジスタにFROM1エリアのブート異常を反映した後(ステップ709)、ADR信号を=1とし(ステップ710)、CPU101がFROM2エリアからプログラムを読み出すことを許可して、リブートフラグを立てる(ステップ711)。
反対に、ステップ708の確認でADR信号が=1であったならば(ステップ708、NO)、ブート制御部102は、ステータスレジスタにFROM2エリアのブート異常を反映した後(ステップ713)、ADR信号を=0とし(ステップ714)、CPU101がFROM1エリアからプログラムを読み出すことを許可して、リブートフラグを立てる(ステップ711)。リブートが必要となったので、ブート制御部102は、ローカルリセット信号を出力し(ステップ712)、CPU101が再度ブート処理に入るように促す。
次に、本実施形態の制御カードにおいて行われるブートプログラムの更新処理について説明する。ブートプログラムを更新するには、CPU101が正常に起動していることが前提とされる。本実施形態では、CPU101から見たFROM1エリアとFROM2エリアのアドレスは同一であり、CPU102はFROM1エリアとFROM2エリアへ同時にアクセスすることはできない。このため、FROMエリアへのアクセスには、必ずソフトウェアによるメモリ指定が必要となる。
FROM1エリアのプログラムを更新するには、ステータスレジスタのFROMSELビットに0を設定し、使用する不揮発性メモリの仕様にしたがって更新処理を実施する。また、FROM2エリアのプログラムを更新するにはステータスレジスタのFROMSELビットに1を設定し、使用する不揮発性メモリの仕様にしたがって更新処理を実施する。
上記ブートプログラムの更新処理も、前述したような、外部システムからのメッセージ受信を契機とした遠隔操作によるプログラムの更新と、定期的にステータスレジスタの状態をチェックして自律的にプログラムの更新を行う自律更新と、ダウンロードによるプログラムのバージョンアップの3つがある。通常CPU101が動作するのに必要なRAM(不図示)を周辺に備えていることを前提に、このRAM上で、FROM1エリアおよびFROM2エリアに格納されているブートプログラムデータや外部システムからのプログラムデータの展開を行うことが可能とされている。いずれの更新処理も、ソフトウェア(プログラム)により実現され、その手順は前述したとおりであるので、ここでは、プログラム更新対象であるFROMエリアが、ブート制御処理が異常終了したFROMエリアである場合の更新処理を簡単に説明する。
図17は、ブート制御処理が異常終了したFROMエリアに対してプログラムの更新を行う場合の手順を示すフローチャートである。以下、図17を用いて、ブート制御処理が異常終了したFROMエリアに対するブートプログラムの更新処理を説明する。
ブート制御部102は、ソフトウェアにより指定されたFROMエリアの更新が、ブート制御処理が異常終了したFROM1エリアに対するプログラムの更新であると判断した場合(ステップ800、YES)、ステータスレジスタのFROMSELビットに1を設定し(ステップ801)、FROM2エリアのプログラムをRAM上に展開する(ステップ802)。次いで、ブート制御部102は、ステータスレジスタのFROMSELビットに0を設定し(ステップ803)、ステップ802でRAM上に展開したプログラムデータを用いてFROM1エリアのプログラムの更新を行う(ステップ804、805)。そして、ブート制御部102は、クリアレジスタに「0x09」を書き込む(ステップ806)。
ソフトウェアにより指定されたFROMエリアの更新が、ブート制御処理が異常終了したFROM2エリアに対するプログラムの更新であると判断した場合(ステップ800、NO)、ブート制御部102は、ステータスレジスタのFROMSELビットに0を設定し(ステップ807)、FROM1エリアのプログラムをRAM上に展開する(ステップ808)。次いで、ブート制御部102は、ステータスレジスタのFROMSELビットに1を設定し(ステップ809)、ステップ808でRAM上に展開したプログラムデータを用いてFROM2エリアのプログラムの更新を行う(ステップ810、811)。そして、ブート制御部102は、ステップ806に移行し、クリアレジスタに「0x09」を書き込む。
上記のプログラム更新処理において、FROMエリアの異常の有無(ブート制御が異常終了した否か)の判断は、レジスタ部104のステータスレジスタの状態に基づいて行う。具体的には、FROM1エリア、FROM2エリアの各ブート状態を示すブートフラグの値の組み合わせと、リブートフラグの値との関係から、FROMの異常を判断する。この判断においても、図10にしたような第1乃至第3の状態取り得る。
第1の状態は、FROM1エリア、FROM2エリア2のブート状態が共に「0」で、リブートフラグの値が「0」の状態である。第1の状態である場合は、1回目のブート制御(FROM1エリアからのブートプログラムの読み出し)で正常起動されたものと判断する。なお、第1の状態の場合は、電源投入による起動であれば、FROM1エリアによるブート処理は正常であるが、FROM2エリアによるブート処理が正常に行われるかは不明である。ローカルリセットによる起動であれば、FROMSELで選択されたFROMエリアからのブートが正常ではあるが、選択されていないFROMエリアからのブートが正常に行われるかは不明である。仮に、ブートしていない側のFROMエリアによるブートの正常性を確認したい場合は、FROMSELによりブートしていない側のFROMを選択してからローカルリセットによる再起動を実施すればよい。
第2の状態は、FROM1エリアのブート状態が「0」、FROM2エリアのブート状態が「1」、リブートフラグの値が「1」の状態である。第2の状態の場合は、FROM1エリアを用いたブート処理が異常となり、FROM2エリアを用いたリブート処理が正常に起動したと判断する。
第3の状態は、FROM1エリアのブート状態が「1」、FROM2エリアのブート状態が「0」、リブートフラグの値が「1」の状態である。第3の状態の場合は、FROM2エリアを用いたブート処理で異常となり、FROM1エリアを用いたリブート処理で正常に起動したと判断する。
なお、FROM1エリアおよびFROM2エリアのブート状態が共に「1」の状態では、CPU101が正常に起動していないことを示す。この場合は、ステータスレジスタの状態を確認することさえもできないが、ハードウェア的にLED103が点灯されるので、FROM1エリア、FROM2エリアの両方のブートが異常であったことがわかる。場合によっては、CPU101の故障も考えられる。
上述した本実施形態の制御カードによれば、先の実施形態の制御カードが持つ効果の他に、部品が減ることにより実装面積の削減および部品コストの低減という新たな効果が期待できる。
本発明は、プラグラムデータの二重化方法一般に適用することができるが、特には、移動通信の無線基地局装置、その他電子装置などに実装されるCPUを使用した制御カードにおけるプログラムの二重化方法に適用することができる。
本発明の一実施形態である制御カードの構成を示すブロック図である。 図1に示すブート制御部の構成を示すブロック図である。 図2に示すレジスタ部のステータスレジスタを説明するための図である。 図2に示すレジスタ部のクリアレジスタを説明するための図である。 図2に示すレジスタ部のタイマレジスタを説明するための図である。 図1に示す制御カードにおいて行われる、電源投入された場合の立ち上げ動作の手順を示すフローチャートである。 図1に示す制御カードにおいて行われる、ローカルリセットによる立ち上げ動作の手順を示すフローチャートである。 図1に示す制御カードにおいて行われる、ブートプログラムの更新処理の基本的な手順を示すフローチャートである。 図1に示す制御カードにおいて行われる、遠隔操作によるブートプログラムの更新処理の手順を示すフローチャートである。 各FROMのブート状態を示すブートフラグの値の組み合わせと、リブートフラグの値との関係を説明するための図である。 図1に示す制御カードにおいて行われる、バージョンアップによるブートプログラムの更新処理の手順を示すフローチャートである。 本発明の他の実施形態である制御カードの構成を示すブロック図である。 メモリの構成を説明するための図であって、(a)は、FROM独立型のイメージを示す模式図、(b)は、FROM分割型のイメージを示す模式図である。 図12に示すブート制御部の概略構成を示すブロック図である。 図12に示す制御カードにおいて行われる、電源投入された場合の立ち上げ動作の手順を示すフローチャートである。 図12に示す制御カードにおいて行われる、ローカルリセットによる立ち上げ動作の手順を示すフローチャートである。 図12に示す制御カードにおいて行われる、異常を生じたFROMエリアに対してプログラムの更新を行う場合の手順を示すフローチャートである。
符号の説明
1、2 FROM
3 CPU
4 ブート制御部
5 LED

Claims (9)

  1. 同一内容のブートプログラムが格納される第1および第2のメモリ部と、
    前記第1または第2のメモリ部からブートプログラムを読み出し、該読み出したブートプログラムにしたがってブート制御を実行する制御部と、
    前記制御部によるブートプログラムの読み出しを制御するブート制御部とを有し、
    前記ブート制御部は、前記制御部によるブート制御の実行状態を保持するレジスタ部を有し、該レジスタ部に、前記第1のメモリ部に格納されたブートプログラムに基づくブート制御が異常とされ、前記第2のメモリ部に格納されたブートプログラムに基づくリブート制御が正常に行われたことを示す第1の状態が保持されている場合は、前記第2のメモリ部に格納されたブートプログラムを用いて前記第1のメモリ部を更新し、前記レジスタ部に、前記第2のメモリ部に格納されたブートプログラムに基づくブート制御が異常とされ、前記第1のメモリ部に格納されたブートプログラムに基づくリブート制御が正常に行われたことを示す第2の状態が保持されている場合には、前記第1のメモリ部に格納されたブートプログラムを用いて前記第2のメモリ部を更新することを特徴とするブート制御装置。
  2. 発光部をさらに有し、
    前記ブート制御部は、前記レジスタ部に、前記第1および第2のメモリ部に格納された各ブートプログラムに基づくブート制御がともに異常とされたことを示す第3の状態が保持されている場合に、前記発光部を点灯する、請求項1に記載のブート制御装置。
  3. 前記ブート制御部は、外部から前記ブートプログラムの更新要求を受信すると、前記レジスタ部の状態を確認する、請求項1または2に記載のブート制御装置。
  4. 前記ブート制御部は、前記レジスタ部の状態を定期的に確認する、請求項1または2に記載のブート制御装置。
  5. 前記ブート制御部は、
    外部から供給されるリセット信号によりカウント動作を開始するブートタイマと、
    前記ブートタイマのタイムアウト値が設定されるタイマレジスタとをさらに有し、
    前記制御部が、前記リセット信号の供給に応じて前記第1および第2のメモリ部のうちの一方のメモリからブートプログラムを読み出してブート制御を行い、該ブート制御が、前記ブートタイマによるカウント値が前記タイマレジスタに設定されたタイムアウト値を超えても完了しなかった場合に、前記ブート制御部が、前記制御部によるブートプログラムの読み出し先を他方のメモリ部に切り替えるとともに、前記一方のメモリ部からのブートプログラムによるブート制御が異常となった旨を前記レジスタに反映させる、請求項1から4のいずれか1項に記載のブート制御装置。
  6. 制御部が、同一内容のブートプログラムが格納される第1および第2のメモリ部の一方からブートプログラムを読み出し、該読み出したブートプログラムにしたがってブート制御を実行する第1のステップと、
    レジスタ部が、前記制御部によるブート制御の実行状態を保持する第2のステップと、
    ブート制御部が、前記レジスタ部の状態に応じて前記第1および第2のメモリ部を更新する第3のステップとを有し、
    前記第3のステップは、
    前記第1のメモリ部に格納されたブートプログラムに基づくブート制御が異常とされ、前記第2のメモリ部に格納されたブートプログラムに基づくリブート制御が正常に行われたことを示す第1の状態が前記レジスタ部に保持されている場合は、前記第2のメモリ部に格納されたブートプログラムを用いて前記第1のメモリ部を更新するステップと、
    前記第2のメモリ部に格納されたブートプログラムに基づくブート制御が異常とされ、前記第1のメモリ部に格納されたブートプログラムに基づくリブート制御が正常に行われたことを示す第2の状態が前記レジスタ部に保持されている場合は、前記第1のメモリ部に格納されたブートプログラムを用いて前記第2のメモリ部を更新するステップとを含む、ブート制御方法。
  7. 前記ブート制御部が、前記第1および第2のメモリ部に格納された各ブートプログラムに基づくブート制御がともに異常とされたことを示す第3の状態が前記レジスタ部に保持されている場合に、発光部を点灯する第4のステップをさらに含む、請求項6に記載のブート制御方法。
  8. 前記ブート制御部が、外部から前記ブートプログラムの更新要求を受信すると、前記レジスタ部の状態を確認するステップをさらに含み、該ステップで確認された状態に応じて前記第3および第4のステップが実行される、請求項7に記載のブート制御方法。
  9. 前記ブート制御部が、前記レジスタ部の状態を定期的に確認するステップをさらに含み、該ステップで確認された状態に応じて前記第3および第4のステップが実行される、請求項7に記載のブート制御方法。
JP2005309858A 2005-10-25 2005-10-25 ブート制御装置およびブート制御方法 Withdrawn JP2007122151A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005309858A JP2007122151A (ja) 2005-10-25 2005-10-25 ブート制御装置およびブート制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005309858A JP2007122151A (ja) 2005-10-25 2005-10-25 ブート制御装置およびブート制御方法

Publications (1)

Publication Number Publication Date
JP2007122151A true JP2007122151A (ja) 2007-05-17

Family

ID=38145967

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005309858A Withdrawn JP2007122151A (ja) 2005-10-25 2005-10-25 ブート制御装置およびブート制御方法

Country Status (1)

Country Link
JP (1) JP2007122151A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1990385A1 (en) 2007-05-07 2008-11-12 Konica Minolta Holdings, Inc. Ink for ink-jet recording
JP2009025967A (ja) * 2007-07-18 2009-02-05 Nec Computertechno Ltd 二重化ファームウェアのバックアップ方式、方法、及び、オペレーティングシステム
JP2011164827A (ja) * 2010-02-08 2011-08-25 Nippon Avionics Co Ltd フラッシュメモリを備えた電子機器およびフラッシュメモリに格納されたプログラムの更新方法
JP2012190368A (ja) * 2011-03-13 2012-10-04 Sii Network Systems Kk コンフィグレーション冗長化装置および、コンフィグレーション手法
JP2012198876A (ja) * 2011-03-18 2012-10-18 Denso Corp メモリデバイスにおける読み出し不可状態を解決するための装置及び方法
CN110362327A (zh) * 2019-07-12 2019-10-22 北京经纬恒润科技有限公司 应用程序更新方法、装置及系统
JP2021055875A (ja) * 2019-09-27 2021-04-08 株式会社デンソーウェーブ 空調コントローラ

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1990385A1 (en) 2007-05-07 2008-11-12 Konica Minolta Holdings, Inc. Ink for ink-jet recording
JP2009025967A (ja) * 2007-07-18 2009-02-05 Nec Computertechno Ltd 二重化ファームウェアのバックアップ方式、方法、及び、オペレーティングシステム
JP2011164827A (ja) * 2010-02-08 2011-08-25 Nippon Avionics Co Ltd フラッシュメモリを備えた電子機器およびフラッシュメモリに格納されたプログラムの更新方法
JP2012190368A (ja) * 2011-03-13 2012-10-04 Sii Network Systems Kk コンフィグレーション冗長化装置および、コンフィグレーション手法
JP2012198876A (ja) * 2011-03-18 2012-10-18 Denso Corp メモリデバイスにおける読み出し不可状態を解決するための装置及び方法
CN110362327A (zh) * 2019-07-12 2019-10-22 北京经纬恒润科技有限公司 应用程序更新方法、装置及系统
CN110362327B (zh) * 2019-07-12 2023-05-16 北京经纬恒润科技股份有限公司 应用程序更新方法、装置及系统
JP2021055875A (ja) * 2019-09-27 2021-04-08 株式会社デンソーウェーブ 空調コントローラ
JP7380016B2 (ja) 2019-09-27 2023-11-15 株式会社デンソーウェーブ 空調コントローラ

Similar Documents

Publication Publication Date Title
US8930931B2 (en) Information processing apparatus using updated firmware and system setting method
US7512849B1 (en) Reconfigurable programmable logic system with configuration recovery mode
US7750676B2 (en) Embedded system and control method therefor
CN101329632B (zh) 一种使用boot启动cpu的方法与装置
US7206971B2 (en) Selectable and updatable computer boot memory
JP4482029B2 (ja) 無線基地局および無線基地局の運用方法
JP2007122151A (ja) ブート制御装置およびブート制御方法
JP3915808B2 (ja) プログラマブルコントローラおよびプログラマブルコントローラシステムならびにcpuユニット
JPH07271711A (ja) コンピュータシステム
JP2023035930A (ja) コンピュータシステム及びコンピュータシステムのブート方法
US20140258699A1 (en) Boot fault tolerant device and method thereof
JPH04167139A (ja) プログラムダウンロード方式
WO1991016678A1 (fr) Procede de remise a zero d'un module adaptateur suite a une panne et syteme d'ordinateur executant ledit procede
JP2003263323A (ja) ダウンロード装置及びダウンロード方法
JP2002189609A (ja) アクシデントに適応したソフトウェア更新方式および方法
JP2014099097A (ja) 情報処理装置、情報処理方法、およびコンピュータプログラム
US10120677B2 (en) Method of rewriting printer firmware, and printer
JP2003228490A (ja) ネットワークに接続される端末装置およびこれを用いたネットワークシステム
JP2004054616A (ja) ファームウェア自動修復機能を有する情報処理装置
JP2004192329A (ja) プログラム書換え方法および端末装置
CN114237722A (zh) 一种系统的启动方法、装置、设备及工程车辆
JP2827594B2 (ja) マイクロプロセツサ装置のフアームウエア・オンライン更新方式及びその更新方法
JP5685117B2 (ja) コンフィグレーション冗長化装置および、コンフィグレーション手法
JP2009238071A (ja) 組込システム
JP7491765B2 (ja) ファームウェア更新システムおよびファームウェア更新方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080918

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20100223