(57)【要約】      （修正有）【課題】第１の記憶装置と第２の記憶装置に分割して記憶されたデータを用いて起動処理を行う装置において、第１の記憶装置と第２の記憶装置との性能差が少ない場合や、両者が同等の性能である場合に、一方の記憶装置でアイドル（待機）時間が発生してしまうことを抑制する。【解決手段】情報処理装置１０において、特定手段１１は、データの読出速度が各々異なる複数の記憶装置１６、１６、…、１６にデータを分割して記憶する際において、該複数の記憶装置１６、１６、…、１６の各々からのデータの読出処理の完了タイミングの差が予め定められた閾値以下となるように、各記憶装置に対するデータの配分を特定する。記憶制御手段１２は、特定手段１１により特定された配分に従って複数の記憶装置１６、１６、…、１６にデータを分割して記憶する。読出手段１３は、複数の記憶装置１６、１６、…、１６から前記データを並列に読み出す。【選択図】図１
2020016932.tif 000002
【特許請求の範囲】
【請求項１】
データの読出速度が各々異なる複数の記憶装置にデータを分割して記憶する際において、該複数の記憶装置の各々からのデータの読出処理の完了タイミングの差が予め定められた閾値以下となるように、各記憶装置に対するデータの配分を特定する特定手段と、
前記特定された配分に従って前記複数の記憶装置にデータを分割して記憶する記憶制御手段と、
前記複数の記憶装置から前記データを並列に読み出す読出手段と
を有する情報処理装置。
【請求項２】
前記読出処理の完了タイミングは、少なくとも記憶装置からのデータの読出開始が可能となるまでの待ち時間とデータ読出にかかる時間とに基づき算出される
請求項１に記載の情報処理装置。
【請求項３】
前記各記憶装置から前記データの読出が完了した旨の通知を取得する取得手段
を更に有し、
前記特定手段は、前記取得された通知により示される読出処理の完了タイミングの差が閾値以上である場合に、該差が減少するよう前記配分を変更する
請求項１又は２に記載の情報処理装置。
【請求項４】
前記複数の記憶装置に対し、前記待ち時間が長い順に初期化処理を指示する指示手段
を更に有し、
前記読出手段は、前記初期化処理が完了した記憶装置から前記データを読み出す
請求項２に記載の情報処理装置。
【請求項５】
前記指示手段は、前記各記憶装置による前記データの読出処理の開始タイミングを計測し、前記初期化処理の指示順序を、計測された開始タイミングにより特定される初期化処理の所要時間の長い順とする
請求項４に記載の情報処理装置。
【請求項６】
前記指示手段は、前記複数の記憶装置から、各記憶装置の初期化処理に要される時間が短い順に前記データの読出処理を指示する
請求項４又は５に記載の情報処理装置。
【請求項７】
前記読出手段は、前記各記憶装置による前記データの読出処理の開始タイミングを計測し、前記読出処理の指示順序を、計測された開始タイミングにより特定される初期化処理の所要時間の短い順とする
請求項４に記載の情報処理装置。
【請求項８】
コンピュータに、
データの読出速度が各々異なる複数の記憶装置にデータを分割して記憶する際において、該複数の記憶装置の各々からのデータの読出処理の完了タイミングの差が予め定められた閾値以下となるように、各記憶装置に対するデータの配分を特定するステップと、
前記特定された配分に従って前記複数の記憶装置にデータを分割して記憶するステップと、
前記複数の記憶装置から前記データを並列に読み出すステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、省エネモードからの復帰時におけるＨＤＤがアクセス可能になるまでの無駄な待ち時間を排除する技術として、省エネモードへの移行時にメモリの状態及びＣＰＵのレジスタの状態を表す状態情報を取得し、取得した状態情報を２つに分割した後、分割した状態情報を、読み出し可能となるまでの時間の異なる２種類の不揮発性のストレージデバイスにそれぞれ保存し、省エネモードからの復帰時に、先に読み出し可能となるストレージデバイスから順に、保存されている分割後の状態情報を取得して該状態情報をメモリ及びＣＰＵのレジスタに再設定することにより省エネモード移行前の状態を復元することが記載されている。特許文献１に記載の技術では、起動に時間がかかるが読み出し速度が速い第１の記憶装置と、起動が早いが読み出し速度が遅い第２の記憶装置とが用いられ、第２の記憶装置、第１の記憶装置、の順序で読み込みが行われる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１２４０７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の技術において、第１の記憶装置と第２の記憶装置との性能差が少ない場合や、両者が同等の性能である場合には、一方の記憶装置でアイドル（待機）時間が発生する。
本発明は、第１の記憶装置と第２の記憶装置に分割して記憶されたデータを用いて起動処理を行う装置において、第１の記憶装置と第２の記憶装置との性能差が少ない場合や、両者が同等の性能である場合に、一方の記憶装置でアイドル（待機）時間が発生してしまうことを抑制することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の請求項１に係る情報処理装置は、データの読出速度が各々異なる複数の記憶装置にデータを分割して記憶する際において、該複数の記憶装置の各々からのデータの読出処理の完了タイミングの差が予め定められた閾値以下となるように、各記憶装置に対するデータの配分を特定する特定手段と、前記特定された配分に従って前記複数の記憶装置にデータを分割して記憶する記憶制御手段と、前記複数の記憶装置から前記データを並列に読み出す読出手段とを有することを特徴とする。
【０００６】
本発明の請求項２に係る情報処理装置は、請求項１に記載の構成において、前記読出処理の完了タイミングは、少なくとも記憶装置からのデータの読出開始が可能となるまでの待ち時間とデータ読出にかかる時間とに基づき算出されることを特徴とする。
【０００７】
本発明の請求項３に係る情報処理装置は、請求項１又は２に記載の構成において、前記各記憶装置から前記データの読出が完了した旨の通知を取得する取得手段を更に有し、前記特定手段は、前記取得された通知により示される読出処理の完了タイミングの差が閾値以上である場合に、該差が減少するよう前記配分を変更することを特徴とする。
【０００８】
本発明の請求項４に係る情報処理装置は、請求項２に記載の構成において、前記複数の記憶装置に対し、前記待ち時間が長い順に初期化処理を指示する指示手段を更に有し、前記読出手段は、前記初期化処理が完了した記憶装置から前記データを読み出すことを特徴とする。
【０００９】
本発明の請求項５に係る情報処理装置は、請求項４に記載の構成において、前記指示手段は、前記各記憶装置による前記データの読出処理の開始タイミングを計測し、前記初期化処理の指示順序を、計測された開始タイミングにより特定される初期化処理の所要時間の長い順とすることを特徴とする。
【００１０】
本発明の請求項６に係る情報処理装置は、請求項４又は５に記載の構成において、前記指示手段は、前記複数の記憶装置から、各記憶装置の初期化処理に要される時間が短い順に前記データの読出処理を指示することを特徴とする。
【００１１】
本発明の請求項７に係る情報処理装置は、請求項４に記載の構成において、前記読出手段は、前記各記憶装置による前記データの読出処理の開始タイミングを計測し、前記読出処理の指示順序を、計測された開始タイミングにより特定される初期化処理の所要時間の短い順とすることを特徴とする。
【００１２】
本発明の請求項８に係るプログラムは、コンピュータに、データの読出速度が各々異なる複数の記憶装置にデータを分割して記憶する際において、該複数の記憶装置の各々からのデータの読出処理の完了タイミングの差が予め定められた閾値以下となるように、各記憶装置に対するデータの配分を特定するステップと、前記特定された配分に従って前記複数の記憶装置にデータを分割して記憶するステップと、前記複数の記憶装置から前記データを並列に読み出すステップとを実行させるためのプログラムであることを特徴とする。
【発明の効果】
【００１３】
請求項１及び８に係る発明によれば、第１の記憶装置と第２の記憶装置に分割して記憶されたデータを用いて起動処理を行う装置において、第１の記憶装置と第２の記憶装置との性能差が少ない場合や、両者が同等の性能である場合に、一方の記憶装置でアイドル（待機）時間が発生してしまうことが抑制される。
請求項２に係る発明によれば、第１の記憶装置と第２の記憶装置との性能差が少ない場合や、両者が同等の性能である場合に、一方の記憶装置でアイドル（待機）時間が発生してしまうことが抑制される。
請求項３に係る発明によれば、複数の記憶装置に分割するデータの配分を変更しない場合に比べて、起動処理の際に発生する記憶装置のアイドル時間が短縮される。
請求項４に係る発明によれば、初期化処理に要される時間が長い順に初期化が指示されない場合に比べて、起動処理の際に発生する記憶装置のアイドル時間が短縮される。
請求項５に係る発明によれば、初期化処理に要される時間が長い順に初期化処理を指示しない場合に比べて、起動処理の際に発生する記憶装置のアイドル時間が短縮される。
請求項６に係る発明によれば、初期化処理に要される時間が短い順に読出処理を指示しない場合に比べて、起動処理の際に発生する記憶装置のアイドル時間が短縮される。
請求項７に係る発明によれば、初期化処理に要される時間の短い順に読出処理を指示しない場合に比べて、起動処理の際に発生する記憶装置のアイドル時間が短縮される。
【図面の簡単な説明】
【００１４】
【図１】情報処理装置１０の機能構成を例示するブロック図。
【図２】情報処理装置１０のハードウェア構成を例示するブロック図。
【図３】データが分割して格納される状態を例示する図。
【図４】情報処理装置１０のデータ格納処理の流れを例示するフローチャート。
【図５】各記憶装置の読出データの分割サイズと読出総時間の関係を例示するグラフ。
【図６】情報処理装置１０が行う処理の流れを例示するフローチャート。
【図７】初期化処理の指示順序と読出処理の指示順序を例示する図。
【図８】情報処理装置１０が行う処理の流れを例示するフローチャート。
【図９】記憶装置１０３の初期化処理及びデータ読出処理が実行された場合の動作を例示する図。
【発明を実施するための形態】
【００１５】
１．構成
図１は、本実施形態に係る情報処理装置１０の機能構成を例示するブロック図である。情報処理装置１０は、用紙等の媒体に画像を形成する画像形成処理や、原稿等の媒体に形成された画像を読み取る画像読取処理等の画像処理を行う。情報処理装置１０は、特定手段１１、記憶制御手段１２、読出手段１３、取得手段１４及び指示手段１５を有する。特定手段１１は、データの読出速度が各々異なる複数の記憶装置１６、１６、…、１６にデータを分割して記憶する際において、該複数の記憶装置１６、１６、…、１６の各々からのデータの読出処理の完了タイミングの差が予め定められた閾値以下となるように、各記憶装置１６、１６、…、１６に対するデータの配分を特定する。記憶制御手段１２は、特定手段１１により特定された配分に従って複数の記憶装置１６、１６、…、１６にデータを分割して記憶する。読出手段１３は、複数の記憶装置１６、１６、…、１６からデータを並列に読み出す。
【００１６】
取得手段１４は、各記憶装置１６、１６、…、１６からデータの読出が完了した旨の通知を取得する。指示手段１５は、複数の記憶装置１６、１６、…、１６に対し、各記憶装置１６、１６、…、１６の初期化処理に要される時間が長い順に、初期化処理を指示する。
【００１７】
図２は、情報処理装置１０のハードウェア構成を例示する図である。プロセッサ１０１は、情報処理装置１０の他の要素を制御するプロセッサである。メモリ１０２は、プロセッサ１０１がプログラムを実行するためのワークエリアとして機能する記憶装置であり、例えばＲＡＭ（Random Access Memory）を含む。記憶装置１０３は各種のプログラム及びデータを記憶する記憶装置であり、例えば、ＳＳＤ（Solid State Drive）又はＨＤＤ（Hard Disk Drive）を含む。通信ＩＦ１０４は、予め定められた無線又は有線の通信規格（例えば、Ｗｉ−Ｆｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、又はイーサネット（登録商標））に従って他の装置と通信を行う。
【００１８】
この実施形態では、情報処理装置１０は複数の記憶装置１０３ａ、１０３ｂ、１０３ｃ、…を備える。記憶装置１０３ａ、１０３ｂ、１０３ｃ、…はデータの読出速度が各々異なる記憶装置である。以下の説明では、説明の便宜上、複数の記憶装置１０３ａ、１０３ｂ、１０３ｃ、…を各々区別する必要がない場合には、これらを「記憶装置１０３」と称する。
【００１９】
ＵＩ部１０５は例えばタッチスクリーンとキーとを備える。ＵＩ部１０５は情報処理装置１０に内蔵されていてもよく、また、外付けされて外部接続されてもよい。画像形成部１０６は電子写真方式で用紙等の媒体に画像を形成する。画像読取部１０７は原稿（媒体）の画像を光学的に読み取る。画像処理部１０８は、例えばＤＳＰ（Digital Signal Processor）やＧＰＵ（Graphics Processing Unit）を備え、各種の画像処理を実行する。給紙部１０９は画像形成部１０６に用紙等の媒体を供給する。
【００２０】
この例で、メモリ１０２又は記憶装置１０３に記憶されているプログラムを、プロセッサ１０１又は画像処理部１０８が実行することにより、図１に示される機能が実装される。プログラムを実行しているプロセッサ１０１又は画像処理部１０８は、特定手段１１、記憶制御手段１２、読出手段１３、取得手段１４及び指示手段１５の例である。
【００２１】
２．動作
２−１．データ分割・記憶処理
この実施形態では、情報処理装置１０は、複数の記憶装置１０３ａ、１０３ｂ、１０３ｃ、…にデータを分割して記憶する。記憶されるデータは例えばスナップショットデータである。スナップショットデータは、例えば情報処理装置１０の電源が切断（シャットダウン）されるときにメモリに保持されているデータであり、情報処理装置１０がシャットダウンされる際や、情報処理装置１０が省エネモードに移行する際に、記憶装置１０３に退避される。退避されたスナップショットデータは、ハイバネーション起動の際に用いられる。ハイバネーションは、パーソナルコンピュータ（ＰＣ）や組み込み機器の起動時間を短縮する技術である。ハイバネーションでは、退避されたスナップショットデータから前回の起動時の状態を復元することにより、通常の起動と比較して高速化が図られる。
【００２２】
図３は複数の記憶装置１０３ａ、１０３ｂ、１０３ｃ、…にデータを分割して格納する場合を例示した図である。この例では、プロセッサ１０１は、ＤＲＡＭ等のメモリ１０２に保持されているデータを、複数の記憶装置１０３ａ、１０３ｂ、１０３ｃ、…に分割して格納する。
【００２３】
図４は、情報処理装置１０が行うデータの格納処理の流れを例示するフローチャートである。図４に示される処理は、例えば情報処理装置１０が省エネモードに移行したことをトリガとして開始される。
【００２４】
ステップＳ１０１において、情報処理装置１０のプロセッサ１０１は、メモリの状態やプロセッサ１０１のレジスタの状態を表すデータを取得する。ステップＳ１０２において、プロセッサ１０１は、ステップＳ１０１で取得したデータを分割する。この実施形態では、プロセッサ１０１は、複数の記憶装置１０３の各々からのデータの読出処理の完了タイミングの差が予め定められた閾値以下となるように、各記憶装置１０３に対するデータの配分を特定し、特定した配分に従って複数の記憶装置１０３にデータを分割して記憶する。
【００２５】
読出処理の完了タイミングは、少なくとも記憶装置１０３からのデータの読出開始が可能となるまでの待ち時間と、データ読出にかかる時間とに基づき算出される。ここで、データの分割サイズの決定方法の具体例を説明する。記憶装置１０３からデータの読出にかかる総時間Ｔは式（１）で表される。式（１）において、Ｔはデータ読出の総時間、Ｉは記憶装置からのデータの読出開始が可能となるまでの待ち時間、Ｄは読出総データ量、Ｖは記憶装置のデータ読出速度である。待ち時間Ｉ及び読出速度Ｖは記憶装置１０３の固有値である。
【数１】
2020016932.tif 000003
【００２６】
一般に、システムの起動状態においては待ち時間Ｉは無視できる程度の小さい値であるが、システム起動する際には、データ読出前に記憶装置１０３に対する電源投入を行う必要があり、待ち時間Ｉは無視できない大きさになる。
【００２７】
この実施形態では、プロセッサ１０１は、まず、式（１）を用いて、データの格納対象である全ての記憶装置１０３に対し、それぞれの固有値である待ち時間Ｉと読出速度Ｖを導く。具体的には、プロセッサ１０１は、記憶装置１０３それぞれに対し、予めサイズの異なる２種類のデータＤを用いてデータの読出にかかった時間Ｔを計測しておく、これにより２つの式を得、連立方程式を解くことで各ストレージの待ち時間Ｉ及び読出速度Ｖを算出する。この算出処理は、プロセッサ１０１がシステム内で動的に測定して算出してもよく、また、予めシステム外で測定されてもよい。
【００２８】
次いで、プロセッサ１０１は、データの分割サイズを決定する。データの読出に使用する複数の記憶装置１０３（記憶装置１０３ａ、１０３ｂ、１０３ｃ、…とする）から読み出すデータのサイズ（配分）をＤａ、Ｄｂ、Ｄｃ、…とし、データの総サイズをＤｔｏｔａｌとすると、これらの関係は、式（２）で表される。
Ｄｔｏｔａｌ＝Ｄａ＋Ｄｂ＋Ｄｃ…  …（２）
【００２９】
また、各記憶装置１０３ａ、１０３ｂ、１０３ｃ、…からのデータの読出にかかる時間Ｔａ、Ｔｂ、Ｔｃ、…は、式（３）で表される。式（３）において、各記憶装置１０３ａ、１０３ｂ、１０３ｃ、…のＩをＩａ、Ｉｂ、Ｉｃ、…、ＶをＶａ、Ｖｂ、Ｖｃ、…とし、上述の処理で求めた値を使用する。
Ｔａ＝Ｉａ＋（Ｄａ／Ｖａ）
Ｔｂ＝Ｉｂ＋（Ｄｂ／Ｖｂ）  …（３）
Ｔｃ＝Ｉｃ＋（Ｄｃ／Ｖｃ）
…
【００３０】
ここで、データの読出の総時間が最短となる場合は、並行する全ての記憶装置１０３からの読出が同時に完了する場合である。その場合の時間Ｔａ、Ｔｂ、Ｔｃ、…の関係は以下の式（４）で表される。
Ｔａ＝Ｔｂ＝Ｔｃ＝、…＝Ｔ  …（４）
【００３１】
プロセッサ１０１が、式（３）及び式（４）の連立方程式を解くことで、各記憶装置１０３が読み出すデータの分割サイズの最適値が、Ｄａ、Ｄｂ、Ｄｃ、…として得られる。
【００３２】
図５は、記憶装置１０３が記憶装置１０３ａ、１０３ｂ、１０３ｃの３つである場合のデータ分割サイズとデータ読出時間の関係を表すグラフである。この例で、記憶装置１０３ａは、読出が可能となる時間は早いが、読出速度は低速である。一方、記憶装置１０３ｂ、１０３ｃは、読出が可能となる時間は遅いが、読出速度が高速である。
【００３３】
図４の説明に戻る。ステップＳ１０３において、プロセッサ１０１は、複数の記憶装置１０３にデータを分割して記憶する。
【００３４】
２−２．データ読出処理
図６は、情報処理装置１０が行うハイバネーション起動処理の流れを例示するフローチャートである。この実施形態では、プロセッサ１０１は、データが記憶された複数の記憶装置１０３からデータを並列に読み出す。記憶装置１０３からのデータの読出処理は、一般にＤＭＡ（Direct Memory Access）転送により行われるため、複数の記憶装置１０３からのデータの読出処理は並行して実行される。一方、記憶装置１０３の初期化処理の開始指示とデータ読出の開始指示は、並行に実行できない場合がある。この実施形態では、プロセッサ１０１は、複数の記憶装置１０３のそれぞれの特性に応じた順序で、初期化処理の開始指示やデータ読出の開始指示を行う。
【００３５】
まず、図６のステップＳ２０１において、プロセッサ１０１は記憶装置１０３を初期化する。この実施形態では、プロセッサ１０１は、複数の記憶装置１０３に対し、待ち時間Ｉの大きい順に初期化処理を指示する。待ち時間Ｉの長いものから初期化処理が開始されたほうが効率的であるためである。
【００３６】
ステップＳ２０２において、プロセッサ１０１は、データの読出及び結合を行う。プロセッサ１０１は、各記憶装置１０３からデータの読出処理を並行して行い、最終的に結合する。この実施形態では、プロセッサ１０１は、複数の記憶装置１０３から、各記憶装置１０３の待ち時間Ｉが短い順にデータの読出処理を指示する。記憶装置１０３の特性にも依るが、データの読出指示は、待ち時間Ｉの時間経過後に初めて指示処理の実行が可能となるものもある。そのため、読出が可能となる時間が早いものから順に指示を出すことで、記憶装置１０３の準備が整っているにも関わらず読出指示がされていない状況の発生が抑制される。
【００３７】
図７は、初期化処理の指示順序と読出処理の指示順序を例示した図である。図において、記憶装置１０３ａ、１０３ｂ、及び１０３ｃのそれぞれの待ち時間Ｉａ、Ｉｂ、及びＩｃは、次の式（５）を満たす。
Ｉａ＜Ｉｃ＜Ｉｂ  …（５）
【００３８】
この場合、記憶装置１０３の初期化処理の指示Ｉ１１、Ｉ１２、Ｉ１３は、待ち時間Ｉが大きい順、すなわち、記憶装置１０３ｂ、１０３ｃ、１０３ａの順に行われる。一方、データ読出の開始指示Ｉ２１、Ｉ２２、Ｉ２３は、待ち時間Ｉの小さい順、すなわち、記憶装置１０３ａ、１０３ｃ、１０３ｂの順に行われる。
【００３９】
図６の説明に戻る。ステップＳ２０３において、プロセッサ１０１は結合されたデータによりＲＡＭ状態を復元する。
【００４０】
２−３．初期化順序・読出順序の最適化処理
ところで、複数の記憶装置１０３における待ち時間Ｉ、及び読出速度Ｖ（式（３）等）は固有値であり、変動が無いものとして用いられてもよい。しかしながら、共通する種別の記憶装置１０３であっても、各デバイスの固有のばらつきにより、数式により算出される値（以下「算出値」という）と実際の値（以下「実力値」という）が乖離するケースがある。また、経年劣化等により測定時から実力が大きく変わるケースがあるため、常に固定値を用いていると最適な読出時間とならない場合がある。そこで、この実施形態では、プロセッサ１０１が初期化順序・読出順序の最適化を行う。
【００４１】
プロセッサ１０１は、各記憶装置１０３によるデータの読出処理の実際の開始タイミングを計測し、計測された開始タイミングにより特定される待ち時間Ｉ´（初期化処理の所要時間）を用いて初期化処理の指示順序及び読出処理の指示順序を決定する。プロセッサ１０１は、初期化処理の指示順序を待ち時間Ｉ´の長い順とし、読出処理の指示順序を待ち時間Ｉ´の短い順とする。
【００４２】
図８は、情報処理装置１０が行う、初期順序の最適化処理の流れを例示するフローチャートである。上述したように、記憶装置１０３の初期化順序とデータ読出の開始順序とは、各記憶装置１０３の待ち時間Ｉの大きさにより決定される。すなわち、待ち時間Ｉの大きい順に各記憶装置を並べた順列をＯとした場合、記憶装置１０３の初期化順序はＯの正順に、データ読出の開始順序はＯの逆順に行われる。図８の例では、プロセッサ１０１は、以下の処理に従って順列Ｏを並び替え、以後は更新された順列Ｏを利用して記憶装置１０３の初期化順序及びデータ読出の開始順序を決定する。
【００４３】
ステップＳ３０１において、プロセッサ１０１は、順列Ｏの逆順に従って各記憶装置１０３にデータ読出開始を指示する際、各記憶装置１０３で読出の開始指示が完了した完了時間Ｒを取得しておく。ステップＳ３０２において、プロセッサ１０１は、順列Ｏの正順に記憶装置１０３を注目対象とし、注目している記憶装置１０３の次の記憶装置１０３があるかを判定する。次の記憶装置１０３がある場合（ステップＳ３０２；ＹＥＳ）、プロセッサ１０１はステップＳ３０３の処理に進む。一方、次の記憶装置１０３がない場合（ステップＳ３０２；ＮＯ）、プロセッサ１０１は処理を終了する。
【００４４】
ステップＳ３０３において、プロセッサ１０１は、注目している記憶装置１０３についての完了時間Ｒcurrentと、次の記憶装置１０３への読出開始指示が完了した完了時間Ｒnextとの差分を算出する。ステップＳ３０４において、プロセッサ１０１は、算出された差分が予め設定された閾値以下であるかを判定する。この閾値は、読出開始可能となった記憶装置１０３に対して読出開始指示を出したときにかかる時間よりわずかに大きい値であることが好ましい。差分閾値以下である場合（ステップＳ３０４；ＹＥＳ）、プロセッサ１０１はステップＳ３０５の処理に進む。一方、閾値より大きい場合（ステップＳ３０４；ＮＯ）、プロセッサ１０１はステップＳ３０６の処理に進む。
【００４５】
ステップＳ３０５において、プロセッサ１０１は、注目している記憶装置１０３と次の記憶装置１０３の順序を入れ替え、順列Ｏを更新する。ステップＳ３０５の処理を終えると、プロセッサ１０１はステップＳ３０２の処理に戻る。
【００４６】
ステップＳ３０６において、プロセッサ１０１は、注目する記憶装置１０３を次の記憶装置１０３に移す（注目対象とする記憶装置１０３を順列Ｏの正順にずらす）ことにより、注目する記憶装置１０３を更新する。ステップＳ３０６の処理を終えると、プロセッサ１０１は、ステップＳ３０２の処理に戻る。以上の処理により初期化順序の最適化が行われる。
【００４７】
図９は、各記憶装置１０３の初期化処理及びデータ読出処理が実行される場合の具体例を説明するための図である。この例では、４つの記憶装置１０３ａ、１０３ｂ、１０３ｃ、１０３ｄが利用され、それぞれについて算出された待ち時間Ｉａ、Ｉｂ、Ｉｃ、Ｉｄが、Ｉａ＜Ｉｂ＜Ｉｄ＜Ｉｃである場合を説明する。順列Ｏは、待ち時間Ｉの大きい順に記憶装置１０３を並べたものなので、｛ｃ，ｄ，ｂ，ａ｝となる。記憶装置１０３の初期化順序とデータ読出の開始順序は、この順列Ｏで決定されるため、初期化順序は、ｃ，ｄ，ｂ，ａの順となり、一方、データ読出の開始順序は、ａ，ｂ，ｄ，ｃの順となる。
【００４８】
ここで、計測された実際の待ち時間Ｉ´の大きさが、Ｉａ´＜Ｉｄ´＜Ｉｂ´＜Ｉｃ´であったとする。計算により得られた待ち時間Ｉによれば、順列Ｏは上述したように｛ｃ，ｄ，ｂ，ａ｝である。これに対し図８に示された最適化処理が行われることにより、順列Ｏが最適化される。
【００４９】
具体的には、図８のステップＳ３０３において、注目している記憶装置１０３が記憶装置１０３ｃである場合、差分Ｒdiffは、記憶装置１０３ｃの完了時間Ｒｃと、記憶装置１０３ｄの完了時間Ｒｄとにより、以下の式（６）で表される。
Ｒdiff＝Ｒｃ−Ｒｄ  …（６）
【００５０】
図８のステップＳ３０４において、プロセッサ１０１は、算出された差分Ｒdiffと閾値とを比較する。この例では、記憶装置１０３ｃについて実際に計測された待ち時間Ｉｃ´が待ち時間Ｉｄ´よりも大きいため、差分Ｒdiffは閾値以上の値となる。この場合、順列Ｏの更新は発生しない。
【００５１】
次いで、記憶装置１０３ｄの完了時間Ｒｄ´と、記憶装置１０３ｂの完了時間Ｒｂ´との差分を算出する場合を説明する。実際に計測された待ち時間Ｉｄ´＜Ｉｂ´であるため、記憶装置１０３ｂ、記憶装置１０３ｄの順に読出の開始を指示した場合、記憶装置１０３ｄは、読み出し開始可能となった後に、読み出し開始が指示されることになる。そのため、閾値＞Ｒdiffとなり、順列Ｏの更新が発生する。この場合、記憶装置１０３ｄと記憶装置１０３ｂの順序が入れ替えられ（図８のステップＳ３０５）、順列Ｏは｛ｃ，ｂ，ｄ，ａ｝となる。この場合、注目する記憶装置１０３は記憶装置１０３ｄのままで、次の記憶装置１０３は記憶装置１０３ａとなり、プロセッサ１０１は図８のステップＳ３０２の処理に戻る。記憶装置１０３ｄと記憶装置１０３ａについては、図９に示されるように、完了時間Ｒｄと完了時間Ｒａの差分は大きいため、順列Ｏの更新は行われない。その後、注目する記憶装置１０３が次の記憶装置１０３ａとなるが、記憶装置１０３ａの次の記憶装置１０３はないため、図８のステップＳ３０２の判定結果が「ＮＯ」となり、ここで処理終了となる。最終的に、順列Ｏは｛ｃ，ｂ，ｄ，ａ｝となる。
【００５２】
３．変形例
上述した実施形態は、本発明の実施の一例に過ぎず、以下のように変形させてもよい。また、上述した実施形態及び以下に示す各変形例は、必要に応じて組み合わされて実施されてもよい。
【００５３】
（１）上述の実施形態において、プロセッサ１０１が、複数の記憶装置１０３に記憶するためのデータの分割サイズを最適化する処理を行ってもよい。複数の記憶装置１０３に読出の指示が出された後、読出処理は同時に完了することが望ましいが、実際には完了時刻にばらつきが発生することがある。そこで、プロセッサ１０１が、各記憶装置１０３からデータの読出が完了した旨の通知を取得し、取得された通知により示される読出処理の完了タイミングの差が予め定められた閾値以上である場合に、その差が減少するよう配分を変更してもよい。
【００５４】
具体的には、例えば、起動処理におけるデータの読み込みの際に、プロセッサ１０１が各記憶装置１０３の読出完了時刻を取得しておく。プロセッサ１０１は、読出完了時刻が早いものは読み出すデータのサイズを増やし、読出完了が遅いものはデータサイズを減らすことで、読出完了時刻を調整する。例えば、プロセッサ１０１は、読出完了が最も遅い記憶装置１０３と読出完了が最も早い記憶装置１０３とを抽出し、予め設定されたデータサイズ分だけそれぞれのデータサイズを増減することで調整する。この調整が起動の度に行われることにより、それぞれの記憶装置１０３に記憶させるデータのサイズが最適化される。
【００５５】
（２）上述の実施形態において、情報処理装置１０のプロセッサ１０１により実行されるプログラムは、インターネットなどの通信回線を介してダウンロードされてもよい。また、これらのプログラムは、磁気記録媒体（磁気テープ、磁気ディスクなど）、光記録媒体（光ディスクなど）、光磁気記録媒体、半導体メモリなどの、コンピュータが読取可能な記録媒体に記録した状態で提供されてもよい。
【符号の説明】
【００５６】
１０…情報処理装置、１１…特定手段、１２…記憶制御手段、１３…読出手段、１４…取得手段、１５…指示手段、１０１…プロセッサ、１０２…メモリ、１０３…記憶装置、１０４…通信ＩＦ、１０５…ＵＩ部、１０６…画像形成部、１０７…画像読取部、１０８…画像処理部。
【図１】
2020016932.tif 000004
【図２】
2020016932.tif 000005
【図３】
2020016932.tif 000006
【図４】
2020016932.tif 000007
【図５】
2020016932.tif 000008
【図６】
2020016932.tif 000009
【図７】
2020016932.tif 000010
【図８】
2020016932.tif 000011
【図９】
2020016932.tif 000012