JP2012194852A - 再配置プログラム、情報処理装置およびプログラムの再配置方法 - Google Patents

再配置プログラム、情報処理装置およびプログラムの再配置方法 Download PDF

Info

Publication number
JP2012194852A
JP2012194852A JP2011059076A JP2011059076A JP2012194852A JP 2012194852 A JP2012194852 A JP 2012194852A JP 2011059076 A JP2011059076 A JP 2011059076A JP 2011059076 A JP2011059076 A JP 2011059076A JP 2012194852 A JP2012194852 A JP 2012194852A
Authority
JP
Japan
Prior art keywords
program
executions
function
speed memory
relocation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2011059076A
Other languages
English (en)
Inventor
Takeichiro Sekiya
武一郎 関谷
Kenichi Nakada
健一 中田
Izumi Otsuka
泉 大塚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2011059076A priority Critical patent/JP2012194852A/ja
Publication of JP2012194852A publication Critical patent/JP2012194852A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】プログラムの使用頻度に応じて、プログラムが読み込まれて実行されるまでに所要する時間を短くする。
【解決手段】再配置実行プログラム22は、プログラムの実行回数に関する情報をプログラム毎に取得する機能と、RAM14に配置されたプログラムB32と、ROM16に配置されたプログラムA30の実行回数と、を比較し、プログラムA30の実行回数がプログラムB32の実行回数よりも多い場合、プログラムA30およびプログラムB32に対する配置の入れ替えを判定する機能と、プログラムA30およびプログラムB32に対して配置を入れ替えると判定した場合、プログラムB32をROM16に配置し、プログラムA30をRAM14に配置する機能と、プログラムA30およびプログラムB32の配置場所を示すマップ情報36を更新する機能と、をコンピューターに実行させる。
【選択図】図2

Description

