JP2001014109A - 記憶装置 - Google Patents

記憶装置

Info

Publication number
JP2001014109A
JP2001014109A JP11186200A JP18620099A JP2001014109A JP 2001014109 A JP2001014109 A JP 2001014109A JP 11186200 A JP11186200 A JP 11186200A JP 18620099 A JP18620099 A JP 18620099A JP 2001014109 A JP2001014109 A JP 2001014109A
Authority
JP
Japan
Prior art keywords
data
read
buffer
area
read command
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.)
Granted
Application number
JP11186200A
Other languages
English (en)
Other versions
JP3708757B2 (ja
Inventor
Yuji Kawahara
裕二 川原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP18620099A priority Critical patent/JP3708757B2/ja
Priority to US09/494,855 priority patent/US6487126B1/en
Priority to DE10010299A priority patent/DE10010299A1/de
Publication of JP2001014109A publication Critical patent/JP2001014109A/ja
Application granted granted Critical
Publication of JP3708757B2 publication Critical patent/JP3708757B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements

Abstract

(57)【要約】 【課題】本発明は、磁気ディスクや光ディスク等の記憶
媒体からデータを読み出してホストに転送する記憶装置
に関し、アクセスタイムの短縮化を図る。 【解決手段】記憶媒体から読み出したデータをキャッシ
ュデータとして格納しておくリードバッファを固定的に
複数の領域に分けるのではなく、そのリードバッファに
データを順次格納していくが、そのリードバッファに、
記憶媒体上のアドレスが連続したデータの集合であるキ
ャッシュデータエリアが複数存在したとき、各キャッシ
ュデータエリアごとに、データ保存の重要性に関し重み
付けを行い、重みが最小のエリアに上書きをし、少なく
とも重みが最大のエリアのデータを保存する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、外部、例えばホス
トシステムで発行されたリードコマンドを受けて、記憶
媒体、例えば磁気ディスクあるいは光ディスク等からデ
ータを読み出し、リードバッファにキャッシュデータと
して格納するとともに、そのリードバッファに格納され
たキャッシュデータを外部(例えばホストシステム)に
向けて転送する、磁気ディスク装置あるいは光ディスク
装置等の記憶装置に関する。
【0002】
【従来の技術】磁気ディスクをアクセスする磁気ディス
ク装置や光ディスクをアクセスする光ディスク装置等に
おいては、従来より、ホストシステムよりリードコマン
ドを受け取ったとき、磁気ディスクあるいは光ディスク
等の記憶媒体の、そのリードコマンドで指定された読出
先頭アドレスからそのリードコマンドで指定されたデー
タ量のデータを読み出すだけでなく、次のコマンドを受
け取るまでの空き時間を利用して、そのままアドレス順
に読出しを継続するという、いわゆる先読みが行なわれ
る。記憶媒体から読み出されたデータは、キャッシュデ
ータとしてリードバッファに格納され、そのリードバッ
ファに格納されたキャッシュデータのうちの、先読みの
データを除く、そのリードコマンドにより要求されたデ
ータは、そのリードコマンド発行元のホストシステムに
転送される。このような先読みを行ない、次にリードコ
マンドを受け取ったとき、その受け取ったリードコマン
ドが要求しているデータがリードバッファに既に格納さ
れているか否かが判定され、リードバッファに既に格納
されているときは、記憶媒体をアクセスせずに、リード
バッファに既に格納されているキャッシュデータを読み
出してホストシステムに転送する。このようにして、ア
クセスタイムの短絡化が図られている。
【0003】
【発明が解決しようとする課題】従来、記憶媒体から読
み出されたデータのリードバッファへの格納方式とし
て、(1)1つのリードバッファを固定的に複数のセグ
メントに区切り、各リードコマンドごとに別々のセグメ
ントに格納していく方式や、(2)1つのリードバッフ
ァを固定的には複数に区切らずに、各リードコマンド毎
のデータ(ホストシステムから要求されたデータと先読
みデータ)をリードバッファ上に順次に格納していく方
式が知られている。
【0004】ここで、上記(1)の方式の場合、記憶媒
体上のアドレスが不連続な複数個のキャッシュデータを
リードバッファ上に同時に保持可能であるが、リードバ
ッファが複数のセグメントに分けられているため、各セ
グメントごとのキャッシュサイズが自ずと小さく制限さ
れてしまい、シーケンシャルリードコマンド(過去のリ
ードコマンドで指定された、記憶媒体上の読出し領域の
最終アドレスに対する次のアドレスを読出先頭アドレス
とするリードコマンド)が連続するように発行された場
合に、性能に制限を受ける結果となる。
【0005】また、上記(2)の方式の場合、先読みに
よりリードバッファに格納されている、後で利用される
かも知れないキャッシュデータが、新たに発行されたリ
ードコマンドに応じて記憶媒体から読み出されたデータ
とそれに続く先読みデータで上書きされてしまう可能性
が高く(シーケンシャルリードコマンドが連続発行され
た場合は上書きされる可能性が特に高い)、記憶媒体か
ら切角読み出してリードバッファに格納しておいたキャ
ッシュデータを効率的に利用することができない結果と
なる。
【0006】さらに、上記(1)の方式の変形として、
リードバッファの空き領域をアドレス単位で管理し先読
みデータのみバッファ上に詰めていく方式が知られてい
るが、この方式の場合、データがバッファ上で不連続に
配置されるため、これをコントロールためのアドレス管
理が複雑となり、また、新たなリードコマンドが発行さ
れたとき、そのリードコマンドが要求しているデータが
バッファ上に格納されているか否かの判定が複雑とな
り、さらに、そのリードコマンドが要求しているデータ
がバッファ上に格納されているときの、そのデータをア
クセスするための特殊な回路が必要となり、コストアッ
プに繋がる結果となる。
【0007】本発明は、上記事情に鑑み、未転送のデー
タをバッファ上に効率良く保持することができ、したが
ってアクセス速度を向上させることのできる記憶装置を
提供することを目的とする。
【0008】
【課題を解決するための手段】上記目的を達成する本発
明の記憶装置は、外部から入力されたリードコマンドを
受けて記憶媒体からデータを読み出しバッファに格納す
るとともに、そのバッファに格納されたデータを外部に
転送する記憶装置において、今回のリードコマンドによ
り要求されたデータがバッファに格納されていないとき
は、記憶媒体から今回のリードコマンドにより指定され
たデータを読み出して、バッファの、データが既に格納
されている領域の最終アドレスの次のアドレス以降の領
域に格納し、そのバッファに格納された、今回のリード
コマンドにより指定されたデータを外部に転送するとと
もに、その記憶媒体からアドレス順に読出しを継続して
バッファに格納する先読みを行なう読出制御手段と、バ
ッファ上の、記憶媒体上でのアドレスが連続しているデ
ータが格納されたデータエリアに、そのデータエリア内
の、外部に転送されていない残りのデータ量に基づい
て、重み付けを行なう重み付け手段とを備えることを特
徴とする。
【0009】ここで、上記重み付け手段は、更に、デー
タエリア毎に、当該データエリアに対するアクセス頻
度、当該データエリアが最後にアクセスされてからの経
過時間、または当該データエリアが最後にアクセスされ
てからの外部リードコマンドの発行回数の少なくとも1
つに基いて、重み付けを行なうものであってもよい。
【0010】また、上記読出制御手段は、今回のリード
コマンドにより要求されたデータがバッファに格納され
ていないときは、記憶媒体から今回のリードコマンドに
より指定されたデータを読み出して、バッファの、重み
付け手段により付された重みが最小のデータエリアに格
納するものであることが好ましい。
【0011】本発明の記憶装置は、記憶媒体から読み出
したデータをバッファ上に順次詰めていくため、バッフ
ァ全体が有効に使用される。また、バッファ上の、記憶
媒体上でのアドレスが不連続な点で分離されるデータエ
リアごとに重み付けを行ない、最小の重みのデータエリ
アに上書きするようにしたときは、後で使用される可能
性の高いデータがバッファ上に多く残ることになり、キ
ャッシュデータの有効利用が図られ、アクセス速度が向
上する。
【0012】ここで、上記本発明の記憶装置において、
上記読出制御手段は、バッファの、重み付け手段により
付された重みが最大のデータエリアへの上書きを禁止
し、バッファの、そのデータエリアを除く領域に上書き
することにより、記憶媒体から読み出したデータをバッ
ファに格納するものであることが好ましい。
【0013】バッファ上に空き領域が存在しないとき
は、重み付け手段により付された重みが最小のデータエ
リアに上書きされるが、そのデータエリアのサイズを越
えて上書きをする必要を生じたときであっても、重み付
け手段により付された重みが最大のデータエリアについ
ては上書きを禁止することにより、バッファ上のキャッ
シュデータの有効利用と、記憶媒体から新たに読み出し
たデータをバッファに格納するにあたりバッファ上に広
い格納領域を確保したいという要求との調和が図られ
る。
【0014】ここで、上記読出制御手段により、バッフ
ァ中の、最大の重みが付されたデータエリアがアクセス
されたときは、重み付け手段は、そのデータエリアを除
くデータエリアのうちのいずれかのデータエリアに最大
の重みを付すものであることが好ましい。
【0015】新たに発行されたリードコマンドにより要
求されたデータが、バッファ中の、重みが最大のデータ
エリアに存在する場合があり、その場合は、その最大重
みのデータエリアがアクセスされることになる。この場
合、そのアクセスされた最大重みのデータエリアを除く
他のデータエリアのいずれかを重大重みとすることによ
り、バッファ上のキャッシュデータの有効利用と記憶媒
体から新たに読み出したデータの広い格納領域の確保と
の協和が保たれる。もともと最大重みを持っていたデー
タエリアは、アクセスされた結果そのデータエリアに格
納されていたデータのうちの少なくとも一部がそこから
読み出されて転送されるため、そのデータエリアの未転
送のデータ量は減少し、そのデータエリアの重みは自ず
と低下することになる。
【0016】さらに、上記本発明の記憶装置において、
上記読出制御手段は、今回のリードコマンドにより要求
されたデータ全てがバッファ中のいずれかのデータエリ
アに格納されており、かつ、そのデータエリア中の、今
回のリードコマンドにより要求されたデータが格納され
領域の先頭アドレスが、そのデータエリア中の、そのデ
ータエリア形成の基になった過去のリードコマンドによ
る要求に応じて外部に転送したデータが格納された領域
の最終アドレスの次のアドレスであったときは、今回の
リードコマンドに応じて、記憶媒体上の、そのデータエ
リアの最終アドレスに格納されているデータが記憶され
ていたアドレスの次のアドレスから先読みを開始するも
のであることが好ましい。
【0017】今回のリードコマンドにより要求されてい
るデータ全てがバッファ中のいずれかのデータエリアに
格納されており(これを「フルヒット」と称する)、か
つ、今回のリードコマンドが、そのデータエリア形成の
基になった過去のリードコマンドに対するシーケンシャ
ルコマンドであったときは、今回のリードコマンドがシ
ーケンシャルコマンドであることから、今回のリードコ
マンドに対するシーケンシャルコマンドがさらに発行さ
れる可能性が高く、したがってこの条件を満たす場合に
は先読みを実行する。フルヒット時に先読みを実行する
にあたり、過去のリードコマンドに対するシーケンシャ
ルコマンドであるという条件を設けることにより、無駄
な先読み実行によるオーバヘッドの増加が防止され、ま
た、別のデータエリアへの無駄な上書きが防止される。
【0018】尚、今回のリードコマンドが要求している
データがバッファ上に一部しか存在していない(これを
「一部ヒット」と称する)ときは、今回のリードコマン
ドがシーケンシャルコマンドであるか否かに拘らず、足
りない分のデータが記憶媒体から読み出され、次のリー
ドコマンド発行までに空き時間があるときは先読みが実
行される。
【0019】尚、本発明の記憶装置は、以下のようにも
捉えることができる。すなわち、本発明の記憶装置は、
外部から入力されたリードコマンドを受けて記憶媒体か
らデータを読み出しバッファに格納するとともに、その
バッファに格納されたデータを外部に転送する記憶装置
において、今回入力されたリードコマンドにより要求さ
れたデータがバッファに既に格納されているか否かを判
定する判定手段と、今回のリードコマンドにより要求さ
れたデータがバッファに既に格納されている場合はその
バッファからそのデータを読み出して外部に転送し、今
回のリードコマンドにより要求されたデータがバッファ
には格納されておらず、かつそのバッファにデータが格
納されていない空き領域が存在するときは、記憶媒体
の、今回のリードコマンドにより指定された読出先頭ア
ドレス以降の、今回のリードコマンドにより指定された
データ量のデータが記憶された領域のデータを読み出し
て、バッファの、データが既に格納されている領域の最
終アドレスの次のアドレス以降の領域に格納し、そのバ
ッファに格納された、今回のリードコマンドにより指定
されたデータを外部に転送するとともに、記憶媒体から
の、今回のリードコマンドにより指定されたデータの読
出しが終了した後も、その記憶媒体からアドレス順に読
出しを継続してバッファに格納する先読みを行なう読出
制御手段と、バッファ上の、記憶媒体上でのアドレスが
連続しているデータが格納されたデータエリアに、その
データエリア内の、外部に転送されていない残りのデー
タ量に基づいて、バッファ上に保存しておく重要度に応
じた重み付けを行なう重み付け手段とを備え、上記読出
制御手段は、今回のリードコマンドにより要求されたデ
ータがバッファに格納されておらず、かつそのバッファ
に空き領域が存在しないときは、記憶媒体の、今回のリ
ードコマンドにより指定された読出先頭アドレス以降の
領域から今回のリードコマンドにより指定されたデータ
量のデータを読み出して、バッファの、重み付け手段に
より付された重みが最小のデータエリアの先頭アドレス
以降の領域に格納し、そのバッファに格納された、今回
のリードコマンドにより要求されたデータを外部に転送
するとともに、さらに先読みを実行するものであること
を特徴とする。
【0020】
【発明の実施の形態】以下、本発明の実施形態について
説明する。
【0021】図1は、本発明の記憶装置の一実施形態で
ある磁気ディスク装置の内部構造を示す図である。
【0022】この磁気ディスク装置10のハウジング1
1には、スピンドルモータ26(図2参照)によって、
回転軸12を中心に回転駆動される磁気ディスク13が
収容されている。尚、このハウジング11は図示しない
カバーによって覆われるが、ここではカバーを取り外し
た状態が示されている。
【0023】この磁気ディスク13は、本発明にいう記
憶媒体の一例に相当する。また、この磁気ディスク装置
10のハウジング11には、さらに、磁気ディスク13
に対向する浮上ヘッドスライダ14、その浮上ヘッドス
ライダ14を先端に固着し回動軸15を中心に回動する
キャリッジアーム16、およびキャリッジアーム16を
ボイスコイルモータ25(図2参照)で回動駆動するア
クチュエータ17が装備されている。磁気ディスク13
に記憶されたデータの読出しにあたっては、アクチュエ
ータ17に備えられたボイスコイルモータによってキャ
リッジアーム16が回動駆動され、浮上ヘッドスライダ
14が、回転する磁気ディスク13上への所望のトラッ
クに位置決めされる。浮上ヘッドスライダ14には、磁
気ヘッド28(図2参照)が設置されており、この磁気
ヘッド28は、磁気ディスク13に記憶された情報を、
その磁気ディスク13の回転に伴って順次に磁気的にピ
ックアップし電気的な信号として出力する。
【0024】図2は、図1に示す磁気ディスク装置の機
能構成ブロック図である。
【0025】ここには、バッファメモリ18、ハードデ
ィスクコントローラ19、プログラムメモリ20、リー
ド/ライト回路21、CPU(CPU用RAMを含む)
22、発振器23、サーボコントローラ24、ボイスコ
イルモータ25、スピンドルモータ26、ヘッドIC2
7、磁気ヘッド28、および、図1にも示した磁気ディ
スク13が示されている。
【0026】磁気ディスク13は、前述したようにスピ
ンドルモータ26によって回転駆動され、磁気ヘッド2
8は、キャリッジ16(図1参照)の先端に固定されて
いるためそのキャリッジ16がボイスコイルモータ25
によって回動駆動されることにより、その磁気ヘッド2
8も駆動される。
【0027】サーボコントローラ24には、ボイルコイ
ルモータ25を駆動するボイスコイルモータ駆動回路お
よびスピンドルモータを駆動するスピンドルモータ駆動
回路が内蔵されており、サーボコントローラ24は、C
PU22からの指示に従って、ボイスコイルモータ25
およびスピンドルモータ26を駆動する。
【0028】磁気ディスク13に記憶された情報は磁気
ヘッド28によりピックアップされて電気信号に変換さ
れる。その電気信号はヘッドICを経由することにより
所定のデータ形式に変換されてリード/ライト回路21
に伝えられる。一方、磁気ディスク13に情報を書き込
む時は、リード/ライト回路21により書込用のデータ
がヘッドIC27に伝えられ、磁気ヘッド28により、
その書込用のデータに対応した情報が磁気ディスクに記
憶される。
【0029】ハードディスクコントローラ19は、図示
しないホストシステムとの間でデータやコマンドの送受
信を行なうとともに、ホストシステムから、ライトコマ
ンドとともに磁気ディスク13への書込用のデータが送
られてきたときは、CPU22にそのライトコマンドを
通知して、CPU22に、磁気ヘッド28が磁気ディス
ク13上の所望のアドレス位置に駆動されるようサーボ
コントローラ24に指示を出させ、そのデータを一旦バ
ッファメモリ18に格納した後、バッファメモリ18か
らそのデータを読み出して、そのデータをリード/ライ
ト回路21に送るとともに書込みを指示する。また、こ
のハードディスクコントローラ19は、ホストシステム
からリードコマンドが送られてきたときは、CPU22
にそのリードコマンドを通知して、CPU22に、磁気
ヘッド28が磁気ディスク13上の所望のアドレス位置
に駆動されるようサーボコントローラ24に指示を出さ
せ、リード/ライト回路21に対し、磁気ディスク13
からのデータの読出しを指示し、さらに、磁気ディスク
13から読み出されたデータをリード/ライト回路21
から受け取ってバッファメモリ18に格納し、また、そ
の受信したリードコマンドにより要求されたデータをバ
ッファメモリ18から読み出してホストシステムに送信
する。
【0030】CPU22は、発振器23で生成されたク
ロックに同期して、プログラムメモリ20に格納された
プログラムを読み出して実行することにより、この磁気
ディスク装置10の全体を制御する。
【0031】本実施形態の特徴は、ホストシステムがリ
ードコマンドを発行したときにCPU22で動作するプ
ログラムの内容や、それに応じて動作するハードディス
クコントローラ19等の動作内容にあるが、以下では、
先ず、バッファメモリ18にキャッシュデータが格納さ
れていく様子について説明する。
【0032】図3〜図14は、図2に示すバッファメモ
リ18中の、磁気ディスク13から読み出されたデータ
をキャッシュデータとして格納しておくリードバッファ
のメモリマップである。
【0033】図3は、リードバッファにキャッシュデー
タが全く存在しない初期状態を示している。バッファ先
頭アドレス、バッファ最終アドレスは、図1,図2に示
す磁気ディスク装置10への電源投入時に設定される。
【0034】ここで、ホストシステムからリードコマン
ドが発行されると、図4に示すように、そのリードコ
マンドにより要求されたデータ*aと、それに引き継
ぐ先読みデータ*bが磁気ディスク13から読み出さ
れ、リードバッファのバッファ先頭アドレスから順に格
納される。
【0035】図4に示すリング先頭アドレス、リング最
終アドレスは、磁気ディスク13からのデータ読出しが
続いたときに、リードバッファのリング先頭アドレスか
ら順にデータが格納され、リング最終アドレスまでデー
タが格納されると次のデータはリング先頭アドレスに戻
って上書きされる、というように、データが循環的に上
書きされる領域の先頭アドレス、最終アドレスである。
ただし、リング先頭アドレスとリング最終アドレスとの
間が先読みデータで満たされたときはその時点で上書き
は停止される。また、後述するように、上書き禁止エリ
アが存在するときはそのエリアについては上書きされな
い。
【0036】これらリング先頭アドレス、リング最終ア
ドレスは、この磁気ディスク10への電源投入直後、あ
るいはリセット直後は、それぞれ、バッファ先頭アドレ
ス、バッファ最終アドレスに一致している。
【0037】図4に示すリードコマンドに対する先読
み継続中に、リードコマンドに対するランダムリード
コマンド(リードコマンドに対するシーケンシャルリ
ードコマンドでなく、かつ磁気ディスク上、リードコマ
ンドに応じて読み出されるアドレスとは全く離れたア
ドレス(後述する「ギャップリードコマンド」の定義を
満足しないアドレス)からデータを読み出すことを要求
するリードコマンド)が発行されると、リードコマンド
に対する先読みは停止され、図5に示すように、リー
ドコマンドにより要求されたデータ*cおよびそれに
引き続く先読みデータ*dが、図5に示すリング先頭ア
ドレス(リードコマンドに応じて磁気ディスクから読
み出されたデータ*a,*bが格納されたエリアの最
終アドレスの次のアドレス)から順に格納される。
【0038】この場合、キャッシュデータエリア(磁気
ディスク上で連続したアドレスのデータが格納されたリ
ードバッファ上の領域)は、エリアと、エリア(*c
+*d)との2つ形成される。
【0039】一方、図4に示すリードコマンドに対す
る先読み継続中に、磁気ディスク上の、リードコマンド
の最終読出アドレスに対し物理の+1トラックのセク
タ数以内(磁気ディスクが物理的に一回転する範囲内)
だけ先に進んだアドレスを読出先頭アドレスとするリー
ドコマンド(この条件を満たすリードコマンドを「ギャ
ップリードコマンド」と称する)が発行されたとき
は、図6に示すように、それまでの先読み*b1に引き
続き、先読み*b2が実行され、さらに引き続いてリー
ドコマンドが要求するデータ*cが磁気ディスクから
読み出されてリードバッファに格納され、さらに先読み
*dが行なわれる。この場合、データ*a,*b1,*
b2,*c,*dは、磁気ディスク上順次連続するアド
レスのデータであり、したがって、リードバッファ上
の、これらのデータ*a,*b1,*b2,*c,*d
が格納された領域全てを合わせたものが1つのキャッシ
ュデータエリアとして定義される。このように、ここで
は、磁気ディスク上のアドレスの不連続点で区切られる
リードバッファ上のエリアをキャッシュデータエリアと
称している。
【0040】リードバッファ上にキャッシュデータエリ
アが形成されると、そのキャッシュデータエリア中の、
ホストシステムに転送されたことのないデータのデータ
量に基づいて、そのキャッシュデータエリアに“重み”
が付される。ここでは、基本的には、ホストシステムに
転送されたことのないデータのデータ量が多いほど大き
な重みが付されるが、そのデータ量が所定の上限値を越
えると、新たなリードコマンドに応じて磁気ディスクか
ら新たに読み出されるデータの格納領域が極端に制限さ
れるため、そのようなキャッシュデータエリアは、リー
ドバッファ上に複数のキャッシュデータエリアが存在す
る場合、“重み”が最大のキャッシュデータエリアとい
う扱いから外される。
【0041】図7は、リードバッファに,,の3
つのキャッシュデータエリアが存在し、これら3つのキ
ャッシュデータエリアでリードバッファ全域が埋められ
ている状態を示している。ここでは、ホストシステムへ
転送されたことのないデータ量は、3つのキャッシュデ
ータエリア,,のいずれにおいても上限値は越え
ておらず、ホストシステムへ転送されたことのないデー
タ量の多い順(ここでは>>の順)に大きな重み
が付されたものとする。
【0042】このとき、ホストシステムからリードコマ
ンドが発行され、このリードコマンドが要求してい
るデータが,,のいずれのキャッシュデータエリ
アにも存在しない(これを「ヒットしない」と称する)
ならば、リードコマンドに応じて磁気ディスクからデ
ータが読み出され、その読み出されたデータは、図8に
示すように、“重み”が最小のキャッシュデータエリア
であるのエリアの先頭アドレスから格納される。
【0043】図9は、図8の状態からリードコマンド
に応じたデータがリードバッファに格納され、その後さ
らにシーケンシャルリードコマンドが順次発行されたと
きの図である。シーケンシャルリードコマンドが順次発
行されたときは、リードバッファ上の、リング先頭アド
レス、リング最終アドレスで設定したリードバッファ領
域内のみデータの格納が行なわれ、“重み”が最大の
キャッシュデータエリアのデータはそのまま保存され
続ける。
【0044】図10は、図7と同様な状態、すなわち、
リードバッファに,,の3つのキャッシュデータ
エリアが存在し、この3つのキャッシュデータエリアで
リードバッファ全域が埋められている状態を示す図であ
るが、ここでは、ホストシステムへ転送されたことのな
いデータ量は、>>の順であり、この順に大きな
重みが付されたものとする。この場合、リング先頭アド
レスは、“重み”が最小のキャッシュデータエリアの
先頭アドレス、リング最終アドレスは、“重み”が最大
のキャッシュデータエリアの先頭アドレスの直前のア
ドレスに設定される。したがってこの状態でリードコマ
ンドが発行され、,,のいずれのキャッシュデ
ータエリアにもヒットしないならば、リードコマンド
に対応するデータが磁気ディスクから読み出されて、そ
の読み出されたデータが、リードバッファ上のリング先
頭アドレスから順に格納される。
【0045】図11は、図10に示す状態においてリー
ドコマンドが実行され、さらに引き続いてシーケンシ
ャルコマンドが順次実行された状態を示す図であり、そ
の間にデータが格納された領域は、リング先頭アドレス
からリング最終アドレスまでの−1,−2の領域で
あり、その間“重み”が最大のキャッシュデータエリア
は保存され続ける。
【0046】すなわち、ここでは、リードコマンドに
対応するデータの格納開始位置は、リング先頭アドレス
に一致し、その後シーケンシャルリードコマンドが続く
とバッファ最終アドレスまでデータが格納され、その次
のデータはバッファ先頭アドレスに格納され、その後も
順次リング最終アドレスに向けて格納され、というよう
に、“重み”が最大のキャッシュデータエリアを飛ば
して循環的にデータが上書きされるようになっている。
【0047】図12は、図7に示すように3つのキャッ
シュデータエリア,,(“重み”は大きな方から
>>の順)が存在している状態において、リード
コマンドが発行されたときを示している。
【0048】ここで、この図12に示す*aは、リード
コマンドが要求したデータ、*b1,*b2はそのリ
ードコマンドの実行後の先読みデータ、*gは、リー
ドコマンドの実行後の先読みデータであるとともに、
リードコマンドが要求したデータ、*cはリードコマ
ンドの要求データ、*dはそのリードコマンドの実
行後の先読みデータ、*eはリードコマンドの要求デ
ータ、*fはリードコマンド実行後の先読みデータで
ある。
【0049】ここで発行されたリードコマンドは、キ
ャッシュデータエリアが形成される基になったリード
コマンド(図4参照)に対するシーケンシャルコマン
ド(*b1の先頭を読出先頭アドレスとするコマンド)
ではないが、キャッシュデータエリアにフルヒットす
る(そのリードコマンドが要求するデータ全てが既にそ
こに格納されている)リードコマンドであるものとす
る。このとき、リードコマンドはフルヒットではある
がシーケンシャルではないため先読みは行なわれず、リ
ードコマンドで要求されたデータがリードバッファか
ら読み出されてホストシステムへ転送される。ここで、
キャッシュデータエリアは“重み”が最大のエリアで
あったが、リードコマンドの実行により、キャッシュ
データエリアはホストシステムに転送されていないデ
ータ量が減少し、その結果“重み”の順位が自ずと低下
する結果となり、例えばここでは、その“重み”の順位
が>>に変化する。
【0050】図13は、図7に示すように3つのキャッ
シュデータエリア,,(“重み”は>>の
順)が存在する状態において、キャッシュデータエリア
が形成される基になったリードコマンド(図4参
照)に対するシーケンシャルリードコマンドであってか
つキャッシュデータエリアに対しフルヒットするリー
ドコマンドが発行された場合の説明図である。
【0051】このときは、リードコマンドはキャッシ
ュデータエリアにフルヒットしているため、リードコ
マンドが要求したデータをホストシステムに転送する
にあたっては、そのデータをリードバッファから読み出
して転送すればよく、磁気ディスクを新たにアクセスす
る必要はないが、ここではリードコマンドはリードコ
マンドに対するシーケンシャルリードコマンドである
ため、さらに先読みが行なわれる。
【0052】この先読みを行なうにあたっては、リード
コマンドがヒットしたキャッシュデータエリアは
“重み”が最大のエリアであるため、このキャッシュデ
ータエリアの最大“重み”は解除され、“重み”が次
に大きいキャッシュデータエリアであるキャッシュデー
タエリアの“重み”が最大とされ、その最大“重み”
のキャッシュデータエリアへの上書きを避けるように
リング先頭アドレス,リング最終アドレスが設定される
とともに、磁気ディスク上の、先読みデータ*b2(図
12参照)が記憶されていた領域の最終アドレスの次の
アドレスから順に読み出されたデータが、リードバッフ
ァ上の、リードコマンドの実行の先読みの最終アドレ
ス(キャッシュデータエリアの最終アドレス)の次の
アドレス(キャッシュデータエリアの先頭アドレス)
から順に格納される。
【0053】図14は、リードコマンドを実行した後
さらに先読みを行ない、次のリードコマンドが発行され
る前に先読みが終了した状態を示す図である。
【0054】先読みデータは、図13に示すキャッシュ
データエリアの先頭アドレスから順に格納され、キャ
ッシュデータエリアの最終アドレスであるリング最終
アドレスまで格納されると、今度はキャッシュデータエ
リアの先頭アドレス(リードバッファの先頭アドレ
ス)に設定されたリング先頭アドレスから順に先読みデ
ータが格納され、かつ、図13に示す、リードコマンド
の要求データが格納された領域(図13に示すリー
ドデータ存在位置)の最終アドレスまで先読みデータが
格納されて、先読みが停止する。この段階では、キャッ
シュデータエリアはそのまま保存され、リードバッフ
ァ上の、キャッシュデータエリアを除く領域全てに先
読みデータが格納された状態となる。
【0055】次に、以上の動作を実現するための、図2
に示すCPU22で実行されるプログラムについて説明
する。
【0056】図15〜図19は、リードコマンド受領時
に実行されるリード制御プログラムのフローチャートで
ある。但し、このフローチャートには、図2に示すCP
U22で実行される処理と、CPU22の指令を受けた
ハードディスクコントローラ19等で実行される処理が
区別なしに示されている。
【0057】この図15〜図19に示すプログラムは、
基本的には、磁気ディスクがアクセスされていないとき
(先読みが停止しているとき)にリードコマンドを受領
すると、その実行が開始される。ただし後述するよう
に、リードコマンドを受領した後先読み停止処理を行な
い、その後、このプログラムが再度実行される場合もあ
る。
【0058】リードコマンドが発行されたことに応じて
このプログラムの実行が開始されると、先ず図15のス
テップ1_1において、その発行されたリードコマンド
から、磁気ディスク上の読出先頭アドレスと要求された
データ量を表わす要求セクタ数の情報が取得され、次い
でリードバッファ中にキャッシュセーブされたデータが
存在するか否かが判定される(ステップ1_2)。リー
ドバッファ中にキャッシュセーブされたデータが存在し
ないとき、すなわちリードバッファが完全に空いた初期
状態にあるときは、そのままミスヒット処理(図16参
照)に移行する。
【0059】ステップ1_2において、リードバッファ
中にキャッシュセーブされたデータが存在すると判定さ
れると、そのリードコマンドから取得した先頭アドレス
と要求セクタ数から、リードバッファに形成されたキャ
ッシュデータエリア1つずつについて今回のリードコマ
ンドがヒットするか否か検査され(ステップ1_3)、
フルヒットしたキャッシュデータエリアが存在するか否
か(ステップ1_4)、および一部ヒットしたキャッシ
ュデータエリアが存在するか否か(ステップ1_5)が
判定される。フルヒットしたキャッシュデータエリアも
一部ヒットしたキャッシュデータエリアも存在しないと
きは図16のミスヒット処理に移行し、一部ヒットした
キャッシュデータエリアが存在するとき、およびフルヒ
ットしたキャッシュデータエリアが存在するときは、図
19の、それぞれ一部ヒット処理、フルヒット処理に移
行する。
【0060】図16に示すミスヒット処理においては、
リードバッファ中にキャッシュセーブされていない空き
エリア(例えば図4に示すようなキャッシュデータ無し
のエリア)が存在するか否かが判定され(ステップ2_
1)、リードバッファが満杯(空きエリアなし)のとき
は、図18に示す、リードバッファが満杯のときのミス
ヒット処理に移行する。図18の処理については後述す
る。
【0061】図16のステップ2_1において、空きエ
リアが存在すると判定されると、ステップ2_2に進
み、リードバッファ中にキャッシュデータエリアが存在
するか否かが判定される。このステップ2_2でリード
バッファ中にキャッシュデータエリアが存在しない、す
なわちリードバッファが図3に示すような初期状態にあ
ると判定されたときは、ステップ2_3に進んでリング
先頭バッファがバッファ先頭アドレスに設定されるとと
もにリング最終バッファがバッファ最終アドレスに設定
され、ステップ2_6に進む。ステップ2_6について
は後述する。
【0062】ステップ2_2において、リードバッファ
中にキャッシュデータエリアが存在すると判定される
と、ステップ2_4に進み、複数個のキャッシュデータ
エリアが存在する中でホストへの未転送セクタ数を一番
多く持つキャッシュデータエリアを検出し、そのキャッ
シュデータエリアの“重み”を最大とする。ここで、リ
ードバッファ中にキャッシュデータエリアが1つしか存
在しないときは、その唯一のキャッシュデータエリアの
“重み”が最大ということになる。
【0063】また、リードバッファ中にキャッシュデー
タエリアが複数存在する場合において、未転送セクタ数
をあまりに多く持つキャッシュデータエリアが存在した
ときは、そのキャッシュデータエリアは“重み”最大の
キャッシュデータエリアとい評価からは外される。未転
送セクタ数が多過ぎるときは、そのキャッシュデータエ
リアのサイズが大き過ぎることを意味し、磁気ディスク
から新たに読み出されたデータの格納領域のサイズが大
幅に制限されてしまうからである。
【0064】次いで、ステップ2_5に進み、ステップ
2_4で設定した“重み”が最大のキャッシュデータエ
リアが上書きされないようにリング先頭アドレス、リン
グ最終アドレスが設定される。
【0065】ステップ2_6では磁気ディスクから読み
出されたデータがリードバッファ中の空きエリアの先頭
アドレスから格納開始されるように格納アドレスを設定
し、その磁気ディスクからのデータ読出しを開始し(開
始をハードディスクコントローラ19に指示し)、図1
7に示すホストへのデータ転送処理に移行する。以後こ
のデータ読出しは図2に示すハードディスクコントロー
ラ19により自動的に行なわれ、今回のリードコマンド
により要求されたデータの読出しが終了した後も、通常
は、そのまま先読みが継続される。
【0066】図17のステップ3_1では、ホストへの
転送可能なデータがリードバッファ中に存在したとき自
動的にホスト転送を行なうようハードディスクコントロ
ーラ19(図2参照)に指示が出される。ハードディス
クコントローラ19は、以後、その指示に従って、リー
ドバッファ中に格納されたデータのうちホストシステム
に転送すべきデータをセクタ単位で転送する。
【0067】ステップ3_2では、リードバッファ中に
ホストシステムに転送可能なデータが存在するか否かが
モニタされ、ステップ3_3では、今回のリードコマン
ドが要求したデータの、ホストシステムへの転送が完了
したか否か、すなわち今回のリードコマンドに応じた処
理が終了したか否かがモニタされる。
【0068】さらにステップ3_4では、先読みが停止
したか否かがモニタされ、先読み中のときは、次のリー
ドコマンドを受領したか否かがモニタされる。例えば図
14を参照して説明したような状況に達することにより
先読みが終了すると、ステップ3_9に進む。ステップ
3_9については後述する。
【0069】先読み続行中に次のリードコマンドを受け
取ると、その受け取ったリードコマンドが前回のリード
コマンドに対するシーケンシャルリードコマンドである
か否か(ステップ3_6)、前回のリードコマンドの最
終アドレスに対し磁気ディスク上、物理的な+1トラッ
クのセクタ数以内を読出先頭アドレスとするリードコマ
ンド(ギャップリードコマンド)であるか否か(ステッ
プ3_7)が判定され、シーケンシャルリードコマンド
あるいはギャップリードコマンドであったときはステッ
プ3_1に戻り、磁気ディスクからのデータ読出しが継
続される。
【0070】一方、今回受け取ったリードコマンドが前
回のリードコマンドに対しランダムリードコマンドであ
ったときは、ステップ3_8に進み、先読み停止処理が
実行される。
【0071】ステップ3_9では、キャッシュセーブ
(キャッシュセーブパラメータ(後述する)をCPU内
のRAMテーブルに書き込む処理)が行なわれる。
【0072】ここで、キャッシュセーブパラメータは、
そのキャッシュデータエリアの、リードバッファ上の先
頭アドレス、そのキャッシュデータエリアに格納された
データの、磁気ディスク上の先頭アドレス(先頭LB
A:logical block address)、
そのキャッシュデータエリアのセクタサイズ、そのキャ
ッシュデータエリアに格納されたデータのうちの、ホス
トへの未転送のセクタ数、および、後のリードコマンド
が自分に対するシーケンシャルコマンドであるか否かの
判定のための、自分のリードコマンドの読出先頭アドレ
スと要求セクタ数から求められる最終LBAの次のLB
Aから構成され、キャッシュセーブが行なわれるとそこ
に新たなキャッシュデータエリアが1つ生成されたこと
になる。
【0073】ステップ3_9におけるキャッシュセーブ
が終了するとこのルーチンを抜けることになるが、次の
ランダムリードコマンドを既に受領しているときは(ス
テップ3_5〜3_8参照)、そのリードコマンドの処
理を実行するために、図15のスタート位置からこのル
ーチンが再度実行される。
【0074】図18は、図16のミスヒット処理におけ
るステップ2_1においてリードバッファが満杯状態の
ときに実行される、バッファ満杯状態におけるミスヒッ
ト処理を示しており、ステップ4_1では、リードバッ
ファ中にキャッシュデータエリアは1つのみ存在する
(その1つのキャッシュデータエリアだけで満杯状態に
ある)か否かが判定され、キャッシュデータエリアが1
つのみ存在するときは、ステップ4_2に進み、リング
先頭アドレスがバッファ先頭アドレスに一致するように
設定されるとともにリング最終アドレスがバッファ最終
アドレスに一致するように設定され、ステップ4_3に
進み、磁気ディスクからのリードデータが、リードバッ
ファ上の、その唯一のキャッシュデータエリアの最終ア
ドレスに引き続くアドレスから格納開始されるようにリ
ードバッファへの格納アドレスを設定した後、磁気ディ
スクからのデータ読出しが行なわれる。
【0075】その後は、図17を参照して説明したホス
トへのデータ転送処理が行なわれる。
【0076】図19は、図15において、リードバッフ
ァ上に一部ヒットあるいはフルヒットしたキャッシュデ
ータエリアが存在すると判定された場合の処理であり、
フルヒットのときはステップ5_1から実行され、一部
ヒットのときはステップ5_2から実行される。
【0077】ステップ5_1では、そのリードコマンド
はフルヒットしたキャッシュデータエリア内の最終リー
ドコマンド(そのキャッシュエリア作成の基になったリ
ードコマンド、あるいは、図6を参照して説明したよう
に複数のリードコマンドによって1つのキャッシュデー
タエリアが形成されるときは、それら複数のリードコマ
ンドのうちの最終のリードコマンド)に対しシーケンシ
ャルリードコマンドであるか否かが判定される。シーケ
ンシャルコマンドでないときは、そのまま、図17に示
すホストへのデータ転送処理に移行する。このときは、
先読みは行なわれない。
【0078】ステップ5_1において、シーケンシャル
コマンドではないと判定されると、ステップ5_2に進
む。このステップ5_2に進むのは、フルヒットであっ
て、かつシーケンシャルリードコマンドであるときと、
シーケンシャルリードコマンドであるか否かを問わず、
一部ヒットであるときである。
【0079】ステップ5_2では、リードバッファ中に
空きエリアが存在するか否かが判定され、ステップ5_
3では、リードバッファ中に存在するデータエリアは1
つだけか否かが判定される。
【0080】リードバッファに空きエリアが存在せず
(満杯状態にあり)、かつリードバッファ中にキャッシ
ュデータエリアが1つのみ存在するときはステップ5_
4に進み、そうではないとき、すなわちリードバッファ
に空きエリアが存在するとき、あるいは空きエリアは存
在しなくてもリードバッファに複数のキャッシュデータ
が存在するときはステップ5_6に進む。
【0081】ステップ5_4では、リードバッファが唯
一のキャッシュデータエリアで満杯になっているため、
リング先頭アドレス、リング最終アドレスがバッファ先
頭アドレス、バッファ最終アドレスにそれぞれ一致する
ように設定され、ステップ5_5において、その唯一の
キャッシュデータエリアの最終アドレスに引き続くアド
レスから格納が開始されるようにリードバッファへの格
納アドレスが設定され、その後、磁気ディスクからのデ
ータ読出しが行なわれる。
【0082】その後は、図17のホストへのデータ転送
処理に残る。
【0083】一方、ステップ4_4に進んだときは、リ
ードバッファ中に存在する複数個のキャッシュデータエ
リアのうち、ホストへの未転送セクタ数を一番多くもつ
キャッシュデータエリアを検出し、そのキャッシュデー
タエリアの“重み”を最大とする。尚、図16のステッ
プ2_4の場合と同様、リードバッファ中にキャッシュ
データエリアが1つしか存在しないときは、その唯一の
キャッシュバッファエリアが“重み”最大のキャッシュ
データエリアとなる。また、あまりに多くの未転送セク
タをもつキャッシュデータエリアが“重み”最大から外
される点も、図16のステップ2_4の場合と同じであ
る。
【0084】ステップ4_5では、ステップ4_4で設
定した“重み”が最大のキャッシュデータエリアが上書
きされないようにリング先頭アドレス、リング最終アド
レスが設定される。
【0085】ステップ4_5では、“重み”が最小のキ
ャッシュデータエリアが解除され、磁気ディスクから読
み出されたデータが解除されたエリアの先頭バッファア
ドレスから格納が開始されるようにリードバッファへの
格納アドレスが設定され、その後、磁気ディスクからの
データ読出しが行なわれる。ここで、リードバッファに
空きエリアが存在するときはその空きエリアが“重み”
最小のエリアとして取り扱われる。
【0086】その後は、図17に示すホストへのデータ
転送処理に移る。
【0087】本実施形態では以上のようなルーチンによ
り、いずれかのキャッシュデータエリアを解除してそこ
に上書きする必要があるときは、“重み”が最小のキャ
ッシュデータエリアに上書きされ、また、“重み”が最
大のキャッシュデータエリアのデータが保存されるよう
にデータ格納が行なわれ、したがって先読みにより得ら
れたデータの保存と、磁気ディスクから新たに読み出さ
れたデータの格納領域の確保との間で高度の調和が図ら
れ、アクセス速度が向上する。
【0088】尚、上記実施形態は磁気ディスクを備え、
その磁気ディスクからデータを読み出してホストに転送
する磁気ディスク装置に関するものであるが、本発明
は、磁気ディスクに限らず、光ディスク、光磁気ディス
ク、フロッピィディスク等、どのような記憶媒体からデ
ータを読み出す装置にも適用することができる。
【0089】なお、本実施の形態においては、各キャッ
シュデータエリアに対して、外部に転送されていないデ
ータ量のみに基づいて重み付けされたが、それに加え
て、アクセス頻度や、最後にアクセスされてからの経過
時間、または最後にアクセスされてからのリードコマン
ドの発行回数の少なくとも1つも考慮して重み付けを行
ってもよい。この場合、アクセス頻度が低いほど重み付
けが小さく、経過時間が長いほど重み付けが小さく、ま
たリードコマンド発行回数多いほど重み付けが小さくな
る。
【0090】
【発明の効果】以上、説明したように、本発明によれ
ば、先読みしたデータの保有と記憶媒体から新たに読み
出されたデータの、広い格納領域の確保との両立が図ら
れ、アクセスタイムの短かい記憶装置が実現する。
【図面の簡単な説明】
【図1】本発明の記憶装置の一実施形態である磁気ディ
スク装置の内部構造を示す図である。
【図2】図1に示す磁気ディスク装置の機能構成ブロッ
ク図である。
【図3】磁気ディスクから読み出されたデータをキャッ
シュデータとして格納しておくリードバッファのメモリ
マップである。
【図4】磁気ディスクから読み出されたデータをキャッ
シュデータとして格納しておくリードバッファのメモリ
マップである。
【図5】磁気ディスクから読み出されたデータをキャッ
シュデータとして格納しておくリードバッファのメモリ
マップである。
【図6】磁気ディスクから読み出されたデータをキャッ
シュデータとして格納しておくリードバッファのメモリ
マップである。
【図7】磁気ディスクから読み出されたデータをキャッ
シュデータとして格納しておくリードバッファのメモリ
マップである。
【図8】磁気ディスクから読み出されたデータをキャッ
シュデータとして格納しておくリードバッファのメモリ
マップである。
【図9】磁気ディスクから読み出されたデータをキャッ
シュデータとして格納しておくリードバッファのメモリ
マップである。
【図10】磁気ディスクから読み出されたデータをキャ
ッシュデータとして格納しておくリードバッファのメモ
リマップである。
【図11】磁気ディスクから読み出されたデータをキャ
ッシュデータとして格納しておくリードバッファのメモ
リマップである。
【図12】磁気ディスクから読み出されたデータをキャ
ッシュデータとして格納しておくリードバッファのメモ
リマップである。
【図13】磁気ディスクから読み出されたデータをキャ
ッシュデータとして格納しておくリードバッファのメモ
リマップである。
【図14】磁気ディスクから読み出されたデータをキャ
ッシュデータとして格納しておくリードバッファのメモ
リマップである。
【図15】リードコマンド受領時に実行されるリード制
御プログラムのフローチャートである。
【図16】リードコマンド受領時に実行されるリード制
御プログラムのフローチャートである。
【図17】リードコマンド受領時に実行されるリード制
御プログラムのフローチャートである。
【図18】リードコマンド受領時に実行されるリード制
御プログラムのフローチャートである。
【図19】リードコマンド受領時に実行されるリード制
御プログラムのフローチャートである。
【符号の説明】
10 磁気ディスク装置 11 ハウジング 12 回転軸 13 磁気ディスク 14 浮上ヘッドスライダ 15 回動軸 16 キャリッジアーム 17 アクチュエータ 18 バッファメモリ 19 ハードディスクコントローラ 20 プログラムメモリ 21 リード/ライト回路 22 CPU 23 発振器 24 サーボコントローラ 25 イスコイルモータ 26 スピンドルモータ 27 ヘッドIC 28 磁気ヘッド

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 外部から入力されたリードコマンドを受
    けて記憶媒体からデータを読み出しバッファに格納する
    とともに、該バッファに格納されたデータを外部に転送
    する記憶装置において、 今回のリードコマンドにより要求されたデータが前記バ
    ッファに格納されていないときは、前記記憶媒体から今
    回のリードコマンドにより指定されたデータを読み出し
    て、前記バッファの、データが既に格納されている領域
    の最終アドレスの次のアドレス以降の領域に格納し、該
    バッファに格納された、今回のリードコマンドにより指
    定されたデータを外部に転送するとともに、該記憶媒体
    からアドレス順に読出しを継続して前記バッファに格納
    する先読みを行なう読出制御手段と、 前記バッファ上の、前記記憶媒体上でのアドレスが連続
    しているデータが格納されたデータエリアに、該データ
    エリア内の、外部に転送されていない残りのデータ量に
    基づいて、重み付けを行なう重み付け手段とを備えるこ
    とを特徴とする記憶装置。
  2. 【請求項2】 前記重み付け手段は、更に、データエリ
    ア毎に、当該データエリアに対するアクセス頻度、当該
    データエリアが最後にアクセスされてからの経過時間、
    または当該データエリアが最後にアクセスされてからの
    外部リードコマンドの発行回数の少なくとも1つに基い
    て、重み付けを行なうことを特徴とする請求項1記載の
    記憶装置。
  3. 【請求項3】 前記読出制御手段は、今回のリードコマ
    ンドにより要求されたデータが前記バッファに格納され
    ていないときは、前記記憶媒体から今回のリードコマン
    ドにより指定されたデータを読み出して、前記バッファ
    の、前記重み付け手段により付された重みが最小のデー
    タエリアに格納することを特徴とする請求項1又は2記
    載の記憶装置。
  4. 【請求項4】 前記読出制御手段は、前記バッファの、
    前記重み付け手段により付された重みが最大のデータエ
    リアへの上書きを禁止し、該バッファの、該データエリ
    アを除く領域に上書きすることにより、前記記憶媒体か
    ら読み出したデータを前記バッファに格納するものであ
    ることを特徴とする請求項3記載の記憶装置。
  5. 【請求項5】 前記重み付け手段は、前記読出制御手段
    により、前記バッファ中の、最大の重みが付されたデー
    タエリアがアクセスされたときは、該データエリアを除
    くデータエリアのうちのいずれかのデータエリアに最大
    の重みを付すものであることを特徴とする請求項4記載
    の記憶装置。
  6. 【請求項6】 前記読出制御手段は、今回のリードコマ
    ンドにより要求されたデータ全てが前記バッファ中のい
    ずれかのデータエリアに格納されており、かつ、該デー
    タエリア中の、今回のリードコマンドにより要求された
    データが格納された領域の先頭アドレスが、該データエ
    リア中の、該データエリア形成の基になった過去のリー
    ドコマンドによる要求に応じて外部に転送したデータが
    格納された領域の最終アドレスの次のアドレスであった
    ときは、今回のリードコマンドに応じて、前記記憶媒体
    上の、該データエリアの最終アドレスに格納されている
    データが記憶されていたアドレスの次のアドレスから先
    読みを開始するものであることを特徴とする請求項3記
    載の記憶装置。
JP18620099A 1999-06-30 1999-06-30 記憶装置 Expired - Fee Related JP3708757B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP18620099A JP3708757B2 (ja) 1999-06-30 1999-06-30 記憶装置
US09/494,855 US6487126B1 (en) 1999-06-30 2000-02-01 Storage device
DE10010299A DE10010299A1 (de) 1999-06-30 2000-03-06 Speichervorrichtung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18620099A JP3708757B2 (ja) 1999-06-30 1999-06-30 記憶装置

Publications (2)

Publication Number Publication Date
JP2001014109A true JP2001014109A (ja) 2001-01-19
JP3708757B2 JP3708757B2 (ja) 2005-10-19

Family

ID=16184140

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18620099A Expired - Fee Related JP3708757B2 (ja) 1999-06-30 1999-06-30 記憶装置

Country Status (3)

Country Link
US (1) US6487126B1 (ja)
JP (1) JP3708757B2 (ja)
DE (1) DE10010299A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6487126B1 (en) * 1999-06-30 2002-11-26 Fujitsu Limited Storage device
US8065477B2 (en) 2008-03-21 2011-11-22 Toshiba Storage Device Corporation Disk apparatus and advance data reading method
JP2013077161A (ja) * 2011-09-30 2013-04-25 Toshiba Corp 情報処理装置、ハイブリッド記憶装置、およびキャッシュ方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002259207A (ja) * 2001-03-02 2002-09-13 Fujitsu Ltd 情報処理装置及び信号処理装置並びにインタフェース装置
EP1280063A3 (en) * 2001-07-27 2005-03-30 Fujitsu Limited Cache control methods and apparatus for hard disk drives
JP2006163801A (ja) * 2004-12-07 2006-06-22 Canon Inc 情報記録再生装置
US7536529B1 (en) * 2005-06-10 2009-05-19 American Megatrends, Inc. Method, system, apparatus, and computer-readable medium for provisioning space in a data storage system
US7890314B2 (en) * 2007-12-05 2011-02-15 Seagate Technology Llc Method for modeling performance of embedded processors having combined cache and memory hierarchy
US8442663B2 (en) * 2010-08-23 2013-05-14 Fisher-Rosemount Systems, Inc. Methods, apparatus and articles of manufacture to test process control systems
US20170228164A1 (en) * 2016-02-10 2017-08-10 Advanced Micro Devices, Inc. User-level instruction for memory locality determination
CN109421041B (zh) * 2017-08-21 2021-05-11 深圳市优必选科技有限公司 机器人运动控制方法、机器人及具有存储功能的装置
US20190303037A1 (en) * 2018-03-30 2019-10-03 Ca, Inc. Using sequential read intention to increase data buffer reuse

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55157051A (en) 1979-05-25 1980-12-06 Nec Corp Disc cash system
US4489378A (en) 1981-06-05 1984-12-18 International Business Machines Corporation Automatic adjustment of the quantity of prefetch data in a disk cache operation
JPH0375917A (ja) 1989-08-18 1991-03-29 Nec Corp 補助記憶装置のバッファ管理方式
JPH08115264A (ja) 1994-10-18 1996-05-07 Fuji Xerox Co Ltd ディスクキャッシュ装置
JP3708757B2 (ja) * 1999-06-30 2005-10-19 富士通株式会社 記憶装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6487126B1 (en) * 1999-06-30 2002-11-26 Fujitsu Limited Storage device
US8065477B2 (en) 2008-03-21 2011-11-22 Toshiba Storage Device Corporation Disk apparatus and advance data reading method
JP2013077161A (ja) * 2011-09-30 2013-04-25 Toshiba Corp 情報処理装置、ハイブリッド記憶装置、およびキャッシュ方法

Also Published As

Publication number Publication date
JP3708757B2 (ja) 2005-10-19
DE10010299A1 (de) 2001-01-11
US6487126B1 (en) 2002-11-26

Similar Documents

Publication Publication Date Title
JP3183993B2 (ja) ディスク制御システム
US7194576B1 (en) Fetch operations in a disk drive control system
JP2003518313A (ja) ディスク駆動機構のバッファとの間のデータの転送を管理するバッファ管理システム
JP2003131942A (ja) ハードディスク装置のキャッシュを制御する方法および装置
JP4925230B2 (ja) 記憶装置、記憶制御装置及び制御方法
JP2001014109A (ja) 記憶装置
JP3568110B2 (ja) キャッシュメモリの制御方法、コンピュータシステム、ハードディスクドライブ装置およびハードディスク制御装置
JPH07334426A (ja) 情報記録再生装置およびデータキャッシュ方法
JP2001306398A (ja) コンピュータシステム、ハードディスクドライブの認められる性能を最適化するための方法、およびコンピュータ読取可能媒体
US7000077B2 (en) Device/host coordinated prefetching storage system
US6310743B1 (en) Seek acoustics reduction with minimized performance degradation
US6209058B1 (en) Cache management for data transfer control from target disk areas
KR19980029917A (ko) 자기 디스크 드라이브에서 읽기 캐쉬의 성능을 높이기 위한 방법
JPH10269027A (ja) ディスク装置及び同装置におけるバッファ管理制御方法
JPH06314177A (ja) 磁気ディスク装置及びアクセス方法
JPH11161527A (ja) データ記憶システム
US6957300B2 (en) Reducing delay of command completion due to overlap condition
US7370153B1 (en) System and method of pre-fetching using an extended data structure including required data and a pre-fetch flag
JP2002342038A (ja) コマンドの実行順序を制御するディスク装置
JPH11212733A (ja) 外部記憶システム
JP2001014111A (ja) 回転形記憶装置の制御方法
JPH1027069A (ja) 記憶装置
JPH10171713A (ja) ディスク記憶装置及び同装置に適用するキャッシュ制御方法
JP3080758B2 (ja) 磁気ディスク装置
US6041392A (en) Disk drive device and method for controlling the same

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041117

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050114

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050802

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050804

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090812

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090812

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100812

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100812

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100812

Year of fee payment: 5

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100812

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110812

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees