(57)【要約】  【課題】  アプリケーションプログラムの改変に伴いアクセスする特定データの形式が変わる場合でも，プログラムの複雑化やプログラム起動の遅延を招くことなく旧形式の特定データを用いて改変後のアプリケーションプログラムへ移行することを可能とする。  【解決手段】  データ記憶手段に特定の形式で記憶された特定データにアクセスして所定の処理を実行するアプリケーションプログラムをＲＯＭ等の転送元記憶手段からＲＡＭ等の転送先記憶手段に転送するプログラム転送工程（Ｓ４）と，転送工程と並行して特定データの形式を転送中のアプリケーションプログラムに対応する形式に変換する特定データ並行変換工程（Ｓ６）と，転送先記憶手段に転送されたアプリケーションプログラムに処理を引き継ぐ処理引継ぎ工程（Ｓ９）とをＣＰＵに実行させるためのプログラム起動用プログラム。【選択図】図２
2005038180.tif 000002
【特許請求の範囲】
【請求項１】
データ記憶手段に特定の形式で記憶された特定データにアクセスして所定の処理を実行するアプリケーションプログラムを転送元記憶手段から転送先記憶手段に転送するプログラム転送工程と，
前記転送先記憶手段に転送された前記アプリケーションプログラムに処理を引き継ぐ処理引継ぎ工程と，を有してなるプログラム起動方法において，
前記アプリケーションプログラムの前記転送と並行して，前記特定データの形式を前記転送中の前記アプリケーションプログラムに対応する形式に変換する特定データ並行変換工程を有してなることを特徴とするプログラム起動方法。
【請求項２】
前記データ記憶手段に記憶された前記特定データの形式が，起動する前記アプリケーションプログラムに対応する形式であるか否かをチェックし，対応しない形式である場合にのみ前記特定データ並行変換工程を実行する形式チェック工程を有してなる請求項１に記載のプログラム起動方法。
【請求項３】
前記アプリケーションプログラムの前記転送の完了と，前記特定データ並行変換工程の完了との両方を確認した後に前記アプリケーションプログラムに処理を引き継ぐ完了確認工程を有してなる請求項１又は２に記載のプログラム起動方法。
【請求項４】
請求項１〜３に記載のプログラム起動方法における各工程をコンピュータに実行させるためのプログラム起動用プログラム。
【請求項５】
請求項４に記載のプログラム起動用プログラムが記憶されてなることを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，データ記憶手段に特定の形式で記憶された特定データにアクセスして所定の処理を実行するアプリケーションプログラムをハードディスクやＲＯＭ等の転送元記憶手段からＲＡＭ等の転送先記憶手段に転送して処理を引き継ぐプログラム起動方法及びそのプログラム起動用プログラム，並びにそのプログラム起動用プログラムが記憶されたコンピュータ読み取り可能な記憶媒体に関するものである。
【背景技術】
【０００２】
所定の処理を実行するアプリケーションプログラムが，そのプログラムに対応した特定のデータ形式を有するデータ（特定データ）にアクセスしながら処理を実行することは一般的である。例えば，圧縮データを解凍するプログラムは，特定のデータ形式を有するその圧縮データにアクセスしながら解凍データ（復元データ）を生成する等である。
また，アプリケーションプログラムが，ＲＯＭやハードディスク等の保存用の記憶手段に予め記憶され，実行時には，まず，ＲＡＭ等の高速な主記憶手段に転送（展開）された上で処理を引き継ぐ起動処理が行われることは一般的である。
ここで，アプリケーションプログラムのバージョンアップ等に伴い，これに対応する特定データのデータ形式が変更されることは通常行われることである。この場合，アプリケーションプログラムを新バージョンのものに入れ替えても，旧形式の特定データをそのまま取り扱うことはできず，何らかの対処をしなければならない。
【０００３】
従来，例えば特許文献１では，プログラムのバージョンアップ等により，特定データの形式が変更された場合でも，プログラム側が旧バージョンと新バージョンの両形式の特定データに対応できるにするものが示されている。
この他にも，新たなアプリケーションプログラムに旧形式の特定データを新形式に変換するプログラムを付加し，特定データの形式を新形式に変換した後，新たなアプリケーションプログラムの処理を実行することも考えられる。
【特許文献１】特開平０１−３１０４５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら，新たなアプリケーションプログラムを，新旧両形式の特定データに対応できるものとするためには，処理手順が複雑となり，プログラムコードが複雑化するため，バグが発生しやすいという問題点があった。
また，アプリケーションプログラムに特定データの形式の変換処理を付加した場合，主記憶手段に転送されたアプリケーションプログラムが，データの変換処理の完了を待って本来の処理の実行を開始することになるので，アプリケーションプログラムの主記憶手段への転送を開始してから本来の処理が開始されるまでの時間，即ち，起動時間が長くなるという問題点があった。
従って，本発明は上記事情に鑑みてなされたものであり，その目的とするところは，アプリケーションプログラムの改変に伴いアクセスする特定データの形式が変わる場合でも，プログラムの複雑化やプログラム起動の遅延を招くことなく旧形式の特定データを用いて改変後のアプリケーションプログラムへ移行することを可能とするプログラム起動方法，プログラム起動用プログラム及びそれが記憶されたコンピュータ読み取り可能な記憶媒体を提供することにある。
【課題を解決するための手段】
【０００５】
上記目的を達成するために本発明は，データ記憶手段に特定の形式で記憶された特定データにアクセスして所定の処理を実行するアプリケーションプログラムを転送元記憶手段から転送先記憶手段に転送するプログラム転送工程と，前記転送先記憶手段に転送された前記アプリケーションプログラムに処理を引き継ぐ処理引継ぎ工程と，を有してなるプログラム起動方法において，前記アプリケーションプログラムの前記転送と並行して，前記特定データの形式を前記転送中の前記アプリケーションプログラムに対応する形式に変換する特定データ並行変換工程を有してなることを特徴とするプログラム起動方法である。
これにより，前記アプリケーションプログラムは，複数のデータ形式の特定データに対応する必要がないので，プログラムが複雑化しない。
また，前記アプリケーションプログラムの主記憶手段等への転送処理は，通常，メモリコントローラによるＤＭＡ転送，或いはＣＯＤＥＣ（データ圧縮・伸長手段）によるデータ伸長を行いながらのデータ転送等が行われるため，ＣＰＵを占有することはなく，転送中（起動中）にＣＰＵによって特定データの変換を並行処理することにより，前記アプリケーションプログラムの起動がデータ変換に要する時間だけ遅延することを防止できる。
【０００６】
また，前記データ記憶手段に記憶された前記特定データの形式が，起動する前記アプリケーションプログラムに対応する形式であるか否かをチェックし，対応しない形式である場合にのみ前記特定データ並行変換工程を実行する形式チェック工程を有するものであれば，データ変換処理の重複を防止できる。
【０００７】
また，前記アプリケーションプログラムの起動時間より前記特定データの形式の変換時間の方が常に短いという保証がない場合には，前記アプリケーションプログラムの前記転送の完了と，前記特定データ並行変換工程の完了との両方を確認した後に前記アプリケーションプログラムに処理を引き継ぐ完了確認工程を有することが考えられる。
【０００８】
また，本発明は，前記プログラム起動方法における各工程をコンピュータに実行させるためのプログラム起動用プログラムとして捉えたものや，該プログラム起動用プログラムが記憶されたコンピュータ読み取り可能な記憶媒体として捉えたものであってもよい。
【発明の効果】
【０００９】
本発明によれば，アプリケーションプログラムは，アクセスが必要な特定データについて複数のデータ形式に対応する必要がないので，特定データのデータ形式が改編されるごとにプログラムが複雑化することを防止できる。
さらに，アプリケーションプログラムの主記憶手段等への転送中（起動中）に特定データの変換を並行処理することにより，アプリケーションプログラムの起動が遅延することを防止できる。
【発明を実施するための最良の形態】
【００１０】
以下添付図面を参照しながら，本発明の実施の形態について説明し，本発明の理解に供する。尚，以下の実施の形態は，本発明を具体化した一例であって，本発明の技術的範囲を限定する性格のものではない。
ここに，図１は本発明の実施の形態に係るブートプログラムＸを実行する演算装置の概略構成を表すブロック図，図２はブートプログラムＸの処理手順を表すフローチャート，図３はブートプログラムＸにおける特定データの変換処理の手順を表すフローチャート，図４は特定データの具体的構成の一例を表すデータ構成図である。
【００１１】
まず，図１のブロック図を用いて，本発明の実施の形態に係るブートプログラムＸ（プログラム起動用プログラムの一例）を実行する演算装置１の構成について説明する。
前記演算装置１は，各種プログラムを実行するＣＰＵ１，各種メモリの制御を行うメモリコントローラ２，ブートプログラムＸを記憶するブート（ＢＯＯＴ）コード用ＲＯＭ３，ブートプログラムＸにより起動されるアプリケーションプログラム（以下，アプリプログラムと略す）を記憶するアプリコード用ＲＯＭ４，前記アプリプログラムの実行の際に該アプリプログラムが前記アプリコード用ＲＯＭ４から転送されて一時記憶する主記憶手段であるＲＡＭ５と，各種入出力装置に対するデータの入出力を制御するインターフェースであるＩ／Ｏ部６と，データ入力手段である入力キー（Ｋｅｙ）７と，各種データが記憶されるＨＤＤ（ハードディスクドライブ）８と，データ出力（表示）手段であるＬＣＤ（液晶表示手段）９とを具備し，これらがアドレスバス及びデータバスを備えたシステムバス１１を介して接続されている。
また，前記入力キー７，前記ＨＤＤ８及び前記ＬＣＤ９は，前記Ｉ／Ｏ部６によって制御され，前記ＣＰＵ１との間で，前記システムバス１１及び前記Ｉ／Ｏ部６を介してデータの授受がなされる。
ここで，前記ＨＤＤ８には，前記アプリプログラムが所定の処理を実行する際にアクセスするデータであって，特定のデータ形式を有する（特定の形式で記憶された）特定データが記憶されている。
また，前記メモリコントローラ２は，前記アプリコード用ＲＯＭ４内のデータ（前記アプリプログラム）を，システムバス１１を介したＤＭＡ（Direct Memory Access）データ転送によって前記ＣＰＵ１に負荷をかけずに前記ＲＡＭ５へ転送するＤＭＡ部１０を備えている。
【００１２】
次に，図２のフローチャートを用いて，本発明の実施の形態に係るブートプログラムＸの処理手順について説明する。前記演算装置１の電源が投入されると，前記ＣＰＵ１は，前記システムバス１１及び前記メモリコントローラ２を介して，前記ブートコード用ＲＯＭ３内から前記ブートプログラムＸを読み出しながら（前記ＲＡＭ５に展開（転送）することなしに）実行することにより，図２に示す処理を実行するものとする。
以下，Ｓ１，Ｓ２，…は，処理手順（ステップ）の番号を表す。
まず，ＣＰＵ１により，前記アプリコード用ＲＯＭ４内の前記アプリプログラムが参照され，そのバージョン情報が取得（確認）される（Ｓ１）。このバージョン情報は，前記アプリプログラムのヘッダ部分等に表されるものである。
次に，ＣＰＵ１により，前記Ｉ／Ｏ部６を介して前記ＨＤＤ８内の前記特定データ（前記アプリプログラムがアクセスする特定の形式のデータ）が参照され，そのバージョン情報が取得（確認）される（Ｓ２）。
次に，ＣＰＵ１は，前記メモリコントローラ２に対し，前記アプリコード用ＲＯＭ４内の前記アプリプログラムを前記ＲＡＭ５にＤＭＡ転送するよう要求を出すアプリプログラムのロード開始処理を行う（Ｓ３）。
ここでは，ＣＰＵ１が前記アプリコード用ＲＯＭ４から前記アプリプログラムのコードサイズを読み込み，これに応じた転送アドレス及び所定のカウンタを指定したデータ転送要求を前記メモリコントローラ２に対して出力する。
これにより，前記ＤＭＡ部１０により前記アプリプログラムのＤＭＡ転送（前記アプリコード用ＲＯＭ４から前記ＲＡＭ５へのロード）が実行（開始）される（Ｓ４）。
【００１３】
一方，ＣＰＵ１は，前記アプリプログラムのロード処理（Ｓ４）と並行して，次のＳ５，Ｓ６の処理を実行する。
まず，Ｓ１，Ｓ２で取得したバージョン情報を比較（Ｓ５）し，バージョンが一致している場合はＳ６をスキップしてＳ７の処理へ，バージョンが異なる場合は，前記ＨＤＤ８内の前記特定データを，現在の形式から前記アプリプログラムのバージョンに対応した形式へ変換するデータ変換処理を実行（Ｓ６）し，これが完了した後にＳ７へ移行する。
次に，Ｓ７では，ＣＰＵ１は，前記アプリプログラムのロード処理（ＤＭＡ転送）が完了（終了）したか否かを監視（チェック）し，その完了を確認すると，前記ＲＡＭ５内の所定のワークエリア（領域）の初期化（Ｓ８）を行った後，その処理の実行を，当該ブートプログラムＸから前記ＲＡＭ５に転送（展開）された前記アプリプログラムに引き継いで（Ｓ９），当該ブートプログラムＸに従った処理が終了する。
このように，アプリケーションプログラムへ処理が引き継がれる前にアクセスが必要な特定データの変換を完了させるので，アプリケーションプログラムは，複数の形式の（旧形式と新形式の）特定データに対応する必要がなく，特定データのデータ形式が改編されるごとにプログラムが複雑化することを防止できる。
さらに，アプリケーションプログラムの主記憶手段（ＲＡＭ５）等への転送中（起動中）（Ｓ４）に特定データの変換を並行処理（Ｓ６）することにより，アプリケーションプログラムの起動が遅延することを防止できる。
【００１４】
次に，図３のフローチャート及び図４のデータ構成図を用いて，前記データ変換処理（Ｓ６）の具体例について説明する。
ここで，図４（ａ）は，旧バージョンの形式の特定データｄ１のデータ構造を表し，図４（ｂ）は，新バージョン，即ち前記アプリコード用ＲＯＭ４に格納された現在の前記アプリプログラムに対応したバージョンの形式の特定データｄ２の構造を表すものとする。
図４（ａ）に示すように，旧バージョンの特定データｄ１は，そのヘッダ部に当該特定データｄ１のバージョン情報（バージョンを表す記号）ｄ１１及び当該特定データｄ１内に含まれる複数のデータブロックｄ１３の各ブロックサイズや先頭アドレス等が設定されているデータ管理テーブルｄ１２が設定され，それに後続した複数のデータブロックｄ１３を有している。
図２のＳ２に示したバージョン情報の取得（確認）は，前記バージョン情報ｄ１１を参照することにより行われる。
一方，図４（ｂ）に示すように，新バージョンの特定データｄ２は，旧バージョンの特定データｄ１における各データブロックｄ１３ごとに，各データブロックｄ１３のサムチェックデータであるＳＵＭ値ｄ１４が追加されたものである。
【００１５】
図３に示すように，前記データ変換処理（Ｓ６）では，まず，ＣＰＵ１は，前記ＨＤＤ８内の旧バージョン（現在）の特定データｄ１から，前記データ管理テーブルｄ１２を読み出し（Ｓ１１），さらに所定のワーク変数Ｍを「１」にセット（Ｓ１２）した後，前記データ管理テーブルｄ１２から読み取れる前記データブロックｄ１３の数だけ，以下のＳ１３〜Ｓ１８の処理を繰り返す。
まず，Ｍ番目（最初は１番目）のデータブロックｄ１３を読み出し（Ｓ１３），該データブロックｄ１３のＳＵＭ値ｄ１４を計算する（Ｓ１４）。
次に，Ｍ番目のデータブロックｄ１３とそのＳＵＭ値ｄ１４とを前記ＨＤＤ８に書き込む（Ｓ１５）。
次に，前記ＨＤＤ８への書き込みアドレスやサイズに応じて，新たなデータ管理テーブルｄ１２を，ＣＰＵ１のワークメモリ内で生成（１番目のとき）或いは更新（２番目以降）する（Ｓ１６）。
次に，Ｓ１１で読み出した旧バージョンの前記データ管理テーブルｄ１２と現在のワーク変数Ｍの値とに基づいて次のデータブロックｄ１３（未変換のデータブロックｄ１３）が存在するか否かをチェックし（Ｓ１７），存在する場合は，ワーク変数Ｍをカウントアップ（Ｓ１８）した後に，Ｓ１３へ戻って前述した処理を繰り返す。
一方，全てのデータブロックｄ１３について，変換（ＳＵＭ値ｄ１４の追加）が済んだ場合（Ｓ１７のＮｏ側）には，ＣＰＵ１は，新たなバージョン情報ｄ１１とＣＰＵ１のワークメモリ内で生成した新たなデータ管理テーブルｄ１２とを前記ＨＤＤ８に書き込み（Ｓ１９），処理を終了する。
ここで，旧バージョンの前記特定データｄ１は，前記ＨＤＤ８から削除してもよく，また，再度旧バージョンの前記アプリプログラムに戻されても処理が可能なように，前記ＨＤＤ８内にバックアップとして残しておいてもよい。
なお，ブートプログラムＸを更新するには，マスクＲＯＭ，ＥＰＲＯＭ（Erasable Programmable Read Only Memory），ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory），フラッシュＲＯＭ等の半導体メモリ（記憶媒体）である前記ブートコード用ＲＯＭ３を交換すればよい。あるいは，前記ブートコード用ＲＯＭ３をフラッシュＲＯＭ等の書き替え可能なメモリで構成しておけば，フレキシブルディスクやハードディスク等の磁気ディスク，ＣＤ／ＭＯ／ＤＶＤ等の光ディスク，ＩＣカード（メモリカード）／光カード等の記憶媒体に記憶したブートプログラムＸを，前記Ｉ／Ｏ部６を介して記憶媒体に対応する外部装置（図示せず）より取り込んで，前記ブートコード用ＲＯＭ３に書き込むことも可能である。
【産業上の利用可能性】
【００１６】
本発明は，ＣＰＵと該ＣＰＵによって実行されるプログラムを静的に記憶するメモリとそのプログラムを実行時に一次記憶するメモリとを有する演算装置等への利用が可能である。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施の形態に係るブートプログラムＸを実行する演算装置の概略構成を表すブロック図。
【図２】ブートプログラムＸの処理手順を表すフローチャート。
【図３】ブートプログラムＸにおける特定データの変換処理の手順を表すフローチャート。
【図４】特定データの具体的構成の一例を表すデータ構成図。
【符号の説明】
【００１８】
１…ＣＰＵ
２…メモリコントローラ
３…ブートコード用ＲＯＭ（プログラム起動用プログラムを記憶する記憶手段）
４…アプリコード用ＲＯＭ（転送元記憶手段）
５…ＲＡＭ（転送先記憶手段）
６…Ｉ／Ｏ部
７…入力キー
８…ハードディスクドライブ
９…ＬＣＤ（液晶表示手段）
１０…ＤＭＡ部（データ転送手段）
Ｓ１，Ｓ２，，，…処理手順（ステップ）
【図１】
2005038180.tif 000003
【図２】
2005038180.tif 000004
【図３】
2005038180.tif 000005
【図４】
2005038180.tif 000006