JP5157789B2 - プログラム更新方法及びプログラム更新装置 - Google Patents

プログラム更新方法及びプログラム更新装置 Download PDF

Info

Publication number
JP5157789B2
JP5157789B2 JP2008250421A JP2008250421A JP5157789B2 JP 5157789 B2 JP5157789 B2 JP 5157789B2 JP 2008250421 A JP2008250421 A JP 2008250421A JP 2008250421 A JP2008250421 A JP 2008250421A JP 5157789 B2 JP5157789 B2 JP 5157789B2
Authority
JP
Japan
Prior art keywords
data
main storage
address
difference information
storage means
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
JP2008250421A
Other languages
English (en)
Other versions
JP2010079837A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008250421A priority Critical patent/JP5157789B2/ja
Publication of JP2010079837A publication Critical patent/JP2010079837A/ja
Application granted granted Critical
Publication of JP5157789B2 publication Critical patent/JP5157789B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

この発明は、ファームウェアが動作する主記憶装置が運用面と非運用面とからなる2面で構成され、ファームの機能を停止することなく、ファームウェアのバージョンアップを実現することができるプログラム更新方法及びプログラム更新装置に関する。
組込み系のファームウェアのバージョンアップには、再起動(リブート)の手順が含まれており、この再起動には、時間の短長はあるが、ファームの機能(警報や統計収集など)を停止する時間が発生し、デバイスの運用に支障をきたすことになる。
例えば、従来のプログラム更新装置は、従来動作していた旧動作プログラムとは別な記憶領域に、ダウンロードした新動作プログラムを格納する。ついで、新動作プログラムを起動させ、新動作プログラムの上で実行アプリケーションを動かす。新動作プログラムが起動に失敗した場合には、旧動作プログラムを再起動して旧動作プログラムでシステムを動かす。また、新動作プログラム又は旧動作プログラムが起動に成功した状態で、実行アプリケーションが起動できなかった場合には、修復アプリケーションによって実行アプリケーションを修復する(例えば、特許文献1参照)。なお、従来のプログラム更新装置は、システムがフリーズすることを防止しているが、新動作プログラムの起動の失敗により、再起動を伴うものであり、デバイスの運用に支障をきたすことになる。
また、従来の情報処理装置は、プロセス情報退避手段と、プロセス復元手段とを備え、アプリケーションの実行時にOS内に存在するプロセス表やその他、プロセスを復元するために必要な情報を主記憶領域上の退避領域に複写しておき、再起動時には、アプリケーションの使用していた主記憶領域はそのままに、OSのみを初期化する。初期化の後に、退避しておいたプロセス情報(プロセス表やその他OSが管理していた情報)をOSデータ領域に上書きするよう動作する(例えば、特許文献2参照)。なお、従来の情報処理装置は、システムの終了時間を短縮しているが、再起動を伴うものであり、デバイスの運用に支障をきたすことになる。
これに対し、従来の構内交換機は、プログラムエリアAと、プログラムエリアBとの2面が定義され、その他に交換制御を行うための交換制御用メモリエリアと、通話状態等を管理する呼状態メモリエリアとを有する。プログラムエリアA及びプログラムエリアBは運用面及び待機面として扱われ、その2面のプログラムエリアをシステム監視部の制御によって切替える。(例えば、特許文献3参照)。
特開2002−333990号公報 国際公開第2005/071522号パンフレット 特開2002−44238号公報
しかしながら、従来の構内交換機は、プログラム更新により、プログラムのコード(実行部)のみを変更するものであり、呼情報のようなデータ部(一般的に、装置設定データ、静的変数、動的変数)の変更については考慮されていない。また、プログラムは常に動作しており、構内交換機内部に記録される状態収集結果(ログ)や統計情報(カウンタ)などが随時変化しているのであるが、従来の構内交換機は、プログラム更新において、これらの情報などについては考慮されていない。
このため、従来の構内交換機は、プログラム更新後も、プログラム更新前の状態収集結果(ログ)や統計情報(カウンタ)などを引き継ぐことができず、デバイスの運用に支障をきたすという課題があった。
この発明は、上述のような課題を解決するためになされたもので、ファームの機能を停止することなく、ファームウェアのバージョンアップを実現することができるプログラム更新方法及びプログラム更新装置を提供するものである。
この発明に係るプログラム更新方法は、処理対象データのアドレス及び前記処理非対象データのアドレスの差分情報を抽出する差分情報抽出ステップと、前記差分情報を差分情報記憶手段に設定する差分情報設定ステップと、前記中央処理手段が一の主記憶手段の主記憶領域におけるデータのアドレスを指定して当該主記憶領域にデータの書込みを行なう場合に、前記差分情報に基づき、前記指定アドレスに対応する他の主記憶手段の主記憶領域におけるデータのアドレスを指定して当該主記憶領域に前記データの書込みを行なう擬似アクセスステップと、前記一の主記憶手段の主記憶領域における各データと、当該各データに対応する前記他の主記憶手段の主記憶領域における各データとの一致を判定する判定ステップと、前記判定手段が前記データが一致すると判定した場合に、前記一の主記憶手段から前記他の主記憶手段に運用を切り替える運用切替ステップと、を有し、前記差分情報抽出ステップが、前記補助記憶手段から前記一の主記憶手段にファームウェアデータをロードして展開される当該ファームウェアデータの位置情報である第1のマップファイル、及び前記補助記憶手段から前記他の主記憶手段に前記ファームウェアの更新用のバージョンアップデータをロードして展開される当該バージョンアップデータの位置情報である第2のマップファイルにおける、各データのアドレスに対して、当該データの種類毎に対応させたアドレスの差分情報を抽出し、前記中央処理手段が前記一の主記憶手段の主記憶領域におけるデータのアドレスを指定して当該主記憶領域にデータの書込みを行なう場合であり、当該指定アドレスに対応する前記他の主記憶手段の主記憶領域におけるデータのアドレスが前記差分情報に存在しない場合に、前記擬似アクセスステップが、前記指定アドレスのオフセットアドレスに等価である前記他の主記憶手段の主記憶領域におけるデータのアドレスを指定して前記データの書込みを行なう
開示のプログラム更新方法は、オペレーティングシステム(Operating System:OS)やプログラムコードだけではなく、デバイスの設定データを含んだファームウェアのバージョンアップが行なえ、ファームの機能を停止することなく、ファームウェアのバージョンアップを実現することができるという効果を奏する。また、開示のプログラム更新方法は、中央処理装置(Central Processing Unit:CPU)を二重化する構成を必要とせず、従来のプログラム更新装置と比較して、ハードウェア資源(費用)を削減できるという効果を奏する。
(本発明の第1の実施形態)
図1は本実施形態に係るデバイスの主要な構成を示す概略図、図2は図1に示す主記憶手段のデータの書込み又は読出しの処理を説明するためのブロック図、図3(a)は図1に示すバージョンアップデータ書込手段による処理を説明するための説明図、図3(b)は図1に示すバージョンアップデータ展開手段による処理を説明するための説明図、図4は図1に示す差分情報設定手段による処理を説明するための説明図、図5は図1に示す擬似アクセス手段による処理を説明するための説明図、図6は図1に示す判定手段及び運用切替手段による処理を説明するための説明図、図7は図1に示すプログラム更新装置によるバージョンアップの処理手順を示すフローチャートである。
図1において、デバイス100は、通常のデバイスの主構成である、実行対象のプログラム及び処理対象データを記憶する主記憶装置(例えば、RAM(random access memory))である主記憶手段10と、実行非対象のプログラム及び処理非対象データを記憶する補助記憶装置(例えば、フラッシュメモリ)である補助記憶手段20と、主記憶手段10に記憶されるプログラムによってデータの処理を行なう中央処理装置(Central Processing Unit:CPU)である中央処理手段30と、新たに追加されたメモリ管理手段40とを備える。
主記憶手段10は、図2に示すように、主記憶領域1(メモリ領域)、アドレス選択回路2及び読み書き回路3を備え、主記憶領域1に対するデータの読出し及び書込みは、処理の対象とするデータのアドレスを指定することにより行なわれる。すなわち、プログラムの命令の中には、処理の対象になるデータのアドレスが指定され、命令実行時にそのアドレスをアドレス選択回路2に送り、アドレス選択回路2によって、主記憶領域1上の場所が確定し、読み書き回路3によって、データの読出し又は書込みが行なわれる。
また、デバイス100は、主記憶手段10として、第1の主記憶手段10aと第2の主記憶手段10bとを備え、一方の主記憶手段10が運用面として機能している場合には、他方の主記憶手段10が非運用面となる。なお、主記憶手段10は、物理的に異なる2つの主記憶装置によって構成してもよいが、1つの主記憶装置内の主記憶領域1を2つに領域分けをして構成してもよい。
また、運用面である主記憶手段10には、後述する、バージョンアップデータ書込手段11、バージョンアップデータ展開手段12、差分情報設定手段13、判定手段14及び運用切替手段15による処理を実行するプログラムであるバージョンアッププロセスが記憶されている。
なお、以下の説明においては、ファームウェアのバージョンアップ前の運用面を第1の主記憶手段10a(非運用面を第2の主記憶手段10b)とし、バージョンアップ後の運用面を第2の主記憶手段10b(非運用面を第1の主記憶手段10a)として説明する。
バージョンアップデータ書込手段11は、ファームウェアの機能を向上したり不具合を修正したりするバージョンアップのためのファームウェアデータ(以下、バージョンアップデータと称す)を、後述する第2の補助記憶手段20bに書き込む機能を有する。
バージョンアップデータ展開手段12は、中央処理手段30による処理の空き時間を利用して、第2の補助記憶手段20bに記憶するバージョンアップデータを、第2の主記憶手段10bにロードして、第2の主記憶手段10bに展開する機能を有する。なお、中央処理手段30による処理の空き時間を利用することは、通常のファーム機能(警報や統計収集など)を停止(低下)させずに実行できるという作用効果を奏する。
差分情報設定手段13は、ファームウェアデータの作成時に生成されるファームウェアデータの位置情報であるMAPファイル(以下、第1のマップファイルと称す)、及びバージョンアップデータの作成時に生成されるバージョンアップデータの位置情報であるMAPファイル(以下、第2のマップファイルと称す)における、各データのアドレスに対して、当該データの種類毎に対応させたアドレスの差分情報を抽出する機能を有する。
また、差分情報設定手段13は、抽出した差分情報を、後述する差分情報記憶手段41に設定する機能を有する。
ここで、例えば、データ「変数g_alm_status」が、第1のマップファイルにおけるアドレス「0xa0001000」に対応しており、第2のマップファイルにおけるアドレス「0xb0001100」に対応している場合を想定する。この場合には、データ「変数g_alm_status」に対応させたアドレスの差分情報は、第1のマップファイルのアドレス「0xa0001000」の変更点として第2のマップファイルのアドレス「0xb0001100」が対応するという情報となる。なお、変数とは、プログラムのソースコードにおいて、扱われるデータを一定期間記憶し必要なときに利用できるようにするために、データに固有の名前を与えたものである。
また、例えば、データ「装置設定情報(回線設定等)」が、第1のマップファイルにおけるアドレス「0xa000a000」に対応しており、第2のマップファイルにおけるアドレス「0xb000b000」に対応している場合を想定する。この場合には、データ「装置設定情報(回線設定等)」に対応する差分情報は、第1のマップファイルのアドレス「0xa000a000」の変更点として第2のマップファイルのアドレス「0xb000b000」が対応するという情報となる。
また、差分情報設定手段13は、後述する擬似アクセス手段42による機能(差分情報に存在しない指定アドレスのオフセットアドレスに等価である第2の主記憶手段10bの主記憶領域1(以下、第2の主記憶領域1bと称す)におけるデータのアドレスを指定して第2の主記憶領域1bにデータの書込みを行なう機能)の有効又は無効の情報を示すフラグを設定する。
なお、オフセットアドレスとは、例えば、第1のマップファイルのアドレスが「0xa0001000」であれば、先頭から4ビット目から10ビット目までの「0001000」を指すものである。また、オフセットアドレスに等価であるアドレスは、例えば、第1のマップファイルのアドレスが「0xa0001000」であれば、第2のマップファイルのアドレス「0xb0001000」が対応する。
判定手段14は、第1の主記憶手段10aの主記憶領域1(以下、第1の主記憶領域1aと称す)における各データと、当該各データに対応する第2の主記憶領域1bにおける各データとの一致を判定する機能を有する。なお、ここでの一致は、第1の主記憶領域1aにおける各データを基準にするものであり、第2の主記憶領域1bにおける、バージョンアップにより新たに追加されるデータは対象外である。
運用切替手段15は、判定手段14が全てのデータが一致すると判定した場合に、第1の主記憶手段10aから第2の主記憶手段10bに運用を切り替える機能を有する。すなわち、運用切替手段15は、中央処理手段30における、取り出す命令のアドレスを記憶するレジスタ(プログラムカウンタ31)に記憶した第1の主記憶領域1aにおける各データのアドレスを、第2の主記憶領域1bにおける各データのアドレスに変更する。
デバイス100は、補助記憶手段20として、第1の補助記憶手段20aと第2の補助記憶手段20bとを備えており、第1の補助記憶手段20aに記憶されるファームウェアデータが第1の主記憶手段10aにロードされ、第2の補助記憶手段20bに記憶されるバージョンアップデータが第2の主記憶手段10bにロードされる。
なお、補助記憶手段20は、物理的に異なる2つの補助記憶装置によって構成してもよいが、1つの補助記憶装置内の記憶領域を2つに領域分けをして構成してもよい。
メモリ管理手段40は、論理ブロック間及び配線間を接続するスイッチマトリクスを制御するビットストリームを外部から書き込むことによって、所望の論理回路を再構成することができるデバイスであるFPGA(Field Programmable Gate Array)を用いている。また、メモリ管理手段40は、後述する差分情報記憶手段41及び擬似アクセス手段42を構成している。
差分情報記憶手段41は、差分情報設定手段13により抽出された差分情報を、差分情報設定手段13により設定されるレジスタである。
ここで、データ「変数g_alm_status」に対応させたアドレスの差分情報が、第1のマップファイルのアドレス「0xa0001000」の変更点として第2のマップファイルのアドレス「0xb0001100」が対応するという情報である場合を想定する。この場合には、例えば、差分情報記憶手段41の差分設定領域におけるアドレス「0xd0000000」に第1のマップファイルのアドレス「0xa0001000」がレジスタ設定され、差分情報記憶手段41の差分設定領域におけるアドレス「0xd0000004」に第2のマップファイルのアドレス「0xb0001100」がレジスタ設定される。
また、データ「装置設定情報(回線設定等)」に対応させたアドレスの差分情報が、第1のマップファイルのアドレス「0xa000a000」の変更点として第2のマップファイルのアドレス「0xb000b000」が対応するという情報である場合を想定する。この場合には、例えば、差分情報記憶手段41の差分設定領域におけるアドレス「0xd0000008」に第1のマップファイルのアドレス「0xa000a000」がレジスタ設定され、差分情報記憶手段41の差分設定領域におけるアドレス「0xd000000C」に第2のマップファイルのアドレス「0xb000b000」がレジスタ設定される。
擬似アクセス手段42は、中央処理手段30が第1の主記憶領域1aにおけるデータのアドレスを指定して第1の主記憶領域1aにデータの書込み(Writeアクセス)を行なう場合に、差分情報に基づき、指定アドレスに対応する第2の主記憶領域1bにおけるデータのアドレスを指定して第2の主記憶領域1bにデータの書込みを行なう機能を有する。
また、擬似アクセス手段42は、中央処理手段30が第1の主記憶領域1aにおけるデータのアドレスを指定して第1の主記憶領域1aにデータの書込みを行なう場合であり、当該指定アドレスに対応する第2の主記憶領域1bにおけるデータのアドレスが差分情報に存在しない場合(すなわち、バージョンアップにより、削除するファームウェアの機能)に、以下のように処理する。
まず、擬似アクセス手段42は、差分情報設定手段13により差分情報記憶手段41に設定されたフラグが立っているか否かを判断する。
そして、フラグが立っていない場合には、擬似アクセス手段42は、差分情報に存在しない指定アドレスに対して、第2の主記憶領域1bにデータの書込みを行なわない。
また、フラグが立っている場合には、擬似アクセス手段42は、指定アドレスのオフセットアドレスに等価である第2の主記憶領域1bにおけるデータのアドレスが、差分情報に存在するか否かを判断する。
そして、擬似アクセス手段42は、指定アドレスのオフセットアドレスに等価である第2の主記憶領域1bにおけるデータのアドレスが差分情報に存在しないと判断した場合には、指定アドレスのオフセットアドレスに等価である第2の主記憶領域1bにおけるデータのアドレスを指定してデータの書込みを行なう。
また、擬似アクセス手段42は、指定アドレスのオフセットアドレスに等価である第2の主記憶領域1bにおけるデータのアドレスが差分情報に存在すると判断した場合には、差分情報に存在しない指定アドレスに対して、第2の主記憶領域1bにおけるデータの所定のアドレスを指定して第2の主記憶領域1bにデータの書込みを行なう。なお、所定のアドレスは、データを処理させないゴミ箱としてのアドレスであり、例えば、アドレス「0xbfffffff」に設定することが考えられる。
また、擬似アクセス手段42は、判定手段14による判定が完全に一致してない場合であっても、所定の条件を満たすことを、判定手段14が検出した場合に、以下のように処理する。なお、所定の条件を満たすこととして、例えば、第1の主記憶領域1aにおける各データと当該各データに対応する第2の主記憶領域1bにおける各データとの一致率が所定の基準(例えば、90%以上)を満たすこと、当該一致率の変動が収束したこと、又は所定の時間(例えば、1時間)の経過後に前記全てのデータが一致していないことなどが挙げられる。
擬似アクセス手段42は、一致していないデータのアドレスに対応する第2の主記憶領域1bにおけるデータのアドレスに対して、当該データを書込み、全てのデータを一致させる。
つぎに、本実施形態に係るプログラム更新装置によるファームウェアのバージョンアップの処理手順について、図7を用いて説明する。
ここで、デバイス100は、第1の補助記憶手段20aから第1の主記憶手段10aにロードされたファームウェアデータが、中央処理手段30により処理されている場合を想定する。
まず、デバイス100を使用するユーザは、バージョンアップデータの配布サイトやバージョンアップデータを保持するFTP(File Transfer Protocol:ファイル転送プロトコル)ファイルサーバから、バージョンアップデータをダウンロードする(ステップS1)。なお、ユーザは、CD−ROM(Compact Disc Read Only Memory)やフラッシュメモリなどのリムーバブルメディアを用いて、デバイス100にバージョンアップデータを読み込ませてもよい。
中央処理手段30は、図3(a)に示すように、第1の主記憶手段10aに記憶されたプログラムであるバージョンアッププロセスにおけるバージョンアップデータ書込手段11により、第2の補助記憶手段20bにバージョンアップデータを書き込む(ステップS2)。
そして、中央処理手段30は、図3(b)に示すように、バージョンアッププロセスにおけるバージョンアップデータ展開手段12により、第2の補助記憶手段20bへのバージョンアップデータの書込みの完了を認識すると、空き時間を利用して、第2の主記憶手段10bにバージョンアップデータを展開する(ステップS3)。
中央処理手段30は、図4に示すように、バージョンアッププロセスにおける差分情報設定手段13により、第1のマップファイル及び第2のマップファイルに基づき、差分情報を抽出し、メモリ管理手段40の差分情報記憶手段41における差分設定領域に差分情報を設定する(ステップS4)。この場合に、中央処理手段30は、差分情報設定手段13により、擬似アクセス手段42による機能の有効又は無効の情報を示すフラグを設定する。
そして、メモリ管理手段40の擬似アクセス手段42は、図5に示すように、中央処理手段30が第1の主記憶領域1aにおけるデータのアドレスを指定して第1の主記憶領域1aにデータの書込み(ステップS5)を行なう度に、差分情報記憶手段41の差分設定領域に設定された差分情報を参照して、以下の処理を行なう。
ここで、例えば、C言語で扱う主記憶領域1は、一般的に、プログラム領域(テキスト領域)、静的領域、スタック領域及びヒープ領域の4つに大別され、図5においては、静的領域、スタック領域及びヒープ領域のみを示している。
なお、プログラム領域は、プログラムを実行するための機械語に翻訳されたプログラム(プログラムコード)が格納される領域であり、この機械語の命令が1行づつ実行されることでプログラムが実行されることになる。
また、スタック領域は、C言語の自動変数(多くのローカル変数)や、自動変数以外に、関数の引数、関数の戻り値、長い計算式の一時変数などが格納される領域である。また、CPUのレジスタを一時的に退避させる領域でもある。
また、ヒープ領域は、malloc関数などのメモリ割り当て関数を用いてメモリをプログラム中で動的に確保する場合に、割り当てられる領域である。また、静的領域は、グローバル変数(外部変数)などの静的変数が格納される領域である。
まず、擬似アクセス手段42は、指定アドレスに対応する第2の主記憶領域1bにおけるデータのアドレスが差分情報に存在するか否かを判断する(ステップS6)。
ステップS6において、指定アドレスに対応する第2の主記憶領域1bにおけるデータのアドレスが差分情報に存在すると判断した場合には、擬似アクセス手段42は、差分情報に基づき、指定アドレスに対応する第2の主記憶領域1bにおけるデータのアドレスを指定して第2の主記憶領域1bにデータの書込みを行なう(ステップS7)。
そして、中央処理手段30は、図6に示すように、バージョンアッププロセスにおける判定手段14により、第1の主記憶領域1aにおける各データと、当該各データに対応する第2の主記憶領域1bにおける各データとの一致を判定する(ステップS8)。
ステップS8において、第1の主記憶領域1aにおける各データと、当該各データに対応する第2の主記憶領域1bにおける各データとが、全て一致すると判断した場合には、中央処理手段30は、図6に示すように、バージョンアッププロセスにおける運用切替手段15により、プログラムカウンタ31に記憶した第1の主記憶領域1aにおける各データのアドレスを、第2の主記憶領域1bにおける各データのアドレスに変更する。これにより、中央処理手段30は、第1の主記憶手段10aから第2の主記憶手段10bに運用を切り替え(ステップS9)、デバイス100におけるファームウェアのバージョンアップを終了する。
また、ステップ8において、第1の主記憶領域1aにおける各データと、当該各データに対応する第2の主記憶領域1bにおける各データとが、完全には一致していないと判断した場合には、判定手段14は、前述した所定の条件を満たすか否かを判断する(ステップS10)。
ステップ10において、所定の条件を満たすと判断した場合には、擬似アクセス手段42は、一致していないデータのアドレスに対応する第2の主記憶領域1bにおけるデータのアドレスに対して、当該一致していないデータを書込み(ステップS11)、全てのデータを一致させ、前述したステップS9に進む。
また、ステップ10において、所定の条件を満たしていないと判断した場合には、前述したステップS5に戻る。
なお、前述したステップS6において、指定アドレスに対応する第2の主記憶領域1bにおけるデータのアドレスが差分情報に存在しないと判断した場合には、擬似アクセス手段42は、差分情報記憶手段41に設定されたフラグが立っているか否かを判断する(ステップS12)。
ステップS12において、フラグが立っていないと判断した場合には、擬似アクセス手段42は、差分情報に存在しない指定アドレスに対して、第2の主記憶領域1bにデータの書込みを行なうことなく、前述したステップS8に進む。
また、ステップS12において、フラグが立っていると判断した場合には、擬似アクセス手段42は、指定アドレスのオフセットアドレスに等価である第2の主記憶領域1bにおけるデータのアドレスが、差分情報に存在するか否かを判断する(ステップS13)。
ステップS13において、差分情報に存在しないと判断した場合には、擬似アクセス手段42は、指定アドレスのオフセットアドレスに等価である第2の主記憶領域1bにおけるデータのアドレスを指定してデータの書込みを行ない(ステップS14)、前述したステップS8に進む。
また、ステップS13において、差分情報に存在すると判断した場合には、擬似アクセス手段42は、差分情報に存在しない指定アドレスに対して、第2の主記憶領域1bにおけるデータの前述した所定のアドレスを指定して、第2の主記憶領域1bにデータの書込みを行ない(ステップS15)、前述したステップS8に進む。
以上のように、本実施形態に係るプログラム更新装置においては、アプリケーション及びOSがバージョンアップ前に使用していた主記憶領域1におけるデータ構造を維持することで、デバイス100を再起動することなく、当該アプリケーション及びOSによる処理を継続して実行できるという作用効果を奏する。
[付記] 以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1) 実行非対象のプログラム及び処理非対象データを補助記憶手段に記憶し、実行対象のプログラム及び処理対象データを主記憶手段に記憶し、当該主記憶手段に記憶されるプログラムによってデータの処理を行なう中央処理手段が、前記実行対象のプログラム及び処理対象データから前記実行非対象のプログラム及び処理非対象データに対象を変更するプログラム更新方法において、前記処理対象データのアドレス及び前記処理非対象データのアドレスの差分情報を抽出する差分情報抽出ステップと、前記差分情報を差分情報記憶手段に設定する差分情報設定ステップと、前記中央処理手段が一の主記憶手段の主記憶領域におけるデータのアドレスを指定して当該主記憶領域にデータの書込みを行なう場合に、前記差分情報に基づき、前記指定アドレスに対応する他の主記憶手段の主記憶領域におけるデータのアドレスを指定して当該主記憶領域に前記データの書込みを行なう擬似アクセスステップと、前記一の主記憶手段の主記憶領域における各データと、当該各データに対応する前記他の主記憶手段の主記憶領域における各データとの一致を判定する判定ステップと、前記判定手段が前記データが一致すると判定した場合に、前記一の主記憶手段から前記他の主記憶手段に運用を切り替える運用切替ステップと、を有することを特徴とするプログラム更新方法。
(付記2) 前記差分情報抽出ステップが、前記補助記憶手段から前記一の主記憶手段にファームウェアデータをロードして展開される当該ファームウェアデータの位置情報である第1のマップファイル、及び前記補助記憶手段から前記他の主記憶手段に前記ファームウェアの更新用のバージョンアップデータをロードして展開される当該バージョンアップデータの位置情報である第2のマップファイルにおける、各データのアドレスに対して、当該データの種類毎に対応させたアドレスの差分情報を抽出することを特徴とするプログラム更新方法。
(付記3) 前記中央処理手段が前記一の主記憶手段の主記憶領域におけるデータのアドレスを指定して当該主記憶領域にデータの書込みを行なう場合であり、当該指定アドレスに対応する前記他の主記憶手段の主記憶領域におけるデータのアドレスが前記差分情報に存在しない場合に、前記擬似アクセスステップが、前記指定アドレスのオフセットアドレスに等価である前記他の主記憶手段の主記憶領域におけるデータのアドレスを指定して前記データの書込みを行なうことを特徴とするプログラム更新方法。
(付記4) 前記指定アドレスのオフセットアドレスに等価である前記他の主記憶手段の主記憶領域におけるデータのアドレスが、前記差分情報に存在する場合に、前記擬似アクセスステップが、前記差分情報に存在しない指定アドレスに対して、前記他の主記憶手段の主記憶領域におけるデータの所定のアドレスを指定して当該主記憶領域に前記データの書込みを行なうことを特徴とするプログラム更新方法。
(付記5) 前記差分情報設定ステップが、前記差分情報に存在しない指定アドレスのオフセットアドレスに等価である前記他の主記憶手段の主記憶領域におけるデータのアドレスを指定して当該主記憶領域に前記データの書込みを行なう機能の有効又は無効の情報を示すフラグを設定し、前記フラグが立っていない場合に、前記擬似アクセスステップが、前記差分情報に存在しない指定アドレスに対して、前記他の主記憶手段の主記憶領域にデータの書込みを行なわないことを特徴とするプログラム更新方法。
(付記6) 前記判定ステップが、前記一の主記憶手段の主記憶領域における各データと当該各データに対応する前記他の主記憶手段の主記憶領域における各データとの一致率が所定の基準を満たすこと、当該一致率の変動が収束したこと、又は所定の時間の経過後に前記全てのデータが一致していないことを検出した場合に、前記擬似アクセスステップが、一致していないデータのアドレスに対応する前記他の主記憶手段の主記憶領域におけるデータのアドレスに対して、当該データを書込み、前記全てのデータを一致させることで、前記運用切替ステップが、前記一の主記憶手段から前記他の主記憶手段への運用を切り替えることを特徴とするプログラム更新方法。
(付記5) 実行非対象のプログラム及び処理非対象データを補助記憶手段に記憶し、実行対象のプログラム及び処理対象データを主記憶手段に記憶し、当該主記憶手段に記憶されるプログラムによってデータの処理を行なう中央処理手段が、前記実行対象のプログラム及び処理対象データから前記実行非対象のプログラム及び処理非対象データに対象を変更するプログラム更新装置において、前記処理対象データのアドレス及び前記処理非対象データのアドレスの差分情報を抽出する差分情報設定手段と、前記差分情報を記憶する差分情報記憶手段と、前記中央処理手段が一の主記憶手段の主記憶領域におけるデータのアドレスを指定して当該主記憶領域にデータの書込みを行なう場合に、前記差分情報に基づき、前記指定アドレスに対応する他の主記憶手段の主記憶領域におけるデータのアドレスを指定して当該主記憶領域に前記データの書込みを行なう擬似アクセス手段と、前記一の主記憶手段の主記憶領域における各データと、当該各データに対応する前記他の主記憶手段の主記憶領域における各データとの一致を判定する判定手段と、前記判定手段が前記データが一致すると判定した場合に、前記一の主記憶手段から前記他の主記憶手段に運用を切り替える運用切替手段と、を備えることを特徴とするプログラム更新装置。
本実施形態に係るデバイスの主要な構成を示す概略図である。 図1に示す主記憶手段のデータの書込み又は読出しの処理を説明するためのブロック図である。 (a)は図1に示すバージョンアップデータ書込手段による処理を説明するための説明図であり、(b)は図1に示すバージョンアップデータ展開手段による処理を説明するための説明図である。 図1に示す差分情報設定手段による処理を説明するための説明図である。 図1に示す擬似アクセス手段による処理を説明するための説明図である。 図1に示す判定手段及び運用切替手段による処理を説明するための説明図である。 図1に示すプログラム更新装置によるバージョンアップの処理手順を示すフローチャートである。
符号の説明
1 主記憶領域
1a 第1の主記憶領域
1b 第2の主記憶領域
2 アドレス選択回路
3 読み書き回路
10 主記憶手段
10a 第1の主記憶手段
10b 第2の主記憶手段
11 バージョンアップデータ書込手段
12 バージョンアップデータ展開手段
13 差分情報設定手段
14 判定手段
15 運用切替手段
20 補助記憶手段
20a 第1の補助記憶手段
20b 第2の補助記憶手段
30 中央処理手段
31 プログラムカウンタ
40 メモリ管理手段
41 差分情報記憶手段
42 擬似アクセス手段
100 デバイス

Claims (6)

  1. 実行非対象のプログラム及び処理非対象データを補助記憶手段に記憶し、実行対象のプログラム及び処理対象データを主記憶手段に記憶し、当該主記憶手段に記憶されるプログラムによってデータの処理を行なう中央処理手段が、前記実行対象のプログラム及び処理対象データから前記実行非対象のプログラム及び処理非対象データに対象を変更するプログラム更新方法において、
    前記処理対象データのアドレス及び前記処理非対象データのアドレスの差分情報を抽出する差分情報抽出ステップと、
    前記差分情報を差分情報記憶手段に設定する差分情報設定ステップと、
    前記中央処理手段が一の主記憶手段の主記憶領域におけるデータのアドレスを指定して当該主記憶領域にデータの書込みを行なう場合に、前記差分情報に基づき、前記指定アドレスに対応する他の主記憶手段の主記憶領域におけるデータのアドレスを指定して当該主記憶領域に前記データの書込みを行なう擬似アクセスステップと、
    前記一の主記憶手段の主記憶領域における各データと、当該各データに対応する前記他の主記憶手段の主記憶領域における各データとの一致を判定する判定ステップと、
    前記判定手段が前記データが一致すると判定した場合に、前記一の主記憶手段から前記他の主記憶手段に運用を切り替える運用切替ステップと、
    を有し、
    前記差分情報抽出ステップが、前記補助記憶手段から前記一の主記憶手段にファームウェアデータをロードして展開される当該ファームウェアデータの位置情報である第1のマップファイル、及び前記補助記憶手段から前記他の主記憶手段に前記ファームウェアの更新用のバージョンアップデータをロードして展開される当該バージョンアップデータの位置情報である第2のマップファイルにおける、各データのアドレスに対して、当該データの種類毎に対応させたアドレスの差分情報を抽出し、
    前記中央処理手段が前記一の主記憶手段の主記憶領域におけるデータのアドレスを指定して当該主記憶領域にデータの書込みを行なう場合であり、当該指定アドレスに対応する前記他の主記憶手段の主記憶領域におけるデータのアドレスが前記差分情報に存在しない場合に、前記擬似アクセスステップが、前記指定アドレスのオフセットアドレスに等価である前記他の主記憶手段の主記憶領域におけるデータのアドレスを指定して前記データの書込みを行なうことを特徴とするプログラム更新方法。
  2. 前記請求項1に記載のプログラム更新方法において、
    前記指定アドレスのオフセットアドレスに等価である前記他の主記憶手段の主記憶領域におけるデータのアドレスが、前記差分情報に存在する場合に、前記擬似アクセスステップが、前記差分情報に存在しない指定アドレスに対して、前記他の主記憶手段の主記憶領域におけるデータの所定のアドレスを指定して当該主記憶領域に前記データの書込みを行なうことを特徴とするプログラム更新方法。
  3. 前記請求項1又は2に記載のプログラム更新方法において、
    前記差分情報設定ステップが、前記差分情報に存在しない指定アドレスのオフセットアドレスに等価である前記他の主記憶手段の主記憶領域におけるデータのアドレスを指定して当該主記憶領域に前記データの書込みを行なう機能の有効又は無効の情報を示すフラグを設定し、
    前記フラグが立っていない場合に、前記擬似アクセスステップが、前記差分情報に存在しない指定アドレスに対して、前記他の主記憶手段の主記憶領域にデータの書込みを行なわないことを特徴とするプログラム更新方法。
  4. 実行非対象のプログラム及び処理非対象データを補助記憶手段に記憶し、実行対象のプログラム及び処理対象データを主記憶手段に記憶し、当該主記憶手段に記憶されるプログラムによってデータの処理を行なう中央処理手段が、前記実行対象のプログラム及び処理対象データから前記実行非対象のプログラム及び処理非対象データに対象を変更するプログラム更新方法において、
    前記処理対象データのアドレス及び前記処理非対象データのアドレスの差分情報を抽出する差分情報抽出ステップと、
    前記差分情報を差分情報記憶手段に設定する差分情報設定ステップと、
    前記中央処理手段が一の主記憶手段の主記憶領域におけるデータのアドレスを指定して当該主記憶領域にデータの書込みを行なう場合に、前記差分情報に基づき、前記指定アドレスに対応する他の主記憶手段の主記憶領域におけるデータのアドレスを指定して当該主記憶領域に前記データの書込みを行なう擬似アクセスステップと、
    前記一の主記憶手段の主記憶領域における各データと、当該各データに対応する前記他の主記憶手段の主記憶領域における各データとの一致を判定する判定ステップと、
    前記判定手段が前記データが一致すると判定した場合に、前記一の主記憶手段から前記他の主記憶手段に運用を切り替える運用切替ステップと、
    を有し、
    前記差分情報抽出ステップが、前記補助記憶手段から前記一の主記憶手段にファームウェアデータをロードして展開される当該ファームウェアデータの位置情報である第1のマップファイル、及び前記補助記憶手段から前記他の主記憶手段に前記ファームウェアの更新用のバージョンアップデータをロードして展開される当該バージョンアップデータの位置情報である第2のマップファイルにおける、各データのアドレスに対して、当該データの種類毎に対応させたアドレスの差分情報を抽出し、
    前記判定ステップが、前記一の主記憶手段の主記憶領域における各データと当該各データに対応する前記他の主記憶手段の主記憶領域における各データとの一致率が所定の基準を満たすこと、当該一致率の変動が収束したこと、又は所定の時間の経過後に前記全てのデータが一致していないことを検出した場合に、
    前記擬似アクセスステップが、一致していないデータのアドレスに対応する前記他の主記憶手段の主記憶領域におけるデータのアドレスに対して、当該データを書込み、前記全てのデータを一致させることで、
    前記運用切替ステップが、前記一の主記憶手段から前記他の主記憶手段への運用を切り替えることを特徴とするプログラム更新方法。
  5. 実行非対象のプログラム及び処理非対象データを補助記憶手段に記憶し、実行対象のプログラム及び処理対象データを主記憶手段に記憶し、当該主記憶手段に記憶されるプログラムによってデータの処理を行なう中央処理手段が、前記実行対象のプログラム及び処理対象データから前記実行非対象のプログラム及び処理非対象データに対象を変更するプログラム更新装置において、
    前記処理対象データのアドレス及び前記処理非対象データのアドレスの差分情報を抽出する差分情報設定手段と、
    前記差分情報を記憶する差分情報記憶手段と、
    前記中央処理手段が一の主記憶手段の主記憶領域におけるデータのアドレスを指定して当該主記憶領域にデータの書込みを行なう場合に、前記差分情報に基づき、前記指定アドレスに対応する他の主記憶手段の主記憶領域におけるデータのアドレスを指定して当該主記憶領域に前記データの書込みを行なう擬似アクセス手段と、
    前記一の主記憶手段の主記憶領域における各データと、当該各データに対応する前記他の主記憶手段の主記憶領域における各データとの一致を判定する判定手段と、
    前記判定手段が前記データが一致すると判定した場合に、前記一の主記憶手段から前記他の主記憶手段に運用を切り替える運用切替手段と、
    を備え、
    前記差分情報設定手段が、前記補助記憶手段から前記一の主記憶手段にファームウェアデータをロードして展開される当該ファームウェアデータの位置情報である第1のマップファイル、及び前記補助記憶手段から前記他の主記憶手段に前記ファームウェアの更新用のバージョンアップデータをロードして展開される当該バージョンアップデータの位置情報である第2のマップファイルにおける、各データのアドレスに対して、当該データの種類毎に対応させたアドレスの差分情報を抽出し、
    前記中央処理手段が前記一の主記憶手段の主記憶領域におけるデータのアドレスを指定して当該主記憶領域にデータの書込みを行なう場合であり、当該指定アドレスに対応する前記他の主記憶手段の主記憶領域におけるデータのアドレスが前記差分情報に存在しない場合に、前記擬似アクセス手段が、前記指定アドレスのオフセットアドレスに等価である前記他の主記憶手段の主記憶領域におけるデータのアドレスを指定して前記データの書込みを行なうことを特徴とするプログラム更新装置。
  6. 実行非対象のプログラム及び処理非対象データを補助記憶手段に記憶し、実行対象のプログラム及び処理対象データを主記憶手段に記憶し、当該主記憶手段に記憶されるプログラムによってデータの処理を行なう中央処理手段が、前記実行対象のプログラム及び処理対象データから前記実行非対象のプログラム及び処理非対象データに対象を変更するプログラム更新装置において、
    前記処理対象データのアドレス及び前記処理非対象データのアドレスの差分情報を抽出する差分情報設定手段と、
    前記差分情報を記憶する差分情報記憶手段と、
    前記中央処理手段が一の主記憶手段の主記憶領域におけるデータのアドレスを指定して当該主記憶領域にデータの書込みを行なう場合に、前記差分情報に基づき、前記指定アドレスに対応する他の主記憶手段の主記憶領域におけるデータのアドレスを指定して当該主記憶領域に前記データの書込みを行なう擬似アクセス手段と、
    前記一の主記憶手段の主記憶領域における各データと、当該各データに対応する前記他の主記憶手段の主記憶領域における各データとの一致を判定する判定手段と、
    前記判定手段が前記データが一致すると判定した場合に、前記一の主記憶手段から前記他の主記憶手段に運用を切り替える運用切替手段と、
    を備え、
    前記差分情報設定手段が、前記補助記憶手段から前記一の主記憶手段にファームウェアデータをロードして展開される当該ファームウェアデータの位置情報である第1のマップファイル、及び前記補助記憶手段から前記他の主記憶手段に前記ファームウェアの更新用のバージョンアップデータをロードして展開される当該バージョンアップデータの位置情報である第2のマップファイルにおける、各データのアドレスに対して、当該データの種類毎に対応させたアドレスの差分情報を抽出し、
    前記判定手段が、前記一の主記憶手段の主記憶領域における各データと当該各データに対応する前記他の主記憶手段の主記憶領域における各データとの一致率が所定の基準を満たすこと、当該一致率の変動が収束したこと、又は所定の時間の経過後に前記全てのデータが一致していないことを検出した場合に、
    前記擬似アクセス手段が、一致していないデータのアドレスに対応する前記他の主記憶手段の主記憶領域におけるデータのアドレスに対して、当該データを書込み、前記全てのデータを一致させることで、
    前記運用切替手段が、前記一の主記憶手段から前記他の主記憶手段への運用を切り替えることを特徴とするプログラム更新装置。
JP2008250421A 2008-09-29 2008-09-29 プログラム更新方法及びプログラム更新装置 Expired - Fee Related JP5157789B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008250421A JP5157789B2 (ja) 2008-09-29 2008-09-29 プログラム更新方法及びプログラム更新装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008250421A JP5157789B2 (ja) 2008-09-29 2008-09-29 プログラム更新方法及びプログラム更新装置

Publications (2)

Publication Number Publication Date
JP2010079837A JP2010079837A (ja) 2010-04-08
JP5157789B2 true JP5157789B2 (ja) 2013-03-06

Family

ID=42210165

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008250421A Expired - Fee Related JP5157789B2 (ja) 2008-09-29 2008-09-29 プログラム更新方法及びプログラム更新装置

Country Status (1)

Country Link
JP (1) JP5157789B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7059985B2 (ja) * 2018-08-10 2022-04-26 株式会社デンソー 車両用電子制御システム、車両用マスタ装置、データ格納面情報の送信制御方法、データ格納面情報の送信制御プログラム、車両用マスタ装置側プログラム、センター装置、更新データの選定方法及びセンター装置側プログラム
WO2020032114A1 (ja) * 2018-08-10 2020-02-13 株式会社デンソー 車両用電子制御システム、車両用マスタ装置、データ格納面情報の送信制御方法及びデータ格納面情報の送信制御プログラム
CN117312043B (zh) * 2023-09-28 2024-08-20 杭州长川科技股份有限公司 校准参数读取、校准参数写入方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0895772A (ja) * 1994-09-22 1996-04-12 Toshiba Corp 計算機システム及びプログラム置換方法
JP3808240B2 (ja) * 1999-07-08 2006-08-09 Necエンジニアリング株式会社 データ構造変換システム、変換方法、変換プログラム記録媒体
JP2001275140A (ja) * 2000-03-28 2001-10-05 Matsushita Electric Ind Co Ltd 運用/待機構成の通信制御装置及び運用/待機系切替方法
JP2002044238A (ja) * 2000-07-27 2002-02-08 Nec Eng Ltd 構内交換機
JP2002333990A (ja) * 2001-03-05 2002-11-22 Omron Corp プログラム更新装置およびプログラム更新方法
JP2005092708A (ja) * 2003-09-19 2005-04-07 Victor Co Of Japan Ltd ソフトウェア更新システム及びソフトウェア更新方法並びにコンピュータプログラム
US9298472B2 (en) * 2004-01-27 2016-03-29 Nec Corporation High-speed restart method, information processing device, and program

