(57)【要約】【課題】  プログラムを保存する記憶素子に圧縮することなくそのまま記憶させているので、プログラム容量の増加に比例してプログラムを保存する記憶素子の容量も増えている。【解決手段】プログラムをモジュール構造で構成し、モジュール毎に圧縮して記憶素子に保存しておき、モジュールの実行タイミングに合わせて、圧縮したモジュールを書き込み可能素子に解凍して実行することをよって、プログラムを保存する記憶素子の容量を削減する。【選択図】  図８
2006163773.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを記憶素子に保存する記録装置において、
プログラムをモジュール構造で構成する手段と、
モジュール毎に圧縮して記憶素子に保存する手段と、
圧縮したモジュールを書き込み可能素子に解凍する手段と、
モジュールの実行タイミングに合わせてモジュールの解凍を指示する手段
を有することを特徴とするプログラム制御方法。
【請求項２】
請求項１において、
圧縮したモジュールを書き込み可能素子に解凍するハードウエア回路を具備することを特徴とするプログラム制御方法。
【請求項３】
プログラムを記憶素子に保存する記録装置において、
プログラムをモジュール構造で構成する手段と、
モジュール毎に圧縮するか否かを選択する手段と、
圧縮するモジュールのみモジュール毎に圧縮して記憶素子に保存する手段と、
圧縮したモジュールを書き込み可能素子に解凍する手段と、
モジュールの実行タイミングに合わせて圧縮したモジュールのみモジュールの解凍を指示する手段
を有することを特徴とするプログラム制御方法。
【請求項４】
請求項３において、
圧縮したモジュールを書き込み可能素子に解凍するハードウエア回路を具備することを特徴とするプログラム制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
プログラムを記憶素子に保存する記録装置において、記憶素子に保存したプログラムを実行するプログラム制御方法に関するものである。
【背景技術】
【０００２】
プログラムを記憶素子に保存する記録装置において、記録装置の高機能化、多機能化に伴い、プログラム容量が増える一方であり、プログラムを保存する記憶素子の容量も増える一方である。
【０００３】
記録装置のプログラムは、マスクROMなどの書き換え不可能な記憶素子、ワンタイムプログラマブルROMなどの一度だけ書き換え可能な記憶素子、Flash ROMなどの書き換え可能な記憶素子等に保存されている。特に、最近は機能アップのためにユーザがプログラムをバージョンアップできるように高価なFlash ROMなどの書き換え可能な記憶素子を用いることが多くなってきている。（例えば、特許文献１参照）
従って、プログラムを保存する記憶素子の容量を削減する要求が高まってきている。
【０００４】
従来、プログラムはプログラムを保存する記憶素子に圧縮することなくそのまま記憶させている。そのため、プログラム容量の増加に比例してプログラムを保存する記憶素子の容量も増えている。その結果、記録装置のコストが上昇させる大きな要因になっている。
【０００５】
また、プログラム容量を減らすようにソフトウエアを変更するなどして、プログラム容量の削減を行っている。その結果、ソフトウエアをより複雑なものにして、ソフトウエアの開発工数の増加、ソフトウエアの品質の低下を引き起こす要因になっている。
【０００６】
従来技術には以上のような欠点がある。
【特許文献１】特開２００４-２４８０７０号
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は上述した従来技術の欠点を除去するものであり、以下の課題を解決するものである。
【０００８】
プログラムをモジュール構造で構成し、モジュール毎に圧縮して記憶素子に保存しておき、モジュールの実行タイミングに合わせて、圧縮したモジュールを書き込み可能素子に解凍して実行することをよって、プログラムを保存する記憶素子の容量を削減することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的達成するために、プログラムを記憶素子に保存する記録装置において、プログラムをモジュール構造で構成する手段と、モジュール毎に圧縮して記憶素子に保存する手段と、圧縮したモジュールを書き込み可能素子に解凍する手段と、モジュールの実行タイミングに合わせてモジュールの解凍を指示する手段を有することを特徴とする。
【００１０】
さらに、上記の特徴に加えて、圧縮したモジュールを書き込み可能素子に解凍するハードウエア回路を具備することを特徴とする。
【００１１】
また、プログラムを記憶素子に保存する記録装置において、プログラムをモジュール構造で構成する手段と、モジュール毎に圧縮するか否かを選択する手段と、圧縮するモジュールのみモジュール毎に圧縮して記憶素子に保存する手段と、圧縮したモジュールを書き込み可能素子に解凍する手段と、モジュールの実行タイミングに合わせて圧縮したモジュールのみモジュールの解凍を指示する手段を有することを特徴とする。
【００１２】
さらに、上記の特徴に加えて、圧縮したモジュールを書き込み可能素子に解凍するハードウエア回路を具備することを特徴とする。
【発明の効果】
【００１３】
以上説明したように本発明によって、プログラムをモジュール構造で構成し、モジュール毎に圧縮して記憶素子に保存しておき、モジュールの実行タイミングに合わせて、圧縮したモジュールを書き込み可能素子に解凍して実行することをよって、プログラムを保存する記憶素子の容量を削減することができる。
【００１４】
その結果、以下のような効果がある。
【００１５】
プログラムを保存する記憶素子の容量を削減によって、記録装置のコストの上昇を抑止する効果がある。
【００１６】
また、ソフトウエアの複雑化を防止することによって、ソフトウエアの開発工数の増加、ソフトウエアの品質の低下を抑止する効果がある。
【発明を実施するための最良の形態】
【００１７】
（第一の実施例）
以下、本発明の実施例を図面を用いて説明する。
【００１８】
図１は本発明の第一の実施例を示す記録装置の全体斜視図である。
【００１９】
キャリッジ１０１は、記録ヘッド１０２とカートリッジガイド１０３が搭載されて、ガイド軸１０４及び１０５に沿って走査可能である。キャリッジ１０１の駆動機構は図示しない。記録媒体１０６は、給紙ローラ１０７によって本体装置内に送り込まれ、そして紙送りローラ１０８、ピンチローラ（不図示）、及び紙押さえ板１０９によって挟まれつつ記録ヘッド１０２の前面へと送られて記録される。イエローのインクを収納したイエローインクタンク１１０と、マゼンタのインクを収納したマゼンタインクタンク１１１と、シアンのインクを収納したシアンインクタンク１１２と、ブラックのインクを収納したブラックインクタンク１１３は、それぞれ別々にカートリッジガイド１０３に挿入されて記録ヘッド１０２と連通接続される。イエローインク残量検知センサ１１４はイエローインクタンク１１０内のイエローインクが空か否かを識別できる。マゼンタインク残量検知センサ１１５はマゼンタインクタンク１１１内のマゼンタインクが空か否かを識別できる。シアンインク残量検知センサ１１６はシアンインクタンク１１２内のシアンインクが空か否かを識別できる。ブラックインク残量検知センサ１１７はブラックインクタンク１１３内のブラックインクが空か否かを識別できる。
【００２０】
図２は本発明の第一の実施例を示す記録装置の回路ブロック図である。
【００２１】
１１０１はホスト（ＰＣ）でありホスト機器として記録装置に記録データを送信する。１１０２はインターフェースでありホスト機器からの記録データを受信する。１１１１はＣＰＵ（中央処理装置）、１１１２はＲＯＭ、１１１３はＤＲＡＭ、１１１４はＣＰＵ内蔵のＳＲＡＭ、１１１５はＥＥＰＲＯＭである。１１２１はコントローラ（Ｇ．Ａ．）でありＩ／Ｆ部の制御、ＣＲモータの制御、ＬＦモータの制御、記録媒体センサ１の制御、記録媒体センサ２の制御、記録ヘッドの駆動制御を行うカスタムＩＣ（ゲートアレー）である。１１２２はＣＲモータの制御を行うＣＲモータドライバ、１１２３はＣＲモータ、１１２４はＬＦモータの制御を行うＬＦモータドライバ、１１２５はＬＦモータである。１１２６はイエローインクタンク１１２７内のイエローインクが空か否かを識別できるイエローインク残量検知センサ、１１２８はマゼンタインクタンク１１２９内のマゼンタインクが空か否かを識別できるマゼンタインク残量検知センサ、１１３０はシアンインクタンク１１３１内のシアンインクが空か否かを識別できるシアンインク残量検知センサ、１１３２はブラックインクタンク１１３３内のブラックインクが空か否かを識別できるブラックインク残量検知センサである。１１４１は記録ヘッドとを結ぶフレキシブルケーブルである。１１４２はキャリッジ端子パッドであり記録ヘッドとの結合部の接点を形成する。１１４３は記録ヘッドであり、１１４４は記録ヘッドの駆動部、１１４５は記録ヘッドの発熱素子である。記録装置は記録ヘッドがＣＲモータにて走査することによって記録する。
【００２２】
図４は従来技術のモジュール構成図である。
【００２３】
従来技術では、プログラムがモジュール構造で構成されていないか、モジュール構造で構成されていたとしても、図のように、実行モジュールとしての階層構造ではなく、単純にモジュールとして分割されているだけである。この図では最初に実行権を持つルート・モジュールと、それ以外のモジュール１〜モジュール６に分割されている場合である。
【００２４】
また、実行時はＤＲＡＭまたはＳＲＡＭに実行モジュールとしての階層構造でコピーして実行するイメージで構成されている場合もある。
【００２５】
図５は従来技術のメモリ構成図１である。
【００２６】
従来技術では、ＲＯＭには単純にモジュールとして分割されたイメージのまま保存されている。ＲＯＭの容量は削減できない。実行時はＲＯＭからそのまま実行するか、ＤＲＡＭまたはＳＲＡＭに展開して実行する場合も、単純にそのままのイメージをコピーする。ＤＲＡＭまたはＳＲＡＭの容量は削減できない。
【００２７】
図６は従来技術のメモリ構成図２である。
【００２８】
従来技術では、ＲＯＭには単純にモジュールとして分割されたイメージのまま保存されている。ＲＯＭの容量は削減できない。実行時はＤＲＡＭまたはＳＲＡＭに実行モジュールとしての階層構造に展開して実行する。これはオーバーレイ方式として既知の方式である。オーバーレイ方式によってＤＲＡＭまたはＳＲＡＭの容量が削減できる。
【００２９】
図７は本発明の第一の実施例のモジュール構成図である。
【００３０】
本発明では、プログラムがモジュール構造で構成されており、かつ、実行モジュールとしての階層構造であり、さらに、モジュール実行タイミングに合わせてモジュールをロードして起動するように構成されている。この図では最初に実行権を持つルート・モジュールと、ルート・モジュールの配下の実行権を持つモジュール１とモジュール２と、さらに、モジュール１の配下の実行権を持つモジュール３とモジュール４と、モジュール２の配下の実行権を持つモジュール５とモジュール６とで構成されている場合である。
【００３１】
図８は本発明の第一の実施例の実行ファイルの圧縮図である。
【００３２】
圧縮前の実行ファイルは通常のソースファイルからビルドされたイメージそのままであり、一般的なビルダーを使用して作成することが可能である。圧縮後の実行ファイルはモジュール毎に圧縮しておりモジュール情報を持つことを特徴として構成している。ルート・モジュールを除いてモジュール１〜モジュール６までのすべてを圧縮している。圧縮技術に関しては独自技術でも良いが、一般的な既知技術を使用しても問題ない。この実施例では既知技術を使用している場合を想定している。図にあるようにＲＯＭの容量が削減できる。
【００３３】
図９は本発明の第一の実施例の圧縮後の実行ファイルの構造図である。
【００３４】
ルート・モジュールの先頭部分にはベクタテーブルがあり、ベクタ１は一般的なリセットベクタでありリセット時に実行を開始する情報が保存されている。ベクタＮはモジュール情報の保存場所を知るための情報が保存されている。モジュール情報にはモジュール情報１〜モジュール情報６の詳細情報が保存されている。モジュール情報の詳細は各モジュールの開始アドレス、レングスから構成されている。開始アドレスは圧縮後の実行ファイルにおけるモジュールの位置を示すものである。レングスは圧縮後のモジュールのレングスを示すものである。
【００３５】
図１０は本発明の第一の実施例のメモリ構成図である。
【００３６】
本発明では、ＲＯＭには圧縮後の実行ファイルが保存されている。モジュール毎に圧縮してモジュール情報を付加して構成している。ＲＯＭの容量が削減できる。実行時はＤＲＡＭまたはＳＲＡＭに実行モジュールとしての階層構造に展開して実行する。これはオーバーレイ方式として既知の方式である。オーバーレイ方式によってＤＲＡＭまたはＳＲＡＭの容量が削減できる。ＤＲＡＭまたはＳＲＡＭに実行モジュールとしての階層構造に展開する時に、該当するモジュールを解凍する。モジュール１〜モジュール６はすべて圧縮されているので、展開する時にすべて解凍される。ＤＲＡＭに展開するかＳＲＡＭに展開するかは要求されるコストと実行速度によって決定される。ＤＲＡＭを使用する場合はコストを抑えることができるが実行速度が低下する。ＳＲＡＭを使用する場合はコストを上げるが実行速度が向上する。
【００３７】
図１４は本発明の第一の実施例のモジュールの圧縮の動作を示すフローチャートである。
【００３８】
このフローチャートは、通常のソースファイルからビルドされたイメージである圧縮前の実行ファイルを圧縮して、圧縮後の実行ファイルを生成する、モジュールの圧縮の動作を示すものである。
【００３９】
まず、ステップＳ３１０１において、圧縮前の実行ファイルに対して、プログラムの実行ファイルを読み込む。このファイルは、実行ファイルを圧縮する元ファイルとして使用する。
【００４０】
次に、ステップＳ３１０２において、圧縮前の実行ファイルに対して、プログラムのマップファイルを読み込む。このファイルは、実行ファイルを圧縮する情報を得るファイルとして使用する。
【００４１】
そして、ステップＳ３１０３において、圧縮前の実行ファイルに対して、プログラムのマップファイルから得た圧縮する情報に従って、プログラムのモジュールを圧縮する。
【００４２】
さらに、ステップＳ３１０４において、プログラムのモジュールを圧縮した結果情報として、モジュール情報を生成する。モジュール情報には圧縮したモジュールの開始アドレス、レングスを含んでいる。
【００４３】
最後に、ステップＳ３１０５において、モジュール情報を含んだ圧縮後の実行ファイルを生成する。
【００４４】
図１５は本発明の第一の実施例のモジュールのローダー起動の動作を示すフローチャートである。
【００４５】
このフローチャートは、圧縮後の実行ファイルを解凍するために、モジュールのローダーを起動する動作を示すものである。モジュールのローダーは解凍機能を持っている。
【００４６】
まず、ステップＳ３２０１において、実行するモジュールのモジュール番号を指定する。
【００４７】
次に、ステップＳ３２０２において、モジュールのローダーを起動する。この起動によって、ＲＯＭからＤＲＡＭまたはＳＲＡＭへのロードが開始される。
【００４８】
さらに、ステップＳ３２０３において、その他の処理を実行する。ここでは、モジュールのローダーを起動しておいてロードの実行中に、実行するモジュールを起動する前に必要なその他の処理を実行する。これは、ロードの実行を先に起動しておいてから、その他の処理を実行することによって、実行時間を高速化するのに有効である。
【００４９】
そして、ステップＳ３２０４において、先ほど起動したモジュールのローダーによって、実行するモジュールのロードが終了しているかを判定する。実行するモジュールのロードが終了している場合は、ステップＳ３２０６において、実行するモジュールを起動する。実行するモジュールのロードが終了していない場合は、ステップＳ３２０５において、実行するモジュールを起動する前に必要ではないその他の処理を実行する。そして、ステップＳ３２０４に戻り、実行するモジュールのロードが終了しているかの判定を繰り返す。これは、実行するモジュールのロード時間が不確定である場合に、ロードが終了するまでその他の処理を実行することによって、実行時間を最適に利用するのに有効である。
【００５０】
図１６は本発明の第一の実施例のモジュールのローダーの動作を示すフローチャートである。
【００５１】
このフローチャートは、圧縮後の実行ファイルを解凍するために起動されるモジュールのローダーの動作を示すものである。モジュールのローダーは解凍機能を持っている。
【００５２】
まず、ステップＳ３３０１において、圧縮後の実行ファイルに存在するベクタＮのベクタ情報からモジュール情報の保存場所を知る。
【００５３】
次に、ステップＳ３３０２において、指定されたモジュール番号から該当するモジュールのモジュール情報を取り出す。このモジュール情報には圧縮したモジュールの開始アドレス、レングスを含んでいる。
【００５４】
そして、ステップＳ３３０３において、該当するモジュールの開始アドレスを取り出す。
【００５５】
次に、ステップＳ３３０４において、該当するモジュールのレングスを取り出す。
【００５６】
最後に、ステップＳ３３０５において、該当する開始アドレスからレングス分をＤＲＡＭまたはＳＲＡＭに解凍する。
【００５７】
そして、モジュールのロードが終了した時には、ステップＳ３３０６において、モジュールのロード終了のステータスを通知する。この通知は、フラグ処理による通知でもよいし、割り込み処理による通知でもよい。
【００５８】
（第二の実施例）
本発明の第二の実施例を示す記録装置の全体斜視図は、本発明の第一の実施例を示す記録装置の全体斜視図と同じである。
【００５９】
図３は本発明の第二の実施例を示す記録装置の回路ブロック図である。
【００６０】
１１３４はモジュール解凍回路である。その他は本発明の第一の実施例を示す記録装置の回路ブロック図と同じである。
【００６１】
本発明の第二の実施例のモジュール構成図は、本発明の第一の実施例のモジュール構成図と同じである。
【００６２】
本発明の第二の実施例の実行ファイルの圧縮図は、本発明の第一の実施例の実行ファイルの圧縮図と同じである。
【００６３】
本発明の第二の実施例の圧縮後の実行ファイルの構造図は、本発明の第一の実施例の圧縮後の実行ファイルの構造図と同じである。
【００６４】
本発明の第二の実施例のメモリ構成図は、本発明の第一の実施例のメモリ構成図と同じである。
【００６５】
本発明の第二の実施例のモジュールの圧縮の動作を示すフローチャートは、本発明の第一の実施例のモジュールの圧縮の動作を示すフローチャートと同じである。
【００６６】
本発明の第二の実施例のモジュールのローダー起動の動作を示すフローチャートは、本発明の第一の実施例のモジュールのローダー起動の動作を示すフローチャートと同じである。
【００６７】
本発明の第二の実施例のモジュールのローダーの動作を示すフローチャートは、本発明の第一の実施例のモジュールのローダーの動作を示すフローチャートと同じである。
【００６８】
ステップＳ３３０５において、該当する開始アドレスからレングス分をDRAMまたはＳＲＡＭに解凍する処理に際して、モジュール解凍回路のハードウエア回路を具備しており、非常に高速に解凍することが可能である。
【００６９】
また、モジュールのロードが終了した時には、ステップＳ３３０６において、モジュールのロード終了のステータスを通知するが、この通知において、ハードウエア割り込み処理による通知が可能である。
【００７０】
（第三の実施例）
本発明の第三の実施例を示す記録装置の全体斜視図は、本発明の第一の実施例を示す記録装置の全体斜視図と同じである。
【００７１】
本発明の第三の実施例を示す記録装置の回路ブロック図は、本発明の第一の実施例を示す記録装置の回路ブロック図と同じである。
【００７２】
本発明の第三の実施例のモジュール構成図は、本発明の第一の実施例のモジュール構成図と同じである。
【００７３】
図１１は本発明の第三の実施例の実行ファイルの圧縮図である。
【００７４】
圧縮前の実行ファイルは通常のソースファイルからビルドされたイメージそのままであり、一般的なビルダーを使用して作成することが可能である。圧縮後の実行ファイルはモジュール毎に圧縮しておりモジュール情報を持つことを特徴として構成している。ルート・モジュールは圧縮しない。この例では、モジュール１、モジュール３、モジュール４を圧縮しない、モジュール２、モジュール５、モジュール６を圧縮すると想定している。圧縮技術に関しては独自技術でも良いが、一般的な既知技術を使用しても問題ない。この実施例では既知技術を使用している場合を想定している。図にあるようにＲＯＭの容量が削減できる。
【００７５】
図１２は本発明の第三の実施例の圧縮後の実行ファイルの構造図である。
【００７６】
ルート・モジュールの先頭部分にはベクタテーブルがあり、ベクタ１は一般的なリセットベクタでありリセット時に実行を開始する情報が保存されている。ベクタＮはモジュール情報の保存場所を知るための情報が保存されている。モジュール情報にはモジュール情報１〜モジュール情報６の詳細情報が保存されている。モジュール情報の詳細は各モジュールの開始アドレス、レングス、圧縮情報から構成されている。開始アドレスは圧縮後の実行ファイルにおけるモジュールの位置を示すものである。レングスは圧縮後のモジュールのレングスを示すものである。圧縮情報はモジュールが圧縮されているか圧縮されていないかを示すものである。
【００７７】
図１３は本発明の第三の実施例のメモリ構成図である。
【００７８】
本発明では、ＲＯＭには圧縮後の実行ファイルが保存されている。モジュール毎に圧縮してモジュール情報を付加して構成している。ＲＯＭの容量が削減できる。実行時はＤＲＡＭまたはＳＲＡＭに実行モジュールとしての階層構造に展開して実行する。これはオーバーレイ方式として既知の方式である。オーバーレイ方式によってＤＲＡＭまたはＳＲＡＭの容量が削減できる。ＤＲＡＭまたはＳＲＡＭに実行モジュールとしての階層構造に展開する時に、該当するモジュールが圧縮されているか否かを判定して、圧縮されている場合は解凍する。圧縮されていない場合は単純にそのままのイメージをコピーする。この例では、モジュール１、モジュール３、モジュール４は圧縮されていないので、展開する時にコピーされる。モジュール２、モジュール５、モジュール６は圧縮されているので、展開する時に解凍される。ＤＲＡＭに展開するかＳＲＡＭに展開するかは要求されるコストと実行速度によって決定される。ＤＲＡＭを使用する場合はコストを抑えることができるが実行速度が低下する。ＳＲＡＭを使用する場合はコストを上げるが実行速度が向上する。
【００７９】
図１７は本発明の第三の実施例のモジュールの圧縮の動作を示すフローチャートである。
【００８０】
このフローチャートは、通常のソースファイルからビルドされたイメージである圧縮前の実行ファイルを圧縮して、圧縮後の実行ファイルを生成する、モジュールの圧縮の動作を示すものである。圧縮するモジュールを選択することが可能である。
【００８１】
まず、ステップＳ３４０１において、圧縮前の実行ファイルに対して、プログラムの実行ファイルを読み込む。このファイルは、実行ファイルを圧縮する元ファイルとして使用する。
【００８２】
次に、ステップＳ３４０２において、圧縮前の実行ファイルに対して、プログラムのマップファイルを読み込む。このファイルは、実行ファイルを圧縮する情報を得るファイルとして使用する。
【００８３】
次に、ステップＳ３４０３において、マップファイルから得たプログラムのモジュール情報に従って、モジュール一覧を表示する。
【００８４】
それから、ステップＳ３４０４において、そのモジュール一覧を元に、圧縮するモジュールを選択する。このステップは非常に大事な処理であり、プログラムの実行モジュールとしての階層構造を構成するに当たって、実行速度を意識したモジュール構造を設計することである。その設計ができていないと、ここで圧縮するモジュールを選択することが意味を持たなくなってしまう。
【００８５】
以下の事に留意して設計することが重要である。
【００８６】
（１）実行するモジュールのロード時間
（２）モジュールのローダーを起動しておいてロードの実行中に、実行するモジュールを起動する前に必要なその他の処理を実行するモジュール
（３）実行するモジュールのロードが終了していない場合に、実行するモジュールを起動する前に必要ではないその他の処理を実行するモジュール
これらをバランスよく設計して、モジュールの実行タイミングに合わせてモジュールの解凍を実施することが重要である。
【００８７】
そして、ステップＳ３４０５において、圧縮前の実行ファイルに対して、プログラムのマップファイルから得た圧縮する情報に従って、選択されたモジュールのみを圧縮する。
【００８８】
さらに、ステップＳ３４０６において、プログラムのモジュールを圧縮した結果情報として、モジュール情報を生成する。モジュール情報には圧縮したモジュールの開始アドレス、レングス、圧縮情報を含んでいる。
【００８９】
最後に、ステップＳ３４０７において、モジュール情報を含んだ圧縮後の実行ファイルを生成する。
【００９０】
本発明の第三の実施例のモジュールのローダー起動の動作を示すフローチャートは、本発明の第一の実施例のモジュールのローダー起動の動作を示すフローチャートと同じである。
【００９１】
図１８は本発明の第三の実施例のモジュールのローダーの動作を示すフローチャートである。
【００９２】
このフローチャートは、圧縮後の実行ファイルを解凍するために起動されるモジュールのローダーの動作を示すものである。モジュールのローダーは解凍機能を持っている。さらに、該当するモジュールが圧縮されている否かを判定して、解凍するかコピーするかを決定する機能を有している。
【００９３】
まず、ステップＳ３５０１において、圧縮後の実行ファイルに存在するベクタＮのベクタ情報からモジュール情報の保存場所を知る。
【００９４】
次に、ステップＳ３５０２において、指定されたモジュール番号から該当するモジュールのモジュール情報を取り出す。このモジュール情報には圧縮したモジュールの開始アドレス、レングス、圧縮情報を含んでいる。
【００９５】
そして、ステップＳ３５０３において、該当するモジュールの開始アドレスを取り出す。
【００９６】
次に、ステップＳ３５０４において、該当するモジュールのレングスを取り出す。
【００９７】
次に、ステップＳ３５０５において、該当するモジュールの圧縮情報を取り出す。
【００９８】
その後、ステップＳ３５０６において、該当するモジュールの圧縮情報によって、圧縮されている否かを判定する。該当するモジュールが圧縮されている場合は、ステップＳ３５０７に進み、該当する開始アドレスからレングス分をＤＲＡＭまたはＳＲＡＭに解凍する。該当するモジュールが圧縮されていない場合は、ステップＳ３５０８に進み、該当する開始アドレスからレングス分をＤＲＡＭまたはＳＲＡＭにコピーする。
【００９９】
そして、モジュールのロードが終了した時には、ステップＳ３５０９において、モジュールのロード終了のステータスを通知する。この通知は、フラグ処理による通知でもよいし、割り込み処理による通知でもよい。
【０１００】
（第四の実施例）
本発明の第四の実施例を示す記録装置の全体斜視図は、本発明の第三の実施例を示す記録装置の全体斜視図と同じである。
【０１０１】
本発明の第四の実施例を示す記録装置の回路ブロック図は、本発明の第二の実施例を示す記録装置の回路ブロック図と同じである。
【０１０２】
本発明の第四の実施例のモジュール構成図は、本発明の第三の実施例のモジュール構成図と同じである。
【０１０３】
本発明の第四の実施例の実行ファイルの圧縮図は、本発明の第三の実施例の実行ファイルの圧縮図と同じである。
【０１０４】
本発明の第四の実施例の圧縮後の実行ファイルの構造図は、本発明の第三の実施例の圧縮後の実行ファイルの構造図と同じである。
【０１０５】
本発明の第四の実施例のメモリ構成図は、本発明の第三の実施例のメモリ構成図と同じである。
【０１０６】
本発明の第四の実施例のモジュールの圧縮の動作を示すフローチャートは、本発明の第三の実施例のモジュールの圧縮の動作を示すフローチャートと同じである。
【０１０７】
本発明の第四の実施例のモジュールのローダー起動の動作を示すフローチャートは、本発明の第三の実施例のモジュールのローダー起動の動作を示すフローチャートと同じである。
【０１０８】
本発明の第四の実施例のモジュールのローダーの動作を示すフローチャートは、本発明の第三の実施例のモジュールのローダーの動作を示すフローチャートと同じである。
【０１０９】
ステップＳ３３０５において、該当する開始アドレスからレングス分をＤＲＡＭまたはＳＲＡＭに解凍する処理に際して、モジュール解凍回路のハードウエア回路を具備しており、非常に高速に解凍することが可能である。
【０１１０】
また、モジュールのロードが終了した時には、ステップＳ３３０６において、モジュールのロード終了のステータスを通知するが、この通知において、ハードウエア割り込み処理による通知が可能である。
【図面の簡単な説明】
【０１１１】
【図１】本発明の第一の実施例を示す記録装置の全体斜視図
【図２】本発明の第一の実施例を示す記録装置の回路ブロック図
【図３】本発明の第二の実施例を示す記録装置の回路ブロック図
【図４】従来技術のモジュール構成図
【図５】従来技術のメモリ構成図１
【図６】従来技術のメモリ構成図２
【図７】本発明の第一の実施例のモジュール構成図
【図８】本発明の第一の実施例の実行ファイルの圧縮図
【図９】本発明の第一の実施例の圧縮後の実行ファイルの構造図
【図１０】本発明の第一の実施例のメモリ構成図
【図１１】本発明の第二の実施例の実行ファイルの圧縮図
【図１２】本発明の第二の実施例の圧縮後の実行ファイルの構造図
【図１３】本発明の第二の実施例のメモリ構成図
【図１４】本発明の第一の実施例のモジュールの圧縮の動作を示すフローチャート
【図１５】本発明の第一の実施例のモジュールのローダー起動の動作を示すフローチャート
【図１６】本発明の第一の実施例のモジュールのローダーの動作を示すフローチャート
【図１７】本発明の第二の実施例のモジュールの圧縮の動作を示すフローチャート
【図１８】本発明の第二の実施例のモジュールのローダーの動作を示すフローチャート
【符号の説明】
【０１１２】
１０１  キャリッジ
１０２  記録ヘッド
１０３  カートリッジガイド
１０４  ガイド軸
１０５  ガイド軸
１０６  記録媒体
１０７  給紙ローラ
１０８  紙送りローラ
１０９  紙押さえ板
１１０  イエローインクタンク
１１１  マゼンタインクタンク
１１２  シアンインクタンク
１１３  ブラックインクタンク
１１４  イエローインク残量検知センサ
１１５  マゼンタインク残量検知センサ
１１６  シアンインク残量検知センサ
１１７  ブラックインク残量検知センサ
１１０１  ホスト（ＰＣ）
１１０２  インターフェース
１１１１  ＣＰＵ
１１１２  ＲＯＭ
１１１３  ＤＲＡＭ
１１１４  ＳＲＡＭ
１１１５  ＥＥＰＲＯＭ
１１２１  コントローラ（Ｇ．Ａ．）
１１２２  ＣＲモータドライバ
１１２３  ＣＲモータ
１１２４  ＬＦモータドライバ
１１２５  ＬＦモータ
１１２６  イエローインク残量検知センサ
１１２７  イエローインクタンク
１１２８  マゼンタインク残量検知センサ
１１２９  マゼンタインクタンク
１１３０  シアンインク残量検知センサ
１１３１  シアンインクタンク
１１３２  ブラックインク残量検知センサ
１１３３  ブラックインクタンク
１１４１  ヘッドフレキ
１１４２  キャリッジ端子パッド
１１４３  記録ヘッド
１１４４  記録ヘッドの駆動部
１１４５  記録ヘッドの発熱素子
１１０１  ホスト（ＰＣ）
１１０２  インターフェース
１１１１  ＣＰＵ
１１１２  ＲＯＭ
１１１３  ＤＲＡＭ
１１１４  ＳＲＡＭ
１１１５  ＥＥＰＲＯＭ
１１２１  コントローラ（Ｇ．Ａ．）
１１２２  ＣＲモータドライバ
１１２３  ＣＲモータ
１１２４  ＬＦモータドライバ
１１２５  ＬＦモータ
１１２６  イエローインク残量検知センサ
１１２７  イエローインクタンク
１１２８  マゼンタインク残量検知センサ
１１２９  マゼンタインクタンク
１１３０  シアンインク残量検知センサ
１１３１  シアンインクタンク
１１３２  ブラックインク残量検知センサ
１１３３  ブラックインクタンク
１１３４  モジュール解凍回路
１１４１  ヘッドフレキ
１１４２  キャリッジ端子パッド
１１４３  記録ヘッド
１１４４  記録ヘッドの駆動部
１１４５  記録ヘッドの発熱素子
【図１】
2006163773.tif 000003
【図２】
2006163773.tif 000004
【図３】
2006163773.tif 000005
【図４】
2006163773.tif 000006
【図５】
2006163773.tif 000007
【図６】
2006163773.tif 000008
【図７】
2006163773.tif 000009
【図８】
2006163773.tif 000010
【図９】
2006163773.tif 000011
【図１０】
2006163773.tif 000012
【図１１】
2006163773.tif 000013
【図１２】
2006163773.tif 000014
【図１３】
2006163773.tif 000015
【図１４】
2006163773.tif 000016
【図１５】
2006163773.tif 000017
【図１６】
2006163773.tif 000018
【図１７】
2006163773.tif 000019
【図１８】
2006163773.tif 000020