JP2002268903A - プログラム管理方式 - Google Patents

プログラム管理方式

Info

Publication number
JP2002268903A
JP2002268903A JP2001071684A JP2001071684A JP2002268903A JP 2002268903 A JP2002268903 A JP 2002268903A JP 2001071684 A JP2001071684 A JP 2001071684A JP 2001071684 A JP2001071684 A JP 2001071684A JP 2002268903 A JP2002268903 A JP 2002268903A
Authority
JP
Japan
Prior art keywords
program
compressed
memory
compression
nonvolatile memory
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.)
Pending
Application number
JP2001071684A
Other languages
English (en)
Inventor
Yutaka Saito
裕 斎藤
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2001071684A priority Critical patent/JP2002268903A/ja
Publication of JP2002268903A publication Critical patent/JP2002268903A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 プログラムの格納形態をプログラムの使用頻
度等に応じて書き替える。 【解決手段】 書き換え可能な不揮発性メモリに圧縮又
は非圧縮されて格納されたプログラムの管理方式におい
て、前記メモリに格納された複数のプログラムをそれぞ
れ予め設定したプログラムの使用頻度、実行処理時間等
の使用条件に従って、非圧縮プログラムでも使用頻度が
高ければ圧縮して書き替える、圧縮プログラムでも使用
頻度が低ければそのまま書き替える等の書き替えを行
う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、実行プログラムを
アクセス速度の遅いメモリからアクセス速度の早いメモ
リに展開する場合のプログラムの管理方式に関する。
【0002】
【従来の技術】プリンタなどの制御装置おいて、その制
御装置を動作させるプログラム(制御プログラム)は、通
常、不揮発性メモリに保存されている。近年、制御装置
は、制御プログラムを修正可能にするために、書き換え
可能な不揮発性メモリ(フラッシュROMなど)に搭載す
ることが多い。不揮発性メモリに格納されて実行される
プログラムは、アクセス時間がRAMにくらべて遅いた
め、高性能なCPUに対しては性能を発揮できないこと
が多い。そのために、初期段階で不揮発性メモリに格納
されているプログラムを一旦RAMに複製して、RAM
上に複製されたプログラムを実行することが行われてい
る。
【0003】また、不揮発性メモリはRAMに比べて高
価であるため、コスト低減のために実装容量が制限され
ることが多い。そのため、不揮発性メモリにはプログラ
ムコードを圧縮して格納する方法が採られている。しか
し、この圧縮されたプログラムコード全てを伸張してR
AMに保持するとなると、非常に大きな容量のRAMを
搭載しなければならず、余り使われないプログラムコー
ドの部分までも常にRAMにおくことになると無駄が大
きくなってしまう。そのため、圧縮されたプログラムコ
ードを実行する必要が発生した時点で、部分的にRAM
に伸張して実行し、不要になった時点でそのRAMの領
域に別のプログラムコードを伸張して実行することによ
り、不揮発性メモリとRAMの両方の搭載容量を削減す
る技術が開発されている。
【0004】この技術を基本とした発明として、特開平
11ー175384号公報(以下、従来技術1と略称)
及び、特開平11ー53127号公報(以下、従来技術
2と略称)に記載された発明がある。
【0005】前記従来技術1によれば、RISCアーキテク
チャを有するシステムに適用して、RISC命令特有の構造
に基づき高い圧縮率を達成することができ、また、自ら
圧縮する命令セットを不揮発性メモリに備えることで、
利用者が必要なときに「動的」に不揮発性メモリ上の命
令セットおよびそのサブセットを書き換えることができ
る。また、従来技術2によれば、実行すべきプログラム
命令セットを他の装置から提供することで、装置内部の
不揮発性メモリの搭載容量を押さえつつ、使用頻度の低
い機能を含んだプログラムを実行できるようにしてい
る。
【0006】
【発明が解決しようとする課題】しかしながら、従来技
術1では、圧縮された命令を伸張する命令セット以外の
すべての命令セットを圧縮しているため、RAMに存在
していない圧縮命令セットを実行するときに必ずRAM
に展開しなければならず、伸張処理時間が掛かってしま
い高速CPUの性能を活かしきれないという問題があっ
た。また、従来技術2では、装置設計時点でプログラム
の搭載/非搭載を決定してしまうため、搭載したプログ
ラムが利用者にとって本当に使用頻度の高いものとは限
らない、また、利用者ごとに使用頻度は変わってしまう
ことがあり得るという問題があった。
【0007】本発明は、このような問題を背景になされ
たもので、その目的は、書き換え可能な不揮発性メモリ
上のプログラムの格納形態が、使用頻度に応じて常時変
更されるようメモリ管理することであり、また、不揮発
性メモリ上のプログラムを直接実行するときの性能及び
不揮発性メモリからプログラムを伸張してRAM上で実
行するときの性能のいずれもが発揮できるようプログラ
ムの格納形態が変更できるようメモリ管理することであ
る。
【0008】
【課題を解決するための手段】請求項1の発明は、書き
換え可能なメモリに圧縮又は非圧縮されて格納されたプ
ログラムの管理方式において、前記メモリに格納された
複数のプログラムをそれぞれ予め設定した使用条件に従
って圧縮して又は圧縮せずに書き換える手段を有するこ
とを特徴とするプログラム管理方式である。
【0009】請求項2の発明は、請求項1記載のプログラ
ム管理方式において、前記書き換え手段は、複数の使用
条件をそれぞれ満したとき書き換えることを特徴とする
プログラム管理方式である。
【0010】請求項3の発明は、請求項1記載のプログラ
ム管理方式において、前記メモリに格納しているプログ
ラムに他の使用条件を付加する手段と、該付加手段によ
って付加された使用条件と予め設定した使用条件による
プログラムの実行性を判断する手段と、該手段の判断結
果により前記圧縮又は非圧縮の書き換えを停止する手段
を有することを特徴とするプログラム管理方式である。
【0011】請求項4の発明は、請求項1乃至3のいず
れかに記載のプログラム管理方式において、前記使用条
件は、プログラムの実行回数及び/又は実行処理時間及
び/又は圧縮率であることを特徴とするプログラム管理
方式である。
【0012】
【発明の実施の形態】以下、本発明の実施形態について
説明する。図1は、本発明が適用される制御装置の要部
概略構成図であり、バス101によりCPU102、不
揮発性メモリ104、RAM105、カウンタ103が
接続されている。このような構成の制御装置において、
CPU102は、不揮発性メモリ104に格納されてい
るプログラムを直接実行する場合と、前記プログラムを
RAM105に一旦展開し、展開されたプログラムを実
行する場合がある。一般に、不揮発性メモリ104に格
納されているプログラムを直接実行する場合は、不揮発
性メモリのアクセス時間が遅いため、RAM105に展
開して実行するよりも性能が劣る。このため前記のよう
に一旦RAM105に展開し高速化を図ることが行われ
る。それでも、このコピー展開は不揮発性メモリのアク
セス性能の影響を受けるため、これを回避するために不
揮発性メモリ上のプログラムは圧縮して格納するように
する。この圧縮によって、高性能なCPUを使用すれ
ば、遅いアクセス時間の不揮発性メモリ104であって
も読み込むデータ量が減ることから、読み込み時間はR
AM展開に要する時間より少なくて済むことになる。本
発明では、このような圧縮と読み込み時間の関係を利用
してメモリ管理を行う。
【0013】図2は、不揮発性メモリとRAMにおける
メモリのレイアウトを示す図であり、不揮発性メモリ1
04のレイアウトは、非圧縮の管理プログラム201、
圧縮されたプログラム202、204及び圧縮されてい
ない203並びに空き容量205となっている。また、
RAM105のレイアウトは、前記管理プログラム20
1によって展開された、前記プログラム202、204
にそれぞれ対応するプログラム212,214である。
【0014】圧縮プログラム202を実行するには、C
PU102は、このプログラム202を管理プログラム
201にある伸張処理部で伸張しながら、RAM210
の展開領域212に書き込んで行き、書き込まれた、つ
まり展開されたプログラム212を実行する。そのと
き、管理プログラム201は、伸張処理に要した時間と
実行処理に要した時間の合計時間を、カウンタ103を
使って測定し、RAM210に置いたプログラムの統計
情報に実行回数とともに記録する。
【0015】また、非圧縮のプログラム203を実行す
るには、不揮発性メモリ104上の領域を直接CPU1
02で実行する。このときも同様に、管理プログラム2
01で実行処理時間を、カウンタ103を利用して測定
しプログラム統計情報に記録する。
【0016】図3は、本発明の実施形態に係るメモリ管
理を行うための不揮発性メモリとRAMとの間でプログ
ラム格納形態の変移を示す図であり、図中、301は管
理プログラム、302は圧縮プログラム、303は非圧
縮プログラム、304は圧縮プログラムである。ここ
で、平均的な圧縮率のプログラムは不揮発性メモリ10
4上で実行するより、RAM105へ展開して実行した
方の性能が良いものとする。
【0017】非圧縮プログラム303はCPU102に
より直接実行する。このとき前記統計情報の実行回数
が、他の非圧縮プログラムより多くなった場合には管理
プログラム301により圧縮を試みる。そしてRAM3
10に空き領域があれば、RAM310に領域313と
して格納する。これにより、プログラム303の圧縮率
が分かるので、圧縮率が平均圧縮率より高ければそのま
ま不揮発性メモリ320の空き領域に書き込んで領域3
23とし、元々あったプログラム303を削除する。他
の非圧縮プログラムより多くない場合は、圧縮プログラ
ムと比較する。
【0018】また、逆に圧縮されているプログラム30
4の実行回数が他の圧縮プログラムの実行回数より少な
くなった場合には、不揮発性メモリ300に、現在実行
しているRAM310上のプログラム314のサイズ以
上の空きがあれば、プログラム314を不揮発性メモリ
320の領域にそのまま書き込んで領域324とし、元
々あったプログラム304を削除する。少なくない場合
は、更に実行し実行回数を積み重ねる。
【0019】図4は、不揮発性メモリ104とRAM1
05との間でプログラム格納形態の変更を示すフロー図
である。このフロー図に従って前記プログラムの展開と
圧縮の手順を説明すると、CPU102はプログラムの
実行を開始すると、非圧縮プログラムについては直接、
圧縮プログラムについてはRAMに展開してプログラム
を実行する(S1)。このときCPU102は、当該プ
ログラムの実行回数をRAMの統計情報を検索してチェ
ックし(S2)、その実行回数が他の圧縮プログラムよ
り多いか否かをチェックする(S3)。その結果、多い
場合は(S3,YES)、当該プログラムを圧縮し、不
揮発性メモリに書き込み処理を行って元のプログラムは
削除し(S4)、この手順を終了する。実行回数が他の
圧縮プログラムより多くない場合(S3,NO)、他の
非圧縮プログラムより少ないか否かをチェックする(S
5)。その結果、少なければ(S5,YES)、非圧縮
のまま不揮発性メモリに書き込み処理を行い(S6)、
この手順を終了する。少なくない、つまり多ければ(S
5,N0)、この手順を終了して今後の実行回数をみ
る。
【0020】実際に書き込みに入る条件は、全プログラ
ムの実行回数の累計に対するプログラムの実行回数の比
率で判定しても良い。これらの処理はプログラムが実行
される度に行われ、毎回統計情報によって見直されて格
納形態が変化していく。ただし、プログラムを圧縮して
不揮発性メモリ104に格納しRAM105に伸張して
実行した方が速いか、圧縮せずに不揮発性メモリ104
上で直接実行した方が速いかは、一定のルールで決定で
きるものではないが、両方の状態での性能をカウンタ1
03を使用して実際の処理時間を測定し、統計情報に記
録しておくことにより判定可能になる。
【0021】本発明の他の実施形態は、図1の構成によ
る図4のメモリ管理方式において、圧縮率や実行回数等
による異なる判定条件を複数用意しておき、前記実行回
数等に応じて図4の管理方式を2つではなく複数設け
て、それらの判定条件に合致する場合に対象の圧縮方式
に切りかえる。
【0022】本発明の更に他の実施形態は、図1の構成
による図4のメモリ管理方式において、実行回数や実行
処理時間等の統計情報とは別に、プログラムの属性情報
として利用者が外部からキーボード操作等により設定可
能な応答性条件、例えば実行処理時間を各プログラム単
位に格納できるようにする。図4のフローの判定部に設
定された判定基準により圧縮/非圧縮のプログラム形態
に変更したときの実行処理時間が、外部から設定した実
行処理時間より大きくなる場合には、圧縮や非圧縮の書
き込み処理を行わないようにする。このことにより所望
のプログラムの実行性能が必要以上に低下しないように
することができる。
【0023】
【発明の効果】請求項1に対応する効果:使用頻度に応
じて書き換え可能不揮発性メモリ上のプログラムの格納
形態が常時変更されていくので、利用者の特定の使い方
における実行性能を特定のメモリ容量のもとで最適化す
ることができる。また、不揮発性メモリ上のプログラム
を実行するときの性能や、不揮発性メモリからプログラ
ムを伸張してRAM上で実行するときの性能は、素子の
性能やプログラムの内容、圧縮方式により影響を受ける
が、設定条件によりどちらの性能も最適化することがで
きる。 請求項2に対応する効果: 圧縮方式を複数利用するこ
とにより使用頻度に応じて書き換え可能不揮発性メモリ
上のプログラムの格納形態が段階的に変更されるので、
利用者の特定の使い方における実行性能が特定のメモリ
容量のもとで、さらに繊密に最適化することができる。 請求項3に対応する効果: 各プログラムの応答条件が
高く設定されているものについては、書き換え可能不揮
発性メモリ上のプログラムの格納形態が変更されるとき
に設定された応答条件と現在の格納形態での処理性能と
を比較して特定のしきい値以内に入ったときに格納形態
を変えないようにすることで、特定のプログラムに関し
必要な応答性を確保することができる。 請求項4に対応する効果:使用条件を、プログラムの実
行回数及び/又は実行処理時間及び/又は圧縮率とする
ので、プログラムのメモリ管理を容易に行うことができ
る。
【図面の簡単な説明】
【図1】本発明が適用される制御装置の要部ブロック図
である。
【図2】本発明の実施形態に係るメモリのレイアウト図
である。
【図3】本発明の実施形態に係るメモリのレイアウト図
である。
【図4】本発明の実施形態に係るプログラム格納形態の
変移のフロー図である。
【符号の説明】
101・・バス、102・・CPU、103・・カウンタ、1
04・・不揮発性メモリ、105・・RAM

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 書き換え可能なメモリに圧縮又は非圧縮
    されて格納されたプログラムの管理方式において、前記
    メモリに格納された複数のプログラムをそれぞれ予め設
    定した使用条件に従って圧縮して又は圧縮せずに書き換
    える手段を有することを特徴とするプログラム管理方
    式。
  2. 【請求項2】 請求項1記載のプログラム管理方式におい
    て、前記書き換え手段は、複数の使用条件をそれぞれ満
    したとき書き換えることを特徴とするプログラム管理方
    式。
  3. 【請求項3】 請求項1記載のプログラム管理方式におい
    て、前記メモリに格納しているプログラムに他の使用条
    件を付加する手段と、該付加手段によって付加された使
    用条件と予め設定した使用条件によるプログラムの実行
    性を判断する手段と、該手段の判断結果により前記圧縮
    又は非圧縮の書き換えを停止する手段を有することを特
    徴とするプログラム管理方式。
  4. 【請求項4】 請求項1乃至3のいずれかに記載のプロ
    グラム管理方式において、前記使用条件は、プログラム
    の実行回数及び/又は実行処理時間及び/又は圧縮率で
    あることを特徴とするプログラム管理方式。
JP2001071684A 2001-03-14 2001-03-14 プログラム管理方式 Pending JP2002268903A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001071684A JP2002268903A (ja) 2001-03-14 2001-03-14 プログラム管理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001071684A JP2002268903A (ja) 2001-03-14 2001-03-14 プログラム管理方式

Publications (1)

Publication Number Publication Date
JP2002268903A true JP2002268903A (ja) 2002-09-20

Family

ID=18929373

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001071684A Pending JP2002268903A (ja) 2001-03-14 2001-03-14 プログラム管理方式

Country Status (1)

Country Link
JP (1) JP2002268903A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010282630A (ja) * 2009-06-02 2010-12-16 Edward Doller 実行可能な不揮発性メモリにおいて実行可能プログラムの一部を動作させる方法
JP2011113293A (ja) * 2009-11-26 2011-06-09 Ricoh Co Ltd 半導体集積回路、それを用いた電子機器、及び半導体集積回路の制御方法
WO2014068890A1 (ja) * 2012-10-29 2014-05-08 三菱電機株式会社 情報処理装置、放送受信装置及びソフトウェアデータ更新方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010282630A (ja) * 2009-06-02 2010-12-16 Edward Doller 実行可能な不揮発性メモリにおいて実行可能プログラムの一部を動作させる方法
JP2011113293A (ja) * 2009-11-26 2011-06-09 Ricoh Co Ltd 半導体集積回路、それを用いた電子機器、及び半導体集積回路の制御方法
WO2014068890A1 (ja) * 2012-10-29 2014-05-08 三菱電機株式会社 情報処理装置、放送受信装置及びソフトウェアデータ更新方法
JP5855273B2 (ja) * 2012-10-29 2016-02-09 三菱電機株式会社 情報処理装置、放送受信装置及びソフトウェアデータ更新方法

Similar Documents

Publication Publication Date Title
KR100289627B1 (ko) 멀티태스킹 기능을 가지는 정보처리시스템을 위한 자원관리방법 및 그 장치
JPH10154101A (ja) データ記憶システム及び同システムに適用するキャッシュ制御方法
JP2006114043A (ja) フラッシュメモリのデータ処理装置及び方法
JP4874162B2 (ja) データ展開装置及びデータ展開方法
US8959309B2 (en) Skip list generation
JP2006236239A (ja) データ処理システム及びデータ伸長方法
JP2002268903A (ja) プログラム管理方式
US20050273589A1 (en) Method and system for reading instructions from NAND flash memory and writing them into SRAM for execution by a processing device
JP3766188B2 (ja) 論理フォーマット変換方法およびデータ保存媒体
JP2002063042A (ja) プログラム・モジュール管理システム、その管理方法及びその管理プログラムを記録した記録媒体
US7318131B2 (en) CPU-containing LSI, and optical disk device and LSI device with the same
JP2005531842A (ja) 不揮発性メモリへの書き込み方法およびこの方法を実現するシステム
CN111831327A (zh) 可执行指令的电子装置以及指令执行方法
JPH0573413A (ja) キヤツシユメモリ・データ制御装置
US6898680B2 (en) Minimization of overhead of non-volatile memory operation
JPH07271603A (ja) オーバレイプログラムロード方式
JPH118547A (ja) 再構成可能演算装置
JP2001142709A (ja) 初期起動装置、コンピュータシステム、初期起動方法及び記憶媒体
JP2010277495A (ja) 圧縮記録装置および圧縮記録方法
JP2008171246A (ja) フラッシュメモリドライブ装置、その制御方法及びそのプログラム
US20020169758A1 (en) Apparatus and methods for reducing compression and decompression time in a computer system
JP2000035916A (ja) メモリ動作管理方法
KR100631780B1 (ko) 오버레이 유닛 간의 통신 방법 및 이를 이용한 장치
JP2021196661A (ja) 情報処理装置及びプログラム
JPH06161842A (ja) 外部記憶装置およびこれを用いたコンピュータ

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060619

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060622

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20061101