Also Published As

Publication number Publication date
JP2010079837A (ja) 2010-04-08

Similar Documents

Publication Publication Date Title
US10642596B2 (en) Embedded device and program updating method
CN100474247C (zh) 在计算机服务器系统中更新固件的方法
US7313683B2 (en) Computer system and method which boots from a bootup-memory-image stored in nonvolatile memory and copies data within an address range of predetermined width to main memory so that the system boots quickly after initialization
US6668261B1 (en) Method of upgrading a program using associated configuration data
JP3593241B2 (ja) 計算機の再起動方法
JP5342302B2 (ja) ファームウェア更新システム、ファームウェア配信サーバ、及びプログラム
CN113064604B (zh) 一种固件升级方法和装置
WO2011024688A1 (ja) ファームウェア更新システム、及び情報機器、並びにプログラム
US8078908B2 (en) Data storage device and method
US7512777B2 (en) Method and system for maintaining system management BIOS
CN104360877A (zh) 基于Bootloader自更新的ECU固件更新方法
CN103299276A (zh) 嵌入式装置的软件更新过程
CN107566169B (zh) 一种基于openwrt的固件升级方法及路由器
JP2002132518A (ja) 仮想計算機システムおよび仮想計算機間の入出力装置交換方法
JP2011059866A (ja) コントローラ、及びデータ記憶装置
CN113641378B (zh) 光模块程序升级方法、装置、设备及可读存储介质
CN107608905B (zh) 擦写Flash数据的方法及装置
CN109582332B (zh) 互联网摄像机的系统升级方法及装置
CN111045712A (zh) 一种具有备份功能的单系统升级方法及系统
JP5157789B2 (ja) プログラム更新方法及びプログラム更新装置
US20070050612A1 (en) Boot program update and restoration system and method thereof
CN101615129A (zh) 应用于分布式系统中的升级方法及版本管理客户端
WO2000054133A1 (fr) Dispositif de traitement de donnees, procede de sauvegarde/chargement de donnees et support de memorisation de donnees
JP2009048557A (ja) データ更新装置及びデータ更新方法及びデータ更新プログラム
WO2017173924A1 (zh) 切换文件系统的方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110708

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120813

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120821

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121009

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: 20121113

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121126

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151221

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees