(57)【要約】【課題】データの読出し時に、適切な外部記憶装置からデータを読み出す情報処理装置を提供する。【解決手段】ミラー構成とされた複数のストレージそれぞれの情報を取得し、その取得された情報のうち条件を満たす方のストレージをアクセスの回数がより多くなるストレージにするよう切替える。【選択図】図３
2020067717.tif 000002
【特許請求の範囲】
【請求項１】
ミラー構成とされた複数のストレージと、
前記複数のストレージへのアクセスを制御する制御手段と、
前記複数のストレージそれぞれの情報を取得する取得手段と、を備え、
前記制御手段は、前記取得手段により取得された情報のうち条件を満たす方のストレージを前記アクセスの回数がより多くなるストレージにするよう切替える、
ことを特徴とする情報処理装置。
【請求項２】
前記制御手段は、マルチプレクサによって前記切替えを行うことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記取得手段は、前記複数のストレージそれぞれのストレージ種別の情報を取得することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記制御手段は、前記ストレージ種別の情報に基づき、より高速なストレージを前記アクセスの対象とするよう前記切替えを行うことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記複数のストレージそれぞれから、所定サイズのデータの読出しを行う読出手段、をさらに備え、
前記取得手段は、前記読出手段による前記所定サイズのデータの読出しに要する時間を、前記複数のストレージそれぞれの情報として取得することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項６】
前記制御手段は、前記所定サイズのデータの読出しに要する時間がより短いストレージを前記アクセスの対象とするよう前記切替えを行うことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記取得手段は、前記複数のストレージそれぞれのキャッシュサイズを、前記複数のストレージそれぞれの情報として取得することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項８】
前記複数のストレージのいずれかにデータの書込みを行った場合、当該書込み先のアドレスを記憶する記憶手段、をさらに備え、
前記アクセスとしてデータの読出しを行う際、当該読出し先のアドレスが前記記憶手段に以前に記憶された前記書込み先のアドレスである場合、前記制御手段は、前記キャッシュサイズがより大きいストレージを前記アクセスの対象とするよう前記切替えを行う、
ことを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記データの読出しのためのコマンドを受信したか否かを判定する判定手段、をさらに備え、
前記判定手段により前記コマンドを受信したと判定された場合で且つ前記読出し先のアドレスが前記記憶手段に以前に記憶された前記書込み先のアドレスである場合、前記制御手段は、前記キャッシュサイズがより大きいストレージを前記アクセスの対象とするよう前記切替えを行う、
ことを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記アクセスのためのコマンドを受信しない場合に、前記複数のストレージのうち前記アクセスの対象となるストレージが指定されたか否かを判定する第２判定手段、をさらに備え、
前記第２判定手段により前記アクセスの対象となるストレージが指定されたと判定された場合、前記制御手段は、前記取得手段により取得された情報を用いずに、前記指定に従って前記切替えを行う、
ことを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記制御手段は、所定のタイミングにおいて、前記複数のストレージへのアクセスの制御を実行することを特徴とする請求項１乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記制御手段は、前記所定のタイミングとして、前記情報処理装置の起動時に、前記複数のストレージへのアクセスの制御を実行することを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
前記制御手段は、前記所定のタイミングとして、前記情報処理装置の省電力状態からの復帰時に、前記複数のストレージへのアクセスの制御を実行することを特徴とする請求項１１に記載の情報処理装置。
【請求項１４】
前記制御手段は、前記所定のタイミングとして、前記複数のストレージの少なくともいずれかとしてのストレージの取り付けを検出したときに、前記複数のストレージへのアクセスの制御を実行することを特徴とする請求項１１に記載の情報処理装置。
【請求項１５】
画像を形成する画像形成手段、をさらに備えることを特徴とする請求項１乃至１４のいずれか１項に記載の情報処理装置。
【請求項１６】
ミラー構成とされた複数のストレージを備える情報処理装置において実行される制御方法であって、
前記複数のストレージへのアクセスを制御する制御工程と、
前記複数のストレージそれぞれの情報を取得する取得工程と、を有し、
前記制御工程では、前記取得工程において取得された情報のうち条件を満たす方のストレージを前記アクセスの回数がより多くなるストレージにするよう切替える、
ことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージへのアクセスを制御する情報処理装置および制御方法に関する。
【背景技術】
【０００２】
情報処理装置には、処理データなどを保存するため、不揮発性の外部記憶装置が搭載される。外部記憶装置としては、ハードディスクドライブ（ＨＤＤ：Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やソリッドステートドライブ（ＳＳＤ：Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）が選択されることが多い。また、外部記憶装置の故障時における冗長性を向上させるため、外部記憶装置を複数台搭載し、それらに同時アクセスする構成（ＲＡＩＤ）が採用される場合もある。ＲＡＩＤ１システムの場合には、複数の外部記憶装置には同じデータが保持されているため、データの読み出しでは構成する外部記憶装置のうち１台から読みだされる。特許文献１では、同じＳＳＤを複数搭載しているＲＡＩＤ１システムにおいて、寿命の観点でマスター側を選択する構成が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１８−４９４５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＲＡＩＤ１など複数の外部記憶装置を並列使用する構成では、並列接続されている外部記憶装置の性能は同じでなくても構わないため、個々の性能差が生じ得る。データの読み出し時にはそのうち１つから読みだされるが、低速な外部記憶装置が読出し元として選択されていると、情報処理装置としてのパフォーマンスを発揮できない。
【０００５】
本発明の目的は、このような従来の問題点を解決することにある。上記の点に鑑み、本発明は、データの読出し時に、適切な外部記憶装置からデータを読み出す情報処理装置および制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明に係る情報処理装置は、ミラー構成とされた複数のストレージと、前記複数のストレージへのアクセスを制御する制御手段と、前記複数のストレージそれぞれの情報を取得する取得手段と、を備え、前記制御手段は、前記取得手段により取得された情報のうち条件を満たす方のストレージを前記アクセスの回数がより多くなるストレージにするよう切替えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、データの読出し時に、適切な外部記憶装置からデータを読み出すことができる。
【図面の簡単な説明】
【０００８】
【図１】情報処理装置の構成を示すブロック図である。
【図２】Ｉ／Ｏプロセッサのブロック構成を示す図である。
【図３】ストレージの決定処理を示すフローチャートである。
【図４】ストレージの決定処理を示すフローチャートである。
【図５】ストレージの決定処理を示すフローチャートである。
【図６】ストレージの決定処理を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
【００１０】
［第１実施形態］
図１は、情報処理装置１００の構成を示すブロック図である。情報処理装置１００は、ミラー構成とされた複数のストレージを含むコントローラ１０１を有する。図１では、情報処理装置１００は、プリンタ１２５、スキャナ１２６の画像形成部を含むＭＦＰ（ＭｕｌｔｉＦｕｎｃｔｉｏｎａｌ  Ｐｅｒｉｐｅｒａｌ）等の画像形成装置として示されているが、コントローラ１０１を有するのであれば、ＰＣ等の汎用的な情報処理装置であっても良い。
【００１１】
情報処理装置１００のコントローラ１０１は、メインＣＰＵ１１０、メインメモリ１１１、ブートＲＯＭ１１２、Ｉ／Ｏプロセッサ（入出力プロセッサ）１１３、外部記憶装置としてのストレージα１１４とストレージβ１１５を備える。メインＣＰＵ１１０は、情報処理装置１００全体を統括的に制御し、統括制御のためのＯｐｅｒａｔｉｏｎＳｙｓｔｅｍ（ＯＳ）とデータがブートＲＯＭ１１２とメインメモリ１１１に記憶されている。また、メインＣＰＵ１１０は、外部バスを介して情報処理装置１００が備えるプリンタ１２５、スキャナ１２６、ＵＩ部１２７等のデバイスを制御する。なお、デバイスとしては、図１に示す以外のブロックが含まれても良く、例えば、ファクシミリ等がデバイスとしてコントローラ１０１に接続されていても良い。
【００１２】
Ｉ／Ｏプロセッサ１１３は、メインＣＰＵ１１０とストレージ制御信号１１６を介して接続され、メインＣＰＵ１１０の指示により、ストレージα１１４とストレージβ１１５の制御を統括する。Ｉ／Ｏプロセッサ１１３は、ストレージα１１４及びストレージβ１１５とメインＣＰＵ１１０との間に構成される。そのような構成により、Ｉ／Ｏプロセッサ１１３は、配下のストレージα１１４とストレージβ１１５をメインＣＰＵ１１０に見せず、Ｉ／Ｏプロセッサ１１３自身が１つの外部記憶装置であるとメインＣＰＵ１１０に見せかけることで、ＯＳ上のストレージ制御を簡易化することができる。ストレージα１１４とストレージβ１１５は、説明上、性能差があるものとするが、同一性能であっても良い。ＵＩ部１２７は、メインＣＰＵ１１０とＵＩ部Ｉ／Ｆ１２３を介して接続され、タッチパネルを有する液晶表示部やキーボード等を有し、ユーザに対して情報処理装置１００の状態提示や各種ユーザインタフェース画面の表示、およびユーザからの入力装置として機能する。
【００１３】
プリンタＩ／Ｆ１２１は、プリンタ１２５とメインＣＰＵ１１０とを接続する。プリンタ１２５は、ネットワークを介して外部装置から受信した印刷対象の画像データやスキャナ１２６によって読み取られて生成された画像データ当に基づいて印刷処理を実行する。プリンタ１２５は、インクジェット記録方式や電子写真方式等の種種の記録方式が採用され得る。スキャナＩ／Ｆ１２２は、スキャナ１２６とメインＣＰＵ１１０とを接続する。スキャナ１２６は、原稿を光学的に読み取って画像データを生成する。スキャナ１２６によって生成された画像データは、情報処理装置１００の機能に応じて、プリンタ１２５によって印刷される場合がある。ネットワークＩ／Ｆ１２４は、ネットワークに接続してネットワーク上の装置との通信を実行する。ネットワークＩ／Ｆ１２４は、有線や無線、さらには、近距離無線通信等の通信媒体に対応した構成を有する。また、ネットワークＩ／Ｆ１２４は、外部のＰＣ等との間でＵＳＢケーブルなどによってダイレクト接続されるように構成される場合もある。
【００１４】
図２は、Ｉ／Ｏプロセッサ１１３のブロック構成を示す図である。Ｉ／Ｏプロセッサ１１３は、Ｉ／Ｏ−ＣＰＵ２０１とＲＡＭ２０２、ＦＬＡＳＨメモリ２０３、Ｒｅａｄセレクタ２０４、ＷｒｉｔｅＤｅｖｉｄｅｒ２０６を含む。
【００１５】
Ｉ／Ｏ−ＣＰＵ２０１は、外部記憶装置を制御するための専用ＣＰＵであって、専用のファームウェアを備え、メインＣＰＵ１１０から独立して動作する。ＦＬＡＳＨメモリ２０３は、Ｉ／Ｏ−ＣＰＵ２０１用のファームウェアを保持しており、Ｉ／Ｏ−ＣＰＵ２０１は、ＦＬＡＳＨメモリ２０３からロードしたファームウェアをＲＡＭ２０２に展開して動作する。Ｒｅａｄセレクタ２０４は、Ｉ／Ｏ−ＣＰＵ２０１の指示に応じて動作するマルチプレクサであって、データ読出し（Ｒｅａｄ）時におけるデータラインをストレージα１１４もしくはストレージβ１１５に設定することができる。また、ＷｒｉｔｅＤｅｖｉｄｅｒ２０６は、データ書込み（Ｗｒｉｔｅ）時にＩ／Ｏ−ＣＰＵ２０１から送信されたデータラインを、ストレージα１１４とストレージβ１１５に分割する。そのような構成により、データＲｅａｄ時にはストレージα１１４、もしくはストレージβ１１５の片側から読み出し、データＷｒｉｔｅ時には双方に書き込むことが可能となる。つまり、読出し元に設定されたストレージは、読出し元に設定されていないストレージに比べて、ストレージの設定を行った後のアクセス回数が多くなる。なお、Ｒｅａｄセレクタ２０４およびＷｒｉｔｅＤｅｖｉｄｅｒ２０５は、データラインに関する系統制御を行うのみであって、コマンド等のサイドバンド信号は、不図示であるが、Ｉ／Ｏ−ＣＰＵ２０１とストレージα１１４、ストレージβ１１５の双方に直接接続されている。
【００１６】
図３は、本実施形態におけるストレージの決定処理を示すフローチャートである。図３を参照しながら、外部記憶装置の種別に応じてデータ読出し元を変更する情報処理装置１００のコントローラ１０１の動作について説明する。
【００１７】
情報処理装置１００のコントローラ１０１が起動すると、Ｉ／Ｏプロセッサ１１３内において、Ｉ／Ｏ−ＣＰＵ２０１がＦＬＡＳＨメモリ２０３からファームウェアを読み出しＲＡＭ２０２に展開して、Ｉ／Ｏプロセッサ１１３として起動する（Ｓ３０１）。その後、Ｉ／Ｏ−ＣＰＵ２０１は、接続している外部記憶装置のストレージ種別を識別するために、ストレージα１１４とストレージβ１１５に対して、ＩＤＥＮＴＩＦＹ−ＤＥＶＩＣＥコマンドを発行し（Ｓ３０２）、各ストレージから応答を受信する（Ｓ３０３）。この応答には、ストレージ種別情報が含まれる。
【００１８】
Ｉ／Ｏ−ＣＰＵ２０１は、応答の内容を参照し、ストレージα１１４の種別がＳＳＤであるか否かを判定する（Ｓ３０４）。ストレージα１１４の種別がＳＳＤであると判定された場合、Ｉ／Ｏ−ＣＰＵ２０１は、Ｒｅａｄセレクタ２０４をストレージα１１４に設定し（Ｓ３０５）、その後、図３の処理を終了する。
【００１９】
一方、Ｓ３０４でストレージα１１４の種別がＳＳＤではないと判定された場合、Ｉ／Ｏ−ＣＰＵ２０１は、ストレージβ１１５の種別がＳＳＤであるか否かを判定する（Ｓ３０６）。ストレージβ１１５の種別がＳＳＤであると判定された場合、Ｉ／Ｏ−ＣＰＵ２０１は、Ｒｅａｄセレクタ２０４をストレージβ１１５に設定し（Ｓ３０７）、その後、図３の処理を終了する。
【００２０】
Ｓ３０６でストレージβ１１５の種別がＳＳＤではないと判定された場合、Ｉ／Ｏ−ＣＰＵ２０１は、ストレージα１１４とストレージβ１１５のストレージ種別は同じであると判断し、Ｒｅａｄセレクタ２０４をストレージα１１４に設定し（Ｓ３０５）、その後、図３の処理を終了する。
【００２１】
以上のように、本実施形態によれば、接続している外部記憶装置の種別がＳＳＤであるか否かに応じて読出し先を切替える。その結果、読出し元をＳＳＤ側とする機会を多くすることができ、データ読出しの高速化を実現することができる。また、図３の処理において、メインＣＰＵ１１０とＯＳはその切替制御に関与しないため、ＯＳが起動する以前であっても高速な読み出しを実現できる。なお、情報処理装置１００のコントローラ１０１の起動時を一例として説明したが、情報処理装置１００の省電力状態からの復帰時や、新たな外部記憶装置の取り付けを検出したときなどでも良く、外部記憶装置へのアクセス制御の実行タイミングは、本実施形態での説明に限定されるものではない。例えば、Ｓ３０１で、省電力状態からの復帰処理、外部記憶装置の装着およびデータのミラーリングのためのコピー処理が行われ、各処理が完了すると、Ｓ３０２以降の処理が行われるようにしても良い。また、Ｓ３０４での判定基準を実行するようＵＩ部１２７に表示される設定画面において設定可能としても良い。その場合、例えば、設定画面上で設定内容が確定されたことをＳ３０１で取得し、Ｓ３０２以降の処理が行われるようにしても良い。
【００２２】
［第２実施形態］
第１実施形態では、一般的にＳＳＤが高速な読出し性能を持つことを前提として、種別がＳＳＤであるか否かによってデータの読出し元を切替えることを説明した。しかしながら、接続している外部記憶装置が同じ種別（全てＳＳＤなど）である場合や、ＳＳＤが劣化している場合がある。本実施形態では、転送速度に応じてデータの読出し元を切替える場合について、第１実施形態と異なる点について説明する。
【００２３】
図４は、本実施形態におけるストレージの決定処理を示すフローチャートである。図４を参照しながら、外部記憶装置の転送速度を測定し、その結果に応じてデータの読出し元を切替える情報処理装置１００のコントローラ１０１の動作について説明する。
【００２４】
情報処理装置１００のコントローラ１０１が起動すると、Ｉ／Ｏプロセッサ１１３内において、Ｉ／Ｏ−ＣＰＵ２０１がＦＬＡＳＨメモリ２０３からファームウェアを読み出しＲＡＭ２０２に展開して、Ｉ／Ｏプロセッサ１１３として起動する（Ｓ４０１）。Ｓ４０１の後、Ｉ／Ｏ−ＣＰＵ２０１は、ストレージα１１４の論理アドレス（ＬＢＡ：Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）の先頭（ＬＢＡ０）から所定サイズのデータ読出しを実行し、データ読出しに要した時間を変数ｔ＿ａとしてＲＡＭ２０２に保存する（Ｓ４０２）。そして、同様に、Ｉ／Ｏ−ＣＰＵ２０１は、ストレージβ１１５のＬＢＡ０から所定サイズのデータ読出しを実行し、データ読出しに要した時間を変数ｔ＿ｂとしてＲＡＭ２０２に保存する（Ｓ４０３）。
【００２５】
次に、Ｉ／Ｏ−ＣＰＵ２０１は、ｔ＿ａとｔ＿ｂを比較し、ｔ＿ａ＜ｔ＿ｂであるか否かを判定する（Ｓ４０４）。ｔ＿ａ＜ｔ＿ｂであると判定された場合、即ち、ストレージα１１４からの転送速度の方が速い場合、Ｉ／Ｏ−ＣＰＵ２０１は、Ｒｅａｄセレクタ２０４をストレージα１１４に設定し（Ｓ４０５）、その後、図４の処理を終了する。一方、ｔ＿ａ＞ｔ＿ｂであると判定された場合、即ち、ストレージβ１１５からの転送速度の方が速い場合、Ｉ／Ｏ−ＣＰＵ２０１は、Ｉ／Ｏ−ＣＰＵ２０１は、Ｒｅａｄセレクタ２０４をストレージβ１１５に設定し（Ｓ４０６）、その後、図４の処理を終了する。なお、Ｓ４０４でｔ＿ａ＝ｔ＿ｂであると判定された場合には、Ｉ／Ｏ−ＣＰＵ２０１は、Ｒｅａｄセレクタ２０４をストレージα１１４に設定し（Ｓ４０５）、その後、図４の処理を終了する。
【００２６】
以上のように、本実施形態によれば、読出し先を変更する際に、転送速度を測定することにより読出し先を切替える。その結果、外部記憶装置の転送能力に応じて読出し先を切替えることができるため、外部記憶装置が故障している場合やＳＳＤが劣化して低速になっている場合や未知の外部記憶装置が接続された場合にも、適切に読出し元を切替えることができる。なお、情報処理装置１００のコントローラ１０１の起動時を一例として説明したが、省電力状態からの復帰時や、新たな外部記憶装置を取り付けたときなどでも良く、外部記憶装置へのアクセス制御の実行タイミングは、本実施形態での説明に限定されるものではない。例えば、Ｓ４０１で、省電力状態からの復帰処理、外部記憶装置の装着およびデータのミラーリングのためのコピー処理が行われ、各処理が完了すると、Ｓ４０２以降の処理が行われるようにしても良い。また、Ｓ４０４での判定基準を実行するようＵＩ部１２７に表示される設定画面において設定可能としても良い。その場合、例えば、設定画面上で設定内容が確定されたことをＳ４０１で取得し、Ｓ４０２以降の処理が行われるようにしても良い。
【００２７】
本実施形態では、同じ情報処理装置にて稼働する複数の外部記憶装置であっても、データに関するアクセス比率はそれぞれの外部記憶装置で変動することになって、読出し元が静的に決定される構成と異なり、適切な切替制御が実現される。
【００２８】
［第３実施形態］
第２実施形態では、データの読出し元の切替えを外部記憶装置の性能に応じて実施した。しかしながら、外部記憶装置が大容量のキャッシュメモリを備えている構成では、本来は低速な外部記憶装置であっても特定の条件下に限って高速に読み出せるケースが想定される。例えば、必要なデータがキャッシュメモリに存在する場合には、本来は低速な外部記憶装置であっても、高速読出しが可能となる。本実施形態では、読出しの対象となるデータがキャッシュヒットする可能性があるか否かに応じてデータの読出し元を切替える場合について、第１及び第２実施形態と異なる点について説明する。
【００２９】
図５は、本実施形態におけるストレージの決定処理を示すフローチャートである。図５を参照しながら、実際に読み出そうとしているデータの論理アドレスが、直前に書き込みを行った論理アドレスと一致するか否かに応じて外部記憶装置のキャッシュヒットを判断し、読出し先を切替える情報処理装置１００のコントローラ１０１の動作について説明する。
【００３０】
情報処理装置１００のコントローラ１０１が起動すると、Ｉ／Ｏプロセッサ１１３内において、Ｉ／Ｏ−ＣＰＵ２０１がＦＬＡＳＨメモリ２０３からファームウェアを読み出しＲＡＭ２０２に展開して、Ｉ／Ｏプロセッサ１１３として起動する（Ｓ５０１）。Ｓ５０１の後、Ｉ／Ｏ−ＣＰＵ２０１は、ストレージα１１４とストレージβ１１５のそれぞれに対して、ＩＤＥＮＴＩＦＹ−ＤＥＶＩＣＥコマンドを発行し（Ｓ５０２）、各ストレージから応答を受信する（Ｓ５０３）。この応答には、キャッシュサイズに関する情報が含まれ、Ｉ／Ｏ−ＣＰＵ２０１は、ストレージα１１４とストレージβ１１５のキャッシュサイズを取得する。
【００３１】
次に、Ｉ／Ｏ−ＣＰＵ２０１は、メインＣＰＵ１１０からのＲｅａｄコマンド若しくはＷｒｉｔｅコマンドを受信したか否かを判定する（Ｓ５０４）。この判定は、Ｒｅａｄコマンド若しくはＷｒｉｔｅコマンドを受信したと判定されるまで実行される（即ち、コマンド待機状態）。
【００３２】
Ｒｅａｄコマンド若しくはＷｒｉｔｅコマンドを受信したと判定された場合、Ｉ／Ｏ−ＣＰＵ２０１は、受信したコマンドがＷｒｉｔｅコマンドであるか否かを判定する（Ｓ５０５）。受信したコマンドがＷｒｉｔｅコマンドであると判定された場合、Ｉ／Ｏ−ＣＰＵ２０１は、メインＣＰＵ１１０から指定されたＬＢＡにＷｒｉｔｅ処理を行う（Ｓ５０６）。その後、書き込みを行ったＬＢＡを、ＲＡＭ２０２上に確保されている「前回ＬＢＡ変数」に上書きして記憶し（Ｓ５０７）、Ｓ５０４のコマンド待機状態に戻る。
【００３３】
一方、Ｓ５０５で受信したコマンドがＲｅａｄコマンドであったと判定された場合、Ｉ／Ｏ−ＣＰＵ２０１は、ＲＡＭ２０２上の「前回ＬＢＡ変数」を読み出し（Ｓ５０８）、「前回ＬＢＡ変数」が保持しているＬＢＡと今回のＲｅａｄコマンドが指定しているＬＢＡとが互いに一致しているか否かを判定する（Ｓ５０９）。「前回ＬＢＡ変数」が保持しているＬＢＡと今回のＲｅａｄコマンドのＬＢＡとが互いに一致していると判定された場合、Ｉ／Ｏ−ＣＰＵ２０１は、ストレージα１１４とストレージβ１１５のキャッシュサイズが大きい方をキャッシュヒットする可能性が高いと判断してＲｅａｄセレクタ２０４に設定し（Ｓ５１０）、当該ＬＢＡのＲｅａｄ処理を行い（Ｓ５１１）、その後、メインＣＰＵ１１０からのＲｅａｄコマンド若しくはＷｒｉｔｅコマンドの待機状態に戻る。
【００３４】
Ｓ５０９で「前回ＬＢＡ変数」が保持しているＬＢＡと今回のＲｅａｄコマンドのＬＢＡとが互いに一致しないと判定された場合、Ｉ／Ｏ−ＣＰＵ２０１は、Ｒｅａｄセレクタ２０４を変更することなく、当該ＬＢＡのＲｅａｄ処理を行い（Ｓ５１１）、その後、メインＣＰＵ１１０からのＲｅａｄコマンド若しくはＷｒｉｔｅコマンドの待機状態に戻る。
【００３５】
以上のように、本実施形態によれば、読み出そうとしているＬＢＡが直前に書き込んだＬＢＡと同一であった場合に、キャッシュサイズが大きい方のストレージを読出し元として切り替える。その結果、キャッシュメモリにはデータが残っていることが期待でき、より高速な読み出しを行うことができる。なお、図５では、各コマンドごとに前回コマンドの内容を確認するという動作を説明した。しかしながら、キャッシュメモリに残っているかという観点では、複数のコマンド実行後であっても良く、外部記憶装置へのこのアクセス制御の実行タイミングは、本実施形態での説明に限定されるものではない。そのため、同じ情報処理装置にて稼働する複数の外部記憶装置であっても、データに関するアクセス比率はそれぞれの外部記憶装置で変動することになる。
【００３６】
また、情報処理装置１００のコントローラ１０１の起動時を一例として説明したが、省電力状態からの復帰時や、新たな外部記憶装置を取り付けたときなどでも良く、外部記憶装置へのアクセス制御の実行タイミングは、本実施形態での説明に限定されるものではない。例えば、Ｓ５０１で、省電力状態からの復帰処理、外部記憶装置の装着およびミラーリングのためのデータのコピー処理が行われ、各処理が完了すると、Ｓ５０２以降の処理が行われるようにしても良い。また、Ｓ５１０での判定基準を実行するようＵＩ部１２７に表示される設定画面において設定可能としても良い。その場合、例えば、設定画面上で設定内容が確定されたことをＳ５０１で取得し、Ｓ５０２以降の処理が行われるようにしても良い。
【００３７】
本実施形態では、同じ情報処理装置にて稼働する複数の外部記憶装置であっても、データに関するアクセス比率はそれぞれの外部記憶装置で変動することになって、読出し元が静的に決定される構成と異なり、適切な切替制御が実現される。
【００３８】
［第４実施形態］
第１〜第３実施形態では、Ｉ／Ｏプロセッサ１１３がメインＣＰＵ１１０から独立して動作し、データの読出し元の切替えを独自に実施することを説明した。しかしながら、データ読出し元の変更はユーザの指示や、メインＣＰＵ１１０の判断に応じて変更するようにしても良い。本実施形態では、Ｉ／Ｏプロセッサ１１３がメインＣＰＵ１１０からの指示に応じてデータの読出し元を切替える場合について、第１〜第３実施形態と異なる点について説明する。
【００３９】
図６は、本実施形態におけるストレージの決定処理を示すフローチャートである。図６を参照しながら、ユーザからの指示に応じてデータの読出し元を切替える情報処理装置１００のコントローラ１０１の動作について説明する。
【００４０】
情報処理装置１００のコントローラ１０１が起動すると、Ｉ／Ｏプロセッサ１１３内において、Ｉ／Ｏ−ＣＰＵ２０１がＦＬＡＳＨメモリ２０３からファームウェアを読み出しＲＡＭ２０２に展開して、Ｉ／Ｏプロセッサ１１３として起動する（Ｓ６０１）。Ｓ６０１の後、Ｉ／Ｏ−ＣＰＵ２０１は、ストレージα１１４とストレージβ１１５のそれぞれに対して、ＩＤＥＮＴＩＦＹ−ＤＥＶＩＣＥコマンドを発行し（Ｓ６０２）、各ストレージから応答を受信する（Ｓ６０３）。
【００４１】
次に、Ｉ／Ｏ−ＣＰＵ２０１は、メインＣＰＵ１１０からのＲｅａｄコマンド若しくはＷｒｉｔｅコマンドを受信したか否かを判定する（Ｓ６０４）。メインＣＰＵ１１０からのＲｅａｄコマンド若しくはＷｒｉｔｅコマンドを受信したと判定された場合、Ｉ／Ｏ−ＣＰＵ２０１は、受信したコマンドを処理し（Ｓ６０５）、Ｓ６０４からの処理を繰り返す。
【００４２】
一方、Ｓ６０４でメインＣＰＵ１１０からのＲｅａｄコマンド若しくはＷｒｉｔｅコマンドを受信していないと判定された場合、Ｉ／Ｏ−ＣＰＵ２０１は、メインＣＰＵ１１０からの切替通知があったか否かを判定する（Ｓ６０６）。この切替通知とは、例えば、ユーザがＵＩ部１２７を操作し、メインＣＰＵ１１０に対して読出し先の切替えが指示された場合である。その場合、メインＣＰＵ１１０からＩ／Ｏプロセッサ１１３に対して、データの読出し元の切り替えが通知される。
【００４３】
Ｓ６０６でメインＣＰＵ１１０からの切替通知があったと判定された場合、Ｉ／Ｏ−ＣＰＵ２０１は、メインＣＰＵ１１０から切替通知を受けると、メインＣＰＵ１１０と通信し、切替指示を受信する（Ｓ６０７）。その後、Ｉ／Ｏ−ＣＰＵ２０１は、その切替指示に従って、Ｒｅａｄセレクタ２０４のデータ読出し元を切り替える（Ｓ６０８）。Ｓ６０８の後、Ｓ６０４からの処理を繰り返す。一方、Ｓ６０６でメインＣＰＵ１１０からの切替通知がなかったと判定された場合、Ｓ６０４からの処理を繰り返す。
【００４４】
以上のように、本実施形態によれば、任意のタイミングでデータの読出し元の切替えを行うことができる。その結果、例えば、外部記憶装置を活線挿抜にて取り外そうとする場合に、取り外し対象を安全な状態に維持することができる。また、上記の例では、ユーザ指示を一例として説明したが、ユーザ指示ではなく、ＯＳやソフトウェアの指示とすることで、Ｉ／Ｏプロセッサ１１３のリソースでは実行できないような、ＯＳや特定のアプリケーションによる高度な外部記憶装置の選択制御を実現することができる。
【００４５】
また、Ｓ６０６〜Ｓ６０８の処理は、図５のＳ５０４でメインＣＰＵ１１０からのＲｅａｄコマンド若しくはＷｒｉｔｅコマンドを受信していないと判定された場合に、実行されるようにしても良い。
【００４６】
また、情報処理装置１００のコントローラ１０１の起動時を一例として説明したが、省電力状態からの復帰時や、新たな外部記憶装置を取り付けたときなどでも良く、外部記憶装置へのアクセス制御の実行タイミングは、本実施形態での説明に限定されるものではない。例えば、Ｓ６０１で、省電力状態からの復帰処理、外部記憶装置の装着およびミラーリングのためのデータのコピー処理が行われ、各処理が完了すると、Ｓ６０２以降の処理が行われるようにしても良い。また、Ｓ６０６での判定基準を実行するようＵＩ部１２７に表示される設定画面において設定可能としても良い。その場合、例えば、設定画面上で設定内容が確定されたことをＳ６０１で取得し、Ｓ６０２以降の処理が行われるようにしても良い。
【００４７】
以上の各実施形態で説明された判定基準のいずれかを選択可能とするように構成しても良い。例えば、ＵＩ部１２７に表示される設定画面において各実施形態での判定基準のいずれかを選択可能に受け付けるようにしても良い。
【００４８】
以上の各実施形態は例示であり、それらの各構成要素や判断基準の組み合わせにはいろいろな変形例が可能なこと、また、例示されていない一般的な構成要素を付加しても本発明の範囲であることが当業者に理解される。
【００４９】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００５０】
１００  情報処理装置：  １０１  コントローラ：  １１０  メインＣＰＵ：  １１３  Ｉ／Ｏプロセッサ：  １１４  ストレージα：  １１５  ストレージβ：  １２７  ＵＩ部
【図１】
2020067717.tif 000003
【図２】
2020067717.tif 000004
【図３】
2020067717.tif 000005
【図４】
2020067717.tif 000006
【図５】
2020067717.tif 000007
【図６】
2020067717.tif 000008