本発明は、再配置プログラム、情報処理装置およびプログラムの再配置方法に関する。
従来、情報処理装置に実装されている機能を実行するための実行プログラムは、情報処理装置のROM(Read Only Memory)等の主記憶装置に記憶され、下記特許文献1に示すように、起動時には起動プログラムがROMやRAM(Randam Access Memory)等のメモリー上にタスクやプロセスとして展開して配置するように構成されている。この場合、実行プログラムがメモリーに配置される配置先は、メモリーの効率的な使用や、プログラムの想定される使用頻度を考慮して予め決定されている。
尚、一般的に、RAMはROMよりもアクセス時間が短いため、実行プログラムを読み出して実行するまでに所要する時間は、RAMに配置した場合の方が短いことが知られている。
特開平5−204654号公報
ところで、近年の情報処理装置には多くの機能が実装されるが、その中でユーザーが頻繁に使用する機能はユーザー毎に異なることが多い。
しかしながら、所定の機能を実行するための実行プログラムは、ユーザーが頻繁に使用する機能であってもROMに配置されている場合には、その実行プログラムが起動して所定の機能によるサービスを開始するまでに一定の時間を要する。従って、ユーザーは所定の機能によるサービスを享受できるまで、常に一定の時間を待つ必要があった。
そこで本発明は、前記課題に鑑みてなされたものであり、使用頻度に応じて、機能が実行されるまでに所要する時間を短くすることを目的とする。
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
[適用例1]
本適用例にかかる再配置プログラムは、プログラムの実行回数に関する情報を前記プログラム毎に取得する取得機能と、相対的に処理速度が高速な高速メモリーに配置された第1のプログラムの前記実行回数と、相対的に処理速度が低速な低速メモリーに配置された第2のプログラムの前記実行回数と、を比較し、前記第2のプログラムの前記実行回数が前記第1のプログラムの前記実行回数よりも多い場合、前記第1のプログラムおよび前記第2のプログラムに対する配置の入れ替えを判定する判定機能と、前記判定機能が前記第1のプログラムおよび前記第2のプログラムに対して配置を入れ替えると判定した場合、前記第1のプログラムを前記低速メモリーに配置し、前記第2のプログラムを前記高速メモリーに配置する入れ替え機能と、前記第1のプログラムおよび前記第2のプログラムの配置場所を示すマップ情報を更新する更新機能と、をコンピューターに実行させることを特徴とする。
これらの機能によれば、低速メモリーに配置された第2のプログラムの実行回数が、高速メモリーに配置された第1のプログラムの実行回数よりも多い場合、第1のプログラムは低速メモリーに配置され、第2のプログラムは高速メモリーに配置されることで配置が入れ替えられ、第1のプログラムおよび第2のプログラムの配置場所を示すマップ情報も更新される。従って、実行回数が多いプログラムは高速メモリーに配置され、実行回数が低いプログラムは低速メモリーに配置されるようになるため、使用される頻度が多いプログラムは、メモリーから読み出されて実行するまでの時間の短縮を図れる。
[適用例2]
上記適用例にかかる再配置プログラムにおいて、前記第1のプログラムおよび前記第2のプログラムで記述されているアドレスの情報を、入れ替えにより変更された新しいアドレスの情報に書き換える書き換え機能を備えることが好ましい。
このような機能によれば、プログラムにアドレス情報が記述されている場合でも、新しいアドレス情報に書き換えることができる。
[適用例3]
そして、前述の再配置プログラムを情報処理装置に適用することにより、使用頻度が高い機能に対応したプログラムを迅速に読み込んで実行させることができる。
[適用例4]
本適用例にかかるプログラムの再配置方法は、プログラムの実行回数に関する情報を前記プログラム毎に取得する取得工程と、相対的に処理速度が高速な高速メモリーに配置された第1のプログラムの前記実行回数と、相対的に処理速度が低速な低速メモリーに配置された第2のプログラムの前記実行回数と、を比較し、前記第2のプログラムの前記実行回数が前記第1のプログラムの前記実行回数よりも多い場合、前記第1のプログラムおよび前記第2のプログラムに対する配置の入れ替えを判定する判定工程と、前記判定工程で前記第1のプログラムおよび前記第2のプログラムに対して配置を入れ替えると判定した場合、前記第1のプログラムを前記低速メモリーに配置し、前記第2のプログラムを前記高速メモリーに配置する入れ替え工程と、前記第1のプログラムおよび前記第2のプログラムの配置場所を示すマップ情報を更新する更新工程と、を備えることを特徴とする。
これらの方法によれば、低速メモリーに配置された第2のプログラムの実行回数が、高速メモリーに配置された第1のプログラムの実行回数よりも多い場合、第1のプログラムは低速メモリーに配置され、第2のプログラムは高速メモリーに配置されることで配置が入れ替えられ、第1のプログラムおよび第2のプログラムの配置場所を示すマップ情報も更新される。従って、実行回数が多いプログラムは高速メモリーに配置され、実行回数が低いプログラムは低速メモリーに配置されるようになるため、使用される頻度が多いプログラムは、メモリーから読み出されて実行するまでの時間の短縮を図れる。
プリンター装置の制御部のハードウェア構成を示す図。 再配置実行プログラムの処理の流れを示すフローチャート。 プリンター装置の電源投入直後のメモリーマップ。 再配置実行プログラムが実行された後のメモリーマップ。
以下、再配置プログラムについて図面を参照して説明する。
(実施形態)
図1は、プリンター装置の制御部10のハードウェア構成を示す図である。この制御部10は、CPU12、RAM14およびROM16等を備え、これらはバス18で通信可能に接続された一種のコンピューターである。尚、図示は略すが、制御部10には、メモリーカード読取装置、ネットワーク通信装置、表示部および操作部等が接続されている。また、本実施形態では、プリンター装置は、コピー機能やスキャナー機能を備えた複合機を想定するが、これに限らず、印刷単機能装置、スキャナー装置およびプロジェクター装置等の情報処理装置を想定できる。
本実施形態では、ROM16は、ユーザーが消去および書き込み可能なEPROM(Erasable Programmable Read Only Memory)であって、電気的に消去可能なEEPROM(Electrically EPROM)を想定する。
このROM16には、BOOTプログラム20、再配置実行プログラム22、圧縮プログラムA24、圧縮プログラムB26および使用頻度情報28が記憶されている。尚、ROM16には、複数の圧縮プログラムがプリンター装置の機能に応じて記憶されているが、以下の説明を容易にするために、圧縮プログラムA24および圧縮プログラムB26の2つについてのみ記述する。
BOOTプログラム20は、プリンター装置の電源投入時に制御システムを初期化するための起動用プログラムであり、非圧縮状態で記憶されている。
再配置実行プログラム22は、起動時に実行されるプログラムであり、ROM16に記憶されている圧縮プログラムを所定の場所に解凍し、解凍されたプログラムに対して、使用頻度情報28に基づいてROM16およびRAM14に再配置するためのプログラムである。このプログラムも非圧縮状態で記憶されている。
圧縮プログラムA24および圧縮プログラムB26は、コピー機能のように機能ごとに動作する実行プログラムが所定の形式で圧縮された、所謂、組み込みプログラムである。
使用頻度情報28は、圧縮プログラムA24および圧縮プログラムB26が解凍されたプログラムA30(図3)およびプログラムB32(図3)に関する実行回数に関する情報、即ち、実行された回数をそれぞれ計数し、プログラム毎に使用頻度として記憶する機能を有する。
図2は、再配置実行プログラム22の処理の流れを示すフローチャートである。この再配置実行プログラム22は、プリンター装置の電源投入時に実行されるように設定されている。
再配置実行プログラム22が実行されると、最初に、CPU12は、圧縮プログラムA24をROM16に解凍し、圧縮プログラムB26をRAM14に解凍する(ステップS100)。この結果、図3のメモリーマップに示すように、プログラムA(第2のプログラム)30はROM(低速メモリー)16に配置され、プログラムB(第1のプログラム)32はRAM(高速メモリー)14に配置される。
続いて、CPU12は、プログラムA30およびプログラムB32の配置場所を示すマップ情報36をROM16に作成する(ステップS102)。本実施形態では、それぞれのプログラムに関してメイン関数の先頭アドレスがマップ情報36として作成される。即ち、マップ情報36には、図3のメモリーマップに示すように、プログラムA30のメイン関数FAの先頭アドレス0x10と、プログラムB32のメイン関数FBの先頭アドレス0x100が記録され、プリンター装置のOS(Operating System)等が各プログラムを実行させる際に参照する。尚、マップ情報36の作成先はROM16には限定されず、RAM14であっても良い。
次に、CPU12は、ROM16に記憶されている使用頻度情報28を読み出し、プログラムの使用頻度に関する情報を取得する(ステップS104)<取得機能>。本実施形態では、図3のメモリーマップに示すようにメイン関数が実行された回数が記述されている。即ち、プログラムA30のメイン関数FAは15(0xF)回実行され、プログラムB32のメイン関数FBは5(0x5)回実行されたことを示している。
次に、CPU12は使用頻度に関する情報に基づいて、プログラムA30およびプログラムB32を再配置するか、否かを判定する(ステップS106)<判定機能>。本実施形態のように、ROM16に配置されたプログラムAの実行回数(15回)が、RAM14に配置されたプログラムBの実行回数(5回)よりも多い場合には、ステップS106において「Yes」が選択され、ステップS108が実行される。
他方で、RAM14に配置されたプログラムBの実行回数がROM16に配置されたプログラムAの実行回数よりも多い場合には、ステップS106において「No」が選択され、一連の処理を終了する。
ステップS108では、CPU12は、ROM16に配置されているプログラムA30と、RAM14に配置されているプログラムB32とを入れ替える<入れ替え機能>。即ち、図4のメモリーマップに示すように、プログラムA30をRAM14に移動し、プログラムB32をROM16に移動する。尚、本実施形態では、図4のメモリーマップに示すように、RAM14にはプログラムA30に加えて、プログラムP40やプログラムQ42が配置されているために空き領域が少ない。一方、ROM16には所定の大きさの空き領域が存在するため、ROM16の空き領域をスワップ用のメモリーエリアとしてプログラムの移動を行うが、この方法には限定されない。
続いて、CPU12は、プログラムA30とプログラムB32において、変更が必要なアドレス情報を書き換える(ステップS110)<書き換え機能>。本実施形態では、それぞれのプログラムに対して逆アセンブル処理を行い、ソースコードを解析する。ここで、相対アドレスを指示したジャンプ命令が記述されている場合、アドレスの書き換えは不要である。他方で、絶対アドレスを指示したジャンプ命令が記述されている場合、CPU12は、プログラムのバイナリーデータにおける該当箇所を新しいアドレスに直接書き換えても良い。このように、プログラムの実行コードを書き換えるソフトウェア書き換え装置は、例えば、特開2009−265923号公報に開示されている。
次に、CPU12は、プログラムA30とプログラムB32のマップ情報36を変更する(ステップS112)<更新機能>。本実施形態では、図4のメモリーマップに示すように、プログラムA30のメイン関数FAの先頭アドレス0x100と、プログラムB32のメイン関数FBの先頭アドレス0x10がマップ情報36として記録され、一連の処理を終了する。
以上の処理により、再配置実行プログラム22は、ユーザーにより実行される回数をプログラム毎に管理し、実行される回数が多いプログラムをRAM14に配置する。従って、CPU12は、プリンター装置に備わる機能のうち、ユーザーに使用されることが相対的に多い機能を実現するためのプログラムを迅速に読み込むことができる。
尚、本実施形態では、2つのプログラムの実行回数で配置の入れ替えを判定したが、多くのプログラムが存在する場合には、所定の閾値を基準としてプログラムの実行回数で2つのグループに分類し、それぞれのグループのプログラム間で配置場所を入れ替えても良い。
また、本実施形態では、ROM16とRAM14間でプログラムの配置を変更したが、これには限定されず、再配置実行プログラム22は、RAM14と外部記憶装置間のように、データの読み書きに所要するアクセス時間が相対的に速い記憶媒体と、相対的に遅い記憶媒体との間でプログラムの配置を入れ替えても良い。
10…制御部、12…CPU、14…RAM、16…ROM、18…バス、20…BOOTプログラム、22…再配置実行プログラム、24…圧縮プログラムA、26…圧縮プログラムB、28…使用頻度情報、30…プログラムA、32…プログラムB、36…マップ情報、40…プログラムP、42…プログラムQ。

