(57)【要約】【課題】  展開プログラムを短時間で動作させることが可能となり、電子機器の起動に要する時間の短縮化が図られた電子機器装置およびコンピュータ読み取り可能な記録媒体を提供する。【解決手段】  圧縮データ格納手段は、圧縮データを記憶部に格納して、圧縮データ展開手段によりデータ展開部およびデータチェック部がループ部のコードがキャッシュの大きさを超えないように記述されるとともに、さらにデータ展開部とデータチェック部とのそれぞれのテキスト部とＲＯデータ部とがアセンブラ言語で記述された展開プログラムにより前記圧縮データを展開する。【選択図】  図４
2005115778.tif 000002
【特許請求の範囲】
【請求項１】
圧縮データを記憶部に格納する圧縮データ格納手段と、
データ展開部およびデータチェック部がループ部のコードがキャッシュの大きさを超えないように記述されるとともに、前記データ展開部と前記データチェック部とのそれぞれのテキスト部とＲＯデータ部とがアセンブラ言語で記述された展開プログラムにより前記圧縮データを展開する圧縮データ展開手段と、
を有する電子機器装置。
【請求項２】
前記圧縮データ展開手段は、前記データ展開部と前記データチェック部とを連続した領域に割り当てることを特徴とする請求項１記載の電子機器装置。
【請求項３】
前記圧縮データは、プログラムデータであることを特徴とする請求項１または２記載の電子機器装置。
【請求項４】
前記圧縮データ格納手段は、不揮発性デバイスであることを特徴とする請求項１または２記載の電子機器装置。
【請求項５】
前記圧縮データ格納手段は、少なくとも書き換え不可能な不揮発性メモリ、書き換え可能な不揮発性メモリまたは書き換え可能なディスク装置のうちのいずれか１つであることを特徴とする請求項１または２記載の電子機器装置。
【請求項６】
前記圧縮データ展開手段は、揮発性デバイスに前記圧縮データを展開することを特徴とする請求項１または２記載の電子機器装置。
【請求項７】
圧縮データを記憶部に格納する圧縮データ格納手段と、
データ展開部およびデータチェック部がループ部のコードがキャッシュの大きさを超えないように記述されるとともに、前記データ展開部と前記データチェック部とのそれぞれのテキスト部とＲＯデータ部とがアセンブラ言語で記述された展開プログラムにより前記圧縮データを展開する圧縮データ展開手段と、
を実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器装置におけるプログラムの動作開始時間の短縮化が図られた電子機器装置およびコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
従来、電子機器装置内で動作するプログラムは、電源が供給されなくても消去されない形態で予め電子デバイス（以下、「不揮発性デバイス」という。）にデータ列として格納されて、そのプログラムをＣＰＵ（Central Processing Unit ）が読み出すことにより実行されるのが一般であった。近年、電子機器装置の高度化および複雑化の進展が著しく、これに伴いプログラムの容量も飛躍的に増大してきている。容量の大きいプログラムは１つの不揮発性デバイスに格納しきれなく、多数の不揮発性デバイスを必要とする。かかる事態を回避するために、不揮発性デバイスには所定の方法によりプログラムを圧縮したデータを保存しておき、そのデータをＲＡＭ（Random Access Memory）等の揮発性デバイスに展開するという方法が採用されていた。
【０００３】
しかし、上記の方法によると、プログラムを動作させるために圧縮されたデータを展開する手順が必須となり、特に起動時にデータ展開の手順の分、余計に時間がかかるという欠点があった。
【０００４】
そこで、展開プログラムのチューニングについては、コンパイラのループ展開および関数ないし手続きのインライン展開の最適化方法により、プログラムのループのコードの大きさを命令キャッシュのサイズ以下に抑えることで、命令キャッシュのミスヒットを減少させることによりプログラムの実行時間の短縮化を図ることがこれまで数多く提案されている（例えば、特許文献１参照）。
【特許文献１】特開平５−１２００２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記のコンパイラのループ展開および関数ないし手続きのインライン展開の最適化方法によっても、生成される目的プログラムのループに係るコードの量が命令キャッシュの大きさを超える場合において、命令キャッシュのフラッシュが頻発することを回避することによるプログラムの実行時間の短縮が可能となるのみであり、それ以上のプログラムの実行時間の短縮化は図れなかった。
【０００６】
そこで、本発明は、圧縮データを記憶部に格納する圧縮データ格納手段と、データ展開部およびデータチェック部がループ部のコードがキャッシュの大きさを超えないように記述されるとともに、前記データ展開部と前記データチェック部とのそれぞれのテキスト部とＲＯデータ部とがアセンブラ言語で記述された展開プログラムにより前記圧縮データを展開する圧縮データ展開手段とを設けることにより、展開プログラムを短時間で動作させることが可能であり、電子機器の起動に要する時間の短縮化が図られた電子機器装置およびコンピュータ読み取り可能な記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００７】
請求項１記載の発明は、圧縮データを記憶部に格納する圧縮データ格納手段と、データ展開部およびデータチェック部がループ部のコードがキャッシュの大きさを超えないように記述されるとともに、前記データ展開部と前記データチェック部とのそれぞれのテキスト部とＲＯデータ部とがアセンブラ言語で記述された展開プログラムにより前記圧縮データを展開する圧縮データ展開手段と、を有する電子機器装置である。
【０００８】
請求項２記載の発明は、請求項１記載の電子機器装置において、前記圧縮データ展開手段は、前記データ展開部と前記データチェック部とを連続した領域に割り当てる。
【０００９】
請求項３記載の発明は、請求項１または２記載の電子機器装置において、前記データは、プログラムデータである。
【００１０】
請求項４記載の発明は、請求項１または２記載の電子機器装置において、前記圧縮データ格納手段は、不揮発性デバイスである。
【００１１】
請求項５記載の発明は、請求項１または２記載の電子機器装置において、前記圧縮データ格納手段は、少なくとも書き換え不可能な不揮発性メモリ、書き換え可能な不揮発性メモリまたは書き換え可能なディスク装置のうちのいずれか１つである。
【００１２】
請求項６記載の発明は、請求項１または２記載の電子機器装置において、前記圧縮データ展開手段は、揮発性デバイスに前記圧縮データを展開する。
【００１３】
請求項７記載の発明は、圧縮データを記憶部に格納する圧縮データ格納手段と、データ展開部およびデータチェック部がループ部のコードがキャッシュの大きさを超えないように記述されるとともに、前記データ展開部と前記データチェック部とのそれぞれのテキスト部とＲＯデータ部とがアセンブラ言語で記述された展開プログラムにより前記圧縮データを展開する圧縮データ展開手段と、を実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【００１４】
本発明によれば、圧縮データ格納手段により圧縮データを記憶部に格納して、圧縮データ展開手段によりデータ展開部とデータチェック部とがともにループ部のコードがキャッシュの大きさを超えないように記述されて、さらにデータ展開部とデータチェック部とのそれぞれのテキスト部とＲＯデータ部とがアセンブラ言語で記述された展開プログラムにより圧縮データを展開することにより、展開プログラムを短時間で動作させることが可能となり、電子機器の起動に要する時間の短縮化を図ることができる。
【発明を実施するための最良の形態】
【００１５】
展開プログラムを短時間で動作させることが可能であり、電子機器の起動に要する時間の短縮化が図られた電子機器装置およびコンピュータ読み取り可能な記録媒体を、圧縮データを記憶部に格納する圧縮データ格納手段と、データ展開部およびデータチェック部がループ部のコードがキャッシュの大きさを超えないように記述されるとともに、データ展開部とデータチェック部とのそれぞれのテキスト部とＲＯデータ部とがアセンブラ言語で記述された展開プログラムにより圧縮データを展開する圧縮データ展開手段とを設けることにより実現した。
【実施例】
【００１６】
本発明の実施例の構成・動作を図を用いて説明する。
【００１７】
図１は、本実施形態における電子機器装置内のハードウエア構成を示す図である。ＣＰＵ１−１は、電子機器装置の各部の制御を行うためのプログラムを読み出し演算を行なう。ＣＰＵ１−１にはキャッシュが含まれていてもよい。キャッシュとは、事前にアクセスした低速な記憶デバイスの中のデータを、より高速にアクセスできる記憶デバイスに保存しておく仕組みをいい、一度利用したデータを、二度目以降は素早く引き出せるようになる。例えば、電子機器装置の処理速度の向上のために、ＣＰＵと主記憶装置との間に置かれる記憶装置である、キャッシュ・メモリ等がある。
【００１８】
プログラム格納部１−２は、展開プログラムおよび／またはシステムプログラム等を格納する。プログラムの格納は内部にデータ群を書き込むことにより行う。例えば、不揮発性デバイス、書き換え不可能な不揮発性メモリ、書き換え可能な不揮発性メモリまたは書き換え可能なディスク装置等であってもよい。書き換え不可能な不揮発性メモリとは、ＲＯＭ（Read Only Memory）等である。書き換え可能な不揮発性メモリとは、ＥＰＲＯＭ（Erasable and Programmable Read Only Memory）等である。書き換え可能なディスク装置とは、ＨＤＤ（Hard Disk Drive ）等である。ただし、特別な電子デバイスを必要としなく、サーバからダウンロードしたプログラムを一時的に保存しておく形態であってもよい。また、プログラム格納部１−２に格納されるデータは、プログラムに限定されなく、種々のデータであってよい。プログラム格納部１−２には、キャッシュが含まれていてもよい。プログラム格納部１−２に格納されるプログラムの詳細は、以下に図２の説明で述べる。
【００１９】
メモリ部１−３は、プログラム動作を行うために必要なデータを保持する。コンピュータ内部で使用されるデータやプログラムを一時的に蓄え、必要な場合に取り出すことのできる任意の記憶装置であってもよい。例えば、揮発性デバイス等であってもよい。揮発性デバイスとは、ＲＡＭ等をいう。
【００２０】
上記のＣＰＵ１−１、プログラム格納部１−２およびメモリ部１−３が、電子機器装置が利用する様々なデバイスの間で信号を送受信するために設けた回路であるバスにより接続される。
【００２１】
図２は、電子機器装置におけるソフトウエア構成を示す図である。上記のプログラム格納部１−２に格納されるプログラムの詳細を以下に説明する。
【００２２】
初期化プログラム２−１は、コンピュータのメモリおよび周辺機器を初期状態に戻すためのプログラムである。メモリの初期化は、電源投入時あるいはリセット・スイッチを押下げした時に行われてもよい。
【００２３】
オペレーションシステム（以下、「ＯＳ」という。）２−２は、コンピュータのシステム管理および基本的なユーザ操作環境を提供するソフトウエアである。メモリ管理および入出力管理等の基本的機能のみでなくＧＵＩ（Graphical User Interface）および各種ユーティリティを提供してもよい。ＯＳには、例えば、パソコン用、サーバ用、大型汎用コンピュータ用または家電等の組み込み機器用の各種のものがある。ＯＳが提供するシステム管理機能には、ファイル管理（外部記憶装置へのファイルの記録や読み出し）、メモリ管理（アプリケーションが使うメモリ領域の割り当て）、タスク管理（ソフトウエア実行の順序、優先度の処理）、デバイス管理（キーボード、マウス、プリンタ等の各種ハードウエアの制御）等がある。また、ネットワークの普及に伴う、通信管理（ネットワークで交換する情報の制御）あるいは運用管理（障害の発見、通知）等の機能を有していてもよい。
【００２４】
支援プログラム２−３は、ＯＳとユーザ・アプリケーションとの間に位置するソフトウエアであり、ＯＳ上で動作する。プラットフォームの相違を隠す機能を有する。例えば、データベース管理システム（ＤＢＭＳ）、ＴＰモニター（トランザクション処理モニタ）、運用管理ツール、ＧＵＩ（Graphical User Interface）開発ツールまたはＯＲＢ（Object Request Broker ）等がある。
【００２５】
アプリケーションプログラム２−４は、特定の利用目的を持って作成されたソフトウエアである。例えば、ＣＡＤ、機械翻訳または統計パッケージ等の多様な業務、業種／業態に共通する共通応用ソフトウエアおよび給与計算、会計管理または生産管理等の各種業務に利用目的が特定される個別応用ソフトウエアがある。
【００２６】
展開プログラム２−５は、アーカイバ等で圧縮されたファイルを復元するためのプログラムである。一般に圧縮されたファイルをそのままアプリケーションで扱うことはできないため、利用する際には展開プログラム２−５により展開する必要がある。
【００２７】
上記のソフトウエアのうち、ＯＳ２−２、支援プログラム２−３およびアプリケーションプログラム２−４は、プログラムサイズを小さくするために圧縮可能であり、少なくともそのうちの１つは、圧縮されているものとする。圧縮は、すべてのプログラムを一括してなされても、あるいは個別のプログラムのみについてなされてもよい。ここで、圧縮とはデータ群を所定の規則に基づいて変換して総容量を小さくすることをいい、展開することにより圧縮前の元のデータ群に戻すことができる。
【００２８】
図３は、展開プログラムの構成を示す図である。展開プログラム２−５は、データ展開部３−１とデータチェック部３−２との２つの部分に分けられる。これらの２つの部分それぞれについて、予め機器毎に決定されているＣＰＵのキャッシュサイズに基づき、ループ部等のコードがキャッシュの大きさを超えないようにプログラムが記述されている。テキスト部（プログラムの実行部分）３−１−１、３−２−１とＲＯデータ部（プログラムが読み出すデータ）３−１−２、３−２−２とは、アセンブラで記述されている。Ｃコンパイラ等によりコンパイラされると、テキスト部３−１−１、３−２−１とＲＯデータ部３−１−２、３−２−２とは、一般に全く異なるアドレス空間にデータが割り当てられるため、かかる事態を回避するためアセンブラで記述されている。
【００２９】
さらに、上記の２つの部分は、ＣＰＵのキャッシュサイズが十分に大きい場合には、連続した領域に割り当てられることが望ましい。連続した領域に配置されることにより、無駄な動作が省かれ、処理動作の効率化を図ることができる。ただし、ＣＰＵのキャッシュサイズが小さい場合には、必ずしも上記の２つの部分を連続領域に割り当てる必要はない。連続した領域に配置されることによるメリットを十分に享受することができない場合があるからである。
【００３０】
以上のように構成された実施形態における電子機器装置の起動時の動作について図４のフローチャートに基づいて説明する。
【００３１】
図４に示すフローは、電子機器装置のＣＰＵ１−１により実行される。電子機器装置の起動時に展開プログラムを実行する状態を示した図である。
【００３２】
電子機器装置の電源が投入されること等により（Ｓ４０１）、プログラム格納部１−２に格納された初期化プログラム２−１を読み出し、ハードウエアの初期化および診断を行う（Ｓ４０２）。そして、プログラム格納部１−２に格納された展開プログラム２−５を読み出し、展開プログラム２−５を起動する（Ｓ４０３）。展開プログラム２−５は、プログラム格納部１−２に格納されるＯＳ２−２、支援プログラム２−３およびアプリケーションプログラム２−４のうち、圧縮されているものが存在するか否かを検索する（Ｓ４０４）。その検索の結果、圧縮されているデータが存在するか否かを判定する（Ｓ４０５）。そして、圧縮データが存在する場合には、プログラム格納部１−２からその圧縮データを読み出して、メモリ１−３へ展開する（Ｓ４０６）。プログラム格納部１−２のすべての領域がチェックされたか否かが判断され（Ｓ４０７）、プログラム格納部１−２のすべての領域がチェックされて、すべての圧縮データが展開されている場合には、プログラム格納部１−２に格納されたＯＳ２−２を読み出し、ＯＳ２−２を起動する（Ｓ４０８）。プログラム格納部１−２のすべての領域がチェックされていない場合には、展開プログラム２−５は、プログラム格納部１−２の未チェックの領域に格納されるＯＳ２−２、支援プログラム２−３およびアプリケーションプログラム２−４のうち、圧縮されているものが存在するか否かを再び検索する（Ｓ４０８）。ＯＳ２−２は、支援プログラム２−３およびアプリケーションプログラム２−４を起動させる（Ｓ４０９）。そして、アプリケーションプログラム２−４は、ユーザに所定のサービスを提供し、システムは通常の稼動状態となる（Ｓ４１０）。
【００３３】
上記実施例によれば、圧縮データは、不揮発性デバイス、書き換え不可能な不揮発性メモリ、書き換え可能な不揮発性メモリまたは書き換え可能なディスク装置に格納され、さらに圧縮データ展開手段は、揮発性デバイスに圧縮データを展開することにより、広く一般市場に出回っており入手が容易な製品を用いることが可能となりコストの削減および入手労力の軽減を図ることができる。
【産業上の利用可能性】
【００３４】
本発明は、内部で動作するプログラムが、圧縮処理されて格納されている種々の電子機器にも適用できる。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施形態における電子機器装置内のハードウエア構成を示す図である。
【図２】電子機器装置におけるソフトウエア構成を示す図である。
【図３】展開プログラムの構成を示す図である。
【図４】第１の実施形態におけるデータ展開処理の動作を示すフローチャートである。
【符号の説明】
【００３６】
１−１    ＣＰＵ
１−２    プログラム格納部
１−３    メモリ
２−５    展開プログラム
３−１−１    データ展開部（プログラム命令）
３−１−２    データ展開部（固定データ）
３−２−１    データチェック部（プログラム命令）
３−２−２    データチェック部（固定データ）
【図１】
2005115778.tif 000003
【図２】
2005115778.tif 000004
【図３】
2005115778.tif 000005
【図４】
2005115778.tif 000006