(57)【要約】【課題】  ソースコード変更によるプログラム修正、及びＲＡＭ容量の抑制を可能にする情報処理装置を実現する。【解決手段】  実行対象のオリジナルサブプログラムのＲＡＭ及びＲＯＭ格納領域を示すオリジナルサブプログラム格納情報１４１１、更新サブプログラムのＲＡＭ及びフラッシュメモリ格納領域を示す更新サブプログラム格納情報１４１２、分岐処理の分岐先の調整のための分岐先調整情報１４１３を格納し、オリジナルサブプログラム転送部１３２がオリジナルサブプログラム格納情報１４１１に従ってオリジナルサブプログラムをＲＯＭからＲＡＭに転送し、更新サブプログラム転送部１３３が更新サブプログラム格納情報１４１２に従って更新サブプログラムをフラッシュメモリからＲＡＭに転送し、サブプログラム調整部１３４が分岐先調整情報１４１３に従って分岐先を調整し、プログラム実行部１３５が分岐先調整後のプログラムを実行する。【選択図】        図１
2005092379.tif 000002
【特許請求の範囲】
【請求項１】
所定のオリジナルプログラムを構成する複数のオリジナルサブプログラムとオリジナルプログラムを更新するための更新サブプログラムとを組み合わせてサブプログラム単位でのプログラムの更新が可能な情報処理装置であって、
主記憶装置と、
複数のオリジナルサブプログラムを格納する読み出し専用のオリジナルサブプログラム格納部と、
更新サブプログラムを少なくとも一つ以上格納する更新サブプログラム格納部と、
複数のオリジナルサブプログラムのうち更新サブプログラムの実行により実行が不要となるオリジナルサブプログラムと更新サブプログラムとともに実行すべきオリジナルサブプログラムとを判別し、更新サブプログラムとともに実行すべき実行対象オリジナルサブプログラムを前記オリジナルサブプログラム格納部から主記憶装置に転送し、更新サブプログラムを前記更新サブプログラム格納部から主記憶装置に転送するサブプログラム転送部と、
前記サブプログラム転送部により主記憶装置に転送された実行対象オリジナルサブプログラム及び更新サブプログラムについて、サブプログラム相互間の対応づけを調整するサブプログラム調整部と、
前記サブプログラム調整部によりサブプログラム相互間の対応づけが調整された後の実行対象オリジナルサブプログラムと更新サブプログラムとを実行するプログラム実行部とを有することを特徴とする情報処理装置。
【請求項２】
前記更新サブプログラム格納部は、
更新サブプログラムとして、いずれかのオリジナルサブプログラムを置換えることによりオリジナルプログラムを更新する置換サブプログラム及びオリジナルプログラムに追加することによりオリジナルプログラムを更新する追加サブプログラムの少なくともいずれかを格納することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は、更に、
実行対象オリジナルサブプログラムを特定するとともに、実行対象オリジナルサブプログラムのそれぞれについて、前記オリジナルサブプログラム格納部における格納領域と主記憶装置における格納領域とを示すオリジナルサブプログラム格納情報を記憶するオリジナルサブプログラム格納情報記憶部と、
更新サブプログラムのそれぞれについて、前記更新サブプログラム格納部における格納領域と主記憶装置における格納領域とを示す更新サブプログラム格納情報を記憶する更新サブプログラム格納情報記憶部とを有し、
前記サブプログラム転送部は、
前記オリジナルサブプログラム格納情報に従い、複数のオリジナルサブプログラムの中から実行対象オリジナルサブプログラムを判別するとともに、判別した実行対象オリジナルサブプログラムのそれぞれを前記オリジナルサブプログラム格納部におけるそれぞれの格納領域から主記憶装置におけるそれぞれの格納領域に転送し、前記更新サブプログラム格納情報に従い、更新サブプログラムのそれぞれを前記更新サブプログラム格納部におけるそれぞれの格納領域から主記憶装置におけるそれぞれの格納領域に転送することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記サブプログラム転送部は、
分岐処理を含む実行対象オリジナルサブプログラム及び分岐処理を含む更新サブプログラムの少なくともいずれかを主記憶装置に転送する場合があり、
前記サブプログラム調整部は、
前記サブプログラム転送部により分岐処理を含む実行対象オリジナルサブプログラム及び分岐処理を含む更新サブプログラムの少なくともいずれかが主記憶装置に転送された場合に、分岐処理を含むサブプログラムについて、分岐処理における分岐先の対応づけを調整することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記情報処理装置は、更に、
実行対象オリジナルサブプログラム及び更新サブプログラムのうち分岐処理を含むサブプログラムを特定するとともに、分岐処理を含むサブプログラムについて、分岐処理における分岐先の対応づけを調整するためのデータを示す分岐先調整情報を記憶する分岐先調整情報記憶部を有し、
前記サブプログラム調整部は、
分岐先調整情報に従い、実行対象オリジナルサブプログラム及び更新サブプログラムのうち分岐処理を含むサブプログラムを判別するとともに、判別した分岐処理を含むサブプログラムについて、前記分岐先調整情報に示されたデータに従い、分岐処理における分岐先の対応づけを調整することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記情報処理装置は、
所定の管理装置と通信可能であり、
所定の場合に、前記管理装置より、更新サブプログラムと、前記オリジナルサブプログラム格納情報と、前記更新サブプログラム格納情報と、少なくとも更新サブプログラムと前記オリジナルサブプログラム格納情報と前記更新サブプログラム格納情報のそれぞれのデータサイズを示したデータサイズ情報とを受信し、
前記情報処理装置は、更に、
データサイズ情報に基づいて更新サブプログラムの格納領域を指定するサブプログラム格納領域指定部と、
前記サブプログラム格納領域指定部の指定に従って、前記管理装置から受信した更新サブプログラムを前記更新サブプログラム格納部の所定の格納領域に書き込むサブプログラム書込処理部とを有し、
前記サブプログラム転送部は、
前記管理装置から受信した前記オリジナルサブプログラム格納情報に従い、実行対象オリジナルサブプログラムを判別するとともに、判別した実行対象オリジナルサブプログラムのそれぞれを前記オリジナルサブプログラム格納部におけるそれぞれの格納領域から主記憶装置におけるそれぞれの格納領域に転送し、前記管理装置から受信した前記更新サブプログラム格納情報に従い、更新サブプログラムのそれぞれを前記更新サブプログラム格納部におけるそれぞれの格納領域から主記憶装置におけるそれぞれの格納領域に転送することを特徴とする請求項３に記載の情報処理装置。
【請求項７】
前記情報処理装置は、
所定の管理装置と通信可能であり、
所定の場合に、前記管理装置より、前記分岐先調整情報を受信し、
前記サブプログラム調整部は、
前記管理装置から受信した前記分岐先調整情報に従い、実行対象オリジナルサブプログラム及び更新サブプログラムのうち分岐処理を含むサブプログラムを判別するとともに、判別した分岐処理を含むサブプログラムについて、前記分岐先調整情報に示されたデータに従い、分岐処理における分岐先の対応づけを調整することを特徴とする請求項５に記載の情報処理装置。
【請求項８】
前記情報処理装置は、
前記更新サブプログラム格納部としてフラッシュメモリを備えており、
前記サブプログラム格納領域指定部は、
前記データサイズ情報に基づき、フラッシュメモリのセクタごとに更新サブプログラムの格納内容を指定するセクタ格納情報を生成し、
前記サブプログラム書込処理部は、
前記サブプログラム格納領域指定部により生成されたセクタ格納情報に従って、更新サブプログラムをフラッシュメモリのセクタ単位に分割して更新サブプログラムをセクタごとにフラッシュメモリに書き込むことを特徴とする請求項６に記載の情報処理装置。
【請求項９】
前記情報処理装置は、
前記更新サブプログラム格納部としてフラッシュメモリを備えており、
前記情報処理装置は、
前記管理装置から、更新サブプログラムをフラッシュメモリのセクタ単位に分割したセクタデータと、各セクタにおける更新サブプログラムの格納内容を示すセクタ格納情報とを受信し、
受信したセクタ格納情報に従って、受信したセクタデータをフラッシュメモリに書き込むことを特徴とする請求項６に記載の情報処理装置。
【請求項１０】
主記憶装置と、所定のオリジナルプログラムを構成するサブプログラムであって初版バージョンとなる複数のオリジナルサブプログラムを格納している読み出し専用のオリジナルサブプログラム格納部と、オリジナルプログラムを更新するためのサブプログラムであって第２版以降のバージョンとなる更新サブプログラムを格納可能な更新サブプログラム格納部とを備え、
所定の条件下で、更新サブプログラムを受信することが可能であり、更新サブプログラムを受信する度に、受信した更新サブプログラムを更新サブプログラム格納部に格納し、
所定の場合に、更新サブプログラム格納部への更新サブプログラムの格納状況に基づき、オリジナルサブプログラム格納部及び更新サブプログラム格納部の少なくともいずれかに格納されている所定数のサブプログラムについてそれぞれのサブプログラムのバージョンを判断するとともに判断結果を示すバージョン情報を生成し、生成したバージョン情報を送信することが可能であり、
プログラムの実行時に、オリジナルサブプログラム格納部及び更新サブプログラム格納部の少なくともいずれかから所定数のサブプログラムを主記憶装置に格納してプログラムを実行する情報処理装置と通信可能であり、
前記情報処理装置を管理する管理装置であって、
前記情報処理装置が保有するオリジナルサブプログラムを記憶し、管理装置内部又は管理装置外部において更新サブプログラムが生成される度に、生成された更新サブプログラムを記憶するサブプログラム記憶部と、
前記サブプログラム記憶部が更新サブプログラムを記憶する度に更新される情報であって、前記サブプログラム記憶部に記憶されている所定数のサブプログラムについてそれぞれのサブプログラムの最新バージョンのサブプログラムを示すとともに、それぞれのサブプログラムについて前記情報処理装置の主記憶装置への格納時の格納領域を指定する最新バージョン情報を記憶する最新バージョン情報記憶部と、
前記サブプログラム記憶部が更新サブプログラムを記憶する度に、前記情報処理装置に更新サブプログラムの送信の要否を問い合わせる送信要否問合せ情報を前記情報処理装置に対して送信するとともに、前記情報処理装置において更新サブプログラムの送信を要求する場合に、送信要否問合せ情報に対する応答として、前記情報処理装置からバージョン情報を受信する通信処理部と、
前記通信処理部が前記情報処理装置からバージョン情報を受信した場合に、前記通信処理部がバージョン情報を受信した時点で前記最新バージョン情報記憶部に記憶されている最新バージョン情報を分析し、最新バージョン情報において最新バージョンのサブプログラムとしてオリジナルサブプログラムが示されているサブプログラムを少なくとも一つ以上検出した場合に、検出したサブプログラムのそれぞれについてオリジナルサブプログラムを実行対象とするよう指示するとともに、プログラム実行時に、検出したサブプログラムのそれぞれについて最新バージョン情報で指定されている主記憶装置の格納領域へオリジナルサブプログラムを格納するよう指示するオリジナルサブプログラム格納情報を生成するオリジナルサブプログラム格納情報生成部と、
前記通信処理部が前記情報処理装置からバージョン情報を受信した場合に、前記通信処理部がバージョン情報を受信した時点で前記最新バージョン情報記憶部に記憶されている最新バージョン情報を分析し、最新バージョン情報において最新バージョンのサブプログラムとして更新サブプログラムが示されているサブプログラムを少なくとも一つ以上検出した場合に、検出したサブプログラムのそれぞれについて更新サブプログラムを実行対象とするよう指示するとともに、プログラム実行時に、検出したサブプログラムのそれぞれについて最新バージョン情報で指定されている主記憶装置の格納領域へ更新サブプログラムを格納するよう指示する更新サブプログラム格納情報を生成する更新サブプログラム格納情報生成部と、
前記通信処理部が前記情報処理装置からのバージョン情報を受信した場合に、前記通信処理部がバージョン情報を受信した時点で前記最新バージョン情報記憶部に記憶されている最新バージョン情報と前記通信処理部が受信したバージョン情報とを比較し、前記情報処理装置が未受信の更新サブプログラムを特定する更新サブプログラム特定部とを有し、
前記通信処理部は、
オリジナルサブプログラム格納情報、更新サブプログラム格納情報及び前記更新サブプログラム特定部により特定された更新サブプログラムを前記情報処理装置に対して送信することを特徴とする管理装置。
【請求項１１】
前記最新バージョン情報記憶部は、
最新バージョンのサブプログラムが更新サブプログラムであるサブプログラムについて、前記情報処理装置の更新サブプログラム格納部における格納領域を指定する最新バージョン情報を記憶しており、
更新サブプログラム格納情報生成部は、
最新バージョン情報を分析した結果、最新バージョン情報において最新バージョンのサブプログラムとして更新サブプログラムが示されているサブプログラムを少なくとも一つ以上検出した場合に、検出したサブプログラムのそれぞれについて最新バージョン情報で指定されている更新サブプログラム格納部の格納領域へ更新サブプログラムを格納するよう指示する更新サブプログラム格納情報を生成することを特徴とする請求項１０に記載の管理装置。
【請求項１２】
前記管理装置は、更に、
オリジナルサブプログラム格納情報で実行対象として指定されているオリジナルサブプログラム及び更新サブプログラム格納情報で実行対象として指定されている更新サブプログラムの少なくともいずれかを前記情報処理装置が実行する際のサブプログラム相互間の対応づけを調整するための調整情報を生成する調整情報生成部を有し、
前記通信処理部は、
前記調整情報生成部により生成された調整情報を前記情報処理装置に対して送信することを特徴とする請求項１０に記載の管理装置。
【請求項１３】
オリジナルサブプログラム格納情報で実行対象として指定されているオリジナルサブプログラム及び更新サブプログラム格納情報で実行対象として指定されている更新サブプログラムの少なくともいずれかに分岐処理が含まれている場合があり、
前記調整情報生成部は、
オリジナルサブプログラム格納情報で実行対象として指定されているオリジナルサブプログラム及び更新サブプログラム格納情報で実行対象として指定されている更新サブプログラムの少なくともいずれかに分岐処理が含まれている場合に、分岐処理を含むサブプログラムを特定するとともに、分岐処理を含むサブプログラムについて、分岐処理における分岐先の対応づけを調整するためのデータを示す調整情報を生成することを特徴とする請求項１２に記載の管理装置。
【請求項１４】
前記管理装置は、更に、
オリジナルサブプログラム格納情報、更新サブプログラム格納情報、前記更新サブプログラム特定部により特定された更新サブプログラム及び調整情報について、それぞれのデータサイズを示すデータサイズ情報を生成するデータサイズ情報生成部を有することを特徴とする請求項１２に記載の管理装置。
【請求項１５】
前記管理装置は、
更新サブプログラム格納部としてフラッシュメモリを備える情報処理装置を管理し、
前記管理装置は、更に、
更新サブプログラムを前記情報処理装置のフラッシュメモリのセクタ単位に分割してセクタデータを生成するセクタデータ生成部と、
前記情報処理装置のフラッシュメモリの各セクタにおける更新サブプログラムの格納内容を示すセクタ格納情報を生成するセクタ格納情報生成部とを有し、
前記通信処理部は、
前記セクタデータ生成部により生成されたセクタデータと前記セクタ格納情報生成部により生成されたセクタ格納情報とを前記情報処理装置に対して送信することを特徴とする請求項１０に記載の管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サブプログラムを置換・追加することによりオリジナルプログラムを更新する情報処理装置及び当該情報処理装置を管理する管理装置に関する。
【背景技術】
【０００２】
本発明に関連する従来技術として特開平４−１３７１３６号公報に記載の「プログラム記憶方式」と特開平５−６６９４６号公報に記載の「プログラムの保守方式」が存在する。
【０００３】
特開平４−１３７１３６号公報に記載の「プログラム記憶方式」では、情報処理装置がＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に格納されているオリジナルプログラムをＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）に転送する際に、初期設定された転送先を変更する動作を行うことができず、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）に格納されている上書き修正データを読み出し、上書き修正データから書込みアドレス、書き込みデータを抽出し、書込みアドレスの示す領域に書き込みデータを書き込んでオリジナルプログラムの更新を行っている。
【０００４】
このため、当該従来技術では、プログラム修正を行うためにバイナリ修正をする必要があるという問題点がある。また、効率、正確性および管理性が高いソースコードを修正することで実行プログラムを修正できないという問題点がある。従来の方法ではプログラムを修正するには、バイナリーコードを修正する必要がある。なぜならばサイズ変更・分岐先の修正に対応できず、ソースコードによる変更をしてもサブプログラム置き換え・追加ではプログラム修正はできないからである。また、プログラム修正に時間がかかったり、管理が複雑になるという問題点がある。
【０００５】
また、特開平５−６６９４６号公報に記載の「プログラムの保守方式」では、情報処理装置がＲＯＭに格納されている全てのオリジナルサブプログラム（オリジナルプログラムを構成するサブプログラム）をＲＡＭに転送するとともに、オリジナルプログラムを更新するための更新サブプログラムをＲＡＭに転送する。そして、転送されたオリジナルサブプログラムと更新サブプログラムのうちのいずれを実行するかを判定してプログラムを実行する。
【０００６】
このように、当該従来技術では、更新サブプログラムの実行により実行されることがないオリジナルサブプログラムもＲＡＭに転送されるため、オリジナルサブプログラム及び更新サブプログラムの２面持ちの状態になり、更新サブプログラムが増えると必要なＲＡＭ容量が増加するという問題がある。
【０００７】
更に、特開平５−６６９４６号公報に記載の「プログラムの保守方式」では、情報処理装置を管理する管理装置が開示されている。
【０００８】
管理装置では、オペレータが修正に必要な修正データを作成し、登録する。ここで、修正データとは情報処理装置のＥＥＰＲＯＭに格納する更新サブプログラム群および管理情報と、ＥＥＰＲＯＭ書換えプログラムを示す。
【０００９】
一方、情報処理装置では、保有しているサブプログラムのプログラムバージョンを示しバージョン情報を管理装置に送信し、管理装置では、受信したバージョン情報が最新バージョンでなければ、登録した修正データを情報処理装置に送信する。
【００１０】
情報処理装置では、管理装置から受信した修正データをＲＡＭに書込む。
【００１１】
また、管理装置では、情報処理装置のＥＥＰＲＯＭの書換えを要求するＥＥＰＲＯＭ書換え要求コマンドを発行する。
【００１２】
情報処理装置では、管理装置からのＥＥＰＲＯＭ書換え要求コマンドに基づき、ＥＥＰＲＯＭ書換えプログラムが実行されて、ＲＡＭ上のデータでＥＥＰＲＯＭを書換えてオリジナルプログラムの更新を行う。
【００１３】
ＥＥＰＲＯＭはフラッシュメモリのようにセクタ単位といった部分的な消去をすることができない。したがって全領域を消去したあとに全領域を再書込みする必要がある。
【００１４】
また、オペレータがＥＥＰＲＯＭ書換えプログラムを作成しないとＥＥＰＲＯＭ書換えができないという問題点がある。
【００１５】
情報処理装置はプログラムバージョンのみ保持しており、それを管理装置に送信する。管理装置は機種に関する情報を受信しない。このため、プログラム構成が異なる複数種類の情報処理装置が存在する場合、管理装置は情報処理装置の種類を判別することができない。これにより、情報処理装置の種類と同じ数の管理装置が必要になるという問題がある。
【特許文献１】特開平４−１３７１３６号公報
【特許文献２】特開平５−６６９４６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
本発明は、以上に示す従来技術の問題点を解決することを主な目的としており、ソースコード変更によるプログラム修正を可能にし、ＲＡＭ容量の抑制を可能にし、修正が必要な部分だけの書換え保存を可能にし、書換え用プログラムを生成・送付することなく更新サブプログラムの書換えができる情報処理装置及び管理装置を実現することを目的とする。
【課題を解決するための手段】
【００１７】
本発明に係る情報処理装置は、
所定のオリジナルプログラムを構成する複数のオリジナルサブプログラムとオリジナルプログラムを更新するための更新サブプログラムとを組み合わせてサブプログラム単位でのプログラムの更新が可能な情報処理装置であって、
主記憶装置と、
複数のオリジナルサブプログラムを格納する読み出し専用のオリジナルサブプログラム格納部と、
更新サブプログラムを少なくとも一つ以上格納する更新サブプログラム格納部と、
複数のオリジナルサブプログラムのうち更新サブプログラムの実行により実行が不要となるオリジナルサブプログラムと更新サブプログラムとともに実行すべきオリジナルサブプログラムとを判別し、更新サブプログラムとともに実行すべき実行対象オリジナルサブプログラムを前記オリジナルサブプログラム格納部から主記憶装置に転送し、更新サブプログラムを前記更新サブプログラム格納部から主記憶装置に転送するサブプログラム転送部と、
前記サブプログラム転送部により主記憶装置に転送された実行対象オリジナルサブプログラム及び更新サブプログラムについて、サブプログラム相互間の対応づけを調整するサブプログラム調整部と、
前記サブプログラム調整部によりサブプログラム相互間の対応づけが調整された後の実行対象オリジナルサブプログラムと更新サブプログラムとを実行するプログラム実行部とを有することを特徴とする。
【発明の効果】
【００１８】
このように本発明によれば、サブプログラム単位での置換可能であり、オリジナルサブプログラムの再配置が可能であり、また、サブプログラム間の対応づけの調整が可能であるため、ソースコード修正による実行プログラムの修正ができる。
【００１９】
また、オリジナルサブプログラムの転送において更新サブプログラムとともに実行すべき実行対象オリジナルサブプログラムのみを転送するため、主記憶装置でオリジナルサブプログラムと更新サブプログラムとを２面持ちする必要がなく、主記憶装置の記憶領域を効率的に使用することができる。
【発明を実施するための最良の形態】
【００２０】
実施の形態１．
図１は、本実施の形態に係る情報処理装置の構成例を示す図である。
【００２１】
本実施の形態に係る情報処理装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１、リセット手段１２、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ
Ｍｅｍｏｒｙ）１３、フラッシュメモリ１４、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１５から構成される。
【００２２】
ＲＯＭ１３には、プログラムであるＨ／Ｗ（ハードウェア）初期化部１３１、オリジナルサブプログラム転送部１３２、更新サブプログラム転送部１３３、サブプログラム調整部１３４、プログラム実行部１３５が格納され、更に、所定のオリジナルプログラムを構成するオリジナルサブプログラムａ〜ｄがオリジナルサブプログラム格納領域１３６に格納されている。オリジナルサブプログラムは、初版バージョンとなるサブプログラムである。
【００２３】
オリジナルサブプログラムａ〜ｄはＲＯＭ１３に格納されているため、オリジナルプログラムを更新するためには、いずれかのオリジナルサブプログラムを後述する更新サブプログラムに置き換えるか、又は、更新サブプログラムを追加することが必要である。更新サブプログラムは、第２版以降のバージョンとなるサブプログラムである。
【００２４】
Ｈ／Ｗ初期化部１３１は、情報処理装置１の起動時に情報処理装置１に搭載されているハードウェア（Ｈ／Ｗ）の初期化を行う。
【００２５】
オリジナルサブプログラム転送部１３２は、プログラムの実行時に、フラッシュメモリ１４に格納されているオリジナルサブプログラム格納情報１４１１を参照して、実行対象となるオリジナルサブプログラムを主記憶装置であるＲＡＭ１５の実行プログラム格納領域１５１に転送する。実行対象となるオリジナルサブプログラムを実行対象オリジナルサブプログラムという。また、オリジナルサブプログラム格納情報１４１１の詳細は後述する。
【００２６】
更新サブプログラム転送部１３３は、プログラムの実行時に、フラッシュメモリ１４に格納されている更新サブプログラム格納情報１４１２を参照して、フラッシュメモリ１４に格納されている更新サブプログラムを主記憶装置であるＲＡＭ１５の実行プログラム格納領域１５１に転送する。また、更新サブプログラム格納情報１４１２の詳細は後述する。
【００２７】
サブプログラム調整部１３４は、実行プログラム生成時に、フラッシュメモリ１４に格納されている分岐先調整情報１４１３を参照して、ＲＡＭ１５に転送された実行対象オリジナルサブプログラムについて分岐処理の分岐先の対応づけの調整を行う。また、分岐先調整情報１４１３の詳細は後述する。なお、サブプログラム調整部１３４により分岐先の対応づけの調整が行われる前の実行対象オリジナルサブプログラム及び更新サブプログラムから構成されるプログラムを仮実行プログラムと呼び、サブプログラム調整部１３４により分岐先の対応づけの調整が行われた後の実行対象オリジナルサブプログラム及び更新サブプログラムから構成されるプログラムを実行プログラムと呼ぶ。
【００２８】
プログラム実行部１３５は、サブプログラム調整部１３４により分岐先の対応づけの調整が行われた後の実行プログラムを実行するプログラム実行部である。
【００２９】
フラッシュメモリ１４には、修正テーブル格納領域１４１及び更新サブプログラム格納領域１４２が存在する。
【００３０】
図１では、更新サブプログラム格納領域１４２には、更新サブプログラムｃ、ｅが格納されている。
【００３１】
更新サブプログラムｃは、オリジナルサブプログラムｃを置換えることによりオリジナルプログラムを更新する置換サブプログラムであり、更新サブプログラムｅはオリジナルプログラムに追加することによりオリジナルプログラムを更新する追加サブプログラムである。
【００３２】
本実施の形態では、オリジナルサブプログラムａ、ｂ、ｄには対応する更新サブプログラムが存在しないためこれらのオリジナルサブプログラムが実行対象となり、オリジナルサブプログラムｃは、実行対象とならず、代わって更新サブプログラムｃが実行対象となり、また、更新サブプログラムｅがオリジナルプログラムに追加される形で実行対象となる。
【００３３】
修正テーブル格納領域１４１には、オリジナルサブプログラム格納情報１４１１、更新サブプログラム格納情報１４１２、分岐先調整情報１４１３が格納されている。修正テーブル格納領域１４１に格納されているオリジナルサブプログラム格納情報１４１１、更新サブプログラム格納情報１４１２、分岐先調整情報１４１３を修正テーブルと呼ぶ。
【００３４】
オリジナルサブプログラム格納情報１４１１は、実行対象オリジナルサブプログラムを特定するとともに、実行対象オリジナルサブプログラムのそれぞれについて、ＲＯＭ１３のオリジナルサブプログラム格納領域１３６内のそれぞれの格納領域と、ＲＡＭ１５の実行プログラム格納領域１５１内のそれぞれの格納領域とを示す情報である。図２にオリジナルサブプログラム格納情報１４１１の例を示す。
【００３５】
図２の例では、サブプログラム名ａ、ｂ、ｄではオリジナルサブプログラムが実行対象となることを示し、また、それぞれのオリジナルサブプログラムについてＲＡＭ格納アドレス、ＲＯＭ格納アドレス、プログラムサイズを示してそれぞれのオリジナルサブプログラムの実行プログラム格納領域１５１における格納領域、オリジナルサブプログラム格納領域１３６における格納領域を表示している。
【００３６】
オリジナルサブプログラム転送部１３２は、プログラムの実行の際に、このオリジナルサブプログラム格納情報１４１１を参照して実行対象オリジナルサブプログラムを判別するとともに、オリジナルサブプログラム格納情報１４１１の内容に従って、実行対象オリジナルサブプログラムのそれぞれをそれぞれのＲＯＭ格納アドレスからそれぞれのＲＡＭ格納アドレスに転送する。
【００３７】
更新サブプログラム格納情報１４１２は、更新サブプログラム格納領域１４２に格納されている更新サブプログラムを特定するとともに、更新サブプログラムのそれぞれについて、フラッシュメモリ１４の更新サブプログラム格納領域１４２内のそれぞれの格納領域と、ＲＡＭ１５の実行プログラム格納領域１５１内のそれぞれの格納領域とを示す情報である。図３に更新サブプログラム格納情報１４１２の例を示す。
【００３８】
図３の例では、サブプログラム名ｃ、ｅについては更新サブプログラムが更新サブプログラム格納領域１４２に格納されていることを示し、また、それぞれの更新サブプログラムについてＲＡＭ格納アドレス、フラッシュメモリ格納アドレス、プログラムサイズを示してそれぞれの更新サブプログラムの実行プログラム格納領域１５１における格納領域、更新サブプログラム格納領域１４２における格納領域を表示している。
【００３９】
更新サブプログラム転送部１３３は、プログラムの実行の際に、更新サブプログラム格納情報１４１２の内容に従って、更新サブプログラムのそれぞれをそれぞれのフラッシュメモリ格納アドレスからそれぞれのＲＡＭ格納アドレスに転送する。
【００４０】
分岐先調整情報１４１３は、実行対象オリジナルサブプログラム及び更新サブプログラムのいずれかにおける分岐先の対応づけの調整のためのデータを示す。図４に分岐先調整情報１４１３の例を示す。
【００４１】
図４では、サブプログラム名ｄのサブプログラムが分岐先の対応づけの調整対象となっていることを示し、また、分岐先の調整のために、オフセットアドレス及びデータが示されている。
【００４２】
サブプログラム調整部１３４は、実行対象オリジナルサブプログラム、更新サブプログラムがＲＡＭ１５の実行プログラム格納領域１５１に転送された後に、分岐先調整情報１４１３に従って、対象となるサブプログラムについて分岐先の対応づけの調整を行う。
【００４３】
ＲＡＭ１５には、実行プログラム格納領域１５１が存在する。
【００４４】
実行プログラム格納領域１５１は、オリジナルサブプログラム転送部１３２により転送された実行対象オリジナルサブプログラム及び更新サブプログラム転送部１３３により転送された更新サブプログラムが格納される。
【００４５】
前述したように、図１では、オリジナルサブプログラムａ、ｂ、ｄ、更新サブプログラムｃ、ｅが実行プログラム格納領域１５１に格納されることになる。
【００４６】
なお、図１に示すように、ＲＯＭ１３は、オリジナルサブプログラムを格納しており、オリジナルサブプログラム格納部の例に相当し、フラッシュメモリ１４は更新サブプログラムを格納しており、更新サブプログラム格納部の例に相当する。
【００４７】
また、フラッシュメモリ１４は、オリジナルサブプログラム格納情報１４１１、更新サブプログラム格納情報１４１２、分岐先調整情報１４１３を記憶しており、オリジナルサブプログラム格納情報記憶部、更新サブプログラム格納情報記憶部、分岐先調整情報記憶部の例に相当する。
【００４８】
また、オリジナルサブプログラム転送部１３２及び更新サブプログラム転送部１３３を合わせたものが、サブプログラム転送部の例に相当する。
【００４９】
次に、図５を参照して、本実施の形態に係る情報処理装置１の動作を説明する。
【００５０】
まず、リセット手段１２がリセットを解除する（Ｓ３０１）。
【００５１】
次に、Ｈ／Ｗ初期化部１３１がハードウェア（Ｈ／Ｗ）を初期化する（Ｓ３０２）。
【００５２】
次に、オリジナルサブプログラム転送部１３２が、オリジナルサブプログラム格納情報１４１１から１エントリ読出し、読み出した情報に基づきオリジナルサブプログラム格納領域１３６に格納されているオリジナルサブプログラムをＲＡＭ１５の実行プログラム格納領域１５１に転送し格納する。ここでは、オリジナルサブプログラム格納情報１４１１に記載されているＲＯＭ格納アドレスからオリジナルサブプログラムを読み出すとともにオリジナルサブプログラム格納情報１４１１に記載されているＲＡＭ格納アドレスに転送する（Ｓ３０３〜Ｓ３０５）。
【００５３】
オリジナルサブプログラム転送部１３２は、オリジナルサブプログラム格納情報１４１１において終了コードを検出するまでＳ３０３〜Ｓ３０５の処理を繰り返し、終了コードを検出するとオリジナルサブプログラム格納情報１４１１にエントリは存在しないと判定し、オリジナルサブプログラム転送処理を終了する（Ｓ３０４でＹｅｓの場合）。
【００５４】
オリジナルサブプログラム格納情報１４１１が図２の場合、オリジナルサブプログラム転送部１３２は、オリジナルサブプログラムａ、ｂ、ｄをＲＡＭ１５の実行プログラム格納領域１５１に転送する。
【００５５】
次に、更新サブプログラム転送部１３３が、更新サブプログラム格納情報１４１２から１エントリ読出し、読み出した情報に基づき更新サブプログラム格納領域１４２に格納されている更新サブプログラムをＲＡＭ１５の実行プログラム格納領域１５１に転送し格納する。ここでは、オリジナルサブプログラム格納情報１４１１に記載されているフラッシュメモリ格納アドレスから更新サブプログラムを読み出すとともにオリジナルサブプログラム格納情報１４１１に記載されているＲＡＭ格納アドレスに転送する（Ｓ３０６〜Ｓ３０８）。
【００５６】
オリジナルサブプログラム転送部１３２は、オリジナルサブプログラム格納情報１４１１において終了コードを検出するまでＳ３０６〜Ｓ３０８の処理を繰り返し、終了コードを検出するとオリジナルサブプログラム格納情報１４１１にエントリは存在しないと判定し、更新サブプログラム転送処理を終了する（Ｓ３０７でＹｅｓの場合）。
【００５７】
この段階でＲＡＭ１５の実行プログラム格納領域１５１に格納されたサブプログラム群を仮実行プログラムと呼ぶ。
【００５８】
更新サブプログラム格納情報１４１２が図３の場合、更新サブプログラム転送部１３３は、更新サブプログラムｂ、ｅをＲＡＭ１５の実行プログラム格納領域１５１に転送する。
【００５９】
次に、サブプログラム調整部１３４が分岐先調整情報１４１３から１エントリ読出し、読み出した情報に基づき仮実行プログラムに上書き修正する（Ｓ３０９〜Ｓ３１１）。
【００６０】
サブプログラム調整部１３４は、分岐先調整情報１４１３において終了コードを検出するまでＳ３０９〜Ｓ３１１の処理を繰り返し、終了コードを検出すると分岐先調整情報１４１３にエントリは存在しないと判定し、分岐先調整処理を終了する（Ｓ３１０でＹｅｓの場合）。
【００６１】
この段階でＲＡＭ１５の実行プログラム格納領域１５１に格納されているサブプログラム群を実行プログラムと呼ぶ。
【００６２】
分岐先調整情報１４１３が図４の場合、サブプログラム調整部１３４は、以下の処理をする。
１）サブプログラムｄのオフセット０１００にデータ５８１０を上書きする。
２）サブプログラムｄのオフセット０１１０にデータ５９１０を上書きする。
【００６３】
次に、プログラム実行部１３５が、実行プログラムを起動し（Ｓ３１２）、更新されたプログラムを実行することができる。
【００６４】
このように本実施の形態によれば、サブプログラム単位での置換が可能であり、オリジナルサブプログラムの再配置が可能であり、オリジナルサブプログラムの再配置により生じた分岐先のずれを修正可能であるため、ソースコード修正による実行プログラムの修正ができる。
【００６５】
また、オリジナルプログラム、更新サブプログラム群を２面持ちする必要がなく、実行プログラムに必要な容量があれば良く、必要なＲＡＭ容量を抑制できる。
【００６６】
実施の形態２．
図６は、本実施の形態に係るシステム構成例を示す図である。
【００６７】
本実施の形態では、情報処理装置１と管理装置２とを接続し、管理装置２から情報処理装置１に更新サブプログラム、オリジナルサブプログラム格納情報、更新サブプログラム格納情報などを送信する場合について説明する。
【００６８】
なお、情報処理装置１には所定の機種コードが設定されており、管理装置２は情報処理装置の機種に対応する更新サブプログラム等を送信する。
【００６９】
また、図６では、情報処理装置１と管理装置２は有線で接続されているが無線により接続されていてもよい。
【００７０】
本実施の形態の応用例としては、情報処理装置１を携帯電話機とし、管理装置２が携帯電話機の機種に対応する更新サブプログラムを無線通信により携帯電話機に送信することが考えられる。
【００７１】
先ず、図６を参照して、本実施の形態に係る情報処理装置１と管理装置２の動作を概説する。
【００７２】
管理装置２は、情報処理装置の機種ごとにオリジナルサブプログラム及び更新サブプログラムを保有しており、管理装置２内部又は管理装置２外部にて新たな更新サブプログラムが生成される度に、機種ごとに最新バージョンのサブプログラムの内容を示す最新バージョン情報を生成する。
【００７３】
また、管理装置２では、新たな更新サブプログラムが生成される度に、生成された新たな更新サブプログラムの適用機種である情報処理装置１に対して新たな更新サブプログラムの送信の要否を問い合わせ（Ｓ６０１）、情報処理装置１において更新サブプログラムの送信を要求する場合に、応答として、情報処理装置１から情報処理装置１のサブプログラムのカレントバージョンを示す応答バージョン情報を受信する（Ｓ６０２）。
【００７４】
管理装置２では、情報処理装置１から応答バージョン情報を受信した場合に、最新バージョン情報を参照し、オリジナルサブプログラム格納情報と更新サブプログラム格納情報を生成する。オリジナルサブプログラム格納情報及び更新サブプログラム格納情報は、実施の形態１で説明したものと同じである。
【００７５】
また、管理装置２では、情報処理装置１からの応答バージョン情報と最新バージョン情報とを比較し、情報処理装置１が未保有（未受信）の更新サブプログラムを特定する。
【００７６】
また、管理装置２では、実施の形態１で示したものと同様の分岐先調整情報を生成する。
【００７７】
更に、管理装置２では、オリジナルサブプログラム格納情報、更新サブプログラム格納情報、情報処理装置１が未保有（未受信）の更新サブプログラム、分岐先調整情報のそれぞれのデータサイズを示すデータサイズ情報を生成し、これらオリジナルサブプログラム格納情報、更新サブプログラム格納情報、更新サブプログラム、分岐先調整情報、データサイズ情報を情報処理装置１に送信する（Ｓ６０３）。
【００７８】
これにより、情報処理装置１では、未保有（未受信）であった更新サブプログラムを取得できるとともに、新たに保有した更新サブプログラムを用いてオリジナルプログラムの更新を行うことができる。
【００７９】
次に、図７を参照して管理装置２の構成例を説明する。
【００８０】
管理装置２は、ＣＰＵ２１、ＲＯＭ２２、サブプログラムＤＢ（データベース）２３、最新バージョン情報ＤＢ２４、機種／情報処理装置ＤＢ２５、通信制御装置２６、ＲＡＭ（１）２７、ＲＡＭ（２）２８、ＲＡＭ（３）２９から構成される。
【００８１】
ＲＯＭ２２は、ＲＡＭ（１）２７上に示されている２７１〜２７８のプログラムを格納している。図７では、説明の便宜上、２７１〜２７８のプログラムが起動されてＲＡＭ（１）上に展開されている状態を示している。
【００８２】
サブプログラムＤＢ２３は、情報処理装置の機種ごとにオリジナルサブプログラム及び更新サブプログラムを保有しており、管理装置２内部又は管理装置２外部にて新たな更新サブプログラムが生成される度に、新たな更新サブプログラムを対応する機種のサブプログラム群に追加して格納する。サブプログラムＤＢ２３は、サブプログラム記憶部の例に相当する。
【００８３】
最新バージョン情報ＤＢ２４は、情報処理装置の機種ごとに最新バージョンのサブプログラムの内容を示す最新バージョン情報を格納している。最新バージョン情報の詳細は後述する。
【００８４】
機種／情報処理装置ＤＢ２５は、機種と情報処理装置とを対応づける機種／情報処理装置情報を格納している。機種／情報処理装置情報は、機種ごとに情報処理装置の通信ＩＤ（例えば、ＩＰアドレス）を示す。
【００８５】
通信制御装置２６は、情報処理装置１との間で有線又は無線通信を行う。通信制御装置２６は、通信処理部の例に相当する。
【００８６】
ＲＡＭ（１）２７では、２７１〜２７８に示すプログラムが展開される。
【００８７】
サブプログラム登録部２７１は、管理装置２内部で新たな更新サブプログラムが生成された際、又は管理装置２外部で新たな更新サブプログラムが生成され管理装置２に入力された際に、新たな更新サブプログラムをサブプログラムＤＢ２３に登録する。
【００８８】
最新バージョン情報生成部２７２は、サブプログラム登録部２７１により新たな更新サブプログラムがサブプログラムＤＢ２３に登録された際に、当該更新サブプログラムの適用機種に関する最新バージョン情報を生成する。最新バージョン情報は、情報処理装置の機種ごとに生成される。最新バージョン情報生成部２７２は最新バージョン情報を生成した場合には、最新バージョン情報ＤＢ２４に登録する。
【００８９】
図９に、最新バージョン情報生成部２７２が生成する最新バージョン情報の例を示す。
【００９０】
図９の例では、サブプログラム名ａ〜ｅに対して、それぞれのＲＡＭ格納アドレス、フラッシュメモリ／ＲＯＭ格納アドレス、プログラムサイズ、バージョンが示される。
【００９１】
ここで、ＲＡＭ格納アドレスは、情報処理装置１において主記憶装置であるＲＡＭにそれぞれのサブプログラムが転送される際のＲＡＭ上の格納アドレスを示す。
【００９２】
フラッシュメモリ／ＲＯＭ格納アドレスは、最新バージョンのサブプログラムがオリジナルサブプログラムであればＲＯＭ上のアドレスが示され、最新バージョンのサブプログラムが更新サブプログラムであれば、フラッシュメモリ上のアドレスが示される。
【００９３】
プログラムサイズは、最新バージョンのサブプログラムのデータサイズが示される。
【００９４】
バージョンは、１．０はオリジナルサブプログラムを意味し、１．１以降は更新サブプログラムを意味する。
【００９５】
なお、最新バージョン情報生成部２７２は、各機種のＲＯＭ、フラッシュメモリ、ＲＡＭの構成を把握しているため、機種ごとに図９に示すような最新バージョン情報を生成することができる。
【００９６】
更新問合せ部２７３は、最新バージョン情報生成部２７２により最新バージョン情報が生成された際に、情報処理装置１が未保有（未受信）の更新サブプログラムの送信が必要か否かを問い合わせる更新コマンドを生成し、生成した更新コマンドを通信制御装置２６から情報処理装置１に対して送信する。更新コマンドは、図１０に示す構成となっており、ヘッダ、更新コード、機種コード及びプログラムバージョン情報からなる。
【００９７】
更新コードは、更新コマンドであることを示すコードであり、機種コードは適用機種を示すコードである。プログラムバージョン情報は、プログラム全体としてのプログラムバージョンが示される。
【００９８】
また、更新問合せ部２７３は、更新コマンドの送信後、情報処理装置１から更新コマンドに対する応答である応答コマンドを受信する。
【００９９】
応答コマンドは図１１に示す構成となっており、ヘッダ、応答コード、機種コード及びプログラムバージョン情報からなる。応答コードは、応答コマンドであることを示すコードであり、機種コードは適用機種を示すコードである。情報処理装置１が更新サブプログラムの送信を要求する場合には、プログラムバージョン情報には情報処理装置１の保有するプログラムのプログラム全体としてのプログラムバージョンを示す情報が含まれている。このプログラムバージョンの情報を応答バージョン情報という。また、情報処理装置１が更新サブプログラムの送信を要求しない場合は、機種コード及びプログラムバージョン情報を０とする。
【０１００】
図１１では、応答コマンドに応答バージョン情報が含まれている例を示している。
【０１０１】
格納情報生成部２７４は、最新バージョン情報に基づいて送信オリジナルサブプログラム格納情報２８２１及び送信更新サブプログラム格納情報２８２２を生成する。
【０１０２】
格納情報生成部２７４は、最新バージョン情報において最新バージョンがオリジナルサブプログラムであると表示されている場合に、当該オリジナルサブプログラムを実行対象のサブプログラムとするよう指示する送信オリジナルサブプログラム格納情報２８２１を生成する。送信オリジナルサブプログラム格納情報は、例えば図１２に示す構成をしており、実施の形態１で示したものと同様に、実行対象のオリジナルサブプログラムをサブプログラムａ、ｄとして特定するとともに、それぞれのサブプログラムについて、情報処理装置１のＲＡＭの格納アドレス、情報処理装置１のＲＯＭの格納アドレス、及びプログラムサイズを示す。これらＲＡＭ格納アドレス、ＲＯＭ格納アドレス、プログラムサイズは、図９の最新バージョン情報のものと同じ内容になっている。
【０１０３】
また、格納情報生成部２７４は、最新バージョン情報において最新バージョンが更新サブプログラムであると表示されている場合に、当該更新サブプログラムを実行対象のサブプログラムとするよう指示する送信更新サブプログラム格納情報２８２２を生成する。送信更新サブプログラム格納情報は、例えば図１３に示す構成をしており、実施の形態１で示したものと同様に、実行対象の更新サブプログラムをサブプログラムｂ、ｃ、ｅとして特定するとともに、それぞれのサブプログラムについて、情報処理装置１のＲＡＭの格納アドレス、情報処理装置１のフラッシュメモリの格納アドレス、及びプログラムサイズを示す。これらＲＡＭ格納アドレス、フラッシュメモリ格納アドレス、プログラムサイズは、図９の最新バージョン情報のものと同じ内容になっている。
【０１０４】
また、格納情報生成部２７４は、生成した送信オリジナルサブプログラム格納情報、送信更新サブプログラム格納情報を送信データ格納領域２８２に格納する。
【０１０５】
なお、格納情報生成部２７４は、オリジナルサブプログラム格納情報生成部及び更新サブプログラム格納情報生成部の例に相当する。
【０１０６】
分岐先調整情報生成部２７５は、送信分岐先調整情報２８２３を生成する。送信分岐先調整情報２８２３は、情報処理装置１が新たな更新サブプログラムによってオリジナルプログラムの更新を行なった後も分岐処理における分岐先との対応が維持できるように分岐先の対応づけを調整する情報である。情報処理装置１において、例えば、オリジナルサブプログラムを新たな更新サブプログラムに置換えた場合には、置換えを行わなかったサブプログラム内の分岐先が変更になることがあるが、分岐先調整情報は、このような変更を調整し、置換前の分岐先の対応づけが置換後も維持でできるようにするための情報である。
【０１０７】
図１４に分岐先調整情報の例を示す。本実施の形態における送信分岐先調整情報は、実施の形態１で示した分岐先調整情報と同じ構成をもつ。
【０１０８】
また、分岐先調整情報生成部２７５は、生成した送信分岐先調整情報を送信データ格納領域２８２に格納する。
【０１０９】
なお、分岐先調整情報生成部２７５は、調整情報生成部の例に相当する。
【０１１０】
送信サブプログラム特定部２７６は、情報処理装置１からの応答バージョン情報と最新バージョン情報とを比較し、情報処理装置が未保有（未受信）の更新サブプログラムを送信サブプログラムとして特定する。
【０１１１】
また、送信サブプログラム特定部２７６は、特定した送信サブプログラムを送信データ格納領域２８２に格納する。
【０１１２】
なお、送信サブプログラム特定部２７６は、更新サブプログラム特定部の例に相当する。
【０１１３】
データサイズ情報生成部２７７は、送信オリジナルサブプログラム格納情報、送信更新サブプログラム格納情報、送信分岐先調整情報、送信サブプログラムのそれぞれのデータサイズを示す送信データサイズ情報を生成する。
【０１１４】
また、データサイズ情報生成部２７７は、生成した送信データサイズ情報を送信データ格納領域２８２に格納する。
【０１１５】
送信データ送信処理部２７８は、送信データ格納領域２８２に格納された送信オリジナルサブプログラム格納情報２８２１、送信更新サブプログラム格納情報２８２２、送信分岐先調整情報２８２３、送信データサイズ情報２８２４、送信サブプログラム２８２５を通信制御装置２６から情報処理装置１に送信する。
【０１１６】
なお、送信オリジナルサブプログラム格納情報２８２１、送信更新サブプログラム格納情報２８２２、送信分岐先調整情報２８２３、送信データサイズ情報２８２４、送信サブプログラム２８２５を送信データと呼ぶ。
【０１１７】
ＲＡＭ（２）２８には、応答バージョン関連情報格納領域２８１、送信データ格納領域２８２が存在する。
【０１１８】
応答バージョン関連情報格納領域２８１には、情報処理装置１から受信した応答バージョン情報２８１２及び応答バージョン情報に示されているバージョンのサブプログラム（以下、応答バージョンサブプログラムという）が格納される。
【０１１９】
送信データ格納領域２８２には、送信データを構成する２８２１〜２８２５の各情報が格納される。
【０１２０】
ＲＡＭ（３）２９には、最新バージョン関連情報格納領域２９１が存在する。
【０１２１】
最新バージョン関連情報格納領域２９１には、情報処理装置１の機種に対応する最新バージョン情報２９１２及び最新バージョン情報に示されている最新バージョンのサブプログラム（以下、最新バージョンサブプログラムという）が格納される。
【０１２２】
ＲＡＭ（３）は、最新バージョン情報を記憶する最新バージョン情報記憶部の例に相当する。
【０１２３】
次に、図８を参照して本実施の形態に係る情報処理装置１の構成例を説明する。
【０１２４】
図８において、ＣＰＵ１１及びリセット手段１２は実施の形態１に示したものと同様である。
【０１２５】
通信制御装置１６は、管理装置２との間で有線又は無線通信を行う。
【０１２６】
本実施の形態では、ＲＯＭ１３には、問合せ応答部１３１１、送信データ受信処理部１３１２、サブプログラム格納領域指定部１３１３、サブプログラム書込処理部１３１４、リセット指示部１３１５、プログラムバージョン情報生成部１３１６が格納されている。
【０１２７】
問合せ応答部１３１１は、管理装置２からの更新コマンドを通信制御装置１６を介して受信し、更新コマンドに対する応答である応答コマンドを生成し、生成した応答コマンドを通信制御装置１６から管理装置２に対して送信する。
【０１２８】
送信データ受信処理部１３１２は、管理装置２から送信された送信データを通信制御装置１６を介して受信し、受信した送信データをＲＡＭ１５の受信データ格納領域１５３に格納する。なお、ＲＡＭ１５の受信データ格納領域１５３に格納された後は送信データを受信データと呼ぶ。また、送信データを構成する各情報も、受信データ格納領域１５３に格納された後は、それぞれ、受信データサイズ情報１５３２、受信オリジナルサブプログラム格納情報１５３３、受信更新サブプログラム格納情報１５３４、受信分岐先調整情報１５３５、受信サブプログラム１５３６と呼ぶ。
【０１２９】
サブプログラム格納領域指定部１３１３は、フラッシュメモリ１４のセクタごとに受信サブプログラム１５３６の格納内容（セクタデータ）を指定する新セクタ格納情報１５４１を生成する。
【０１３０】
フラッシュメモリ１４は、情報の書換えを行なう際にはセクタごとに書換えが行われるため、受信サブプログラムをフラッシュメモリ１４に格納するためには受信サブプログラムをセクタ単位に分割してセクタデータとし、それぞれのセクタデータをセクタごとに格納することが必要である。
【０１３１】
このため、サブプログラム格納領域指定部１３１３は、フラッシュメモリ１４のセクタごとに受信サブプログラム１５３６の格納内容（セクタデータ）を指定する。
【０１３２】
サブプログラム書込処理部１３１４は、サブプログラム格納領域指定部１３１３の指定に従い受信サブプログラム１５３６をセクタごとに分割してセクタデータとするとともに、それぞれのセクタデータをサブプログラム格納領域指定部１３１３により指定されたセクタ（格納領域）に書き込む。
【０１３３】
リセット指示部１３１５は、所定の場合に、リセット手段１２に対して情報処理装置１のリセットを指示する。
【０１３４】
プログラムバージョン情報生成部１３１６は、情報処理装置１が保有しているサブプログラムのバージョンを示すプログラムバージョン情報を生成するとともに、生成したプログラムバージョン情報をフラッシュメモリ１４の機種コード／バージョン格納領域１４３に格納する。
【０１３５】
なお、図８では図示を省略しているが、本実施の形態に係る情報処理装置１も図１に示した１３１〜１３６の要素をＲＯＭ１３に保有しており、プログラムの実行時には、これら１３１〜１３６の各要素を用いて実施の形態１で示した動作を行う。
【０１３６】
フラッシュメモリ１４の修正テーブル格納領域１４１には、オリジナルサブプログラム格納情報１４１１、更新サブプログラム格納情報１４１２、分岐先調整情報１４１３に加えて、セクタ格納情報１４１４が格納されている。
【０１３７】
セクタ格納情報１４１４は、フラッシュメモリ１４のセクタごとに各セクタに格納すべきセクタデータ（更新サブプログラムの格納内容）を指定している。
【０１３８】
なお、図８のフラッシュメモリ１４に格納されている情報（オリジナルサブプログラム格納情報１４１１、更新サブプログラム格納情報１４１２、分岐先調整情報１４１３、セクタ格納情報１４１４、更新サブプログラムｂ、ｅ、及びプログラムバージョン情報１４３２）は、後述する図１８の処理が行なわれる前の情報、すなわち、前回の更新時の情報である。
【０１３９】
また、フラッシュメモリ１４の機種コード／バージョン格納領域１４３には、機種コード１４３１及びプログラムバージョン情報１４３２が格納されている。
【０１４０】
機種コード１４３１は、情報処理装置１の機種を示すコードである。
【０１４１】
プログラムバージョン情報１４３２は、情報処理装置１が保有しているサブプログラムのカレントバージョンを示す情報であり、プログラムバージョン情報生成部１３１６により生成、格納される。
【０１４２】
次に、ＲＡＭ１５の格納内容について説明する。
【０１４３】
受信データ格納領域１５３は、送信データ受信処理部１３１２により受信された送信データを格納するための格納領域である。受信データサイズ情報１５３２は受信後の送信データサイズ情報であり、受信オリジナルサブプログラム格納情報１５３３は受信後の送信オリジナルサブプログラム格納情報であり、受信更新サブプログラム格納情報１５３４は受信後の送信更新サブプログラム格納情報であり、受信分岐先調整情報１５３５は受信後の送信分岐先調整情報であり、受信サブプログラム１５３６は受信後の送信サブプログラムである。
【０１４４】
複製セクタ格納情報１５３１は、フラッシュメモリ１４の修正テーブル格納領域１４１に格納されているセクタ格納情報１４１４がサブプログラム格納領域指定部１３１３により受信データ格納領域１５３に複写（コピー）された後のセクタ格納情報である。
【０１４５】
新修正テーブル格納領域１５４には、受信データ格納領域１５３に格納されている修正テーブル（複製セクタ格納情報１５３１、受信オリジナルサブプログラム格納情報１５３３、受信更新サブプログラム格納情報１５３４、受信分岐先調整情報１５３５）から作成された新修正テーブルが格納される。
【０１４６】
新修正テーブルは、受信修正テーブルに複製フラッシュメモリセクタ格納情報を追加したものである。
【０１４７】
新修正テーブルは、新フラッシュメモリセクタ格納情報、受信オリジナルサブプログラム格納情報、受信更新サブプログラム格納情報、受信分岐先調整情報から構成される。
【０１４８】
新修正テーブルは、フラッシュメモリにある修正テーブル格納領域にコピーされる。実施の形態１で示したとおり、リセット解除後に実行プログラムを生成する動作に用いられる。また新フラッシュメモリセクタ格納情報は、次にサブプログラムが更新される場合に、複製フラッシュメモリセクタ格納情報を生成する場合に用いる。
【０１４９】
サブプログラム格納領域指定部１３１３は、受信データ格納領域１５３に格納されている修正テーブル（複製セクタ格納情報１５３１、受信オリジナルサブプログラム格納情報１５３３等）をフラッシュメモリ１４の修正テーブル格納領域１４１に書き込むために、修正テーブルに変更を加えて新修正テーブル（新セクタ格納情報１５４１、新オリジナルサブプログラム格納情報１５４２、新更新サブプログラム格納情報１５４３、新分岐先調整情報１５４４）を生成し、生成した新修正テーブルを新修正テーブル格納領域１５４に格納する。
【０１５０】
修正情報ＲＡＭ格納情報１５２は、サブプログラム格納領域指定部１３１３が受信データ格納領域１５３に格納されている修正テーブルから新修正テーブルを生成する際に用いる情報であり、管理装置２から受信した受信データがＲＡＭ１５上にどのように格納（先頭アドレス、サイズ）されているかを示す情報である。フラッシュメモリを書きかえるために必要なデータをＲＡＭ１５に格納するが、修正情報ＲＡＭ格納情報は、それぞれのデータがどのように格納されているかを示すテーブルになる。管理装置から送信される毎にデータの種類とサイズが異なる。新修正テーブル、セクタデータを生成する場合、各生成手段に、参照するデータのアドレス、サイズを通知させるための手段である。
【０１５１】
図１６に修正情報ＲＡＭ格納情報１５２の例を示す。
【０１５２】
各データ項目（エントリ）は、以下のような領域に関する情報である。
修正テーブルセクタ：新修正テーブルセクタ格納領域
送信オリジナルＰ格納テーブル：受信オリジナルサブプログラム格納情報の格納領域
送信修正Ｐ格納テーブル：受信更新サブプログラム格納情報の格納領域
送信分岐先修正テーブル：受信分岐先調整情報の格納領域
サブプログラムｃ：：受信サブプログラムｃの格納領域
サブプログラムｅ：受信サブプログラムｅの格納領域
セクタデータ退避領域０：セクタデータを生成するときに使用するセクタデータ退避領域０の領域
セクタデータ退避領域１：セクタデータを生成するときに使用するセクタデータ退避領域０の領域
セクタ退避領域１５５は、サブプログラム書込処理部１３１４が新修正テーブル格納領域１５４に格納された新修正テーブルをフラッシュメモリ１４の修正テーブル格納領域１４１に書き込む際に用いる退避領域である。図８では、セクタ退避領域１５５にはセクタ退避領域０、１の二つの退避領域がある。
【０１５３】
次に、図１８を参照して本実施の形態に係る情報処理装置１及び管理装置２の動作を説明する。
【０１５４】
まず、管理装置２内部又は管理装置２外部において新たな更新サブプログラムが生成された場合に、サブプログラム登録部２７１が当該更新サブプログラムを対応する機種のサブプログラム群に追加してサブプログラムＤＢ２３に登録するとともに、最新バージョン情報生成部２７２に当該更新サブプログラムのバージョン、プログラムサイズ、適用機種を通知し、最新バージョン情報生成部２７２は当該更新サブプログラムを反映させて最新バージョン情報を生成し、最新バージョン情報ＤＢ２４に登録する（Ｓ３４１）。
【０１５５】
また、最新バージョン情報生成部２７２は最新バージョン情報の生成・登録に際して、更新問合せ部２７３に適用機種及びプログラムバージョン情報（図１０に示すプログラムバージョン情報）を通知し、更新問合せ部２７３は機種／情報処理装置ＤＢ２５を検索して最新バージョン情報生成部２７２から通知された機種に該当する情報処理装置の通信ＩＤを特定し、図１０に示すように、最新バージョン情報生成部２７２から通知されたプログラムバージョン情報を含む更新コマンドを生成し（Ｓ３４２）、通信制御装置２６を介して更新コマンドを情報処理装置１に送信する（Ｓ３４３）。
【０１５６】
次に、情報処理装置１では、通信制御装置１６を介して問合せ応答部１３１１が更新コマンドを受信し（Ｓ３４４）、更に、フラッシュメモリ１４の機種コード／バージョン格納領域１４３に格納されている機種コード１４３１及びプログラムバージョン情報１４３２を読み出す（Ｓ３４５）。
【０１５７】
次に、問合せ応答部１３１１は、更新コマンドに含まれている機種コード及びプログラムバージョン情報と機種コード／バージョン格納領域１４３から読み出した機種コード１４３１及びプログラムバージョン情報１４３２とを比較し（Ｓ３４６）、機種コードが一致し、プログラムバージョンが更新されている場合は、図１１に示すように応答バージョン情報を含む応答コマンドを生成する。その以外の場合は、機種コード／プログラムバージョン＝０として応答コマンドを生成する（Ｓ３４７）。
【０１５８】
その後、問合せ応答部１３１１は生成した応答コマンドを通信制御装置１６を介して管理装置２に送信する（Ｓ３４８）。
【０１５９】
次に、管理装置２では、通信制御装置２６を介して更新問合せ部２７３が応答コマンドを受信し（Ｓ３４９）、受信した応答コマンドの解析を行う。
【０１６０】
応答コマンド内の機種コードが０であれば更新不要と判定し処理を終了させる。０以外であれば処理を継続する（Ｓ３５０）。
【０１６１】
ステップＳ３５０において機種コードが０でなければ、すなわち、応答コマンドに応答バージョン情報が含まれている場合には、管理装置２はステップＳ３５１の送信修正テーブル生成処理を行う。
【０１６２】
以下、図１９を参照して送信修正テーブル生成処理を説明する。
【０１６３】
まず、格納情報生成部２７４が、更新問合せ部２７３が受信した応答コマンドに含まれている応答バージョン情報をＲＡＭ（２）の応答バージョン関連情報格納領域２８１に格納して応答バージョン情報２８１２とする（Ｓ４０１）。
【０１６４】
また、応答コマンドに含まれている機種コード及び応答バージョン情報に示されたサブプログラム名ごとのバージョンの表示をもとにしてサブプログラムＤＢ２３を検索し、応答バージョン情報に示されたバージョンのサブプログラムをＲＡＭ（２）の応答バージョン関連情報格納領域２８１に格納して応答バージョンサブプログラム２８１１とする（Ｓ４０２）。
【０１６５】
次に、格納情報生成部２７４は、応答コマンドに含まれた機種コードに対応する最新バージョン情報を最新バージョン情報ＤＢ２４から読み出し、ＲＡＭ（３）の最新バージョン関連情報格納領域２９１に格納して最新バージョン情報２９１２（図９）とする（Ｓ４０３）。
【０１６６】
また、応答コマンドに含まれている機種コード及び最新バージョン情報に示されたサブプログラム名ごとのバージョンの表示をもとにしてサブプログラムＤＢ２３を検索し、最新バージョン情報に示されたバージョンのサブプログラムをＲＡＭ（３）の最新バージョン関連情報格納領域２９１に格納して最新バージョンサブプログラム２９１１とする（Ｓ４０４）。
【０１６７】
次に、格納情報生成部２７４は、送信オリジナルサブプログラム格納情報を生成する（Ｓ４０５）。
【０１６８】
具体的には、格納情報生成部２７４は、最新バージョン情報２９１２のエントリを順次読出しサブプログラムバージョン１．０（オリジナルサブプログラム）のエントリを抽出する。そして最新バージョン情報のサブプログラムバージョンのフィールドを削除し送信データ格納領域２８２に送信オリジナルサブプログラム格納情報２８２１（図１２）として書き出す。
【０１６９】
すべてのエントリについて処理を終えると、送信オリジナルサブプログラム格納情報に終了コードを含むエントリを書き込む。
【０１７０】
また、このとき、（終了コードを含むエントリ＋１エントリ）のアドレスから送信オリジナルサブプログラム格納情報を差し引いた値をデータサイズ情報生成部２７７で保持する。
【０１７１】
図９のような最新バージョン情報の場合、サブプログラムａ、ｄのエントリを書込み、図１２に示す送信オリジナルサブプログラム格納情報が生成される。
【０１７２】
次に、格納情報生成部２７４は、送信更新サブプログラム格納情報を生成する（Ｓ４０６）。
【０１７３】
具体的には、格納情報生成部２７４は、最新バージョン情報２９１２のエントリを順次読出しサブプログラムバージョン１．０以外（更新サブプログラム）のエントリを抽出する。そして最新バージョン情報のサブプログラムバージョンのフィールドを削除し送信データ格納領域２８２に送信更新サブプログラム格納情報２８２２（図１３）として書き出す。
【０１７４】
すべてのエントリについて処理を終えると、送信更新サブプログラム格納情報に終了コードを含むエントリを書き込む。
【０１７５】
また、このとき、（終了コードを含むエントリ＋１エントリ）のアドレスから送信更新サブプログラム格納情報を差し引いた値をデータサイズ情報生成部２７７で保持する。
【０１７６】
図９のような最新バージョン情報の場合、サブプログラムｂ、ｃ、ｅのエントリを書込み、図１３に示す送信オリジナルサブプログラム格納情報が生成される。
【０１７７】
次に、分岐先調整情報生成部２７５が、送信分岐先調整情報を生成する（Ｓ４０７）。
【０１７８】
具体的には、分岐先調整情報生成部２７５は、最新バージョン情報２９１２のエントリと応答バージョン情報２８１２のエントリとを順次比較する。両者のサブプログラムバージョンが一致する場合、相互に対応する応答バージョンサブプログラム２８１１と最新バージョンサブプログラム２９１１とを比較し差分を抽出する。差分がある場合、比較したサブプログラム名、差分が発生したオフセットアドレス、オフセットアドレスにおける最新バージョンサブプログラムの値を送信データ格納領域２８２に送信分岐先調整情報２８２３（図１４）として書き込む。それ以外のケースでは、書込み処理を行わない。
【０１７９】
すべてのエントリについて処理を終えると、送信分岐先調整情報に終了コードを含むエントリを書き込む。
【０１８０】
また、このとき、（終了コードを含むエントリ＋１エントリ）のアドレスから送信オリジナルサブプログラム格納情報を差し引いた値をデータサイズ情報生成部２７７で保持する。
【０１８１】
図９に示す最新バージョン情報及び図１１に示す応答バージョン情報の場合、図１４に示す送信分岐先調整情報が生成される。
【０１８２】
次に、データサイズ情報生成部２７７が送信データサイズ情報を生成する（Ｓ４０８）。
【０１８３】
具体的には、送信オリジナルサブプログラム格納情報のデータサイズを示す送信オリジナルサブプログラム格納情報エントリと、送信更新サブプログラム格納情報のデータサイズを示す送信更新サブプログラム格納情報エントリと、送信分岐先調整情報のデータサイズを示す送信分岐先調整情報エントリと、送信サブプログラムのデータサイズを示す送信サブプログラムエントリと、送信データサイズ情報自身のデータサイズを示す送信データサイズ情報エントリとを含む送信データサイズ情報を生成する。
【０１８４】
送信オリジナルサブプログラム格納情報エントリは、Ｓ４０５においてデータサイズ情報生成部２７７が保持した値とする。
【０１８５】
送信更新サブプログラム格納情報エントリは、Ｓ４０６においてデータサイズ情報生成部２７７が保持した値とする。
【０１８６】
送信分岐先調整情報エントリは、Ｓ４０７においてデータサイズ情報生成部２７７が保持した値とする。
【０１８７】
送信サブプログラムのエントリは、最新バージョン情報のエントリと応答バージョン情報のエントリとを順次比較する。サブプログラムバージョンが一致しない場合、比較したサブプログラム名、最新バージョンのサブプログラムのサイズを示すエントリを作成する。
【０１８８】
送信データサイズ情報のエントリは、（最後の送信サブプログラムエントリを書きこんだエントリ＋２エントリ）のアドレスから送信データサイズ情報の先頭アドレスを差し引いた値とする。また、送信データサイズ情報エントリを書き込んだあとに終了コードを含んだエントリを書き込む。
【０１８９】
以上により送信修正テーブル生成処理（Ｓ３５１）が終了すると、送信データ格納領域２８２に送信修正テーブル２８２０が格納される。
【０１９０】
その後、送信サブプログラム特定部２７６が送信サブプログラムを特定する（Ｓ３５２）。
【０１９１】
具体的には、送信サブプログラム特定部２７６は、各サブプログラムについて最新バージョン情報２９１２のバージョンフィールドと応答バージョン情報２８１２のバージョンフィールドを比較する。両者が一致しないサブプログラムは情報処理装置１が未保有（未受信）の更新サブプログラムであり、送信サブプログラム特定部２７６は当該サブプログラムについて最新バージョン関連情報格納領域２９１から最新バージョンサブプログラム２９１１を読み出し送信データ格納領域２８２に送信サブプログラム２８２５として格納する。
【０１９２】
図９に示す最新バージョン情報及び図１１に示す応答バージョン情報の場合は、サブプログラムｂとｅがバージョンが一致していないので、図７に示すように、最新バージョンサブプログラムｂと最新バージョンサブプログラムｅが送信データ格納領域２８２に格納される。
【０１９３】
これにより、送信データが全て送信データ格納領域２８２に格納されたことになる。
【０１９４】
その後、送信データ送信処理部２７８が送信データ格納領域２８２に格納された送信データを通信制御装置２６を介して情報処理装置１に送信する（Ｓ３５３）。
【０１９５】
次に、情報処理装置１では、送信データ受信処理部１３１２が通信制御装置１６を介して管理装置２からの送信データを受信し（Ｓ３５４）、受信した送信データをＲＡＭ１５の受信データ格納領域１５３に格納し、受信データとする（Ｓ３５５）。
【０１９６】
なお、この時点では、受信データ格納領域１５３には複製セクタ格納情報１５３１は格納されておらず、複製セクタ格納情報１５３１以外の受信データサイズ情報１５３２、受信オリジナルサブプログラム格納情報１５３３、受信更新サブプログラム格納情報１５３４、受信分岐先調整情報１５３５が受信データ格納領域１５３に格納されている。
【０１９７】
次に、情報処理装置１はステップＳ３５５の新修正テーブル生成処理を行う。
【０１９８】
以下、図２０を参照して新修正テーブル生成処理を説明する。
【０１９９】
先ず、サブプログラム格納領域指定部１３１３が複製セクタ格納情報を生成する（Ｓ４１１）。
【０２００】
具体的には、サブプログラム格納領域指定部１３１３は、フラッシュメモリ１４の修正テーブル格納領域１４１に格納されているセクタ格納情報１４１４をＲＡＭ１５の受信データ格納領域１５３に複製セクタ格納情報１５３１としてコピーする。なお、これらセクタ格納情報１４１４、複製セクタ格納情報１５３１は、前回の送信データ受信時に作成された情報であり、今回受信した受信データに対応したセクタ格納情報ではない。セクタ格納情報１４１４及び複製セクタ格納情報１５３１の例を図１５に示す。
【０２０１】
次に、サブプログラム格納領域指定部１３１３は、修正情報ＲＡＭ格納情報を生成する（Ｓ４１２）。
【０２０２】
具体的には、サブプログラム格納領域指定部１３１３は、受信データサイズ情報１５３２を１エントリ読出し、基準アドレスを加算する。算出された値をＲＡＭ格納アドレスとして修正情報ＲＡＭ格納情報１５２に書きこむ。受信データサイズ情報１５３２にある所定のエントリ（送信オリジナルサブプログラム格納情報エントリ、送信更新サブプログラム格納情報エントリ、送信分岐先調整情報エントリ、送信サブプログラムエントリ）について処理を終えるとセクタ退避領域０、１のエントリ、終了コードを含むエントリを書きこむ（図１６）。
【０２０３】
次に、サブプログラム格納領域指定部１３１３は、新修正テーブルを生成する（Ｓ４１３）。
【０２０４】
具体的には、サブプログラム格納領域指定部１３１３は、修正情報ＲＡＭ格納情報からＲＡＭ格納アドレスとサイズを取得することで以下の情報を新修正テーブル格納領域１５４に書きこむ。
１）受信オリジナルサブプログラム格納情報１５３３→新オリジナルサブプログラム格納情報１５４２
２）受信更新サブプログラム格納情報１５３４→新更新サブプログラム格納情報１５４３
３）受信分岐先調整情報１５３５→新分岐先調整情報１５４４
つまり、以下の手順にて新修正テーブル生成は生成される。
（１）  サブプログラム格納領域指定部は生成する新修正テーブルを格納する領域のアドレスをセットするために、修正情報ＲＡＭ格納情報の新修正テーブルセクタエントリを読み出す。読み出したアドレスに、固定値を加算し、新修正テーブルにおける更新サブプログラム格納情報／分岐先調整情報の格納する先頭アドレスも算出／保存しておく。
（２）  サブプログラム格納領域指定部は、オリジナルサブプログラム格納情報が格納されている先頭アドレスとサイズをセットするために、修正情報ＲＡＭ格納情報のオリジナルサブプログラム格納情報エントリーを読みだす。
（３）  サブプログラム格納領域指定部は、（２）でセットした先頭アドレスからセットされたサイズ分だけ（１）でセットされたアドレスにコピーする。
（４）  サブプログラム格納領域指定部は、更新サブプログラム格納情報が格納されている先頭アドレスとサイズをセットするために、更新サブプログラム格納情報エントリーを読みだす。
（５）  サブプログラム格納領域指定部は、（４）でセットされた先頭アドレスからセットされたサイズ分だけ（１）でセットされた新修正テーブルにおける更新サブプログラム格納情報のアドレスにコピーする。
（６）  サブプログラム格納領域指定部は、分岐先調整情報エントリーを読みだす。分岐先調整情報が格納されている先頭アドレスとサイズをセットする。
（７）  サブプログラム格納領域指定部は、セットされた先頭アドレスからセットされたサイズ分だけ（１）でセットされた新修正テーブルにおける分岐先調整情報のアドレスにコピーする。
【０２０５】
次に、サブプログラム格納領域指定部１３１３は、新セクタ格納情報を生成する（Ｓ４１４）。
【０２０６】
具体的には、サブプログラム格納領域指定部１３１３は、セクタ格納情報開始アドレスを新修正テーブル格納領域１５４の最後のアドレスに書きこむ。続いて複製セクタ格納情報１５３１（図１５）と受信データサイズ情報１５３２から新セクタ格納情報１５４１を生成し、新修正テーブル格納領域１５４に格納する。
【０２０７】
新セクタ格納情報の生成手順としては、まず、複製セクタ格納情報を受信データサイズ情報と比較する。サブプログラム名が一致した場合、複製セクタ格納情報（サイズフィールド）を変更する必要が発生する。複製セクタ格納情報のサイズレコードを受信データサイズ情報のサイズレコードに置き換える。残っているセクタ容量と調整し、分割が必要なときは分割処理をして新セクタ格納情報として修正テーブル格納領域に格納する。サブプログラム名が一致しない場合、複製セクタ格納情報のエントリーを新セクタ格納情報として修正テーブル格納領域に格納する。
【０２０８】
新セクタ格納情報１５４１の例を図１７に示す。
【０２０９】
図１７に示すように、新セクタ格納情報１５４１は、フラッシュメモリのセクタごとにそれぞれのセクタにおけるセクタデータの内容（更新サブプログラムの格納内容）を示す情報であり、サブプログラム格納領域指定部１３１３は、新セクタ格納情報１５４１を生成することにより、フラッシュメモリのセクタごとに更新サブプログラムの格納内容（セクタデータ）を指定している。
【０２１０】
以上により新修正テーブル生成処理（Ｓ３５５）が終了したら、情報処理装置１は次にフラッシュメモリ書換処理（Ｓ３５６）を行う。
【０２１１】
以下、図２１を参照してフラッシュメモリ書換処理を説明する。
【０２１２】
フラッシュメモリ書換処理（Ｓ３５６）では、サブプログラム書込処理部１３１４が以下手順によりフラッシュメモリセクタを書きかえる。
１）新セクタ格納情報エントリを読み出す（Ｓ４２１）。
２）フラッシュメモリセクタのデータを退避する（Ｓ４２２）。
３）フラッシュメモリセクタを消去する（Ｓ４２３）。
４）サブプログラムを置きかえるか判定をする（Ｓ４２４）。
【０２１３】
このＳ４２４の判定は、読み込んだ新セクタ格納情報のエントリからサブプログラム名を抽出し、受信データサイズ情報のサブプログラム名と比較し、両者が一致すれば置き換えを実施する。
５）ステップＳ４２４でＹｅｓならば、受信サブプログラムからフラッシュメモリにコピーする（Ｓ４２５）。
６）ステップＳ４２４でＮｏならば、退避したデータからフラッシュメモリにコピーする（Ｓ４２６）。
７）そして、指定されたセクタにサブプログラムが収まったかを判定する（Ｓ４２７）。
８）ステップＳ４２７でＮｏの場合は、ステップＳ４２１に戻り、処理を繰り返す。
９）ステップＳ４２７でＹｅｓの場合は、同セクタに別のサブプログラムがはいるかを判定する（Ｓ４２８）。
１０）ステップＳ４２８でＹｅｓの場合は、ステップＳ４２４に戻り、処理を繰り返す。
１１）ステップＳ４２８でＮｏの場合は、ステップＳ４２１に戻り、処理を繰り返す。
【０２１４】
受信サブプログラムのセクタデータ生成の手順としては、まず、受信データサイズ情報と新セクタ格納情報を比較することでフラッシュメモリに格納されているサブプログラム、若しくは受信サブプログラムのいずれかを使うかを判定する。
【０２１５】
フラッシュメモリに格納されているサブプログラムを、書きこむ場合には、セクタを消去する前に退避した領域から新セクタ格納情報に示されているサイズ分をフラッシュメモリにコピーする（データを生成するわけではない）。
【０２１６】
受信サブプログラムを書きこむ場合は、受信データ格納領域から新セクタ格納情報に示されているサイズ分をフラッシュメモリにコピーする（データを生成するわけではない）。
【０２１７】
なおフラッシュメモリは書換え前に消去オペレーションが必須になる。
【０２１８】
なお、新オリジナルサブプログラム格納情報、新更新サブプログラム格納情報、新分岐先調整情報をフラッシュメモリに格納する処理は、サブプログラムのフラッシュメモリ書換えの前に実施する。
【０２１９】
新オリジナルサブプログラム格納情報、新更新サブプログラム格納情報、新分岐先調整情報、新セクタ格納情報は新修正テーブルになっている。修正テーブルは、フラッシュメモリでは修正テーブルセクタとして固定したセクタにわりあてる。ＲＡＭ上の新修正テーブル格納領域にあるデータをすべて修正テーブルセクタに格納する。
【０２２０】
以上により、フラッシュメモリ書換処理（Ｓ３５６）が終了すると、プログラムバージョン情報生成部１３１６が更新後のサブプログラムについてのプログラムバージョン情報を生成し、機種コード／バージョン格納領域１４３に格納する（Ｓ３５７）。
【０２２１】
プログラムバージョン情報の生成手順は、以下の通りである。
【０２２２】
管理装置から受信した更新コマンドを情報処理装置１のＲＡＭ上に保存する。フラッシュメモリにサブプログラムを書き込んだあとにプログラムバージョン情報生成部がＲＡＭに保存された更新コマンドから機種コード／プログラムバージョン情報を抽出し、フラッシュメモリの固定番地に書きこむ。
【０２２３】
そして、最後に、リセット指示部１３１５が、１２にリセット信号を有意にするように指示する（Ｓ３５８）。
【０２２４】
以上により更新サブプログラム格納領域１４２の更新サブプログラムが新たな更新サブプログラムに書換えられ、以降、情報処理装置１がプログラムの実行を行う際には、実施の形態１に示した手順にてプログラムの実行を行うことができる。
【０２２５】
このように本実施の形態によれば、情報処理装置における書換えが必要な更新サブプログラムのみ送信するため、管理装置と情報処理装置の通信時間を短縮できる。
【０２２６】
また、更新サブプログラムのフラッシュメモリ格納領域が示された送信更新サブプログラム格納情報を管理装置から情報処理装置に送信するため、書換え用プログラムを生成・送付することなく情報処理装置のフラッシュメモリを書きかえることができる。
【０２２７】
実施の形態３．
実施の形態２では、情報処理装置１のフラッシュメモリに書きこむセクタデータ（オリジナルサブプログラム格納情報、更新サブプログラム情報、サブプログラム等のセクタデータ）を情報処理装置１で生成していた。
【０２２８】
ところで、管理装置２は情報処理装置１よりも性能が高いことが多い。したがって、処理の一部を管理装置２に移すことでシステム全体として処理の高速化が図れる。
【０２２９】
このため、本実施の形態では、フラッシュメモリに書きこむセクタデータを管理装置２で生成することで更新処理速度を高める例について説明する。
【０２３０】
先ず、本実施の形態に係る情報処理装置１及び管理装置２の動作を概説する。
【０２３１】
管理装置２は、実施の形態２に示した手順にて、送信オリジナルサブプログラム格納情報、送信更新サブプログラム格納情報、送信分岐先調整情報を生成する。
【０２３２】
その後、管理装置２は、所定の送信セクタデータ格納情報を生成し、生成した送信セクタデータ格納情報に基づいて情報処理装置１に送信すべき送信サブプログラムを特定する。
【０２３３】
また、送信オリジナルサブプログラム格納情報、送信更新サブプログラム格納情報、送信分岐先調整情報を情報処理装置１のフラッシュメモリのセクタごとに分割して送信修正テーブルセクタデータとし、また送信サブプログラムをセクタごとに分割して送信セクタデータとし、送信修正テーブルセクタデータ、送信セクタデータ、及び送信セクタデータ格納情報を情報処理装置へ送信する。
【０２３４】
情報処理装置１は、受信した送信セクタデータ格納情報に基づき送信修正テーブルセクタデータと送信セクタデータでフラッシュメモリに格納されているセクタデータおよび修正テーブルセクタデータを置換する。
【０２３５】
本実施の形態はセクタデータおよびセクタデータ格納情報に関するものである。そのもととなる送信オリジナルサブプログラム格納情報、送信更新サブプログラム格納情報、送信分岐先調整情報は実施の形態２と同じものである。したがって送信分岐先調整情報生成までの手順は実施の形態２と同様に実施する。
【０２３６】
図２２は、本実施の形態に係る管理装置２の構成を示す。
【０２３７】
図２２において、２１〜２６の要素は、実施の形態２で示したものと同様であるが、機種／情報処理装置ＤＢ２５が格納している機種／情報処理装置情報には、機種ごとに情報処理装置の通信ＩＤ（例えば、ＩＰアドレス）を示す情報のほかに、機種ごとに情報処理装置に搭載されているフラッシュメモリのセクタサイズの情報も含まれている。
【０２３８】
ＲＡＭ（１）２７では、実施の形態２で示した送信サブプログラム特定部２７６を除外するとともにセクタデータ格納情報生成部２７９及びセクタデータ生成部２８０を追加している。セクタデータ格納情報生成部２７９及びセクタデータ生成部２８０以外の要素は、実施の形態２で示したものと同様である。
【０２３９】
セクタデータ格納情報生成部２７９は、送信セクタデータ格納情報２８２６を生成し、ＲＡＭ（２）の送信データ格納領域２８２に格納する。
【０２４０】
セクタデータ生成部２８０は、ＲＡＭ（２）の送信データ格納領域２８２に格納されている送信オリジナルサブプログラム格納情報２８２１、送信更新サブプログラム格納情報２８２２、送信分岐先調整情報２８２３を情報処理装置１のフラッシュメモリのセクタ単位で分割してセクタデータを生成するとともに、これらのセクタデータを結合し、送信データ格納領域２８２に送信修正テーブルセクタデータ２８２８として格納する。また、送信セクタデータ格納情報２８２６に基づき情報処理装置１に送信すべき更新サブプログラムを特定するとともに、特定した更新サブプログラムをセクタ単位で分割してセクタデータとし、送信データ格納領域２８２に送信セクタデータ２８２９として格納する。なお、セクタデータ生成部２８０は、機種／情報処理装置ＤＢ２５に格納されている機種／情報処理装置情報を参照して情報処理装置１のフラッシュメモリのセクタサイズを特定し、セクタデータの生成を行なう。
【０２４１】
ＲＡＭ（２）２８は、送信データ格納領域２８２に、送信セクタデータ格納情報２８２６と、送信修正テーブルセクタデータ２８２８及び送信セクタデータ２８２９から構成される送信セクタデータ群２８２７を格納する。
【０２４２】
また、ＲＡＭ（３）２９は、セクタ格納情報格納領域２９２に、最新バージョンセクタデータ格納情報２９２１及び応答バージョンセクタデータ格納情報２９２２を格納する。
【０２４３】
次に、図２３に本実施の形態に係る情報処理装置１の構成を示す。
【０２４４】
ＲＯＭ１３では、実施の形態２の構成から、サブプログラム格納領域指定部１３１３を除いた構成となっている。
【０２４５】
なお、図２３では図示を省略しているが、本実施の形態に係る情報処理装置１も図１に示した１３１〜１３６の要素をＲＯＭ１３に保有しており、プログラムの実行時には、これら１３１〜１３６の各要素を用いて実施の形態１で示した動作を行う。
【０２４６】
また、フラッシュメモリ１４では、実施の形態２で示した修正テーブル格納領域１４１及び更新サブプログラム格納領域１４２の代わりにセクタデータ格納領域が存在している。
【０２４７】
セクタデータ格納領域には、修正テーブルセクタデータ１４６１及びセクタデータ１４６２から構成される。修正テーブルセクタデータ１４６１は、実施の形態２で示したオリジナルサブプログラム格納情報１４１１、更新サブプログラム格納情報１４１２、分岐先調整情報１４１３のセクタデータである。また、セクタデータ１４６２は、実施の形態２で示した更新サブプログラムのセクタデータである。
【０２４８】
なお、図２２のセクタデータ格納領域１４６に格納されている情報（修正テーブルセクタデータ１４６１、セクタデータ１４６２）は、後述する図２４の処理が行なわれる前の情報、すなわち、前回の更新時の情報である。
【０２４９】
また、ＲＡＭ１５では、受信データ格納領域１５６に受信セクタデータ格納情報１５６１、受信修正テーブルセクタデータ１５６３と受信セクタデータ１５６４から構成される受信セクタデータ群１５６２が格納される。
【０２５０】
これら受信セクタデータ格納情報１５６１及び受信セクタデータ群１５６２は、管理装置２から送信された送信セクタデータ格納情報２８２６及び送信セクタデータ群２８２７であり、通信制御装置１６を介して送信データ受信処理部１３１２に受信され、送信データ受信処理部１３１２により受信データ格納領域１５６に格納された情報である。
【０２５１】
次に、図２４を参照して本実施の形態に係る情報処理装置１と管理装置２の動作を説明する。
【０２５２】
図２４のステップＳ３６１〜Ｓ３７１は、図１８に示したＳ３４１〜Ｓ３５１と同様であり、説明を省略する。
【０２５３】
Ｓ３７１までの処理が終了した後、管理装置２が、次の手順で送信セクタデータ群２８２７と送信セクタデータ格納情報２８２６を生成する（Ｓ３７２）。
【０２５４】
まず、送信セクタデータ格納情報２８２６を生成するために、最新バージョンセクタデータ格納情報２９２１と応答バージョンセクタデータ格納情報２９２２を生成する。セクタデータ格納情報生成部２７９が、最新バージョン情報２９１２から必要なデータを抽出、並び替えを行った後、フラッシュメモリのセクタサイズ毎に分割することで最新バージョンセクタデータ格納情報２９２１を生成する。同様に応答バージョン情報２８１２から応答バージョンセクタデータ格納情報２９２２を生成する。
【０２５５】
具体的には、応答バージョンセクタデータ格納情報は以下の手順にて生成される。
（１）  バージョン１．０以外のエントリーからサブプログラム名、プログラムサイズ、プログラムバージョンのフィールドを抽出する。
（２）  バージョンの古い順に並び変える。
（３）  プログラムサイズがセクタのサイズより大きければエントリーを分割し、セクタ番号を付加する。
【０２５６】
また、最新バージョンセクタデータ格納情報は以下の手順にて生成される。
（１）  バージョン１．０以外のエントリーをセクタ番号、サブプログラム名、プログラムサイズ、プログラムバージョンのフィールドを抽出する。
（２）  応答バージョンセクタデータ格納情報にエントリーがあるサブプログラムは順番を合わせ、エントリーがなければバージョンの古い順に並び替える。
（３）  プログラムサイズがセクタのサイズより大きければエントリーを分割し、セクタ番号を付加する。
【０２５７】
本実施の形態に係る最新バージョンセクタデータ格納情報２９２１の例を図２５に、また、本実施の形態に係る応答バージョンセクタデータ格納情報２９２２の例を図２６に示す。
【０２５８】
また、セクタデータ格納情報生成部２７９は、最新バージョンセクタデータ格納情報２９２１と応答バージョンセクタデータ格納情報２９２２を比較しサブプログラムバージョンが一致しないものを抽出することで送信セクタデータ格納情報２８２６を生成し、送信データ格納領域２８２に格納する。
【０２５９】
具体的には、送信セクタデータ格納情報は、以下の手順にて生成される。
（１）  最新バージョンセクタデータ格納情報を応答バージョンセクタ格納情報と比較する。
（２）  最新バージョンセクタデータ格納情報エントリーからサブプログラム名、プログラムバージョン、プログラムサイズが応答バージョンセクタ格納情報と一致しないものを抽出する。
（３）  抽出したエントリーを送信セクタデータ格納情報として格納する。
【０２６０】
図２７に送信セクタデータ格納情報２８２６の例を示す。
【０２６１】
図２７では、図２５の最新バージョンセクタデータ格納情報と図２６の応答バージョンセクタデータ格納情報とを比較した結果、サブプログラムｂ、ｅでサブプログラムバージョンが一致していないので、図２５の最新バージョンセクタデータ格納情報のサブプログラムｂ、ｅのレコードをコピーするとともに、サブプログラムバージョンフィールドを削除し、また、最新フラグフィールドを設定して送信セクタデータ格納情報を生成している。
【０２６２】
つまり、この場合、応答バージョンサブプログラム格納情報からバージョン１．０以外のものを抽出するとサブプログラムｃ，ｅのエントリーになり、同様に最新バージョンサブプログラム格納情報からバージョン１．０以外のものを抽出するとサブプログラムｂ，ｃ，ｅのエントリーになる。両者のエントリーを比較するとサブプログラムｃは情報処理装置１にすでに格納されているものから変わっていないので、書換えは不要と判定する。したがって送信セクタデータにはサブプログラムｅ，ｂのエントリーが格納される。
【０２６３】
次に、セクタデータ生成部２８０が、送信セクタデータ２８２９を次の手順で生成する。
【０２６４】
セクタデータ生成部２８０は、送信オリジナルサブプログラム格納情報２８２１、送信更新サブプログラム格納情報２８２２、送信分岐先調整情報２８２３をセクタ単位で分割してセクタデータとするとともに、これらセクタデータを結合して送信修正テーブルセクタデータ２８２８を生成し、送信データ格納領域２８２に格納する。この際に、セクタデータ生成部２８０は、機種／情報処理装置ＤＢ２５に格納されている機種／情報処理装置情報を参照して情報処理装置１のフラッシュメモリのセクタサイズを特定し、送信修正テーブルセクタデータの生成を行なう。
【０２６５】
また、セクタデータ生成部２８０は、送信セクタデータ格納情報２８２６を読みとり、エントリーが存在するサブプログラムを最新バージョンサブプログラム２９１１を送信セクタデータ２８２９として送信データ格納領域２８２に格納する。
【０２６６】
そして、送信データ送信処理部２７８が、送信セクタ格納情報をもとに送信セクタデータ格納情報２８２６及び送信セクタデータ群２８２７を、通信制御装置１６を介して情報処理装置１へ送信する（Ｓ３７３）。
【０２６７】
次に、情報処理装置１では、送信セクタデータの受信処理（Ｓ３７４）、フラッシュメモリのセクタデータの書換処理（Ｓ３７５）を以下の手順で行う。
【０２６８】
送信データ受信処理部１３１２が、通信制御装置１６を介して送信セクタデータ群および送信セクタデータ格納情報を受信し、受信データ格納領域１５６に受信セクタデータ格納情報１５６１及び受信セクタデータ群１５６２として格納する。
【０２６９】
サブプログラム書込処理部１３１４が、受信セクタデータ格納情報１５６１で示すフラッシュメモリのセクタデータを該当する受信セクタデータと置換する。具体的には、受信修正テーブルセクタデータ１５６３を修正テーブルセクタデータ１４６１と置換する。また受信セクタデータ１５６４（セクタデータ１１、セクタデータ１２、セクタデータ１３）をセクタデータ１４６２（セクタデータ１０、セクタデータ１１）と置換する。
【０２７０】
以上により、セクタデータ格納領域の修正テーブルセクタデータ１４６１及びセクタデータ１４６２が管理装置２より受信した受信修正テーブルセクタデータ１５６３及び受信セクタデータ１５６４に置換わる。
【０２７１】
次に、プログラムバージョン情報生成部１３１６が、実施の形態２と同様に、更新後のセクタデータについてのプログラムバージョン情報を生成し、機種コード／バージョン格納領域１４３に格納する（Ｓ３７６）。
【０２７２】
そして、最後に、リセット指示部１３１５が、リセット手段１２にリセット信号を有意にするように指示する（Ｓ３７７）。
【０２７３】
以降、情報処理装置１がプログラムの実行を行う際には、実施の形態１に示した手順にてプログラムの実行を行うことができる。
【０２７４】
このように本実施の形態によれば、管理装置において修正テーブル及び更新サブプログラムをセクタデータ化するとともにセクタデータの格納情報を生成し、これらセクタデータ及びセクタデータの格納情報を情報処理装置に送信するため、情報処理装置におけるフラッシュメモリの書換処理の高速化を図ることができる。
【図面の簡単な説明】
【０２７５】
【図１】実施の形態１に係る情報処理装置の構成例を示す図。
【図２】オリジナルサブプログラム格納情報の例を示す図。
【図３】更新サブプログラム格納情報の例を示す図。
【図４】分岐先調整情報の例を示す図。
【図５】実施の形態１に係る情報処理装置の動作例を示す図。
【図６】実施の形態２に係るシステム構成例を示す図。
【図７】実施の形態２に係る管理装置の構成例を示す図。
【図８】実施の形態２に係る情報処理装置の構成例を示す図。
【図９】最新バージョン情報の例を示す図。
【図１０】更新コマンドの例を示す図。
【図１１】応答コマンドの例を示す図。
【図１２】送信オリジナルサブプログラム格納情報の例を示す図。
【図１３】送信更新サブプログラム格納情報の例を示す図。
【図１４】送信分岐先調整情報の例を示す図。
【図１５】セクタ格納情報の例を示す図。
【図１６】修正情報ＲＡＭ格納情報の例を示す図。
【図１７】新セクタ格納情報の例を示す図。
【図１８】実施の形態２に係る情報処理装置及び管理装置の動作例を示す図。
【図１９】送信修正テーブル生成処理の内容を示す図。
【図２０】新修正テーブル生成処理の内容を示す図。
【図２１】フラッシュメモリ書換処理の内容を示す図。
【図２２】実施の形態３に係る管理装置の構成例を示す図。
【図２３】実施の形態３に係る情報装置の構成例を示す図。
【図２４】実施の形態３に係る情報処理装置及び管理装置の動作例を示す図。
【図２５】最新バージョンセクタデータ格納情報の例を示す図。
【図２６】応答バージョンセクタデータ格納情報の例を示す図。
【図２７】送信セクタデータ格納情報の例を示す図。
【符号の説明】
【０２７６】
１  情報処理装置、２  管理装置、１１  ＣＰＵ、１２  リセット手段、１３
ＲＯＭ、１４  フラッシュメモリ、１５  ＲＡＭ、１６  通信制御装置、２１
ＣＰＵ、２２  ＲＯＭ、２３  サブプログラムＤＢ、２４  最新バージョン情報ＤＢ、２５  機種／情報処理装置ＤＢ、２６  通信制御装置、２７  ＲＡＭ（１）、２８  ＲＡＭ（２）、２９  ＲＡＭ（３）、１３１  Ｈ／Ｗ初期化部、１３２  オリジナルサブプログラム転送部、１３３  更新サブプログラム転送部、１３４  サブプログラム調整部、１３５  プログラム実行部、１３６  オリジナルサブプログラム格納領域、１４１  修正テーブル格納領域、１４２  更新サブプログラム格納領域、１４３  機種コード／バージョン格納領域、１４６  セクタデータ格納領域、１５１  実行プログラム格納領域、１５２  修正情報ＲＡＭ格納情報、１５３  受信データ格納領域、１５４  新修正テーブル格納領域、１５５  セクタ退避領域、１５６  受信データ格納領域、２７１  サブプログラム登録部、２７２  最新バージョン情報生成部、２７３  更新問合せ部、２７４  格納情報生成部、２７５  分岐先調整情報生成部、２７６  送信サブプログラム特定部、２７７  データサイズ情報生成部、２７８  送信データ送信処理部、２７９  セクタデータ格納情報生成部、２８０  セクタデータ生成部、２８１  応答バージョン関連情報格納領域、２８２  送信データ格納領域、２９１  最新バージョン関連情報格納領域、１３１１  問合せ応答部、１３１２  送信データ受信処理部、１３１３  サブプログラム格納領域指定部、１３１４  サブプログラム書込処理部、１３１５  リセット指示部、１３１６  プログラムバージョン情報生成部、１４１１  オリジナルサブプログラム格納情報、１４１２  更新サブプログラム格納情報、１４１３  分岐先調整情報、１４１４  セクタ格納情報、１４３１  機種コード、１４３２  プログラムバージョン情報、１５３１  複製セクタ格納情報、１５３２  受信データサイズ情報、１５３３  受信オリジナルサブプログラム格納情報、１５３４  受信更新サブプログラム格納情報、１５３５  受信分岐先調整情報、１５３６  受信サブプログラム、１５４１  新セクタ格納情報、１５４２  新オリジナルサブプログラム格納情報、１５４３  新更新サブプログラム格納情報、１５４４  新分岐先調整情報、１５６１  受信セクタデータ格納情報、１５６２  受信セクタデータ群、１５６３  受信修正テーブルセクタデータ、１５６４  受信セクタデータ、２８１１  応答バージョンサブプログラム、２８１２  応答バージョン情報、２８２０  送信修正テーブル、２８２１  送信オリジナルサブプログラム格納情報、２８２２  送信更新サブプログラム格納情報、２８２３  送信分岐先調整情報、２８２５  送信サブプログラム、２８２６  送信セクタデータ格納情報、２８２７  送信セクタデータ群、２９１１  最新バージョンサブプログラム、２９１２  最新バージョン情報、２９２１  最新バージョンセクタデータ格納情報、２９２２  応答バージョンセクタデータ格納情報。
【図１】
2005092379.tif 000003
【図２】
2005092379.tif 000004
【図３】
2005092379.tif 000005
【図４】
2005092379.tif 000006
【図５】
2005092379.tif 000007
【図６】
2005092379.tif 000008
【図７】
2005092379.tif 000009
【図８】
2005092379.tif 000010
【図９】
2005092379.tif 000011
【図１０】
2005092379.tif 000012
【図１１】
2005092379.tif 000013
【図１２】
2005092379.tif 000014
【図１３】
2005092379.tif 000015
【図１４】
2005092379.tif 000016
【図１５】
2005092379.tif 000017
【図１６】
2005092379.tif 000018
【図１７】
2005092379.tif 000019
【図１８】
2005092379.tif 000020
【図１９】
2005092379.tif 000021
【図２０】
2005092379.tif 000022
【図２１】
2005092379.tif 000023
【図２２】
2005092379.tif 000024
【図２３】
2005092379.tif 000025
【図２４】
2005092379.tif 000026
【図２５】
2005092379.tif 000027
【図２６】
2005092379.tif 000028
【図２７】
2005092379.tif 000029