(57)【要約】【課題】制御プログラムを不揮発性メモリから揮発性メモリに転送する間についても制御プログラムの読み出しと実行にかかる時間を短縮し、非動作状態からの起動時間を短縮すること。【解決手段】リーダ制御部310のリーダ用ＣＰＵ801は、非動作状態からの動作開始時に、制御プログラムの初期プログラムを実行し、該初期プログラムの機能により、初期プログラムをＲＡＭ803にＰＩＯ転送し（S400、S401）、該ＰＩＯ転送が完了した段階でリーダ用ＣＰＵ801の制御プログラムの読み出し先をＲＡＭ803に切り替え（S402）、転送制御部840に制御プログラムの他のプログラムのＤＭＡ転送を行わせる（S403〜S418）。【選択図】図１０
2018097629.tif 000002
【特許請求の範囲】
【請求項１】
画像読取装置であって、
制御プログラムを格納する不揮発性メモリと、
前記不揮発性メモリより読み出し速度が速い揮発性メモリと、
前記画像読取装置の非動作状態からの動作開始時に前記制御プログラムを前記不揮発性メモリから読み出して実行する実行手段と、
前記不揮発性メモリから前記揮発性メモリに前記制御プログラムを転送する転送手段と、を有し、
前記実行手段は、前記動作開始時に、前記制御プログラムに含まれる第１プログラムを前記不揮発性メモリから読み出して前記揮発性メモリに転送し、該転送が完了した段階で前記制御プログラムの読み出し先を前記揮発性メモリに切り替え、前記転送手段に対して前記制御プログラムに含まれる他のプログラムの転送を指示する、ことを特徴とする画像読取装置。
【請求項２】
前記第１プログラムは、少なくとも、前記制御プログラムを前記不揮発性メモリから読み出して前記揮発性メモリに転送する機能、前記実行手段の前記制御プログラムの読み出し先を前記不揮発性メモリから前記揮発性メモリに切り替える機能及び前記転送手段に前記制御プログラムの転送を行わせる機能を、前記実行手段に実現させるプログラムであり、
前記実行手段は、前記動作開始時に、前記第１プログラムを前記不揮発性メモリから読み出して実行し、該第１プログラムの機能により、該第１プログラムを前記揮発性メモリに転送し、該転送が完了した段階で前記制御プログラムの読み出し先を前記揮発性メモリに切り替え、前記転送手段に前記制御プログラムに含まれる他のプログラムの転送を行わせる、ことを特徴とする請求項１に記載の画像読取装置。
【請求項３】
前記第１プログラムは、前記動作開始が電源投入による動作開始であるか省電力状態からの復帰による動作開始であるかを判定する機能を、前記実行手段に実現させることが可能であり、
前記実行手段は、前記第１プログラムの機能により、前記動作開始が、電源投入による動作開始であるか省電力状態からの復帰による動作開始であるかを判定し、該判定の結果に基づいて、起動処理の順序を制御することを特徴とする請求項２に記載の画像読取装置。
【請求項４】
前記実行手段は、前記判定の結果に基づいて、前記転送手段に行わせる、前記制御プログラムの転送順序を制御することを特徴とする請求項３に記載の画像読取装置。
【請求項５】
画像を読み取る読取手段と、
前記画像読取装置の全体の制御を行う制御手段と、を有し、
前記実行手段は、前記動作開始が電源投入による動作開始である場合には、前記読取手段の設定を行った後に、前記制御手段との通信設定を行い、前記動作開始が省電力状態からの復帰による動作開始である場合には、前記制御手段との通信設定を行った後に、前記読取手段の設定を行うことを特徴とする請求項３又は４に記載の画像読取装置。
【請求項６】
前記読取手段は、走査部により原稿を走査して画像を読み取るものであり、
前記読取手段の設定は、前記走査部の所定位置への移動を含むことを特徴とする請求項５に記載の画像読取装置。
【請求項７】
画像を読み取る読取手段と、
前記読取手段により読み取られた画像を処理する画像処理手段と、
前記画像読取装置の全体の制御を行う制御手段と、を有し、
前記実行手段は、前記動作開始が電源投入による動作開始である場合には、前記画像処理手段の設定を行った後に、前記制御手段との通信設定を行い、前記動作開始が省電力状態からの復帰による動作開始である場合には、前記制御手段との通信設定を行った後に、前記画像処理手段の設定を行うことを特徴とする請求項３又は４に記載の画像読取装置。
【請求項８】
制御プログラムを格納する不揮発性メモリと、前記不揮発性メモリより読み出し速度が速い揮発性メモリと、装置の非動作状態からの動作開始時に前記制御プログラムを前記不揮発性メモリから読み出して実行する実行手段と、前記不揮発性メモリから前記揮発性メモリに前記制御プログラムを転送する転送手段と、を有する画像読取装置の制御方法であって、
前記実行手段が、前記動作開始時に、前記制御プログラムに含まれる第１プログラムを、前記不揮発性メモリから読み出して前記揮発性メモリに転送する第１転送ステップと、
前記実行手段が、該転送が完了した段階で前記制御プログラムの読み出し先を前記揮発性メモリに切り替える切り替えステップと、
前記実行手段が、前記転送手段に前記制御プログラムに含まれる他のプログラムの転送を行わせる第２転送ステップと、
を有することを特徴とする画像読取装置の制御方法。
【請求項９】
コンピュータを、請求項１〜７のいずれか１項に記載の実行手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像読取装置の起動制御に関するものである。
【背景技術】
【０００２】
複写機、ファクシミリ装置等の画像処理装置には、原稿の画像を光学的に読み取って画像データを得るスキャナ等の画像読取装置が備えられている。近年では、ＦＣＯＴ（First Copy Output Time）、すなわち、コピー開始を指示してから１枚目が出力されるまでの時間、の短縮が望まれていると共に、装置の動作における処理速度の高速化が望まれている。また、画像読取装置に電源が投入されてから、画像読取装置が使用可能になるまでの時間、すなわち、電源投入後画像読取装置の起動処理が終了するまでの時間（以下「起動時間」）の短縮も望まれている。
【０００３】
処理速度の高速化のための手段として、制御プログラムの読み出し速度の高速化が挙げられる。画像読取装置はリードオンリーメモリ（以下「ＲＯＭ」）及びランダムアクセスメモリ（以下「ＲＡＭ」）を備えている。制御プログラムはＲＯＭに格納されているが、それぞれのメモリに格納されているデータを読み出す速度は、ＲＡＭの方が速い。そこで、画像読取装置の起動時に、ＲＯＭに格納されている制御プログラムをＲＡＭへ転送し、転送が完了した後、ＲＡＭから制御プログラムを読み出して実行する。これにより、ＲＯＭから直接制御プログラムを読み出し実行する場合に比べ、制御プログラムの読み出しと実行に要する時間の短縮、すなわち処理速度の高速化が可能となる。
【０００４】
しかし、ＲＡＭは揮発性メモリであるので、ＲＡＭへの電源供給が停止されると、ＲＡＭに格納された内容は失われてしまう。そのため、起動時には毎回、制御プログラムをＲＯＭからＲＡＭに転送する必要がある。しかし、まず制御プログラム全量の転送を行ってから、その後にＲＡＭから制御プログラムを読み出して実行すると、制御プログラムの転送を行わずにＲＯＭから制御プログラムを読み出し実行する場合に比べ、制御プログラムの転送を行う分だけ起動時間が長くなってしまう。
【０００５】
特許文献１では、ＲＯＭから制御プログラムを読み出して実行することと、制御プログラムをＲＯＭからＲＡＭに転送することを並行して行うことで、起動時間を短縮する技術が提案されている。制御プログラムの転送が完了した後は、制御プログラムの読み出し先をＲＯＭからＲＡＭに切り替えることで、処理速度を高速化できる。
【０００６】
また、特許文献２では、起動時にモードが指定されるデジタルカメラにおいて、制御プログラムのうち各モードに共通する部分を読み込んで実行した後、指定されているモードを判定し、モードに応じ必要な制御プログラムの部分を読み込んで実行する技術が提案されている。すなわち、特許文献２では、起動時に撮影モードが指定されれば、撮影モードに必要な制御プログラムの部分を読み込んで実行し、起動時に再生モードが指定されれば、再生モードに必要な制御プログラムの部分を読み込んで実行する。この技術に依れば、制御プログラムの全量を読み込む場合に比べ、指定されたモードに不要な制御プログラムの部分を読み込まない分だけ起動時間が短縮できる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１３−９７７１５号公報
【特許文献２】特許４１１１６４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
画像読取装置を起動する際には、装置全体の電源を投入する「電源ＯＮ」の場合と、「スリープ（一時的に装置を使用しない間、装置の一部への電力供給を停止することで節電する非動作状態；省電力状態）からの復帰」の場合とがある。ユーザにとって装置の使い勝手をよくするためには、いずれの場合においても、処理の高速化と起動時間の短縮を両立させる必要がある。以下、処理の高速化と起動時間の短縮を両立させる際の課題について説明する。
【０００９】
特許文献１に記載の技術では、先述の通り、制御プログラムの転送が完了し、制御プログラムの読み出し先をＲＯＭからＲＡＭに切り替えた後については、ＲＯＭから直接制御プログラムを読み出し実行する場合に比べ、処理速度を高速化できる。しかし、制御プログラムの転送中、すなわち制御プログラムの読み出し先をＲＯＭからＲＡＭに切り替える前については、むしろ処理速度が低速化する可能性がある。特許文献１の技術では、制御プログラムの転送中は、制御プログラムをＲＯＭからＲＡＭに転送することと、ＲＯＭから直接制御プログラムを読み出して実行することを並行して行う。そのため、制御プログラムを転送するためのＲＯＭへのアクセスと、制御プログラムを読み出して実行するためのＲＯＭへのアクセスが競合した場合、どちらか一方が待ち状態となってしまうためである。
【００１０】
また、特許文献２に記載の技術では、電源投入後にまず制御プログラムのうち各モードに共通する部分を読み込むが、共通する部分が大きい場合は、読み込みに時間がかかり、起動時間の短縮量は少なくなってしまう。なお、画像読取装置における起動時のモードには「電源ＯＮ」と「スリープ復帰」がある。画像読取装置の「電源ＯＮ」と「スリープ復帰」とでは、起動時に行う必要のある処理は同一であるため、必要となる制御プログラムも同一であり、特許文献２に記載の技術を画像読取装置に適用することはできない。
【００１１】
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、制御プログラムを不揮発性メモリから揮発性メモリに転送する間についても制御プログラムの読み出しと実行にかかる時間を短縮し、非動作状態からの起動時間を短縮することができる仕組みを提供することである。
【課題を解決するための手段】
【００１２】
本発明は、画像読取装置であって、制御プログラムを格納する不揮発性メモリと、前記不揮発性メモリより読み出し速度が速い揮発性メモリと、前記画像読取装置の非動作状態からの動作開始時に前記制御プログラムを前記不揮発性メモリから読み出して実行する実行手段と、前記不揮発性メモリから前記揮発性メモリに前記制御プログラムを転送する転送手段と、を有し、前記実行手段は、前記動作開始時に、前記制御プログラムに含まれる第１プログラムを前記不揮発性メモリから読み出して前記揮発性メモリに転送し、該転送が完了した段階で前記制御プログラムの読み出し先を前記揮発性メモリに切り替え、前記転送手段に対して前記制御プログラムに含まれる他のプログラムの転送を指示する、ことを特徴とする。
【発明の効果】
【００１３】
本発明によれば、制御プログラムを不揮発性メモリから揮発性メモリに転送する間についても制御プログラムの読み出しと実行にかかる時間を短縮し、非動作状態からの起動時間を短縮することができる。したがって、電源投入による動作開始と省電力状態からの復帰による動作開始のいずれの場合においても、非動作状態からの起動時間を短縮することができる。
【図面の簡単な説明】
【００１４】
【図１】本実施例の画像読取装置の断面図
【図２】画像読取装置の制御部のブロック図
【図３】リーダ用ＣＰＵの仮想アドレス空間へのメモリの割り当てを説明する図
【図４】光学スキャナユニットのＨＰ出しにおける動作を説明する図
【図５】光学スキャナユニットのＨＰ出しにおける制御処理のフローチャート
【図６Ａ】実施例１の通信初期化処理の流れを示す図
【図６Ｂ】実施例１の通信初期化処理の流れを示す図
【図７】リーダ制御部における通信初期化処理のフローチャート
【図８】コントローラ部における通信初期化処理のフローチャート
【図９】実施例１のリーダ制御部の起動処理の実行及び転送の流れを示した図
【図１０】実施例１のリーダ制御部の起動処理のフローチャート
【図１１Ａ】実施例２の通信初期化処理の流れを示す図
【図１１Ｂ】実施例２の通信初期化処理の流れを示す図
【図１２】実施例２のリーダ制御部の起動処理の実行及び転送の流れを示した図
【図１３】実施例２のリーダ制御部の起動処理のフローチャート
【発明を実施するための形態】
【００１５】
以下、本発明の実施例における画像読取装置の構成例を、図面を参照して説明する。
【実施例１】
【００１６】
＜画像読取装置の構成＞
図１は、本発明の一実施例を示す画像読取装置の構成を例示する断面図である。
図１に示すように、画像読取装置1000は、原稿の画像を読み取る画像読取部（以下「リーダ」）200と、自動原稿給紙部（以下「ＡＤＦ」）100を備えており、さらにコントローラ部300（図２）が接続されている。なお、ＡＤＦは、Automatic Document Feederの略である。
【００１７】
（リーダ200の構成）
リーダ200の動作について、図１を参照しながら説明する。
リーダ200は、原稿台ガラス209上に載置された原稿について、走査部としての光学スキャナユニット202を図１の矢印に示す副走査方向に一定速度で走査することで、原稿に記録されている画像情報を後述の方法で読み取る。この読取方法を、以下「固定読み」という。
【００１８】
また、リーダ200は、ＡＤＦ100上の原稿については、光学スキャナユニット202をＡＤＦ100のリードローラ6の中心位置に来るように移動し、後述の方法で給紙搬送される原稿に記録されている画像情報を、後述の方法で読み取る。この読取方法を、以下「流し読み」という。
【００１９】
また、シェーディング白板210は、シェーディングによる白レベルの基準データを作成するための白板であり、原稿の読み取り直前にシェーディング白板210を後述の方法で読み取り、画像処理することで基準データを作成する。シェーディング白板210の読み取りおよび基準データの作成は、ユーザにより原稿の読み取り指示が入力されてから、原稿の読み取り前に行う。
【００２０】
例外として、予めシェーディング白板210の読み取りおよび基準データの作成を行い、光学スキャナユニット202を原稿の読み取り開始位置に移動させておき、所定時間内（例えば１５秒内）にユーザにより原稿の読み取り指示が入力されれば、すぐに原稿の読み取りを開始する。これにより、ＦＣＯＴを短縮することができる。ただし、所定時間内に原稿の読み取り指示が入力されなかった場合は、予め作成した基準データを用いることなく、原則通りユーザにより原稿の読み取り指示が入力された後、原稿の読み取り前に改めてシェーディング白板210の読み取りおよび基準データの作成を行う。これは、時間の経過により、基準データの信頼性が失われるためである。
【００２１】
画像情報の読み取りは、次の方法で行われる。この方法は、固定読みと流し読み、またシェーディング白板210の読み取りにおいて共通である。
リーダ200の制御を司るリーダ用ＣＰＵ801（図２）は、光学スキャナユニット202が原稿またはシェーディング白板210の下に位置した状態で、ＬＥＤ203a、203bを点灯し、原稿またはシェーディング白板210の表面を照射させる。その反射光は、ミラー204a、204b、204cで折り返し反射されながら、画像読取センサ208へ達する。画像読取センサ208は、この反射光を入力として、画像情報を１ラインずつ読み取っていく。
【００２２】
（ＡＤＦ100の構成）
ＡＤＦ100の動作について、図１を参照しながら説明する。
ＡＤＦ100は、１枚以上の原稿シートで構成される原稿束Sを積載する原稿トレイ30と、原稿の搬送開始前に、原稿束Sが原稿トレイ30より突出して下流への進出を規制する分離パッド21及び分離ローラ2と、給紙ローラ1とを有する。給紙ローラ1は、原稿トレイ30に積載された原稿束Sの原稿面に落下して回転する。これにより、原稿束の最上面の原稿が給紙される。給紙ローラ1によって給紙された原稿は、分離ローラ2と分離パッド21の作用によって１枚に分離される。この分離は公知の分離技術によって実現されている。
【００２３】
分離ローラ2と分離パッド21によって分離された原稿は、引抜ローラ3により、レジストローラ4へ搬送され、まだ駆動していないレジストローラ4に突き当てられる。これにより原稿はループ状のたわみが形成され、原稿の搬送における斜行が解消される。レジストローラ4の下流側には、レジストローラ4を通過した原稿を流し読みガラス201方向へ搬送する給紙路が配置されている。
【００２４】
給紙路に送られた原稿は、読み取り上流ローラ5によって画像読取位置に搬送される。原稿が流し読みガラス201とリードローラ6の間を通過する際、画像読取センサ208によって、リードローラ6直下の原稿読取位置において、原稿に記録された画像情報が1ラインずつ光学的に読み取られる（流し読み）。読み取り下流ローラ7により搬送された原稿は、排紙ローラ12によって排紙トレイ13まで搬送される。原稿が原稿トレイ30上に複数枚有る場合には、最終原稿の読取及び排紙トレイ13への排紙が終了するまで、前述の原稿束Sからの給紙、分離、搬送処理、原稿読取位置での読み取り処理、及び排紙処理、を繰り返す。なお、原稿トレイ30には原稿検知センサ14があり、原稿トレイ30上の原稿の有無が判断できるようになっている。
【００２５】
＜画像読取装置1000の制御部の構成＞
図２は、画像読取装置1000の制御部の構成を例示するブロック図である。
まず、画像読取制御部（以下「リーダ制御部」）310について説明する。
リーダ制御部310は、リーダ200及びＡＤＦ100の動作を制御する。リーダ制御部310は、中央演算処理装置である画像読取用ＣＰＵ801（以下「リーダ用ＣＰＵ」）、ＲＯＭ802、ＲＡＭ803を備えている。ＲＯＭ802には、リーダ制御部310の制御プログラムが格納されている。ＲＡＭ803には、入力データや作業用データが格納されるほか、ＲＯＭ802から転送されたリーダ制御部310の制御プログラムが格納される。
【００２６】
リーダ用ＣＰＵ801には、原稿搬送機能を実現するために、各種搬送用のローラを駆動する搬送モータ810、ソレノイド811、クラッチ812、原稿搬送の制御に用いる各種センサである搬送パスセンサ813、原稿検知センサ14等がそれぞれ接続されている。
【００２７】
また、リーダ用ＣＰＵ801には、画像読取機能を実現するために、ＬＥＤ203、画像読取センサ208、光学スキャナユニット202を副走査方向に移動させるための光学モータ822、ホームポジションセンサ（以下「ＨＰセンサ」）211等がそれぞれ接続されている。
【００２８】
リーダ用ＣＰＵ801は、光学モータ822の回転の駆動パルス数を管理しながら制御することで、光学スキャナユニット202の位置を情報として管理可能である。画像読取センサ208によって読み取られた画像データは、画像処理部833を介して、一度、画像メモリ832に格納される。画像処理部833は、画像読取センサ208によって読み取られた画像データに対して画像処理を施す。
【００２９】
さらに、リーダ用ＣＰＵ801には、データの転送を制御する転送制御部840が接続されている。転送制御部840は、例えば、ＤＭＡ（Direct Memory Access）転送を制御するＤＭＡコントローラである。リーダ用ＣＰＵ801から転送制御部840に転送に関する情報を指定して転送制御部840に対して転送開始を指示することで、転送制御部840は、ＲＯＭ802からＲＡＭ803への制御プログラムの転送を行うことができる。転送制御部840による転送は、リーダ用ＣＰＵ801のアクセスバスとは異なる、転送制御部840専用のアクセスバスを用いて行われる。そのため、転送処理そのものについては、リーダ用ＣＰＵ801が関与することはない。すなわち、転送制御部840がデータの転送を制御している間、リーダ用ＣＰＵ801は他の処理を行うことができる。例えば、転送制御部840によるデータ転送中においても、リーダ用ＣＰＵ801はＲＡＭ803から制御プログラムを読み出して実行できる。
【００３０】
なお、本実施例においては、転送制御部840は、ＤＭＡコントローラであり、ＲＯＭ802からＲＡＭ803への制御プログラムの転送にＤＭＡ転送を用いるが、本発明はこれに限定されるものではない。転送制御部840の制御によりリーダ用ＣＰＵ801とは独立してデータの転送を行うことができ、転送制御部840がデータの転送を制御している間、リーダ用ＣＰＵ801が、転送処理と競合することなく他の処理を行うことができる構成であれば、どのような構成であってもよい。
【００３１】
次に、コントローラ部300について説明する。
コントローラ部300は、画像読取装置1000の装置全体を制御する。コントローラ部300は、ＣＰＵ901、ＲＯＭ902、ＲＡＭ903を備えている。ＲＯＭ902には、コントローラ部300の制御プログラムが格納されており、ＲＡＭ903には、入力データや作業用データが格納されるほか、ＲＯＭ902から転送されたコントローラ部300の制御プログラムが格納される。
【００３２】
コントローラ部300は、画像処理部833と画像処理部905の間の画像ライン353を通じて、リーダ制御部310から画像メモリ832に格納されている画像データを受信する。受信した画像データは、画像処理部905において各種のフィルタ処理を施され、画像メモリ906に格納される。
【００３３】
コントローラ部300は、ＣＰＵ901とリーダ用ＣＰＵ801の間に設けられた通信ライン354を介して、リーダ制御部310と画像読取制御に関する制御コマンド及び制御用データの授受を行う。例えば、ＣＰＵ901は、リーダ用ＣＰＵ801から原稿検知センサ14の出力を受信する。ＣＰＵ901は、受信した原稿検知センサ14の出力に基づき、原稿トレイ30上に原稿束Sが積載されているか否かを判断する。
【００３４】
コントローラ部300には、電源340が接続されている。コントローラ部300は、電力供給ライン350を通じ、電源340から電力の供給を受け動作する。ＣＰＵ901は、コントローラ部300内の電力の供給を制御している。例えば、ＣＰＵ901は、スリープ（省電力モード）への切り替え時、すなわちＣＰＵ901等の一部の箇所にのみ電力を供給し、他の箇所については電力を供給しない状態（省電力状態）への切り替え時に、ＣＰＵ901は、ＲＯＭ902、画像処理部905、画像メモリ906への電力の供給を停止する。
【００３５】
さらに、電力供給ライン350を通じ供給された電力は、ＣＰＵ901と、リーダ制御部310に接続されたリーダ用電力供給ライン355を介し、リーダ制御部310へ供給される。ＣＰＵ901は、リーダ用電力供給ライン355を通じ、リーダ制御部310への電力の供給を制御している。
【００３６】
例えば、装置への電源投入時はＣＰＵ901が最初に起動し、ＣＰＵ901によりリーダ制御部310への給電制御が行われる。また、スリープへの切り替え時、ＣＰＵ901はリーダ制御部310への電力の供給を停止する。スリープからの復帰、すなわち、電力の供給を停止していたリーダ制御部310を含む装置の一部への電力供給の再開も、ＣＰＵ901による給電制御によって行われる。
【００３７】
コントローラ部300は、ＣＰＵ901とリーダ用ＣＰＵ801の間に設けられたスリープ復帰通知ライン356を通じて、スリープ復帰時にリーダ制御部310へスリープ復帰であることを通知する。これにより、リーダ制御部310は、動作開始が電源ＯＮによるものなのか、スリープ復帰によるものなのかを判定できる。
【００３８】
コントローラ部300は、ＣＰＵ901とリーダ用ＣＰＵ801の間に設けられた通信準備完了通知ライン357を通じて、起動時にリーダ制御部310へ通信準備完了を通知する。また、リーダ制御部310も、通信準備完了通知ライン357を通じて、コントローラ部300へ通信準備完了を通知する。
また、コントローラ部300は、操作表示部としての操作部904を備えており、ユーザとのインターフェース制御は操作部904を介してＣＰＵ901によって行われる。
【００３９】
＜画像読取装置1000の動作停止時、動作開始時に行う処理の説明＞
本実施例において、画像読取装置1000は「電源ＯＦＦ」と「スリープ」の２つの非動作状態をもつ。「電源ＯＦＦ」は、画像読取装置1000全体の電源が停止している状態である。「スリープ」は、制御回路、例えばＣＰＵ901等の一部の箇所にのみ電力を供給し、他の箇所については電力を供給しない状態（省電力状態）である。「電源ＯＦＦ」状態から動作を開始することを「電源ＯＮ」と呼ぶ。また、「スリープ」状態から動作を開始することを「スリープ復帰」と呼ぶ。さらに、「電源ＯＮ」と「スリープ復帰」を合わせて「動作開始」という。また、動作状態から非動作状態（「電源ＯＦＦ」又は「スリープ」）へ移行することを「動作停止」と呼ぶ。
【００４０】
以下、画像読取装置1000が動作停止時及び動作開始時に行う処理について、コントローラ部300、リーダ制御部310のそれぞれについて、図２を用いて説明する。
【００４１】
（コントローラ部300  動作停止時：電源ＯＦＦ）
「電源ＯＦＦ」時は、動作停止処理の後、画像読取装置1000全体への電力の供給が停止される。操作部904を介し、ユーザから「電源ＯＦＦ」の指示が入力された時、ＣＰＵ901は、通信ライン354を介しリーダ用ＣＰＵ801へ「電源ＯＦＦ」コマンドを送信し、リーダ制御部310の動作停止を指示する。続いて、ＣＰＵ901は、コントローラ部300の電源ＯＦＦ処理を行う。ＣＰＵ901は、リーダ用ＣＰＵ801から、通信ライン354を通じてリーダ制御部310の「動作停止準備完了」コマンドを受信し、電力供給ライン355を通じたリーダ制御部310への電力供給を停止する。また、ＣＰＵ901は、リーダ制御部310への電力供給の停止と、コントローラ部300の電源ＯＦＦ処理の両方が完了した後、電力供給ライン350を通じたコントローラ部300への電力供給を停止する。
【００４２】
（コントローラ部300  動作停止時：スリープ）
「スリープ」時は、ＣＰＵ901及びＲＡＭ903を含む画像読取装置1000の一部の箇所は電力が供給され、それ以外の部分については電力の供給が停止される。操作部904を介し、ユーザから「スリープ」の指示が入力された時、又は、装置内のタイマーにより自動的に「スリープ」に移行するよう設定されていて、それが実行された時、画像読取装置1000は「スリープ」へ移行する。「スリープ」への移行時、ＣＰＵ901は、通信ライン354を介しリーダ用ＣＰＵ801へ「スリープ」コマンドを送信し、リーダ制御部310の動作停止を指示する。続いて、ＣＰＵ901は、コントローラ部300のスリープ処理を行う。ＣＰＵ901は、リーダ用ＣＰＵ801から、通信ライン354を通じてリーダ制御部310の「動作停止準備完了」コマンドを受信し、電力供給ライン355を通じたリーダ制御部310への電力供給を停止する。また、ＣＰＵ901は、リーダ制御部310への電力供給の停止と、コントローラ部300のスリープ処理の両方が完了した後、コントローラ部300の一部への電力の供給を停止する。具体的には、ＣＰＵ901は、ＲＯＭ902、画像処理部905、画像メモリ906への電力の供給を停止する。
【００４３】
（リーダ制御部310  動作停止時：電源ＯＦＦ，スリープ）
操作部904を介し、ユーザから「電源ＯＦＦ」又は「スリープ」の指示が入力された時、先述の通り、ＣＰＵ901は、通信ライン354を介しリーダ用ＣＰＵ801へ「電源ＯＦＦ」又は「スリープ」コマンドを送信し、リーダ制御部310の「動作停止」を指示する。リーダ用ＣＰＵ801は動作停止指示を受け、リーダ制御部310の動作停止処理を行う。リーダ制御部310の動作停止処理としては、例えば、光学スキャナユニット202の移動が挙げられる。具体的には、動作停止指示を受けた時、光学スキャナユニット202がＦＣＯＴ短縮のために原稿の読み取り開始位置に位置していた場合には、リーダ制御部310は、光学スキャナユニット202をホームポジションH（所定位置）へ移動させる。リーダ制御部310の動作停止処理完了後、リーダ用ＣＰＵ801は、通信ライン354を介し、ＣＰＵ901へ「動作停止準備完了」コマンドを送信する。その後、先述の通り、ＣＰＵ901はリーダ用ＣＰＵ801の「動作停止準備完了」コマンドを受け、電力供給ライン355を通じたリーダ制御部310への電力供給を停止する。
【００４４】
（コントローラ部300  動作開始時：電源ＯＮ）
電源ＯＮ、すなわち画像読取装置1000へ電源が投入されると、まずＣＰＵ901へ電源が供給される。ＣＰＵ901へ電力が供給されると、ＣＰＵ901はハードウェアリセットされる。リセットが解除された後、ＣＰＵ901は、ＲＯＭ902に格納されているコントローラ部300の制御プログラムを読み出し、読み出したプログラムに従い、コントローラ部300の起動処理を実行する。コントローラ部300の起動処理とは、例えば以下の処理を含む。ＣＰＵ901は、コントローラ部300全体への電力の供給を開始する。ＣＰＵ901は、電力供給ライン355を通じリーダ制御部310へ電力の供給を開始する。ＣＰＵ901は、ＲＯＭ902に格納されているコントローラ部300の制御プログラムをＲＡＭ903へ転送する。ＣＰＵ901は、その他、画像読取システムとして必要な初期動作を行う。これらの処理を行った後に、ＣＰＵ901は、後述する方法で、リーダ制御部310との通信初期化（通信設定）を行う。ＣＰＵ901は、リーダ制御部310との通信初期化を終えると、コントローラ部300の起動処理を終了する。コントローラ部300は、起動処理を終えると、操作部904を通じたユーザ操作を受け付け可能な状態となる。
【００４５】
（コントローラ部300  動作開始時：スリープ復帰）
スリープの間は、電源ＯＦＦの場合と異なり、ＣＰＵ901及びＲＡＭ903へ電源が供給された状態が保たれている。特に、ＲＡＭ903については、スリープ以前に格納されたデータが保持されている。したがって、ＣＰＵ901のハードウェアリセットや、ＲＯＭ902に格納されているコントローラ部300の制御プログラムをＲＡＭ903へ転送する処理など、画像読取システムとして必要な初期動作のうちのいくつかは不要となる。スリープ時にＣＰＵ901が何らかのスリープ復帰要求を受けると、ＣＰＵ901は、コントローラ部300のスリープ復帰処理を実行する。スリープ復帰要求としては、例えば、操作部904へのユーザの入力がある。コントローラ部300のスリープ復帰処理とは、例えば以下の処理を含む。ＣＰＵ901は、スリープの間電力の供給を停止していたＲＯＭ902、画像処理部905、画像メモリ906へ電力の供給を開始する。ＣＰＵ901は、スリープ復帰通知ライン356を通じ、リーダ制御部310へスリープ復帰であることを通知した状態で、電力供給ライン355を通じリーダ制御部310へ電力の供給を開始する。スリープ復帰通知ライン356は、例えば、電気的な信号線で構成され、信号線の電圧がしきい値より高ければ、スリープ復帰であることを表し、信号線の電圧がしきい値より低ければ、電源ＯＮであることを表すものである。ＣＰＵ901は、リーダ制御部310へ電力の供給を開始する前に、スリープ復帰通知ライン356の電圧を上げてしきい値より高い状態にし、その状態を保ったまま、リーダ制御部310へ電力の供給を開始する。
【００４６】
ＣＰＵ901は、その他画像読取システムとして必要な初期動作のうち、スリープ復帰の場合も必要になるものを行う。これらの処理を行った後に、ＣＰＵ901は、後述する方法で、リーダ制御部310との通信初期化を行う。ＣＰＵ901は、リーダ制御部310との通信初期化を終えると、コントローラ部300のスリープ復帰処理を終了する。コントローラ部300は、スリープ復帰処理を終えると、操作部904を通じたユーザ操作を受け付け可能な状態となる。なお、スリープ復帰の場合、ＲＯＭ902に格納されているコントローラ部300の制御プログラムをＲＡＭ903へ転送する処理などの、画像読取システムとして必要な初期動作のうちのいくつかが不要なことから、電源ＯＮ時のコントローラ部300の起動処理に比較して、コントローラ部300のスリープ復帰処理は実行時間が短縮される。
【００４７】
（リーダ制御部310  動作開始時：電源ＯＮ、スリープ復帰）
電源ＯＮ時、先述の通り、ＣＰＵ901は、電力供給ライン355を通じリーダ制御部310へ電力の供給を開始する。リーダ制御部310への電力の供給が開始されると、リーダ用ＣＰＵ801は、ハードウェアリセットされる。リセットが解除された後、リーダ用ＣＰＵ801は、ＲＯＭ802に格納されているリーダ制御部310の制御プログラムを読み出し、リーダ制御部310の起動処理を開始する。リーダ制御部310の起動処理については後述する。リーダ制御部310は、起動処理を終えると、原稿読み取り可能な状態になる。コントローラ部300とは異なり、リーダ制御部310が動作開始時に行う処理は、「電源ＯＮ」と「スリープ復帰」で共通している。しかし、後述するように、「電源ＯＮ」の場合と「スリープ復帰」の場合で、処理の実行順序を変えることで、起動時間を短縮することが可能になる。
【００４８】
＜リーダ制御部310の制御プログラムについて＞
リーダ制御部310は、リーダ制御部310の制御プログラムに基づき各処理を実行する。リーダ用制御プログラムは、初期プログラム、リアルタイムオペレーティングシステム（以下「ＯＳ」）、光学モータ制御処理プログラム、通信処理プログラム、その他制御プログラムから成る。初期プログラムには、例えば、リーダ制御部310の制御プログラムの転送処理や、制御プログラムの読み出し先をＲＯＭ802からＲＡＭ803へ切り替える処理、転送制御部840の初期設定や転送指示を行う処理、動作開始要因の判定処理などを行うためのプログラムが含まれる。光学モータ制御処理プログラムは、光学モータ822の駆動を制御するための処理プログラムである。通信処理プログラムは、コントローラ部300との通信ライン354を介した通信を制御するための処理プログラムである。その他制御プログラムには、搬送モータ810の制御処理や、原稿読み取り処理を行うためのプログラム等が含まれる。
【００４９】
（プログラムの読み出しと実行）
リーダ制御部310の制御プログラムは、ＲＯＭ802に格納されている。リーダ用ＣＰＵ801は、リーダ制御部310の起動処理、原稿読み取り処理等の動作を行う上で、制御プログラムのうち、その処理に該当する部分を読み出し、実行することでリーダ200及びＡＤＦ100の動作を制御する。特に、画像読取装置1000の動作開始時、リーダ用ＣＰＵ801は、ＲＯＭ802に格納されている制御プログラムのうち、初期プログラムを読み出して実行する。
【００５０】
ＲＯＭ802は、例えばフラッシュメモリで構成される不揮発性メモリであるため、電源が供給されない状態であっても記録された内容を保持する。一方、ＲＡＭ803は、揮発性メモリであり、記録されたデータの保持には電力を要する。ＲＡＭ803では、一度、記録したデータであっても、電源が供給されない状態になると、データは失われてしまう。
【００５１】
リーダ用ＣＰＵ801は、ＲＯＭ802及びＲＡＭ803に記録されたデータにアクセスし、データを利用する。ＲＡＭ803は、ＲＯＭ802と比較して、読み出し速度が速く、記録されたデータへのアクセスをＲＯＭ802より短時間で行える。したがって、制御プログラムをＲＯＭ802からＲＡＭ803へ転送し、処理の実行時にはＲＡＭ803から読み出すことで、処理速度の高速化が可能となる。ただし、先述の通り、ＲＡＭ803は揮発性メモリであるため、画像読取装置の起動時、すなわち電源ＯＮ時やスリープ復帰時には、毎回制御プログラムをＲＯＭ802からＲＡＭ803へ転送する必要がある。
【００５２】
（制御プログラム読み出し先の切り替え）
リーダ用ＣＰＵ801は、リーダ制御部310の制御プログラムの読み出し先として、ＲＯＭ802とＲＡＭ803が選択可能である。例えば、リーダ用ＣＰＵ801は、図３に示すように、仮想アドレス空間400に物理アドレス空間をマッピングすることでメモリ管理を行っている。仮想アドレス空間410は仮想アドレス空間400の部分であり、リーダ用ＣＰＵ801は、制御プログラムの読み出し先として仮想アドレス空間410を用いる。仮想アドレス空間410へのメモリの割り当てを変更することで、制御プログラムの読み出し先が変更できる。以下、図３を用いて詳細に説明する。
【００５３】
図３は、リーダ用ＣＰＵ801の仮想アドレス空間410へのメモリの割り当てを例示する図である。
図３（ａ）は、制御プログラムの読み出し先としてＲＯＭ802が選択されている場合に対応する。画像読取装置1000の動作開始時、仮想アドレス空間410aにはＲＯＭ802の物理アドレス空間420aが割り当てられ、図３（ａ）の状態になっている。この状態で、リーダ用ＣＰＵ801が仮想アドレス空間410aにアクセスすると、仮想アドレス空間410aに割り当てられたＲＯＭ802の物理アドレス空間420aがアクセスされることになる。すなわち、リーダ用ＣＰＵ801は、仮想アドレス空間410aにアクセスすることにより、初期プログラムを読み出し、初期プログラムを実行することができる。
【００５４】
図３（ｂ）は、制御プログラムの読み出し先としてＲＡＭ803が選択されており、ＲＡＭ803へ制御プログラムが転送済みである場合に対応する。
ＲＡＭ803は、ＲＯＭ802から転送したリーダ制御部310の制御プログラムを格納する制御プログラム用領域と、入力データや作業データを格納する作業用領域からなり、それぞれ物理アドレス空間431及び432が対応する。
【００５５】
リーダ用ＣＰＵ801が仮想アドレス空間410へのメモリの割り当てをＲＡＭ803の制御プログラム用領域の物理アドレス空間431へ変更することを、以下「リマップする」という。
【００５６】
ＲＯＭ802からＲＡＭ803の制御プログラム用領域へ制御プログラムを転送した後に、リーダ用ＣＰＵ801がリマップすることで、リーダ用ＣＰＵ801は転送済みの制御プログラムをＲＡＭ803から読み出して実行できるようになる。例えば、図３（ｂ）の状態で、リーダ用ＣＰＵ801が仮想アドレス空間410bにアクセスすると、仮想アドレス空間410bに割り当てられたＲＡＭ803の物理アドレス空間431bがアクセスされることになる。すなわち、リーダ用ＣＰＵ801は、仮想アドレス空間410bにアクセスすることにより、ＯＳを読み出すことができる。
【００５７】
＜リーダ制御部310の制御プログラムの転送方法＞
リーダ制御部310の制御プログラムの転送には、リーダ用ＣＰＵ801による転送と、転送制御部840による転送を用いる。以下、リーダ用ＣＰＵ801により制御プログラムを転送することを、「ＰＩＯ転送」という。なお、ＰＩＯは、Program Input / Outputの略である。また、本実施例においては、転送制御部840はＤＭＡコントローラであるため、以下、転送制御部840により制御プログラムを転送することを「ＤＭＡ転送」という。以下、ＰＩＯ転送及びＤＭＡ転送について、図２を用いて説明する。
【００５８】
（ＰＩＯ転送についての説明）
ＰＩＯ転送では、リーダ用ＣＰＵ801が転送の制御を行う。例えば、ＲＯＭ802からＲＡＭ803へＰＩＯ転送により制御プログラムを転送するとき、リーダ用ＣＰＵ801は、まず転送元アドレスからＲＯＭ802にアクセスして格納されているデータを読み出す。そして、リーダ用ＣＰＵ801は、転送先アドレスからＲＡＭ803にアクセスし、上記ＲＯＭ802から読み出したデータをＲＡＭ803に書き込む。リーダ用ＣＰＵ801は、このデータの読み出しと書き込みを、転送サイズに応じ繰り返し行う。なお、転送サイズ分の転送が完了するまで、リーダ用ＣＰＵ801は他の処理を実行できない。
【００５９】
（ＤＭＡ転送についての説明）
ＤＭＡ転送では、転送制御部840が転送の制御を行う。例えば、ＲＯＭ802からＲＡＭ803へＤＭＡ転送により制御プログラムを転送するとき、まず、リーダ用ＣＰＵ801が、転送制御部840の初期設定を行う。次に、リーダ用ＣＰＵ801が、転送情報、例えば転送元のアドレス、転送先のアドレス、転送サイズを転送制御部840に指定し、転送開始を指示する。転送制御部840は、転送開始指示を受け、指定された転送元アドレスからＲＯＭ802にアクセスし、格納されているデータを読み出す。そして、転送制御部840は、指定された転送先アドレスからＲＡＭ803にアクセスし、上記ＲＯＭ802から読み出したデータをＲＡＭ803に書き込む。転送制御部840は、このデータの書き出しと読み込みを、指定された転送サイズに応じ繰り返し行う。指定された転送サイズ分の転送が終了すると、転送制御部840は、次の転送開始指示を受けるまで待機状態となる。リーダ用ＣＰＵ801は、転送制御部840の状態を確認することで、転送が完了したか否かを判断できる。すなわち、リーダ用ＣＰＵ801は、転送制御部840への転送開始指示後、転送制御部840が待機状態であれば、転送が完了したと判断できる。
【００６０】
なお、本実施例においては、ＤＭＡ転送が完了したかの判断を転送制御部840が待機状態であるか否かにより行うが、本発明はこれに限定されるものではない。リーダ用ＣＰＵ801が、正常に転送が完了したかの判断ができる構成であればよい。例えば、ＤＭＡ転送終了時に割り込みを行い、割り込み処理の中でリーダ用ＣＰＵ801がフラグを立てるように制御し、転送完了をそのフラグの値によって判断してもよい。
【００６１】
（制御プログラムの転送と実行の並行処理）
ＰＩＯ転送に対し、ＤＭＡ転送における利点として、転送制御部840が転送の制御を行うため、転送を行っている間、リーダ用ＣＰＵ801は他の処理を実行できる、ということが挙げられる。
【００６２】
例えば、リーダ制御部310の制御プログラムのうち、初期化プログラムとＯＳが既にＲＡＭ803に転送されており、光学モータ制御処理プログラムがＲＡＭ803に未転送である状態において、リーダ用ＣＰＵ801がリマップを行う。そこで、リーダ用ＣＰＵ801が光学モータ制御処理プログラムをＲＯＭ802からＲＡＭ803へ転送するよう、転送制御部840へ転送開始を指示する。すると、転送制御部840は、ＲＯＭ802からＲＡＭ803へ、転送制御部840専用のアクセスバスを用いて、光学モータ制御処理プログラムの転送を行う。リーダ用ＣＰＵ801は、上記転送開始指示の後、転送制御部840が転送を行う間、リーダ用ＣＰＵ801のアクセスバスを用いてＲＡＭ803にアクセスし、転送済みのＯＳを読み出して実行できる。
【００６３】
以上のように、転送制御部840による制御プログラムの転送と、リーダ用ＣＰＵ801による制御プログラムの読み出し及び実行を並行して行うことができる。制御プログラムの転送と、制御プログラムの読み出し及び実行を並行して行うことで、リーダ制御部310の起動時間を短縮することができる。
【００６４】
＜リーダ制御部310の起動処理の詳細＞
リーダ制御部310の起動処理は、例えば以下の処理を含む。
リーダ用ＣＰＵ801は、ＲＯＭ802に格納されているリーダ制御部310の制御プログラムをＲＡＭ803へ転送する。リーダ用ＣＰＵ801は、動作開始の要因、すなわち動作開始が電源ＯＮによるものなのか、スリープ復帰によるものなのかを判定する。リーダ用ＣＰＵ801は、ＯＳを起動する。リーダ用ＣＰＵ801は、光学スキャナユニット202のホームポジションHへの移動を行う。また、リーダ用ＣＰＵ801は、コントローラ部300との通信初期化を行う（通信設定）。それぞれの処理について、以下で説明する。また、上記の他に、リーダ制御部310の起動処理として、例えば、シェーディングデータ生成のためのシェーディング白板210の読み取りがある。
【００６５】
（リーダ制御部310の制御プログラムの転送）
先述の方法で、リーダ制御部310の制御プログラムをＲＯＭ802からＲＡＭ803へ転送する。制御プログラムの転送にあたっては、起動時間短縮のため、制御プログラムの転送と、制御プログラムの読み出し及び実行を並行して行うことが望ましい。また、制御プログラムの読み出し及び実行にかかる時間を短縮するため、動作開始後、可能な限り早く、制御プログラムの読み出し先をＲＯＭ802からＲＡＭ803に切り替える、すなわちリマップすることが望ましい。
【００６６】
動作開始時、リーダ用ＣＰＵ801はＲＯＭ802から初期プログラムを読み出して実行する。そこで、初期プログラムにおいて、まず少量の制御プログラム、例えば、初期プログラムを転送する。転送制御部840の初期設定前であるため、これにはＰＩＯ転送を用いる。上記少量の制御プログラムの転送が完了した後、リーダ用ＣＰＵ801は、リマップを行いプログラムの読み出し先を切り替える。これにより、これ以降の制御プログラムの読み出し及び実行に掛かる時間が削減できる。その後、リーダ用ＣＰＵ801は、転送制御部840の初期設定を行う。これによりＤＭＡ転送が使用可能になるため、以後は制御プログラムの転送と制御プログラムの読み出し及び実行を並行して行い、制御プログラムの全量をＲＡＭ803へ転送する。
【００６７】
（動作開始要因の判定）
動作開始要因の判定は、リーダ制御部310の制御プログラムのうち、初期プログラムの機能を用いて行われる。
先述の通り、スリープ復帰時、ＣＰＵ901は、スリープ復帰通知ライン356の電圧をしきい値より高く保った状態で、電力供給ライン355を通じリーダ制御部310へ電力の供給を開始する。一方、電源ＯＮ時、スリープ復帰通知ライン356の電圧は、しきい値より低い状態にある。電源ＯＮ時、ＣＰＵ901は、スリープ復帰通知ライン356の電圧を変更することなく、したがってスリープ復帰通知ライン356の電圧はしきい値より低い状態のまま、リーダ制御部310へ電力の供給を開始する。
【００６８】
リーダ用ＣＰＵ801は、起動処理においてスリープ復帰通知ライン356の電圧を確認し、電圧がしきい値より高い状態にあると検知すれば、動作開始がスリープ復帰によるものであると判定する。また、電圧がしきい値より低い状態にあると検知すれば、リーダ用ＣＰＵ801は、動作開始が電源ＯＮによるものであると判定する。
【００６９】
（ＯＳの起動）
リーダ制御部310の制御プログラムには、先述の通り、ＯＳが含まれている。後述する光学スキャナユニット202のホームポジションHへの移動や、コントローラ部300との通信初期化、その他起動処理、原稿読み取り処理等は、全てＯＳの動作の上で、それぞれの処理プログラムにより行われる。そのため、リーダ制御部310は、これらの処理に先立って、ＯＳの起動を行う。具体的には、リーダ制御部310は、リーダ制御部310の制御プログラムのうち、ＯＳに含まれるカーネルイメージを読み込み、実行する。
【００７０】
（光学スキャナユニット202のホームポジションHへの移動）
光学スキャナユニット202のホームポジションHへの移動は、リーダ制御部310の制御プログラムのうち、光学モータ制御処理プログラムの機能により行われる。リーダ制御部310は、先述の方法で、光学スキャナユニット202の位置情報を管理している。これは、原稿の読み取りやシェーディング白板210の読み取り等の動作を行う際に、光学スキャナユニット202をその動作位置まで正確に移動させるためである。ところが、画像読取装置1000の非動作中、画像読取装置1000の揺動等の影響を受け、光学スキャナユニット202が意図せず移動してしまう場合がある。したがって、画像読取装置1000の動作開始時、リーダ制御部310は、光学スキャナユニット202の正確な位置を把握できていない状態にある。そこで、リーダ制御部310は、起動処理において、光学スキャナユニット202の正確な位置を把握するため、光学スキャナユニット202のホームポジションHへの移動（以下「ＨＰ出し」）を行っている。起動処理においては、シェーディングデータ生成のためのシェーディング白板210の読み取りを行うため、光学スキャナユニット202のＨＰ出しは、その前に行う必要がある。
【００７１】
（光学スキャナユニット202のＨＰ出しにおける制御フロー）
図４は、光学スキャナユニット202のＨＰ出しにおける動作を説明するための図である。
図５は、光学スキャナユニット202のＨＰ出しにおける制御処理を例示するフローチャートである。
【００７２】
以下、図４、図５を用いて、光学スキャナユニット202のＨＰ出しにおける制御例を説明する。説明にあたっては、図４における左右の位置関係に基づき、「左」「右」と表現することとする。また、フローチャートでは、光学モータ822を駆動させ、光学スキャナユニット202を左向きに移動させることを「左移動」、右向きに移動させることを「右移動」と表現する。
【００７３】
図４（ａ）は、光学スキャナユニット202が流し読みガラス201の下部に停止している場合の断面図である。
図４（ｂ）は、光学スキャナユニット202がホームポジションHに停止している場合の断面図である。
【００７４】
図４（ａ）、図４（ｂ）に破線で示した検知位置Bは、ＨＰセンサ211（図２）の検知位置を表しており、光学スキャナユニット202が検知位置Bよりも左側に位置していれば、ＨＰセンサ211の出力はＯＮとなる。また、光学スキャナユニット202が検知位置Bよりも右側に位置していれば、ＨＰセンサ211の出力はＯＦＦとなる。
【００７５】
ＨＰセンサ211の出力と光学スキャナユニット202の位置関係について、図４（ａ）、図４（ｂ）の下部に白抜き矢印で示している。光学スキャナユニット202のＨＰ出しにおいては、ＨＰセンサ211の出力が切り替わる点を起点とし、光学モータ822の回転の駆動パルス数を管理しながら制御する。具体的には、図４（ａ）に矢印で図示したように、検知位置BからホームポジションHまでの移動に要する光学モータ822の駆動パルス数を所定パルス数Pとする。所定パルス数PをＲＡＭ803へ保管しておき、実際に駆動したパルス数と所定パルス数Pを比較することで、光学スキャナユニット202をホームポジションHへ正確に停止させている。
【００７６】
以下、図５を用いて、光学スキャナユニット202のＨＰ出しにおける制御フローについて説明する。このフローチャートの処理は、リーダ用ＣＰＵ801が光学モータ制御処理プログラムを実行することにより実現されるものである。
【００７７】
まず、S101において、リーダ用ＣＰＵ801は、ＨＰセンサ211の出力がＯＮであるかどうか判定する。そして、ＨＰセンサ211の出力がＯＮであると判定した場合（S101でYESの場合）、すなわち光学スキャナユニット202が検知位置Bより左側に位置していた場合、リーダ用ＣＰＵ801は、S102に処理を進める。
【００７８】
S102において、リーダ用ＣＰＵ801は、光学モータ822の駆動を開始し、光学スキャナユニット202を右に移動させていく。この場合、光学スキャナユニット202がホームポジションHへ移動する途中で、ＨＰセンサ211の出力がＯＦＦに切り替わる。
S103において、リーダ用ＣＰＵ801は、光学スキャナユニット202を移動させていく間、ＨＰセンサ211の出力を監視し、ＨＰセンサ211の出力がＯＦＦに切り替わったかどうかを判定する。そして、まだＨＰセンサ211の出力がＯＮのままであると判定した場合（S103でNOの場合）、リーダ用ＣＰＵ801は、そのまま光学スキャナユニット202の移動を継続するように制御する。
【００７９】
一方、ＨＰセンサ211の出力がＯＦＦに切り替わったと判定した場合（S103でYESの場合）、リーダ用ＣＰＵ801は、S104に処理を進める。
S104において、リーダ用ＣＰＵ801は、光学モータ822の駆動パルス数のカウントを開始する。
【００８０】
次に、S105において、リーダ用ＣＰＵ801は、ＲＡＭ803に格納されている所定パルス数Pの値と、上記S104でカウント開始したカウント値とを比較し、一致しているか否かを判定する。そして、まだ一致しないと判定した場合（S105でNOの場合）、リーダ用ＣＰＵ801は、光学スキャナユニット202の移動と光学モータ822の駆動パルス数のカウントを継続するように制御する。
【００８１】
一方、所定パルス数Pの値とカウント値とが一致したと判定した場合（S105でYESの場合）、リーダ用ＣＰＵ801は、S106に処理を進める。
S106において、リーダ用ＣＰＵ801は、光学スキャナユニット202がホームポジションHに達したと判断し、光学モータ822の駆動を停止し、本フローチャートの処理を終了する（S107）。
【００８２】
また、上記S101において、リーダ用ＣＰＵ801が、ＨＰセンサ211の出力がＯＦＦであると判定した場合（S101でNOの場合）、すなわち光学スキャナユニット202が検知位置Bより右側に位置していた場合、リーダ用ＣＰＵ801は、S110に処理を進める。
【００８３】
S110において、リーダ用ＣＰＵ801は、光学スキャナユニット202が検知位置B上を通過し、ＨＰセンサ211の出力が切り替わるように、左に移動させる。リーダ用ＣＰＵ801は、光学モータ822の駆動を開始し、光学スキャナユニット202を左に移動させていく。この場合、光学スキャナユニット202が左へ移動する途中で、ＨＰセンサ211の出力がＯＮに切り替わる。
【００８４】
S111において、リーダ用ＣＰＵ801は、光学スキャナユニット202を移動させていく間、ＨＰセンサ211の出力を監視し、ＨＰセンサ211の出力がＯＮに切り替わったかどうかを判定する。そして、まだＨＰセンサ211の出力がＯＦＦのままであると判定した場合（S111でNOの場合）、リーダ用ＣＰＵ801は、そのまま光学スキャナユニット202の移動を継続するように制御する。
【００８５】
一方、ＨＰセンサ211の出力がＯＮに切り替わったと判定した場合（S111でYESの場合）、リーダ用ＣＰＵ801は、S112に処理を進める。
S112において、リーダ用ＣＰＵ801は、光学スキャナユニット202が検知位置B上を通過したと判断し、光学モータ822の駆動を停止し、S102に処理を進める。S102〜S106では、動作開始時にＨＰセンサ211の出力がＯＮであった場合と同様にして、光学スキャナユニット202を右に移動させることでホームポジションHへの移動を行い、本フローチャートの処理を終了する（S107）。
【００８６】
（コントローラ部300との通信初期化）
コントローラ部300との通信初期化は、リーダ制御部310の制御プログラムのうち、通信処理プログラムにより行われる。
【００８７】
リーダ制御部310は、先述の通り、通信ライン354を介して、コントローラ部300と画像読取制御に関する制御コマンド及び制御用データの授受を行っている。起動処理において、リーダ制御部310とコントローラ部300は、互いに通信ライン354を介した通信が可能な状態になったことを確認し、最初の通信を行うことで、通信の初期化を行っている。以下、図６Ａ、図６Ｂを用いて、リーダ制御部310とコントローラ部300の通信初期化処理の流れについて説明する。
【００８８】
図６Ａ、図６Ｂは、実施例１におけるリーダ制御部310とコントローラ部300の通信初期化処理の流れを表す図である。
図６Ａ（ａ）、図６Ａ（ｂ）は、「電源ＯＮ」の場合のリーダ制御部310とコントローラ部300の通信初期化処理について、その前後の処理も含め、処理の流れの一例を表している。
図６Ｂ（ｃ）、図６Ｂ（ｄ）は、「スリープ復帰」の場合のリーダ制御部310とコントローラ部300の通信初期化処理について、その前後の処理も含め、処理の流れの一例を表している。
【００８９】
リーダ制御部310は、「電源ＯＮ」と「スリープ復帰」のいずれの場合においても、ＯＳの起動が完了することで、コントローラ部300との通信が開始できる状態になる。そこで、図６Ａ（ａ）、図６Ｂ（ｃ）において、リーダ用ＣＰＵ801は、起動処理のうちＯＳの起動までを行い、コントローラ部300との通信初期化処理を行っている。図６Ａ（ｂ）、図６Ｂ（ｄ）では、図６Ａ（ａ）、図６Ｂ（ｃ）と異なり、リーダ用ＣＰＵ801が起動処理のうちＯＳの起動までを行い、さらに光学スキャナユニット202のＨＰ出し処理まで行った後に、コントローラ部300との通信初期化処理を行っている。
【００９０】
一方、コントローラ部300は、先述の通り、「電源ＯＮ」の場合と「スリープ復帰」の場合で、リーダ制御部310との通信が開始できる状態になるまでの処理が異なる。
「電源ＯＮ」の場合、ＣＰＵ901は、コントローラ部300の制御プログラムの転送、画像処理部905の設定など、画像読取システムとして必要な初期動作を行う。ＣＰＵ901がこれらの処理を行った後に、リーダ制御部310との通信が可能になる（図６Ａ（ａ）、図６Ａ（ｂ））。
【００９１】
一方「スリープ復帰」の場合、電源ＯＮ時と異なり、画像読取システムとして必要な処理のいくつかはスリープ中も動作している。そのため「スリープ復帰」時、ＣＰＵ901は、画像処理部905の設定などの、画像読取システムとして必要な初期動作のうちスリープ復帰の場合も必要になるものを行った後に、リーダ制御部310との通信が可能になる（図６Ｂ（ｃ）、図６Ｂ（ｄ））。したがって、「電源ＯＮ」の場合は、「スリープ復帰」の場合よりも、リーダ制御部310との通信が可能になるまで時間を要する。それぞれの場合において、リーダ制御部310との通信が可能になれば、ＣＰＵ901はリーダ制御部310との通信初期化処理を行う。
【００９２】
リーダ制御部310とコントローラ部300の通信初期化処理においては、まず、互いに通信が可能な状態になったことの確認を行う。通信が可能な状態になったことの確認には、通信準備完了通知ライン357を用いる。通信準備完了通知ライン357は、例えば、二本の電気的な信号線で構成される。一方の信号線357aは、リーダ制御部310が通信準備完了であることを表す。他方の信号線357bは、コントローラ部300が通信準備完了であることを表す。それぞれ、その電圧をしきい値より高く保つことで、通信準備完了であることを通信相手に通知する。
【００９３】
図６Ａ（ａ）、図６Ａ（ｂ）では、リーダ制御部310の方が早く通信が可能な状態になっている。そのため、リーダ用ＣＰＵ801は、ＣＰＵ901へ通信準備完了を通知（図中矢印A1）した後、ＣＰＵ901が通信準備完了を通知（図中矢印A2）してくるまでの間に、待ち時間が生じている（図中白抜き矢印）。
【００９４】
一方、図６Ｂ（ｃ）、図６Ｂ（ｄ）においては、コントローラ部300の方が早く通信が可能な状態になっている。そのため、ＣＰＵ901は、リーダ用ＣＰＵ801へ通信準備完了を通知（図中矢印A2）した後、リーダ用ＣＰＵ801が通信準備完了を通知（図中矢印A1）してくるまでの間に、待ち時間が生じている（図中白抜き矢印）。
【００９５】
リーダ制御部310とコントローラ部300が共に通信可能になると、リーダ用ＣＰＵ801及びＣＰＵ901は、通信ライン354を使用し、最初の通信を行う。最初の通信では、リーダ制御部310の構成情報の授受が行われる。まず、ＣＰＵ901が通信ライン354を通じて構成情報要求を送信し（図中矢印A3）、リーダ用ＣＰＵ801はそれを受け、通信ライン354を通じてリーダ制御部310構成情報を送信する（図中矢印A4）。リーダ制御部310の構成情報とは、例えば、リーダ制御部310の制御プログラムのバージョンや、画像読取範囲等の画像読取に関する機能情報である。ＣＰＵ901は、リーダ制御部310の構成情報を受け取った後、通信ライン354を通じて構成情報受取完了を送信し（図中矢印A5）、リーダ用ＣＰＵ801がこれを受け取って通信初期化処理が終了する。
【００９６】
（リーダ制御部310とコントローラ部300の通信初期化における制御フロー）
以下、リーダ制御部310とコントローラ部300の通信初期化処理について、図７、図８を用いて説明する。
図７は、リーダ制御部310におけるコントローラ部300との通信初期化処理を例示するフローチャートである。
図８は、コントローラ部300におけるリーダ制御部310との通信初期化処理を例示するフローチャートである。
【００９７】
まず、図７を用いて、リーダ制御部310におけるコントローラ部300との通信初期化処理の制御フローについて説明する。このフローチャートの処理は、リーダ用ＣＰＵ801が通信処理プログラムを実行することにより実現されるものである。
【００９８】
S201において、リーダ用ＣＰＵ801は、まず、リーダ制御部310が通信可能状態であることを、通信準備完了通知ライン357aを介してコントローラ部300へ通知する。
次に、S202において、リーダ用ＣＰＵ801は、通信準備完了通知ライン357bの状態を見て、コントローラ部300が通信可能状態であるか否かを確認する。そして、まだコントローラ部300が通信可能状態でないと判定した場合（S202でNOの場合）、リーダ用ＣＰＵ801は、上記S202の確認を繰り返す。
【００９９】
一方、コントローラ部300が通信可能状態であると判定した場合（S202でYESの場合）、リーダ用ＣＰＵ801は、上記S203に処理を進める。
S203において、リーダ用ＣＰＵ801は、コントローラ部300から通信ライン354を介し「構成情報要求」コマンドを受信したか否かを確認する。そして、まだ「構成情報要求」コマンドを受信完了していないと判定した場合（S203でNOの場合）、リーダ用ＣＰＵ801は、上記S203の確認を繰り返す。
【０１００】
一方、すでに「構成情報要求」コマンドを受信完了したと判定した場合（S203でYESの場合）、リーダ用ＣＰＵ801は、S204に処理を進める。
S204において、リーダ用ＣＰＵ801は、コントローラ部300へ通信ライン354を介し「構成情報」データを送信する。
【０１０１】
次に、S205において、リーダ用ＣＰＵ801は、コントローラ部300から通信ライン354を介し「構成情報受取完了」コマンドを受信したか否かを確認する。そして、まだ構成情報受取完了」コマンドを受信完了していないと判定した場合（S205でNOの場合）、リーダ用ＣＰＵ801は、上記S205の確認を繰り返す。
【０１０２】
一方、すでに構成情報受取完了」コマンドを受信完了したと判定した場合（S205でYESの場合）、リーダ用ＣＰＵ801は、本フローチャートの処理を終了する（S206）。
【０１０３】
次に、図８を用いて、コントローラ部300におけるリーダ制御部310との通信初期化処理の制御フローについて説明する。このフローチャートの処理は、ＣＰＵ901がＲＯＭ902又はＲＡＭ903に記憶されるプログラムを読み出して実行することにより実現されるものである。
【０１０４】
S301において、ＣＰＵ901は、まず、コントローラ部300が通信可能状態であることを、通信準備完了通知ライン357bを介してリーダ制御部310へ通知する。
次に、S302において、ＣＰＵ901は、通信準備完了通知ライン357aの状態を見て、リーダ制御部310が通信可能状態であるか否かを確認する。そして、まだリーダ制御部310が通信可能状態でないと判定した場合（S302でNoの場合）、ＣＰＵ901は、上記S302の確認を繰り返す。
【０１０５】
一方、リーダ制御部310が通信可能状態であると判定した場合（S302でYESの場合）、ＣＰＵ901は、S303に処理を進める。
S303において、ＣＰＵ901は、リーダ制御部310へ通信ライン354を介し「構成情報要求」コマンドを送信する。
【０１０６】
次に、S304において、ＣＰＵ901は、リーダ制御部310から通信ライン354を介し「構成情報」データを受信したか否かを確認する（S304）。そして、まだ「構成情報」データを受信していないと判定した場合（S304でNOの場合）、ＣＰＵ901は、上記S304の確認を繰り返す。
【０１０７】
一方、「構成情報」データを受信したと判定した場合（S304でYESの場合）、ＣＰＵ901は、上記S305に処理を進める。
S305において、ＣＰＵ901は、リーダ制御部310へ通信ライン354を介し「構成情報受取完了」コマンドを送信し、本フローチャートの処理を終了する（S306）。
【０１０８】
（リーダ制御部310の起動処理における起動時間削減）
図６Ａ（ａ）、図６Ａ（ｂ）に示したように、電源ＯＮの場合には、通信処理化処理においてリーダ用ＣＰＵ801の待ち時間が生じている。また、図６Ｂ（ｃ）、図６Ｂ（ｄ）に示したように、スリープ復帰の場合には、通信初期化処理においてＣＰＵ901の待ち時間が生じている。これは、「電源ＯＮ」の場合には、コントローラ部300は「スリープ復帰」の場合よりも、リーダ制御部310との通信が可能になるまで時間を要するためである。
【０１０９】
「電源ＯＮ」の場合、図６Ａ（ｂ）に示すように、リーダ制御部310の起動処理において、コントローラ部300との通信初期化処理前に、光学スキャナユニット202のＨＰ出し処理を行っておくことで、図６Ａ（ａ）と比較してリーダ制御部310の待ち時間を短縮できる。すなわち、リーダ制御部310の起動時間が削減できる。
【０１１０】
一方、「スリープ復帰」の場合、図６Ｂ（ｄ）に示すように、リーダ用ＣＰＵ801が通信初期化処理を行う前に光学スキャナユニット202のＨＰ出し処理を行うことで、ＣＰＵ901に待ち時間が生じる（図中白抜き矢印）。また、生じた待ち時間は、図６Ｂ（ｃ）に白抜き矢印で示したＣＰＵ901の待ち時間より長い。すなわち、図６Ｂ（ｃ）に比較して、図６Ｂ（ｄ）では、コントローラ部300の起動処理が長い。したがって、「スリープ復帰」の場合、図６Ｂ（ｃ）に示すように、リーダ制御部310の起動処理において、ＯＳの起動後すぐにコントローラ部300との通信初期化処理を行うことで、図６Ｂ（ｄ）と比較してコントローラ部300の起動時間が削減できる。
【０１１１】
リーダ制御部310の起動時間を短縮できれば、より早く原稿が読み取り可能になる。また、コントローラ部300の起動時間を短縮できれば、より早くユーザからの原稿読取要求の操作を受け付け可能になる。
【０１１２】
したがって、本実施例では、「電源ＯＮ」の場合には、図６Ａ（ｂ）に示したように、リーダ用ＣＰＵ801は起動処理においてＯＳの起動まで行い、光学スキャナユニット202のＨＰ出し処理を行った後に、コントローラ部300との通信初期化処理を行う。これにより、リーダ制御部310の起動時間を短縮する。
【０１１３】
また、「スリープ復帰」の場合には、図６Ｂ（ｃ）に示したように、リーダ用ＣＰＵ801は起動処理においてＯＳの起動まで行い、コントローラ部300との通信初期化処理を行った後に、光学スキャナユニット202のＨＰ出し処理を行う。これにより、コントローラ部300の起動時間を短縮する。
【０１１４】
＜リーダ制御部310の起動処理における制御例＞
以下、図９、図１０を用いて、リーダ制御部310の起動処理における制御について説明する。
図９は、実施例１におけるリーダ制御部310の起動処理の実行及び並行して行うリーダ制御部310の制御プログラムのＲＯＭ802からＲＡＭ803への転送の流れを示す図である。
図１０は、実施例１におけるリーダ制御部310の起動処理を例示するフローチャートである。
【０１１５】
図９（ａ）は、動作開始要因が「電源ＯＮ」である場合に対応する図である。
図９（ｂ）は、動作開始要因が「スリープ復帰」であった場合に対応する図である。
図９（ａ）、図９（ｂ）ともに、図の上段は、リーダ用ＣＰＵ801が行うリーダ制御部310の起動処理の実行を表している。また、図９（ａ）、図９（ｂ）ともに、上段下部に、実行される処理がリーダ制御部310の制御プログラムのうち、どの部分によるものかを「初期プログラム」、「ＯＳ」等のように、制御プログラムの名称で示している。
【０１１６】
また、図９（ａ）、図９（ｂ）ともに、図の下段は、ＲＯＭ802からＲＡＭ803への、リーダ制御部310の制御プログラムの転送を表している。なお、網掛けのものは「ＰＩＯ転送」を表し、そうでないものは「ＤＭＡ転送」を表している。なお、ＤＭＡ転送については、リーダ用ＣＰＵ801が転送制御部840へ転送情報を指定し転送開始を指示するタイミングを、図の上段から下段への破線矢印で表している。
【０１１７】
以下、リーダ制御部310の起動処理における制御フローについて、図１０を用いて説明する。図１０のフローチャートの処理は、リーダ用ＣＰＵ801が実行するものである。
【０１１８】
動作開始時、先述の通り、リーダ用ＣＰＵ801はハードウェアリセットされる。リセットが解除されると、リーダ用ＣＰＵ801は、リーダ制御部310の起動処理を開始する（S400）。まず、リーダ用ＣＰＵ801は、ＲＯＭ802に格納されているリーダ制御部310の制御プログラムのうち、初期プログラムを読み込み実行する。これにより、リーダ用ＣＰＵ801は、該初期プログラムに基づく以下の処理が可能になる。
【０１１９】
初期プログラムの実行において、リーダ用ＣＰＵ801は、まず、S401において、初期プログラムのＲＯＭ802からＲＡＭ803へのＰＩＯ転送を行う。
次に、S402において、リーダ用ＣＰＵ801は、リマップすることで、リーダ制御部310のプログラムの読み出し先をＲＯＭ802からＲＡＭ803へ切り替える。以下、リーダ用ＣＰＵ801は、ＲＡＭ803へ転送されたプログラムを読み出して処理を行うこととなる。
【０１２０】
次に、S403において、リーダ用ＣＰＵ801は、ＤＭＡ転送を行うために、転送制御部840の初期設定を行う。該S403の処理により、転送制御部840はＤＭＡ転送が可能な状態になる。
次に、S404において、リーダ用ＣＰＵ801は、リーダ制御部310の制御プログラムのうち、ＯＳの転送を転送制御部840へ指示する。該転送指示が完了し、ＤＭＡ転送が開始されれば、リーダ用ＣＰＵ801は、S405に処理を進める。
【０１２１】
S405において、リーダ用ＣＰＵ801は、上記S404で指示したＤＭＡ転送と並行して、動作開始要因が「電源ＯＮ」であるか、「スリープ復帰」であるかの判定を行う。そして、動作開始要因が「電源ＯＮ」であると判定した場合（S405でNOの場合）、リーダ用ＣＰＵ801は、S406に処理を進める。
【０１２２】
S406において、リーダ用ＣＰＵ801は、上記S404で指示したＯＳのＤＭＡ転送が完了しているか否かを、転送制御部840の状態を確認することで判定する。そして、まだＯＳのＤＭＡ転送が完了していないと判定した場合（S406でNOの場合）、リーダ用ＣＰＵ801は、ＯＳの転送が完了するまで上記S406の確認を繰り返す。
【０１２３】
一方、ＯＳのＤＭＡ転送が完了していると判定した場合（S406でYESの場合）、リーダ用ＣＰＵ801は、S407に処理を進める。
S407において、リーダ用ＣＰＵ801は、光学モータ制御処理プログラムの転送を転送制御部840に指示する。該転送指示が完了し、ＤＭＡ転送が開始されれば、リーダ用ＣＰＵ801は、S408に処理を進める。
【０１２４】
S408において、リーダ用ＣＰＵ801は、上記S407で指示したＤＭＡ転送と並行して、制御プログラムのＯＳ部分を読み込み、ＯＳの起動を行う。該ＯＳの起動により、リーダ用ＣＰＵ801は、該ＯＳに基づく処理が可能になる。
【０１２５】
次に、S409において、リーダ用ＣＰＵ801は、上記S407で指示した光学モータ制御処理プログラムのＤＭＡ転送が完了しているか否かを、転送制御部840の状態を確認することで判定する。そして、まだ光学モータ制御処理プログラムのＤＭＡ転送が完了していないと判定した場合（S409でNOの場合）、リーダ用ＣＰＵ801は、光学モータ制御処理プログラムのＤＭＡ転送が完了するまで上記S409の確認を繰り返す。
【０１２６】
一方、光学モータ制御処理プログラムのＤＭＡ転送が完了していると判定した場合（S409でYESの場合）、リーダ用ＣＰＵ801は、S410に処理を進める。
S410において、リーダ用ＣＰＵ801は、通信処理プログラムの転送を転送制御部840に指示する。該転送指示が完了し、ＤＭＡ転送が開始されれば、リーダ用ＣＰＵ801は、S411に処理を進める。
【０１２７】
S411において、リーダ用ＣＰＵ801は、上記S410で指示したＤＭＡ転送と並行して、光学モータ制御処理プログラムを読み込み、該光学モータ制御処理プログラムを実行し、光学スキャナユニット202のＨＰ出し処理を行う。
【０１２８】
次に、S412において、リーダ用ＣＰＵ801は、上記S410で指示した通信処理プログラムのＤＭＡ転送が完了しているか否かを、転送制御部840の状態を確認することで判定する。そして、まだ通信処理プログラムのＤＭＡ転送が完了していないと判定した場合（S412でNOの場合）、リーダ用ＣＰＵ801は、通信処理プログラムのＤＭＡ転送が完了するまで上記S412の確認を繰り返す。
【０１２９】
一方、通信処理プログラムのＤＭＡ転送が完了していると判定した場合（S412でYESの場合）、リーダ用ＣＰＵ801は、S413に処理を進める。
S413において、リーダ用ＣＰＵ801は、その他制御プログラムの転送を転送制御部840に指示する。該転送指示が完了し、ＤＭＡ転送が開始されれば、リーダ用ＣＰＵ801は、S414に処理を進める。
【０１３０】
S414において、リーダ用ＣＰＵ801は、上記S413で指示したＤＭＡ転送と並行して、通信処理プログラムを読み込み、該通信処理プログラムを実行し、コントローラ部300との通信初期化処理を行う。S414の後、リーダ用ＣＰＵ801は、S415に処理を進める。
【０１３１】
S415において、リーダ用ＣＰＵ801は、上記S413（又は後述するS427）で指示した、その他制御プログラムのＤＭＡ転送が完了しているか否かを、転送制御部840の状態を確認することで判定する。そして、まだその他制御プログラムのＤＭＡ転送が完了していないと判定した場合（S415でNOの場合）、リーダ用ＣＰＵ801は、その他制御プログラムのＤＭＡ転送が完了するまで上記S415の確認を繰り返す。
【０１３２】
一方、その他制御プログラムのＤＭＡ転送が完了していると判定した場合（S41５でYESの場合）、リーダ用ＣＰＵ801は、S416に処理を進める。
S416において、リーダ用ＣＰＵ801は、リーダ制御部310の制御プログラムの全ての転送が完了したと判断し、転送制御部840の設定をクリアする。
【０１３３】
次に、S417において、リーダ用ＣＰＵ801は、その他の起動処理、例えばシェーディングデータ生成のためのシェーディング白板210の読み取り処理等を、対応するプログラムを読み込んで実行し、本フローチャートのリーダ制御部の起動処理を終了する（S418）。
【０１３４】
また、上記S405において、動作開始要因が「スリープ復帰」であると判定した場合（S405でYESの場合）、リーダ用ＣＰＵ801は、S420に処理を進める。
S420において、リーダ用ＣＰＵ801は、上記S404で指示したＯＳのＤＭＡ転送が完了しているか否かを、転送制御部840の状態を確認することで判定する。そして、まだＯＳのＤＭＡ転送が完了していないと判定した場合（S420でNOの場合）、リーダ用ＣＰＵ801は、ＯＳのＤＭＡ転送が完了するまで上記S420の確認を繰り返す。
【０１３５】
一方、ＯＳのＤＭＡ転送が完了していると判定した場合（S420でYESの場合）、リーダ用ＣＰＵ801は、S421に処理を進める。
S421において、リーダ用ＣＰＵ801は、通信処理プログラムの転送を転送制御部840に指示する。該転送指示が完了し、ＤＭＡ転送が開始されれば、リーダ用ＣＰＵ801は、S422に処理を進める。
【０１３６】
S422において、リーダ用ＣＰＵ801は、上記S407で指示したＤＭＡ転送と並行して、制御プログラムのＯＳ部分を読み込み、ＯＳの起動を行う。該ＯＳの起動により、リーダ用ＣＰＵ801は、該ＯＳに基づく処理が可能になる。
【０１３７】
次に、S423において、リーダ用ＣＰＵ801は、上記S421で指示した通信処理プログラムのＤＭＡ転送が完了しているか否かを、転送制御部840の状態を確認することで判定する。そして、まだ通信処理プログラムのＤＭＡ転送が完了していないと判定した場合（S423でNOの場合）、リーダ用ＣＰＵ801は、通信処理プログラムのＤＭＡ転送が完了するまで上記S423の確認を繰り返す。
【０１３８】
一方、通信処理プログラムのＤＭＡ転送が完了していると判定した場合（S423でYESの場合）、リーダ用ＣＰＵ801は、S424に処理を進める。
S424において、リーダ用ＣＰＵ801は、光学モータ制御処理プログラムの転送を転送制御部840に指示する。該転送指示が完了し、ＤＭＡ転送が開始されれば、リーダ用ＣＰＵ801は、S425に処理を進める。
【０１３９】
S425において、リーダ用ＣＰＵ801は、上記S424で指示したＤＭＡ転送と並行して、通信処理プログラムを読み込み、該通信処理プログラムを実行し、コントローラ部300との通信初期化処理を行う。
【０１４０】
次に、S426において、リーダ用ＣＰＵ801は、上記S424で指示した光学モータ制御処理プログラムのＤＭＡ転送が完了しているか否かを、転送制御部840の状態を確認することで判定する。そして、まだ光学モータ制御処理プログラムのＤＭＡ転送が完了していないと判定した場合（S426でNOの場合）、リーダ用ＣＰＵ801は、光学モータ制御処理プログラムのＤＭＡ転送が完了するまで上記S426の確認を繰り返す。
【０１４１】
一方、光学モータ制御処理プログラムのＤＭＡ転送が完了していると判定した場合（S426でYESの場合）、リーダ用ＣＰＵ801は、S427に処理を進める。
S427において、リーダ用ＣＰＵ801は、その他制御プログラムの転送を転送制御部840に指示する。該転送指示が完了し、ＤＭＡ転送が開始されれば、リーダ用ＣＰＵ801は、S428に処理を進める。
【０１４２】
S428において、リーダ用ＣＰＵ801は、上記S427で指示したＤＭＡ転送と並行して、光学モータ制御処理プログラムを読み込み、該光学モータ制御処理プログラムを実行し、光学スキャナユニット202のＨＰ出し処理を行う。S428の後、リーダ用ＣＰＵ801は、S415に処理を進める。
S415以降は、リーダ用ＣＰＵ801は、動作開始要因が「電源ＯＮ」であった場合と同じ処理を行い（S415〜S417）、本フローチャートのリーダ制御部の起動処理を終了する（S418）。
【０１４３】
以上の制御により、制御プログラムを分割して転送し、最初の部分を転送し終わった段階で制御プログラムの読み出し先をＲＯＭ802からＲＡＭ803に切り替えることで、その後の制御プログラムの転送中については、制御プログラムの読み出しと実行に掛かる時間を短縮できる。
【０１４４】
また、先述の通り、動作開始要因が「電源ＯＮ」であるか「スリープ復帰」であるかによりコントローラ部300が通信可能になるまでの時間が異なる。上述したように、「電源ＯＮ」と「スリープ復帰」のそれぞれの場合に応じて、制御プログラムの転送順序、リーダ制御部310の起動処理の実行順を変えるように制御する。これにより、動作開始要因が「電源ＯＮ」、「スリープ復帰」のいずれの場合においても、リーダ制御部310又はコントローラ部300の起動処理における待ち時間を削減し、その結果、リーダ制御部310又はコントローラ部300の起動処理起動時間を削減することができる。
【実施例２】
【０１４５】
実施例２における画像読取装置1000のハードウェア構成は、実施例１と同様であるので説明を省略する。また、実施例２における画像読取装置1000では、起動時間の削減のため、起動処理における光学スキャナユニット202のＨＰ出し処理を省略している。リーダ制御部310の起動処理を除き、画像読取装置1000の動作停止時、動作開始時に行う処理も実施例１と同じ構成であるので説明を省略する。さらに、リーダ制御部310の制御プログラム、及びその転送方法についても、実施例１と同じ構成であるので説明を省略する。
【０１４６】
＜リーダ制御部310の起動処理の詳細＞
リーダ制御部310の起動処理は、実施例１における、リーダ制御部310の制御プログラムの転送、動作開始要因の判定、ＯＳの起動、コントローラ部300との通信初期化を含む。これらについては、実施例１と同じ処理であるため説明を省略する。
【０１４７】
実施例２において、リーダ制御部310の起動処理は、画像処理部833の初期設定処理を含む。画像処理部833の初期設定処理について、以下で説明する。この他に、リーダ制御部310の起動処理として、例えば、シェーディングデータ生成のためのシェーディング白板210の読み取りがある。
【０１４８】
（画像処理部833の初期設定）
画像処理部833は、例えば、ＡＳＩＣ（application specific integrated circuit）で構成される。原稿読み取り時、画像読取センサ208によって読み取られた原稿の画像データは、画像処理部833において画像処理が施され、画像メモリ832に格納される。画像処理とは、例えば、原稿台ガラス209や流し読みガラス201にゴミが付着していた場合に、読み取られた画像データのゴミ部分を、その周囲にある原稿の画像データから補正する処理が挙げられる。また、シェーディング白板210にゴミが付着していた場合、シェーディングデータ生成のために読み取ったシェーディング白板210の画像データのゴミ部分を補正する処理が挙げられる。そのため、画像処理部833の初期設定は、シェーディングデータ生成のためのシェーディング白板210の読み取り処理の前に行う必要がある。
【０１４９】
なお、本実施例では、画像処理部833の初期設定は、リーダ制御部310の制御プログラムのうち、初期プログラムにおいて行われる。リーダ用ＣＰＵ801は、初期プログラムに基づいて、画像処理部833が動作可能になるように、所定の設定、例えばレジスタの設定を行う。なお、画像処理部833の初期設定が、初期プログラム以外のリーダ制御部310の制御プログラムで行われる構成でもよい。
【０１５０】
（リーダ制御部310の起動処理における起動時間削減）
図１１Ａ、図１１Ｂは、実施例２におけるリーダ制御部310とコントローラ部300の通信初期化処理の流れを表す図である。
【０１５１】
図１１Ａ（ａ）、図１１Ａ（ｂ）は、「電源ＯＮ」の場合のリーダ制御部310とコントローラ部300の通信初期化処理について、その前後の処理も含め、処理の流れの一例を表している。
図１１Ｂ（ｃ）、図１１Ｂ（ｄ）は、「スリープ復帰」の場合のリーダ制御部310とコントローラ部300の通信初期化処理について、その前後の処理も含め、処理の流れの一例を表している。
【０１５２】
図１１Ａ（ａ）、図１１Ｂ（ｃ）においては、リーダ用ＣＰＵ801は、起動処理のうちＯＳの起動までを行い、コントローラ部300との通信初期化処理を行った後、画像処理部833の初期設定処理を行っている。一方、図１１Ａ（ｂ）、図１１Ｂ（ｄ）においては、リーダ用ＣＰＵ801は、起動処理のうちＯＳの起動までを行い、画像処理部833の初期設定処理を行った後、コントローラ部300との通信初期化処理を行っている。
【０１５３】
実施例１で述べた通り、コントローラ部300は、「電源ＯＮ」の場合、「スリープ復帰」の場合よりも、リーダ制御部310との通信が可能になるまで時間を要する。そのため、図１１Ａ（ａ）、図１１Ａ（ｂ）においては、リーダ制御部310の方が早く通信が可能な状態になっており、リーダ用ＣＰＵ801は、ＣＰＵ901へ通信準備完了を通知（図中矢印A1）した後、ＣＰＵ901が通信準備完了を通知（図中矢印A2）してくるまでの間に、待ち時間が生じている（図中白抜き矢印）。
【０１５４】
一方、図１１Ｂ（ｃ）、図１１Ｂ（ｄ）においては、コントローラ部300の方が早く通信が可能な状態になっている。そのため、ＣＰＵ901は、リーダ用ＣＰＵ801へ通信準備完了を通知（図中矢印A2）した後、リーダ用ＣＰＵ801が通信準備完了を通知（図中矢印A1）してくるまでの間に、待ち時間が生じている（図中白抜き矢印）。
【０１５５】
「電源ＯＮ」の場合、図１１Ａ（ｂ）に示すように、リーダ制御部310の起動処理において、コントローラ部300との通信初期化処理前に画像処理部833の初期設定処理を行っておくことで、図１１Ａ（ａ）と比較してリーダ制御部310の待ち時間を短縮できる。すなわち、リーダ制御部310の起動時間が削減できる。
【０１５６】
一方、「スリープ復帰」の場合、図１１Ｂ（ｃ）に示すように、リーダ制御部310の起動処理において、ＯＳの起動後すぐにコントローラ部300との通信初期化処理を行い、その後に画像処理部833の初期設定を行うことで、図１１Ｂ（ｄ）と比較して、コントローラ部300の起動時間が削減できる。
【０１５７】
リーダ制御部310の起動時間を短縮できれば、より早く原稿が読み取り可能になる。コントローラ部300の起動時間を短縮できれば、より早くユーザからの操作を受け付け可能になる。したがって、実施例２では、「電源ＯＮ」の場合は、リーダ用ＣＰＵ801は起動処理においてＯＳの起動まで行い、画像処理部833の初期設定処理を行った後に、コントローラ部300との通信初期化処理を行う（図１１Ａ（ｂ））。これにより、リーダ制御部310の起動時間を短縮する。また、「スリープ復帰」の場合は、リーダ用ＣＰＵ801は起動処理においてＯＳの起動まで行い、コントローラ部300との通信初期化処理を行った後に、画像処理部833の初期設定処理を行う（図１１Ｂ（ｃ））。これにより、コントローラ部300の起動時間を短縮する。以下、図１２、図１３を用いて、リーダ制御部310の起動処理における制御について説明する。
【０１５８】
＜リーダ制御部310の起動処理における制御例＞
図１２は、本実施例における、リーダ制御部310の起動処理の実行及び並行して行うリーダ制御部310の制御プログラムの転送の、流れを示した図である。
図１３は、本実施例における、リーダ制御部310の起動処理の制御フローチャートである。
【０１５９】
図１２（ａ）は、動作開始要因が「電源ＯＮ」である場合に対応する図である。
図１２（ｂ）は、動作開始要因が「スリープ復帰」であった場合に対応する図である。
図１２（ａ）、図１２（ｂ）ともに、図の上段は、リーダ用ＣＰＵ801が行うリーダ制御部310の起動処理の実行を表している。また、図１２（ａ）、図１２（ｂ）ともに、上段下部に、実行される処理がリーダ制御部310の制御プログラムのうち、どの部分によるものかを、「初期プログラム」、「ＯＳ」等のように、制御プログラムの名称で示している。
【０１６０】
また、図１２（ａ）、図１２（ｂ）ともに、図の下段は、ＲＯＭ802からＲＡＭ803への、リーダ制御部310の制御プログラムの転送を表している。なお、網掛けのものは「ＰＩＯ転送」、そうでないものは「ＤＭＡ転送」を表している。なお、ＤＭＡ転送については、リーダ用ＣＰＵ801が転送制御部840へ転送情報を指定し転送開始を指示するタイミングを、図の上段から下段への破線矢印で表している。
【０１６１】
以下、リーダ制御部310の起動処理における制御フローについて、図１３を用いて説明する。図１３のフローチャートの処理は、全てリーダ用ＣＰＵ801によるものとする。
【０１６２】
動作開始時、先述の通り、リーダ用ＣＰＵ801はハードウェアリセットされる。リセットが解除されると、リーダ用ＣＰＵ801は、リーダ制御部310の起動処理を開始する（S500）。まず、S501〜S506は、図９のS401〜S406の処理と同一であるので説明を省略する。
【０１６３】
S507において、リーダ用ＣＰＵ801は、通信処理プログラムの転送を転送制御部840に指示する。該転送指示が完了し、ＤＭＡ転送が開始されれば、リーダ用ＣＰＵ801は、S508に処理を進める。
【０１６４】
S508において、リーダ用ＣＰＵ801は、上記S507で指示したＤＭＡ転送と並行して、制御プログラムのＯＳ部分を読み込み、ＯＳの起動を行う。該ＯＳの起動により、リーダ用ＣＰＵ801は、該ＯＳに基づく処理が可能になる。
【０１６５】
次に、S509において、リーダ用ＣＰＵ801は、上記S507で指示した通信処理プログラムのＤＭＡ転送が完了しているか否かを、転送制御部840の状態を確認することで判定する。そして、まだ通信処理プログラムのＤＭＡ転送が完了していないと判定した場合（S509でNOの場合）、リーダ用ＣＰＵ801は、通信処理プログラムのＤＭＡ転送が完了するまで上記S509の確認を繰り返す。
【０１６６】
一方、通信処理プログラムのＤＭＡ転送が完了していると判定した場合（S509でYESの場合）、リーダ用ＣＰＵ801は、S510に処理を進める。
S510において、リーダ用ＣＰＵ801は、残りの制御プログラム、すなわち光学モータ制御処理プログラム及びその他制御プログラムの転送を転送制御部840に指示する。該転送指示が完了し、ＤＭＡ転送が開始されれば、リーダ用ＣＰＵ801は、S511に処理を進める。
【０１６７】
S511において、リーダ用ＣＰＵ801は、上記S510で指示したＤＭＡ転送と並行して、初期プログラムを読み込み、該初期プログラムを実行し、画像処理部833の初期設定処理を行う。
次に、S512において、リーダ用ＣＰＵ801は、通信処理プログラムを読み込み、該通信処理プログラムを実行し、コントローラ部300との通信初期化処理を行う。S512の後、リーダ用ＣＰＵ801は、S513に処理を進める。
【０１６８】
S513において、リーダ用ＣＰＵ801は、上記S510（又は後述するS524）で指示した、残りの制御プログラムのＤＭＡ転送が完了しているか否かを、転送制御部840の状態を確認することで判定する。そして、まだ残りの制御プログラムのＤＭＡ転送が完了していないと判定した場合（S513でNOの場合）、リーダ用ＣＰＵ801は、残りの制御プログラムのＤＭＡ転送が完了するまで上記S513の確認を繰り返す。
【０１６９】
一方、残りの制御プログラムのＤＭＡ転送が完了していると判定した場合（S513でYESの場合）、リーダ用ＣＰＵ801は、S514に処理を進める。なお、S514〜S516は、図９のS416〜S418と同一の処理であるので説明を省略する。
【０１７０】
また、上記S505において、動作開始要因が「スリープ復帰」であると判定した場合（S505でYESの場合）、リーダ用ＣＰＵ801は、S520に処理を進める。なお、S520〜S524は、S506〜S510の処理と同一であるので説明を省略する。
【０１７１】
S525において、リーダ用ＣＰＵ801は、上記S524で指示したＤＭＡ転送と並行して、通信処理プログラムを読み込み、該通信処理プログラムを実行し、コントローラ部300との通信初期化処理を行う。
次に、S526において、リーダ用ＣＰＵ801は、初期プログラムを読み込み、該初期プログラムを実行し、画像処理部833の初期設定処理を行う。S526の後、リーダ用ＣＰＵ801は、S513に処理を進める。
【０１７２】
S513以降は、リーダ用ＣＰＵ801は、動作開始要因が「電源ＯＮ」であった場合と同じ処理を行い（S513〜S514）、本フローチャートのリーダ制御部の起動処理を終了する（S516）。
以上の制御により、実施例２によれば、実施例１と同様の効果を奏する。
【０１７３】
なお、動作開始要因が電源ＯＮかスリープ復帰かの判定処理が初期プログラムに含まれる構成について説明したが、他の制御プログラムに含まれる構成でもよい。
また、上記各実施例では、画像読取装置の起動制御を例に説明したが、本発明の起動制御は、画像読取装置の起動制御に限定されるものではなく、各種電子機器の起動制御にも適用可能である。
【０１７４】
以上のように、制御プログラムを不揮発性メモリから揮発性メモリに転送する間についても制御プログラムの読み出しと実行にかかる時間を短縮し、電源投入による動作開始と省電力状態からの復帰による動作開始のいずれの場合においても、非動作状態からの起動時間を短縮することができる。
【０１７５】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されていてもよい。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
【０１７６】
（その他の実施例）
本発明は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施例の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１７７】
1000    画像読取装置
200    リーダ
300    コントローラ
310    リーダ制御部
801    リーダ用ＣＰＵ
802，902    ＲＯＭ
803，903    ＲＡＭ
840    転送制御部
【図１】
2018097629.tif 000003
【図２】
2018097629.tif 000004
【図３】
2018097629.tif 000005
【図４】
2018097629.tif 000006
【図５】
2018097629.tif 000007
【図６Ａ】
2018097629.tif 000008
【図６Ｂ】
2018097629.tif 000009
【図７】
2018097629.tif 000010
【図８】
2018097629.tif 000011
【図９】
2018097629.tif 000012
【図１０】
2018097629.tif 000013
【図１１Ａ】
2018097629.tif 000014
【図１１Ｂ】
2018097629.tif 000015
【図１２】
2018097629.tif 000016
【図１３】
2018097629.tif 000017
【手続補正書】
【提出日】平成29年11月24日(2017.11.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
情報処理装置であって、
プロセッサーと、
制御プログラムを格納する不揮発性メモリと、
前記不揮発性メモリより読み出し速度が速い揮発性メモリとを、有し、
前記不揮発性メモリには、第１プログラム、第２プログラム及び第３プログラムが格納されており、
前記プロセッサーは、
第１起動処理モードにおいて、
前記不揮発性メモリから前記第１プログラムを前記揮発性メモリに転送し、
前記揮発性メモリに格納された前記第１プログラムに基づき、前記不揮発性メモリから前記第２プログラムを前記揮発性メモリに転送し、
前記揮発性メモリに格納された前記第２プログラムに基づく第１処理の実行と、前記不揮発性メモリから前記揮発性メモリへの前記第３プログラムの転送とを並行して実行し、
第２起動処理モードにおいて、
前記不揮発性メモリから前記第１プログラムを前記揮発性メモリに転送し、
前記揮発性メモリに格納された前記第１プログラムに基づき、前記不揮発性メモリから前記第３プログラムを前記揮発性メモリに転送し、
前記揮発性メモリに格納された前記第３プログラムに基づく第２処理の実行と、前記不揮発性メモリから前記揮発性メモリへの前記第２プログラムの転送とを並行して実行する、
ことを特徴とする情報処理装置。
【請求項２】
転送制御部をさらに有し、
前記プロセッサーは、
前記転送制御部を使用せずに、前記第１プログラムを前記不揮発性メモリから前記揮発性メモリに転送し、
前記転送制御部を用いて、前記第２プログラム及び前記第３プログラムを前記不揮発性メモリから前記揮発性メモリに転送する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は、コントローラと通信可能に接続され、
前記第１起動処理モードでは、前記コントローラに電力が供給されている状態から前記情報処理装置が起ち上げられ、
前記第２起動処理モードでは、前記コントローラに電力が供給されていない状態から前記情報処理装置が起ち上げられる
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記第２プログラムは、前記コントローラとの通信を制御するためのプログラムであることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記第１プログラムは、初期プログラムであることを特徴とする請求項１〜４の何れか１項に記載の情報処理装置。
【請求項６】
前記第１プログラムは、リアルタイムオペレーティングシステムであることを特徴とする請求項１〜４の何れか１項に記載の情報処理装置。
【請求項７】
前記情報処理装置は，スリープモードを有し、
前記スリープモードから復帰する場合に、前記第１起動処理モードを実行し、
電源が投入された場合に、前記第２起動処理モードを実行する、
ことを特徴とする請求項１〜６の何れか１項に記載の情報処理装置。
【請求項８】
プロセッサーと、制御プログラムを格納する不揮発性メモリと、前記不揮発性メモリより読み出し速度が速い揮発性メモリとを有し、前記不揮発性メモリには、第１プログラム、第２プログラム及び第３プログラムが格納されている情報処理装置の制御方法であって、
前記プロセッサーは、
第１起動処理モードにおいて、
前記不揮発性メモリから前記第１プログラムを前記揮発性メモリに転送し、前記揮発性メモリに格納された前記第１プログラムに基づき、前記不揮発性メモリから前記第２プログラムを前記揮発性メモリに転送する第１転送工程と、
前記揮発性メモリに格納された前記第２プログラムに基づく第１処理の実行と、前記不揮発性メモリから前記揮発性メモリへの前記第３プログラムの転送とを並行して実行する第１並行処理工程とを実行し、
第２起動処理モードにおいて、
前記不揮発性メモリから前記第１プログラムを前記揮発性メモリに転送し、前記揮発性メモリに格納された前記第１プログラムに基づき、前記不揮発性メモリから前記第３プログラムを前記揮発性メモリに転送する第２転送工程と、
前記揮発性メモリに格納された前記第３プログラムに基づく第２処理の実行と、前記不揮発性メモリから前記揮発性メモリへの前記第２プログラムの転送とを並行して実行する第２並行処理工程とを実行する
ことを特徴とする情報処理装置の制御方法。
【請求項９】
コンピュータを請求項１〜７の何れか1項に記載の実行手段として機能させるためのプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、情報処理装置の起動制御に関するものである。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
本発明は、起動時間を短縮することができる仕組みを提供することを目的とする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
本発明は、情報処理装置であって、プロセッサーと、制御プログラムを格納する不揮発性メモリと、前記不揮発性メモリより読み出し速度が速い揮発性メモリとを、有し、前記不揮発性メモリには、第１プログラム、第２プログラム及び第３プログラムが格納されており、前記プロセッサーは、第１起動処理モードにおいて、前記不揮発性メモリから前記第１プログラムを前記揮発性メモリに転送し、前記揮発性メモリに格納された前記第１プログラムに基づき、前記不揮発性メモリから前記第２プログラムを前記揮発性メモリに転送し、前記揮発性メモリに格納された前記第２プログラムに基づく第１処理の実行と、前記不揮発性メモリから前記揮発性メモリへの前記第３プログラムの転送とを並行して実行し、第２起動処理モードにおいて、前記不揮発性メモリから前記第１プログラムを前記揮発性メモリに転送し、前記揮発性メモリに格納された前記第１プログラムに基づき、前記不揮発性メモリから前記第３プログラムを前記揮発性メモリに転送し、前記揮発性メモリに格納された前記第３プログラムに基づく第２処理の実行と、前記不揮発性メモリから前記揮発性メモリへの前記第２プログラムの転送とを並行して実行する、ことを特徴とする。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
本発明によれば、起動時間を短縮することができる。