(57)【要約】【課題】キャッシュメモリによる動作を伴う記憶メディアへのアクセスを行う際に、情報読み出し時のミスヒットや情報書き込み時のキャッシュオーバーフローによる遅延時間の発生をなくし、これにより記憶メディアに対する効率良いアクセスを行い得る情報処理装置を提供する。【解決手段】ホスト装置からキャッシュメモリ１４を使用した記憶メディア１３に対するデータの書き込みまたはデータの読み出しを行うためのコマンドパケットを受信した際に、データ転送制御部１２４によりこのコマンドパケット及びキャッシュメモリ管理テーブル１２１ａに基づいて、記憶メディア１３及びキャッシュメモリ１４に対するデータの書き込みまたはデータの読み出しを行うようにしている。【選択図】      図２
2006185335.tif 000002
【特許請求の範囲】
【請求項１】
接続される外部機器からの要求に応じて、第１の記録媒体に対する任意の情報の直接書き込み及び直接読み出し、前記第１の記録媒体に対し書き込むべく情報を第２の記録媒体に一時的に保持して書き込み、前記第１の記録媒体から読み出された情報を前記第２の記録媒体に一時的に保持して読み出しの少なくとも１つを実行する情報処理装置であって、
前記第２の記録媒体を使用した前記第１の記録媒体に対する情報の書き込み及び読み出しのいずれか一方の要求発生時に、要求元の外部機器との通信により要求された動作に必要な制御情報を取得する取得手段と、
前記制御情報に基づいて、前記第１及び第２の記録媒体に対する情報の書き込み及び読み出しのいずれか一方を実行する制御手段とを具備したことを特徴とする情報処理装置。
【請求項２】
さらに、前記第１及び第２の記録媒体を区分した複数のアドレスと当該アドレスの状態との対応関係を表す管理テーブルを格納する記憶手段を備え、
前記制御手段は、前記制御情報の内容に応じて、前記管理テーブル中の該当するアドレスの状態を示す情報を更新し、この更新情報に基づいて前記第１及び第２の記録媒体に対する情報の書き込み及び読み出しのいずれか一方を実行することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記制御手段は、前記第１及び第２の記録媒体のいずれか一方に対する情報の書き込み終了後に、前記管理テーブル中の該当アドレスに対応する状態を示す情報を更新することを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記制御手段は、前記第１及び第２の記録媒体のいずれか一方に対する情報の読み出し終了後に、前記管理テーブル中の該当アドレスに対応する状態を示す情報を更新することを特徴とする請求項２記載の情報処理装置。
【請求項５】
さらに、前記外部機器からの要求に応じて、前記管理テーブル中の状態を示す情報を前記外部機器に送信する送信手段を備えることを特徴とする請求項２記載の情報処理装置。
【請求項６】
前記送信手段は、前記外部機器からの要求に応じて、前記第２の記録媒体の容量を示す容量情報及び前記第２の記録媒体へのアクセス速度情報の少なくとも１つを前記外部機器に送信することを特徴とする請求項５記載の情報処理装置。
【請求項７】
前記制御手段は、前記外部機器から前記第１及び第２の記録媒体のいずれか一方に対するアクセス状態に応じて、前記第１及び第２の記録媒体のいずれか一方に対する情報の書き込み動作及び情報の読み出し動作に必要な電源を制御することを特徴とする請求項１記載の情報処理装置。
【請求項８】
前記外部機器が複数台接続されるとき、
前記記憶手段は、前記外部機器に対応した複数の管理テーブルを格納し、
前記制御手段は、前記制御情報の内容に応じて、前記外部機器ごとに前記管理テーブル中の該当するアドレスの記録状態を示す情報を更新し、この更新情報に基づいて前記第１及び第２の記録媒体に対する情報の書き込み及び読み出しのいずれか一方を実行することを特徴とする請求項２記載の情報処理装置。
【請求項９】
接続される外部機器からの要求に応じて、第１の記録媒体に対する任意の情報の直接書き込み及び直接読み出し、前記第１の記録媒体に対し書き込むべく情報を第２の記録媒体に一時的に保持して書き込み、前記第１の記録媒体から読み出された情報を前記第２の記録媒体に一時的に保持して読み出しの少なくとも１つを実行する情報処理装置の制御方法であって、
前記第２の記録媒体を使用した前記第１の記録媒体に対する情報の書き込み及び読み出しのいずれか一方の要求発生時に、要求元の外部機器との通信により要求された動作に必要な制御情報を取得し、
前記制御情報に基づいて、前記第１及び第２の記録媒体に対する情報の書き込み及び読み出しのいずれか一方を実行するようにしたことを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えばキャッシュメモリを有し、このキャッシュメモリを使用して外部のホストコンピュータからの情報をＨＤＤ（Hard Disk Drive）等の記録媒体に記録したり、また記録媒体から情報を読み出してホストコンピュータに送信することが可能な情報処理装置及びこの情報処理装置の制御方法に関する。
【背景技術】
【０００２】
周知のように、コンピュータシステムにあっては、キャッシュメモリを使用してホストコンピュータからの情報をＨＤＤ等の記憶メディアに記録したり、また記憶メディアから情報を読み出してホストコンピュータに送信することが可能な情報処理装置がある。
【０００３】
この場合、キャッシュメモリを制御するコントローラは、書き戻しキャッシュ処理方法を使用するかしないかに応じて、書き込み要求データを、記憶メディアに直ちに書き込むこともできるし、またはキャッシュメモリに書き込み要求データを一時的に記憶し、しかる後に記憶メディアに書き込む（フラッシュする）こともできる。
【０００４】
特に、上記情報処理装置では、使用頻度の高いデータをキャッシュメモリに記憶しておき、使用頻度の低いデータを記憶メディアに記憶しておくことにより処理の高速化を図ることができ便利である。
【０００５】
また、上記情報処理装置では、複数のホストコンピュータからのアクセスがある場合に、キャッシュメモリを複数セグメントに分割し、ホストコンピュータとセグメントとを対応付けることにより、あるホストコンピュータからのアクセスのキャッシュヒット率が別のホストコンピュータからのアクセスパターンの影響を受けないようにしたシステムも提案されている（例えば、特許文献１）。
【特許文献１】特開２００４−１３９３４９号公報。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、上記システムでは、情報処理装置側でキャッシュメモリを制御しており、ホストコンピュータ側では情報読み出し時のミスヒットや情報書き込み時のキャッシュオーバーフローによる遅延時間の発生を認識することができない。
【０００７】
そこで、この発明の目的は、キャッシュメモリによる動作を伴う記憶メディアへのアクセスを行う際に、情報読み出し時のミスヒットや情報書き込み時のキャッシュオーバーフローによる遅延時間の発生をなくし、これにより記憶メディアに対する効率良いアクセスを行い得る情報処理装置及びこの情報処理装置の制御方法を提供することにある。
【課題を解決するための手段】
【０００８】
この発明は、上記目的を達成するために、以下のように構成される。  
接続される外部機器からの要求に応じて、第１の記録媒体に対する任意の情報の直接書き込み及び直接読み出し、第１の記録媒体に対し書き込むべく情報を第２の記録媒体に一時的に保持して書き込み、第１の記録媒体から読み出された情報を第２の記録媒体に一時的に保持して読み出しの少なくとも１つを実行する情報処理装置であって、第２の記録媒体を使用した第１の記録媒体に対する情報の書き込み及び読み出しのいずれか一方の要求発生時に、要求元の外部機器との通信により要求された動作に必要な制御情報を取得する取得手段と、制御情報に基づいて、第１及び第２の記録媒体に対する情報の書き込み及び読み出しのいずれか一方を実行する制御手段とを備えるようにしたものである。
【０００９】
この構成によれば、第２の記録媒体を使用した第１の記録媒体に対する情報の書き込み及び読み出しのいずれか一方の要求発生時に、外部機器から送られた制御情報に基づいて、第１及び第２の記録媒体に対する情報の書き込み及び読み出しのいずれか一方が行われる。従って、第２の記録媒体に対する動作を制御手段に頼らずに外部機器で分担して決めることが可能となり、これによりミスヒットを起こすことなく効率良く第２の記録媒体を使用することができる。
【００１０】
さらに、第１及び第２の記録媒体を区分した複数のアドレスと当該アドレスの状態との対応関係を表す管理テーブルを格納する記憶手段を備え、制御手段は、制御情報の内容に応じて、管理テーブル中の該当するアドレスの状態を示す情報を更新し、この更新情報に基づいて第１及び第２の記録媒体に対する情報の書き込み及び読み出しのいずれか一方を実行することを特徴とする。
【００１１】
この構成によれば、管理テーブルを用いて、第１及び第２の記録媒体に対する情報の書き込み及び読み出しのいずれか一方が実行されるので、簡単な手順で適切な情報の書き込み処理及び読み出し処理を行うことができる。
【００１２】
制御手段は、第１及び第２の記録媒体のいずれか一方に対する情報の書き込みまたは読み出し終了後に、管理テーブル中の該当アドレスに対応する状態を示す情報を更新することを特徴とする。  
この構成によれば、管理テーブル中の該当アドレスに対応する状態を示す情報を、ユーザが手操作で更新処理をすることなく、自動的に常に最新の情報に更新することができる。
【００１３】
さらに、外部機器からの要求に応じて、管理テーブル中の状態を示す情報を外部機器に送信する送信手段を備えることを特徴とする。  
この構成によれば、外部機器からの要求に応じて、管理テーブル中の状態を示す情報を外部機器に送信することにより、第１及び第２の記録媒体の状態管理を情報処理装置に頼らずに外部機器で分担して実行することが可能となり、これにより第１及び第２の記録媒体の状態管理に伴う消費電力を低減することができる。また、第１の記録媒体への効率良いアクセスが可能になることから、第１の記録媒体によってはデータ及び情報処理装置自体の寿命を延命できる。
【００１４】
送信手段は、外部機器からの要求に応じて、第２の記録媒体の容量を示す容量情報及び第２の記録媒体へのアクセス速度情報の少なくとも１つを外部機器に送信することを特徴とする。  
この構成によれば、外部機器側で容量情報及びアクセス速度情報に基づいて、第１及び第２の記録媒体へのアクセス時間を予測することができる。
【００１５】
制御手段は、外部機器から第１及び第２の記録媒体のいずれか一方に対するアクセス状態に応じて、第１及び第２の記録媒体のいずれか一方に対する情報の書き込み動作及び情報の読み出し動作に必要な電源を制御することを特徴とする。  
この構成によれば、第１及び第２の記録媒体のいずれか一方に対する情報の書き込み動作及び情報の読み出し動作に伴う消費電力を低減することができる。
【００１６】
外部機器が複数台接続されるとき、記憶手段は、外部機器に対応した複数の管理テーブルを格納し、制御手段は、制御情報の内容に応じて、外部機器ごとに管理テーブル中の該当するアドレスの記録状態を示す情報を更新し、この更新情報に基づいて第１及び第２の記録媒体に対する情報の書き込み及び読み出しのいずれか一方を実行することを特徴とする。
【００１７】
この構成によれば、各外部機器ごとに管理テーブルが固定的に用意されるので、異なる外部機器に係わる第１及び第２の記録媒体に対する複数のアクセス要求が同一時間帯に発生した場合でも、これらのアクセス制御を並行して行えるようになり、これにより上記第１及び第２の記録媒体に対する複数のアクセス制御を効率良く実行できる。
【発明の効果】
【００１８】
以上詳述したようにこの発明によれば、キャッシュメモリによる動作を伴う記憶メディアへのアクセスを行う際に、情報読み出し時のミスヒットや情報書き込み時のキャッシュオーバーフローによる遅延時間の発生をなくし、これにより記憶メディアに対する効率良いアクセスを行い得る情報処理装置及びこの情報処理装置の制御方法を提供することができる。
【発明を実施するための最良の形態】
【００１９】
以下、この発明の実施形態について図面を参照して詳細に説明する。  
（第１の実施形態）  
図１は、この発明に係わる情報処理装置の第１の実施形態の構成を示すブロック図である。
【００２０】
記憶装置１０Ａには、外部機器であるホスト装置ＨＡ１がホストバス１１で接続されている。ここで、記憶装置１０Ａは、情報処理装置として機能し、デバイスコントローラ１２Ａによりホストバス１１を介してホスト装置ＨＡ１から受信した制御情報としてのコマンドパケットに基づいて、不揮発性メモリやディスク装置等の記憶メディア１３に対するデータ書き込み及び読み出し、キャッシュメモリ１４に対するデータ書き込み及び読み出しを制御可能とする。デバイスコントローラ１２Ａは、記憶メディア１３及びキャッシュメモリ１４それぞれのアドレスを及びデータの記録状態を管理するキャッシュメモリ管理部１２１を有している。
【００２１】
図２は、上記デバイスコントローラ１２Ａの具体的構成を示すブロック図である。  
デバイスコントローラ１２Ａは、キャッシュメモリ管理部１２１に加えて、ホストインタフェース（Ｉ／Ｆ）１２２と、データバッファ１２３と、データ転送制御部１２４と、メディアインタフェース（Ｉ／Ｆ）１２５と、キャッシュメモリインタフェース（Ｉ／Ｆ）１２６と、キャッシュメモリ情報記憶部１２７とを備えている。
【００２２】
ホストＩ／Ｆ１２２は、ホストバス１１を介してホスト装置ＨＡ１から送られた図３に示すコマンドパケットＣＰ１０を取り込み、データバッファ１２３に転送し、その転送終了後にデータバッファ１２３上のコマンドパケットＣＰ１０の存在領域をデータ転送制御部１２４に通知する。
【００２３】
データ転送制御部１２４はホストＩ／Ｆ１２２からの通知に基づいて、データバッファ１２３からコマンドパケットＣＰ１０を取り込み、そのコマンドパケットＣＰ１０の解析処理を行って、メデイアＩ／Ｆ１２５及びキャッシュメモリＩ／Ｆ１２６に対しライトアドレスまたはリードアドレス、データ転送量を指定する。以後、データ転送制御部１２４は、ホスト装置ＨＡ１に対し記憶メディア１３及びキャッシュメモリ１４の状態を示すレスポンスパケットＲＰを送信する。
【００２４】
メディアＩ／Ｆ１２５はデータ転送制御部１２４から指定されたライトアドレスまたはリードアドレスから指定されたデータ転送量だけ、データバッファ１２３に記憶されたデータを記憶メディア１３に転送して書き込み、または記憶メディア１３から情報を読み出してデータバッファ１２３に転送する。読み出し終了後、記憶メディア１３の対応領域が開放状態になった旨をデータ転送制御部１２４に通知する。
【００２５】
キャッシュメモリＩ／Ｆ１２６は、データ転送制御部１２４から指定されたライトアドレスまたはリードアドレスから指定されたデータ転送量だけ、データバッファ１２３に記憶されたデータをキャッシュメモリ１４に転送して書き込み、またはキャッシュメモリ１４から情報を読み出してデータバッファ１２３に転送する。
【００２６】
データバッファ１２３は、記憶メディア１３から転送されるデータやデータ転送制御部１２４を通じてキャッシュメモリ１４から転送されるデータを格納し、ホストＩ／Ｆ１２２及びホストバス１１を介してホスト装置ＨＡ１へ適宜出力する。
【００２７】
ところで、キャッシュメモリ管理部１２１は、キャッシュメモリ管理テーブル１２１ａと、キャッシュタイプ−方式対応テーブル１２１ｂと、ビット−ステータス対応テーブル１２１ｃとを備えている。
【００２８】
キャッシュメモリ管理テーブル１２１ａには、図４に示すように、キャッシュインデックス２０１と、キャッシュアドレス指定フィールド２０２と、記憶メディアデータアドレス指定フィールド２０３と、Ｃａｃｈｅ Ｔｙｐｅフィールド２０４と、キャッシュステータス２０５との対応関係を表すデータが記憶されている。
【００２９】
キャッシュアドレス指定フィールド２０２及び記憶メディアデータアドレス指定フィールド２０３は、キャッシュメモリ１４アドレスに記憶メディアデータライトまたはリードアドレスをマッピングするのに使用する。
【００３０】
Ｃａｃｈｅ Ｔｙｐｅフィールド２０４は、既知のＬＲＵ、ラウンドロビン、ランダム方式等に代表されるキャッシュのリプレースメント方式のタイプ等や、既知のライトスルー、ライトバック方式等に代表される書き込み制御方式のタイプ等の指定に使用される。
【００３１】
キャッシュステータス２０５は、キャッシュのエンプティ、フル、記憶メディア１３へのライトまたはリード中等のキャッシュ状態を示す。
【００３２】
キャッシュタイプ−方式対応テーブル１２１ｂには、図５に示すように、キャッシュタイプ番号とキャッシュ方式との対応関係を表すデータが記憶される。
【００３３】
ビット−ステータス対応テーブル１２１ｃには、図６に示すように、ビットとキャッシュステータスとの対応関係を表すデータが記憶されている。
【００３４】
ここで、データ転送制御部１２４は、ホストＩ／Ｆ１２２から引数を伴ったコマンドパケットＣＰ１０及びレスポンスパケットＲＰでキャッシュメモリ管理テーブル１２１ａにデータアクセス可能であるものとする。
【００３５】
また、データ転送制御部１２４には、キャッシュメモリ情報記憶部１２７が接続される。キャッシュメモリ情報記憶部１２７には、キャッシュメモリ１４の容量情報及びキャッシュメモリ１４へのアクセス速度情報が記憶される。そして、ホスト装置ＨＡ１からの要求に応じて、データ転送制御部１２４はキャッシュメモリ情報記憶部１２７から容量情報及びアクセス速度情報を読み出してホスト装置ＨＡ１へ送信する。
【００３６】
次に、上記構成における動作について説明する。  
ここで、記憶装置１０Ａとホスト装置ＨＡ１との間で、コマンド、レスポンスまたはデータがホストバス１１を介してパケット形式で送受信されるものとする。コマンドパケットＣＰ１０のコマンド識別子と引数にはそれぞれ任意のコマンド番号とコマンド番号に応じた任意の値が設定される。
【００３７】
キャッシュメモリ管理テーブル１２１ａへの書き込みコマンドである場合は、ＣＰ１１で示される引数内容が設定されるものとし、キャッシュメモリ管理テーブル１２１ａで実施されているキャッシュステータスの確認コマンドにおいてはＣＰ１２で示される引数内容が設定されるものとし、記憶装置１０Ａに対するリードまたはライトアクセスコマンドに対してはＣＰ１３で示される引数内容が設定されるものとする。
【００３８】
コマンドパケットＣＰ１０をホストバス１１を介して記憶装置１０Ａに送信した場合、記憶装置１０Ａは該コマンドパケットＣＰ１０に対しレスポンスパケットＲＰをホスト装置ＨＡ１に送信するものであり、レスポンスパケットＲＰのステータスフィールドには、キャッシュステータスの確認コマンドに対してはＣａｃｈｅ Ｓｔａｔｕｓの値が含まれるものとする。リードまたはライトアクセスコマンドパケットＣＰ１３をホストバス１１を介して記憶装置１０Ａに送信した場合、リードまたはライトに応じてデータパケットＤＰがホスト装置ＨＡ１及び記憶装置１０Ａ間で送受信されるものとする。
【００３９】
キャッシュメモリ管理テーブル１２１ａへの書き込みコマンドの受信をホストＩ／Ｆ１２２を介して通知されたデータ転送制御部１２４は、該コマンドパケットＣＰ１１のＣａｃｈｅ Ｉｎｄｅｘ３０１で参照されるキャッシュメモリ管理テーブル１２１ａのキャッシュアドレス指定フィールド２０２、記憶メディアデータアドレス指定フィールド２０３、Ｃａｃｈｅ Ｔｙｐｅフィールド２０４を該コマンド引数で指定されるキャッシュアドレス指定フィールド３０２、記憶メディアデータアドレス指定フィールド３０３、Ｃａｃｈｅ Ｔｙｐｅフィールド３０４に置き換える。
【００４０】
キャッシュステータスの確認コマンド受信をホストＩ／Ｆ１２２を介して通知されたデータ転送制御部１２４は、該コマンドパケットＣＰ１２のＣａｃｈｅ Ｉｎｄｅｘ３０１で参照されるキャッシュメモリ管理テーブル１２１ａのＣａｃｈｅ  Ｓｔａｔｕｓ値２０５をレスポスパケットＲＰのステータスフィールドに格納してホストＩ／Ｆ１２２を介してホスト装置ＨＡ１に通知する。
【００４１】
図７は、記憶装置１０Ａにホスト装置ＨＡ１からのライトコマンドと記憶メディア１３へのブロックアドレス３０５を含むコマンドパケットＣＰ１３を受け取った際のデータ転送制御部２０３の制御処理手順を示すフローチャートである。
【００４２】
ここでは、ライトデータパケットはブロック単位で順次データバッファ１２３に記憶できるものとし、記憶メディアブロックアドレス２０３は各インデックス間で重複しないものとする。
【００４３】
まず、ライトコマンドＣＰ１１をホストＩ／Ｆ１２２を介して受取ったデータ転送制御部１２４は、ホスト装置ＨＡ１から１ブロック単位でライトデータをデータバッファ１２３に記憶しデータ転送制御を開始する（ステップＳＴ７ａ）。ここでは、インデックス値０から参照していくものとする（ステップＳＴ７ｂ）。
【００４４】
データ転送制御部１２４は、インデックス値Ｍで参照可能なキャッシュメモリ管理テーブル１２１ａのＣａｃｈｅ Ｔｙｐｅフィールド２０４を参照してライトキャッシュ動作が有効または無効の判定を行い（ステップＳＴ７ｃ）、有効であればライトブロックデータアドレスが記憶メディアブロックアドレス空間３０５内であるか判定する（ステップＳＴ７ｄ）。
【００４５】
上記ステップＳＴ７ｃでライトキャッシュ動作が無効または上記ステップＳＴ７ｄでライトブロックデータアドレスが記憶メディアブロックアドレス空間３０５外であれば、データ転送制御部１２４はインデックス参照値Ｍがキャッシュメモリ管理テーブル１２１ａの最大インデックス値ｎと等しいか確認し（ステップＳＴ７ｅ）、等しく無ければ次インデックス値を参照すべくＭをインクリメントし（ステップＳＴ７ｆ）、再度上記ステップＳＴ７ｃの処理に移行する。
【００４６】
一方、上記ステップＳＴ７ｅにおいて等しければ、データ転送制御部１２４は該ブロックデータを記憶メディア１３にライトして（ステップＳＴ７ｇ）終了する。
【００４７】
また、上記ステップＳＴ７ｄにおいて、ライトブロックデータアドレスが記憶メディアブロックアドレス空間３０５内である場合に（Ｙｅｓ）、データ転送制御部１２４はインデックス値Ｍで参照可能なキャシュメモリ管理テーブル１２１ａのＣｈａｃｈｅ Ｔｙｐｅフィールド２０４を参照してライトスルーかライトバック処理であるか判定し（ステップＳＴ７ｈ）、ライトスルー処理であれば該Ｃａｃｈｅ ＳｔａｔｕｓにＷｒｉｔｅ Ｂｕｓｙビットを設定して（ステップＳＴ７ｉ）、該ライトブロックデータを記憶メディア１３にライトし（ステップＳＴ７ｊ）、該Ｃａｃｈｅ ＳｔａｔｕｓのＷｒｉｔｅ Ｂｕｓｙビットをクリアする（ステップＳＴ７ｋ）。一方、ライトバック処理である場合に（Ｎｏ）、データ転送制御部１２４は該Ｃａｃｈｅ ＳｔａｔｕｓにＤｉｒｔｙビットを設定する（ステップＳＴ７ｌ）。
【００４８】
なお、上記ステップＳＴ７ｈでライトスルーかライトバック処理であるかいずれに判断されても、該ライトブロックデータをキャッシュメモリ１４にライトして終了する（ステップＳＴ７ｍ）。
【００４９】
図８は、記憶装置１０Ａにホスト装置ＨＡ１からのフラッシュコマンドを含むコマンドパケットＣＰ１０を受け取った際のデータ転送制御部１２４の制御処理手順を示すフローチャートである。
【００５０】
コマンドパケットＣＰ１０をホストＩ／Ｆ１２２介して受取ったデータ転送制御部１２４はデータ転送制御を開始する（ステップＳＴ８ａ）。ここでは、インデックス値０から参照していくものとする（ステップＳＴ８ｂ）。
【００５１】
データ転送制御部１２４は、インデックス値Ｍで参照可能なキャッシュメモリ管理テーブル１２１ａのＣａｃｈｅ Ｓｔａｔｕｓ２０５を参照してＤｉｒｔｙビットの有無を判定する（ステップＳＴ８ｃ）。
【００５２】
ここで、Ｃａｃｈｅ ＳｔａｔｕｓがＤｉｒｔｙであった場合（Ｙｅｓ）、データ転送制御部１２４は該Ｃａｃｈｅ ＳｔａｔｕｓにＷｒｉｔｅ Ｂｕｓｙビットを設定して（ステップＳＴ８ｄ）、キャッシュメモリ１４のキャッシュブロックアドレス２０２空間に記憶されているブロックデータを記憶メディア１３に転送してライトし（ステップＳＴ８ｅ）、該Ｃａｃｈｅ ＳｔａｔｕｓのＷｒｉｔｅ Ｂｕｓｙビットをクリアする（ステップＳＴ８ｆ）。
【００５３】
上記ステップＳＴ８ｆの処理終了後または上記ステップＳＴ８ｃにおいてＤｉｒｔｙビット無しの場合（Ｎｏ）、データ転送制御部１２４はインデックス参照値Ｍがキャッシュメモリ管理テーブル１２１ａの最大インデックス値ｎと等しいか確認し（ステップＳＴ８ｇ）、等しく無ければ次インデックス値を参照すべくＭをインクリメントして（ステップＳＴ８ｈ）、再度上記ステップＳＴ８ｃの処理に移行し、等しければ終了する。
【００５４】
図９は、記憶装置１０Ａにホスト装置ＨＡ１からのリードコマンドと記憶メディア１３へのブロックアドレス３０５を含むコマンドパケットＣＰ１０を受け取った際のデータ転送制御部１２４の制御処理手順を示すフローチャートである。ここでは、リードデータパケットはブロック単位で順次データバッファ１２３からホストＩ／Ｆ１２２を介して送信可能なものとし、記憶メディアブロックアドレス２０３は各インデックス間で重複しないものとする。
【００５５】
リードコマンドＣＰ１０をホストＩ／Ｆ１２２を介して受取ったデータ転送制御部１２４は、１ブロックデータ単位にデータ転送制御を開始する（ステップＳＴ９ａ）。ここでは、インデックス値０から参照していくものとする（ステップＳＴ９ｂ）。
【００５６】
データ転送制御部１２４は、インデックス値Ｍで参照可能なキャッシュメモリ管理テーブル１２１ａのＣａｃｈｅ Ｔｙｐｅフィールド２０４を参照してキャッシュ動作が有効または無効の判定を行い（ステップＳＴ９ｃ）、有効であればリードブロックデータアドレスが記憶メディアブロックアドレス空間３０５内であるか判定する（ステップＳＴ９ｄ）。
【００５７】
上記ステップＳＴ９ｃでキャッシュ動作が無効または上記ステップＳＴ９ｄでリードブロックデータアドレスが記憶メディアブロックアドレス空間３０５外であれば、データ転送制御部１２４はインデックス参照値Ｍがキャッシュメモリ管理テーブル１２１ａの最大インデックス値ｎと等しいか確認し（ステップＳＴ９ｅ）、等しく無ければ次のインデックス値を参照すべくＭをインクリメントし（ステップＳＴ９ｆ）、再度上記ステップＳＴ９ｃの処理に移行する。
【００５８】
一方、上記ステップＳＴ９ｄにおいて、リードブロックデータアドレスが記憶メディアブロックアドレス空間３０５内であれば（Ｙｅｓ）、データ転送制御部１２４はインデックス値Ｍで参照可能なキャシュメモリ管理テーブル１２１ａのＣａｃｈｅ Ｔｙｐｅフィールド２０４がＢｕｆｆｅｒ Ｅｍｐｔｙか判定し（ステップＳＴ９ｇ）、Ｂｕｆｆｅｒ  Ｅｍｐｔｙであればリードブロックデータを記憶メディア１３からデータバッファ１２３にリードし（ステップＳＴ９ｈ）、Ｂｕｆｆｅｒ  Ｅｍｐｔｙでなければリードブロックデータをキャッシュメモリ１４からデータバッファ１２３にリードし（ステップＳＴ９ｉ）、データバッファ１２３に蓄積されたデータをホストＩ／Ｆ１２２を介してホスト装置ＨＡ１に転送し（ステップＳＴ９ｊ）終了する。
【００５９】
図１０は、ホスト装置ＨＡ２がキャッシュメモリ管理テーブル１２１ａの任意インデックスに登録すべきコマンド番号と引数ＣＰ１１を含んだコマンドパケットを記憶装置１０Ａに送信した場合のデータ転送制御部１２４の制御処理手順を示すフローチャートである。
【００６０】
前記コマンドをホストＩ／Ｆ１２２を介して受け取ったデータ転送制御部１２４は該コマンド内容をキャッシュメモリ管理テーブル１２１ａに登録し（ステップＳＴ１０ａ）、該Ｃａｃｈｅ Ｓｔａｔｕｓ値をクリアする（ステップＳＴ１０ｂ）。この時、Ｃａｃｈｅ Ｔｙｐｅが０すなわちキャッシュ動作無しであるか確認し（ステップＳＴ１０ｃ）、キャッシュ動作無しであれば終了し（ステップＳＴ１０ｄ）、それ以外の有効な値であれば該Ｃａｃｈｅ Ｓｔａｔｕｓ値をＢｕｆｆｅｒ Ｅｍｐｔｙビットを設定し（ステップＳＴ１０ｄ）、記憶メディア１３へのアクセスが可能な時点で該Ｃａｃｈｅ Ｓｔａｔｕｓ値にＲｅａｄ Ｂｕｓｙビットを設定し（ステップＳＴ１０ｅ）、記憶メディア１３からキャッシュメモリ管理テーブル１２１ａで指定された記憶メディアブロックアドレス空間２０３の有効データを読み出し（ステップＳＴ１０ｆ）、記憶メディア１３へのアクセスが可能な時点で該Ｃａｃｈｅ ＳｔａｔｕｓのＲｅａｄ Ｂｕｓｙビットをクリアし（ステップＳＴ１０ｇ）、該Ｃａｃｈｅ ＳｔａｔｕｓのＢｕｆｆｅｒ ＥｍｐｔｙビットをクリアしてＢｕｆｆｅｒ  Ｆｕｌｌビットを設定（ステップＳＴ１０ｈ）し、処理を終了する。
【００６１】
図１１は、記憶装置１０Ａのパワーマネージメント機能とホスト装置ＨＡ１から記憶メディア１３及びキャッシュメモリ１４のステータスデータのリード要求が到来した際の記憶装置１０Ａの制御処理手順を示すフローチャートである。
【００６２】
記憶装置１０Ａのパワーマネージメント機能は従来のＡＴＡ−５規格などＳｌｅｅｐステートとＩｄｌｅもしくはＡｃｔｉｖｅステートを持つものとし、少なくともホスト装置ＨＡ１からはＳｌｅｅｐとＩｄｌｅステートへの遷移コマンドが発行可能なものとし、該パワーマネージメント機能のＳｌｅｅｐ状態においても記憶メディア１３以外のメモリのデータ転送は可能なものとする。
【００６３】
ホスト装置ＨＡ１が任意コマンドパケットを発行すると、記憶装置１０Ａは記憶メディア１３へのアクセスが可能なＩｄｌｅステートに遷移する（ステップＳＴ１１ａ）。続いて、キャッシュメモリ管理テーブル１２１ａの任意インデックス２０１にリードすべき記憶メディア１３のブロックアドレス空間２０３と該空間と同等なキャッシュメモリ空間を含んだ任意キャッシュメモリアドレス空間３０２と任意キャッシュタイプ３０４を含んだコマンドパケットＣＰ１１を送信することで、記憶装置１０Ａはキャッシュメモリ管理テーブル１２１ａへの登録を行う（ステップＳＴ１１ｂ）。
【００６４】
ホスト装置ＨＡ１が任意インデックスＹ２０１のＣａｃｈｅ ＳｔａｔｕｓをリードすべくコマンドパケットＣＰ１２を送信すると、記憶装置１０ＡはコマンドパケットＣＰ１２に基づいてキャッシュメモリ管理テーブル１２１ａ中のインデックスに対応するＣａｃｈｅ Ｓｔａｔｕｓをリードし（ステップＳＴ１１ｃ）、該Ｃａｃｈｅ  ＳｔａｔｕｓがＢｕｆｆｅｒ Ｅｍｐｔｙの間、上記ステップＳＴ１１ｃの処理を繰り返し実行する（ステップＳＴ１１ｄ）。
【００６５】
ここで、Ｂｕｆｆｅｒ  Ｅｍｐｔｙで無くなればキャッシュメモリ１４にリードすべくブロックデータが格納されたのでホストコントローラは任意コマンドパケットを発行する。すると、記憶装置１０Ａは記憶メディア１３へのアクセスが不能なＳｌｅｅｐステートに遷移し（ステップＳＴ１１ｅ）、続いて、ホスト装置ＨＡからリードコマンドと上記ステップＳＴ１１ｂで設定した記憶メディア１３への該ブロックアドレスを含むコマンドパケットＣＰ１０を受信すると、このコマンドパケットＣＰ１０に従ってデータリードを行う（ステップＳＴ１１ｆ）。
【００６６】
以上のように上記第１の実施形態では、ホスト装置ＨＡ１からキャッシュメモリ１４を使用した記憶メディア１３に対するデータの書き込みまたはデータの読み出しを行うためのコマンドパケットＣＰ１０を受信した際に、データ転送制御部１２４によりこのコマンドパケットＣＰ１０及びキャッシュメモリ管理テーブル１２１ａに基づいて、記憶メディア１３及びキャッシュメモリ１４に対するデータの書き込みまたはデータの読み出しを行うようにしている。
【００６７】
従って、キャッシュ動作を記憶装置１０Ａのデータ転送制御部１２４に頼らずにホスト装置ＨＡ１で分担して決めることが可能となり、これによりミスヒットを起こすことなく効率良くキャッシュメモリ１４を使用して記憶メディア１３に対するデータ書き込み及びデータ読み出しを行うことができる。さらに、キャッシュメモリ管理テーブル１２１ａを用いているので、簡単な手順により記憶メディア１３及びキャッシュメモリ１４に対するデータの書き込みまたはデータの読み出しを行うことができる。
【００６８】
また、上記第１の実施形態では、ホスト装置ＨＡ１からの要求に応じて、キャッシュメモリ管理テーブル１２１ａ中のＣａｃｈｅ  Ｓｔａｔｕｓ値をホスト装置ＨＡ１に送信するようにしているので、記憶メディア１３及びキャッシュメモリ１４の状態管理を記憶装置１０Ａに頼らずにホスト装置ＨＡ１で分担して実行することが可能となり、これにより記憶メディア１３及びキャッシュメモリ１４の状態管理に伴う消費電力を低減することができる。また、記憶メディア１３への効率良いアクセスが可能になることから、記憶メディア１３によってはデータ及び記憶装置１０Ａ自体の寿命を延命できる。
【００６９】
さらに、上記第１の実施形態では、ホスト装置ＨＡ１からの要求に応じて、キャッシュメモリ１４の容量を示す容量情報及びキャッシュメモリ１４のアクセス速度情報をホスト装置ＨＡ１に送信するようにもしているので、ホスト装置ＨＡ１側で容量情報及びアクセス速度情報に基づいて、記憶メディア１３及びキャッシュメモリ１４へのアクセス時間を予測することができる。
【００７０】
（第２の実施形態）  
図１２は、この発明に係わる情報処理装置の第２の実施形態の構成を示すブロック図である。なお、図１２において、上記図１と同一部分には同一符号を付して詳細な説明を省略する。
【００７１】
すなわち、記憶装置１０Ｂには、ホスト装置ＨＡ１の他に、ホスト装置ＨＡ２がホストバス４１を介して接続されることになる。この場合、デバイスコントローラ１２Ｂは、ホスト装置ＨＡ２からの要求に対し、キャッシュメモリ管理部４２に設けられたキャッシュメモリ管理テーブルに基づいて、記憶メディア１３及びキャッシュメモリ１４に対するデータの書き込み及びデータの読み出しを行う。
【００７２】
なお、キャッシュメモリ管理部４２に設けられたキャッシュメモリ管理テーブルの内容は、上記キャッシュメモリ管理部１２１のキャッシュメモリ管理テーブルの内容と重複しないものとする。
【００７３】
このように上記第２の実施形態であれば、ホスト装置ＨＡ１，ＨＡ２ごとにキャッシュメモリ管理テーブルが固定的に用意されるので、ホスト装置ＨＡ１，ＨＡ２から記憶メディア１３及びキャッシュメモリ１４に対するアクセス要求が同一時間帯に発生した場合でも、これらのアクセス制御を並行して行えるようになり、これにより記憶メディア１３及びキャッシュメモリ１４に対する複数のアクセス制御を効率良く実行できる。
【００７４】
（その他の実施形態）  
なお、この発明は上記各実施形態に限定されるものではない。例えば、キャッシュメモリ管理テーブル及びホスト装置からのアクセス状況に応じて、内部の電源制御を行うようにしてもよい。この場合、記憶メディア１３及びキャッシュメモリ１４に対するデータの書き込み動作及びデータの読み出し動作に伴う消費電力を低減することができる。
【００７５】
また、上記各実施形態では、キャッシュメモリ管理テーブルを用いる例について説明したが、ホスト装置からのキャッシュメモリの使用状態を指定でき、この指定に基づいてキャッシュメモリの制御を行うようにしてもよい。
【００７６】
その他、記憶装置の構成、記憶メディアの種類、キャッシュメモリ管理テーブルの内容、データの書き込み及び読み出し手順等についても、この発明の要旨を逸脱しない範囲で種々変形して実施できる。
【図面の簡単な説明】
【００７７】
【図１】この発明に係わる情報処理装置の第１の実施形態の構成を示すブロック図。
【図２】図１に示したデバイスコントローラの具体的構成を示すブロック図。
【図３】同第１の実施形態において、ホスト装置との間で送受信されるパケットの構造を示す図。
【図４】図２に示したキャッシュメモリ管理テーブルの記憶内容の一例を示す図。
【図５】図２に示したキャッシュタイプ−方式対応テーブルの記憶内容の一例を示す図。
【図６】図２に示したビット−ステータス対応テーブルの記憶内容の一例を示す図。
【図７】同第１の実施形態において、記憶メディア及びキャッシュメモリに対するデータの書き込みを行う際のデータ転送制御部の制御処理手順を示すフローチャート。
【図８】同第１の実施形態において、キャッシュメモリのデータを記憶メディアへ転送する際のデータ転送制御部の制御処理手順を示すフローチャート。
【図９】同第１の実施形態において、記憶メディアに対するデータの読み出しを行う際のデータ転送制御部の制御処理手順を示すフローチャート。
【図１０】同第１の実施形態において、ホスト装置からキャッシュメモリ管理テーブルへの登録を行う際のデータ転送制御部の制御処理手順を示すフローチャート。
【図１１】同第１の実施形態において、ホスト装置から記憶メディア及びキャッシュメモリのステータスデータのリード要求が到来した際の記憶装置の制御処理手順を示すフローチャート。
【図１２】この発明に係わる情報処理装置の第２の実施形態の構成を示すブロック図。
【符号の説明】
【００７８】
１０Ａ，１０Ｂ…記憶装置、１１…ホストバス、１２Ａ，１２Ｂ…デバイスコントローラ、１３…記憶メディア、１４…キャッシュメモリ、４２，１２１…キャッシュメモリ管理部、１２２…ホストインタフェース（Ｉ／Ｆ）、１２３…データバッファ、１２４…データ転送制御部、１２５…メディアインタフェース（Ｉ／Ｆ）、１２６…キャッシュメモリインタフェース（Ｉ／Ｆ）、１２７…キャッシュメモリ情報記憶部、１２１ａ…キャッシュッメモリ管理テーブル、ＨＡ１，ＨＡ２…ホスト装置。
【図１】
2006185335.tif 000003
【図２】
2006185335.tif 000004
【図３】
2006185335.tif 000005
【図４】
2006185335.tif 000006
【図５】
2006185335.tif 000007
【図６】
2006185335.tif 000008
【図７】
2006185335.tif 000009
【図８】
2006185335.tif 000010
【図９】
2006185335.tif 000011
【図１０】
2006185335.tif 000012
【図１１】
2006185335.tif 000013
【図１２】
2006185335.tif 000014