(57)【要約】【課題】ＲＯＭの使用効率が高く、起動時間を短縮できる装置を提供する。【解決手段】ＣＰＵ１３に制御されるプリンタ１であって、圧縮されたプログラム１８を格納したＲＯＭ１１と、ＣＰＵ１３が動作するように伸張されたプログラム１９が格納されるＲＡＭ１２と、起動信号により、ＣＰＵ１３の起動前に、ＲＯＭ１１のプログラム１８を伸張したプログラム１９をＲＡＭ１２に格納し、ＣＰＵ１３を起動する信号を出力するハードウェアモジュールを収納したコントローラユニット１０とを有するプリンタ１を提供する。ハードウェアモジュールにより初期ロードを実行できるので、起動時間を短縮でき、ＲＯＭ１１にブートプログラムを格納しなくて良いので使用効率を向上できる。【選択図】図１
2007148865.tif 000002
【特許請求の範囲】
【請求項１】
圧縮されたプログラムを格納するための第１のメモリと、前記第１のメモリと異なる第２のメモリと、前記第２のメモリに格納されたプログラムにより動作するプロセッサとを有し、前記プロセッサにより制御される装置の制御方法であって、
前記プロセッサと異なるハードウェアモジュールが、第１の信号により、前記プロセッサの起動前に、前記第１のメモリの前記圧縮されたプログラムを伸張したプログラムを前記第２のメモリに格納し、
前記ハードウェアモジュールが、前記プロセッサを起動する第２の信号を出力することを含む、制御方法。
【請求項２】
請求項１において、前記ハードウェアモジュールが、前記圧縮されたプログラムを伸張することを含む、制御方法。
【請求項３】
プロセッサに制御される装置であって、
圧縮されたプログラムを格納するための第１のメモリと、
前記第１のメモリと異なる第２のメモリであって、当該第２のメモリに格納されたプログラムにより前記プロセッサが動作する第２のメモリと、
前記プロセッサと異なるハードウェアモジュールであって、第１の信号により、前記プロセッサの起動前に、前記第１のメモリの前記圧縮されたプログラムを伸張したプログラムを前記第２のメモリに格納し、前記プロセッサを起動する第２の信号を出力するハードウェアモジュールとを有する装置。
【請求項４】
請求項３において、前記ハードウェアモジュールは、前記圧縮されたプログラムを伸張する回路を備えている、装置。
【請求項５】
請求項３において、前記第１のメモリと、前記第２のメモリと、前記プロセッサとに対してそれぞれアクセスするためのインターフェイスを備えたコントローラユニットを有し、前記ハードウェアモジュールは、前記コントローラユニットに含まれている、装置。
【請求項６】
請求項３において、前記第１のメモリに対してアクセスするための第１のインターフェイスと、前記第２のメモリに対してアクセスするための第２のインターフェイスと、前記プロセッサに対してアクセスするためのプロセッサインターフェイスとを備えたコントローラユニットを有し、前記ハードウェアモジュールは、前記コントローラユニットに含まれている、装置。
【請求項７】
請求項３において、前記第１のメモリに対してアクセスするための第１のインターフェイスと、前記第２のメモリに対してアクセスするための第２のインターフェイスとを備えたコントローラユニットを有し、前記ハードウェアモジュールおよび前記プロセッサは、前記コントローラユニットに含まれている、装置。
【請求項８】
請求項５ないし７のいずれかにおいて、前記コントローラユニットは、さらに、複数の入出力インターフェイスと、それら複数の入出力インターフェイスを接続するためのバスと、そのバスを制御するためのバス制御モジュールとを備えており、前記ハードウェアモジュールは、前記バス制御モジュールに含まれている、装置。
【請求項９】
請求項８において、前記複数の入出力インターフェイスは、ホスト装置と通信するためのインターフェイスと、プリンタエンジンインターフェイスとを含む、装置。
【請求項１０】
圧縮されたプログラムを格納するための第１のメモリと、前記第１のメモリと異なる第２のメモリと、前記第２のメモリに格納されたプログラムにより動作するプロセッサとに対しそれぞれアクセスするためのインターフェイスと、
第１の信号により、前記プロセッサの起動前に、前記第１のメモリの前記圧縮されたプログラムを伸張したプログラムを前記第２のメモリに格納し、前記プロセッサを起動する第２の信号を出力するハードウェアモジュールとを有するコントローラユニット。
【請求項１１】
請求項１０において、前記インターフェイスは、前記第１のメモリに対してアクセスするための第１のインターフェイスと、前記第２のメモリに対してアクセスするための第２のインターフェイスと、前記プロセッサに対してアクセスするためのプロセッサインターフェイスとを含んでいる、コントローラユニット。
【請求項１２】
圧縮されたプログラムを格納するための第１のメモリに対してアクセスするための第１のインターフェイスと、
前記第１のメモリと異なる第２のメモリに対してアクセスするための第２のインターフェイスと、
前記第２のメモリに格納されたプログラムにより動作するプロセッサと、
前記プロセッサと異なるハードウェアモジュールであって、第１の信号により、前記第１のメモリの前記圧縮されたプログラムを伸張したプログラムを前記第２のメモリに格納し、前記プロセッサを起動する第２の信号を出力するハードウェアモジュールとを有するコントローラユニット。
【請求項１３】
請求項１０ないし１２のいずれかにおいて、さらに、複数の入出力インターフェイスと、それら複数の入出力インターフェイスを接続するバスと、そのバスを制御するバス制御モジュールとを備えており、前記ハードウェアモジュールは、前記バス制御モジュールに含まれている、コントローラユニット。
【請求項１４】
請求項１３において、前記複数の入出力インターフェイスは、ホスト装置との通信用のインターフェイスと、プリンタエンジンインターフェイスとを含む、コントローラユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータおよびその周辺装置などのプロセッサにより制御される装置に関するものである。
【背景技術】
【０００２】
特許文献１には、フラッシュメモリなどのＲＯＭにファームウェアを記憶しておき、ブート時にこれをＲＡＭ上に展開して動作するファームウェア組込機構およびそのブートプログラムについて記載されている。ＲＯＭにはロードプログラムであるブートローダが記憶されており、ブートローダは、装置の電源オンなどのブート時に最初に実行される。
【特許文献１】特開２００２−３５８２０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ハンドヘルドなどの小型のコンピュータにおいて、また、プリンタなどの周辺装置において、機能が多様化するに連れてオペレーティングシステム（ＯＳ）などのプログラム（ファームウェア）のデータ量は多くなっている。一方、コストセーブのためにメモリの容量を増大することは困難であり、さらに、装置の起動に要する時間は短縮することが要求されている。
【０００４】
プログラムは圧縮してＲＯＭに収納することによりメモリの使用効率を向上できる。しかしながら、プログラムをＲＡＭにロードするときに伸張する必要があるため、起動に要する時間が延びてしまう。さらに、起動時にプログラムをＲＡＭにロードするブート用のプログラムはＲＯＭに格納され、それによりＣＰＵが動作するので、ＲＡＭが展開されている場合よりもＣＰＵの動作速度は遅く、ブートに要する時間を短縮することが難しい。
【課題を解決するための手段】
【０００５】
本発明の一態様は、圧縮されたプログラムを格納するための第１のメモリと、第１のメモリと異なる第２のメモリと、第２のメモリに格納されたプログラムにより動作するプロセッサとを有し、プロセッサにより制御される装置の制御方法であって、以下の工程を有する。
１．プロセッサと異なるハードウェアモジュールが、第１の信号により、プロセッサの起動前に、第１のメモリの圧縮されたプログラムを伸張したプログラムを第２のメモリに格納する。
２．ハードウェアモジュールが、プロセッサを起動する第２の信号を出力する。
【０００６】
この制御方法は、圧縮されたプログラムをハードウェアモジュールにより伸張する工程を含んでいても良い。伸張回路を備えたメモリであれば、伸張されたプログラムをハードウェアモジュールが取得し、第２のメモリに格納する。
【０００７】
この制御方法では、圧縮されたプログラムを格納した第１のメモリ、例えば適当なタイプのＲＯＭから、プログラムを実行するための第２のメモリ、例えば適当なタイプのＲＡＭにプログラムをロードする処理をＣＰＵとは異なるハードウェアモジュールにより行ない、その後でＣＰＵを起動する。この装置においては、ハードウェアモジュールによりプログラムを初期ロードする作業を行なう。このため、ＲＯＭ上のブート用のプログラムにより動作するＣＰＵが初期ロードを行う従来の装置よりも短時間で、この装置を起動できる。さらに、ＣＰＵで初期ロードを行うためには、ブート用のプログラムをＲＯＭに非圧縮な状態で格納する必要がある。これに対し、ハードウェアモジュールにより初期ロードを行うことにより、ＲＯＭにブート用のプログラムを格納しておく必要がなくなる。したがって、非圧縮のブート用のプログラムの領域を開放することが可能となる。このため、圧縮したプログラムを格納する第１のメモリの使用効率を向上でき、小さなメモリを採用することによりコストセーブでき、メモリの容量を増加せずにさらに多くのプログラムを格納できる。
【０００８】
本発明の異なる態様の一つは、プロセッサに制御される装置である。この装置は、圧縮されたプログラムを格納するための第１のメモリと、第１のメモリと異なる第２のメモリであって、当該第２のメモリに格納されたプログラムによりプロセッサが動作する第２のメモリと、プロセッサと異なるハードウェアモジュールであって、第１の信号により、プロセッサの起動前に、第１のメモリの圧縮されたプログラムを伸張したプログラムを第２のメモリに格納し、プロセッサを起動する第２の信号を出力するハードウェアモジュールとを有する。ハードウェアモジュールは、圧縮されたプログラムを伸張する回路を備えていても良い。
【０００９】
このハードウェアモジュールは、これらのメモリおよびプロセッサに対してアクセスするための機能を備えたコントローラユニットに含めることができる。コントローラユニットは、ＡＳＩＣ、ＳｏＣ（システムオンチップ）、ＬＳＩなどと称される商品形態で提供されるものである。
【００１０】
本発明に係るコントローラユニットの態様の一つは、第１のメモリと、第２のメモリと、プロセッサとに対してそれぞれアクセスするためのインターフェイスと、初期ロードを実行するハードウェアモジュールとを含む。このインターフェイスは、第１のメモリ、第２のメモリおよびプロセッサの全てあるいは一部が接続された共通のバスを介してアクセスするものであっても良い。このインターフェイスは、それぞれを独立して接続し、アクセスする複数のインターフェイスを含んでいても良い。すなわち、このインターフェイスの一形態は、第１のメモリに対してアクセスするための第１のインターフェイスと、第２のメモリに対してアクセスするための第２のインターフェイスと、プロセッサに対してアクセスするためのプロセッサインターフェイスとを備えているものである。また、コントローラユニットは、第１のインターフェイスと、第２のインターフェイスと、ハードウェアモジュールに加え、プロセッサを含むものであっても良い。
【００１１】
コントローラユニットは、さらに、複数の入出力インターフェイスと、それら複数の入出力インターフェイスを接続するバスと、そのバスを制御するバス制御モジュールとを備えていることが望ましい。このようなバス接続（バスブリッジ）機能を備えたコントローラユニットにおいては、初期ロードを行うハードウェアモジュールは、バス制御モジュールに含めることができる。コントローラユニットの一つの例はプリンタコントローラであり、複数の入出力インターフェイスは、プリンタエンジンインターフェイスと、ホスト装置との通信用のインターフェイスとを含む。通信用のインターフェイスは、ＬＡＮインターフェイス、ＵＳＢインターフェイスなどである。
【発明を実施するための最良の形態】
【００１２】
図１に、プリンタの概略構成を示している。このプリンタ１は、コンピュータネットワーク２を介してホストコンピュータ３と接続され、ホストコンピュータ３から供給されるデータを出力する。プリンタ１は、プリンタ１を制御するプロセッサ（ＣＰＵ）１３と、ＣＰＵ１３の動作用のプログラム１８を圧縮された状態で格納するためのフラッシュＲＯＭ１１と、圧縮されたプログラム１８が伸張されたプログラム１９を格納するためのＳＤＲＡＭ１２と、ＬＡＮなどのコンピュータネットワークに接続するネットワーク接続ポート１５と、データをプリントアウトするためのプリンタエンジン１６と、これらのデバイスを接続する機能を備えたコントローラユニット１０とを備えている。プリンタ１は、さらに、表示機能に加えて、タッチパネルあるいは操作スイッチなどの入力機能を備えたＬＣＤパネル１４を備えており、コントローラユニット１０に接続されている。コントローラユニット１０は、多数の機能がワンチップに搭載されたＡＳＩＣあるいはＬＳＩなどと称される形態で提供される。さらに、ＣＰＵ１３を含めて搭載し、ＳｏＣなどと称される形態で提供される場合もある。
【００１３】
図２に、コントローラユニット１０の概略構成を示している。コントローラユニット１０は、フラッシュＲＯＭ１１に対しアクセスするために、ＲＯＭ１１が接続されるＲＯＭインターフェイス２１と、ＳＤＲＡＭ１２に対しアクセスするためにＲＡＭ１２が接続されるＲＡＭコントローラ２２と、ＣＰＵ１３に対しアクセスするためにＣＰＵ１３が接続されるＣＰＵインターフェイス２３と、ＬＣＤパネル１４などと接続される汎用入出力コントローラ２４と、ネットワーク接続ポート１５と繋がるネットワークインターフェイス２５と、プリンタエンジン１６と接続されるプリンタエンジンインターフェイス２６と、内部バス２７とを備えている。内部バス２７は、ＣＰＵインターフェイス２３と、汎用入出力コントローラ２４と、ネットワークインターフェイス２５と、プリンタエンジンインターフェイス２６とを接続する。ＣＰＵインターフェイス２３には、ＣＰＵ１３の制御用の情報およびステータスを記憶するためのレジスタ２８が接続されている。
【００１４】
コントローラユニット１０は、内部バス２７を介するデータ転送を制御するＤＭＡコントローラ３０をさらに備えており、ＲＯＭインターフェイス２１と、ＲＡＭコントローラ２２とは、ＤＭＡコントローラ３０を介して接続されている。また、コントローラユニット１０は、インタラプトコントローラ２９を備えており、コントローラユニット１０の内部の各機能ブロックおよびユニット外からのインタラプトを集積する。インタラプトの１つは、リセットあるいは起動信号であり、プリンタ１の電源が投入されたり、ＬＣＤパネル１４においてリセット操作が行なわれると、インタラプトコントローラ２９は、ＤＭＡコントローラ３０に起動信号（第１の信号）３１を送出する。
【００１５】
図３に、プリンタ１の初期処理（コールドスタート）をフローチャートにより示している。ステップ５１において、インタラプトコントローラ２９がコールドスタート（コールドブート）の要求を検出すると、起動信号３１をＤＭＡコントローラ３０に出力する。コールドスタートが要求される１つの例は、操作パネル１４などに設けられた電源スイッチがオンされた場合である。ステップ５２において、ＤＭＡコントローラ３０は、内蔵されたハードウェアロジック３５が起動信号３１を認識すると、ＲＯＭインターフェイス２１を介してＲＯＭ１１に格納されたプログラム（ファームウェア）１８を、ＳＤＲＡＭコントローラ２２を介してＲＡＭ１２に展開された応対のプログラム１９として格納する。ＲＯＭインターフェイス２１は、圧縮されたプログラムを伸張するための伸張ハードウェア３６を備えている。このため、ＲＯＭ１１に格納された、圧縮された状態のプログラム１８は、ステップ５２において、伸張された状態のプログラム１９として、ＲＡＭ１２に格納される。
【００１６】
ＤＭＡコントローラ３０は、ＲＯＭ１１に格納されたプログラム１８の全て、あるいは、初期ロードすることを予定しているプログラムをＲＡＭ１２にロードした後、ステップ５３において、ＣＰＵ１３に対して起動信号またはリセット信号（第２の信号）３２を出力する。この信号３２により、ＣＰＵ１３は、ＲＡＭ１２の予め指定されたアドレスから命令をフェッチして動作を開始する。
【００１７】
このプリンタ１においては、起動時に、コントローラユニット１０のハードウェアモジュールであるＤＭＡコントローラ３０によりＲＯＭ１１に格納されたプログラムを伸張した後にＲＡＭ１２に格納する。したがって、ＲＯＭ１１には、初期ロードを行なうためのブートプログラムは用意されておらず、また、ＣＰＵ１３は、初期ロードが終了した後に起動される。ＲＯＭ１１からＲＡＭ１２へプログラムを初期ロードするプロセスが、ＤＭＡコントローラ３０およびＲＯＭインターフェイス２１に用意された伸張回路３６を含むハードウェアモジュールにより、伸張も含めて実行されるので、プリンタ１が起動する時間を短縮できる。ＣＰＵ１３により初期ロードする場合は、ＲＯＭ１１に非圧縮状態で格納されたブートプログラムによりＣＰＵ１３を動作させる。このため、ＲＡＭ１２に格納されたファームウェアあるいはオペレーティングシステム（ＯＳ）によりＣＰＵ１３が動作する場合よりも、初期ロードのときのＣＰＵ１３の動作速度は遅い。これに対し、このプリンタ１においては、ＣＰＵ１３を動作させずに専用のハードウェアにより初期ロードを実行できる。したがって、ファームウェアあるいはＯＳを含めたプログラムの初期ロードに費やされる時間を大幅に短縮できる。
【００１８】
また、上述したように、ブートプログラムによりＣＰＵ１３が初期ロードする場合は、ＲＯＭ１１に非圧縮状態のブートプログラムを格納しておく必要がある。これに対し、このプリンタ１においては、ＲＯＭ１１にブートプログラムなどの初期ロードに要するプログラムを格納する必要がない。したがって、ＲＯＭ１１の記憶容量がブートプログラムのために割かれない。一般にＲＯＭ１１は、ＲＡＭ１２よりも価格が高いので、ＲＯＭ１１の使用効率を向上することにより、プリンタ１の価格を下げることができる。さらに、ＣＰＵ１３のアドレスをＲＯＭ１１に格納されたブートプログラムに割当てる必要がなく、ＣＰＵ１３のアドレス空間をさらに有効に利用できる。このため、ＣＰＵ１３としてアドレス空間の小さなものを採用することが可能となり、この点でもプリンタ１の価格を下げることができる。
【００１９】
図４に、コントローラユニットの異なる例を示している。このコントローラユニット１０ａは、ＣＰＵ１３を内蔵したＳｏＣタイプのコントローラチップである。さらに、このコントローラ１０ａは、ＲＯＭインターフェイス２１に伸張回路は設けておらず、ＲＯＭ１１ａに内蔵された伸張回路３６を用いてＲＯＭ１１ａに格納された圧縮されたプログラム１８を伸張している。
【００２０】
図５に、プリンタの異なる構成を示している。このプリンタ１ａは、ＣＰＵバス１７を備えており、このバス１７にＣＰＵ１３と、伸張されたプログラム１９を格納するためのＳＤＲＡＭ１２とが接続されている。他の構成は、図１に示したプリンタ１と共通する。この構成のプリンタ１ａのためのコントローラユニット１０ｂは、図６に示すように、ＣＰＵ１３およびＳＤＲＡＭ１２に対しバス１７を介してそれぞれアクセスするためのバスインターフェイス２０を備えている。
【００２１】
プリンタの構成として、ＣＰＵバス１７に、圧縮されたプログラム１８を格納するためフラッシュＲＯＭ１１が接続された構成を採用することも可能である。そのようなプリンタ用のコントローラユニット１０は、バスインターフェイス２０がＣＰＵ１３およびＳＤＲＡＭ１２に加えてＲＯＭ１１に対してアクセスするためのインターフェイスとして機能する。
【００２２】
これらの例では、プリンタ１により本発明を説明しているが、ハードウェアモジュールにより初期ロードする方式は、プリンタ、スキャナなどのパーソナルコンピュータの周辺機器に限らず、パーソナルコンピュータあるいはＰＤＡなどを含めたＣＰＵなどのプロセッサにより制御される装置の全てに採用できる。したがって、初期ロードを行なうハードウェアモジュールを備えたコントローラユニットは上記のプリンタコントローラに限定されることはなく、それらの装置のエンジンとのインターフェイスを備えたコントローラユニットとして提供できる。また、ホスト装置との通信用のインターフェイスはネットワークインターフェイスに限定されることはなく、ＵＳＢなどのシリアルインターフェイスあるいはパラレルインターフェイスであっても良い。
【００２３】
本発明を適用することにより、ＲＯＭの利用効率を向上し、スイッチを入れたら短時間で使える装置を提供できるので、常設で常時電源に接続されているタイプの装置よりも、例えば、電池駆動のハンディータイプの装置に適している。例えば、デジタルカメラをホストマシンとして、デジタルカメラから直にプリントするプリンタにおいては、デジタルカメラと同様にハンディであることが望ましく、さらに、スイッチを入れたら直ぐに使えることが要求されている。本発明を適用したプリンタは、そのような用途に特に適したものである。
【図面の簡単な説明】
【００２４】
【図１】プリンタの概略構成を示す図。
【図２】プリンタのコントローラユニットの概略構成を示すブロック図。
【図３】プリンタの初期ロードの過程を示すフローチャート。
【図４】コントローラユニットの異なる例を示すブロック図。
【図５】異なるプリンタの概略構成を示す図。
【図６】異なるコントローラユニットの概略構成を示すブロック図。
【符号の説明】
【００２５】
１    プリンタ、  ３    ホストコンピュータ
１０  コントローラユニット
１１  ＲＯＭ（第１のメモリ）、  １２  ＲＡＭ（第２のメモリ）
１３  ＣＰＵ、  １６  プリンタエンジン
３０  ＤＭＡコントローラ、  ３５  ハードウェアロジック
３６  伸張回路
【図１】
2007148865.tif 000003
【図２】
2007148865.tif 000004
【図３】
2007148865.tif 000005
【図４】
2007148865.tif 000006
【図５】
2007148865.tif 000007
【図６】
2007148865.tif 000008