Claims (4)

  1. プログラムの実行回数に関する情報を前記プログラム毎に取得する取得機能と、
    相対的に処理速度が高速な高速メモリーに配置された第1のプログラムの前記実行回数と、相対的に処理速度が低速な低速メモリーに配置された第2のプログラムの前記実行回数と、を比較し、前記第2のプログラムの前記実行回数が前記第1のプログラムの前記実行回数よりも多い場合、前記第1のプログラムおよび前記第2のプログラムに対する配置の入れ替えを判定する判定機能と、
    前記判定機能が前記第1のプログラムおよび前記第2のプログラムに対して配置を入れ替えると判定した場合、前記第1のプログラムを前記低速メモリーに配置し、前記第2のプログラムを前記高速メモリーに配置する入れ替え機能と、
    前記第1のプログラムおよび前記第2のプログラムの配置場所を示すマップ情報を更新する更新機能と、をコンピューターに実行させることを特徴とする再配置プログラム。
  2. 請求項1に記載の再配置プログラムにおいて、
    前記第1のプログラムおよび前記第2のプログラムで記述されているアドレスの情報を、入れ替えにより変更された新しいアドレスの情報に書き換える書き換え機能を備えることを特徴とする再配置プログラム。
  3. 請求項1乃至2のいずれかに記載の再配置プログラムが組み込まれたことを特徴とする情報処理装置。
  4. プログラムの実行回数に関する情報を前記プログラム毎に取得する取得工程と、
    相対的に処理速度が高速な高速メモリーに配置された第1のプログラムの前記実行回数と、相対的に処理速度が低速な低速メモリーに配置された第2のプログラムの前記実行回数と、を比較し、前記第2のプログラムの前記実行回数が前記第1のプログラムの前記実行回数よりも多い場合、前記第1のプログラムおよび前記第2のプログラムに対する配置の入れ替えを判定する判定工程と、
    前記判定工程で前記第1のプログラムおよび前記第2のプログラムに対して配置を入れ替えると判定した場合、前記第1のプログラムを前記低速メモリーに配置し、前記第2のプログラムを前記高速メモリーに配置する入れ替え工程と、
    前記第1のプログラムおよび前記第2のプログラムの配置場所を示すマップ情報を更新する更新工程と、を備えることを特徴とするプログラムの再配置方法。
JP2011059076A 2011-03-17 2011-03-17 再配置プログラム、情報処理装置およびプログラムの再配置方法 Withdrawn JP2012194852A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011059076A JP2012194852A (ja) 2011-03-17 2011-03-17 再配置プログラム、情報処理装置およびプログラムの再配置方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011059076A JP2012194852A (ja) 2011-03-17 2011-03-17 再配置プログラム、情報処理装置およびプログラムの再配置方法

Publications (1)

Publication Number Publication Date
JP2012194852A true JP2012194852A (ja) 2012-10-11

Family

ID=47086662

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011059076A Withdrawn JP2012194852A (ja) 2011-03-17 2011-03-17 再配置プログラム、情報処理装置およびプログラムの再配置方法

Country Status (1)

Country Link
JP (1) JP2012194852A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022550448A (ja) * 2019-10-03 2022-12-01 マイクロン テクノロジー,インク. さまざまなアプリケーションプロセスのための初期データ配信

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022550448A (ja) * 2019-10-03 2022-12-01 マイクロン テクノロジー,インク. さまざまなアプリケーションプロセスのための初期データ配信

Similar Documents

Publication Publication Date Title
KR101636870B1 (ko) 최소 부트 이미지의 생성 방법 및 장치
JP4459215B2 (ja) ゲーム装置および情報処理装置
CN104182255A (zh) 一种系统应用的库文件升级方法及终端
US10970020B2 (en) Non-transitory computer-readable recording medium storing computer-readable instructions for causing information processing device to execute image process, and information processing device
KR101555210B1 (ko) 휴대용 단말기에서 내장 대용량 메모리를 이용한 컨텐츠 다운로드 방법 및 장치
JP2001175466A (ja) 実行プログラムの生成方法及び実行プログラム生成装置、実行プログラムの実行方法、並びに、コンピュータ可読プログラム記憶媒体
JP2014126989A (ja) 制御装置、制御方法、及び、プログラム
JP5982025B1 (ja) 情報処理装置およびメモリー管理プログラム
US20020083427A1 (en) Embedded system capable of rapidly updating software and method for rapidly updating software of embedded system
US9037773B2 (en) Methods for processing and addressing data between volatile memory and non-volatile memory in an electronic apparatus
JP2006268377A (ja) プログラム起動制御装置及びプログラム起動制御方法
KR20110057037A (ko) 디스플레이 장치 및 디스플레이 장치의 제어 방법
JP2012068797A (ja) 起動高速化方法、情報処理装置及びプログラム
JP2012194852A (ja) 再配置プログラム、情報処理装置およびプログラムの再配置方法
KR100640389B1 (ko) Nand플래시 메모리를 구비한 장치에서 어플리케이션을실행하는 방법 및 그 장치
JP7192303B2 (ja) 情報処理装置およびプログラム
CN110187897B (zh) 一种固件升级方法及装置
JP6099365B2 (ja) 情報処理システム、情報処理装置、情報処理プログラム、アプリケーションの実行方法、および、記憶媒体
EP2613254A2 (en) Apparatus and method for partitioning memory area for application preloading in a wireless terminal
JP2004246787A (ja) 情報処理装置およびプログラム制御方法
JP2009157441A (ja) 情報処理装置、ファイル再配置方法およびプログラム
JP2006126987A (ja) 画像処理装置
JP2006133889A (ja) プログラムを更新するための方法、プログラムおよび装置
US7702890B2 (en) Information processing apparatus and program
JP2011243072A (ja) ソフトウェア有効期限変更方法及び装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20140603