(57)【要約】【課題】本発明は、起動時間及びソフトウェアのインストール時間を短縮する情報処理装置、起動制御方法、起動制御プログラム及び記録媒体に関する。【解決手段】情報処理装置１は、起動時に、起動に必要なハードウェアの初期化処理の実行と、圧縮されたオペレーションシステム及びファイルシステムイメージを記憶する二次記憶部６から該オペレーションシステム及び該ファイルシステムイメージを、ＡＳＩＣ５の内蔵するＤＭＡＣを複数並行起動して、ＡＳＩＣ５の内蔵する伸張器で伸張して、ＲＡＭ４にＤＭＡ転送する転送処理を並行して行う。【選択図】          図１
2012059024.tif 000002
【特許請求の範囲】
【請求項１】
圧縮されたオペレーションシステム及びファイルシステムイメージを記憶する不揮発性メモリと、
前記不揮発性メモリから前記オペレーションシステム及び前記ファイルシステムイメージを揮発性メモリにＤＭＡ転送するＤＭＡコントロール手段と、
ＤＭＡ転送される圧縮された前記オペレーションシステム及び前記ファイルシステムイメージを伸張する伸張手段と、
起動時に、起動に必要なハードウェアの初期化処理の実行と該初期化処理の実行中に並行して前記ＤＭＡコントロール手段を起動させる起動制御手段と、
を備えていることを特徴とする情報処理装置。
【請求項２】
前記情報処理装置は、
前記揮発性メモリに、伸張後の前記オペレーションシステムの書き込みを所定の固定の書き込み開始位置から開始させ、該オペレーションシステムの該揮発性メモリへの書き込み完了後のオペレーションシステムサイズを該揮発性メモリに書き込んで、該書き込み開始位置と伸張後の該オペレーションシステムサイズから該オペレーションシステムの末尾アドレスを決定して、該末尾アドレスを前記ファイルシステムイメージの書き込み開始位置に設定するアドレス設定手段を、
備えていることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記起動制御手段は、
前記オペレーションシステムの転送が完了する前に、前記ハードウェアの初期化が終了すると、該オペレーションシステムの実行を該オペレーションシステムの転送完了まで待たせることを特徴とする請求項１または請求項２記載の情報処理装置。
【請求項４】
前記情報処理装置は、
前記ＤＭＡコントロール手段を複数備え、
前記起動制御手段は、
複数の前記ＤＭＡコントロール手段を並行して起動させて、前記オペレーションシステム及び前記ファイルシステムイメージを転送させることを特徴とする請求項１から請求項３のいずれかに記載の情報処理装置。
【請求項５】
前記情報処理装置は、
データを圧縮する圧縮手段と、
外部装置に接続するインターフェイス手段と、
前記インターフェイス手段で接続される前記外部装置の搭載するソフトウェアを、複数の前記ＤＭＡコントロール手段を並行動作させて、前記圧縮手段で圧縮させた後に、前記不揮発性メモリにインストールするインストール手段と、
を備えていることを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記情報処理装置は、
データを圧縮する圧縮手段と、
外部装置に接続するインターフェイス手段と、
前記インターフェイス手段で接続される前記外部装置の搭載するソフトウェアを、所定サイズの単位ブロックに分割して、該単位ブロック毎に、複数の前記ＤＭＡコントロール手段を並行動作させて、前記圧縮手段で圧縮させた後に、前記不揮発性メモリにインストールするインストール手段と、
前記不揮発性メモリに、前記ソフトウェアの前記単位ブロックのサイズを有する転送先ブロック領域を確保するとともに、該転送先ブロック領域に対する圧縮後の該ソフトウェアの該単位ブロックの転送が完了すると、該転送先ブロック領域のうち該圧縮後のソフトウェアによって未使用となっている空き領域を他の前記転送先ブロック領域に解放するインストール制御手段と、
を備えていることを特徴とする請求項４記載の情報処理装置。
【請求項７】
圧縮されたオペレーションシステム及びファイルシステムイメージを記憶する不揮発性メモリから該オペレーションシステム及び該ファイルシステムイメージを揮発性メモリにＤＭＡ転送するＤＭＡコントロール処理ステップと、
ＤＭＡ転送される圧縮された前記オペレーションシステム及び前記ファイルシステムイメージを伸張する伸張処理ステップと、
起動時に、起動に必要なハードウェアの初期化処理の実行と該初期化処理の実行中に並行して前記ＤＭＡコントロール処理ステップを起動させる起動制御処理ステップと、
を有していることを特徴とする起動制御方法。
【請求項８】
コンピュータに、
圧縮されたオペレーションシステム及びファイルシステムイメージを記憶する不揮発性メモリから該オペレーションシステム及び該ファイルシステムイメージを揮発性メモリにＤＭＡ転送するＤＭＡコントロール処理と、
ＤＭＡ転送される圧縮された前記オペレーションシステム及び前記ファイルシステムイメージを伸張する伸張処理と、
起動時に、起動に必要なハードウェアの初期化処理の実行と該初期化処理の実行中に並行して前記ＤＭＡコントロール処理を起動させる起動制御処理と、
を実行させることを特徴とする起動制御プログラム。
【請求項９】
請求項８記載の起動制御プログラムを記録したことを特徴とするコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、起動制御方法、起動制御プログラム及び記録媒体に関し、詳細には、起動時間及びソフトウェアのインストール時間を短縮する情報処理装置、起動制御方法、起動制御プログラム及び記録媒体に関する。
【背景技術】
【０００２】
コンピュータ、複写装置、複合装置等の情報処理装置においては、近年、ソフトウェアサイズの増大化、ハードウェアの複雑化に伴って、電源投入から利用可能状態になるまでの時間(起動時間)も長くなる傾向にあり、このような傾向は、組み込み系機器においても増加する傾向にある。起動時間が長くなると、情報処理装置を利用する利用者は、情報処理装置の起動が完了して利用が可能になるまでの待ち時間が長くなり、利便性が悪いという問題があった。このような起動時間の長い情報処理装置に対しては、利用者としては、情報処理装置の電源を常時ＯＮのままにして利用するか、起動時間の長い情報処理装置の購入を敬遠するようになる。情報処理装置の電源を常時ＯＮにすると、使用したいときにすぐに使えるが、電気代等のランニングコストが高くつくとともに、省エネルギー化の叫ばれている今日、適切な対応とはいえず、改良の必要があった。
【０００３】
そして、従来、起動に必要なプログラムを、複数のプロセッサによって分担して、該プログラムを記憶しているメモリからロードして、プログラムの読み出し時間を短縮することで、起動時間を短くする技術が提案されている（特許文献１参照）。
【０００４】
また、従来、複数のＤＭＡＣ（Direct Memory Access Controller ：ＤＭＡコントローラ）に実行させるデータ設定コマンドを並べたデータ設定コマンド列を記憶手段から取得するデータ設定コマンド列取得手段の取得したデータ設定コマンド列に従った順序でデータ設定コマンド列内のデータ設定コマンドを、該データ設定コマンドを実行するＤＭＡＣに開始させるとともに、１つのＤＭＡＣに１つのデータ設定コマンドを実行させている間に、後続のデータ設定コマンドを、該データ設定コマンドを実行するＤＭＡＣに並列して実行、すなわち、ハードウェアとソフトウェアの初期設定値を並行して設定させる技術が提案されている（特許文献２参照）。
【０００５】
さらに、従来、電源供給開始後、プロセッサが動作開始する前に、ハードウェアコントローラの初期化、特に、ＣＰＵの初期化前にＲＡＭコントローラの初期化を行う技術が提案されている（特許文献３）。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記公報記載の従来技術にあっては、起動時間を短縮して利用性を向上させる上で、改良の必要があった。すなわち、特許文献１記載の従来技術にあっては、複数のプロセッサを用いてデータ転送を行っているため、処理速度を高速化することはできるが、プロセッサをデータ転送に使用している間、他のソフトウェア処理を実行することができず、結果として、起動時間の短縮化を図る上で、改良の必要があるとともに、複数のプロセッサを搭載するために、コストが高くつくという問題があった。また、特許文献２記載の従来技術にあっては、ハードウェアとソフトウェアの初期化処理を並列で行うため、処理は高速化することはできるが、ハードウェアとソフトウェアの処理には依存関係があるため、単純に並列で処理することができない問題がある。例えば、この従来技術では、特定の値を特定のアドレス位置に書くが、ソフトウェアの場合、複数の条件により、初期化条件が変化することが多々あり、特定の値を特定のアドレス位置に書くだけでは、処理が不適切となり、汎用性を向上させる上で、改良の必要があった。さらに、特許文献３記載の従来技術にあっては、ＣＰＵの初期化前にＲＡＭコントローラの初期化を行っているが、通常、ＲＡＭコントローラの初期化は、１ミリ秒かからない短時間であり、１ミリ秒未満の時間、起動時間を短縮しても、利用者にとっては、効果がほとんど感じることができないという問題があった。
【０００７】
そこで、本発明は、起動に必要なソフトウェアの揮発性メモリへの書き込み時間を効果的に短縮して、起動時間を短縮することができ、また、ソフトウェアの不揮発性メモリへのインストールを高速で行うことのできる情報処理装置、起動制御方法、起動制御プログラム及び記録媒体を提供することを目的としている。
【課題を解決するための手段】
【０００８】
本発明は、上記目的を達成するために、起動時に、起動に必要なハードウェアの初期化処理の実行と、圧縮されたオペレーションシステム及びファイルシステムイメージを記憶する不揮発性メモリから該オペレーションシステム及び該ファイルシステムイメージを、伸張して、揮発性メモリにＤＭＡ転送する転送処理を並行して行うことを特徴としている。
【０００９】
また、本発明は、前記揮発性メモリに、伸張後の前記オペレーションシステムの書き込みを所定の固定の書き込み開始位置から開始させ、該オペレーションシステムの該揮発性メモリへの書き込み完了後のオペレーションシステムサイズを該揮発性メモリに書き込んで、該書き込み開始位置と伸張後の該オペレーションシステムサイズから該オペレーションシステムの末尾アドレスを決定して、該末尾アドレスを前記ファイルシステムイメージの書き込み開始位置に設定することを特徴としていてもよい。
【００１０】
さらに、本発明は、前記オペレーションシステムの転送が完了する前に、前記ハードウェアの初期化が終了すると、該オペレーションシステムの実行を該オペレーションシステムの転送完了まで待たせることを特徴としていてもよい。
【００１１】
また、本発明は、複数のＤＭＡコントロール手段を並行して起動させて、前記オペレーションシステム及び前記ファイルシステムイメージを転送させることを特徴としてもよい。
【００１２】
さらに、本発明は、インターフェイス手段で接続される外部装置の搭載するソフトウェアを、複数のＤＭＡコントロール手段を並行動作させて、前記圧縮手段で圧縮させた後に、前記不揮発性メモリにインストールすることを特徴としていてもよい。
【発明の効果】
【００１３】
本発明によれば、起動に必要なソフトウェアの揮発性メモリへの書き込み時間を効果的に短縮して、起動時間を短縮することができ、また、ソフトウェアの不揮発性メモリへのインストールを高速で行うことができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１実施例を適用した情報処理装置の要部ブロック構成図。
【図２】ＣＰＵの仮想アドレス空間とＲＯＭの関係を示す図。
【図３】ブートローダ処理を示すフローチャート。
【図４】二次記憶部からＲＡＭへのオペレーションシステム展開処理の説明図。
【図５】ＲＡＭ上のデータ展開及びパラメータ格納領域の説明図。
【図６】展開後ファイルサイズを格納する圧縮ファイルフォーマットパターンの一例を示す図。
【図７】オペレーションシステム起動処理を示すフローチャート。
【図８】外部メモリが接続された状態の情報処理装置の要部ブロック構成図。
【図９】２つのＤＭＡＣを用いてソフトウェアをインストールするときの処理手順を示す図。
【図１０】ソフトウェアのインストールに用いる変数の一例を示す図。
【図１１】ＤＭＡ転送のファイルサイズ指定の説明図。
【図１２】圧縮ファイルコピー後の二次記憶部におけるブロック再設定の説明図。
【図１３】ファイル書き込み処理を示すフローチャート。
【図１４】書き込みブロック予約処理を示すフローチャート。
【図１５】ファイル書き込み完了処理を示すフローチャート。
【図１６】第２実施例の画像形成装置の要部ブロック構成図。
【図１７】コントローラのハードウェア資源の要部ブロック構成図。
【図１８】ＲＯＭ、ＲＡＭ及び二次記憶部のデータ配置を示す図。
【図１９】ＵＥＦＩ処理を示すフローチャート。
【図２０】ディスクリプタの一例を示す図。
【図２１】ＤＭＡ転送終了を判断するためのレジスタの一例を示す図。
【図２２】オペレーションシステム展開エラー通知画面の一例を示す図。
【図２３】ＳＡＴＡモジュールによるファイル転送処理を示すフローチャート。
【図２４】診断処理を示すフローチャート。
【図２５】オペレーションシステム起動処理を示すフローチャート。
【図２６】ＳＤカード内のファイル構成を示す図。
【図２７】ソフトウェアのインストール処理の処理手順を示す図。
【図２８】インストール成功通知画面の一例を示す図。
【図２９】インストール失敗通知画面の一例を示す図。
【発明を実施するための形態】
【００１５】
以下、本発明の好適な実施例を添付図面に基づいて詳細に説明する。なお、以下に述べる実施例は、本発明の好適な実施例であるので、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明によって不当に限定されるものではなく、また、本実施の形態で説明される構成の全てが本発明の必須の構成要件ではない。
【実施例１】
【００１６】
図１〜図１５は、本発明の情報処理装置、起動制御方法、起動制御プログラム及び記録媒体の基本実施例を示す図であり、図１は、本発明の情報処理装置、起動制御方法、起動制御プログラム及び記録媒体の基本実施例を適用した情報処理装置１のブロック構成図である。
【００１７】
図１において、情報処理装置１は、ＣＰＵ（Central Processing Unit）２、ＲＯＭ（Read Only Memory）３、ＲＡＭ（Random Access Memory）４、ＡＳＩＣ（Application Specific Integrated Circuit）５及び二次記憶部６等を備えており、ＣＰＵ２、ＲＯＭ３、ＲＡＭ４及びＡＳＩＣ５は、バス７に接続されている。
【００１８】
ＲＯＭ３には、ＯＳ（Operating System）を二次記憶部６から読み込んで起動するブートローダ（boot loader）が格納されており、二次記憶部（不揮発性メモリ）６には、カーネル（オペレーションシステム）及びファイルシステムイメージが格納されている。
【００１９】
ＲＯＭ３は、図２に示すように、ＣＰＵ２の仮想メモリ空間上にマップされており、ＲＯＭ３の特定の領域は、ＣＰＵ２のブートベクタ(電源ＯＮ時に最初に実行される命令が置かれているアドレス位置)に割り当てられている。上記ブートローダ（起動制御手段）は、このブートベクタの位置に配置されている。
【００２０】
また、ＲＯＭ３には、本発明の起動制御プログラムが格納されており、情報処理装置１は、起動制御プログラムを実行することで、後述する起動に必要なソフトウェアのＲＡＭ（メモリ）４への書き込み時間を効果的に短縮して、起動時間を短縮する本発明の起動制御方法を実行する。
【００２１】
すなわち、情報処理装置１は、ＲＯＭ、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory ）、ＥＰＲＯＭ、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory ）、ＣＤ−ＲＷ（Compact Disc Rewritable ）、ＤＶＤ（Digital Versatile Disk）、ＳＤ（Secure Digital）カード、ＭＯ（Magneto-Optical Disc）等のコンピュータが読み取り可能な記録媒体に記録されている本発明の起動制御方法を実行する起動制御プログラムを読み込んでＲＯＭ３等に導入することで、後述する起動に必要なソフトウェアのＲＡＭ（メモリ）４への書き込み時間を効果的に短縮する起動制御方法を実行する情報処理装置として構築されている。この起動制御プログラムは、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）等のレガシープログラミング言語やオブジェクト指向ブログラミング言語等で記述されたコンピュータ実行可能なプログラムであり、上記記録媒体に格納して頒布することができる。
【００２２】
ＲＡＭ４は、ＣＰＵ２のワークメモリとして利用され、また、二次記憶部６内のＯＳ（オペレーションシステム）が展開される。
【００２３】
ＣＰＵ２は、ＲＡＭ４に展開されたＯＳやアプリケーションプログラムに基づいて情報処理装置１の各部を制御して、情報処理装置１としての処理を実行する。
【００２４】
ＡＳＩＣ５は、二次記憶部６とバス７との間に接続されており、ＤＭＡコントロール手段であるＤＭＡＣ（Direct Memory Access Controller ：ＤＭＡコントローラ）、圧縮器（圧縮手段）及び伸張器（伸長手段）を内蔵していて、二次記憶部６と他のデバイス（ＲＯＭ３やＲＡＭ４等）との間のデータ転送を行うとともに、圧縮データの伸張処理、データの圧縮処理を行う。
【００２５】
次に、本実施例の作用について説明する。本実施例の情報処理装置１は、起動に必要なソフトウェアのＲＡＭ４への書き込み時間を効果的に短縮して、起動時間を短縮し、また、ソフトウェアの二次記憶部６へのインストールを並行処理して速やかに処理する。
【００２６】
すなわち、情報処理装置１は、ＲＯＭ３内にブートローダが格納されており、情報処理装置１の電源が投入されると、図３に示すように、ＣＰＵ２が、図２に示したＲＯＭ３のブートベクタ位置のブートローダを起動させて、ブートローダ処理を開始して、ＲＡＭ４の初期化（ＲＡＭコントローラの初期化）を行い（ステップＳ１０１）、ＲＡＭ４の初期化が完了すると、ＡＳＩＣ５の初期化を行う（ステップＳ１０２）。
【００２７】
ＣＰＵ２は、ＡＳＩＣ５の初期化が完了すると、ＡＳＩＣ５内のＤＭＡＣを起動して、二次記憶部６内に圧縮されて格納されているＯＳ（オペレーティングシステム）を、ＡＳＩＣ５内の伸張部で伸張して、伸張後のＯＳをＲＡＭ４の特定番地に展開する（ステップＳ１０３）。すなわち、ＲＡＭ４への伸張とブートローダが実施する初期化処理を同時に行うことができ、結果として起動時間の短縮化を図ることができる。
【００２８】
そして、ＲＡＭ４には、図５に示すように、予め決まっている固定の先頭アドレスから始まるブート用のパラメータ格納領域ＢＰＡにブート用のパラメータが、予め決まっている固定のＯＳ先頭アドレスから始まるオペレーティングシステム展開後領域ＯＳＡに展開後のオペレーションシステムが、オペレーティングシステム展開後領域ＯＳＡの続きのファイルシステムイメージ展開領域ＦＩＡにファイルシステムイメージが、それぞれ展開される。なお、ブートローダとＯＳは別々のプログラムであるため、変数を共有することはできないが、特定アドレス上にＯＳを配置することで、ＯＳが自信の末尾アドレスを知ることができ、この末尾アドレスをファイルシステムイメージ展開領域ＦＩＡの先頭アドレスとして、ＯＳが認識することができる。
【００２９】
すなわち、ファイルシステムイメージの配置位置は、オペレーティングシステムが行うが、オペレーティングシステム自体の展開サイズが分からないため、ファイルシステムイメージの展開開始位置が分からない。そこで、図５のブート用のパラメータ格納領域ＢＰＡに展開後のオペレーティングシステムのサイズを格納する。このオペレーションシステムのサイズを求める方法は、圧縮形式フォーマット内に埋め込まれているサイズを取得する方法を用いることができる。通常、圧縮形式ファイルのフォーマットでは、展開後のファイルサイズを予め格納することが規定されており、そのファイルフォーマットに従って、展開後のサイズを取得する。例えば、図６に示すように、gzip圧縮形式の圧縮ファイルフォーマットパターンＦｐでは、末尾の８バイト目を先頭とした４バイト値が、展開後ファイルサイズ格納部Ｆｓであって、展開後のサイズが格納される。
【００３０】
再び、図３において、ＣＰＵ２は、オペレーションシステムのＲＡＭ４への展開を開始すると、ＲＡＭ４及びＡＳＩＣ以外のハードウェアの初期化及びハードウェア情報取得処理を行い（ステップＳ１０４）、ＤＭＡによるオペレーションシステムの展開が完了したかチェックする（ステップＳ１０５）。
【００３１】
このオペレーションシステムの展開が完了したか否かの判断は、通常、以下の２つの方法うち、いずれかの方法が用いられる。
【００３２】
ａ）ＡＳＩＣに備え付けられたＤＭＡ状態を見るためのレジスタを経由して転送中かどうかを判別する(レジスタの具体的な例は、第２実施例の図２１において説明する。)。
【００３３】
ｂ）ＡＳＩＣに備え付けられたＤＭＡが転送完了した場合、ＡＳＩＣとＣＰＵ２を結ぶ割り込み信号線を制御し、ＣＰＵ２に割り込みを通知する。そして、ＲＯＭ３上の特定箇所にある処理へ制御を移し、この中でフラグを立てる等の方法で待ちを解除する。この場合、ＡＳＩＣには、割り込み信号を制御する機能が必要となる。
【００３４】
ステップＳ１０５で、ＮＯのとき、すなわち、オペレーションシステムの展開が完了していないときには、ＣＰＵ２は、一定時間または完了割り込みによる完了通知がくるまで待ち（ステップＳ１０６）、ステップＳ１０６に戻る。
【００３５】
ステップＳ１０５で、ＹＥＳのとき、すなわち、オペレーションシステムの展開が完了すると、ＣＰＵ２は、オペレーションシステムの展開先アドレスにある命令を読み込んで実行する（ステップＳ１０７）。
【００３６】
すなわち、上記オペレーションシステムの展開完了判断方法のいずれの方法を用いてもオペレーティングシステムの転送が完了したかを判別することができるため、オペレーティングシステムの転送よりもハードウェアの初期化が先に終了した場合、オペレーティングシステムの転送完了を待ち受け、転送完了終了と同時にオペレーティングシステムを実行することができる。この場合、ＣＰＵ２に展開先アドレスの命令を読み込ませる方法としては、例えば、Ｃ言語レベルでは、関数ポインタによる特定アドレスの処理呼び出しを行う方法を用いることができる。
【００３７】
そして、オペレーティングシステムの起動時の処理は、図７のように示され、オペレーションシステムの起動処理が開始されると、まず、ＣＰＵ２は、ＡＳＩＣ５のＤＭＡにより、図４に示したように、二次記憶部６からＲＡＭ４にファイルシステムイメージを展開する（ステップＳ２０１）。このときのファイルシステムイメージの書き込み位置は、上述のように、図５のブート用のパラメータ格納領域ＢＰＡに格納されているため、このブート用のパラメータ格納領域ＢＰＡから取り出す。
【００３８】
ＣＰＵ２は、その間、並行してフローの処理群Ｐｓを実施する。すなわち、ＣＰＵ２は、オペレーションシステムが使用するデータ構造の初期化を行い（ステップＳ２０２）、オペレーションシステムがサポートする全てのハードウェアに対するループ処理を開始して（ステップＳ２０３）、ハードウェアが実際に存在するかチェックする（ステップＳ２０４）。ステップＳ２０４で、ＹＥＳのとき、すなわち、ハードウェアが実際に存在すると、ＣＰＵ２は、該デバイスの初期化を行い（ステップＳ２０５）、ループ処理の完了チェックを行って（ステップＳ２０６）、全てのハードウェアに対するチェックを行っていないときには、ステップＳ２０３に戻って、上記同様の処理を繰り返し行う（ステップＳ２０３〜Ｓ２０５）。ステップＳ２０４で、ＮＯのとき、すなわち、ハードウェアが実際には存在しないときには、ＣＰＵ２は、ループ処理を行って（ステップＳ２０６）、全てのハードウェアに対するチェックを行っていないときには、ステップＳ２０３に戻って、上記同様の処理を繰り返し行う（ステップＳ２０３〜Ｓ２０５）。
【００３９】
そして、ＣＰＵ２は、ステップＳ２０６で、全てのハードウェアに対して初期化するループ処理を完了すると、ＣＰＵ２は、ＤＭＡＣによるファイルシステムイメージの展開が完了したかチェックし（ステップＳ２０７）、ＮＯのとき、すなわち、ファイルシステムイメージの展開が完了していないときには、一定時間または完了割り込みによる完了通知がくるまで待ち（ステップＳ２０８）、ステップＳ２０７に戻る。
【００４０】
ステップＳ２０７で、ＹＥＳのとき、すなわち、ファイルシステムイメージの展開が完了すると、ＣＰＵ２は、ファイルシステムイメージ内からユーザプログラムを探して、実行し、情報処理装置１の機能を利用できる状態となる（ステップＳ２０９）。
【００４１】
したがって、ＲＡＭ４へのオペレーションシステムの伸張と、オペレーティングシステムが実施する初期化処理を同時に行うことができ、起動時間の短縮化を図ることができる。
【００４２】
そして、情報処理装置１は、ソフトウェアをインストールする際にも、高速化することができる。
【００４３】
すなわち、情報処理装置１は、図８に示すように、接続、切り離しが可能な外部メモリ１０が、接続され、外部メモリ１０としては、ＳＤ（Secure Digital）カードやＵＳＢ（Universal Serial Bus）メモリが用いられる。情報処理装置１は、メモリを接続するインターフェイス（インターフェイス手段）を備えている。
【００４４】
なお、ＬＡＮ（Local Area Network）やインターネット等で接続されるコンピュータ等を外部装置として、該外部装置からソフトウェアをダウンロードしてインストールする場合にも、以下の説明が同様に適用することができる。
【００４５】
外部メモリ１０には、インストーラ（インストール手段）１１が記憶されている。インストーラ１１は、インストーラソフト１２、一覧ファイル１３、ファイル群１４からなり、一覧ファイル１３は、インストール対象の非圧縮状態となっているファイル群１４の一覧が記載されたファイルである。
【００４６】
インストーラソフト１２は、ソフトウェアのインストールを行うソフトウェアであり、図８に矢印で示すように、一覧ファイル１３に記載されているインストール対象のファイル群１４の各ファイルを情報処理装置１内の二次記憶部６に、ＡＳＩＣ５のＤＭＡＣを用いて圧縮器で圧縮しながらコピーする。
【００４７】
情報処理装置１は、このインストーラ１１による外部メモリ１０から二次記憶部６へのコピーにおいて、ＡＳＩＣ５内のＤＭＡＣを複数、例えば、図９に示すように、２つのＤＭＡＣ２１ａ、２１ｂを用いて、インストール動作を並行して行う。
【００４８】
複数のＤＭＡ２１ａ、２１ｂを用いることで、インストール動作を並行できるため、インストール速度を加速することができる。
【００４９】
ところが、インストーラ１１によるソフトウェアの二次記憶部６へのインストールにおいては、ＡＳＩＣ５内のＤＭＡＣを複数用いてＤＭＡ転送によって二次記憶部６に転送するが、ＤＭＡＣ転送においては、転送先のブロック位置とサイズを指定する必要がある。そして、インストーラ１１によるソフトウェアの二次記憶部６へのインストールにおいては、ＡＳＩＣ５内の圧縮器で圧縮した後に、二次記憶部６にＤＭＡ転送するため、転送時点では、圧縮後のソフトウェアのサイズが不明であり、転送開始地点が不明であることから、複数のファイルをＤＭＡＣ２１ａ、２１ｂを並列動作させて二次記憶部６に転送することができない。すなわち、ＤＭＡＣ２１ａ、２１ｂによる転送先のブロック位置とサイズをＤＭＡＣに指定する必要がある。
【００５０】
そこで、本実施例の情報処理装置１では、インストーラソフト１２が、図１０に示すような変数Ｈを用意し、変数Ｈを参照して、二次記憶部６のファイル転送先のブロック位置とサイズをＤＭＡＣに指定する。変数Ｈは、二次記憶部６のブロックの使用状況を表したものであり、使用状況には、「使用中」、「未使用」、「予約」の３通りがある。「使用中」は、圧縮されたファイルデータが書かれているブロック、「未使用」は、何も書き込まれていないブロック、「予約」は、ＤＭＡによって書き込みを行うために一時的に予約しているブロックである。
【００５１】
インストーラソフト１２は、書き込みを開始する際、書き込みを開始できる未使用ブロックの先頭を、変数Ｈを参照して、図１１に示すように、見つけ、圧縮後のファイルの最悪値として、全く圧縮できないケースを想定して、ＤＭＡの転送サイズとして、「圧縮前のファイルのサイズ」を指定することで、転送先のブロック位置とサイズを確保する。この場合、インストーラソフト１２は、書き込みを予定するブロックにあたる図１０の変数位置には、「予約」という値を入れる。インストーラソフト１２及び変数Ｈは、全体としてインストール制御手段として機能している。
【００５２】
次に、インストーラソフト１２は、図９に示したように、外部メモリ１０内の転送対象のファイルを、ＡＳＩＣ５のＤＭＡＣを利用してＤＭＡ転送しつつ、ＡＳＩＣ５の圧縮器でファイルを圧縮しつつ、図１１に示したように、二次記憶部６に確保した該転送対象のファイルサイズと同じサイズのブロックに、転送して書き込む。インストーラソフト１２は、二次記憶部６への圧縮ファイルの書き込みを完了すると、図１２に示すように、二次記憶部６の確保したブロックには、圧縮後のデータが書かれている部分と、圧縮後のデータがかかれていない部分が存在することとなるため、図１０に示した変数Ｈで、圧縮後のデータが書かれている部分（領域）を、「使用中」に、圧縮後のデータがかかれていない部分（領域）を、「未使用」にする。インストーラソフト１２は、上記処理を行うことで、二次記憶部６に対して割り付けたブロックのうち、現在、どのブロックが使用中で、どのブロックが未使用であるかを知ることができる。
【００５３】
そして、２つのＤＭＡＣ２１ａ、２１ｂを並列動作させてソフトウェアのファイルを外部メモリ１０から二次記憶部６に転送して書き込む場合、インストーラソフト１２は、図９に示したように、一覧ファイル１３を参照して１つ目の書き込み対象ファイルをファイル群１４から取得すると、図１１に示した書き込み処理（後で、詳細に説明する。）を行って、まず、ＡＳＩＣ５の１つ目のＤＭＡＣ２１ａを起動し、ファイルを圧縮しつつ、変数Ｈを参照して、二次記憶部６の先頭の未使用領域に書き込みを開始する。一方、インストーラソフト１２は、次の書き込み対象ファイルを一覧ファイル１３を参照してファイル群１４から取得して、書き込み処理を行って、２つ目のＤＭＡＣ２１ｂを起動して、ファイルを圧縮しつつ、変数Ｈを参照して、二次記憶部６の先頭の次に確保した未使用領域に書き込みを開始する。ＤＭＡＣ２１ａは、二次記憶部６へのファイルの書き込みが完了すると、転送完了通知をインストーラソフトウェア１２に行い、インストーラソフト１２は、
転送完了通知を受け取ると、図１２に示した完了処理（後で、詳細に説明する。）を行って、一覧ファイル１３に書き込み完了記録を行う。インストーラソフト１２は、一覧ファイル１３への書き込み完了記録を行うと、次の書き込み対象ファイルを一覧ファイル１３を参照してファイル群１４から取得し、上記同様に、ＤＭＡＣ２１を利用して二次記憶部６へ転送させる。
【００５４】
インストーラソフト１２は、上記書き込み処理を図１３及び図１４に示すように実行する。
【００５５】
インストーラソフト１２は、一覧ファイル１３から未書き込みのファイルを選択し、「書き込み中」の印を付け（ステップＳ３０１）、書き込みブロック予約処理（図１４で説明する。）を行う（ステップＳ３０２）。
【００５６】
書き込みブロック予約処理を行うと、インストーラソフト１２は、予約したブロックの開始位置とブロック数からＤＭＡＣディスクリプタを作成し（ステップＳ３０３）、ファイルデータ全てを転送できるブロックが予約できたか、すなわち、転送対象ファイルの圧縮前のファイルサイズと同じサイズのブロックが予約できたかチェックする（ステップＳ３０４）。
【００５７】
ステップＳ３０４で、ＮＯのとき、転送対象ファイルと同じサイズのブロックが予約できていないときには、インストーラソフト１２は、ステップＳ３０２に戻って、書き込みブロック予約処理から上記同様に処理する（ステップＳ３０２、Ｓ３０４）。
【００５８】
ステップＳ３０４で、転送対象降ると同じサイズのブロックを予約できたときには、インストーラソフト１２は、ＤＭＡＣを起動してＤＭＡ転送を開始する（ステップＳ３０５）。
【００５９】
そして、インストーラソフト１２は、ステップＳ３０２の書き込みブロック予約処理を、図１４に示すように実行する。
【００６０】
すなわち、インストーラソフト１２は、書き込みブロック予約処理においては、まず、ブロック利用状況リストの要素番号を、「０」に、未使用ブロック数を、「０」に、それぞれセットし（ステップＳ４０１、Ｓ４０２）、要素番号が、ブロック利用状況リストの要素数よりも大きいか、すなわち、今回、ソフトウェアの書き込みを行うために確保するブロックの数が、二次記憶部６内のブロック個数を超えたかチェックする（ステップＳ４０３）。
【００６１】
ステップＳ４０３で、ＮＯのとき、すなわち、ソフトウェアの書き込みを行うために確保するブロックの数が二次記憶部６内のブロック個数を超えていないときには、インストーラソフト１２は、ブロック利用状況リストの要素番号目を見て（ステップＳ４０４）、ブロックが「未使用」であるかチェックする（ステップＳ４０５）。
【００６２】
ステップＳ４０５で、ブロックが未使用のときには、インストーラソフト１２は、書き込みブロック予約処理が呼ばれてから最初の「未使用」発見であるかチェックし（ステップＳ４０６）、ＹＥＳのとき、すなわち、最初の「未使用」発見のときには、先頭未使用ブロック開始位置をブロック利用状況リストの要素番号として（ステップＳ４０７）、未使用ブロック数に「１」を加算する（ステップＳ４０８）。
【００６３】
ステップＳ４０６で、ＮＯのとき、すなわち、書き込みブロック予約処理が呼ばれてから最初の「未使用」でないときには、インストーラソフト１２は、ブロック利用状況リストの要素番号の設定を行うことなく、未使用ブロック数に「１」を加算する（ステップＳ４０８）。
【００６４】
次に、インストーラソフト１２は、ブロック利用状況リストの要素番号目を「予約」に設定し（ステップＳ４０９）、要素番号に「１」を加算して（ステップＳ４１０）、ステップＳ４０３に戻って、要素番号が、ブロック利用状況リストの要素数よりも大きいかの処理を、要素番号が、ブロック利用状況リストの要素数よりも大きくなるまで、上記同様に繰り返し行って（ステップＳ４０３〜Ｓ４１０）、ステップＳ４０３で、要素番号が、ブロック利用状況リストの要素数よりも大きくなると、書き込みブロック予約処理を終了する。
【００６５】
また、書き込みブロック予約処理のステップＳ４０５において、ブロックが「未使用」でないときには、インストーラソフト１２は、未使用ブロック数が「０」以外であるか、すなわち、連続した未使用ブロックが途中で途切れたかチェックし（ステップＳ４１１）、ＮＯのとき、すなわち、未使用ブロック数が「０」のときには、ステップＳ４１０に移行して、要素番号に「１」を加算する処理から上記同様に処理する（ステップＳ４１０、Ｓ４０３〜Ｓ４１１）。
【００６６】
ステップＳ４１１で、未使用ブロック数が「０」以外であると、インストーラソフト１２は、連続した未使用ブロックが途中で途切れたと判断して、書き込みブロック予約処理を終了する。
【００６７】
そして、インストーラソフト１２は、図９のファイル書き込み完了処理を、図１５に示すように実行する。すなわち、インストーラソフト１２は、完了通知を出したＤＭＡのディスクリプタから、書き込み開始ブロック位置と書き込みブロック個数を求め（ステップＳ５０１）、二次記憶部６にアクセスして、圧縮後ファイルのサイズを求める（ステップＳ５０２）。
【００６８】
インストーラソフト１２は、次に、圧縮前のファイルサイズから圧縮後のファイルサイズを算出して、「未書き込み先頭ブロック番号」を求め（ステップＳ５０３）、カウンタを「０」に設定して（ステップＳ５０４）、書き込みブロック個数分全てブロック利用状況リストを更新したかチェックする（ステップＳ５０５）。
【００６９】
ステップＳ５０５で、ＮＯのとき、すなわち、書き込みブロック個数分全てブロック利用状況リストを更新していないときには、インストーラソフト１２は、カウンタのカウンタ値に書き込み開始ブロック位置を加算した値（カウンタ＋書き込み開始ブロック位置）が、未書き込み先頭ブロック番号よりも大きいかチェックする（ステップＳ５０６）。
【００７０】
ステップＳ５０６で、ＮＯのとき、すなわち、カウンタ＋書き込み開始ブロック位置の値が未書き込み先頭ブロック番号以下であると、インストーラソフト１２は、今回ファイルの書き込みを開始したブロック位置からファイルの最後までカウンタがカウントアップしておらず、今回、ファイルが書き込まれているブロックであると判断して、ブロック利用状況リストを、「使用中」にし（ステップＳ５０７）、カウンタに、「１」を加算して（ステップＳ５０８）、書き込みブロック数分全てのブロック利用状況リストを更新したかチェックする処理から上記同様に処理する（ステップＳ５０５０〜Ｓ５０８）。
【００７１】
ステップＳ５０６で、ＹＥＳのとき、すなわち、カウンタ＋書き込み開始ブロック位置の値が未書き込み先頭ブロック番号よりも大きいと、インストーラソフト１２は、今回ファイルの書き込みを開始したブロック位置からファイルの最後までカウンタがカウントアップしたと判断して、ブロック利用状況リストを、「未使用」にし（ステップＳ５０９）、カウンタに、「１」を加算して（ステップＳ５０８）、書き込みブロック数分全てのブロック利用状況リストを更新したかチェックする処理から上記同様に処理する（ステップＳ５０５０〜Ｓ５０９）。
【００７２】
ステップＳ５０５で、書き込みブロック個数分全てブロック利用状況リストを更新すると、インストーラソフト１２は、ファイル書き込み完了処理を終了する。
【００７３】
このように、本実施例の情報処理装置１は、起動時に、起動に必要なハードウェアの初期化処理の実行と、圧縮されたＯＳ（オペレーションシステム）及びファイルシステムイメージを記憶する二次記憶部（不揮発性メモリ）６から該オペレーションシステム及び該ファイルシステムイメージを、ＡＳＩＣ５の内蔵するＤＭＡＣを複数（実施例では、２つ）並行起動して、ＡＳＩＣ５の内蔵する伸張器で伸張して、ＲＡＭ（揮発性メモリ）４にＤＭＡ転送する転送処理を並行して行っている。
【００７４】
したがって、ＣＰＵ２がソフトウェアを実行中に、複数のＤＭＡＣを使用して、情報処理装置１内の二次記憶部６からオペレーティングシステムやファイルシステムイメージを、並行して、ＲＡＭ４に展開することができ、情報処理装置１を高速に起動することができる。
【００７５】
また、本実施例の情報処理装置１は、ＲＡＭ４に、伸張器で伸張後のオペレーションシステムの書き込みを、所定の固定の書き込み開始位置から開始し、該オペレーションシステムのＲＡＭ４への書き込み完了後のオペレーションシステムサイズをＲＡＭ４に書き込んで、該書き込み開始位置と伸張後の該オペレーションシステムサイズから該オペレーションシステムの末尾アドレスを決定して、該末尾アドレスをファイルシステムイメージの書き込み開始位置に設定している。
【００７６】
したがって、各ファイルの展開位置を正確に知ることができ、他のファイルを誤って上書きすることなく、かつ、ＲＡＭ４に隙間なくデータ群を展開して、ＲＡＭ４を効率よく使用することができる。
【００７７】
さらに、本実施例の情報処理装置１は、オペレーションシステムの転送が完了する前に、前記ハードウェアの初期化が終了すると、該オペレーションシステムの実行を該オペレーションシステムの転送完了まで待たせている。
【００７８】
したがって、仮にＣＰＵ２側で実施するソフトウェアの処理が、ＤＭＡによるオペレーションシステムの展開よりも先に終了したとしても、ＤＭＡによる展開完了を待ち受けることができ、未展開の不確定な状況のファイルを誤って利用することを防止して、情報処理装置１の堅牢性を向上させることができる。
【００７９】
また、本実施例の情報処理装置１は、複数のＤＭＡＣを並行して起動させて、オペレーションシステム及びファイルシステムイメージを二次記憶部６からＲＡＭ４に転送している。
【００８０】
したがって、起動時のオペレーティングシステム等二次記憶部６からＲＡＭ４への展開を、より一層高速に行うことができる。
【００８１】
さらに、本実施例の情報処理装置１は、ＳＤカード（外部装置）１０の搭載するソフトウェア１４を、複数のＤＭＡＣ２１ａ、２１ｂを並行動作させて、圧縮器で圧縮させた後に、二次記憶部６にインストールしている。
【００８２】
したがって、二次記憶部６内に外部のＳＤカード１０に記憶されているオペレーティングシステム等の情報処理装置１の起動に必要なソフトウェア１４のインストールを、ＣＰＵ２のみで実施することと比較して、高速に実施することができる。
【００８３】
また、本実施例の情報処理装置１は、ＳＤカード（外部装置）１０の搭載するソフトウェアを、所定サイズの単位ブロックに分割して、該単位ブロック毎に、複数のＤＭＡＣ２１ａ、２１ｂを並行動作させて、圧縮器で圧縮した後に、二次記憶部（不揮発性メモリ）６にインストールする際に、二次記憶部６に、ソフトウェア１４の単位ブロックのサイズを有する転送先ブロック領域を、変数Ｈを利用して確保するとともに、該転送先ブロック領域に対する圧縮後の該ソフトウェアの該単位ブロックの転送が完了すると、該転送先ブロック領域のうち該圧縮後のソフトウェアによって未使用となっている空き領域を他の転送先ブロック領域に解放している。
【００８４】
したがって、1つずつファイルを二次記憶部６にコピーして、コピー後に該ファイルの終了地点を割り出した後、その地点から次のファイルをコピーするというシーケンシャルな処理を行うことなく、変数Ｈによって、どのブロックが利用中かを、把握することができ、複数のＤＭＡＣを動作させて、並列に複数のファイルをコピーすることができる。
【００８５】
さらに、本実施例の情報処理装置１は、ＳＤカード（外部装置）１０の搭載するソフトウェアを、所定サイズの単位ブロックに分割して、該単位ブロック毎に、複数のＤＭＡＣ２１ａ、２１ｂを並行動作させて、圧縮器で圧縮した後に、二次記憶部（不揮発性メモリ）６にインストールする際に、圧縮後のファイルサイズが不明であっても、書き込み開始位置とそのサイズを指定可能としてもよい。
【００８６】
このようにすると、1つずつファイルを二次記憶部６にコピーして、コピー後に該ファイルの終了地点を割り出した後、その地点から次のファイルをコピーするというシーケンシャルな処理を行うことなく、変数Ｈによって、どのブロックが利用中かを、把握することができ、複数のＤＭＡＣを動作させて、並列に複数のファイルをコピーすることができる。
【実施例２】
【００８７】
図１６〜図２９は、本発明の情報処理装置、起動制御方法、起動制御プログラム及び記録媒体の基本実施例を示す図であり、図１は、本発明の情報処理装置、起動制御方法、起動制御プログラム及び記録媒体の基本実施例を適用した画像形成装置１００の要部ブロック構成図である。
【００８８】
図１６において、画像形成装置１００は、コントローラ１０１にエンジンＩ／Ｆ１０２を介してエンジン１０３が接続されているとともに、図示しないが、各種操作を行ったり、情報を表示する操作表示部１０３（図２２参照）等を備えている。
【００８９】
エンジン１０３は、エンジンハードウェア（エンジンＨ／Ｗ）１０３ａ及びエンジンソフトウェア（エンジンＦ／Ｗ）１０３ｂを搭載しており、所定の画像形成方式、例えば、電子写真方式で、コントローラ１０１から送られてくるビットマップデータに基づいて画像を用紙に記録する。
【００９０】
コントローラ１０１は、ソフトウェア群１１０、ハードウェア資源１４０等を備えており、ハードウェア資源１４０は、図２に示すように、ＣＰＵ１４１、ＢＩＯＳ（Basic Input Output System）  ＲＯＭ１４２、ＲＡＭ１４３、ＡＳＩＣ１４４及び二次記憶部１４５等を備えており、ＣＰＵ１４１、ＢＩＯＳ  ＲＯＭ１４２、ＲＡＭ１４３及びＡＳＩＣ１４４は、バス１４６で接続されている。
【００９１】
ＢＩＯＳ  ＲＯＭ１４２には、図１８に示すように、ＯＳ（Operating System）１１１を二次記憶部１４５から読み込んで起動するＵＥＦＩ（起動制御手段）１５１、ＳＡＴＡモジュール（ＳＡＴＡ  ｍｏｄｕｌｅ）１５２、ｄｉａｇ  ｍｏｄｕｌｅ１５３等が格納されており、二次記憶部１４５には、カーネル及びファイルシステムイメージが格納されている。ＵＥＦＩ１５１は、Unified EFI Forumによって管理されたブートローダである。ＳＡＴＡモジュール（ＳＡＴＡ  ｍｏｄｕｌｅ）１５２は、二次記憶部１４５を接続するためのインターフェイス規格であるシリアルＡＴＡ（SATA、Serial Advanced Technology Attachment）のモジュールであり、ｄｉａｇ  ｍｏｄｕｌｅ１５３は、診断プログラムである。
【００９２】
また、ＢＩＯＳ  ＲＯＭ１４２には、本発明の起動制御プログラムが格納されており、情報処理装置１は、起動制御プログラムを実行することで、後述する起動に必要なソフトウェアのＲＡＭ１４３への書き込み時間を効果的に短縮して、起動時間を短縮する本発明の起動制御方法を実行する。また、ＢＩＯＳ  ＲＯＭ１４２は、初期化プログラムを格納しており、電源オン時に、初期化プログラムが起動されて、初期化プログラムが、アーキテクチャで要求される最小限の入出力に関する初期化を行う。
【００９３】
ＲＡＭ（揮発性メモリ）１４３は、ＣＰＵ１４１のワークメモリとして利用され、また、二次記憶部１４５内のＯＳが展開される。
【００９４】
ＣＰＵ１４１は、ＲＡＭ１４３に展開されたＯＳやアプリケーションプログラムに基づいて画像形成装置１００の各部を制御して、画像形成装置１００としての処理を実行する。
【００９５】
ＡＳＩＣ１４４は、二次記憶部１４５とバス１４６との間に接続されており、ＤＭＡＣ、圧縮器及び伸張器等を内蔵していて、二次記憶部１４５と他のデバイス（ＢＩＯＳ  ＲＯＭ１４２やＲＡＭ１４３等）との間のデータ転送を行うとともに、圧縮データの伸張処理、データの圧縮処理を行う。
【００９６】
二次記憶部（不揮発性メモリ）１４５は、ＳＡＴＡコマンド対応のナンドフラッシュメモリ（Nand-Flash Memory）が用いられており、図１８に示すように、ＯＳ（オペレーションシステム）１１１、ｒｏｏｔｆｓ（ファイルシステムイメージ）１６０及びｓｙｓ＿ｍａｉｎ１７０を格納している。ｒｏｏｔｆｓ１６０は、ＯＳ１１１が本来rootfilesystemでマウントするファイルシステムであって、画像形成装置１００の最低限の起動に必要なファイル群を格納したファイルシステムイメージであり、ｓｙｓ＿ｍａｉｎ１７０は、ＯＳ１１１の中心プログラムである。
【００９７】
ＡＳＩＣ１４４は、二次記憶部１４５としてＳＡＴＡコマンド対応のナンドフラッシュメモリが用いられているので、ＳＡＴＡ経由で二次記憶部１４５へのデータの読み書きを制御する機能（ロジック）を搭載している。
【００９８】
そして、画像形成装置１００は、ＲＯＭ、ＥＥＰＲＯＭ、ＥＰＲＯＭ、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ、ＳＤカード、ＭＯ等のコンピュータが読み取り可能な記録媒体に記録されている本発明の起動制御方法を実行する起動制御プログラムを読み込んでＢＩＯＳ  ＲＯＭ１４２等に導入することで、後述する起動に必要なソフトウェアのＲＡＭ（メモリ）１４３への書き込み時間を効果的に短縮する起動制御方法を実行する画像形成装置として構築されている。この起動制御プログラムは、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）等のレガシープログラミング言語やオブジェクト指向ブログラミング言語等で記述されたコンピュータ実行可能なプログラムであり、上記記録媒体に格納して頒布することができる。
【００９９】
再び、図１６において、コントローラ１０１は、ハードウェアとして、上記の他に、ＳＤカードスロット１４７及びその他のハードウェア１４８を備えており、ＳＤカードスロット１４７には、後述するインストーラの格納されているＳＤカード１４０が挿入される。
【０１００】
ソフトウェア群１１０は、オペレーティングシステム（ＯＳ）１１１上に起動されているアプリケーション層１２０とプラットフォーム１３０を備えており、ＡＰＩ（Application Program Interface ）１１２によって、アプリケーション層１２０からの処理要求をプラットフォーム１３０に渡す。
【０１０１】
アプリケーション層１２０は、プリンタ用のアプリケーション（以下、アプリという。）であるプリンタアプリ（アプリケーション）１２１、コピー用アプリケーションであるコピーアプリ１２２、ファックス用アプリケーションであるファックスアプリ１２３、スキャナ用のアプリケーションであるスキャナアプリ１２４、ネットワークを介してデータを送受信するためのアプリケーションであるネットファイルアプリ１２５、行程検査用のアプリケーションである行程検査アプリ１２６及びＲＯＭ１４２をリモート更新するためのアプリケーションであるＲＲＵアプリ１２７等の画像形成に関連するユーザサービスにそれぞれ固有の処理を行うプログラムを含んでいる。
【０１０２】
プラットフォーム１３０は、アプリケーション層１２０からの処理要求を解釈してハードウェア資源１４０の獲得要求を発生するコントロール層に位置するＥＣＳ（エンジンコントロールサービス）１３１、ＭＣＳ（メモリコントロールサービス）１３２、ＯＣＳ（オペレーションパネルコントロールサービス）１３３、ＦＣＳ（ファックスコントロールサービス）１３４、ＮＣＳ（ネットワークコントロールサービス）１３５及びｇｗｉｎｉｔ（初期起動ユーザプログラム）１３６等と、１つ以上のハードウェア資源１４０の管理を行ってコントロールサービス層からの獲得要求を調停するＳＲＭ（システムリソースマネージャ）１３７と、を有し、ＳＲＭ１３７は、ＳＣＳ（システムコントロールサービス）１３８を含んでいる。ＳＲＭ１３７は、システムの制御及びリソースの管理を行うモジュールであり、ＳＣＳ１３８は、コマンド内容に応じたアプリケーション層１２０の各アプリケーション１２１〜１２７の起動管理及び終了管理を行うモジュールである。
【０１０３】
ＥＣＳ１３１は、エンジン１０３を制御するモジュールであり、ＭＣＳ１３２は、メモリ制御を行うモジュールである。ＯＣＳ１３３は、操作表示部を制御するモジュールであり、ＦＣＳ１３４は、ファクシミリ機能を実現するモジュールである。ＮＣＳ１３５は、ネットワークとアプリケーション層１２０の各アプリケーション１２１〜１２７との仲介処理を行わせるモジュールである。ｇｗｉｎｉｔ１３６は、初期起動ユーザプログラムであり、ＵＮＩＸ（登録商標）のｉｎｉｔプログラムとほぼ同等の役割を果たすプログラムであって、システムに必要なプロセスを立ち上げる。
【０１０４】
そして、上記ＢＩＯＳ  ＲＯＭ１４２、ＲＡＭ１４３及び二次記憶部１４５は、図１８に示すようなデータ配置となっている。すなわち、画像形成装置１００の起動時、後述するように、ＢＩＯＳ  ＲＯＭ１４２のＵＥＦＩ１５１によって、ＳＡＴＡモジュール１５２とｄｉａｇ  ｍｏｄｕｌｅ１５３をＲＡＭ１４３にコピーし、二次記憶部１１１のＯＳ１１１、ｒｏｏｔｆｓ１６０及びｓｙｓ＿ｍａｉｎ１７０をＡＳＩＣ１４４のＤＭＡＣを利用してＲＡＭ１４３にコピーする。
【０１０５】
次に、本実施例の作用について説明する。本実施例の画像形成装置１００は、起動に必要なソフトウェアのＲＡＭ１４３への書き込み時間を効果的に短縮して、起動時間を短縮し、また、ソフトウェアの二次記憶部１４５へのインストールを並行処理して速やかに処理する。
【０１０６】
すなわち、画像形成装置１００は、ＢＩＯＳ  ＲＯＭ１４２内にＵＥＦＩ１５１が格納されており、画像形成装置１００の電源が投入されると、図１９に示すように、ＣＰＵ１４１が、ＵＥＦＩ１５１を起動させて、ブートローダ処理を開始して、ＲＡＭ１４３の初期化（ＲＡＭコントローラの初期化）を行い（ステップＳ６０１）、ＲＡＭ１４３の初期化が完了すると、ＡＳＩＣ５の初期化を行う（ステップＳ６０２）。
【０１０７】
次に、ＵＥＦＩ１５１は、ＣＰＵ１４１を使用して、ＯＳ１１１においてもＳＡＴＡモジュール１５２を使用するために、ＳＡＴＡモジュール１５２をＲＡＭ１４２に展開し（ステップＳ６０３）、図１８に示したように、ＡＳＩＣ１４４のＤＭＡＣを用いて、ＯＳ１１１とｒｏｏｔｆｓ６０５をＲＡＭ１４３に展開する（ステップＳ６０４、Ｓ６０５）。この場合に、ＤＭＡＣが利用するディスクリプタは、例えば、図２０に示すようなものであり、転送元二次記憶部内ブロック番号、転送データサイズ、転送先メモリアドレス及び制御用ビット（本実施例では未使用）のそれぞれ４ｂｙｔｅからなっている。
【０１０８】
ここで、ＯＳ（オペレーティングシステム）１１１とｒｏｏｔｆｓ１６０をＡＳＩＣ１４４に内蔵されたＤＭＡＣを用いてＲＡＭ１４３に展開しているのは、後で行う診断でのハードウェアアクセスに時間がかかり、この時間のうちに、２つのデータをＲＡＭ１４３に展開することが可能であり、処理時間を短縮するためである。
【０１０９】
ｒｏｏｔｆｓ１６０は、図１８に示すように、ＳＲＭ１３７、ＳＣＳ１３８、ＩＭＨ１６１、ＦＣＵＨ１６２及びｇｗｉｎｉｔ１３６を含んでいる。ＳＣＳ１３８は、上述のように、システムの状態管理プログラムであり、例えば、画像形成装置１００の省エネモード遷移等が役割の一つにある。ｒｏｏｔｆｓ１６０は、ＳＣＳ１３８が起動しないと、他のプログラムの状態管理を行うことができない。コマンド内容に応じたアプリケーション層１２０の各アプリケーション１２１〜１２７の起動管理及び終了管理を行うモジュールである。ＳＲＭ１３７は、エンジン１０３との通信プログラムであり、画像形成装置１００の起動時にはエンジン１０３に適切なコマンドを送出して、エンジン１０３の初期設定も行う。ＩＭＨ１６１は、画像メモリの管理・初期化及び画像データのハンドリングを行うプログラムであり、ＦＣＵＨ１６２は、画像形成装置１００にファックスが装着されているときに、ファックスのハードウェア制御を実施するプログラムである。ｇｗｉｎｉｔ１３６は、上述のように、ｇｗｉｎｉｔ１３６は、初期起動ユーザプログラムであり、ＵＮＩＸ（登録商標）のｉｎｉｔプログラムとほぼ同等の役割を果たすプログラムであって、システムに必要なプロセスを立ち上げる。
【０１１０】
そして、ＵＥＦＩ１５１は、ＣＰＵ１４１を使用して、ＢＩＯＳ  ＲＯＭ１４２からｄｉａｇ  ｍｏｄｕｌｅ（診断モジュール）１５３をＲＡＭ１４３に展開して（ステップＳ６０６）、ｄｉａｇ  ｍｏｄｕｌｅ１５３にジャンプし（ステップＳ６０７）、ＲＡＭ１４３及びＡＳＩＣ１４４以外のハードウェアの初期化及びハードウェア情報取得を行う（ステップＳ６０８）。
【０１１１】
次に、ＵＥＦＩ１５１は、ＤＭＡＣによるＯＳ（オペレーションシステム）１１１の展開が完了するのを待って（ステップＳ６０９）、正常終了したかチェックする（ステップＳ６１０）。ＵＥＦＩ１５１は、このＤＭＡＣによる転送完了の判断を、図２１に示すＡＳＩＣ１４４のＤＭＡ転送終了判断用レジスタのレジスタ値を読み取ることで行う。図２１において、ｂｉｔ０のＣＯＭＰは、ＤＭＡが正常に終了したか判断するためのビットで、「１」で転送終了、「０」で、転送中または異常終了を意味し、ｂｉｔ１の［ＥＲＲ」は、ＤＭＡが異常終了したことを示すビットで、「１」で転送終了、「０」で転送中または異常終了を意味する。ｂｉｔ［２：５］のＤＥＴＡＩＬは、異常終了時のエラー要因を表すビットで、正常終了時は、「０」である。
【０１１２】
ステップＳ６１０で、正常終了すると、ＵＥＦＩ１５１は、ＯＳ（オペレーションシステム）１１１の展開先アドレスにある命令をＣＰＵ１４１に読み込ませて実行させて、処理を終了する（ステップＳ６１１）。
【０１１３】
ステップＳ６１０で、異常が発生すると、ＵＥＦＩ１５１は、例えば、図２２に示すようなオペレーションシステム展開エラー通知画面Ｇ１を、操作表示部１０３のディスプレイ１０４に表示して、処理を終了する（ステップＳ６１２）。なお、図２２の操作表示部１０３には、ディスプレイ１０４の他に、テンキー１０５、コピーキー１０６及びキャンセルキー１０７等の操作キーが設けられている。そして、図２２のオペレーションシステム展開エラー通知画面Ｇ１では、データ展開エラーが発生した旨、エラーコード及び詳細コードが表示され、詳細コードとしては、例えば、展開元ブロック番号が記載される。
【０１１４】
そして、図１９のステップＳ６０４及びステップＳ６０５のＵＥＦＩ１５１によるＳＡＴＡモジュール１５２を利用した二次記憶部１４５からＲＡＭ１４３へのファイル転送処理は、図２３に示すように実行される。
【０１１５】
ＵＥＦＩ１５１は、ＳＡＴＡモジュール１５２を利用してファイル転送を行うために、まず、図２０に示したように、ディスクリプタの１６ｂｙｔｅメモリを割り当て（ステップＳ７０１）、転送元の二次記憶部１４５内のブロック番号を設定し（ステップＳ７０２）、転送データサイズを設定する（ステップＳ７０３）。ＵＥＦＩ１５１は、次に、転送先であるＲＡＭ１４３のメモリアドレスを設定し（ステップＳ７０４）、ＤＭＡＣを起動して、二次記憶部１４５内に圧縮され指定ファイルをＲＡＭ１４３の指定のアドレス番地に展開を開始する（ステップＳ７０５）。
【０１１６】
そして、図１９のステップＳ６０７のＵＥＦＩ１５１によるｄｉａｇ  ｍｏｄｕｌｅ（診断モジュール）１５３を利用した診断処理は、図２４に示すように実行される。
【０１１７】
ＵＥＦＩ１５１は、ｄｉａｇ  ｍｏｄｕｌｅ（診断モジュール）１５３を利用した診断処理を行うために、図２４に示すように、まず、ｄｉａｇ  ｍｏｄｕｌｅ（診断モジュール）１５３内に既に変数で用意されている対象ハードウェア一覧を取得し（ステップＳ８０１）、診断対象ハードウェアを全て診断するループ処理を開始する（ステップＳ８０２）。
【０１１８】
ループ処理では、ｄｉａｇ  ｍｏｄｕｌｅ１５３が、ハードウェア一覧から取り出した診断関数ポインタへジャンプして、該当ハードウェアの診断を実施（ステップＳ８０３）、正常終了したかチェックする（ステップＳ８０４）。
【０１１９】
ステップＳ６０４で、正常終了したときには、ｄｉａｇ  ｍｏｄｕｌｅ１５３は、全てのハードウェアの診断を終了したかチェックして、全てのハードウェアの診断を終了していないときには、ループ処理の開始に戻って、上記同様に処理する（ステップＳ８０２〜Ｓ８０５)。
【０１２０】
ｄｉａｇ  ｍｏｄｕｌｅ１５３による、ループ処理で、全てのハードウェアの診断を正常に終了すると、ＵＥＦＩ１５１は、ＯＳ（オペレーションシステム）１１１の展開先アドレスにある命令をＣＰＵ１４１に読み込ませて実行させ、処理を終了する（ステップＳ８０６）。
【０１２１】
ｄｉａｇ  ｍｏｄｕｌｅ１５３は、ループ処理の途中のステップＳ８０４で、正常終了しなかったときには、全てのハードウェアの診断をステップＳ８０４で、エラー画面を操作表示部１０３のディスプレイ１０４に表示して処理を終了する（ステップＳ８０７）。
【０１２２】
そして、画像形成装置１００は、上述のように、ＯＳ（オペレーションシステム）１１１とファイルシステムイメージ（ｒｏｏｔｆｓ）１６０をＲＡＭ１４３に展開すると、図２５に示すようにオペレーションシステムの起動処理を行う。
【０１２３】
すなわち、ＣＰＵ１４１は、ＳＡＴＡモジュール１５２によって、二次記憶部１４５のＯＳ１１１、特に、ｓｙｓ＿ｍａｉｎ１７０をＲＡＭ１４３に展開し（ステップＳ９０１）、ＯＳ（オペレーションシステム）１１１が使用するデータ構造の初期化を行う（ステップＳ９０２）。なお、ｓｙｓ＿ｍａｉｎ１７０の中にあるｃｏｐｙ１７１は、画像形成装置１００のコピー動作を行うために必要なモジュールである。
【０１２４】
ＣＰＵ１４１は、データ構造の初期化を完了すると、ＯＳ（オペレーションシステム）１１１がサポートする全てのハードウェアをチェックするループ処理を開始し（ステップＳ９０３）、ハードウェアが実際に存在するのを確認して（ステップＳ９０４）、ハードウェアが実際に存在すると、デバイスの初期化を行う（ステップＳ９０５）。ＣＰＵ１４１は、デバイスの初期化を完了すると、ＯＳ１１１がサポートする全てのハードウェアを初期化したかチェックして、全てのハードウェアの初期化を完了していないときには、ループ処理の開始に戻って、上記同様に処理する（ステップＳ９０３〜Ｓ９０６）。
【０１２５】
ステップＳ９０６で、ＯＳ１１１がサポートする全てのハードウェアの初期化が完了すると、ＤＭＡによるファイルシステムイメージ（ｒｏｏｔｆｓ）１６０を展開して（ステップＳ９０７）、展開済みのｒｏｏｔｆｓ１６０からｇｗｉｎｉｔ１３６を起動させる（ステップＳ９０８）。
【０１２６】
次に、画像形成装置１００において、ソフトウェアをインストールするときの処理について、図２５〜図２９に基づいて説明する。
【０１２７】
画像形成装置１００は、第１実施例の情報処理装置１と同様に、ＳＤカード１５０内のソフトウェアファイルを高速に二次記憶部１４５にインストールする。
【０１２８】
ＳＤカード１５０には、図２６に示すように、インストーラ（インストール手段）１８１とｉｎｓｔａｌｌ．ｃｎｆ１８２及びファイルディレクトリ（ｆｉｌｅｓディレクトリ）１８３内に、インストール対象のソフトウェアの複数のファイルｆ１〜ｆｎからなるファイル群が格納されている。インストーラソフト１２とｉｎｓｔａｌｌ．ｃｎｆ１８２は、全体としてインストール制御手段として機能している。
【０１２９】
インストーラ１８１は、ｉｎｓｔａｌｌ．ｃｎｆ１８２に記載されているファイルｆ１〜ｆｎをファイルディレクトリ１８３から探し、ｉｎｓｔａｌｌ．ｃｎｆ１８２で指定されているファイルｆ１〜ｆｎを画像形成装置１００の二次記憶部１４５にＡＳＩＣ１４４の複数のＤＭＡＣを利用してコピーする。
【０１３０】
このコピー処理は、第１実施例におけるソフトウェアのインストール時のコピー処理と同様であり、ＡＳＩＣ１４４の複数、例えば、２つのＤＭＡＣを利用してコピーする。
【０１３１】
そして、画像形成装置１００は、ソフトウェアのインストール処理を図２７に示すように行う。すなわち、ＳＤカード１５０がＳＤカードスロット１４７に挿入されると、ＯＳ１１１がｇｗｉｎｉｔ１３６に通知し、ｇｗｉｎｉｔ１３６が、ＳＤカード１５０を検知して、マウント処理を行って、ＳＤカード１５０内のファイルにファイルシステムを通じてアクセスできるようにする。
【０１３２】
ｇｗｉｎｉｔ１３６は、マウント処理を行うと、インストーラ１８１を起動し、インストーラ１８１は、ファイルディレクトリ１８３のファイルｆ１〜ｆｎのうち、ｉｎｓｔａｌｌ．ｃｎｆ１８２で指定されているファイルｆ１〜ｆｎを順番に、ＡＳＩＣ１４４の複数、例えば、２つのＤＭＡＣを利用して二次記憶部１４５にコピーする。インストーラ１８１は、１つのファイルｆ１〜ｆｎを二次記憶部１４５にコピーする毎に、ｇｗｉｎｉｔ１３６にインストール終了通知を行う。このインストーラ１８１がｇｗｉｎｉｔ１３６に通知するインストール終了通知は、インストーラ１８１の戻り値で行い、「０」で、正常終了、「１」で、異常終了を示している。
【０１３３】
ｇｗｉｎｉｔ１３６は、インストール終了通知があり、異常終了であると、異常終了したファイル名を表示するために、ｉｎｓｔａｌｌ．ｃｎｆ１８２から異常終了したファイルである未書き込み（コピーの完了していない）ファイルのファイル名を取得する。
【０１３４】
ｇｗｉｎｉｔ１３６は、インストールが終了すると、結果画面表示要求をＯＣＳ１３３に行い、この結果画面表示要求には、インストールが異常終了したときには、ｉｎｓｔａｌｌ．ｃｎｆ１８２から取得した未書き込みのファイル名も通知する。
【０１３５】
ＯＣＳ１３３は、ｇｗｉｎｉｔ１３６から結果画面表示要求があると、ＯＳ１１１のデバイスドライバに表示要求を行う。すなわち、ＯＣＳ１３３は、画像形成装置１００の操作表示部１０３のディスプレイ１０４に文字や画像を表示する役割を有するユーザプロセスであり、ＯＳ１１１のドライバを呼び出すことで、操作表示部１０３の制御を行う。
【０１３６】
そして、ＯＣＳ１３３は、インストールが成功したときには、操作表示部１０３のディスプレイ１０４には、例えば、図２８に示すようなインストール成功通知画面Ｇ２を表示させ、インストールに失敗したときには、例えば、図２９に示すようなインストール失敗通知画面Ｇ３を表示させる。
【０１３７】
そして、上記ソフトウェアのインストール処理においては、ファイル書き込み完了後、インストーラ１８１がｉｎｓｔａｌｌ．ｃｎｆ１８２に書き込み完了を記録しており、このｉｎｓｔａｌｌ．ｃｎｆを見ることで、最初に見つかった「未書き込みファイル」が書き込み中断の要因となったファイルと判断できるため、書き込みエラーとなったファイルを表示する。
【０１３８】
このように、本実施例の画像形成装置１００は、第１実施例の場合と同様に、起動時に、起動に必要なハードウェアの初期化処理の実行と、圧縮されたＯＳ（オペレーションシステム）１１１及びｒｏｏｔｆｓ（ファイルシステムイメージ）１６０を記憶する二次記憶部（不揮発性メモリ）１４５から該ＯＳ１１１及びｒｏｏｔｆｓ１６０を、ＡＳＩＣ１４４の内蔵するＤＭＡＣを複数並行起動して、ＡＳＩＣ１４４の内蔵する伸張器で伸張して、ＲＡＭ（揮発性メモリ）１４３にＤＭＡ転送する転送処理を並行して行っている。
【０１３９】
したがって、ＣＰＵ１４１がソフトウェアを実行中に、ＡＳＩＣ１４４の複数のＤＭＡＣを使用して、画像形成装置１００内の二次記憶部１４５からＯＳ１１１やｒｏｏｔｆｓ１６０を、並行して、ＲＡＭ１４３に展開することができ、画像形成装置１００を高速に起動することができる。
【０１４０】
また、本実施例の画像形成装置１００は、ＲＡＭ１４３に、伸張器で伸張後のＯＳ１１１の書き込みを、所定の固定の書き込み開始位置から開始し、該ＯＳ１１１のＲＡＭ１４３への書き込み完了後のオペレーションシステムサイズをＲＡＭ１４３に書き込んで、該書き込み開始位置と伸張後の該オペレーションシステムサイズから該ＯＳ１１１の末尾アドレスを決定して、該末尾アドレスをファイルシステムイメージの書き込み開始位置に設定している。
【０１４１】
したがって、各ファイルの展開位置を正確に知ることができ、他のファイルを誤って上書きすることなく、かつ、ＲＡＭ１４３に隙間なくファイルを展開して、ＲＡＭ１４３を効率よく使用することができる。
【０１４２】
さらに、本実施例の画像形成装置１００は、ＯＳ１１１の転送が完了する前に、ハードウェアの初期化が終了すると、該ＯＳ１１１の実行を該ＯＳ１１１の転送完了まで待たせている。
【０１４３】
したがって、仮にＣＰＵ１４１側で実施するソフトウェアの処理が、ＤＭＡによるＯＳ１１１の展開よりも先に終了したとしても、ＤＭＡによる展開完了を待ち受けることができ、未展開の不確定な状況のファイルを誤って利用することを防止して、画像形成装置１００の堅牢性を向上させることができる。
【０１４４】
また、本実施例の画像形成装置１００は、複数のＤＭＡＣを並行して起動させて、ＯＳ１１１及びｓｙｓ＿ｍａｉｎ１７０を二次記憶部１４５からＲＡＭ１４３に転送している。
【０１４５】
したがって、起動時のＯＳ１１１等の二次記憶部１４５からＲＡＭ１４３への展開を、より一層高速に行うことができる。
【０１４６】
さらに、本実施例の画像形成装置１００は、ＳＤカード（外部装置）１５０の搭載するソフトウェア１４を、複数のＤＭＡＣ２１ａ、２１ｂを並行動作させて、圧縮器で圧縮させた後に、二次記憶部６にインストールしている。
【０１４７】
したがって、二次記憶部６内に外部のＳＤカード１０に記憶されているオペレーティングシステム等の情報処理装置１の起動に必要なソフトウェア１４のインストールを、ＣＰＵ２のみで実施することと比較して、高速に実施することができる。
【０１４８】
また、本実施例の情報処理装置１は、ＳＤカード（外部装置）１５０の搭載するソフトウェアｆ１〜ｆｎを、所定サイズの単位ブロックに分割して、該単位ブロック毎に、ＡＳＩＣ１４４の複数のＤＭＡＣを並行動作させて、圧縮器で圧縮した後に、二次記憶部（不揮発性メモリ）１４５にインストールする際に、二次記憶部１４５に、ソフトウェアｆ１〜ｆｎの単位ブロックのサイズを有する転送先ブロック領域を変数Ｈを利用して確保するとともに、該転送先ブロック領域に対する圧縮後の該ソフトウェアの該単位ブロックの転送が完了すると、該転送先ブロック領域のうち該圧縮後のソフトウェアによって未使用となっている空き領域を他の転送先ブロック領域に解放している。
【０１４９】
したがって、1つずつファイルを二次記憶部１４５にコピーして、コピー後に該ファイルｆ１〜ｆｎの終了地点を割り出した後、その地点から次のファイルｆ１〜ｆｎをコピーするというシーケンシャルな処理を行うことなく、変数Ｈによって、どのブロックが利用中かを、把握することができ、複数のＤＭＡＣを動作させて、並列に複数のファイルをコピーすることができる。
【０１５０】
さらに、本実施例の画像形成装置１００は、ＳＤカード（外部装置）１５０の搭載するソフトウェアを、所定サイズの単位ブロックに分割して、該単位ブロック毎に、複数のＤＭＡＣを並行動作させて、圧縮器で圧縮した後に、二次記憶部（不揮発性メモリ）１４５にインストールする際に、圧縮後のファイルサイズが不明であっても、書き込み開始位置とそのサイズを指定可能としてもよい。
【０１５１】
このようにすると、1つずつファイルを二次記憶部１４５にコピーして、コピー後に該ファイルの終了地点を割り出した後、その地点から次のファイルをコピーするというシーケンシャルな処理を行うことなく、変数Ｈによって、どのブロックが利用中かを、把握することができ、複数のＤＭＡＣを動作させて、並列に複数のファイルをコピーすることができる。
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記実施例で説明したものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【０１５２】
本発明は、起動処理やファイルのインストールを高速で行うコンピュータ、複合装置、複写装置、プリンタ装置等の情報処理装置、起動制御方法、起動制御プログラム及び記録媒体に利用することができる。
【符号の説明】
【０１５３】
１  情報処理装置
２  ＣＰＵ
３  ＲＯＭ
４  ＲＡＭ
５  ＡＳＩＣ
６  二次記憶部
７  バス
１０  外部メモリ
１１  インストーラ
１２  インストーラソフト
１３  一覧ファイル
１４  ファイル群
２１ａ、２１ｂ  ＤＭＡＣ
１００  画像形成装置
１０１  コントローラ
１０２  エンジンＩ／Ｆ
１０３  エンジン
１１０  ソフトウェア群
１１１  ＯＳ
１２０  アプリケーション層
１２１  プリンタアプリ
１２２  コピーアプリ
１２３  ファックスアプリ
１２４  スキャナアプリ
１２５  ネットファイルアプリ
１２６  行程検査アプリ
１２７  ＲＲＵアプリ
１３０  プラットフォーム
１３１  ＥＣＳ（エンジンコントロールサービス）
１３２  ＭＣＳ（メモリコントロールサービス）
１３３  ＯＣＳ（オペレーションパネルコントロールサービス）
１３４  ＦＣＳ（ファックスコントロールサービス）
１３５  ＮＣＳ（ネットワークコントロールサービス）
１３６  ｇｗｉｎｉｔ（初期起動ユーザプログラム）
１３７  ＳＲＭ（システムリソースマネージャ）
１３８  ＳＣＳ（システムコントロールサービス）
１４０  ハードウェア資源
１４１  ＣＰＵ
１４２  ＢＩＯＳ  ＲＯＭ
１４３  ＲＡＭ
１４４  ＡＳＩＣ
１４５  二次記憶部
１４６  バス
１４７  ＳＤカードスロット
１４８  その他のハードウェア
１５１  ＵＥＦＩ
１５２  ＳＡＴＡモジュール（ＳＡＴＡ  ｍｏｄｕｌｅ）
１５３  ｄｉａｇ  ｍｏｄｕｌｅ（診断モジュール）
１６０  ｒｏｏｔｆｓ
１６１  ＩＭＨ
１６２  ＦＣＵＨ
１７０  ｓｙｓ＿ｍａｉｎ
１７１  ｃｏｐｙ
Ｇ１  オペレーションシステム展開エラー通知画面
Ｇ２  インストール成功通知画面
Ｇ３  インストール失敗通知画面
【先行技術文献】
【特許文献】
【０１５４】
【特許文献１】特開２００９−１７５９０４号公報
【特許文献２】特開２００６−１３４０２５号広報
【特許文献３】特開２００８−２９９７９３号広報
【図１】
2012059024.tif 000003
【図２】
2012059024.tif 000004
【図３】
2012059024.tif 000005
【図４】
2012059024.tif 000006
【図５】
2012059024.tif 000007
【図６】
2012059024.tif 000008
【図７】
2012059024.tif 000009
【図８】
2012059024.tif 000010
【図９】
2012059024.tif 000011
【図１０】
2012059024.tif 000012
【図１１】
2012059024.tif 000013
【図１２】
2012059024.tif 000014
【図１３】
2012059024.tif 000015
【図１４】
2012059024.tif 000016
【図１５】
2012059024.tif 000017
【図１６】
2012059024.tif 000018
【図１７】
2012059024.tif 000019
【図１８】
2012059024.tif 000020
【図１９】
2012059024.tif 000021
【図２０】
2012059024.tif 000022
【図２１】
2012059024.tif 000023
【図２２】
2012059024.tif 000024
【図２３】
2012059024.tif 000025
【図２４】
2012059024.tif 000026
【図２５】
2012059024.tif 000027
【図２６】
2012059024.tif 000028
【図２７】
2012059024.tif 000029
【図２８】
2012059024.tif 000030
【図２９】
2012059024.tif 000031