JP5293752B2 - 制御装置、及びファームウェア更新方法とそのプログラム - Google Patents

制御装置、及びファームウェア更新方法とそのプログラム Download PDF

Info

Publication number
JP5293752B2
JP5293752B2 JP2011005593A JP2011005593A JP5293752B2 JP 5293752 B2 JP5293752 B2 JP 5293752B2 JP 2011005593 A JP2011005593 A JP 2011005593A JP 2011005593 A JP2011005593 A JP 2011005593A JP 5293752 B2 JP5293752 B2 JP 5293752B2
Authority
JP
Japan
Prior art keywords
core processor
firmware
core
update
memory area
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.)
Expired - Fee Related
Application number
JP2011005593A
Other languages
English (en)
Other versions
JP2012146234A (ja
Inventor
秀一 寺内
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 Corp
Original Assignee
NEC Corp
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 Corp filed Critical NEC Corp
Priority to JP2011005593A priority Critical patent/JP5293752B2/ja
Publication of JP2012146234A publication Critical patent/JP2012146234A/ja
Application granted granted Critical
Publication of JP5293752B2 publication Critical patent/JP5293752B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、システムを停止することなくファームウェアを更新する際に、このファームウェアの更新に起因してシステム停止などの障害が発生することを回避できる、制御装置、及びファームウェア更新方法とそのプログラムに関する。
制御装置(例えば、サーバ装置など)には、この制御装置に搭載されたハードウェアの基本的な制御を行うためのソフトウェアであるファームウェアが組み込まれている。この制御装置においては、ファームウェアによりその動作及び機能が左右されるため、ファームウェアの改良などのバージョンアップが行われた場合は、このファームウェアを常に新しいバージョンのものに更新する必要がある。
ところで、ファームウェア更新に関連する技術として、次のような技術が開示されている。
例えば、関連する制御装置がある(特許文献1を参照)。この特許文献1に記載の制御装置は、上位装置であるホストへの影響が少ない、ディスク制御装置等の制御装置のファームウェア活性交換を実現することを目的としている。このために、この特許文献1に記載の制御装置では、2つのCPU上でそれぞれファームウェアを運用し、その片方のファームウェアアップデート行うときに、反対側のCPUへI/O処理要求を移し、ファームウェアアップデート後に処理を戻すようにしている。
また、関連する制御プログラム更新方式がある(特許文献2を参照)。この特許文献2に記載の制御プログラム更新方式は、無線基地局において不慮の装置再開があっても再度制御プログラムをダウンロードする必要がない制御プログラム更新方式を提供することを目的としている。このために、ダウンロードした制御プログラムを記憶する2系統の記憶手段を備え、待機系記憶手段にダウンロードした新制御プログラムを書き込み、運用前に装置再開したときには現用系記憶手段内の旧制御プログラムを稼働させ、運用開始時又は運用開始後に装置再開したときにはかつて待機系記憶手段であった新たな現用系記憶手段内の新制御プログラムを稼働させる。
また、関連する構内交換装置がある(特許文献3を参照)。この特許文献3に記載の構内交換装置は、構内交換機の運用状況に関係なく、プログラム更新が可能な構内交換機におけるプログラム更新方式を提供することを目的としている。このために、制御部の交換制御部は、プログラムエリアAa1とプログラムエリアBa2との2面を定義し、その2面のプログラムエリアをシステム監視部の制御によって切替えることで、構内交換機の制御部を2重化することなく、かつシステム停止を伴うことなく、プログラムの更新を行う。
特許第4456084号公報 特開2000−89939号公報 特開2002−44238号公報
ところで、単一ハードウェア(同一の制御装置を複数台使用しないという意味)の制御装置において、そのシステム運用中、すなわちシステムを停止することなく、ファームウェアのアップデートを行うことは既に行われている。
例えば、前述の特許文献1に記載の制御装置では、図1及び図3(特許文献1の図1及び図3)に示すように2つのCPUと、展開前ファームウェア格納部(稼動ファームウェアと新ファームウェアを格納する格納部)とを備え、また、メモリ上に、各CPUに用意されるファームウェア格納領域と、2つのCPUから同時にアクセスできる共有メモリとを備えて構成されている。そして、一方の側のCPUのファームウェア格納領域に更新対象の新ファームウェアをロードし、この一方の側のCPUにおいて、ファームウェアを稼動ファームウェアから新ファームウェアに切り替える動作を行う。そして、この一方の側のCPUにおけるファームウェアの切り替え動作の間は、他方の側のCPUがこの間のI/O処理を代替し、その後に、一方の側のCPUが新ファームウェアを稼動させることで、無停止でファームウェアをアップデートする。
しかしながら、この特許文献1に記載の制御装置では、更新ファームウェアの動作を事前にチェックすることなくファームウェアの切り替えを行うため、媒体不良やメモリロード時の一部不正など、ファームウェアの更新に伴う不具合を検査できないという問題がある。更に、新ファームウェアへのアップデート操作時に、処理を引き継いでいる側でファームウェアの異常発生が発生した場合は、新ファームウェアへのアップデート操作が完了するまで、両方のファームウェアが動作できない期間が発生し、システムの制御が不能となる時間が生じてしまうという問題がある。
このような問題に対処する方法として、更新ファームウェアの動作を事前確認する例を図10に示す。図10は、ファームウェアの更新のために同一装置を2台用意する方法の例を示す図であり、ハードウェア的に密結合した同一装置10及び20を2台用意する例である。この方法では、片方の装置10を稼動系として運用ファームウェアで動作させ、もう片方の装置20を待機系として更新ファームウェアに置き換えてテストを実行した後に、稼動系の装置10から待機系の装置20に処理要求(ファームウェア対する処理要求)を移すようにしている。しかしながら、この同一装置を2台用意する方法の場合は、異なるハードウェア(装置10及び20)に対する割り込み制御と、データ書き込みの完了待ち時間等が必要となり、この切り替え動作時間により制御不可能となる空白の時間が生じてしまう。このため、この同一装置を2台用意する方法においては、ファームウェア入れ替え時に制御不能時間が発生するという問題がある。
そこでこの発明は、上述の課題を解決することのできる制御装置、及びファームウェア更新方法とそのプログラムを提供することを目的としている。
上記課題を解決するために、本発明の第1の形態によると、制御装置であって、CPU内に複数のコアプロセッサ配置され、メモリ上に各コアプロセッサが占有して使用する占有メモリ領域と各コアプロセッサが共有する共有メモリ領域と配置され、現在運用中の運用ファームウェア新たな更新ファームウェアに更新される際に、運用ファームウェア稼動される第1のコアプロセッサとは異なる第2のコアプロセッサの占有メモリ領域に、更新ファームウェアと、更新ファームウェアの動作を検査するためのテストプログラムとを読み込むメモリロード部と、第2のコアプロセッサの占有メモリ領域から更新ファームウェアを第2のコアプロセッサにロードするプログラムロード部と、第2のコアプロセッサの占有メモリ領域からテストプログラムを第2のコアプロセッサにロードし、テストプログラムにより更新ファームウェアが正常に動作するか否かを判定するテスト実行部と、更新ファームウェアが正常に動作するとテスト実行部が判定した後に、第2のコアプロセッサを更新ファームウェアの稼動が可能な状態に設定し、第1のコアプロセッサを休眠状態に設定し、第1のコアプロセッサに代わって運用ファームウェアの稼動が可能な待機中の状態にある第3のコアプロセッサについては待機中の状態をそのまま継続させるコア切り替え部と、第1のコアプロセッサに対する割り込み要求の受け付けを禁止すると共に、第2のコアプロセッサに対する割り込み要求の受け付けを開始するように設定し、ファームウェアに対する割り込み要求の通知先を第1のコアプロセッサから第2のコアプロセッサに切り替える割り込み切り替え部とを備える。本発明の第2の形態によると、制御装置であって、CPU内に複数のコアプロセッサが配置され、メモリ上に各コアプロセッサが占有して使用する占有メモリ領域と各コアプロセッサが共有する共有メモリ領域とが配置され、現在運用中の運用ファームウェアが新たな更新ファームウェアに更新される際に、運用ファームウェアが稼動される第1のコアプロセッサとは異なる第2のコアプロセッサの占有メモリ領域に、更新ファームウェアと、更新ファームウェアの動作を検査するためのテストプログラムとを読み込むメモリロード部と、第2のコアプロセッサの占有メモリ領域から更新ファームウェアを第2のコアプロセッサにロードするプログラムロード部と、第2のコアプロセッサの占有メモリ領域からテストプログラムを第2のコアプロセッサにロードし、テストプログラムにより更新ファームウェアが正常に動作するか否かを判定するテスト実行部と、更新ファームウェアが正常に動作するとテスト実行部が判定した後に、第2のコアプロセッサを更新ファームウェアの稼動が可能な状態に設定し、第1のコアプロセッサに代わって運用ファームウェアの稼動が可能な待機中の状態にある第3のコアプロセッサを休眠状態に設定し、第3のコアプロセッサに対する割り込み要求の受け付けを禁止すると共に第2のコアプロセッサに対する割り込み要求の受け付けを開始するように設定し、稼動系と待機系の切り替えにより第1のコアプロセッサを運用ファームウェアの稼動が可能な待機中の状態に設定し、第2のコアプロセッサを更新ファームウェアが動作する稼動中の状態に設定するコア切り替え部と、第1のコアプロセッサに対する割り込み要求の受け付けを禁止すると共に、第2のコアプロセッサに対する割り込み要求の受け付けを開始するように設定し、ファームウェアに対する割り込み要求の通知先を第1のコアプロセッサから第2のコアプロセッサに切り替える割り込み切り替え部とを備える。本発明の第3の形態によると、ファームウェア更新方法であって、CPU内に複数のコアプロセッサが配置され、メモリ上に各コアプロセッサが占有して使用する占有メモリ領域と各コアプロセッサが共有する共有メモリ領域とが配置され、現在運用中の運用ファームウェアが新たな更新ファームウェアに更新される際に、運用ファームウェアが稼動される第1のコアプロセッサとは異なる第2のコアプロセッサの占有メモリ領域に、更新ファームウェアと、更新ファームウェアの動作を検査するためのテストプログラムとを読み込むメモリロード段階と、第2のコアプロセッサの占有メモリ領域から更新ファームウェアを第2のコアプロセッサにロードするプログラムロード段階と、第2のコアプロセッサの占有メモリ領域からテストプログラムを第2のコアプロセッサにロードし、テストプログラムにより更新ファームウェアが正常に動作するか否かを判定するテスト実行段階と、更新ファームウェアが正常に動作するとテスト実行段階において判定された後に、第2のコアプロセッサを更新ファームウェアの稼動が可能な状態に設定し、第1のコアプロセッサを休眠状態に設定し、第1のコアプロセッサに代わって運用ファームウェアの稼動が可能な待機中の状態にある第3のコアプロセッサについては待機中の状態をそのまま継続させるコア切り替え段階と、第1のコアプロセッサに対する割り込み要求の受け付けを禁止すると共に、第2のコアプロセッサに対する割り込み要求の受け付けを開始するように設定し、ファームウェアに対する割り込み要求の通知先を第1のコアプロセッサから第2のコアプロセッサに切り替える割り込み切り替え段階とを備える。本発明の第4の形態によると、ファームウェア更新方法であって、CPU内に複数のコアプロセッサが配置され、メモリ上に各コアプロセッサが占有して使用する占有メモリ領域と各コアプロセッサが共有する共有メモリ領域とが配置され、現在運用中の運用ファームウェアが新たな更新ファームウェアに更新される際に、運用ファームウェアが稼動される第1のコアプロセッサとは異なる第2のコアプロセッサの占有メモリ領域に、更新ファームウェアと、更新ファームウェアの動作を検査するためのテストプログラムとを読み込むメモリロード段階と、第2のコアプロセッサの占有メモリ領域から更新ファームウェアを第2のコアプロセッサにロードするプログラムロード段階と、第2のコアプロセッサの占有メモリ領域からテストプログラムを第2のコアプロセッサにロードし、テストプログラムにより更新ファームウェアが正常に動作するか否かを判定するテスト実行段階と、更新ファームウェアが正常に動作するとテスト実行段階において判定された後に、第2のコアプロセッサを更新ファームウェアの稼動が可能な状態に設定し、第1のコアプロセッサに代わって運用ファームウェアの稼動が可能な待機中の状態にある第3のコアプロセッサを休眠状態に設定し、第3のコアプロセッサに対する割り込み要求の受け付けを禁止すると共に第2のコアプロセッサに対する割り込み要求の受け付けを開始するように設定し、稼動系と待機系の切り替えにより第1のコアプロセッサを運用ファームウェアの稼動が可能な待機中の状態に設定し、第2のコアプロセッサを更新ファームウェアが動作する稼動中の状態に設定するコア切り替え段階と、第1のコアプロセッサに対する割り込み要求の受け付けを禁止すると共に、第2のコアプロセッサに対する割り込み要求の受け付けを開始するように設定し、ファームウェアに対する割り込み要求の通知先を第1のコアプロセッサから第2のコアプロセッサに切り替える割り込み切り替え段階とを備える。本発明の第5の形態によると、プログラムであって、コンピュータを、CPU内に複数のコアプロセッサが配置され、メモリ上に各コアプロセッサが占有して使用する占有メモリ領域と各コアプロセッサが共有する共有メモリ領域とが配置され、現在運用中の運用ファームウェアが新たな更新ファームウェアに更新される際に、運用ファームウェアが稼動される第1のコアプロセッサとは異なる第2のコアプロセッサの占有メモリ領域に、更新ファームウェアと、更新ファームウェアの動作を検査するためのテストプログラムとを読み込むメモリロード部、第2のコアプロセッサの占有メモリ領域から更新ファームウェアを第2のコアプロセッサにロードするプログラムロード部、第2のコアプロセッサの占有メモリ領域からテストプログラムを第2のコアプロセッサにロードし、テストプログラムにより更新ファームウェアが正常に動作するか否かを判定するテスト実行部、更新ファームウェアが正常に動作するとテスト実行部が判定した後に、第2のコアプロセッサを更新ファームウェアの稼動が可能な状態に設定し、第1のコアプロセッサを休眠状態に設定し、第1のコアプロセッサに代わって運用ファームウェアの稼動が可能な待機中の状態にある第3のコアプロセッサについては待機中の状態をそのまま継続させるコア切り替え部、第1のコアプロセッサに対する割り込み要求の受け付けを禁止すると共に、第2のコアプロセッサに対する割り込み要求の受け付けを開始するように設定し、ファームウェアに対する割り込み要求の通知先を第1のコアプロセッサから第2のコアプロセッサに切り替える割り込み切り替え部として機能させる。本発明の第6の形態によると、プログラムであって、コンピュータを、CPU内に複数のコアプロセッサが配置され、メモリ上に各コアプロセッサが占有して使用する占有メモリ領域と各コアプロセッサが共有する共有メモリ領域とが配置され、現在運用中の運用ファームウェアが新たな更新ファームウェアに更新される際に、運用ファームウェアが稼動される第1のコアプロセッサとは異なる第2のコアプロセッサの占有メモリ領域に、更新ファームウェアと、更新ファームウェアの動作を検査するためのテストプログラムとを読み込むメモリロード部、第2のコアプロセッサの占有メモリ領域から更新ファームウェアを第2のコアプロセッサにロードするプログラムロード部、第2のコアプロセッサの占有メモリ領域からテストプログラムを第2のコアプロセッサにロードし、テストプログラムにより更新ファームウェアが正常に動作するか否かを判定するテスト実行部、更新ファームウェアが正常に動作するとテスト実行部が判定した後に、第2のコアプロセッサを更新ファームウェアの稼動が可能な状態に設定し、第1のコアプロセッサに代わって運用ファームウェアの稼動が可能な待機中の状態にある第3のコアプロセッサを休眠状態に設定し、第3のコアプロセッサに対する割り込み要求の受け付けを禁止すると共に第2のコアプロセッサに対する割り込み要求の受け付けを開始するように設定し、稼動系と待機系の切り替えにより第1のコアプロセッサを運用ファームウェアの稼動が可能な待機中の状態に設定し、第2のコアプロセッサを更新ファームウェアが動作する稼動中の状態に設定するコア切り替え部、第1のコアプロセッサに対する割り込み要求の受け付けを禁止すると共に、第2のコアプロセッサに対する割り込み要求の受け付けを開始するように設定し、ファームウェアに対する割り込み要求の通知先を第1のコアプロセッサから第2のコアプロセッサに切り替える割り込み切り替え部として機能させる。
本発明の制御装置では、CPUをマルチコア構成とし、メモリ上に各コアごとの占有メモリ領域と共有メモリ領域とを配置する。そして、現在運用中(単に「現用」とも言う)の運用ファームウェアを新たな更新ファームウェアに更新する際に、現用の運用ファームウェアを稼動する第1のコアとは異なる第2のコアを選択し、この第2のコアの占有メモリ領域に更新ファームウェアをロードし、この第2のコアにおいて更新ファームウェアが正常に動作することを検査(判定)し、その後に、第2のコアにおいて更新ファームウェアを稼動すると共に、ファームウェアに対する処理要求を、第1のコアから第2のコアに切り替えて処理する。このように、ファームウェアを更新する際に、更新するファームウェアが正常に動作することを事前に検査する。
これにより、単一ハードウェアの制御装置において、システムを停止することなく現在運用中のファームウェアを新たな更新ファームウェアに切り替える際に、この更新ファームウェアに起因してシステム停止などの障害が発生することを回避できる。このため、ファームウェア更新の際の信頼性の向上を図ることができる。
本発明の第1の実施形態に係わる制御装置の構成を示す図である。 メモリロード部121における処理の流れ示すフローチャートである。 プログラムロード部122における処理の流れを示すフローチャートである。 テスト実行部123における処理の流れを示すフローチャートである。 コア切り替え部124の動作を示すフローチャートである。 割り込みマスク部126の動作を示すフローチャートである。 割り込みマスク解除部127の動作を示すフローチャートである。 第1の実施形態の動作について説明するためのシーケンス図である。 第2の実施形態の動作について説明するためのシーケンス図である。 ファームウェアの更新のために同一装置を2台用意する方法の例を示す図である。
本発明の制御装置は、システムの運用を停止することなくファームウェアを更新する際に、更新ファームウェアが格納されている媒体の不良や、メモリへのロードが途中で一部不正となるなど、更新するファームウェアに不具合がある場合に、この更新ファームウェアの不具合を予め検査(判定)することができる制御装置を提供するものである。これにより、ファームウェアを更新する際に、更新ファームウェアの不具合によるシステム停止などの障害が発生することを回避することができる。さらには、更新ファームウェアへの切り替えの際に、ファームウェアの切り替えによる一時的な制御不能となる時間を短縮することができる。
以下、本発明の実施の形態を添付図面を参照して説明する。
[第1の実施形態]
図1は、本発明の第1の実施形態に係る制御装置の構成を示すブロック図であり、本発明に直接関係する部分のみを示したものである。図1に示す制御装置100は、プログラム制御により動作する単一ハードウェア(同一の制御装置を複数台用いないという意味)の制御装置であり、この制御装置100は、マルチコア構成のCPU110と、このCPU110の動作を制御するCPU制御部120と、ファームウェアやテストプログラム等を記憶する記憶装置であるメモリ200と、で構成される。
CPU110は、コア1と、コア2と、コア3の3つのコアを有している。そして、これらのコア1〜3は、それぞれが単独でプログラムを実行する機能を備えるCPUコア(またはプロセッサコアともいう)である。このコア1〜3により、複数のプログラムを同時に実行することができる。図1に示す例では、ファームウェアの更新を開始する前の状態において、コア1が制御装置100により実制御(ファームウェアに対する処理要求を実行する制御)が行われている状態のコア(稼働中)であり、コア2が制御装置100の制御に全く影響していない状態のコア(休眠中)であり、コア3が制御装置100の実制御にエラーが発生した時に実制御に切り替わるため待機状態のコア(待機動作中)の例である。
また、メモリ200は、その記憶エリアとして、CPU110内の各コア1〜3のそれぞれが占有して読み書きできる占有メモリ領域と、任意のコア1〜3が読み書きできる(各コアから同一データをアクセスできる)共有メモリ領域が配置される。
図1に示す例では、メモリ200内に、コア1用メモリ領域(単に「コア1用メモリ」とも呼ぶ)210と、コア2用メモリ領域(単に「コア2用メモリ」とも呼ぶ)220と、コア3用メモリ領域(単に「コア3用メモリ」とも呼ぶ)230と、共有メモリ領域(単に「共有メモリ」とも呼ぶ)240とが配置される。
そして、ファームウェアの更新の開始前の状態においては、コア1用メモリ210に運用ファームウェア211が格納され、また、コア3用メモリ230に運用ファームウェア231が格納される。なお、コア1用メモリ210に格納される運用ファームウェア211と、コア3用メモリ230に格納される運用ファームウェア231とは同じものである。そして、後述するようにファームウェアの更新動作の開始に伴い、コア2用メモリ220に、更新ファームウェア221とテストプログラム(更新ファームウェア221の動作を検査するためのテストプログラム)222とが格納される。
このように、図1に示す例では、コア1を、運用ファームウェア211を稼働するコア(稼動系)とし、コア3を、運用ファームウェア211の待機動作を行うコア(待機系)とした状態において、休眠中のコア2を用いて、ファームウェアの更新を行う例である(図2乃至図9の説明においても同様である)。
また、CPU制御部120は、メモリロード部121と、プログラムロード部122と、テスト実行部123と、コア切り替え部124と、割り込み切り替え部125とを有している。また、割り込み切り替え部125は、コア1〜3のそれぞれに対して割り込み要求をマスク(禁止)する割り込みマスク部126と、コア1〜3のそれぞれに対する割り込み要求のマスクを解除する割り込みマスク解除部127とを有している。
メモリロード部121は、更新ファームウェアを動作させる占有メモリ(図1に示す例ではコア2用メモリ220)に更新ファームウェアとテストプログラムを読み込む動作をする。
図2は、このメモリロード部121における処理の流れ示すフローチャートである。このフローチャートを参照すると、まず、CPU制御部120からの指示により、メモリロード部121は、図示しない外部装置から更新ファームウェアを読み込み、この読み込んだ更新ファームウェアをメモリ200にロード(書き込み処理)する。例えば、図1に示す例では、コア2用メモリ220に更新ファームウェア221をロードする(ステップS11)。続いて、メモリロード部121は、同様に図示しない外部装置からテストプログラムを読み込み、この読み込んだテストプログラをメモリ200にロードする。例えば、図1に示す例では、コア2用メモリ220にテストプログラム222としてロードする(ステップS12)。
次に、メモリロード部121は、更新ファームウェアとテストプログラムの読み込み動作(外部装置からの読み込みとコア2用メモリ220へのロード処理)が完了できたかチェックし(ステップS13)、完了できた場合は(ステップS13:YES)、CPU制御部120に「正常終了」を返却する(ステップS14)。一方、完了できなかった場合は(ステップS13:NO)、CPU制御部120に「異常終了」を返却する(ステップS15)。
そして、ステップS14においてメモリロード部121から「正常終了」が返却されると、CPU制御部120は、プログラムロード部122により、任意の休眠中のコア、例えば、図1に示す例では、コア2に更新ファームウェア221をロードする。
図3は、プログラムロード部122における処理の流れを示すフローチャートである。このフローチャートを参照して、例えば、図1に示す例では、コア2において、更新ファームウェア221のプログラムを起動して(ステップS21)、プログラムが動作を開始できたか否かを判定し(ステップS22)、プログラムが開始できた場合は(ステップS22:YES)、CPU制御部120に「正常終了」を返却する(ステップS23)。一方、プログラムが開始できなかった場合は(ステップS22:NO)、「異常終了」をCPU制御部120に返却する(ステップS24)。
テスト実行部123は、例えば、図1に示す例において、休眠中のコア2にテストプログラム222をロードし、更新ファームウェア221が正常に動作するか否かを検査(判定)する。
図4は、テスト実行部123における処理の流れを示すフローチャートである。このフローチャートを参照して、まず、コア2においてテストプログラム222を動作させ(ステップS31)、テストプログラム222が正常に完了(終了)したか否かを判定し(ステップS32)、正常に終了できた場合は(ステップS32:YES)、「正常終了」をCPU制御部120に返却し(ステップS33)、正常に終了できなかった場合は(ステップS32:NO)、「異常終了」をCPU制御部120に返却する(ステップS34)。
上述した、メモリロード部121、プログラムロード部122、及びテスト実行部123における一連の処理において、「異常終了」が返却された場合は、更新ファームウェア(更新プログラム)の事前動作の確認ができなかった場合であるので、CPU制御部120ではファームウェアの更新処理を停止する。一方、正常に終了した場合には、更新ファームウェアが正常に動作できる場合であるので、CPU制御部120では更新処理を続け、次に、コア切り替え部124により、コアの稼動状態と休眠状態とを切り替える。
図5は、コア切り替え部124の動作を示すフローチャートである。このフローチャートに示すように、コア切り替え部124では、コア1〜3を起動させるか休眠させるかを決定(制御)する排他的ON/OFFフラグ(図示せず)のオン(ON)とオフ(OFF)を切り替えることで、1つのコア(例えば、コア2)を起動状態とし、もう1つのコア(例えば、コア1)を休眠状態にする(ステップS41)。
また、割り込み切り替え部125は、任意のコア1〜3に対する割り込み要求をマスク(禁止)する割り込みマスク部126と、同じく任意のコア1〜3に対する割り込み要求のマスクを解除する割り込みマスク解除部127とで構成される。この割り込みマスク部126では、任意のコア1〜3に対する割り込み要求をマスクする割込フラグ(図示せず)を、例えば、オン設定することにより、割り込みの受け付けをマスクする(ステップS51)。
また、割り込みマスク解除部127は、図7のフローチャートに示すように、任意のコア1〜3に対して、例えば、割込フラグ(図示せず)をオフ設定することにより、割り込みマスクを解除し、割り込み要求が受け付けられるようにする(ステップS61)。この割り込みマスク部126及び割り込みマスク解除部127により、1ポイント(瞬時)で複数のコア1〜3に対する割り込み先の切り替えを行うことができる。
例えば、図1に示す例では、コア切り替え部124により、コア2において更新ファームウェア221の稼動が可能な状態にした後に、割り込みマスク部126により運用中のコア1への割り込み要求をマスクし、割り込みマスク解除部127によりコア2に対するマスクを解除する処理を実行することにより、割り込み通知先(ファームウェアへの処理要求先)を、コア1からコア2へ切り替えることができる。
次に、図8のシーケンス図を参照して本発明の第1の実施形態の動作について詳細に説明する。
このシーケンス図を参照して、まず、コア1が運用ファームウェア211の稼動中(稼動系)として処理を行っているものとする(ステップS100)。また、この時コア2は休眠中の状態としてシステム運用には関係してないものとする(ステップS101)。同時にコア3が運用ファームウェアの動作が可能な待機中(待機系)として処理を行っているものとする(ステップS102)。
この状態において、ファームウェアのアップデートを開始すると、始めにメモリロード部121によって、休眠中のコア2の占有メモリ(コア2用メモリ220)に更新ファームウェア221とテストプログラム222を読み込む(ステップS103およびステップS104)。次に、プログラムロード部122によって、休眠中であったコア2に更新ファームウェア221をロードする(ステップS105)。そして、テスト実行部123により、コア2にテストプログラム222をロードし、このコア2においてテストプログラム222を実行する(ステップS106)。
このステップS103からS106までの一連の動作が完了することにより、更新ファームウェア221が正しく動作できることをテストプログラム222によって検査することができる。これにより、更新ファームウェア221の事前動作の検査が完了したことになる(ステップS107)。
次に、ファームウェアを稼動するコアとして、更新ファームウェア221が動作可能となったコア2と、運用ファームウェア211を稼動中のコア1とを入れ替える。この場合、割り込みマスク部126によって、コア1への割り込みをマスクすることにより、コア1おける運用ファームウェア211の動作を未動作状態にする(ステップS108)。なお、この段階では、コア2は更新ファームウェア未動作の休眠中の状態にある(ステップS109)。
その後に、コア切り替え部124によって、稼動中と休眠中のフラグが入れ替えられて、コア1が運用ファームウェア未動作の休眠中になり(ステップS110)、コア2が運用ファームウェア未動作の稼働中になる(ステップS111)。最後に、割り込みマスク解除部127によって、コア2への割り込みマスクが解除され、コア2は更新ファームウェア動作の稼動中となり、コア2において更新ファームウェア221が稼動系として動作することになる(ステップS113)。なお、この段階において、コア1は休眠状態が維持され(ステップS112)、コア3は、待機中の状態が維持される(ステップS114)。
そして、上述したステップS108からステップS113までの一連の切り替え動作においては、ごく短時間に稼動中のコアがコア1からコア2に入れ替わるので、1ポイント(瞬時)でファームウェアの更新を完了することができる。
なお、一連のファームウェア更新処理においてエラーが発生した場合には、テスト完了(ステップS107)までの間では更新処理が停止し、テスト完了以降ではコア切り替え部124と割り込み切り替え部125により、割り込み通知先を元のコア1に戻す。このことにより、エラーが発生した場合でもファームウェア更新処理の前の状態に戻すことができる。また、待機系として動作するコア3はファームウェア更新の影響を全く受けずに待機動作を続けている(ステップS102及びステップS114)。このため、ファームウェア更新中においても制御装置100としての冗長性を損なうことがない。
また、上記手順によりファームウェアの更新が完了した後に、さらに新たな次の更新ファームウェアに更新する際には、コア2において稼動される更新ファームウェア221を新たな現用の運用ファームウェアとする。そして、コア3に、更新ファームウェア221を運用ファームウェアとしてロードし、このコア3を待機系にすると共に、休眠中のコア1を用いて新たな次の更新ファームウェアに更新する。この休眠中のコア1を用いて新たな次の更新ファームウェアに更新する場合の手順は、図8に示すシーケンス図において、コア1とコア2とを入れ替えた場合の手順と同様になる。
以上説明したように、第1の実施形態に係わる制御装置100では、第1の効果として、ファームウェア更新に際に、更新するファームウェアが正常に動作することを事前に検査することができるので、これにより、ファームウェアを更新する際の信頼性を向上させることができる。また、第2の効果として、運用ファームウェアを更新ファームウェアへ切り替える場合に、コアに対する稼動及び休眠状態の切り替えと、コアに対する割り込みマスクの変更と言う、ごく短時間に処理を完了できる手段を用いて切り替えを行うので、これにより、ファームウェアの更新に伴い発生する空白時間(制御装置が処理を行えない時間)を著しく短縮できる。
[第2の実施形態]
上述した第1の実施形態においては、コア2に更新ファームウェア221をロードして実行させることにより、このコア2を稼動中(稼動系)にすると共に、コア1を休眠中にし、また、コア3を運用ファームウェア211の動作が可能な待機中(待機系)の状態のまま継続する例について説明した。すなわち、コア3については、ファームウェア更新の影響を全く受けずに待機動作をそのまま継続する例について説明した。
これに対して、本発明の第2の実施形態では、コア2に更新ファームウェア221をロードして実行させることにより、このコア2を待機中(待機系)にすると共に、コア3を休眠中にし、その後、一般的な稼動系と待機系の切り替えにより、コア1を運用ファームウェア211の動作が可能な待機中(待機系)にし、コア2を待機中(待機系)から稼動中(稼動系)の状態にする例について説明する。すなわち、第1の実施形態では、更新ファームウェアをロードしたコア2について、稼動系との間で切り替えることにより、コア3が待機系のままである。これに対して、第2の実施形態では、更新ファームウェアをロードしたコア2について、待機系(コア3)との間で切り替えてから、その後、稼働系(コア1)と切り替えることにより、コア1が待機系になり、コア3については待機中から休眠中に切り替えられる場合の例について説明する。
図9は、本発明の制御装置の第2の実施形態の動作について説明するためのシーケンス図である。以下、図9に示すシーケンス図を参照して第2の実施形態の動作について説明する。
まず、コア1が運用ファームウェア211を動作させ稼動系として処理を行っているものとする(ステップS200)。この時コア2は休眠状態としてシステム運用には関係しないものとする(ステップS201)。同時にコア3が運用ファームウェアの動作が可能な待機系として処理を行っているものとする(ステップS202)。この状態において、ファームウェアのアップデートを開始すると、初めにメモリロード部121によって、休眠中のコア2の占有メモリ(コア2用メモリ220)に更新ファームウェア221とテストプログラム222が読み込まれる(ステップS203およびステップS204)。
次に、プログラムロード部122によって、休眠中であったコア2に更新ファームウェア221がロードされる(ステップS205)。そして、テスト実行部123により、テストプログラム222をコア2にロードし、このコア2においてテストプログラム222を動作させる(ステップS206)。
上述したステップS200からS206までの一連の動作が完了することにより、更新ファームウェア221が正しく動作できることをテストプログラム222によって検査(判定)することができる。これにより、更新ファームウェア221の事前検査が完了したことになる(ステップS207)。
この更新ファームウェア221の検査完了の後、コア2は、更新ファームウェア221未動作の休眠中となり(ステップS208)、コア3は、割り込みマスク部126により割り込みがマスクされ運用ファームウェア未動作の稼動中の状態になる(ステップS209)。続いて、コア切り替え部124により、コア2は更新ファームウェア未動作の待機中になり(ステップS210)、また、コア3は運用ファームウェア未動作の休眠中になる(ステップS211)。
その後、割り込みマスク解除部127により、コア2の割り込みマスクを解除し、コア2は、更新ファームウェア動作の待機中になる(ステップS213)。また、この状態において、コア1は、運用ファームウェア動作の稼動中であり(ステップS212)、コア3は、運用ファームウェア未動作の休眠中である(ステップS214)。
最後に、一般的な稼動系と待機系の切り替え動作によって、更新ファームウェア221が動作しているコア2が稼動中(稼動系)になり(ステップS216)、運用ファームウェア211が動作しているコア1が待機中(待機系)に切り替わる(ステップS215)。なお、コア3は、休眠中を維持する(ステップS217)。
上記手順により、制御装置100において、運用ファームウェア211から更新ファームウェア221に切り替えることができる。
以上説明したように、第2の実施形態においては、休眠中のコア2を用いて更新ファームウェア221が正常に動作するか否かを事前に検査し、このコア2を稼動系として動作させると共に、かつては運用ファームウェア211の稼動系であったコア1を待機系のコアとすることができる。また、かつては待機系であったコア3を休眠中のコアとすることができる。このように、第2の実施形態ではコア1を待機系とすることができ、前述の第1の実施形態では、コア3を待機系とすることができるなど、コア1または3のいずれかを選択して待機系のコアとすることができる。
なお、ここで、本発明と上記実施形態との対応関係について補足して説明しておく。上記実施形態において、本発明におけるCPUは、CPU110が対応し、本発明における複数のコアは、コア1〜3が対応する。また、本発明における第1のコアは、コア1が対応し、本発明における第2のコアは、コア2が対応し、本発明における第3のコアは、コア3が対応する。また、本発明におけるメモリは、メモリ200が対応し、本発明における占有メモリ領域は、コア1用メモリ210と、コア2用メモリ220と、コア3用メモリ230と対応する。また、本発明における共有メモリ領域は、共有メモリ240が対応する。また、本発明における運用ファームウェアは、現用の運用ファームウェア211が対応し、本発明における更新ファームウェアは、新たに更新するファームウェアである更新ファームウェア221が対応し、本発明におけるテストプログラムは、テストプログラム222が対応する。
また、本発明におけるメモリロード部は、メモリロード部121が対応し、本発明におけるプログラムロード部は、プログラムロード部122が対応し、本発明におけるテスト実行部は、テスト実行部123が対応する。また、本発明におけるコア切り替え部は、コア切り替え部124が対応し、本発明における割り込みマスク部は、割り込みマスク部126が対応し、本発明における割り込みマスク解除部は、割り込みマスク解除部127が対応する。
(1)そして、上記実施形態において、制御装置100は、CPU110内に複数のコア1〜3を配置し、メモリ200上に各コア1〜3が占有して使用する占有メモリ領域(コア1用メモリ210、コア2用メモリ220、及びコア3用メモリ230)と各コアが共有する共有メモリ領域(共有メモリ240)とを配置し、現在運用中の運用ファームウェア211を新たな更新ファームウェア221に更新する際に、運用ファームウェア211を稼動する第1のコア1とは異なる第2のコア2を選択し、この第2のコア2の占有メモリ領域(コア2用メモリ220)に更新ファームウェア221をロードし、この第2のコア2において更新ファームウェア221が正常に動作することを検査し、この検査の後に当該第2のコア2において更新ファームウェア221を稼動させると共に、ファームウェアに対する処理要求を第1のコア1から第2のコア2に切り替えて処理する。
このような構成の制御装置100では、現用の運用ファームウェア211を新たな更新ファームウェア221に更新する際に、運用ファームウェア211を稼動中でないコア2を選択し、当該選択したコア2の占有メモリ領域(コア2用メモリ220)に更新ファームウェア221をロードし、このコア2においてロードした更新ファームウェア221を動作させて正常に動作するか否かを検査(判定)する。この検査により正常に動作すると判定された後に、コア2において更新ファームウェア221を稼動させると共に、ファームウェアに対する処理要求を、コア1からコア2に切り替えて処理する。
これにより、単一ハードウェアの制御装置100において、運用途中(システム無停止)で運用ファームウェア211を新たな更新ファームウェア221に切り替える際に、このファームウェア更新に起因してシステム停止などの障害が発生することを回避でき、ファームウェア更新の際の信頼性の向上を図ることができる。
(2)また、上記実施形態において、制御装置100は、第2のコア2の占有メモリ領域(コア2用メモリ220)に更新ファームウェア221と該更新ファームウェア221の動作を検査するためのテストプログラム222とを読み込むメモリロード部121と、第2のコア2の占有メモリ領域(コア2用メモリ220)から更新ファームウェア221を当該第2のコア2にロードするプログラムロード部122と、第2のコア2の占有メモリ領域(コア2用メモリ220)からテストプログラム222を当該第2のコア2にロードし、該テストプログラム222により更新ファームウェア221が正常に動作するか否かを判定するテスト実行部123と、テスト実行部123において更新ファームウェア221が正常に動作すると判定された後に、第2のコア2を更新ファームウェア221の稼動が可能な状態に設定し、第1のコアを休眠状態に設定するコア切り替え部124と、第1のコア1に対する割り込み要求の受け付けを禁止すると共に第2のコア2に対する割り込み要求の受け付けを開始するように設定し、ファームウェアに対する割り込み要求の通知先を第1のコア1から第2のコア2に切り替える割り込み切り替え部125と、を備える。
このような構成の制御装置100では、メモリロード部121により、更新ファームウェア221及びテストプログラム222をコア2用メモリ220に読み込む。そして、プログラムロード部122により、更新ファームウェア221をコア2にロードし、テスト実行部123により、テストプログラム222をコア2にロードし、このテストプログラム222を実行することにより更新ファームウェア221が正常に動作するか否かを検査(判定)する。そして、更新ファームウェア221が正常に動作すると判定された後に、コア切り替え部124は、コア2を更新ファームウェア221の稼動が可能な状態に設定し、コア1を休眠状態に設定する。その後、割り込み切り替え部125は、第1のコア1に対する割り込み要求の受け付けを禁止すると共に、第2のコア2に対する割り込み要求の受け付けを開始するように設定し、ファームウェアに対する割り込み要求の通知先を第1のコア1から第2のコア2に切り替える。
これにより、単一ハードウェアの制御装置100において、運用途中(システム無停止)で運用ファームウェア211を更新ファームウェア221に切り替える際に、更新ファームウェア221が正常に動作するか否かを事前に検査することができ、運用ファームウェアを新たな更新ファームウェアに切り替える際の信頼性の向上を図ることができる。
(3)また、上記実施形態において、制御装置100は、第1及び第2のコア1,2に加えて、さらに第1のコア1に代わって運用ファームウェア211の稼動が可能な待機中の状態にある第3のコア3を備え、運用ファームウェア211を更新ファームウェア221に更新する際に、コア切り替え部124は、第2のコア2を更新ファームウェア221の稼動が可能な状態に設定し、第1のコア1を休眠状態に設定すると共に、第3のコア3については待機中の状態をそのまま継続させる。
このような構成の制御装置100では、運用ファームウェア211を更新ファームウェア221に更新する際に、コア切り替え部124は、第2のコア2を更新ファームウェア221の稼動が可能な状態に設定し、第1のコア1を休眠状態に設定すると共に、第3のコア3については待機中の状態をそのまま継続させる。
これにより、運用ファームウェア211を新たな更新ファームウェア221に切り替える際の信頼性の向上を図ることができる効果に加えて、運用ファームウェア211の稼動が可能な待機系(コア3)をそのまま維持することができる。このため、ファームウェア更新中においても制御装置100としての冗長性を損なうことがない。
(4)また、上記実施形態において、制御装置100は、第1及び第2のコア1,2に加えて、さらに第1のコア1に代わって運用ファームウェア211の稼動が可能な待機中の状態にある第3のコア3を備え、運用ファームウェア211を更新ファームウェア221に更新する際に、コア切り替え部124は、第2のコア2を更新ファームウェア221の稼動が可能な待機中の状態に設定し、第3のコア3を休眠状態に設定し、割り込み切り替え部125は、第3のコア3に対する割り込み要求の受け付けを禁止すると共に第2のコア2に対する割り込み要求の受け付けを開始するように設定し、一般的な稼動系と待機系の切り替えにより第1のコア1を運用ファームウェア211の稼動が可能な待機中の状態に設定し、第2のコア2を更新ファームウェア221が動作する稼動中の状態に設定する。
このような構成の制御装置100では、運用ファームウェア211を更新ファームウェア221に更新する際に、コア切り替え部124は、第2のコア2を更新ファームウェア221の稼動が可能な状態に設定し、第3のコア3を休眠状態に設定すると共に、第1のコア1を運用ファームウェア211の稼動が可能な待機中の状態に設定する。
これにより、運用ファームウェアを新たな更新ファームウェアに切り替える際の信頼性の向上を図ることができる効果に加えて、運用ファームウェアが稼動していたコア1を、運用ファームウェア211の稼動が可能な待機中の状態に設定することができる。このように、コア1または3のいずれかを選択して待機系とすることができる。
以上、本発明の実施の形態について説明したが、本発明の制御装置は、上述の図示例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
例えば、図1に示す例では、CPU110を、3つのコア1〜3で構成する例について説明したが、CPU110を2つのコア1及びコア2で構成することができる。また、CPU110を4つ以上のコアで構成することもできる。なお、CPU110を、2つのコア1及びコア2で構成する場合は、図9のシーケンス図に示す手順と同様にして(ただし、コア3に対する手順は省略される)、コア2を更新ファームウェア221の稼動系とし、コア1を運用ファームウェア211の待機系とすればよい。
1…コア1
2…コア2
3…コア3
100…制御装置
110…CPU
120…制御部
121…メモリロード部
122…プログラムロード部
123…テスト実行部
124…コア切り替え部
125…割り込み切り替え部
126…割り込みマスク部
127…割り込みマスク解除部
200…メモリ
210…コア1用メモリ
211…運用ファームウェア
220…コア2用メモリ
221…更新ファームウェア
222…テストプログラム
230…コア3用メモリ
231…運用ファームウェア
240…共有メモリ

Claims (6)

  1. CPU内に複数のコアプロセッサ配置され、メモリ上に各コアプロセッサが占有して使用する占有メモリ領域と各コアプロセッサが共有する共有メモリ領域と配置され、現在運用中の運用ファームウェア新たな更新ファームウェアに更新される際に、前記運用ファームウェア稼動される第1のコアプロセッサとは異なる第2のコアプロセッサの占有メモリ領域に、前記更新ファームウェアと、前記更新ファームウェアの動作を検査するためのテストプログラムとを読み込むメモリロード部と、
    前記第2のコアプロセッサの占有メモリ領域から前記更新ファームウェアを前記第2のコアプロセッサにロードするプログラムロード部と、
    前記第2のコアプロセッサの占有メモリ領域から前記テストプログラムを前記第2のコアプロセッサにロードし、前記テストプログラムにより前記更新ファームウェアが正常に動作するか否かを判定するテスト実行部と、
    前記更新ファームウェアが正常に動作すると前記テスト実行部が判定した後に、前記第2のコアプロセッサを前記更新ファームウェアの稼動が可能な状態に設定し、前記第1のコアプロセッサを休眠状態に設定し、前記第1のコアプロセッサに代わって前記運用ファームウェアの稼動が可能な待機中の状態にある第3のコアプロセッサについては待機中の状態をそのまま継続させるコア切り替え部と、
    前記第1のコアプロセッサに対する割り込み要求の受け付けを禁止すると共に、前記第2のコアプロセッサに対する割り込み要求の受け付けを開始するように設定し、ファームウェアに対する割り込み要求の通知先を前記第1のコアプロセッサから前記第2のコアプロセッサに切り替える割り込み切り替え部と
    を備える制御装置。
  2. CPU内に複数のコアプロセッサが配置され、メモリ上に各コアプロセッサが占有して使用する占有メモリ領域と各コアプロセッサが共有する共有メモリ領域とが配置され、現在運用中の運用ファームウェアが新たな更新ファームウェアに更新される際に、前記運用ファームウェアが稼動される第1のコアプロセッサとは異なる第2のコアプロセッサの占有メモリ領域に、前記更新ファームウェアと、前記更新ファームウェアの動作を検査するためのテストプログラムとを読み込むメモリロード部と、
    前記第2のコアプロセッサの占有メモリ領域から前記更新ファームウェアを前記第2のコアプロセッサにロードするプログラムロード部と、
    前記第2のコアプロセッサの占有メモリ領域から前記テストプログラムを前記第2のコアプロセッサにロードし、前記テストプログラムにより前記更新ファームウェアが正常に動作するか否かを判定するテスト実行部と、
    前記更新ファームウェアが正常に動作すると前記テスト実行部が判定した後に、前記第2のコアプロセッサを前記更新ファームウェアの稼動が可能な状態に設定し、前記第1のコアプロセッサに代わって前記運用ファームウェアの稼動が可能な待機中の状態にある第3のコアプロセッサを休眠状態に設定し、前記第3のコアプロセッサに対する割り込み要求の受け付けを禁止すると共に前記第2のコアプロセッサに対する割り込み要求の受け付けを開始するように設定し、稼動系と待機系の切り替えにより前記第1のコアプロセッサを前記運用ファームウェアの稼動が可能な待機中の状態に設定し、前記第2のコアプロセッサを更新ファームウェアが動作する稼動中の状態に設定するコア切り替え部と、
    前記第1のコアプロセッサに対する割り込み要求の受け付けを禁止すると共に、前記第2のコアプロセッサに対する割り込み要求の受け付けを開始するように設定し、ファームウェアに対する割り込み要求の通知先を前記第1のコアプロセッサから前記第2のコアプロセッサに切り替える割り込み切り替え部と
    を備える制御装置。
  3. CPU内に複数のコアプロセッサ配置され、メモリ上に各コアプロセッサが占有して使用する占有メモリ領域と各コアプロセッサが共有する共有メモリ領域と配置され、現在運用中の運用ファームウェア新たな更新ファームウェアに更新される際に、前記運用ファームウェア稼動される第1のコアプロセッサとは異なる第2のコアプロセッサの占有メモリ領域に、前記更新ファームウェアと、前記更新ファームウェアの動作を検査するためのテストプログラムとを読み込むメモリロード段階と、
    前記第2のコアプロセッサの占有メモリ領域から前記更新ファームウェアを前記第2のコアプロセッサにロードするプログラムロード段階と、
    前記第2のコアプロセッサの占有メモリ領域から前記テストプログラムを前記第2のコアプロセッサにロードし、前記テストプログラムにより前記更新ファームウェアが正常に動作するか否かを判定するテスト実行段階と、
    前記更新ファームウェアが正常に動作すると前記テスト実行段階において判定された後に、前記第2のコアプロセッサを前記更新ファームウェアの稼動が可能な状態に設定し、前記第1のコアプロセッサを休眠状態に設定し、前記第1のコアプロセッサに代わって前記運用ファームウェアの稼動が可能な待機中の状態にある第3のコアプロセッサについては待機中の状態をそのまま継続させるコア切り替え段階と、
    前記第1のコアプロセッサに対する割り込み要求の受け付けを禁止すると共に、前記第2のコアプロセッサに対する割り込み要求の受け付けを開始するように設定し、ファームウェアに対する割り込み要求の通知先を前記第1のコアプロセッサから前記第2のコアプロセッサに切り替える割り込み切り替え段階と
    備えるファームウェア更新方法。
  4. CPU内に複数のコアプロセッサが配置され、メモリ上に各コアプロセッサが占有して使用する占有メモリ領域と各コアプロセッサが共有する共有メモリ領域とが配置され、現在運用中の運用ファームウェアが新たな更新ファームウェアに更新される際に、前記運用ファームウェアが稼動される第1のコアプロセッサとは異なる第2のコアプロセッサの占有メモリ領域に、前記更新ファームウェアと、前記更新ファームウェアの動作を検査するためのテストプログラムとを読み込むメモリロード段階と、
    前記第2のコアプロセッサの占有メモリ領域から前記更新ファームウェアを前記第2のコアプロセッサにロードするプログラムロード段階と、
    前記第2のコアプロセッサの占有メモリ領域から前記テストプログラムを前記第2のコアプロセッサにロードし、前記テストプログラムにより前記更新ファームウェアが正常に動作するか否かを判定するテスト実行段階と、
    前記更新ファームウェアが正常に動作すると前記テスト実行段階において判定された後に、前記第2のコアプロセッサを前記更新ファームウェアの稼動が可能な状態に設定し、前記第1のコアプロセッサに代わって前記運用ファームウェアの稼動が可能な待機中の状態にある第3のコアプロセッサを休眠状態に設定し、前記第3のコアプロセッサに対する割り込み要求の受け付けを禁止すると共に前記第2のコアプロセッサに対する割り込み要求の受け付けを開始するように設定し、稼動系と待機系の切り替えにより前記第1のコアプロセッサを前記運用ファームウェアの稼動が可能な待機中の状態に設定し、前記第2のコアプロセッサを更新ファームウェアが動作する稼動中の状態に設定するコア切り替え段階と、
    前記第1のコアプロセッサに対する割り込み要求の受け付けを禁止すると共に、前記第2のコアプロセッサに対する割り込み要求の受け付けを開始するように設定し、ファームウェアに対する割り込み要求の通知先を前記第1のコアプロセッサから前記第2のコアプロセッサに切り替える割り込み切り替え段階と
    を備えるファームウェア更新方法。
  5. コンピュータを、
    CPU内に複数のコアプロセッサ配置され、メモリ上に各コアプロセッサが占有して使用する占有メモリ領域と各コアプロセッサが共有する共有メモリ領域と配置され、現在運用中の運用ファームウェア新たな更新ファームウェアに更新される際に、前記運用ファームウェア稼動される第1のコアプロセッサとは異なる第2のコアプロセッサの占有メモリ領域に、前記更新ファームウェアと、前記更新ファームウェアの動作を検査するためのテストプログラムとを読み込むメモリロード部、
    前記第2のコアプロセッサの占有メモリ領域から前記更新ファームウェアを前記第2のコアプロセッサにロードするプログラムロード部、
    前記第2のコアプロセッサの占有メモリ領域から前記テストプログラムを前記第2のコアプロセッサにロードし、前記テストプログラムにより前記更新ファームウェアが正常に動作するか否かを判定するテスト実行部、
    前記更新ファームウェアが正常に動作すると前記テスト実行部が判定した後に、前記第2のコアプロセッサを前記更新ファームウェアの稼動が可能な状態に設定し、前記第1のコアプロセッサを休眠状態に設定し、前記第1のコアプロセッサに代わって前記運用ファームウェアの稼動が可能な待機中の状態にある第3のコアプロセッサについては待機中の状態をそのまま継続させるコア切り替え部、
    前記第1のコアプロセッサに対する割り込み要求の受け付けを禁止すると共に、前記第2のコアプロセッサに対する割り込み要求の受け付けを開始するように設定し、ファームウェアに対する割り込み要求の通知先を前記第1のコアプロセッサから前記第2のコアプロセッサに切り替える割り込み切り替え部
    として機能させるプログラム。
  6. コンピュータを、
    CPU内に複数のコアプロセッサが配置され、メモリ上に各コアプロセッサが占有して使用する占有メモリ領域と各コアプロセッサが共有する共有メモリ領域とが配置され、現在運用中の運用ファームウェアが新たな更新ファームウェアに更新される際に、前記運用ファームウェアが稼動される第1のコアプロセッサとは異なる第2のコアプロセッサの占有メモリ領域に、前記更新ファームウェアと、前記更新ファームウェアの動作を検査するためのテストプログラムとを読み込むメモリロード部、
    前記第2のコアプロセッサの占有メモリ領域から前記更新ファームウェアを前記第2のコアプロセッサにロードするプログラムロード部、
    前記第2のコアプロセッサの占有メモリ領域から前記テストプログラムを前記第2のコアプロセッサにロードし、前記テストプログラムにより前記更新ファームウェアが正常に動作するか否かを判定するテスト実行部、
    前記更新ファームウェアが正常に動作すると前記テスト実行部が判定した後に、前記第2のコアプロセッサを前記更新ファームウェアの稼動が可能な状態に設定し、前記第1のコアプロセッサに代わって前記運用ファームウェアの稼動が可能な待機中の状態にある第3のコアプロセッサを休眠状態に設定し、前記第3のコアプロセッサに対する割り込み要求の受け付けを禁止すると共に前記第2のコアプロセッサに対する割り込み要求の受け付けを開始するように設定し、稼動系と待機系の切り替えにより前記第1のコアプロセッサを前記運用ファームウェアの稼動が可能な待機中の状態に設定し、前記第2のコアプロセッサを更新ファームウェアが動作する稼動中の状態に設定するコア切り替え部、
    前記第1のコアプロセッサに対する割り込み要求の受け付けを禁止すると共に、前記第2のコアプロセッサに対する割り込み要求の受け付けを開始するように設定し、ファームウェアに対する割り込み要求の通知先を前記第1のコアプロセッサから前記第2のコアプロセッサに切り替える割り込み切り替え部
    として機能させるプログラム。
JP2011005593A 2011-01-14 2011-01-14 制御装置、及びファームウェア更新方法とそのプログラム Expired - Fee Related JP5293752B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011005593A JP5293752B2 (ja) 2011-01-14 2011-01-14 制御装置、及びファームウェア更新方法とそのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011005593A JP5293752B2 (ja) 2011-01-14 2011-01-14 制御装置、及びファームウェア更新方法とそのプログラム

Publications (2)

Publication Number Publication Date
JP2012146234A JP2012146234A (ja) 2012-08-02
JP5293752B2 true JP5293752B2 (ja) 2013-09-18

Family

ID=46789719

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011005593A Expired - Fee Related JP5293752B2 (ja) 2011-01-14 2011-01-14 制御装置、及びファームウェア更新方法とそのプログラム

Country Status (1)

Country Link
JP (1) JP5293752B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11106454B2 (en) 2016-04-15 2021-08-31 Nec Corporation Software update control device, software update control method, and recording medium having software update control program stored thereon

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6464657B2 (ja) * 2014-10-23 2019-02-06 コニカミノルタ株式会社 画像処理装置、プログラム更新方法、およびコンピュータプログラム
JP7184424B2 (ja) * 2018-03-07 2022-12-06 Necソリューションイノベータ株式会社 更新処理装置、更新処理方法、及びプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002342102A (ja) * 2001-05-16 2002-11-29 Nec Corp プログラム更新方法およびプログラム更新方式
JP4026588B2 (ja) * 2003-12-01 2007-12-26 日本電気株式会社 ディスクアレイ装置およびディスクキャッシュ管理方法ならびにプログラム
US20060212677A1 (en) * 2005-03-15 2006-09-21 Intel Corporation Multicore processor having active and inactive execution cores
JP2008217225A (ja) * 2007-03-01 2008-09-18 Hitachi Ltd ブレードサーバシステム
JP2010079622A (ja) * 2008-09-26 2010-04-08 Hitachi Ltd マルチコアプロセッサシステム、および、そのタスク制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11106454B2 (en) 2016-04-15 2021-08-31 Nec Corporation Software update control device, software update control method, and recording medium having software update control program stored thereon

Also Published As

Publication number Publication date
JP2012146234A (ja) 2012-08-02

Similar Documents

Publication Publication Date Title
JP2010541105A (ja) ファームウェアイメージの更新および管理
JP2008217225A (ja) ブレードサーバシステム
JP5293752B2 (ja) 制御装置、及びファームウェア更新方法とそのプログラム
JP2010152508A (ja) 制御装置、ディスクアレイ装置および制御方法
JP5762016B2 (ja) 情報処理装置、制御方法、及びプログラム
JP5008392B2 (ja) ファームウェア改版方法、および改版プログラム
JP2000267872A (ja) 2重化システムにおける再開処理方式
JP4653838B2 (ja) 演算処理装置、演算処理装置の制御方法及び制御プログラム
JP2018088048A (ja) マルチプロセッサ及びマルチプロセッサシステム
JP5034979B2 (ja) 起動装置、起動方法、及び、起動プログラム
CN106909410B (zh) 一种用于服务器系统的更新方法以及服务器系统
JP2011008702A (ja) 故障処理装置
JP2009146051A (ja) 設備管理装置、設備機器ネットワークシステム、データアクセス制御方法、通信トラフィック制御方法、データアクセス制御プログラム、通信トラフィック制御プログラム
JP2006107045A (ja) ストレージ装置
CN101022636A (zh) 设备升级方法及硬件设备
JP2006146709A (ja) 更新制御プログラム、更新制御方法および更新制御装置
JP6726136B2 (ja) データアクセス装置及びアクセスエラーの通知方法
CN114691771A (zh) 数据库主从复制方法、装置、计算机设备和存储介质
JP6822203B2 (ja) ファームウェア実行装置、ドライバ実行装置、ドライバ管理装置、ファームウェア管理装置、コンピュータ装置、方法およびプログラム
JP4066950B2 (ja) コンピュータシステムおよびその保守方法
US20230275931A1 (en) Dynamic management of role-based access control systems
JP5703860B2 (ja) フォールトトレラントシステム、メモリ制御方法、及びプログラム
KR100759590B1 (ko) 휴대용 기기의 플래쉬 메모리 초기화 방법 및 상기 방법에따른 프로그램이 기록된 기록 매체
JP4193754B2 (ja) データ二重化方法とプログラム
JP2008171058A (ja) システムコントローラ、プロセッサ、情報処理システムおよび情報処理プログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130418

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130514

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130527

R150 Certificate of patent or registration of utility model

Ref document number: 5293752

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees