(57)【要約】【課題】圧縮されたプログラムを保存する記憶部に依存しない汎用性のある解凍装置を実現する。【解決手段】プロセッサ１と、圧縮されたプログラムを保存する記憶部２とを接続するバス１２，１３中に、解凍装置１５が設けられる。記憶部２に、プログラムの圧縮に関する圧縮情報が保存される。解凍装置１５は、記憶部２から圧縮情報を収集する。解凍装置１５は、圧縮されたプログラムのアドレス情報に基づいて、周辺バス１３を流れるアドレス信号を検出し、解凍が必要なプログラムのデータが周辺バス１３を流れているかを判断する。解凍装置１５は、圧縮されたプログラムであると判断すると、データを解凍して、解凍したデータをプロセッサバス１２を通じてプロセッサ１に送る。【選択図】図１
2010267191.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行するプロセッサと圧縮されたプログラムを含むデータを保存する記憶部とがバスを介して接続され、バス中に、圧縮されたプログラムを解凍する解凍装置が設けられ、解凍装置は、バスを流れるデータに応じて解凍するか否かを判断し、プロセッサが記憶部から圧縮されたプログラムを読み出したとき、解凍装置は、解凍したプログラムをプロセッサに提供することを特徴とするコンピュータシステム。
【請求項２】
記憶部に、プログラムの圧縮に関する圧縮情報が保存され、解凍装置は、記憶部から圧縮情報を収集し、圧縮情報に基づいてプログラムを解凍することを特徴とする請求項１記載のコンピュータシステム。
【請求項３】
解凍装置は、圧縮されたプログラムに関するアドレス情報を記憶し、プロセッサが記憶部にアクセスしたとき、解凍装置は、バスを流れるアドレス信号を読み取り、アドレス信号から得られたアドレスが前記アドレス情報に含まれるかを検出し、アドレスが含まれているとき、バスに流れるデータを解凍することを特徴とする請求項１または２記載のコンピュータシステム。
【請求項４】
解凍装置は、アドレス信号から得られたアドレスがアドレス情報に含まれていないことを検出したとき、バスに流れるデータを解凍することなく通すことを特徴とする請求項３記載のコンピュータシステム。
【請求項５】
解凍装置は、プロセッサの起動時に、記憶しているアドレス情報に基づいて記憶部にアクセスし、圧縮情報を取得することを特徴とする請求項３または４記載のコンピュータシステム。
【請求項６】
解凍装置は、バスを流れるアドレス信号を検出するアドレス検出部と、圧縮されたプログラムを解凍する解凍部と、バスを流れるデータを解凍部に送るか、そのまま通過させるかを切り替えるバススイッチとを備えたことを特徴とする請求項１〜５のいずれかに記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムを実行するプロセッサによって制御されるコンピュータシステムに関する。
【背景技術】
【０００２】
通常、デジタル複合機のように、プログラムを実行するプロセッサによって制御されるコンピュータシステムにおいて、プログラムはＲＯＭ等の記憶部に保存され、起動時に、プログラムが記憶部からプロセッサに供給される。プログラムのロードに要する時間は、システムの起動時間に大きく影響する。
【０００３】
近年、システムの高機能化によって、その制御プログラム量は、大きくなる傾向がある。そのため、プログラムは、圧縮されて、記憶部に保存される。起動時に、プロセッサが、記憶部から圧縮されたプログラムをリードし、プログラムの解凍を行って、主記憶部にプログラムコードをライトする。上記作業が終了した後、システムを制御するメインプログラムの起動が行われる。
【０００４】
この起動時間を短縮するため、ハードウェアにより、高速にプログラムの解凍を行う手段が講じられる。例えば、特許文献１では、プロセッサに接続される記憶部に、データを圧縮／解凍するデータ圧縮部が設けられ、記憶部においてデータの解凍を行うことが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２４２４６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
記憶部において、プログラムの解凍を行う場合、記憶部が複数あると、記憶部毎にデータ圧縮部を設けなければならない。専用の記憶部が必要となり、汎用性に欠け、コストアップになる。
【０００７】
本発明は、上記に鑑み、圧縮されたプログラムを保存する記憶部に依存しない汎用性のある解凍部を備えたコンピュータシステムの提供を目的とする。
【課題を解決するための手段】
【０００８】
本発明は、プログラムを実行するプロセッサと圧縮されたプログラムを保存する記憶部とがバスを介して接続され、バス中に、圧縮されたプログラムを解凍する解凍装置が設けられ、解凍装置は、バスを流れるデータに応じて解凍するか否かを判断し、プロセッサが記憶部から圧縮されたプログラムを読み出したとき、解凍装置は、解凍したプログラムをプロセッサに提供するものである。
【０００９】
圧縮されたプログラムがバスを通じて記憶部からプロセッサに送られる途中で、解凍装置は圧縮されたプログラムを解凍する。そして、解凍されたプログラムがプロセッサに提供される。圧縮されていないデータがバスを流れるとき、解凍装置は、データを解凍しない。
【００１０】
これにより、プログラムを保存する複数の記憶部がバスに接続され、プロセッサがいずれかの記憶部からプログラムを読み出すとき、１つの解凍装置によってプログラムを解凍することができ、この解凍装置を共用できる。
【００１１】
記憶部に、プログラムの圧縮に関する圧縮情報が保存され、解凍装置は、記憶部から圧縮情報を収集し、圧縮情報に基づいてプログラムを解凍する。プログラムを解凍するとき、解凍装置は、事前に取得しておいた圧縮情報を参照して、圧縮形式に応じた最適な手段で解凍する。これによって、バスを流れてくるプログラムのデータを効率的に解凍処理できる。
【００１２】
解凍装置は、圧縮されたプログラムに関するアドレス情報を記憶し、プロセッサが記憶部にアクセスしたとき、解凍装置は、バスを流れるアドレス信号を読み取り、アドレス信号から得られたアドレスが前記アドレス情報に含まれるかを検出し、アドレスが含まれているとき、バスに流れるデータを解凍する。また、解凍装置は、アドレス信号から得られたアドレスがアドレス情報に含まれていないことを検出したとき、バスに流れるデータを解凍することなく通す。
【００１３】
バスを流れるアドレス信号は、バス中に配置された解凍装置を通る。そのため、解凍装置は、アドレス情報にしたがって、バスを流れるアドレス信号を監視できる。解凍装置は、検出されたアドレスがアドレス情報に含まれているとき、圧縮されたプログラムであると判断し、検出されたアドレスがアドレス情報に含まれていないとき、圧縮されていないデータであると判断する。このように、解凍装置は、アドレス信号を監視することにより、バスを流れるデータに応じて解凍するか、そのまま通すかが判断する。
【００１４】
解凍装置は、プロセッサの起動時に、記憶しているアドレス情報に基づいて記憶部にアクセスし、圧縮情報を取得する。プロセッサは、起動してから記憶部にアクセスして、プログラムを読み出す。解凍装置は、プログラムが読みだされる前に、圧縮情報を取得でき、プログラムの解凍に備える。
【００１５】
解凍装置は、バスを流れるアドレス信号を検出するアドレス検出部と、圧縮されたプログラムを解凍する解凍部と、バスを流れるデータを解凍部に送るか、そのまま通過させるかを切り替えるバススイッチとを備えたものである。
【００１６】
アドレス検出器は、アドレス情報に基づいて、検出したアドレス信号からバスを流れるデータが圧縮されたプログラムか否かを判断する。解凍部は、圧縮情報にしたがってプログラムを解凍する。バススイッチは、アドレス検出器の判断結果に応じてデータの通信路を切り替える。すなわち、バススイッチは、バスを流れるデータが圧縮されたプログラムである場合、データが解凍部を通る通信路を選択し、バスを流れるデータが圧縮されたプログラムでない場合、データが解凍部を通らない通信路を選択する。
【発明の効果】
【００１７】
本発明によると、解凍装置が独立してバス中に配置されるので、記憶部に依存することなくプログラムを解凍できる。しかも、プログラムはバスを流れる途中で解凍されるため、解凍を効率よく行え、プログラムのロードに要する時間を短縮でき、システムの起動が速くなる。
【図面の簡単な説明】
【００１８】
【図１】本発明のコンピュータシステムの概略構成図
【図２】解凍装置を示すブロック図
【発明を実施するための形態】
【００１９】
本実施形態のコンピュータシステムを図１に示す。コンピュータシステムは、プログラムを実行するプロセッサ１と、圧縮されたプログラムを保存する記憶部２と、その他の周辺デバイス３と、ブートプログラムＲＯＭ４と、これらを接続するバスとを備えている。
【００２０】
記憶部２は、フラッシュメモリ等からなる不揮発性プログラムメモリとされ、システムを動作させるための複数のプログラムおよびプログラムの実行に必要な設定値等のデータを保存する。複数のプログラムのうち、メインプログラムのようにデータ量が大きいプログラムは、所定の圧縮形式により圧縮されて保存される。ブートプログラムＲＯＭ４は、初期化プログラムを保存する。なお、プログラムを保存する記憶部２は複数存在してもよい。各記憶部２に、圧縮されたプログラムが保存される。
【００２１】
プロセッサ１は、ＣＰＵ１０および主記憶装置１１を有する。ＣＰＵ１０は、記憶部２あるいはブートプログラムＲＯＭ４に保存されているプログラムを読み出し、ＲＡＭからなる主記憶装置１１に格納する。
【００２２】
周辺デバイス３は、ＨＤＤ、ＳＳＤ等の外部記憶装置を制御するデバイス、ネットワークを通じた通信を行う通信デバイス等である。なお、本コンピュータシステムを搭載する機器に応じて周辺デバイス３は異なる。例えば、デジタル複合機であれば、周辺デバイス３は、スキャナ、印刷装置等も含まれる。
【００２３】
バスには、プロセッサバス１２と周辺バス１３とがある。プロセッサバス１２は、プロセッサ１内部において、ＣＰＵ１０と、主記憶装置１１やＩ／Ｏインターフェース等を接続する。周辺バス１３は、プロセッサ１外部において記憶部２や周辺デバイス３を接続する。プロセッサバス１２と周辺バス１３とは、伝送する信号の転送速度やビット幅が異なる。このような転送速度やビット幅が異なるバス間の信号の変換を行うバス変換器１４が設けられる。
【００２４】
そして、バス中に、圧縮されたプログラムを解凍する解凍装置１５が設けられている。解凍装置１５は、プロセッサ１と記憶部２との間に介在する。なお、解凍装置１５は、解凍器１６を有するとともに、バス変換器１４を含んでおり、１つのハードウェアとして構成される。バス変換器１４は、プロセッサバス１２に接続されるとともに、解凍器１６を介して周辺バス１３に接続される。
【００２５】
解凍器１６は、図２に示すように、バスを流れるアドレス信号を検出するアドレス検出部２０と、圧縮されたプログラムを解凍する解凍部２１と、バスを流れるデータを解凍部２１に通すか、そのまま通過させるかを切り替えるバススイッチ２２とを備えている。解凍部２１とアドレス検出器２０との間に、バススイッチ２２が接続される。
【００２６】
アドレス検出器２０に、周辺バス１３のアドレス信号線２３が接続される。解凍器１６内におけるデータ信号線２４は、アドレス検出器２０からバススイッチ２２に接続され、バススイッチ２２から解凍部２１を経て周辺バス１３のデータ信号線２７に接続される第１の通信路２５と、バススイッチ２２から周辺バス１３のデータ信号線２７に接続される第２の通信路２６とに分岐される。
【００２７】
アドレス検出器２０は、圧縮されたプログラムに関するアドレス情報に基づいて、周辺バス１３を流れるデータを解凍するか否かを判断する。すなわち、解凍器１６に接続された不揮発性メモリ２８に、圧縮されたプログラムに関するアドレス情報が記憶されている。アドレス検出器２０は、電源供給時に、記憶部２にアクセスして、解凍が必要なプログラムのアドレス情報を読み取り、このアドレス情報を不揮発性メモリ２８に書き込む。圧縮されたプログラムが複数あるとき、プログラム毎にアドレス情報が記憶される。このアドレス情報として、記憶部２において、圧縮されたプログラムに割り当てられた先頭アドレスから末尾アドレスまでのアドレスレンジとされる。
【００２８】
アドレス検出器２０は、周辺バスを流れるアドレス信号を読み取り、アドレス信号から得られたアドレスが不揮発性メモリ２８に記憶されているアドレスレンジに一致するかを検出する。一致するとき、解凍するプログラムのデータであると判断し、一致しないとき、解凍の必要のないデータであると判断する。この判断結果に応じて、アドレス検出器２０は、バススイッチ２２の動作を制御する。
【００２９】
バススイッチ２２は、第１の通信路２５あるいは第２の通信路２６を選択して、データの流れる通信路を切り替える。バススイッチ２２は、解凍するプログラムのデータがバスを流れていることが検出されたとき、第１の通信路２５を選択する。データは解凍部２１を通る。解凍する必要のないデータがバスを流れていることが検出されたとき、第２の通信路２６を選択する。データは解凍部２１を通らずに解凍器１６を通過する。
【００３０】
解凍部２１は、圧縮されたプログラムに関する圧縮情報に基づいてプログラムを解凍する。圧縮情報は、ランレングス符号化、可変長符号化といった圧縮形式および圧縮単位を含む。圧縮情報は、記憶部２の特定のアドレスに保存されている。特定のアドレスは、例えばプログラムの先頭アドレスとされる。解凍部２１は、電源供給時に、アドレス情報に基づいて記憶部２にアクセスして、圧縮情報を収集する。圧縮されたプログラムが複数あるとき、解凍部２１は、それぞれの記憶部２にアクセスして、圧縮情報を収集する。そして、解凍部２１は、不揮発性メモリ２８にプログラム毎の圧縮情報を書き込む。プログラムの解凍時には、解凍部２１は、不揮発性メモリ２８に保存されている圧縮情報を読み出し、プログラムの圧縮形式および圧縮単位にしたがってプログラムを解凍して、プロセッサ１に提供する。
【００３１】
上記のプログラムの解凍は、プロセッサ１が起動する際に行われる。本システムに電源が供給されたとき、あるいはプロセッサ１が再起動されたとき、ＣＰＵ１０は、ブートプログラムＲＯＭ４にアクセスして、初期プログラムを読み出し、初期プログラムを実行する。周辺バス１３に接続されている周辺デバイス３が初期化される。
【００３２】
ＣＰＵ１０は、記憶部２からメインプログラムを読み出し、主記憶装置１１に格納する。このとき、メインプログラムが圧縮されているとき、解凍装置１５がこのプログラムを解凍する。
【００３３】
アドレス検出器２０は、電源が供給されると、不揮発性メモリ２８からアドレス情報を読み出し、周辺バス１３を流れるアドレス信号を監視する。ＣＰＵ１０は、記憶部２のメインプログラムのアドレスを指定したアドレス信号をバスに送出する。アドレス検出器２０は、アドレス信号からメインプログラムに対するアドレス情報に含まれるアドレスを検出すると、第１の通信路２５を選択するよう、バススイッチ２２を動作させる。バススイッチ２２は、データが第１の通信路２５を流れるように通信路を切り替える。
【００３４】
解凍部２１は、不揮発性メモリ２８から圧縮情報を読み出し、読み出されたメインプログラムに対する圧縮情報を参照する。そして、解凍部２１は、記憶部２から周辺バス１３を送られてきたプログラムのデータを圧縮形式に応じて圧縮単位毎に解凍する。解凍されたプログラムのデータは、バススイッチ２２からアドレス検出器２０を通って、バス変換器１４に送られる。バス変換器１４は、バス間の変換を行って、データをプロセッサバス１２に送出する。ＣＰＵ１０は、受信した圧縮単位毎のデータを主記憶装置１１に書き込む。解凍されたプログラムが主記憶装置１１に格納されると、ＣＰＵ１０は、メインプログラムを起動して、システムの動作を制御する。
【００３５】
なお、アドレス検出器２０は、アドレス信号からメインプログラムに対するアドレス情報に含まれるアドレスを検出しないとき、解凍する必要のないデータであると判断し、第２の通信路２６を選択するよう、バススイッチ２２を動作させる。バススイッチ２２は、データが第２の通信路２６を流れるように通信路を切り替える。データは、解凍部２１をスルーして第２の通信路２６、データ信号線２４を流れ、バス変換器１４を通じてＣＰＵ１０に送られる。
【００３６】
このように、記憶部２からプロセッサ１に送られる途中で、専用のハードウェアによりプログラムを高速に解凍することができる。したがって、解凍のためにデータを一時的に保存する必要もなく、効率よく解凍を行え、システムが動作するまでの時間を短縮できる。また、バス中に配置された１つの解凍装置１５により、各種のプログラムの解凍に対応することができ、従来のように記憶部２毎に解凍装置１５を設ける必要がなく、汎用性の高い解凍装置１５を実現できる。しかも、プログラムの圧縮形式および圧縮単位が任意に選択されても、解凍装置１５が圧縮されたプログラムの圧縮情報を取得することにより、どのようなプログラムの解凍にも迅速に対応することができ、起動時間の短縮に貢献できる。
【００３７】
ここで、プログラムが更新された場合、アドレス情報が変わる。解凍器１６は、プログラムが更新されたとき、プロセッサ１からの指示により、最新のアドレス情報を記憶部２から取得して、不揮発性メモリ２８に記憶されているアドレス情報を書き換える。また、新しいプログラムがインストールされたときにも、解凍装置１５は、新しいプログラムのアドレス情報および圧縮情報を記憶部２から取得して、不揮発性メモリ２８に記憶する。このように、解凍装置１５は、プログラムのインストールおよびアンインストールに応じて、常に最新のアドレス情報および圧縮情報を不揮発性メモリ２８に記憶する。これによって、プログラムの解凍に確実に対応することができ、システムの動作の効率アップを図れる。
【００３８】
また、圧縮情報が管理されることにより、プログラムの圧縮の有無、圧縮形式、圧縮単位に依存することなく、プログラムを作成できる。この圧縮情報を利用してプログラムを解凍することにより、プログラム毎に最適な方法により解凍を行うことができ、解凍に要する時間を短縮できる。
【００３９】
なお、本発明は、上記実施形態に限定されるものではなく、本発明の範囲内で上記実施形態に多くの修正および変更を加え得ることは勿論である。記憶部は、ＲＯＭ、ＨＤＤ、ＳＳＤのように周辺バスに接続されているものであればよい。
【符号の説明】
【００４０】
１    プロセッサ
２    記憶部
３    周辺デバイス
１０    ＣＰＵ
１１    主記憶装置
１２    プロセッサバス
１３    周辺バス
１５    解凍装置
１６    解凍器
２０    アドレス検出器
２１    解凍部
２２    バススイッチ
２３    アドレス信号線
２４    データ信号線
２５    第１の通信路
２６    第２の通信路
２７    データ信号線
【図１】
2010267191.tif 000003
【図２】
2010267191.tif 000004