(57)【要約】      （修正有）【課題】ソフトウエアのバージョンダウンを行う場合において、ソフトウエアの実行に使用されるデータのフォーマットを適切に変更する。【解決手段】本情報処理装置は、プロセッサと記憶装置とを有する制御装置を有する。制御装置は、記憶装置の第１領域に格納された第１版のソフトウエアの実行中に、記憶装置の第２領域に格納された第１版のソフトウエアを第２版に変更する場合、第１版から第２版への変更がバージョンダウンであるか判定する判定部と、第１版から第２版への変更がバージョンダウンである場合、ソフトウエアの実行時に使用されるデータのフォーマットを変更するためのプログラムと変更前の版情報及び変更後の版情報とが対応付けられた対応関係情報に基づき、第１版から第２版への変更に対応付けられたプログラムを特定し、特定された当該プログラムをプロセッサに実行させる変更部とを有する。【選択図】図３
2019074950.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと記憶装置とを有する制御装置を有する情報処理装置であって、
前記制御装置が、
前記記憶装置の第１領域に格納された第１バージョンのソフトウエアの実行中に、前記記憶装置の第２領域に格納された前記第１バージョンの前記ソフトウエアを第２バージョンに変更する場合、前記第１バージョンから前記第２バージョンへの変更がバージョンダウンであるか判定する第１判定部と、
前記第１バージョンから前記第２バージョンへの変更がバージョンダウンであると前記第１判定部により判定された場合、前記ソフトウエアの実行時に使用されるデータのフォーマットを変更するためのプログラムと変更前のバージョン情報及び変更後のバージョン情報とが対応付けられた対応関係情報に基づき、前記第１バージョンから前記第２バージョンへの変更に対応付けられたプログラムを特定し、特定された当該プログラムを前記プロセッサに実行させる第１変更部と
を有する、情報処理装置。
【請求項２】
前記制御装置が、
特定された前記プログラムが前記プロセッサに実行される前に、前記データに対してアクセスするプロセスを停止する停止部
をさらに有する、請求項１記載の情報処理装置。
【請求項３】
前記制御装置が、
前記第１バージョンから前記第２バージョンへの変更がバージョンダウンではないと前記第１判定部により判定された場合、前記第１領域に格納された前記第１バージョンの前記ソフトウエアの実行が停止され且つ前記第２領域に格納された前記第２バージョンの前記ソフトウエアが起動された後に、前記データのバージョンが前記第１バージョンから前記第２バージョンに変更済みであるか判定する第２判定部と、
前記データのバージョンが前記第１バージョンから前記第２バージョンに変更済みではないと前記第２判定部により判定された場合、前記第１バージョンから前記第２バージョンへの変更に対応付けられたプログラムを前記対応関係情報に基づき特定し、特定された当該プログラムを前記プロセッサに実行させる第２変更部と
をさらに有する、請求項１又は２記載の情報処理装置。
【請求項４】
前記制御装置が、
前記第２領域に格納された前記第２バージョンの前記ソフトウエアが起動され、且つ、前記データのバージョンが前記第１バージョンから前記第２バージョンに変更された場合、前記データに対してアクセスするプロセスを起動する起動部
をさらに有する、請求項３記載の情報処理装置。
【請求項５】
前記第１判定部は、
前記第１領域に格納された前記第１バージョンの前記ソフトウエアに含まれるバージョン情報と、前記記憶装置の領域のうち前記第２バージョンの前記ソフトウエアを格納する領域から読み出したバージョン情報との比較に基づき、前記第１バージョンから前記第２バージョンへの変更がバージョンダウンであるか判定する、
請求項１乃至４のいずれか１つ記載の情報処理装置。
【請求項６】
プロセッサと記憶装置とを有し且つ情報処理装置を制御する制御装置であって、
前記記憶装置の第１領域に格納された第１バージョンのソフトウエアの実行中に、前記記憶装置の第２領域に格納された前記第１バージョンの前記ソフトウエアを第２バージョンに変更する場合、前記第１バージョンから前記第２バージョンへの変更がバージョンダウンであるか判定する第１判定部と、
前記第１バージョンから前記第２バージョンへの変更がバージョンダウンであると前記第１判定部により判定された場合、前記ソフトウエアの実行時に使用されるデータのフォーマットを変更するためのプログラムと変更前のバージョン情報及び変更後のバージョン情報とが対応付けられた対応関係情報に基づき、前記第１バージョンから前記第２バージョンへの変更に対応付けられたプログラムを特定し、特定された当該プログラムを前記プロセッサに実行させる第１変更部と、
を有する制御装置。
【請求項７】
プロセッサと記憶装置とを有し且つ情報処理装置を制御する制御装置に実行させる制御プログラムであって、
前記制御装置の前記プロセッサに、
前記記憶装置の第１領域に格納された第１バージョンのソフトウエアを実行中に、前記記憶装置の第２領域に格納された前記第１バージョンの前記ソフトウエアを第２バージョンに変更する場合、前記第１バージョンから前記第２バージョンへの変更がバージョンダウンであるか判定し、
前記第１バージョンから前記第２バージョンへの変更がバージョンダウンであると判定された場合、前記ソフトウエアの実行時に使用されるデータのフォーマットを変更するためのプログラムと変更前のバージョン情報及び変更後のバージョン情報とが対応付けられた対応関係情報に基づき、前記第１バージョンから前記第２バージョンへの変更に対応付けられたプログラムを特定し、特定された当該プログラムを実行する
処理を実行させる制御プログラム。
【請求項８】
プロセッサと記憶装置とを有し且つ情報処理装置を制御する制御装置が実行する制御方法であって、
前記制御装置の前記プロセッサが、
前記記憶装置の第１領域に格納された第１バージョンのソフトウエアを実行中に、前記記憶装置の第２領域に格納された前記第１バージョンの前記ソフトウエアを第２バージョンに変更する場合、前記第１バージョンから前記第２バージョンへの変更がバージョンダウンであるか判定し、
前記第１バージョンから前記第２バージョンへの変更がバージョンダウンであると判定された場合、前記ソフトウエアの実行時に使用されるデータのフォーマットを変更するためのプログラムと変更前のバージョン情報及び変更後のバージョン情報とが対応付けられた対応関係情報に基づき、前記第１バージョンから前記第２バージョンへの変更に対応付けられたプログラムを特定し、特定された当該プログラムを実行する
処理を実行する制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、制御装置、制御方法及び制御プログラムに関する。
【背景技術】
【０００２】
コンピュータにインストールされたソフトウエアは、機能の改善或いは不具合の解消等のために新しいバージョンに変更される。新しいバージョンに変更した後に不具合が生じた場合（例えば、従来からインストールされている他のソフトウエアとの関係で動作が不安定になる場合等）には、新しいバージョンから古いバージョンに戻されることがある。古いバージョンから新しいバージョンへの変更はバージョンアップと呼ばれ、新しいバージョンから古いバージョンへの変更はバージョンダウンと呼ばれる。
【０００３】
バージョン変更においては、ソフトウエアのコードだけではなく、ソフトウエアの実行中に使用されるデータのフォーマットも変更される。ソフトウエアのバージョンが変更されたにも関わらずデータのフォーマットが変更されない場合、バージョン変更後のソフトウエアが動作できなくなることがある。
【０００４】
このような問題に関して、或る特許文献は、以下のような技術を開示する（特許文献１）。具体的には、データのフォーマットを古いバージョンから新しいバージョンに変更するための変換プログラムが、新しいバージョンのソフトウエアと共に取得される。そして、新しいバージョンのソフトウエアの実行を開始する時に変換プログラムが実行される。
【０００５】
但し、この技術は、バージョンアップに対して適用することを前提とした技術であり、バージョンダウン時においてデータのフォーマットを変更することを想定した技術ではない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−９２７０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、１つの側面では、ソフトウエアのバージョンダウンを行う場合において、ソフトウエアの実行に使用されるデータのフォーマットを適切に変更するための技術を提供することである。
【課題を解決するための手段】
【０００８】
一態様に係る情報処理装置は、プロセッサと記憶装置とを有する制御装置を有する。そして、上記制御装置は、記憶装置の第１領域に格納された第１バージョンのソフトウエアの実行中に、記憶装置の第２領域に格納された第１バージョンのソフトウエアを第２バージョンに変更する場合、第１バージョンから第２バージョンへの変更がバージョンダウンであるか判定する第１判定部と、第１バージョンから第２バージョンへの変更がバージョンダウンであると第１判定部により判定された場合、ソフトウエアの実行時に使用されるデータのフォーマットを変更するためのプログラムと変更前のバージョン情報及び変更後のバージョン情報とが対応付けられた対応関係情報に基づき、第１バージョンから第２バージョンへの変更に対応付けられたプログラムを特定し、特定された当該プログラムをプロセッサに実行させる第１変更部とを有する。
【発明の効果】
【０００９】
１つの側面では、ソフトウエアのバージョンダウンを行う場合において、ソフトウエアの実行に使用されるデータのフォーマットを適切に変更できるようになる。
【図面の簡単な説明】
【００１０】
【図１】図１は、ファームウエアのバージョンアップを実行する手順の一例を示す図である。
【図２】図２は、ファームウエアのバージョンダウンを実行する手順の一例を示す図である。
【図３】図３は、本実施の形態における情報処理装置のハードウエア構成図である。
【図４】図４は、制御装置のブロック図である。
【図５】図５は、ファームウエアの機能ブロック図である。
【図６】図６は、対応関係データの一例を示す図である。
【図７】図７は、ファームウエアのバージョン変更時に制御装置が実行する処理の処理フローを示す図である。
【図８】図８は、設定データのフォーマットの変更について説明するための図である。
【図９】図９は、設定データのフォーマットの変更について説明するための図である。
【図１０】図１０は、ファームウエアのバージョン変更時に制御装置が実行する処理の処理フローを示す図である。
【発明を実施するための形態】
【００１１】
以下では、ソフトウエアの一種であるファームウエアのバージョン変更を例として説明を行う。
【００１２】
図１は、ファームウエアのバージョンアップを実行する手順の一例を示す図である。図１の例においては、ファームウエアを格納するための領域として領域Ａと領域Ｂとが有り、ファームウエアの実行に使用される設定データを格納するための領域としてデータ領域が有る。
【００１３】
領域Ａにおいてｖｅｒ１．０のファームウエアが動作しており、データ領域に格納された設定データのバージョンはｖｅｒ１．０である。ファームウエアをｖｅｒ２．０にバージョンアップするため、ファームウエアが動作していない領域Ｂにｖｅｒ２．０のファームウエアが書き込まれる。そして、ファームウエアの動作領域を領域Ａから領域Ｂに切り替えるための設定が行われ、領域Ａにおいて動作しているファームウエアは停止する。
【００１４】
切替の設定に従い、領域Ｂにおけるｖｅｒ２．０のファームウエアが起動する。ｖｅｒ２．０のファームウエアは、データ領域に格納された設定データのバージョンをｖｅｒ１．０からｖｅｒ２．０に変更する。そして、バージョンアップされた設定データを使用して、領域Ｂに格納されたｖｅｒ２．０のファームウエアが動作する。
【００１５】
普通、新しいバージョンのファームウエアを作る時点においては古いバージョンのフォーマットを知ることができるので、古いバージョンのフォーマットを新しいバージョンのフォーマットに変更するためのフォーマット変更プログラムを作ることができる。よって、フォーマット変更プログラムを新しいバージョンのファームウエアに組み込んでおけば、図１の例のように、新しいバージョンの起動時にフォーマットを変更することができる。
【００１６】
図２は、ファームウエアのバージョンダウンを実行する手順の一例を示す図である。図２の例においては、図１の例と同じように、ファームウエアを格納するための領域として領域Ａと領域Ｂとが有り、ファームウエアの実行に使用される設定データを格納するための領域としてデータ領域が有る。
【００１７】
領域Ａにおいてｖｅｒ２．０のファームウエアが動作しており、データ領域に格納された設定データのバージョンはｖｅｒ２．０である。ファームウエアをｖｅｒ１．０にバージョンダウンするため、ファームウエアが動作していない領域Ｂにｖｅｒ１．０のファームウエアが書き込まれる。そして、ファームウエアの動作領域を領域Ａから領域Ｂに切り替えるための設定が行われ、領域Ａにおいて動作しているファームウエアは停止する。
【００１８】
切替の設定に従い、領域Ｂにおけるｖｅｒ１．０のファームウエアが起動する。しかし、以下で説明するように、ｖｅｒ１．０のファームウエアは、データ領域に格納された設定データのバージョンをｖｅｒ２．０からｖｅｒ１．０に変更することができない。よって、領域Ｂにおいて起動したｖｅｒ１．０のファームウエアは、動作を開始することができない。
【００１９】
普通、古いバージョンのファームウエアを作る時点においては新しいバージョンのフォーマットを知ることができないので、新しいバージョンのフォーマットを古いバージョンのフォーマットに変更するためのフォーマット変更プログラムを作ることはできない。従って、新しいバージョンのファームウエアの起動時に設定データのフォーマットを変更する技術によっては、バージョンダウン時に設定データのフォーマットを変更することはできない。
【００２０】
なお、新しいバージョンのフォーマットが決まった後にフォーマット変換プログラムを古いバージョンのファームウエアに組み込むことも考えられるが、その場合にはその時点において頒布されている古いバージョンのファームウエアを更新する作業が必要になる。
【００２１】
また、新しいバージョンの設定データのフォーマットを古いバージョンのファームウエアが解析可能なものに限定することも考えられるが、ファームウエアのバージョン変更において機能改善の余地が狭められる。
【００２２】
また、設定データの内容（例えば設定値など）の引き継ぎをせずにバージョン毎に異なる内容を用意することも考えられるが、その場合には新しいバージョンのファームウエアに対して管理者等が再度設定をすることになる。
【００２３】
そこで本実施の形態においては、以下で説明するような方法によって、ファームウエアのバージョンダウンを実行する場合に設定データのフォーマットを適切に変更することを実現する。
【００２４】
図３は、本実施の形態における情報処理装置１のハードウエア構成図である。情報処理装置１は、例えばサーバであり、ハードウエアコンポーネント１５と、ハードウエアコンポーネント１５の監視及び制御等を実行するサービスプロセッサ（Service Processor）としての制御装置１０とを有する。本実施の形態におけるハードウエアコンポーネント１５は、１又は複数のＣＰＵ（Central Processing Unit）１５１と、１又は複数のメモリ１５２と、１又は複数の冷却ファン１５３とを含む。但し、ハードウエアコンポーネント１５がその他のハードウエアコンポーネント（例えばＮＩＣ（Network Interface Card）など）を含んでもよい。本実施の形態においては、制御装置１０が動作するためのファームウエアのバージョン変更、及び、ファームウエアの実行に使用される設定データのバージョン変更が実行される。設定データはハードウエアコンポーネント１５の監視及び制御に関する値であり、例えば、ＣＰＵ１５１の設定値、ＣＰＵ１５１の温度の異常を検知するための閾値、冷却ファン１５３の回転数の設定値及びエラーコード等を含む。
【００２５】
図４は、制御装置１０のブロック図である。制御装置１０は、不揮発性メモリであるフラッシュメモリ１０１と、プロセッサとしてのＭＰＵ（Micro Processing Unit）１０３と、例えばレジスタである切替情報記憶装置１０５とを有する。
【００２６】
フラッシュメモリ１０１は、ファームウエアが格納される第１ファームウエア領域１０１１と、ファームウエアが格納される第２ファームウエア領域１０１２と、データ領域１０１３とを含む。データ領域１０１３は、設定データが格納される設定データ領域１０１３１と、ネットワーク上の装置からダウンロードされ又は可搬記憶媒体からインストールされたファームウエアが格納されるファームウエアデータ領域１０１３２とを含む。
【００２７】
制御装置１０は、メモリバンクの切替機能により、第１ファームウエア領域１０１１に格納されたファームウエアと第２ファームウエア領域１０１２に格納されたファームウエアとのうちいずれかを動作させるように切替を行う。切替には、切替情報記憶装置１０５が使用される。具体的には、バージョン変更前のファームウエアは停止する前に、ＭＰＵ１０３が再起動後に読み出しを開始するフラッシュメモリ１０１上のアドレスを切替情報記憶装置１０５に格納する。このアドレスは、バージョン変更後のファームウエアが格納されたファームウエア領域上の位置を示す。このような処理により、動作するファームウエアが再起動の前後で異なるようにすることができる。
【００２８】
図５は、ファームウエアの機能ブロック図である。ファームウエアがＭＰＵ１０３に実行されることで、ファームウエア書込部１０１５０と、プログラム特定部１０１５２と、フォーマット変更部１０１５３と、第１判定部１０１５５及び第２判定部１０１５６を含む判定部１０１５４と、起動部１０１５８及び停止部１０１５９を含むプロセス管理部１０１５７とが実現される。また、ファームウエアは、変更前後のバージョンとフォーマットを変更するための変更プログラムとの対応関係を示す対応関係データ１０１５１とを含む。
【００２９】
ファームウエア書込部１０１５０は、変更先のバージョンのファームウエアを、第１ファームウエア領域１０１１および第２ファームウエア領域１０１２のうち当該ファームウエア書込部１０１５０が動作するファームウエア領域ではない方に書き込む。プログラム特定部１０１５２は、対応関係データ１０１５１に基づき、設定データのフォーマットの変更に使用されるフォーマット変更プログラムを特定する。フォーマット変更部１０１５３は、設定データのフォーマットを変更する。第１判定部１０１５５は、バージョン変更がバージョンダウンであるか否かを判定する。第２判定部１０１５６は、設定データのフォーマットを変更済みであるか判定する。起動部１０１５８は、設定データに対してアクセスするプロセス（例えば、ファームウエアの起動時に起動されることがあらかじめ定められているプロセス）を起動する。停止部１０１５９は、設定データに対してアクセスするプロセス（例えばアクセス中のプロセスであり、アプリケーションプログラムのプロセス及びネットワークデーモンなど）を停止する。
【００３０】
図６は、対応関係データ１０１５１の一例を示す図である。図６の例においては、変更前のバージョン（すなわち、現時点におけるバージョン）の情報および変更後のバージョンの情報の組み合わせに、フォーマット変更プログラムの識別情報が対応付けられている。例えば、フォーマット変更プログラム２−１とは、設定データのフォーマットをｖｅｒ２．０からｖｅｒ１．０にバージョンダウンするためのプログラムである。フォーマット変更プログラム２−３とは、設定データのフォーマットをｖｅｒ２．０からｖｅｒ３．０にバージョンアップするためのプログラムである。例えばｖｅｒ３．０からｖｅｒ１．０へのバージョンダウンの場合、フォーマット変更プログラム３−２及びフォーマット変更プログラム２−１が使用される。
【００３１】
本実施の形態においては、或るバージョン（ここでは、バージョンＸとする）のファームウエアに、バージョンＸのフォーマットにバージョンアップするためのフォーマット変更プログラムと、バージョンＸより古いバージョンにバージョンダウンするためのフォーマット変更プログラムとの両方が組み込まれる。例えば、ｖｅｒ３．０のファームウエアには、ｖｅｒ１．０からｖｅｒ２．０にフォーマットを変更するためのプログラムと、ｖｅｒ２．０からｖｅｒ３．０にフォーマットを変更するためのプログラムと、ｖｅｒ３．０からｖｅｒ２．０にフォーマットを変更するためのプログラムと、ｖｅｒ２．０からｖｅｒ１．０にフォーマットを変更するためのプログラムとが含まれる。バージョンＸのファームウエアを作る時点においてはバージョンＸより古いバージョンのフォーマットを知ることができるので、このような組み込みを行うことが可能である。なお、最も古いバージョンのファームウエアには、フォーマット変更プログラムは組み込まれない。
【００３２】
図７は、ファームウエアのバージョン変更時に制御装置１０が実行する処理の処理フローを示す図である。本処理の開始時点においては、バージョン変更前のファームウエアが第１ファームウエア領域１０１１において動作しており且つ第２ファームウエア領域１０１２においてバージョン変更前のファームウエアが格納されているとする。また、設定データ領域１０１３１においては、バージョン変更前の設定データが設定データ領域１０１３１に格納されているとする。また、変更先のバージョンのファームウエアは、ファームウエアデータ領域１０１３２に格納されているとする。
【００３３】
管理者等は、マウス及びキーボード等の入力装置を介して、バージョン変更の指示を入力する。第１ファームウエア領域１０１１において動作しているファームウエアのファームウエア書込部１０１５０は、バージョン変更の指示を受け付けると、ファームウエアデータ領域１０１３２に格納されている変更先のバージョンのファームウエアを読み出す。そして、ファームウエア書込部１０１５０は、読み出されたファームウエアを第２ファームウエア領域１０１２に書き込む（図７：ステップＳ１）。ステップＳ１においては、変更前のバージョンのファームウエアに上書きするように書き込みが行われる。
【００３４】
停止部１０１５９は、ファームウエアのプロセスのうち設定データにアクセスするプロセス（例えば、アクセス中のプロセス）を停止する（ステップＳ３）。
【００３５】
第１判定部１０１５５は、ステップＳ１において第２ファームウエア領域１０１２に書き込まれたファームウエアに含まれるバージョン情報と、第１ファームウエア領域１０１１において動作しているファームウエアに含まれるバージョン情報とを読み出す。そして、第１判定部１０１５５は、バージョン情報の比較に基づき、バージョン変更がバージョンダウンであるか判定する（ステップＳ５）。例えば、変更後のバージョンを表す数が変更前のバージョンを表す数より小さい場合、バージョンダウンであると判定される。
【００３６】
バージョン変更がバージョンダウンではない場合（ステップＳ５：Ｎｏルート）、処理はステップＳ１１に移行する。一方、バージョン変更がバージョンダウンである場合（ステップＳ５：Ｙｅｓルート）、プログラム特定部１０１５２は、対応関係データ１０１５１に基づき、バージョンダウン用のフォーマット変更プログラムを特定する（ステップＳ７）。
【００３７】
そして、プログラム特定部１０１５２は、第１ファームウエア領域１０１１において動作しているファームウエアに含まれ且つステップＳ７において特定されたプログラムを呼び出すことで、フォーマット変更部１０１５３の動作を開始させる。そして、フォーマット変更部１０１５３は、設定データ領域１０１３１に格納されている設定データのフォーマットを変更する（ステップＳ９）。なお、例えばｖｅｒ３．０からｖｅｒ１．０への変更である場合、フォーマット変更プログラム３−２の実行後にフォーマット変更プログラム２−１が実行される。
【００３８】
図８及び図９は、設定データのフォーマットの変更について説明するための図である。図８は変更前のフォーマットの設定データを示し、図９は変更後のフォーマットの設定データを示す。図８及び図９に示した例においては、ｖｅｒ３．０からｖｅｒ２．０へのバージョンダウンにより暗号鍵の領域のサイズが１０２４バイトから５１２バイトに変更されている。これに伴い、空き領域のサイズが３５８４バイトから４０９６バイトに変更されている。従って、ｖｅｒ３．０からｖｅｒ２．０へのバージョンダウンにおいては、データ６より後のデータは０ｘ０００００２００番地分だけ前にずらして格納される。ｖｅｒ２．０からｖｅｒ３．０へのバージョンアップ後に１０２４バイト分の暗号鍵が設定されている場合、バージョンダウンの際には、データ５の領域は初期化され５１２バイト分の暗号鍵の設定が管理者に対して促される。
【００３９】
プログラム特定部１０１５２は、第１ファームウエア領域１０１１において動作しているファームウエアを停止して次にファームウエアを起動する時（すなわち、ファームウエアの再起動時）に第２ファームウエア領域１０１２がＭＰＵ１０３に読み込まれるように、切替情報記憶装置１０５に設定を行う（ステップＳ１１）。ステップＳ１１において、プログラム特定部１０１５２は、例えば、第２ファームウエア領域１０１２のアドレスのうちファームウエアが格納されている領域の開始点のアドレスを切替情報記憶装置１０５に書き込む。
【００４０】
そして、第１ファームウエア領域１０１１において動作しているファームウエアは、再起動を実行する（ステップＳ１３）。つまり、第１ファームウエア領域１０１１において動作しているファームウエアは停止し、第２ファームウエア領域１０１２に格納されているファームウエアが起動する。そして処理は端子Ａを介して図１０のステップＳ１５に移行する。
【００４１】
図１０の説明に移行し、第２ファームウエア領域１０１２において動作しているファームウエアの第２判定部１０１５６は、設定データ領域１０１３１に格納されている設定データに含まれるバージョン情報と、第２ファームウエア領域１０１２において動作しているファームウエアに含まれるバージョン情報との比較に基づき、設定データのフォーマットを変更済みであるか判定する（図１０：ステップＳ１５）。設定データのフォーマットを変更済みである場合、設定データ領域１０１３１に格納されている設定データに含まれるバージョン情報と、第２ファームウエア領域１０１２において動作しているファームウエアに含まれるバージョン情報とが一致する。設定データのフォーマットを変更済みであることは、バージョン変更がバージョンダウンであることを意味する。
【００４２】
設定データのフォーマットを変更済みである場合（ステップＳ１５：Ｙｅｓルート）、設定データのフォーマットを変更しなくてもよいので、処理はステップＳ２１に移行する。
【００４３】
一方、設定データのフォーマットを変更済みではない場合（ステップＳ１５：Ｎｏルート）、バージョン変更はバージョンアップである。従って、プログラム特定部１０１５２は、対応関係データ１０１５１に基づき、バージョンアップ用のフォーマット変更プログラムを特定する（ステップＳ１７）。
【００４４】
そして、プログラム特定部１０１５２は、第２ファームウエア領域１０１２において動作しているファームウエアに含まれ且つステップＳ１７において特定されたプログラムを呼び出すことで、フォーマット変更部１０１５３の動作を開始させる。そして、フォーマット変更部１０１５３は、設定データ領域１０１３１に格納されている設定データのフォーマットを変更する（ステップＳ１９）。なお、例えばｖｅｒ１．０からｖｅｒ３．０への変更である場合、フォーマット変更プログラム１−２の実行後にフォーマット変更プログラム２−３が実行される。
【００４５】
起動部１０１５８は、ファームウエアのプロセスのうち設定データにアクセスするプロセス（例えば、ファームウエアの起動時に起動されることがあらかじめ定められているプロセス）を起動する（ステップＳ２１）。そして処理は終了する。
【００４６】
以上のように、本実施の形態においては、バージョンアップ用のフォーマット変更プログラムとバージョンダウン用のフォーマット変更プログラムとの両方がファームウエアに組み込まれる。そして、バージョンアップの場合にはバージョン変更後のファームウエアの起動時にバージョンアップ用のフォーマット変更プログラムが実行され、バージョンダウンの場合にはバージョン変更前のファームウエアが停止する時にバージョンダウン用のフォーマット変更プログラムが実行される。
【００４７】
そして、本実施の形態によれば、ファームウエアをバージョンダウンする場合において、ファームウエアの実行に使用されるデータのフォーマットを適切に変更することができるようになる。
【００４８】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明したファームウエアの機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００４９】
また、上で説明したデータ構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００５０】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００５１】
本実施の形態の第１の態様に係る情報処理装置は、プロセッサと記憶装置とを有する制御装置を有する。そして、上記制御装置は、（Ａ）記憶装置の第１領域に格納された第１バージョンのソフトウエアの実行中に、記憶装置の第２領域に格納された第１バージョンのソフトウエアを第２バージョンに変更する場合、第１バージョンから第２バージョンへの変更がバージョンダウンであるか判定する第１判定部（実施の形態における第１判定部１０１５５は上記第１判定部の一例である）と、（Ｂ）第１バージョンから第２バージョンへの変更がバージョンダウンであると第１判定部により判定された場合、ソフトウエアの実行時に使用されるデータのフォーマットを変更するためのプログラムと変更前のバージョン情報及び変更後のバージョン情報とが対応付けられた対応関係情報に基づき、第１バージョンから第２バージョンへの変更に対応付けられたプログラムを特定し、特定された当該プログラムをプロセッサに実行させる第１変更部（実施の形態におけるプログラム特定部１０１５２は上記第１変更部の一例である）とを有する。
【００５２】
ソフトウエアのバージョンダウンを行う場合において、ソフトウエアの実行に使用されるデータのフォーマットを適切に変更することができるようになる。
【００５３】
上記制御装置は、（Ｃ）特定されたプログラムがプロセッサに実行される前に、データに対してアクセスするプロセスを停止する停止部（実施の形態における停止部１０１５９は上記停止部の一例である）をさらに有してもよい。
【００５４】
データに対するアクセスが途中で強制的に終了されてしまうことにより発生する不具合を防止できるようになる。
【００５５】
上記制御装置は、（Ｄ）第１バージョンから第２バージョンへの変更がバージョンダウンではないと第１判定部により判定された場合、第１領域に格納された第１バージョンのソフトウエアの実行が停止され且つ第２領域に格納された第２バージョンのソフトウエアが起動された後に、データのバージョンが第１バージョンから第２バージョンに変更済みであるか判定するか第２判定部（実施の形態における第２判定部１０１５６は上記第２判定部の一例である）と、（Ｅ）データのバージョンが第１バージョンから第２バージョンに変更済みではないと第２判定部により判定された場合、第１バージョンから第２バージョンへの変更に対応付けられたプログラムを対応関係情報に基づき特定し、特定された当該プログラムをプロセッサに実行させる第２変更部（実施の形態におけるプログラム特定部１０１５２は上記第２変更部の一例である）をさらに有してもよい。
【００５６】
バージョンアップの場合には、ソフトウエアの再起動の後にデータフォーマットを変更することができるようになる。
【００５７】
上記制御装置は、（Ｅ）第２領域に格納された第２バージョンのソフトウエアが起動され、且つ、データのバージョンが第１バージョンから第２バージョンに変更された場合、データに対してアクセスするプロセスを起動する起動部（実施の形態における起動部１０１５８は上記起動部の一例である）をさらに有してもよい。
【００５８】
バージョン変更後のソフトウエアのプロセスがバージョン変更後のデータに対してアクセスできるようになる。
【００５９】
上記第１判定部は、（ａ１）第１領域に格納された第１バージョンのソフトウエアに含まれるバージョン情報と、記憶装置の領域のうち第２バージョンのソフトウエアを格納する領域から読み出したバージョン情報との比較に基づき、第１バージョンから第２バージョンへの変更がバージョンダウンであるか判定してもよい。
【００６０】
バージョンの変更がバージョンダウンであるか否かを誤りなく判定できるようになる。
【００６１】
上記ソフトウエアはファームウエアであってもよい。
【００６２】
本実施の形態の第２の態様に係る制御方法は、プロセッサと記憶装置とを有し且つ情報処理装置を制御する制御装置により実行される。そして、本制御方法は、上記制御装置のプロセッサが、（Ｆ）記憶装置の第１領域に格納された第１バージョンのソフトウエアを実行中に、記憶装置の第２領域に格納された第１バージョンのソフトウエアを第２バージョンに変更する場合、第１バージョンから第２バージョンへの変更がバージョンダウンであるか判定し、（Ｇ）第１バージョンから第２バージョンへの変更がバージョンダウンであると判定された場合、ソフトウエアの実行時に使用されるデータのフォーマットを変更するためのプログラムと変更前のバージョン情報及び変更後のバージョン情報とが対応付けられた対応関係情報に基づき、第１バージョンから第２バージョンへの変更に対応付けられたプログラムを特定し、特定された当該プログラムを実行する処理を含む。
【００６３】
なお、上記方法による処理をプロセッサに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００６４】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００６５】
（付記１）
プロセッサと記憶装置とを有する制御装置を有する情報処理装置であって、
前記制御装置が、
前記記憶装置の第１領域に格納された第１バージョンのソフトウエアの実行中に、前記記憶装置の第２領域に格納された前記第１バージョンの前記ソフトウエアを第２バージョンに変更する場合、前記第１バージョンから前記第２バージョンへの変更がバージョンダウンであるか判定する第１判定部と、
前記第１バージョンから前記第２バージョンへの変更がバージョンダウンであると前記第１判定部により判定された場合、前記ソフトウエアの実行時に使用されるデータのフォーマットを変更するためのプログラムと変更前のバージョン情報及び変更後のバージョン情報とが対応付けられた対応関係情報に基づき、前記第１バージョンから前記第２バージョンへの変更に対応付けられたプログラムを特定し、特定された当該プログラムを前記プロセッサに実行させる第１変更部と
を有する、情報処理装置。
【００６６】
（付記２）
前記制御装置が、
特定された前記プログラムが前記プロセッサに実行される前に、前記データに対してアクセスするプロセスを停止する停止部
をさらに有する、付記１記載の情報処理装置。
【００６７】
（付記３）
前記制御装置が、
前記第１バージョンから前記第２バージョンへの変更がバージョンダウンではないと前記第１判定部により判定された場合、前記第１領域に格納された前記第１バージョンの前記ソフトウエアの実行が停止され且つ前記第２領域に格納された前記第２バージョンの前記ソフトウエアが起動された後に、前記データのバージョンが前記第１バージョンから前記第２バージョンに変更済みであるか判定する第２判定部と、
前記データのバージョンが前記第１バージョンから前記第２バージョンに変更済みではないと前記第２判定部により判定された場合、前記第１バージョンから前記第２バージョンへの変更に対応付けられたプログラムを前記対応関係情報に基づき特定し、特定された当該プログラムを前記プロセッサに実行させる第２変更部と
をさらに有する、付記１又は２記載の情報処理装置。
【００６８】
（付記４）
前記制御装置が、
前記第２領域に格納された前記第２バージョンの前記ソフトウエアが起動され、且つ、前記データのバージョンが前記第１バージョンから前記第２バージョンに変更された場合、前記データに対してアクセスするプロセスを起動する起動部
をさらに有する、付記３記載の情報処理装置。
【００６９】
（付記５）
前記第１判定部は、
前記第１領域に格納された前記第１バージョンの前記ソフトウエアに含まれるバージョン情報と、前記記憶装置の領域のうち前記第２バージョンの前記ソフトウエアを格納する領域から読み出したバージョン情報との比較に基づき、前記第１バージョンから前記第２バージョンへの変更がバージョンダウンであるか判定する、
付記１乃至４のいずれか１つ記載の情報処理装置。
【００７０】
（付記６）
前記ソフトウエアはファームウエアである、
付記１乃至５のいずれか１つ記載の情報処理装置。
【００７１】
（付記７）
プロセッサと記憶装置とを有し且つ情報処理装置を制御する制御装置であって、
前記記憶装置の第１領域に格納された第１バージョンのソフトウエアの実行中に、前記記憶装置の第２領域に格納された前記第１バージョンの前記ソフトウエアを第２バージョンに変更する場合、前記第１バージョンから前記第２バージョンへの変更がバージョンダウンであるか判定する第１判定部と、
前記第１バージョンから前記第２バージョンへの変更がバージョンダウンであると前記第１判定部により判定された場合、前記ソフトウエアの実行時に使用されるデータのフォーマットを変更するためのプログラムと変更前のバージョン情報及び変更後のバージョン情報とが対応付けられた対応関係情報に基づき、前記第１バージョンから前記第２バージョンへの変更に対応付けられたプログラムを特定し、特定された当該プログラムを前記プロセッサに実行させる第１変更部と、
を有する制御装置。
【００７２】
（付記８）
プロセッサと記憶装置とを有し且つ情報処理装置を制御する制御装置に実行させる制御プログラムであって、
前記制御装置の前記プロセッサに、
前記記憶装置の第１領域に格納された第１バージョンのソフトウエアを実行中に、前記記憶装置の第２領域に格納された前記第１バージョンの前記ソフトウエアを第２バージョンに変更する場合、前記第１バージョンから前記第２バージョンへの変更がバージョンダウンであるか判定し、
前記第１バージョンから前記第２バージョンへの変更がバージョンダウンであると判定された場合、前記ソフトウエアの実行時に使用されるデータのフォーマットを変更するためのプログラムと変更前のバージョン情報及び変更後のバージョン情報とが対応付けられた対応関係情報に基づき、前記第１バージョンから前記第２バージョンへの変更に対応付けられたプログラムを特定し、特定された当該プログラムを実行する
処理を実行させる制御プログラム。
【００７３】
（付記９）
プロセッサと記憶装置とを有し且つ情報処理装置を制御する制御装置が実行する制御方法であって、
前記制御装置の前記プロセッサが、
前記記憶装置の第１領域に格納された第１バージョンのソフトウエアを実行中に、前記記憶装置の第２領域に格納された前記第１バージョンの前記ソフトウエアを第２バージョンに変更する場合、前記第１バージョンから前記第２バージョンへの変更がバージョンダウンであるか判定し、
前記第１バージョンから前記第２バージョンへの変更がバージョンダウンであると判定された場合、前記ソフトウエアの実行時に使用されるデータのフォーマットを変更するためのプログラムと変更前のバージョン情報及び変更後のバージョン情報とが対応付けられた対応関係情報に基づき、前記第１バージョンから前記第２バージョンへの変更に対応付けられたプログラムを特定し、特定された当該プログラムを実行する
処理を実行する制御方法。
【符号の説明】
【００７４】
１  情報処理装置    １５  ハードウエアコンポーネント
１５１  ＣＰＵ    １５２  メモリ
１５３  冷却ファン
１０  制御装置    １０１  フラッシュメモリ
１０１１  第１ファームウエア領域    １０１２  第２ファームウエア領域
１０１３  データ領域    １０１３１  設定データ領域
１０１３２  ファームウエアデータ領域
１０３  ＭＰＵ    １０５  切替情報記憶装置
１０１５０  ファームウエア書込部    １０１５１  対応関係データ
１０１５２  プログラム特定部    １０１５３  フォーマット変更部
１０１５４  判定部    １０１５５  第１判定部
１０１５６  第２判定部    １０１５７  プロセス管理部
１０１５８  起動部    １０１５９  停止部
【図１】
2019074950.tif 000003
【図２】
2019074950.tif 000004
【図３】
2019074950.tif 000005
【図４】
2019074950.tif 000006
【図５】
2019074950.tif 000007
【図６】
2019074950.tif 000008
【図７】
2019074950.tif 000009
【図８】
2019074950.tif 000010
【図９】
2019074950.tif 000011
【図１０】
2019074950.tif 000012