(57)【要約】【課題】プログラムの使用頻度に応じて、プログラムが読み込まれて実行されるまでに所要する時間を短くする。【解決手段】再配置実行プログラム２２は、プログラムの実行回数に関する情報をプログラム毎に取得する機能と、ＲＡＭ１４に配置されたプログラムＢ３２と、ＲＯＭ１６に配置されたプログラムＡ３０の実行回数と、を比較し、プログラムＡ３０の実行回数がプログラムＢ３２の実行回数よりも多い場合、プログラムＡ３０およびプログラムＢ３２に対する配置の入れ替えを判定する機能と、プログラムＡ３０およびプログラムＢ３２に対して配置を入れ替えると判定した場合、プログラムＢ３２をＲＯＭ１６に配置し、プログラムＡ３０をＲＡＭ１４に配置する機能と、プログラムＡ３０およびプログラムＢ３２の配置場所を示すマップ情報３６を更新する機能と、をコンピューターに実行させる。【選択図】図２
2012194852.tif 000002
【特許請求の範囲】
【請求項１】
プログラムの実行回数に関する情報を前記プログラム毎に取得する取得機能と、
相対的に処理速度が高速な高速メモリーに配置された第１のプログラムの前記実行回数と、相対的に処理速度が低速な低速メモリーに配置された第２のプログラムの前記実行回数と、を比較し、前記第２のプログラムの前記実行回数が前記第１のプログラムの前記実行回数よりも多い場合、前記第１のプログラムおよび前記第２のプログラムに対する配置の入れ替えを判定する判定機能と、
前記判定機能が前記第１のプログラムおよび前記第２のプログラムに対して配置を入れ替えると判定した場合、前記第１のプログラムを前記低速メモリーに配置し、前記第２のプログラムを前記高速メモリーに配置する入れ替え機能と、
前記第１のプログラムおよび前記第２のプログラムの配置場所を示すマップ情報を更新する更新機能と、をコンピューターに実行させることを特徴とする再配置プログラム。
【請求項２】
請求項１に記載の再配置プログラムにおいて、
前記第１のプログラムおよび前記第２のプログラムで記述されているアドレスの情報を、入れ替えにより変更された新しいアドレスの情報に書き換える書き換え機能を備えることを特徴とする再配置プログラム。
【請求項３】
請求項１乃至２のいずれかに記載の再配置プログラムが組み込まれたことを特徴とする情報処理装置。
【請求項４】
プログラムの実行回数に関する情報を前記プログラム毎に取得する取得工程と、
相対的に処理速度が高速な高速メモリーに配置された第１のプログラムの前記実行回数と、相対的に処理速度が低速な低速メモリーに配置された第２のプログラムの前記実行回数と、を比較し、前記第２のプログラムの前記実行回数が前記第１のプログラムの前記実行回数よりも多い場合、前記第１のプログラムおよび前記第２のプログラムに対する配置の入れ替えを判定する判定工程と、
前記判定工程で前記第１のプログラムおよび前記第２のプログラムに対して配置を入れ替えると判定した場合、前記第１のプログラムを前記低速メモリーに配置し、前記第２のプログラムを前記高速メモリーに配置する入れ替え工程と、
前記第１のプログラムおよび前記第２のプログラムの配置場所を示すマップ情報を更新する更新工程と、を備えることを特徴とするプログラムの再配置方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再配置プログラム、情報処理装置およびプログラムの再配置方法に関する。
【背景技術】
【０００２】
従来、情報処理装置に実装されている機能を実行するための実行プログラムは、情報処理装置のＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の主記憶装置に記憶され、下記特許文献１に示すように、起動時には起動プログラムがＲＯＭやＲＡＭ（Ｒａｎｄａｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメモリー上にタスクやプロセスとして展開して配置するように構成されている。この場合、実行プログラムがメモリーに配置される配置先は、メモリーの効率的な使用や、プログラムの想定される使用頻度を考慮して予め決定されている。
尚、一般的に、ＲＡＭはＲＯＭよりもアクセス時間が短いため、実行プログラムを読み出して実行するまでに所要する時間は、ＲＡＭに配置した場合の方が短いことが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平５−２０４６５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、近年の情報処理装置には多くの機能が実装されるが、その中でユーザーが頻繁に使用する機能はユーザー毎に異なることが多い。
しかしながら、所定の機能を実行するための実行プログラムは、ユーザーが頻繁に使用する機能であってもＲＯＭに配置されている場合には、その実行プログラムが起動して所定の機能によるサービスを開始するまでに一定の時間を要する。従って、ユーザーは所定の機能によるサービスを享受できるまで、常に一定の時間を待つ必要があった。
そこで本発明は、前記課題に鑑みてなされたものであり、使用頻度に応じて、機能が実行されるまでに所要する時間を短くすることを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【０００６】
［適用例１］
本適用例にかかる再配置プログラムは、プログラムの実行回数に関する情報を前記プログラム毎に取得する取得機能と、相対的に処理速度が高速な高速メモリーに配置された第１のプログラムの前記実行回数と、相対的に処理速度が低速な低速メモリーに配置された第２のプログラムの前記実行回数と、を比較し、前記第２のプログラムの前記実行回数が前記第１のプログラムの前記実行回数よりも多い場合、前記第１のプログラムおよび前記第２のプログラムに対する配置の入れ替えを判定する判定機能と、前記判定機能が前記第１のプログラムおよび前記第２のプログラムに対して配置を入れ替えると判定した場合、前記第１のプログラムを前記低速メモリーに配置し、前記第２のプログラムを前記高速メモリーに配置する入れ替え機能と、前記第１のプログラムおよび前記第２のプログラムの配置場所を示すマップ情報を更新する更新機能と、をコンピューターに実行させることを特徴とする。
【０００７】
これらの機能によれば、低速メモリーに配置された第２のプログラムの実行回数が、高速メモリーに配置された第１のプログラムの実行回数よりも多い場合、第１のプログラムは低速メモリーに配置され、第２のプログラムは高速メモリーに配置されることで配置が入れ替えられ、第１のプログラムおよび第２のプログラムの配置場所を示すマップ情報も更新される。従って、実行回数が多いプログラムは高速メモリーに配置され、実行回数が低いプログラムは低速メモリーに配置されるようになるため、使用される頻度が多いプログラムは、メモリーから読み出されて実行するまでの時間の短縮を図れる。
【０００８】
［適用例２］
上記適用例にかかる再配置プログラムにおいて、前記第１のプログラムおよび前記第２のプログラムで記述されているアドレスの情報を、入れ替えにより変更された新しいアドレスの情報に書き換える書き換え機能を備えることが好ましい。
【０００９】
このような機能によれば、プログラムにアドレス情報が記述されている場合でも、新しいアドレス情報に書き換えることができる。
【００１０】
［適用例３］
そして、前述の再配置プログラムを情報処理装置に適用することにより、使用頻度が高い機能に対応したプログラムを迅速に読み込んで実行させることができる。
【００１１】
［適用例４］
本適用例にかかるプログラムの再配置方法は、プログラムの実行回数に関する情報を前記プログラム毎に取得する取得工程と、相対的に処理速度が高速な高速メモリーに配置された第１のプログラムの前記実行回数と、相対的に処理速度が低速な低速メモリーに配置された第２のプログラムの前記実行回数と、を比較し、前記第２のプログラムの前記実行回数が前記第１のプログラムの前記実行回数よりも多い場合、前記第１のプログラムおよび前記第２のプログラムに対する配置の入れ替えを判定する判定工程と、前記判定工程で前記第１のプログラムおよび前記第２のプログラムに対して配置を入れ替えると判定した場合、前記第１のプログラムを前記低速メモリーに配置し、前記第２のプログラムを前記高速メモリーに配置する入れ替え工程と、前記第１のプログラムおよび前記第２のプログラムの配置場所を示すマップ情報を更新する更新工程と、を備えることを特徴とする。
【００１２】
これらの方法によれば、低速メモリーに配置された第２のプログラムの実行回数が、高速メモリーに配置された第１のプログラムの実行回数よりも多い場合、第１のプログラムは低速メモリーに配置され、第２のプログラムは高速メモリーに配置されることで配置が入れ替えられ、第１のプログラムおよび第２のプログラムの配置場所を示すマップ情報も更新される。従って、実行回数が多いプログラムは高速メモリーに配置され、実行回数が低いプログラムは低速メモリーに配置されるようになるため、使用される頻度が多いプログラムは、メモリーから読み出されて実行するまでの時間の短縮を図れる。
【図面の簡単な説明】
【００１３】
【図１】プリンター装置の制御部のハードウェア構成を示す図。
【図２】再配置実行プログラムの処理の流れを示すフローチャート。
【図３】プリンター装置の電源投入直後のメモリーマップ。
【図４】再配置実行プログラムが実行された後のメモリーマップ。
【発明を実施するための形態】
【００１４】
以下、再配置プログラムについて図面を参照して説明する。
【００１５】
（実施形態）
図１は、プリンター装置の制御部１０のハードウェア構成を示す図である。この制御部１０は、ＣＰＵ１２、ＲＡＭ１４およびＲＯＭ１６等を備え、これらはバス１８で通信可能に接続された一種のコンピューターである。尚、図示は略すが、制御部１０には、メモリーカード読取装置、ネットワーク通信装置、表示部および操作部等が接続されている。また、本実施形態では、プリンター装置は、コピー機能やスキャナー機能を備えた複合機を想定するが、これに限らず、印刷単機能装置、スキャナー装置およびプロジェクター装置等の情報処理装置を想定できる。
本実施形態では、ＲＯＭ１６は、ユーザーが消去および書き込み可能なＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）であって、電気的に消去可能なＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  ＥＰＲＯＭ）を想定する。
【００１６】
このＲＯＭ１６には、ＢＯＯＴプログラム２０、再配置実行プログラム２２、圧縮プログラムＡ２４、圧縮プログラムＢ２６および使用頻度情報２８が記憶されている。尚、ＲＯＭ１６には、複数の圧縮プログラムがプリンター装置の機能に応じて記憶されているが、以下の説明を容易にするために、圧縮プログラムＡ２４および圧縮プログラムＢ２６の２つについてのみ記述する。
【００１７】
ＢＯＯＴプログラム２０は、プリンター装置の電源投入時に制御システムを初期化するための起動用プログラムであり、非圧縮状態で記憶されている。
再配置実行プログラム２２は、起動時に実行されるプログラムであり、ＲＯＭ１６に記憶されている圧縮プログラムを所定の場所に解凍し、解凍されたプログラムに対して、使用頻度情報２８に基づいてＲＯＭ１６およびＲＡＭ１４に再配置するためのプログラムである。このプログラムも非圧縮状態で記憶されている。
【００１８】
圧縮プログラムＡ２４および圧縮プログラムＢ２６は、コピー機能のように機能ごとに動作する実行プログラムが所定の形式で圧縮された、所謂、組み込みプログラムである。
使用頻度情報２８は、圧縮プログラムＡ２４および圧縮プログラムＢ２６が解凍されたプログラムＡ３０（図３）およびプログラムＢ３２（図３）に関する実行回数に関する情報、即ち、実行された回数をそれぞれ計数し、プログラム毎に使用頻度として記憶する機能を有する。
【００１９】
図２は、再配置実行プログラム２２の処理の流れを示すフローチャートである。この再配置実行プログラム２２は、プリンター装置の電源投入時に実行されるように設定されている。
再配置実行プログラム２２が実行されると、最初に、ＣＰＵ１２は、圧縮プログラムＡ２４をＲＯＭ１６に解凍し、圧縮プログラムＢ２６をＲＡＭ１４に解凍する（ステップＳ１００）。この結果、図３のメモリーマップに示すように、プログラムＡ（第２のプログラム）３０はＲＯＭ（低速メモリー）１６に配置され、プログラムＢ（第１のプログラム）３２はＲＡＭ（高速メモリー）１４に配置される。
【００２０】
続いて、ＣＰＵ１２は、プログラムＡ３０およびプログラムＢ３２の配置場所を示すマップ情報３６をＲＯＭ１６に作成する（ステップＳ１０２）。本実施形態では、それぞれのプログラムに関してメイン関数の先頭アドレスがマップ情報３６として作成される。即ち、マップ情報３６には、図３のメモリーマップに示すように、プログラムＡ３０のメイン関数ＦＡの先頭アドレス０ｘ１０と、プログラムＢ３２のメイン関数ＦＢの先頭アドレス０ｘ１００が記録され、プリンター装置のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）等が各プログラムを実行させる際に参照する。尚、マップ情報３６の作成先はＲＯＭ１６には限定されず、ＲＡＭ１４であっても良い。
【００２１】
次に、ＣＰＵ１２は、ＲＯＭ１６に記憶されている使用頻度情報２８を読み出し、プログラムの使用頻度に関する情報を取得する（ステップＳ１０４）＜取得機能＞。本実施形態では、図３のメモリーマップに示すようにメイン関数が実行された回数が記述されている。即ち、プログラムＡ３０のメイン関数ＦＡは１５（０ｘＦ）回実行され、プログラムＢ３２のメイン関数ＦＢは５（０ｘ５）回実行されたことを示している。
次に、ＣＰＵ１２は使用頻度に関する情報に基づいて、プログラムＡ３０およびプログラムＢ３２を再配置するか、否かを判定する（ステップＳ１０６）＜判定機能＞。本実施形態のように、ＲＯＭ１６に配置されたプログラムＡの実行回数（１５回）が、ＲＡＭ１４に配置されたプログラムＢの実行回数（５回）よりも多い場合には、ステップＳ１０６において「Ｙｅｓ」が選択され、ステップＳ１０８が実行される。
【００２２】
他方で、ＲＡＭ１４に配置されたプログラムＢの実行回数がＲＯＭ１６に配置されたプログラムＡの実行回数よりも多い場合には、ステップＳ１０６において「Ｎｏ」が選択され、一連の処理を終了する。
ステップＳ１０８では、ＣＰＵ１２は、ＲＯＭ１６に配置されているプログラムＡ３０と、ＲＡＭ１４に配置されているプログラムＢ３２とを入れ替える＜入れ替え機能＞。即ち、図４のメモリーマップに示すように、プログラムＡ３０をＲＡＭ１４に移動し、プログラムＢ３２をＲＯＭ１６に移動する。尚、本実施形態では、図４のメモリーマップに示すように、ＲＡＭ１４にはプログラムＡ３０に加えて、プログラムＰ４０やプログラムＱ４２が配置されているために空き領域が少ない。一方、ＲＯＭ１６には所定の大きさの空き領域が存在するため、ＲＯＭ１６の空き領域をスワップ用のメモリーエリアとしてプログラムの移動を行うが、この方法には限定されない。
【００２３】
続いて、ＣＰＵ１２は、プログラムＡ３０とプログラムＢ３２において、変更が必要なアドレス情報を書き換える（ステップＳ１１０）＜書き換え機能＞。本実施形態では、それぞれのプログラムに対して逆アセンブル処理を行い、ソースコードを解析する。ここで、相対アドレスを指示したジャンプ命令が記述されている場合、アドレスの書き換えは不要である。他方で、絶対アドレスを指示したジャンプ命令が記述されている場合、ＣＰＵ１２は、プログラムのバイナリーデータにおける該当箇所を新しいアドレスに直接書き換えても良い。このように、プログラムの実行コードを書き換えるソフトウェア書き換え装置は、例えば、特開２００９−２６５９２３号公報に開示されている。
【００２４】
次に、ＣＰＵ１２は、プログラムＡ３０とプログラムＢ３２のマップ情報３６を変更する（ステップＳ１１２）＜更新機能＞。本実施形態では、図４のメモリーマップに示すように、プログラムＡ３０のメイン関数ＦＡの先頭アドレス０ｘ１００と、プログラムＢ３２のメイン関数ＦＢの先頭アドレス０ｘ１０がマップ情報３６として記録され、一連の処理を終了する。
【００２５】
以上の処理により、再配置実行プログラム２２は、ユーザーにより実行される回数をプログラム毎に管理し、実行される回数が多いプログラムをＲＡＭ１４に配置する。従って、ＣＰＵ１２は、プリンター装置に備わる機能のうち、ユーザーに使用されることが相対的に多い機能を実現するためのプログラムを迅速に読み込むことができる。
【００２６】
尚、本実施形態では、２つのプログラムの実行回数で配置の入れ替えを判定したが、多くのプログラムが存在する場合には、所定の閾値を基準としてプログラムの実行回数で２つのグループに分類し、それぞれのグループのプログラム間で配置場所を入れ替えても良い。
また、本実施形態では、ＲＯＭ１６とＲＡＭ１４間でプログラムの配置を変更したが、これには限定されず、再配置実行プログラム２２は、ＲＡＭ１４と外部記憶装置間のように、データの読み書きに所要するアクセス時間が相対的に速い記憶媒体と、相対的に遅い記憶媒体との間でプログラムの配置を入れ替えても良い。
【符号の説明】
【００２７】
１０…制御部、１２…ＣＰＵ、１４…ＲＡＭ、１６…ＲＯＭ、１８…バス、２０…ＢＯＯＴプログラム、２２…再配置実行プログラム、２４…圧縮プログラムＡ、２６…圧縮プログラムＢ、２８…使用頻度情報、３０…プログラムＡ、３２…プログラムＢ、３６…マップ情報、４０…プログラムＰ、４２…プログラムＱ。
【図１】
2012194852.tif 000003
【図２】
2012194852.tif 000004
【図３】
2012194852.tif 000005
【図４】
2012194852.tif 000006