JP2001134488A - Cache control method for disk storage device - Google Patents
Cache control method for disk storage deviceInfo
- Publication number
- JP2001134488A JP2001134488A JP31634599A JP31634599A JP2001134488A JP 2001134488 A JP2001134488 A JP 2001134488A JP 31634599 A JP31634599 A JP 31634599A JP 31634599 A JP31634599 A JP 31634599A JP 2001134488 A JP2001134488 A JP 2001134488A
- Authority
- JP
- Japan
- Prior art keywords
- host
- data
- buffer memory
- cache
- storage device
- 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.)
- Pending
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【課題】本発明の目的は、セグメントで分割管理したバ
ッファメモリの空間を用いたリードキャッシュ制御を専
用のハードウェアによって実現することを可能にする手
段を提供する事である。
【解決手段】ディスク記憶装置制御用LSIであるHD
C(Hard Disk Controller)において、リードキャッシュ
制御部104内にホストアドレスラッチ部105と、ヒ
ット判定部106と、キャッシュデータテーブル107
を持つ。ここでヒット判定部106はキャッシュデータ
テーブル107内のデータを参照してキャッシュヒット
したか否かを判定する。
(57) Abstract: An object of the present invention is to provide means for enabling read cache control using a space of a buffer memory divided and managed in segments by dedicated hardware. . An HD which is an LSI for controlling a disk storage device.
In a C (Hard Disk Controller), a host address latch unit 105, a hit determination unit 106, a cache data table 107
have. Here, the hit determination unit 106 determines whether or not a cache hit has occurred by referring to the data in the cache data table 107.
Description
【0001】[0001]
【発明の属する技術分野】本発明は、ディスク記憶装置
の基板上の集積回路で用いられるディスク記憶装置制御
用LSIであるHDC(Hard Disk Controller)に関
し、特にディスク記憶装置がホストの発行したリードコ
マンドを受け取った時のキャッシュヒット処理をハード
ウェアで行う事でキャッシュヒット処理時間の短縮し、
且つキャッシュヒットする確率を高める事を実現する手
段に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an HDC (Hard Disk Controller) which is an LSI for controlling a disk storage device used in an integrated circuit on a substrate of a disk storage device, and more particularly to a read command issued by a host from the disk storage device. By performing the cache hit processing when hardware is received, the cache hit processing time is reduced,
In addition, the present invention relates to means for increasing the probability of a cache hit.
【0002】[0002]
【従来の技術】図3に示すようなディスク記憶装置を例
に取り説明を行う。図3の各部の働きを以下に示す。2. Description of the Related Art A disk storage device as shown in FIG. 3 will be described as an example. The function of each part in FIG. 3 is described below.
【0003】ホスト300はPC本体等である。The host 300 is a PC or the like.
【0004】HDC(Hard Disk Controller)301は
ディスク記憶装置のデータ転送を管理するLSIであ
る。An HDC (Hard Disk Controller) 301 is an LSI for managing data transfer of a disk storage device.
【0005】バッファメモリ302はホストからディス
ク媒体もしくはディスク媒体からホストへ転送するデー
タを一旦格納する領域である。The buffer memory 302 is an area for temporarily storing data to be transferred from the host to the disk medium or from the disk medium to the host.
【0006】R/Wチャネル303はディスク媒体30
5上のデータをリード・ライトする為のLSIである。[0006] The R / W channel 303 is the disk medium 30.
5 is an LSI for reading and writing the data on the LSI.
【0007】ヘッド304はディスク媒体上のデータの
読み出し及び書き込みを行う機構である。The head 304 is a mechanism for reading and writing data on a disk medium.
【0008】ディスク媒体305はデータを記録する為
の回転型記憶媒体である。The disk medium 305 is a rotary storage medium for recording data.
【0009】MPU306はディスク記憶装置全体を制
御する為のLSIである。The MPU 306 is an LSI for controlling the entire disk storage device.
【0010】MC(Motion Controller)307はモー
タドライバ308を制御するLSIである。An MC (Motion Controller) 307 is an LSI for controlling the motor driver 308.
【0011】モータドライバ308はディスク媒体30
5の回転制御及びヘッド304の位置決め制御をする為
のLSIである。The motor driver 308 is a disk medium 30
5 is an LSI for performing the rotation control and the positioning control of the head 304.
【0012】図3のHDC301は図4の様に構成され
る。図4の各部の働きを以下に示す。The HDC 301 shown in FIG. 3 is configured as shown in FIG. The function of each part in FIG. 4 is described below.
【0013】HBI400(Host Bus Interface)はホ
ストとコマンド、パラメータ、データの送受信を担当す
る回路である。The HBI 400 (Host Bus Interface) is a circuit for transmitting and receiving commands, parameters, and data to and from the host.
【0014】DF401(Disk Formatter)はディスク
媒体とのデータの読み込み及び書込み制御を行う回路で
ある。A DF 401 (Disk Formatter) is a circuit that controls reading and writing of data from and to a disk medium.
【0015】BM402はバッファメモリの制御を行う
回路である。The BM 402 is a circuit for controlling a buffer memory.
【0016】MPU I/F403はMPUとHDCの
インタフェース回路である。An MPU I / F 403 is an interface circuit between the MPU and the HDC.
【0017】Buffer Sector Counter404はバッファ
メモリのセグメントに格納してあるセクタ数のカウント
を行う回路である。The Buffer Sector Counter 404 is a circuit for counting the number of sectors stored in a segment of the buffer memory.
【0018】データ転送制御部405はバッファメモリ
とのデータ転送の制御を行う回路である。The data transfer control unit 405 is a circuit for controlling data transfer with the buffer memory.
【0019】バッファアドレス生成部406はバッファ
メモリへ出力するアドレスの生成を行う回路である。The buffer address generator 406 is a circuit for generating an address to be output to the buffer memory.
【0020】バッファ制御部407はバッファメモリへ
出力するコマンドの生成を行う回路である。The buffer control unit 407 is a circuit for generating a command to be output to the buffer memory.
【0021】又、図4のバッファアドレス生成部は図5
に示すようにバッファメモリのアドレス管理を行う。図
5の各部の働きを以下に示す。The buffer address generator of FIG.
The address of the buffer memory is managed as shown in FIG. The function of each part in FIG. 5 is described below.
【0022】Host Segment Start Address500はHB
I−BM間のデータ転送で使用するセグメントの開始ア
ドレスを示す。Host Segment Start Address 500 is HB
Indicates the start address of the segment used for data transfer between the I-BM.
【0023】Host Segment Pointer Address501はH
BI−BM間でのデータ転送で使用するセグメントにお
いて、次にデータ転送するポインタアドレスを示す。The Host Segment Pointer Address 501 is H
In a segment used for data transfer between BI and BM, a pointer address for next data transfer is shown.
【0024】Host Segment End Address502はHBI
−BM間のデータ転送で使用するセグメントの終了アド
レスを示す。Host Segment End Address 502 is HBI
-Indicates the end address of the segment used for data transfer between BMs.
【0025】Disk Segment Start Address503はDF
−BM間のデータ転送で使用するセグメントの開始アド
レスを示す。Disk Segment Start Address 503 is DF
-Indicates the start address of the segment used for data transfer between BMs.
【0026】Disk Segment Pointer Address504はD
F−BM間でのデータ転送で使用するセグメントにおい
て、次にデータ転送するポインタアドレスを示す。Disk Segment Pointer Address 504 is D
In a segment used for data transfer between F-BM, a pointer address for next data transfer is shown.
【0027】Disk Segment End Address505はDF−
BM間のデータ転送で使用するセグメントの終了アドレ
スを示す。Disk Segment End Address 505 is DF-
Indicates the end address of the segment used in data transfer between BMs.
【0028】バッファメモリ506はホストからディス
ク媒体もしくはディスク媒体からホストへ転送するデー
タを一旦格納する領域である。又、バッファメモリは複
数のセグメントに区切って使用する。The buffer memory 506 is an area for temporarily storing data to be transferred from the host to the disk medium or from the disk medium to the host. The buffer memory is used by being divided into a plurality of segments.
【0029】図3のホスト300がディスク記憶装置に
データを書き込む場合の動作について説明を行う。ホス
ト300のライト命令時で送られてくるデータは、HD
C301の制御で一旦バッファメモリ302へ書き込ま
れる。バッファメモリ302への書き込みアドレスはHo
st Transfer Pointer Addressによって示され、このポ
インタはデータ転送をする度にHost Transfer Start Ad
dress、Host TransferEnd Addressの範囲で移動する。The operation when the host 300 of FIG. 3 writes data to the disk storage device will be described. The data sent at the time of the write command from the host 300 is HD
The data is temporarily written to the buffer memory 302 under the control of C301. The write address to the buffer memory 302 is Ho
st Transfer Pointer Address is indicated by the Host Transfer Start Ad
Move within the range of dress, Host TransferEnd Address.
【0030】Host Transfer Pointer Addressが1セクタ
分移動すると、Buffer Sector Counterが1セクタ分イン
クリメントする。すなわち、Buffer Sector Counterが
バッファメモリ内のセクタ数を管理している。Buffer S
ector Counterが1以上を示すと、バッファメモリ302
に書き込んだデータを再び読み出す。バッファメモリ3
02の読み出しアドレスはDisk Transfer Pointer Addr
essによって示され、このポインタはデータ転送をする
度にDisk Transfer Start Address、Disk Transfer End
Addressの範囲で移動する。When the Host Transfer Pointer Address moves by one sector, the Buffer Sector Counter is incremented by one sector. That is, the Buffer Sector Counter manages the number of sectors in the buffer memory. Buffer S
When the ector counter indicates 1 or more, the buffer memory 302
Read out the data written in. Buffer memory 3
02 read address is Disk Transfer Pointer Addr
This pointer is indicated by ess, and each time data transfer is performed, Disk Transfer Start Address, Disk Transfer End
Move within the range of Address.
【0031】Disk Transfer Pointer Addressが1セクタ
分移動すると、Buffer Sector Counterを1セクタ分デク
リメントする。バッファメモリ302から読み出したデ
ータはR/Wチャネル303、ヘッド304を経由して
書き込む。ディスク媒体305は同心円状の多数のトラ
ックを形成しており、各トラックは複数のセクタに分割
されている。ディスク記憶装置ではセクタ単位でデータ
アクセスを行う。When the Disk Transfer Pointer Address moves by one sector, the Buffer Sector Counter is decremented by one sector. The data read from the buffer memory 302 is written via the R / W channel 303 and the head 304. The disk medium 305 forms a large number of concentric tracks, and each track is divided into a plurality of sectors. In the disk storage device, data access is performed in sector units.
【0032】ホスト300がディスク記憶装置のデータ
を読み込む場合の動作について説明を行う。ホスト30
0のリード命令時には、ディスク媒体305上のデータ
はヘッド304、R/Wチャネル303を経由しバッフ
ァメモリ302へ書き込む。バッファメモリ302への
書き込みアドレスはDisk Transfer Pointer Addressに
よって示され、このポインタはデータ転送をする度にDi
sk Transfer Start Address、Disk Transfer End Addre
ssの範囲で移動する。Disk Transfer PointerAddressが
1セクタ分移動すると、Buffer Sector Counterが1セク
タ分インクリメントする。The operation when the host 300 reads data from the disk storage device will be described. Host 30
At the time of a read command of 0, data on the disk medium 305 is written to the buffer memory 302 via the head 304 and the R / W channel 303. The write address to the buffer memory 302 is indicated by the Disk Transfer Pointer Address, and this pointer is changed every time data is transferred.
sk Transfer Start Address, Disk Transfer End Addre
Move in the range of ss. Disk Transfer PointerAddress
When moved by one sector, the Buffer Sector Counter is incremented by one sector.
【0033】Buffer Sector Counterが1以上を示すと、
バッファメモリ302に書き込んだデータを再び読み出
す。バッファメモリ302の読み出しアドレスはHost T
ransfer Pointer Addressによって示され、このポイン
タはデータ転送をする度にHost Transfer Start Addres
s、Host Transfer End Addressの範囲で移動する。When the Buffer Sector Counter indicates 1 or more,
The data written in the buffer memory 302 is read again. The read address of the buffer memory 302 is Host T
The pointer is indicated by the ransfer Pointer Address, and this pointer is transferred every time data transfer is performed.
s, move within the range of Host Transfer End Address.
【0034】Host Transfer Pointer Addressが1セクタ
分移動すると、Buffer Sector Counterを1セクタ分デク
リメントする。When the Host Transfer Pointer Address moves by one sector, the Buffer Sector Counter is decremented by one sector.
【0035】バッファメモリから読み出したデータはホ
スト300に転送を行う。The data read from the buffer memory is transferred to the host 300.
【0036】以上がホストのライト及びリードコマンド
を受け取った時の基本的な動作である。しかし、特にホ
ストからのリードコマンドにおいて、リードコマンドを
受け取る度に上記に示したようにディスク媒体をアクセ
スしていては高速なディスク記憶装置の実現は難しい。The above is the basic operation when the host receives write and read commands. However, particularly in the case of a read command from the host, it is difficult to realize a high-speed disk storage device if the disk medium is accessed as described above every time the read command is received.
【0037】そこで、ディスク記憶装置のアクセス高速
化の技術としてリードキャッシュ機能が周知である。リ
ードキャッシュ機能とは、ホストから最初のリード要求
によりディスク媒体から読出したデータをバッファメモ
リに格納する際、ホストが要求するデータ数以上にアド
レスが連続した記憶媒体上のデータを先読みしてバッフ
ァメモリに格納する処理である。ホストには要求があっ
たデータ数のみをバッファメモリから読み出し、転送を
行う。そして、次にホストからリード要求があった時
に、その要求データが前コマンドで先読みした事でバッ
ファメモリに保存されている場合には、ディスク媒体か
らの読出し動作を実行せずに、ホストシステムに転送す
る処理を実行する。このようなリードキャッシュ機能に
より、読出し頻度の高いデータについては、ディスク媒
体に対する読出し動作を行なう事なく、バッファメモリ
からホストに直接転送しているのである。Therefore, a read cache function is well known as a technique for speeding up access to a disk storage device. The read cache function is a function that, when storing data read from a disk medium in response to a first read request from a host into a buffer memory, prefetches data on a storage medium whose addresses are consecutively larger than the number of data requested by the host and stores the data in a buffer memory. This is the process of storing the information. Only the number of data requested by the host is read from the buffer memory and transferred. Then, when a read request is received from the host next, if the requested data is stored in the buffer memory by being pre-read by the previous command, the read operation from the disk medium is not executed, and the host system does not execute the read operation. Execute the transfer process. With such a read cache function, frequently read data is directly transferred from the buffer memory to the host without performing a read operation on the disk medium.
【0038】そしてこれらの処理をディスク記憶装置の
MPUが関与する事なく専用のハードウェアにより実行
可能な構成にする事は特開平10−171713号公報
で示されている。Japanese Patent Application Laid-Open No. 10-171713 discloses that these processes can be executed by dedicated hardware without involving the MPU of the disk storage device.
【0039】[0039]
【発明が解決しようとする課題】近年のディスク記憶装
置の大容量化に伴い、バッファメモリはより大容量のも
のが使用されるようになってきている。このバッファメ
モリの空間をセグメントと呼ぶ分割空間で管理してキャ
ッシュデータを複数持つ事により、ホストからのリード
コマンドがキャッシュデータにヒットする確率を高くす
るのが一般的である。しかし上記で述べた従来の方式で
はこのような場合についてのハードウェア管理を行う事
が出来ない。そこで、本発明の目的は、セグメントで分
割管理したバッファメモリの空間を用いたリードキャッ
シュ制御を専用のハードウェアによって実現することを
可能にすることにより、MPUが関与した場合に比べて
リードキャッシュ処理に要する処理時間の短縮を実現
し、且つキャッシュデータにヒットする確率を高める手
段を提供する事である。With the recent increase in the capacity of a disk storage device, a larger capacity buffer memory has been used. Generally, the probability of a read command from the host hitting the cache data is increased by managing the space of the buffer memory in a divided space called a segment and having a plurality of cache data. However, the conventional method described above cannot perform hardware management in such a case. Therefore, an object of the present invention is to make it possible to realize read cache control using a space of a buffer memory divided and managed by a segment by dedicated hardware, so that read cache processing can be performed as compared with the case where an MPU is involved. And a means for reducing the processing time required for the cache data and increasing the probability of hitting the cache data.
【0040】[0040]
【課題を解決するための手段】上記課題を解決する為、
本発明はホストからのリードアクセス時にディスク媒体
から読出したデータを格納するバッファメモリ手段と、
記録媒体からバッファメモリにデータを格納する際にホ
ストが要求するデータ数以上にバッファメモリにデータ
を格納するキャッシュ手段と、再びホストからリードア
クセスがあった場合に前記キャッシュ手段によって読み
出したキャッシュデータにホストが要求するデータが含
まれているか否かを判定するキャッシュヒット判定手段
と、前記キャッシュヒット判定手段でホストの要求デー
タがバッファメモリに含まれていると判断した時にホス
トが要求するデータが格納されている前記バッファメモ
リ手段のアドレスを決定するアドレス生成手段と、前記
アドレス決定手段により決定されたアドレスのキャッシ
ュデータを前記バッファメモリ手段からホストに転送す
るデータ転送手段を持つ事を特徴とするディスク記憶装
置を提供する。In order to solve the above-mentioned problems,
The present invention provides buffer memory means for storing data read from a disk medium at the time of read access from a host,
When storing data in the buffer memory from the recording medium, the cache means stores the data in the buffer memory more than the number of data requested by the host, and the cache data read by the cache means when read access is again made from the host. A cache hit determining means for determining whether or not the data requested by the host is included, and storing the data requested by the host when the cache hit determining means determines that the requested data of the host is included in the buffer memory. An address generating means for determining an address of said buffer memory means, and a data transfer means for transferring cache data of the address determined by said address determining means from said buffer memory means to a host. A storage device is provided.
【0041】[0041]
【発明の実施の形態】本発明のリードキャッシュ方式を
搭載したHDCの実施例1を図1を用いて以下に示す。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Embodiment 1 of an HDC equipped with a read cache system according to the present invention will be described below with reference to FIG.
【0042】図1の各部の働きを以下に示す。The operation of each part in FIG. 1 is described below.
【0043】HBI100(Host Bus Interface)はホ
ストとコマンド、パラメータ、データの送受信を担当す
る回路である。The HBI 100 (Host Bus Interface) is a circuit for transmitting and receiving commands, parameters, and data to and from the host.
【0044】DF101(Disk Formatter)はディスク
媒体とのデータの読み込み及び書込み制御を行う回路で
ある。The DF101 (Disk Formatter) is a circuit for controlling the reading and writing of data from and to a disk medium.
【0045】BM102はバッファメモリの制御を行う
回路である。The BM 102 is a circuit for controlling the buffer memory.
【0046】MPU I/F103はMPUとHDCの
インタフェース回路である。The MPU I / F 103 is an interface circuit between the MPU and the HDC.
【0047】リードキャッシュ制御部104はリードキ
ャッシュの制御を行う回路である。ホストアドレスラッ
チ部105はホストがリードコマンドを発行した時の論
理アドレス(LBA)を保持する回路である。The read cache control unit 104 is a circuit for controlling the read cache. The host address latch unit 105 is a circuit that holds a logical address (LBA) when the host issues a read command.
【0048】ヒット判定部106はホストがリードコマ
ンドで要求するデータがバッファメモリ上のキャッシュ
データに格納してあるかどうかを判定する回路である。The hit judging unit 106 is a circuit for judging whether the data requested by the host by the read command is stored in the cache data on the buffer memory.
【0049】キャッシュデータテーブル107はバッフ
ァメモリ上に格納してあるキャッシュデータの情報を保
持するテーブルである。The cache data table 107 is a table for holding information on cache data stored in the buffer memory.
【0050】Buffer Sector Counter108はバッファ
メモリのセグメントに格納してあるセクタ数のカウント
を行う回路である。The Buffer Sector Counter 108 is a circuit for counting the number of sectors stored in a segment of the buffer memory.
【0051】データ転送制御部109はバッファメモリ
とのデータ転送の制御を行う回路である。The data transfer control unit 109 is a circuit for controlling data transfer with the buffer memory.
【0052】バッファアドレス生成部110はバッファ
メモリへ出力するアドレスの生成を行う回路である。The buffer address generator 110 is a circuit for generating an address to be output to the buffer memory.
【0053】バッファ制御部111はバッファメモリへ
出力するコマンドの生成を行う回路である。The buffer controller 111 is a circuit for generating a command to be output to the buffer memory.
【0054】バッファメモリ112はホストからディス
ク媒体もしくはディスク媒体からホストへ転送するデー
タを一旦格納する領域である。The buffer memory 112 is an area for temporarily storing data to be transferred from the host to the disk medium or from the disk medium to the host.
【0055】又、キャッシュデータテーブル107は図
2に示すよう構成されている。図2の各部の働きを以下
に示す。The cache data table 107 is configured as shown in FIG. The function of each part in FIG. 2 is described below.
【0056】LBA n200はキャッシュデータの論理ア
ドレスである。ホストがHDCにコマンドを発行する時
に送付するアドレスに対応する。LBA n200 is a logical address of cache data. This corresponds to the address sent when the host issues a command to the HDC.
【0057】Segment Start Address n201はキャッ
シュデータがに格納してあるバッファメモリの先頭アド
レスである。The segment start address n201 is the start address of the buffer memory in which the cache data is stored.
【0058】Segment Sector Count n202はSegment
Start Address nから格納してあるキャッシュデータの
セクタ数である。Segment Sector Count n 202 is a segment
This is the number of sectors of cache data stored from Start Address n.
【0059】ホストからリード命令を受け取った時の動
作を図1を用いて説明する。HDCはリードキャッシュ
制御部104を持ち、そのコマンドがキャッシュにヒッ
トするか否かの判定をヒット判定部106で行う。判定
をする為、BMはHBIが受け取ったホストのデータ要
求アドレスをホストアドレスラッチ部105に格納す
る。判定を行う時に使用するキャッシュデータテーブル
104は図2に示すようにホストが示すキャッシュデー
タの論理アドレスであるLBA、キャッシュデータがバッ
ファ上に格納してある先頭アドレスであるSegment Star
t Address、キャッシュデータのセクタ数を示すSegment
Sector Countを基本単位としたエレメントで構成し、
これをセグメント数分だけ持つテーブルである。ホスト
がコマンドで要求するデータのアドレスをRSA、リード
セクタ数をRN、とした場合、・LBA n <= RSA・RSA+RN
<= LBA n + Segment Sector Count nの2条件が共に成
り立つ場合にキャッシュにヒットしたと判定する。又、
条件が成り立たなかった場合、nの値を順次繰り上げ、
各エレメントにおいて上記の判定を繰り返す。The operation when a read command is received from the host will be described with reference to FIG. The HDC has a read cache control unit 104, and a hit determination unit 106 determines whether the command hits the cache. To make the determination, the BM stores the data request address of the host received by the HBI in the host address latch unit 105. As shown in FIG. 2, the cache data table 104 used when making the determination is an LBA which is a logical address of the cache data indicated by the host, and a Segment Star which is a head address where the cache data is stored in the buffer.
t Address, Segment indicating the number of cache data sectors
Consists of elements with Sector Count as the basic unit,
This is a table having this for the number of segments. If the address of the data requested by the host is RSA and the number of read sectors is RN, LBA n ≤ RSA RSA + RN
<= LBA n + Segment Sector Count n If both conditions are satisfied, it is determined that a cache hit has occurred. or,
If the condition is not satisfied, the value of n is incremented sequentially,
The above determination is repeated for each element.
【0060】キャッシュにヒットした場合にはエレメン
トのSegment Start Address n からホストに転送するデ
ータの格納してあるバッファメモリのアドレスを算出
し、Host Transfer Pointer Addressに設定する。更に
ホストが要求するセクタ数をBuffer Sector Counter1
08にセットしてバッファメモリ内のキャッシュデータ
をホストに転送する。When a hit occurs in the cache, the address of the buffer memory storing the data to be transferred to the host is calculated from the Segment Start Address n of the element, and is set as the Host Transfer Pointer Address. In addition, the number of sectors requested by the host is set to Buffer Sector Counter1.
08 to transfer the cache data in the buffer memory to the host.
【0061】キャッシュデータテーブル107を全て検
索してキャッシュヒットしなかった場合、HDCはMP
Uに割り込みを出してリードコマンドが発行された事を
MPUに知らせる。リードコマンドが発行された事を認
識したMPUは、ホストがリードコマンドで要求するデ
ータ数+キャッシュデータをバッファメモリに転送する
ようにHDCに設定する。HDCはホストがリードコマ
ンドで要求するデータ数+キャッシュデータ数をディス
ク媒体、ヘッド、R/Wチャネルを経由してバッファメ
モリに書き込む。又、この時BM102はHBI100
が受け取ったホストのデータ要求アドレスをホストアド
レスラッチ部105に格納する。バッファメモリに格納
したデータの内、ホストがリードコマンドで要求するデ
ータ数分のみをホストに転送し、コマンドを完了する。
ホストへのデータ転送と連動し、ホストアドレスラッチ
部105に格納したアドレスも加算する。そして、この
コマンドが完了した時点のHost Transfer Pointer Addr
ess、Buffer Sector Counter、及びホストアドレスラッ
チ部105の値がそれぞれキャッシュデータテーブルの
キャッシュデータ格納先頭アドレス(Segment Start Ad
dress)、キャッシュデータのセクタ数(Segment Secto
r Count)及びホストが示すキャッシュデータの論理ア
ドレス(LBA)になる。そして、これらをキャッシュデ
ータテーブルのエレメントに記録する。記録する際に上
書きするエレメントの選択は優先度の最も低いエレメン
トに行う。優先度の設定はアクセス頻度又は格納した時
間順でもよい。If all cache data tables 107 are searched and there is no cache hit, HDC
An interrupt is issued to U to notify the MPU that a read command has been issued. The MPU that has recognized that the read command has been issued sets the HDC so that the host transfers the number of data requested by the read command + cache data to the buffer memory. The HDC writes the number of data requested by the host by the read command + the number of cache data to the buffer memory via the disk medium, the head, and the R / W channel. At this time, the BM 102 is connected to the HBI 100
The received data request address of the host is stored in the host address latch unit 105. Of the data stored in the buffer memory, only the number of data requested by the host with the read command is transferred to the host, and the command is completed.
In conjunction with the data transfer to the host, the address stored in the host address latch unit 105 is also added. And the Host Transfer Pointer Addr at the time this command is completed
The values of the ess, Buffer Sector Counter, and host address latch unit 105 are respectively the cache data storage start address (Segment Start Ad
dress), the number of sectors of cache data (Segment Secto
r Count) and the logical address (LBA) of the cache data indicated by the host. Then, these are recorded in the element of the cache data table. The element to be overwritten when recording is selected for the element with the lowest priority. The priority may be set in the order of access frequency or stored time.
【0062】実施例2として、ホストからのライトコマ
ンドによってバッファメモリに格納したデータをキャッ
シュデータテーブル107に記録してもよい。これによ
りホストがライトコマンドによって書き込んだデータを
直ぐに読み出すような場合、高速に処理する事が可能で
ある。As a second embodiment, data stored in the buffer memory by a write command from the host may be recorded in the cache data table 107. Thus, in the case where the data written by the host by the write command is immediately read, high-speed processing can be performed.
【0063】実施例3として、以下のようにキャッシュ
ヒット判定するようにしてもよい。・LBA n <= RSA・R
SA+RN >= LBA n + Segment Sector Count nこの時HD
Cはホストがリードコマンドで要求するデータの一部に
該当するデータをバッファメモリ内から転送し、残りの
データを転送する為にMPUに割り込みをあげる。割り
込みを受け取ったMPUはホストのリードコマンドを認
識し、キャッシュデータで不足した分+キャッシュデー
タを転送するようにHDCに指示する。指示を受けたH
DCはディスク媒体、ヘッド、R/Wチャネルを経由し
てバッファメモリに書き込む。バッファメモリに格納し
たデータの内、キャッシュデータで不足した分のみをホ
ストに転送し、コマンドを完了する。そして、このコマ
ンドが完了した時点のHost Transfer Pointer Addres
s、Buffer SectorCounter、及びホストアドレスラッチ
部105の値をそれぞれキャッシュデータ格納先頭アド
レス(Segment Start Address)、キャッシュデータの
セクタ数(Segment Sector Count)及びホストが示すキ
ャッシュデータの論理アドレス(LBA)としてキャッシ
ュデータテーブルに記録する。実施例1と同様に記録す
る際に上書きするエレメントの選択は優先度の最も低い
エレメントに行う。As a third embodiment, a cache hit determination may be made as follows.・ LBA n ≤ RSA ・ R
SA + RN> = LBA n + Segment Sector Count n HD
C transfers data corresponding to a part of the data requested by the host by the read command from the buffer memory, and interrupts the MPU to transfer the remaining data. Upon receiving the interrupt, the MPU recognizes the host read command and instructs the HDC to transfer the cache data shortage plus the cache data. H received the instruction
The DC writes to the buffer memory via the disk medium, the head, and the R / W channel. Of the data stored in the buffer memory, only the cache data shortage is transferred to the host, and the command is completed. Then, when this command is completed, the Host Transfer Pointer Addres
s, Buffer SectorCounter, and the value of the host address latch unit 105 are cached as the cache data storage start address (Segment Start Address), the number of sectors of the cache data (Segment Sector Count), and the logical address (LBA) of the cache data indicated by the host, respectively. Record in data table. As in the first embodiment, the selection of the element to be overwritten when recording is performed on the element having the lowest priority.
【0064】実施例4として、キャッシュデータテーブ
ルをBM102のリードキャッシュ制御部104に持つ
のではなく、バッファメモリ上に格納してもよい。これ
により、バッファメモリをセグメントに分割する数の増
加により、キャッシュデータテーブルのエレメント数が
増加した場合でも、HDCの回路規模の増大を招く事が
ない。As a fourth embodiment, the cache data table may be stored in the buffer memory instead of being provided in the read cache control unit 104 of the BM 102. As a result, even if the number of elements in the cache data table increases due to the increase in the number of divisions of the buffer memory into segments, the circuit size of the HDC does not increase.
【0065】以上により、セグメント管理したバッファ
メモリのキャッシュ制御が可能である。キャッシュヒッ
トする確率はディスク記憶装置の容量をDs、バッファ
メモリの容量をBsとした場合、バッファメモリをセグ
メント管理した場合とそうでない場合も共にBs/Ds
となる。しかし、例えばホストがリードコマンドでバッ
ファメモリの容量Bs分以上のアドレス空間を空けたア
ドレス上のデータの要求を繰り返すようなランダムなア
クセスをした場合、セグメント管理を行わない場合に比
べ、バッファメモリをN個のセグメントで管理を行った
場合にはN倍のキャッシュヒット率となる。As described above, it is possible to control the cache of the buffer memory managed by the segment. The probability of a cache hit is Bs / Ds when the capacity of the disk storage device is Ds, the capacity of the buffer memory is Bs, and when the buffer memory is segment-managed and not.
Becomes However, for example, when the host makes a random access such as repeating a request for data on an address having an address space equal to or larger than the capacity Bs of the buffer memory by a read command, the buffer memory becomes smaller than when segment management is not performed. When management is performed with N segments, the cache hit rate becomes N times as large.
【0066】上述した本発明の実施例は、本発明の原理
を説明するものであって、本発明の技術的範囲を制限す
るものではない。又、当業者にとっては明らかなよう
に、上述した実施例に様々な変形、変更を加える事がで
きる。The embodiments of the present invention described above explain the principle of the present invention and do not limit the technical scope of the present invention. As will be apparent to those skilled in the art, various modifications and changes can be made to the above-described embodiment.
【0067】[0067]
【発明の効果】本発明により、ホストが送ったリードコ
マンドをディスク記憶装置がリードキャッシュ処理する
場合において、これらに関わる動作を専用のハードウェ
アで実現する事でコマンド処理時間の短縮し、且つリー
ドコマンドがキャッシュデータにヒットする確率を向上
させる事が実現できる。According to the present invention, when a disk storage device performs read cache processing of a read command sent by a host, the operation related to these is realized by dedicated hardware, thereby shortening the command processing time and reducing the read time. It is possible to improve the probability that the command hits the cache data.
【図1】HDCの実施例のブロック図である。FIG. 1 is a block diagram of an embodiment of an HDC.
【図2】キャッシュデータテーブルの構成図である。FIG. 2 is a configuration diagram of a cache data table.
【図3】ディスク記憶装置のブロック図である。FIG. 3 is a block diagram of a disk storage device.
【図4】HDCの従来例ののブロック図である。FIG. 4 is a block diagram of a conventional example of an HDC.
【図5】アドレス生成部のブロック図である。FIG. 5 is a block diagram of an address generation unit.
100…HBI(Host Bus Interface)、101…DF
(Disk Formatter)、102…BM、103…MPU
I/F、104…リードキャッシュ制御部、105…ホ
ストアドレスラッチ部、106…ヒット判定部、107
…キャッシュデータテーブル、108…Buffer Sector
Counter、109…データ転送制御部、110…バッフ
ァアドレス生成部、111…バッファ制御部、112…
バッファメモリ、200…LBA n、201…Segment Sta
rt Address n、202…Segment Sector Count n。100: HBI (Host Bus Interface), 101: DF
(Disk Formatter), 102 ... BM, 103 ... MPU
I / F, 104: read cache control unit, 105: host address latch unit, 106: hit determination unit, 107
… Cache data table, 108… Buffer Sector
Counter, 109: data transfer control unit, 110: buffer address generation unit, 111: buffer control unit, 112 ...
Buffer memory, 200 ... LBA n, 201 ... Segment Sta
rt Address n, 202... Segment Sector Count n.
フロントページの続き (72)発明者 小川 仁 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 山本 克己 東京都小平市上水本町五丁目20番1号 株 式会社日立製作所半導体グループ内 Fターム(参考) 5B005 JJ13 MM11 NN22 5B065 BA01 CC08 CE14 CH02 CH05Continued on the front page (72) Inventor Jin Ogawa 1099 Ozenji Temple, Aso-ku, Kawasaki City, Kanagawa Prefecture Inside System Development Laboratory, Hitachi, Ltd. 5B005 JJ13 MM11 NN22 5B065 BA01 CC08 CE14 CH02 CH05
Claims (8)
DC(Hard Disk Controller)において、ホストからのリ
ードアクセス時にディスク媒体から読出したデータを格
納するバッファメモリ手段と、記録媒体からバッファメ
モリにデータを格納する際にホストが要求するデータ数
以上にバッファメモリにデータを格納するキャッシュ手
段と、再びホストからリードアクセスがあった場合に前
記キャッシュ手段によって読み出したキャッシュデータ
にホストが要求するデータが含まれているか否かを判定
するキャッシュヒット判定手段と、前記キャッシュヒッ
ト判定手段でホストの要求データがバッファメモリに含
まれていると判断した時にホストが要求するデータが格
納されている前記バッファメモリ手段のアドレスを決定
するアドレス生成手段と、前記アドレス決定手段により
決定されたアドレスのキャッシュデータを前記バッファ
メモリ手段からホストに転送するデータ転送手段を持つ
事を特徴とするディスク記憶装置。1. A disk storage device control LSI H
In a DC (Hard Disk Controller), buffer memory means for storing data read from a disk medium at the time of read access from the host, and buffer memory for storing data from the recording medium to the buffer memory in an amount equal to or more than the number of data requested by the host. A cache hit determining means for determining whether or not cache data read by the cache means includes data requested by the host when there is read access from the host again; and Address generation means for determining the address of the buffer memory means in which the data requested by the host is stored when the cache hit determination means determines that the data requested by the host is included in the buffer memory; and The determined address A disk storage device having data transfer means for transferring flash data from the buffer memory means to the host.
トから要求のあったデータの記録媒体上のアドレスに連
続して格納してあるデータを先読みする手段を持つディ
スク記憶装置。2. A disk storage device according to claim 1, wherein said cache means has means for prefetching data continuously stored at an address on a recording medium of data requested by a host.
バッファメモリ空間をセグメントと呼ばれる複数の空間
に分割管理する手段を持つ事を特徴とするディスク記憶
装置。3. The buffer memory according to claim 1,
A disk storage device having means for dividing and managing a buffer memory space into a plurality of spaces called segments.
して、バッファメモリ手段のセグメント毎にキャッシュ
ヒット判定をする為に専用のテーブル手段を持つ事を特
徴とするディスク記憶装置。4. A disk storage device according to claim 1, further comprising a dedicated table means for determining a cache hit for each segment of the buffer memory means as the cache hit determination means.
して、ホストが要求するデータがキャッシュデータに全
て格納されている時にキャッシュにヒットしたと判定す
る事を特徴とするディスク記憶装置。5. The disk storage device according to claim 1, wherein the cache hit determination means determines that a cache hit has occurred when all data requested by the host is stored in the cache data.
して、ホストが要求するデータがキャッシュデータに一
部でも格納されている時にキャッシュにヒットしたと判
定し、残りの足りないデータをディスク媒体から読み出
す事を特徴とするディスク記憶装置。6. The cache hit determining means according to claim 1, wherein when the data requested by the host is partially stored in the cache data, it is determined that the cache hit has occurred, and the remaining missing data is read from the disk medium. Disk storage device characterized by the following.
段をHDC内に専用のハードウェアとして持つ事を特徴
とするディスク記憶装置。7. A disk storage device according to claim 4, wherein said table means is provided as dedicated hardware in the HDC.
段を前記バッファメモリ手段内に持つ事を特徴とするデ
ィスク記憶装置。8. A disk storage device according to claim 4, wherein said table means is provided in said buffer memory means.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP31634599A JP2001134488A (en) | 1999-11-08 | 1999-11-08 | Cache control method for disk storage device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP31634599A JP2001134488A (en) | 1999-11-08 | 1999-11-08 | Cache control method for disk storage device |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2001134488A true JP2001134488A (en) | 2001-05-18 |
Family
ID=18076088
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP31634599A Pending JP2001134488A (en) | 1999-11-08 | 1999-11-08 | Cache control method for disk storage device |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2001134488A (en) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006004387A (en) * | 2004-06-21 | 2006-01-05 | Ricoh Co Ltd | Information processing apparatus and information processing method |
| JP2011022926A (en) * | 2009-07-17 | 2011-02-03 | Toshiba Corp | Data storage device and cache control method |
| JP2016018273A (en) * | 2014-07-04 | 2016-02-01 | 株式会社アクセル | Read transfer control method and auxiliary storage device controller |
-
1999
- 1999-11-08 JP JP31634599A patent/JP2001134488A/en active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006004387A (en) * | 2004-06-21 | 2006-01-05 | Ricoh Co Ltd | Information processing apparatus and information processing method |
| JP2011022926A (en) * | 2009-07-17 | 2011-02-03 | Toshiba Corp | Data storage device and cache control method |
| JP2016018273A (en) * | 2014-07-04 | 2016-02-01 | 株式会社アクセル | Read transfer control method and auxiliary storage device controller |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4163461B2 (en) | Cache buffer control method and control apparatus | |
| CN100378686C (en) | Disk device and control method for cache | |
| US6842801B2 (en) | System and method of implementing a buffer memory and hard disk drive write controller | |
| JP3568110B2 (en) | Cache memory control method, computer system, hard disk drive, and hard disk controller | |
| WO1999015954A1 (en) | Large block allocation for disk based file systems | |
| US20100079904A1 (en) | Storage control method, storage control unit and storage apparatus | |
| JP2004171411A (en) | Data storage device and buffer memory management method | |
| JPH06289999A (en) | Disk control system | |
| US20100088466A1 (en) | Storage device, storage control device, and control method | |
| US6523086B1 (en) | Method for improving performance of read cache of magnetic disk drive | |
| US7451261B2 (en) | Data storage device and control method with buffer control thereof | |
| JP2001134488A (en) | Cache control method for disk storage device | |
| CN116561056B (en) | System on chip | |
| JP3969809B2 (en) | Data buffer management method in storage device | |
| JP2003150445A (en) | Computer system having external storage device | |
| US6957300B2 (en) | Reducing delay of command completion due to overlap condition | |
| JP3166827B2 (en) | External storage device and cache memory control method | |
| US20060020751A1 (en) | Medium storage device, cache segment switching method for medium storage device, and medium storage system | |
| JPH10171713A (en) | Disk storage device and cache control method applied to the device | |
| KR100385238B1 (en) | Method for realizing segment cash buffer for group adaptation type | |
| JP2009087460A (en) | Command processing method of disk storage device | |
| JPH11232037A (en) | Magnetic disk device with disk cache write function | |
| JP2010044820A (en) | Recorder and recording method | |
| CN117112483A (en) | Method for judging completion of write transmission transaction | |
| JPH11265262A (en) | High-speed write cache disk unit |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20041224 |