JP2006185335A - 情報処理装置及びこの情報処理装置の制御方法 - Google Patents
情報処理装置及びこの情報処理装置の制御方法 Download PDFInfo
- Publication number
- JP2006185335A JP2006185335A JP2004380501A JP2004380501A JP2006185335A JP 2006185335 A JP2006185335 A JP 2006185335A JP 2004380501 A JP2004380501 A JP 2004380501A JP 2004380501 A JP2004380501 A JP 2004380501A JP 2006185335 A JP2006185335 A JP 2006185335A
- Authority
- JP
- Japan
- Prior art keywords
- information
- recording medium
- reading
- cache memory
- processing apparatus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【課題】キャッシュメモリによる動作を伴う記憶メディアへのアクセスを行う際に、情報読み出し時のミスヒットや情報書き込み時のキャッシュオーバーフローによる遅延時間の発生をなくし、これにより記憶メディアに対する効率良いアクセスを行い得る情報処理装置を提供する。
【解決手段】ホスト装置からキャッシュメモリ14を使用した記憶メディア13に対するデータの書き込みまたはデータの読み出しを行うためのコマンドパケットを受信した際に、データ転送制御部124によりこのコマンドパケット及びキャッシュメモリ管理テーブル121aに基づいて、記憶メディア13及びキャッシュメモリ14に対するデータの書き込みまたはデータの読み出しを行うようにしている。
【選択図】 図2
【解決手段】ホスト装置からキャッシュメモリ14を使用した記憶メディア13に対するデータの書き込みまたはデータの読み出しを行うためのコマンドパケットを受信した際に、データ転送制御部124によりこのコマンドパケット及びキャッシュメモリ管理テーブル121aに基づいて、記憶メディア13及びキャッシュメモリ14に対するデータの書き込みまたはデータの読み出しを行うようにしている。
【選択図】 図2
Description
この発明は、例えばキャッシュメモリを有し、このキャッシュメモリを使用して外部のホストコンピュータからの情報をHDD(Hard Disk Drive)等の記録媒体に記録したり、また記録媒体から情報を読み出してホストコンピュータに送信することが可能な情報処理装置及びこの情報処理装置の制御方法に関する。
周知のように、コンピュータシステムにあっては、キャッシュメモリを使用してホストコンピュータからの情報をHDD等の記憶メディアに記録したり、また記憶メディアから情報を読み出してホストコンピュータに送信することが可能な情報処理装置がある。
この場合、キャッシュメモリを制御するコントローラは、書き戻しキャッシュ処理方法を使用するかしないかに応じて、書き込み要求データを、記憶メディアに直ちに書き込むこともできるし、またはキャッシュメモリに書き込み要求データを一時的に記憶し、しかる後に記憶メディアに書き込む(フラッシュする)こともできる。
特に、上記情報処理装置では、使用頻度の高いデータをキャッシュメモリに記憶しておき、使用頻度の低いデータを記憶メディアに記憶しておくことにより処理の高速化を図ることができ便利である。
また、上記情報処理装置では、複数のホストコンピュータからのアクセスがある場合に、キャッシュメモリを複数セグメントに分割し、ホストコンピュータとセグメントとを対応付けることにより、あるホストコンピュータからのアクセスのキャッシュヒット率が別のホストコンピュータからのアクセスパターンの影響を受けないようにしたシステムも提案されている(例えば、特許文献1)。
特開2004−139349号公報。
ところで、上記システムでは、情報処理装置側でキャッシュメモリを制御しており、ホストコンピュータ側では情報読み出し時のミスヒットや情報書き込み時のキャッシュオーバーフローによる遅延時間の発生を認識することができない。
そこで、この発明の目的は、キャッシュメモリによる動作を伴う記憶メディアへのアクセスを行う際に、情報読み出し時のミスヒットや情報書き込み時のキャッシュオーバーフローによる遅延時間の発生をなくし、これにより記憶メディアに対する効率良いアクセスを行い得る情報処理装置及びこの情報処理装置の制御方法を提供することにある。
この発明は、上記目的を達成するために、以下のように構成される。
接続される外部機器からの要求に応じて、第1の記録媒体に対する任意の情報の直接書き込み及び直接読み出し、第1の記録媒体に対し書き込むべく情報を第2の記録媒体に一時的に保持して書き込み、第1の記録媒体から読み出された情報を第2の記録媒体に一時的に保持して読み出しの少なくとも1つを実行する情報処理装置であって、第2の記録媒体を使用した第1の記録媒体に対する情報の書き込み及び読み出しのいずれか一方の要求発生時に、要求元の外部機器との通信により要求された動作に必要な制御情報を取得する取得手段と、制御情報に基づいて、第1及び第2の記録媒体に対する情報の書き込み及び読み出しのいずれか一方を実行する制御手段とを備えるようにしたものである。
接続される外部機器からの要求に応じて、第1の記録媒体に対する任意の情報の直接書き込み及び直接読み出し、第1の記録媒体に対し書き込むべく情報を第2の記録媒体に一時的に保持して書き込み、第1の記録媒体から読み出された情報を第2の記録媒体に一時的に保持して読み出しの少なくとも1つを実行する情報処理装置であって、第2の記録媒体を使用した第1の記録媒体に対する情報の書き込み及び読み出しのいずれか一方の要求発生時に、要求元の外部機器との通信により要求された動作に必要な制御情報を取得する取得手段と、制御情報に基づいて、第1及び第2の記録媒体に対する情報の書き込み及び読み出しのいずれか一方を実行する制御手段とを備えるようにしたものである。
この構成によれば、第2の記録媒体を使用した第1の記録媒体に対する情報の書き込み及び読み出しのいずれか一方の要求発生時に、外部機器から送られた制御情報に基づいて、第1及び第2の記録媒体に対する情報の書き込み及び読み出しのいずれか一方が行われる。従って、第2の記録媒体に対する動作を制御手段に頼らずに外部機器で分担して決めることが可能となり、これによりミスヒットを起こすことなく効率良く第2の記録媒体を使用することができる。
さらに、第1及び第2の記録媒体を区分した複数のアドレスと当該アドレスの状態との対応関係を表す管理テーブルを格納する記憶手段を備え、制御手段は、制御情報の内容に応じて、管理テーブル中の該当するアドレスの状態を示す情報を更新し、この更新情報に基づいて第1及び第2の記録媒体に対する情報の書き込み及び読み出しのいずれか一方を実行することを特徴とする。
この構成によれば、管理テーブルを用いて、第1及び第2の記録媒体に対する情報の書き込み及び読み出しのいずれか一方が実行されるので、簡単な手順で適切な情報の書き込み処理及び読み出し処理を行うことができる。
制御手段は、第1及び第2の記録媒体のいずれか一方に対する情報の書き込みまたは読み出し終了後に、管理テーブル中の該当アドレスに対応する状態を示す情報を更新することを特徴とする。
この構成によれば、管理テーブル中の該当アドレスに対応する状態を示す情報を、ユーザが手操作で更新処理をすることなく、自動的に常に最新の情報に更新することができる。
この構成によれば、管理テーブル中の該当アドレスに対応する状態を示す情報を、ユーザが手操作で更新処理をすることなく、自動的に常に最新の情報に更新することができる。
さらに、外部機器からの要求に応じて、管理テーブル中の状態を示す情報を外部機器に送信する送信手段を備えることを特徴とする。
この構成によれば、外部機器からの要求に応じて、管理テーブル中の状態を示す情報を外部機器に送信することにより、第1及び第2の記録媒体の状態管理を情報処理装置に頼らずに外部機器で分担して実行することが可能となり、これにより第1及び第2の記録媒体の状態管理に伴う消費電力を低減することができる。また、第1の記録媒体への効率良いアクセスが可能になることから、第1の記録媒体によってはデータ及び情報処理装置自体の寿命を延命できる。
この構成によれば、外部機器からの要求に応じて、管理テーブル中の状態を示す情報を外部機器に送信することにより、第1及び第2の記録媒体の状態管理を情報処理装置に頼らずに外部機器で分担して実行することが可能となり、これにより第1及び第2の記録媒体の状態管理に伴う消費電力を低減することができる。また、第1の記録媒体への効率良いアクセスが可能になることから、第1の記録媒体によってはデータ及び情報処理装置自体の寿命を延命できる。
送信手段は、外部機器からの要求に応じて、第2の記録媒体の容量を示す容量情報及び第2の記録媒体へのアクセス速度情報の少なくとも1つを外部機器に送信することを特徴とする。
この構成によれば、外部機器側で容量情報及びアクセス速度情報に基づいて、第1及び第2の記録媒体へのアクセス時間を予測することができる。
この構成によれば、外部機器側で容量情報及びアクセス速度情報に基づいて、第1及び第2の記録媒体へのアクセス時間を予測することができる。
制御手段は、外部機器から第1及び第2の記録媒体のいずれか一方に対するアクセス状態に応じて、第1及び第2の記録媒体のいずれか一方に対する情報の書き込み動作及び情報の読み出し動作に必要な電源を制御することを特徴とする。
この構成によれば、第1及び第2の記録媒体のいずれか一方に対する情報の書き込み動作及び情報の読み出し動作に伴う消費電力を低減することができる。
この構成によれば、第1及び第2の記録媒体のいずれか一方に対する情報の書き込み動作及び情報の読み出し動作に伴う消費電力を低減することができる。
外部機器が複数台接続されるとき、記憶手段は、外部機器に対応した複数の管理テーブルを格納し、制御手段は、制御情報の内容に応じて、外部機器ごとに管理テーブル中の該当するアドレスの記録状態を示す情報を更新し、この更新情報に基づいて第1及び第2の記録媒体に対する情報の書き込み及び読み出しのいずれか一方を実行することを特徴とする。
この構成によれば、各外部機器ごとに管理テーブルが固定的に用意されるので、異なる外部機器に係わる第1及び第2の記録媒体に対する複数のアクセス要求が同一時間帯に発生した場合でも、これらのアクセス制御を並行して行えるようになり、これにより上記第1及び第2の記録媒体に対する複数のアクセス制御を効率良く実行できる。
以上詳述したようにこの発明によれば、キャッシュメモリによる動作を伴う記憶メディアへのアクセスを行う際に、情報読み出し時のミスヒットや情報書き込み時のキャッシュオーバーフローによる遅延時間の発生をなくし、これにより記憶メディアに対する効率良いアクセスを行い得る情報処理装置及びこの情報処理装置の制御方法を提供することができる。
以下、この発明の実施形態について図面を参照して詳細に説明する。
(第1の実施形態)
図1は、この発明に係わる情報処理装置の第1の実施形態の構成を示すブロック図である。
(第1の実施形態)
図1は、この発明に係わる情報処理装置の第1の実施形態の構成を示すブロック図である。
記憶装置10Aには、外部機器であるホスト装置HA1がホストバス11で接続されている。ここで、記憶装置10Aは、情報処理装置として機能し、デバイスコントローラ12Aによりホストバス11を介してホスト装置HA1から受信した制御情報としてのコマンドパケットに基づいて、不揮発性メモリやディスク装置等の記憶メディア13に対するデータ書き込み及び読み出し、キャッシュメモリ14に対するデータ書き込み及び読み出しを制御可能とする。デバイスコントローラ12Aは、記憶メディア13及びキャッシュメモリ14それぞれのアドレスを及びデータの記録状態を管理するキャッシュメモリ管理部121を有している。
図2は、上記デバイスコントローラ12Aの具体的構成を示すブロック図である。
デバイスコントローラ12Aは、キャッシュメモリ管理部121に加えて、ホストインタフェース(I/F)122と、データバッファ123と、データ転送制御部124と、メディアインタフェース(I/F)125と、キャッシュメモリインタフェース(I/F)126と、キャッシュメモリ情報記憶部127とを備えている。
デバイスコントローラ12Aは、キャッシュメモリ管理部121に加えて、ホストインタフェース(I/F)122と、データバッファ123と、データ転送制御部124と、メディアインタフェース(I/F)125と、キャッシュメモリインタフェース(I/F)126と、キャッシュメモリ情報記憶部127とを備えている。
ホストI/F122は、ホストバス11を介してホスト装置HA1から送られた図3に示すコマンドパケットCP10を取り込み、データバッファ123に転送し、その転送終了後にデータバッファ123上のコマンドパケットCP10の存在領域をデータ転送制御部124に通知する。
データ転送制御部124はホストI/F122からの通知に基づいて、データバッファ123からコマンドパケットCP10を取り込み、そのコマンドパケットCP10の解析処理を行って、メデイアI/F125及びキャッシュメモリI/F126に対しライトアドレスまたはリードアドレス、データ転送量を指定する。以後、データ転送制御部124は、ホスト装置HA1に対し記憶メディア13及びキャッシュメモリ14の状態を示すレスポンスパケットRPを送信する。
メディアI/F125はデータ転送制御部124から指定されたライトアドレスまたはリードアドレスから指定されたデータ転送量だけ、データバッファ123に記憶されたデータを記憶メディア13に転送して書き込み、または記憶メディア13から情報を読み出してデータバッファ123に転送する。読み出し終了後、記憶メディア13の対応領域が開放状態になった旨をデータ転送制御部124に通知する。
キャッシュメモリI/F126は、データ転送制御部124から指定されたライトアドレスまたはリードアドレスから指定されたデータ転送量だけ、データバッファ123に記憶されたデータをキャッシュメモリ14に転送して書き込み、またはキャッシュメモリ14から情報を読み出してデータバッファ123に転送する。
データバッファ123は、記憶メディア13から転送されるデータやデータ転送制御部124を通じてキャッシュメモリ14から転送されるデータを格納し、ホストI/F122及びホストバス11を介してホスト装置HA1へ適宜出力する。
ところで、キャッシュメモリ管理部121は、キャッシュメモリ管理テーブル121aと、キャッシュタイプ−方式対応テーブル121bと、ビット−ステータス対応テーブル121cとを備えている。
キャッシュメモリ管理テーブル121aには、図4に示すように、キャッシュインデックス201と、キャッシュアドレス指定フィールド202と、記憶メディアデータアドレス指定フィールド203と、Cache Typeフィールド204と、キャッシュステータス205との対応関係を表すデータが記憶されている。
キャッシュアドレス指定フィールド202及び記憶メディアデータアドレス指定フィールド203は、キャッシュメモリ14アドレスに記憶メディアデータライトまたはリードアドレスをマッピングするのに使用する。
Cache Typeフィールド204は、既知のLRU、ラウンドロビン、ランダム方式等に代表されるキャッシュのリプレースメント方式のタイプ等や、既知のライトスルー、ライトバック方式等に代表される書き込み制御方式のタイプ等の指定に使用される。
キャッシュステータス205は、キャッシュのエンプティ、フル、記憶メディア13へのライトまたはリード中等のキャッシュ状態を示す。
キャッシュタイプ−方式対応テーブル121bには、図5に示すように、キャッシュタイプ番号とキャッシュ方式との対応関係を表すデータが記憶される。
ビット−ステータス対応テーブル121cには、図6に示すように、ビットとキャッシュステータスとの対応関係を表すデータが記憶されている。
ここで、データ転送制御部124は、ホストI/F122から引数を伴ったコマンドパケットCP10及びレスポンスパケットRPでキャッシュメモリ管理テーブル121aにデータアクセス可能であるものとする。
また、データ転送制御部124には、キャッシュメモリ情報記憶部127が接続される。キャッシュメモリ情報記憶部127には、キャッシュメモリ14の容量情報及びキャッシュメモリ14へのアクセス速度情報が記憶される。そして、ホスト装置HA1からの要求に応じて、データ転送制御部124はキャッシュメモリ情報記憶部127から容量情報及びアクセス速度情報を読み出してホスト装置HA1へ送信する。
次に、上記構成における動作について説明する。
ここで、記憶装置10Aとホスト装置HA1との間で、コマンド、レスポンスまたはデータがホストバス11を介してパケット形式で送受信されるものとする。コマンドパケットCP10のコマンド識別子と引数にはそれぞれ任意のコマンド番号とコマンド番号に応じた任意の値が設定される。
ここで、記憶装置10Aとホスト装置HA1との間で、コマンド、レスポンスまたはデータがホストバス11を介してパケット形式で送受信されるものとする。コマンドパケットCP10のコマンド識別子と引数にはそれぞれ任意のコマンド番号とコマンド番号に応じた任意の値が設定される。
キャッシュメモリ管理テーブル121aへの書き込みコマンドである場合は、CP11で示される引数内容が設定されるものとし、キャッシュメモリ管理テーブル121aで実施されているキャッシュステータスの確認コマンドにおいてはCP12で示される引数内容が設定されるものとし、記憶装置10Aに対するリードまたはライトアクセスコマンドに対してはCP13で示される引数内容が設定されるものとする。
コマンドパケットCP10をホストバス11を介して記憶装置10Aに送信した場合、記憶装置10Aは該コマンドパケットCP10に対しレスポンスパケットRPをホスト装置HA1に送信するものであり、レスポンスパケットRPのステータスフィールドには、キャッシュステータスの確認コマンドに対してはCache Statusの値が含まれるものとする。リードまたはライトアクセスコマンドパケットCP13をホストバス11を介して記憶装置10Aに送信した場合、リードまたはライトに応じてデータパケットDPがホスト装置HA1及び記憶装置10A間で送受信されるものとする。
キャッシュメモリ管理テーブル121aへの書き込みコマンドの受信をホストI/F122を介して通知されたデータ転送制御部124は、該コマンドパケットCP11のCache Index301で参照されるキャッシュメモリ管理テーブル121aのキャッシュアドレス指定フィールド202、記憶メディアデータアドレス指定フィールド203、Cache Typeフィールド204を該コマンド引数で指定されるキャッシュアドレス指定フィールド302、記憶メディアデータアドレス指定フィールド303、Cache Typeフィールド304に置き換える。
キャッシュステータスの確認コマンド受信をホストI/F122を介して通知されたデータ転送制御部124は、該コマンドパケットCP12のCache Index301で参照されるキャッシュメモリ管理テーブル121aのCache Status値205をレスポスパケットRPのステータスフィールドに格納してホストI/F122を介してホスト装置HA1に通知する。
図7は、記憶装置10Aにホスト装置HA1からのライトコマンドと記憶メディア13へのブロックアドレス305を含むコマンドパケットCP13を受け取った際のデータ転送制御部203の制御処理手順を示すフローチャートである。
ここでは、ライトデータパケットはブロック単位で順次データバッファ123に記憶できるものとし、記憶メディアブロックアドレス203は各インデックス間で重複しないものとする。
まず、ライトコマンドCP11をホストI/F122を介して受取ったデータ転送制御部124は、ホスト装置HA1から1ブロック単位でライトデータをデータバッファ123に記憶しデータ転送制御を開始する(ステップST7a)。ここでは、インデックス値0から参照していくものとする(ステップST7b)。
データ転送制御部124は、インデックス値Mで参照可能なキャッシュメモリ管理テーブル121aのCache Typeフィールド204を参照してライトキャッシュ動作が有効または無効の判定を行い(ステップST7c)、有効であればライトブロックデータアドレスが記憶メディアブロックアドレス空間305内であるか判定する(ステップST7d)。
上記ステップST7cでライトキャッシュ動作が無効または上記ステップST7dでライトブロックデータアドレスが記憶メディアブロックアドレス空間305外であれば、データ転送制御部124はインデックス参照値Mがキャッシュメモリ管理テーブル121aの最大インデックス値nと等しいか確認し(ステップST7e)、等しく無ければ次インデックス値を参照すべくMをインクリメントし(ステップST7f)、再度上記ステップST7cの処理に移行する。
一方、上記ステップST7eにおいて等しければ、データ転送制御部124は該ブロックデータを記憶メディア13にライトして(ステップST7g)終了する。
また、上記ステップST7dにおいて、ライトブロックデータアドレスが記憶メディアブロックアドレス空間305内である場合に(Yes)、データ転送制御部124はインデックス値Mで参照可能なキャシュメモリ管理テーブル121aのChache Typeフィールド204を参照してライトスルーかライトバック処理であるか判定し(ステップST7h)、ライトスルー処理であれば該Cache StatusにWrite Busyビットを設定して(ステップST7i)、該ライトブロックデータを記憶メディア13にライトし(ステップST7j)、該Cache StatusのWrite Busyビットをクリアする(ステップST7k)。一方、ライトバック処理である場合に(No)、データ転送制御部124は該Cache StatusにDirtyビットを設定する(ステップST7l)。
なお、上記ステップST7hでライトスルーかライトバック処理であるかいずれに判断されても、該ライトブロックデータをキャッシュメモリ14にライトして終了する(ステップST7m)。
図8は、記憶装置10Aにホスト装置HA1からのフラッシュコマンドを含むコマンドパケットCP10を受け取った際のデータ転送制御部124の制御処理手順を示すフローチャートである。
コマンドパケットCP10をホストI/F122介して受取ったデータ転送制御部124はデータ転送制御を開始する(ステップST8a)。ここでは、インデックス値0から参照していくものとする(ステップST8b)。
データ転送制御部124は、インデックス値Mで参照可能なキャッシュメモリ管理テーブル121aのCache Status205を参照してDirtyビットの有無を判定する(ステップST8c)。
ここで、Cache StatusがDirtyであった場合(Yes)、データ転送制御部124は該Cache StatusにWrite Busyビットを設定して(ステップST8d)、キャッシュメモリ14のキャッシュブロックアドレス202空間に記憶されているブロックデータを記憶メディア13に転送してライトし(ステップST8e)、該Cache StatusのWrite Busyビットをクリアする(ステップST8f)。
上記ステップST8fの処理終了後または上記ステップST8cにおいてDirtyビット無しの場合(No)、データ転送制御部124はインデックス参照値Mがキャッシュメモリ管理テーブル121aの最大インデックス値nと等しいか確認し(ステップST8g)、等しく無ければ次インデックス値を参照すべくMをインクリメントして(ステップST8h)、再度上記ステップST8cの処理に移行し、等しければ終了する。
図9は、記憶装置10Aにホスト装置HA1からのリードコマンドと記憶メディア13へのブロックアドレス305を含むコマンドパケットCP10を受け取った際のデータ転送制御部124の制御処理手順を示すフローチャートである。ここでは、リードデータパケットはブロック単位で順次データバッファ123からホストI/F122を介して送信可能なものとし、記憶メディアブロックアドレス203は各インデックス間で重複しないものとする。
リードコマンドCP10をホストI/F122を介して受取ったデータ転送制御部124は、1ブロックデータ単位にデータ転送制御を開始する(ステップST9a)。ここでは、インデックス値0から参照していくものとする(ステップST9b)。
データ転送制御部124は、インデックス値Mで参照可能なキャッシュメモリ管理テーブル121aのCache Typeフィールド204を参照してキャッシュ動作が有効または無効の判定を行い(ステップST9c)、有効であればリードブロックデータアドレスが記憶メディアブロックアドレス空間305内であるか判定する(ステップST9d)。
上記ステップST9cでキャッシュ動作が無効または上記ステップST9dでリードブロックデータアドレスが記憶メディアブロックアドレス空間305外であれば、データ転送制御部124はインデックス参照値Mがキャッシュメモリ管理テーブル121aの最大インデックス値nと等しいか確認し(ステップST9e)、等しく無ければ次のインデックス値を参照すべくMをインクリメントし(ステップST9f)、再度上記ステップST9cの処理に移行する。
一方、上記ステップST9dにおいて、リードブロックデータアドレスが記憶メディアブロックアドレス空間305内であれば(Yes)、データ転送制御部124はインデックス値Mで参照可能なキャシュメモリ管理テーブル121aのCache Typeフィールド204がBuffer Emptyか判定し(ステップST9g)、Buffer Emptyであればリードブロックデータを記憶メディア13からデータバッファ123にリードし(ステップST9h)、Buffer Emptyでなければリードブロックデータをキャッシュメモリ14からデータバッファ123にリードし(ステップST9i)、データバッファ123に蓄積されたデータをホストI/F122を介してホスト装置HA1に転送し(ステップST9j)終了する。
図10は、ホスト装置HA2がキャッシュメモリ管理テーブル121aの任意インデックスに登録すべきコマンド番号と引数CP11を含んだコマンドパケットを記憶装置10Aに送信した場合のデータ転送制御部124の制御処理手順を示すフローチャートである。
前記コマンドをホストI/F122を介して受け取ったデータ転送制御部124は該コマンド内容をキャッシュメモリ管理テーブル121aに登録し(ステップST10a)、該Cache Status値をクリアする(ステップST10b)。この時、Cache Typeが0すなわちキャッシュ動作無しであるか確認し(ステップST10c)、キャッシュ動作無しであれば終了し(ステップST10d)、それ以外の有効な値であれば該Cache Status値をBuffer Emptyビットを設定し(ステップST10d)、記憶メディア13へのアクセスが可能な時点で該Cache Status値にRead Busyビットを設定し(ステップST10e)、記憶メディア13からキャッシュメモリ管理テーブル121aで指定された記憶メディアブロックアドレス空間203の有効データを読み出し(ステップST10f)、記憶メディア13へのアクセスが可能な時点で該Cache StatusのRead Busyビットをクリアし(ステップST10g)、該Cache StatusのBuffer EmptyビットをクリアしてBuffer Fullビットを設定(ステップST10h)し、処理を終了する。
図11は、記憶装置10Aのパワーマネージメント機能とホスト装置HA1から記憶メディア13及びキャッシュメモリ14のステータスデータのリード要求が到来した際の記憶装置10Aの制御処理手順を示すフローチャートである。
記憶装置10Aのパワーマネージメント機能は従来のATA−5規格などSleepステートとIdleもしくはActiveステートを持つものとし、少なくともホスト装置HA1からはSleepとIdleステートへの遷移コマンドが発行可能なものとし、該パワーマネージメント機能のSleep状態においても記憶メディア13以外のメモリのデータ転送は可能なものとする。
ホスト装置HA1が任意コマンドパケットを発行すると、記憶装置10Aは記憶メディア13へのアクセスが可能なIdleステートに遷移する(ステップST11a)。続いて、キャッシュメモリ管理テーブル121aの任意インデックス201にリードすべき記憶メディア13のブロックアドレス空間203と該空間と同等なキャッシュメモリ空間を含んだ任意キャッシュメモリアドレス空間302と任意キャッシュタイプ304を含んだコマンドパケットCP11を送信することで、記憶装置10Aはキャッシュメモリ管理テーブル121aへの登録を行う(ステップST11b)。
ホスト装置HA1が任意インデックスY201のCache StatusをリードすべくコマンドパケットCP12を送信すると、記憶装置10AはコマンドパケットCP12に基づいてキャッシュメモリ管理テーブル121a中のインデックスに対応するCache Statusをリードし(ステップST11c)、該Cache StatusがBuffer Emptyの間、上記ステップST11cの処理を繰り返し実行する(ステップST11d)。
ここで、Buffer Emptyで無くなればキャッシュメモリ14にリードすべくブロックデータが格納されたのでホストコントローラは任意コマンドパケットを発行する。すると、記憶装置10Aは記憶メディア13へのアクセスが不能なSleepステートに遷移し(ステップST11e)、続いて、ホスト装置HAからリードコマンドと上記ステップST11bで設定した記憶メディア13への該ブロックアドレスを含むコマンドパケットCP10を受信すると、このコマンドパケットCP10に従ってデータリードを行う(ステップST11f)。
以上のように上記第1の実施形態では、ホスト装置HA1からキャッシュメモリ14を使用した記憶メディア13に対するデータの書き込みまたはデータの読み出しを行うためのコマンドパケットCP10を受信した際に、データ転送制御部124によりこのコマンドパケットCP10及びキャッシュメモリ管理テーブル121aに基づいて、記憶メディア13及びキャッシュメモリ14に対するデータの書き込みまたはデータの読み出しを行うようにしている。
従って、キャッシュ動作を記憶装置10Aのデータ転送制御部124に頼らずにホスト装置HA1で分担して決めることが可能となり、これによりミスヒットを起こすことなく効率良くキャッシュメモリ14を使用して記憶メディア13に対するデータ書き込み及びデータ読み出しを行うことができる。さらに、キャッシュメモリ管理テーブル121aを用いているので、簡単な手順により記憶メディア13及びキャッシュメモリ14に対するデータの書き込みまたはデータの読み出しを行うことができる。
また、上記第1の実施形態では、ホスト装置HA1からの要求に応じて、キャッシュメモリ管理テーブル121a中のCache Status値をホスト装置HA1に送信するようにしているので、記憶メディア13及びキャッシュメモリ14の状態管理を記憶装置10Aに頼らずにホスト装置HA1で分担して実行することが可能となり、これにより記憶メディア13及びキャッシュメモリ14の状態管理に伴う消費電力を低減することができる。また、記憶メディア13への効率良いアクセスが可能になることから、記憶メディア13によってはデータ及び記憶装置10A自体の寿命を延命できる。
さらに、上記第1の実施形態では、ホスト装置HA1からの要求に応じて、キャッシュメモリ14の容量を示す容量情報及びキャッシュメモリ14のアクセス速度情報をホスト装置HA1に送信するようにもしているので、ホスト装置HA1側で容量情報及びアクセス速度情報に基づいて、記憶メディア13及びキャッシュメモリ14へのアクセス時間を予測することができる。
(第2の実施形態)
図12は、この発明に係わる情報処理装置の第2の実施形態の構成を示すブロック図である。なお、図12において、上記図1と同一部分には同一符号を付して詳細な説明を省略する。
図12は、この発明に係わる情報処理装置の第2の実施形態の構成を示すブロック図である。なお、図12において、上記図1と同一部分には同一符号を付して詳細な説明を省略する。
すなわち、記憶装置10Bには、ホスト装置HA1の他に、ホスト装置HA2がホストバス41を介して接続されることになる。この場合、デバイスコントローラ12Bは、ホスト装置HA2からの要求に対し、キャッシュメモリ管理部42に設けられたキャッシュメモリ管理テーブルに基づいて、記憶メディア13及びキャッシュメモリ14に対するデータの書き込み及びデータの読み出しを行う。
なお、キャッシュメモリ管理部42に設けられたキャッシュメモリ管理テーブルの内容は、上記キャッシュメモリ管理部121のキャッシュメモリ管理テーブルの内容と重複しないものとする。
このように上記第2の実施形態であれば、ホスト装置HA1,HA2ごとにキャッシュメモリ管理テーブルが固定的に用意されるので、ホスト装置HA1,HA2から記憶メディア13及びキャッシュメモリ14に対するアクセス要求が同一時間帯に発生した場合でも、これらのアクセス制御を並行して行えるようになり、これにより記憶メディア13及びキャッシュメモリ14に対する複数のアクセス制御を効率良く実行できる。
(その他の実施形態)
なお、この発明は上記各実施形態に限定されるものではない。例えば、キャッシュメモリ管理テーブル及びホスト装置からのアクセス状況に応じて、内部の電源制御を行うようにしてもよい。この場合、記憶メディア13及びキャッシュメモリ14に対するデータの書き込み動作及びデータの読み出し動作に伴う消費電力を低減することができる。
なお、この発明は上記各実施形態に限定されるものではない。例えば、キャッシュメモリ管理テーブル及びホスト装置からのアクセス状況に応じて、内部の電源制御を行うようにしてもよい。この場合、記憶メディア13及びキャッシュメモリ14に対するデータの書き込み動作及びデータの読み出し動作に伴う消費電力を低減することができる。
また、上記各実施形態では、キャッシュメモリ管理テーブルを用いる例について説明したが、ホスト装置からのキャッシュメモリの使用状態を指定でき、この指定に基づいてキャッシュメモリの制御を行うようにしてもよい。
その他、記憶装置の構成、記憶メディアの種類、キャッシュメモリ管理テーブルの内容、データの書き込み及び読み出し手順等についても、この発明の要旨を逸脱しない範囲で種々変形して実施できる。
10A,10B…記憶装置、11…ホストバス、12A,12B…デバイスコントローラ、13…記憶メディア、14…キャッシュメモリ、42,121…キャッシュメモリ管理部、122…ホストインタフェース(I/F)、123…データバッファ、124…データ転送制御部、125…メディアインタフェース(I/F)、126…キャッシュメモリインタフェース(I/F)、127…キャッシュメモリ情報記憶部、121a…キャッシュッメモリ管理テーブル、HA1,HA2…ホスト装置。
Claims (9)
- 接続される外部機器からの要求に応じて、第1の記録媒体に対する任意の情報の直接書き込み及び直接読み出し、前記第1の記録媒体に対し書き込むべく情報を第2の記録媒体に一時的に保持して書き込み、前記第1の記録媒体から読み出された情報を前記第2の記録媒体に一時的に保持して読み出しの少なくとも1つを実行する情報処理装置であって、
前記第2の記録媒体を使用した前記第1の記録媒体に対する情報の書き込み及び読み出しのいずれか一方の要求発生時に、要求元の外部機器との通信により要求された動作に必要な制御情報を取得する取得手段と、
前記制御情報に基づいて、前記第1及び第2の記録媒体に対する情報の書き込み及び読み出しのいずれか一方を実行する制御手段とを具備したことを特徴とする情報処理装置。 - さらに、前記第1及び第2の記録媒体を区分した複数のアドレスと当該アドレスの状態との対応関係を表す管理テーブルを格納する記憶手段を備え、
前記制御手段は、前記制御情報の内容に応じて、前記管理テーブル中の該当するアドレスの状態を示す情報を更新し、この更新情報に基づいて前記第1及び第2の記録媒体に対する情報の書き込み及び読み出しのいずれか一方を実行することを特徴とする請求項1記載の情報処理装置。 - 前記制御手段は、前記第1及び第2の記録媒体のいずれか一方に対する情報の書き込み終了後に、前記管理テーブル中の該当アドレスに対応する状態を示す情報を更新することを特徴とする請求項2記載の情報処理装置。
- 前記制御手段は、前記第1及び第2の記録媒体のいずれか一方に対する情報の読み出し終了後に、前記管理テーブル中の該当アドレスに対応する状態を示す情報を更新することを特徴とする請求項2記載の情報処理装置。
- さらに、前記外部機器からの要求に応じて、前記管理テーブル中の状態を示す情報を前記外部機器に送信する送信手段を備えることを特徴とする請求項2記載の情報処理装置。
- 前記送信手段は、前記外部機器からの要求に応じて、前記第2の記録媒体の容量を示す容量情報及び前記第2の記録媒体へのアクセス速度情報の少なくとも1つを前記外部機器に送信することを特徴とする請求項5記載の情報処理装置。
- 前記制御手段は、前記外部機器から前記第1及び第2の記録媒体のいずれか一方に対するアクセス状態に応じて、前記第1及び第2の記録媒体のいずれか一方に対する情報の書き込み動作及び情報の読み出し動作に必要な電源を制御することを特徴とする請求項1記載の情報処理装置。
- 前記外部機器が複数台接続されるとき、
前記記憶手段は、前記外部機器に対応した複数の管理テーブルを格納し、
前記制御手段は、前記制御情報の内容に応じて、前記外部機器ごとに前記管理テーブル中の該当するアドレスの記録状態を示す情報を更新し、この更新情報に基づいて前記第1及び第2の記録媒体に対する情報の書き込み及び読み出しのいずれか一方を実行することを特徴とする請求項2記載の情報処理装置。 - 接続される外部機器からの要求に応じて、第1の記録媒体に対する任意の情報の直接書き込み及び直接読み出し、前記第1の記録媒体に対し書き込むべく情報を第2の記録媒体に一時的に保持して書き込み、前記第1の記録媒体から読み出された情報を前記第2の記録媒体に一時的に保持して読み出しの少なくとも1つを実行する情報処理装置の制御方法であって、
前記第2の記録媒体を使用した前記第1の記録媒体に対する情報の書き込み及び読み出しのいずれか一方の要求発生時に、要求元の外部機器との通信により要求された動作に必要な制御情報を取得し、
前記制御情報に基づいて、前記第1及び第2の記録媒体に対する情報の書き込み及び読み出しのいずれか一方を実行するようにしたことを特徴とする情報処理装置の制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004380501A JP2006185335A (ja) | 2004-12-28 | 2004-12-28 | 情報処理装置及びこの情報処理装置の制御方法 |
US11/298,524 US20060143378A1 (en) | 2004-12-28 | 2005-12-12 | Information processing apparatus and control method for this information processing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004380501A JP2006185335A (ja) | 2004-12-28 | 2004-12-28 | 情報処理装置及びこの情報処理装置の制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006185335A true JP2006185335A (ja) | 2006-07-13 |
Family
ID=36613119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004380501A Withdrawn JP2006185335A (ja) | 2004-12-28 | 2004-12-28 | 情報処理装置及びこの情報処理装置の制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20060143378A1 (ja) |
JP (1) | JP2006185335A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015508192A (ja) * | 2012-01-23 | 2015-03-16 | クアルコム,インコーポレイテッド | 高時間的参照局所性のデータフィルバッファの排除防止 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5420648B2 (ja) * | 2009-05-22 | 2014-02-19 | 株式会社日立製作所 | 半導体装置 |
US20200201568A1 (en) * | 2018-12-20 | 2020-06-25 | Micron Technology, Inc. | Exception handling based on responses to memory requests in a memory subsystem |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5917723A (en) * | 1995-05-22 | 1999-06-29 | Lsi Logic Corporation | Method and apparatus for transferring data between two devices with reduced microprocessor overhead |
US6412045B1 (en) * | 1995-05-23 | 2002-06-25 | Lsi Logic Corporation | Method for transferring data from a host computer to a storage media using selectable caching strategies |
US20020029354A1 (en) * | 2000-08-23 | 2002-03-07 | Seagate Technology Llc | Non-volatile write cache, in a disc drive, using an alternate power source |
US6883066B2 (en) * | 2001-09-14 | 2005-04-19 | Seagate Technology Llc | Method and system for cache management algorithm selection |
JP3933027B2 (ja) * | 2002-10-17 | 2007-06-20 | 日本電気株式会社 | ディスクアレイ装置におけるキャッシュメモリ分割管理方式 |
JP4313068B2 (ja) * | 2003-03-28 | 2009-08-12 | 株式会社日立製作所 | 記憶装置のキャッシュ管理方法 |
US20050138296A1 (en) * | 2003-12-18 | 2005-06-23 | Coulson Richard L. | Method and system to alter a cache policy |
-
2004
- 2004-12-28 JP JP2004380501A patent/JP2006185335A/ja not_active Withdrawn
-
2005
- 2005-12-12 US US11/298,524 patent/US20060143378A1/en not_active Abandoned
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015508192A (ja) * | 2012-01-23 | 2015-03-16 | クアルコム,インコーポレイテッド | 高時間的参照局所性のデータフィルバッファの排除防止 |
US10114750B2 (en) | 2012-01-23 | 2018-10-30 | Qualcomm Incorporated | Preventing the displacement of high temporal locality of reference data fill buffers |
Also Published As
Publication number | Publication date |
---|---|
US20060143378A1 (en) | 2006-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101252589B (zh) | 数据缓存装置和采用该装置的网络存储系统及缓存方法 | |
CN103714015B (zh) | 减少来自侦听过滤器的后无效事务的方法、装置和系统 | |
US8606997B2 (en) | Cache hierarchy with bounds on levels accessed | |
US8370533B2 (en) | Executing flash storage access requests | |
US7555599B2 (en) | System and method of mirrored RAID array write management | |
TWI525431B (zh) | 資料儲存系統、資料結構及資料儲存方法 | |
JP4788528B2 (ja) | ディスク制御装置、ディスク制御方法、ディスク制御プログラム | |
KR20170088743A (ko) | 이중화 저장 블록들 및 분산 소프트웨어 스택들을 위한 동적 가비지 컬렉션 p/e 정책들 | |
EP2733617A1 (en) | Data buffer device, data storage system and method | |
JP7010809B2 (ja) | デデュープ可能なメモリキャッシュ及びそのための動作方法 | |
CN103345368B (zh) | 一种在缓冲存储器中缓存数据的方法 | |
US10635356B2 (en) | Data management method and storage controller using the same | |
JP5020774B2 (ja) | 先読みを用いたストレージ消費電力削減方法及びその方法を用いた計算機システム | |
CN103345452B (zh) | 一种在多个缓冲存储器中根据权重信息缓存数据方法 | |
US9223799B1 (en) | Lightweight metadata sharing protocol for location transparent file access | |
WO2012023953A1 (en) | Improving the i/o efficiency of persisent caches in a storage system | |
US10733118B2 (en) | Computer system, communication device, and storage control method with DMA transfer of data | |
JP2006099802A (ja) | 記憶制御装置およびキャッシュメモリの制御方法 | |
US9164904B2 (en) | Accessing remote memory on a memory blade | |
JPH09179779A (ja) | コンピュータシステムおよびデータ転送方法 | |
US20020004887A1 (en) | Technique for maintaining coherency between shared-disk and disk caches | |
JP2006185335A (ja) | 情報処理装置及びこの情報処理装置の制御方法 | |
CN110083548B (zh) | 数据处理方法及相关网元、设备、系统 | |
KR20150016886A (ko) | 데이터 생성 또는 소비에 기반하여 캐시된 입출력 데이터를 필터링하는 방법 | |
CN112732166A (zh) | 访问固态硬盘的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070828 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20071228 |