JPH08115169A - Disk controller - Google Patents

Disk controller

Info

Publication number
JPH08115169A
JPH08115169A JP6249080A JP24908094A JPH08115169A JP H08115169 A JPH08115169 A JP H08115169A JP 6249080 A JP6249080 A JP 6249080A JP 24908094 A JP24908094 A JP 24908094A JP H08115169 A JPH08115169 A JP H08115169A
Authority
JP
Japan
Prior art keywords
dirty data
disk
cylinder group
cache
dirty
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
Application number
JP6249080A
Other languages
Japanese (ja)
Inventor
Tetsuhiko Fujii
哲彦 藤井
Akira Yamamoto
山本  彰
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP6249080A priority Critical patent/JPH08115169A/en
Publication of JPH08115169A publication Critical patent/JPH08115169A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE: To execute efficient destaging processing by selecting continuous areas to be destaged while referring to the quantity of dirty data in each continuous data at the time of destaging dirty data stored in a cache in the continuous areas. CONSTITUTION: In the case of executing the destaging processing 7401 of dirty data stored in a cache memory 5700 in continuous areas, a processor 5800 selects a cylinder group 5550 to be destaged 7402. In respect to the selection, the quantity of dirty data in each cylinder group 5550 included in dirty segment managing information 6100 is referred to 8200 and the cylinder group 5550 having the maximum dirty data quantity is selected. Thereby when the memory 5700 is filled with dirty data, the dirty data in the memory 5700 can be quickly swept off to a disk.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明はディスク制御装置に係
り、特にライトバック制御を行なうキャッシュ付きのデ
ィスク制御装置であって、キャッシュ上にディスク未反
映のダーティデータが多量にたまった時に早期にダーテ
ィデータをディスクに掃き出し、キャッシュ上に空き領
域を作るのに有効な、ディスク制御装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a disk control device, and more particularly to a disk control device with a cache for performing write-back control, in which a dirty data which is not reflected in the disk is accumulated in the cache at an early stage. The present invention relates to a disk control device which is effective for sweeping data to a disk and creating a free area on a cache.

【0002】[0002]

【従来の技術】ディスク制御装置における、ヘッドのス
ケジューリング方法には、要求をディスクの半径方向に
順にサービスするSCANアルゴリズムや、要求を到着順に
サービスするFCFSアルゴリズム(あるいはFIFOアルゴリ
ズム)、シーク時間が最短となる要求を順にサービスす
るSSTFアルゴリズムなどが知られている。このようなデ
ィスク制御装置におけるヘッドのスケジューリング方法
は、例えば文献[Teorey]に述べられている。
2. Description of the Related Art A head scheduling method in a disk control device is such that a SCAN algorithm for sequentially servicing requests in the disk radial direction, an FCFS algorithm (or FIFO algorithm) for servicing requests in the order of arrival, and a shortest seek time are required. There are known SSTF algorithms and the like that sequentially serve the following requests. A head scheduling method in such a disk control device is described in, for example, document [Teorey].

【0003】ディスク制御装置における、ヘッドのスケ
ジューリング方法の優劣は、ディスク装置において、シ
ーク距離とシーク時間がどのような関係にあるかに関係
する。ディスク装置のシーク距離とシーク時間の関係に
ついては、例えば文献[Hennessy]に述べられている。
The superiority or inferiority of the head scheduling method in the disk control device is related to the relationship between the seek distance and the seek time in the disk device. The relationship between seek distance and seek time of the disk device is described in, for example, document [Hennessy].

【0004】ディスクサブシステムの応答性能を向上さ
せるための技術としてディスクキャッシュが知られてい
る。更に、ライトアクセス時にライトデータをキャッシ
ュメモリに書き込むだけでI/Oを完了し、キャッシュメ
モリ上のディスク未反映のデータ(一般的にダーティデ
ータと呼ぶ)は、ライトアクセスとは非同期にディスク
へライトするライトバック制御が知られている。
A disk cache is known as a technique for improving the response performance of the disk subsystem. Furthermore, I / O is completed by simply writing the write data to the cache memory at the time of write access, and the data not reflected on the cache memory (generally called dirty data) is written to the disk asynchronously with the write access. Write back control is known.

【0005】ライトバック制御を行なうキャッシュ付き
のディスクサブシステムにおいて、キャッシュメモリ上
のダーティデータをディスクに掃き出す方法が、特開平
3−172946号公報に述べられている。当公報記載
の方法では、最もアクセス時刻が古い即ちLRU状態のダ
ーティデータをディスク掃き出しの対象としている。ま
た別法として、FCFSアルゴリズムによる方法、トラック
のキャッシュ内滞在時間による方法についても言及され
ている。
Japanese Laid-Open Patent Publication No. 3-172946 discloses a method of sweeping dirty data on a cache memory to a disk in a disk subsystem with a cache for performing write-back control. In the method described in this publication, dirty data with the oldest access time, that is, in the LRU state, is the target of disk sweep. As an alternative method, the method based on the FCFS algorithm and the method based on the stay time in the cache of the truck are also mentioned.

【0006】[Teorey]T.J.Teorey and T.B.Pinkerton:A
Comparative Analysis of Disk Scheduling Policies,
Communications of the ACM,March 1972,Vol.15,Number
3,pp.177-184 [Hennessy]ヘネシー・アンド・パターソン著:コンピュ
ータ・アーキテクチャ、日経BP社刊,p.582
[Teorey] TJTeorey and TBPinkerton: A
Comparative Analysis of Disk Scheduling Policies,
Communications of the ACM, March 1972, Vol.15, Number
3, pp.177-184 [Hennessy] Hennessy and Patterson: Computer Architecture, Nikkei BP, p.582

【0007】[0007]

【発明が解決しようとする課題】ライトバック制御を効
率的に実行する一つの方法として、多くのダーティデー
タを含むシリンダのスケジュールを優先的に行なうこと
が考えられる。しかし、従来のライトバック制御を行な
うディスク制御装置におけるヘッドのスケジューリング
方法では、ダーティデータがディスクのどのシリンダに
多く存在するかまでは考慮されていなかった。
As one method of efficiently executing the write-back control, it is conceivable to preferentially schedule a cylinder containing a lot of dirty data. However, in the conventional head scheduling method in the disk controller for performing the write-back control, it has not been taken into consideration in which cylinder of the disk the dirty data exists.

【0008】本発明の目的は、ライトバック制御を行な
うキャッシュ付きのディスク制御装置であって、ダーテ
ィデータのシリンダ上の分布を管理しておき、ダーティ
データが多く集まっているシリンダを優先的にサービス
することにより、より少ないディスクのアームの動作
で、より多くのダーティデータをデステージすることに
より、効率の良いデステージ処理位が可能なディスク制
御装置を提供することである。
An object of the present invention is a disk control device with a cache for performing write-back control, in which the distribution of dirty data on cylinders is managed, and cylinders with a large amount of dirty data are given priority for service. By doing so, it is possible to provide a disk control device capable of performing an efficient destage processing position by destageing more dirty data with a smaller number of disk arm operations.

【0009】[0009]

【課題を解決するための手段】この発明の目的は、要求
のディスク上の分布を管理するテーブルを設けることに
よって達成される。
The object of the invention is achieved by providing a table which manages the on-disk distribution of requests.

【0010】より具体的には、キャッシュメモリ上のダ
ーティデータの量を、1つ以上の連続したシリンダ群
(シリンダグループ)毎に管理するテーブルを設けるこ
とによって達成される。
More specifically, this is achieved by providing a table for managing the amount of dirty data on the cache memory for each one or more consecutive cylinder groups (cylinder groups).

【0011】[0011]

【作用】ディスクコントローラーは、ディスクの1つ以
上の連続するシリンダ(シリンダグループ)毎のダーテ
ィデータの量をテーブルにより管理する。このテーブル
の更新は具体的には次のように行われる。ディスクコン
トローラーはホストコンピューターからのライトコマン
ドの処理時に、ダーティデータ量が増加した場合に、対
応するシリンダグループのダーティデータ量を加算す
る。また、ディスクコントローラーはデステージ処理時
に、デステージ対象としたシリンダグループのダーティ
データ量を減算する。デステージ処理時に、各シリンダ
グループのダーティデータ量を参照して、デステージ対
象とするシリンダグループを選択し、このシリンダグル
ープに対してデステージ処理を行なう。以上により、本
発明の目的を達成することが可能になった。
The disk controller manages the amount of dirty data for each of one or more continuous cylinders (cylinder groups) of the disk using a table. Specifically, this table is updated as follows. The disk controller adds the dirty data amount of the corresponding cylinder group when the dirty data amount increases during the processing of the write command from the host computer. Further, the disk controller subtracts the dirty data amount of the cylinder group targeted for destage during the destage processing. At the time of destage processing, the dirty data amount of each cylinder group is referred to, the cylinder group to be destaged is selected, and the destage processing is performed on this cylinder group. As described above, the object of the present invention can be achieved.

【0012】[0012]

【実施例】【Example】

(実施例1)本実施例は、デステージ時に、ダーティデ
ータが多く集まっているシリンダのグループを見い出し
て、そのシリンダのグループに属するダーティデータを
優先的にデステージすることにより、高性能なデステー
ジ処理を実現するものである。
(Embodiment 1) In this embodiment, at the time of destaging, a group of cylinders in which a large amount of dirty data is collected is found, and the dirty data belonging to the group of cylinders is preferentially destaged, so that a high performance It realizes stage processing.

【0013】次に、図1を用いて本発明の構成要素とそ
の概要を説明する。図1中、5100はホストコンピュ
ーター、5300はディスクコントローラー、5500
はディスクドライブである。5200は、ホストコンピ
ューター5100とディスクコントローラー5300を
接続するI/Oバス、5400はディスクアクセスパス
である。ディスクコントローラー5300はディスクド
ライブ5500の記憶領域を、合計L個の1つ以上の連
続したシリンダ群(シリンダグループ)5550に分割
して管理する。
Next, the components of the present invention and their outline will be described with reference to FIG. In FIG. 1, 5100 is a host computer, 5300 is a disk controller, and 5500.
Is a disk drive. Reference numeral 5200 is an I / O bus connecting the host computer 5100 and the disk controller 5300, and reference numeral 5400 is a disk access path. The disk controller 5300 manages the storage area of the disk drive 5500 by dividing it into a total of L one or more continuous cylinder groups (cylinder groups) 5550.

【0014】5800はディスクコントローラー530
0内のプロセッサ、5600は制御メモリ、5700は
キャッシュメモリである。制御メモリ5600上には、
各シリンダグループ5550のダーティデータを管理す
るためのダーティセグメント管理情報6100とディス
クドライブ5500の最新のシーク先アドレス6400
が含まれる。プロセッサ5800はホストコンピュータ
ー5100からのリードライトコマンドを処理するコマ
ンド処理プログラム7101、キャッシュメモリ570
0上のダーティデータをディスクへ掃き出すデステージ
処理7401を実行する。デステージ処理7401はデ
ステージ対象とするシリンダグループ5550を選択す
るステップ7402と、選択したシリンダグループ55
50に対するデステージ処理ステップ7403を含む。
ダーティセグメント管理情報6100は、シリンダグル
ープ5550毎のダーティデータ量を含む。
5800 is a disk controller 530
A processor in 0, 5600 is a control memory, and 5700 is a cache memory. On the control memory 5600,
Dirty segment management information 6100 for managing the dirty data of each cylinder group 5550 and the latest seek destination address 6400 of the disk drive 5500.
Is included. The processor 5800 is a command processing program 7101 for processing a read / write command from the host computer 5100, a cache memory 570.
The destage processing 7401 for sweeping dirty data on 0 to the disk is executed. The destaging process 7401 includes step 7402 of selecting a cylinder group 5550 to be destaged, and the selected cylinder group 55.
A destage processing step 7403 for 50 is included.
The dirty segment management information 6100 includes the amount of dirty data for each cylinder group 5550.

【0015】以下、本発明の概要を説明する。コマンド
処理7101はライトコマンド受領時に、コマンドの内
容に従って、対応するシリンダグループ5550のダー
ティデータ量を更新する(8000)。デステージ対象
のシリンダグループ5550を選択するステップ740
2は、ダーティセグメント管理情報6100が含むシリ
ンダグループ5550毎のダーティデータ量を参照(8
200)して、ダーティデータ量が最大のシリンダグル
ープ5550を選択する。シリンダグループ5550に
対するデステージ処理を行なうステップ7403はステ
ップ7402で選択されたシリンダグループ5550の
デステージ処理(8400)を行ない、ダーティセグメ
ント管理情報6100中の当該シリンダグループ555
0のダーティデータ量を変更(8300)する。
The outline of the present invention will be described below. Upon receiving the write command, the command processing 7101 updates the dirty data amount of the corresponding cylinder group 5550 according to the content of the command (8000). Step 740: Select cylinder group 5550 for destage
2 refers to the dirty data amount for each cylinder group 5550 included in the dirty segment management information 6100 (8
200) and selects the cylinder group 5550 with the largest amount of dirty data. In step 7403 of performing the destage process for the cylinder group 5550, the destage process (8400) of the cylinder group 5550 selected in step 7402 is performed, and the cylinder group 555 in the dirty segment management information 6100.
The dirty data amount of 0 is changed (8300).

【0016】これにより、ダーティデータのシリンダ上
の分布を考慮したデステージ処理を行なうことが可能と
なる。
As a result, it becomes possible to perform the destage process in consideration of the distribution of dirty data on the cylinder.

【0017】以下、図2〜図7、図9、図10〜図13
を用いて、本実施例の詳細を説明する。
Hereinafter, FIGS. 2 to 7, FIG. 9 and FIGS.
The details of this embodiment will be described with reference to FIG.

【0018】簡単のため、ディスクコントローラーに接
続されるディスクドライブは1台として説明するが、本
発明はディスクドライブ台数は何台でも適用可能であ
る。
For simplicity, the description will be made assuming that one disk drive is connected to the disk controller, but the present invention can be applied to any number of disk drives.

【0019】本実施例では、キャッシュメモリを固定長
の領域に分割して管理する。この領域をキャッシュセグ
メントと呼ぶことにする。ディスクドライブの記憶領域
は、1次元のアドレス空間とみなすことができる。ディ
スクドライブの記憶領域をキャッシュセグメントと同じ
長さの領域に分割して取扱うとき、ディスクドライブ上
のこの領域をディスクセグメントと呼ぶことにする。
In this embodiment, the cache memory is divided into fixed length areas for management. This area is called a cache segment. The storage area of the disk drive can be regarded as a one-dimensional address space. When the storage area of the disk drive is divided into areas having the same length as the cache segment and handled, this area on the disk drive is called a disk segment.

【0020】本実施例中で記号Lをシリンダグループの
総数を表すものとして使用する。
In this embodiment, the symbol L is used to represent the total number of cylinder groups.

【0021】図2は、制御メモリ5600上の制御テー
ブルの構成である。6000はデータのヒットミスを判
定するためのヒットミス判定テーブルである。ヒットミ
ス判定テーブル6000の構成を図10に示す。610
0はダーティ状態のキャッシュセグメントを管理するダ
ーティセグメント管理情報である。ダーティセグメント
管理情報6100の構成を図11に示す。6200はク
リーン状態と空き状態のキャッシュセグメントを管理す
るクリーン/空きキャッシュセグメント管理情報であ
る。クリーン/空きキャッシュセグメント管理情報62
00の構成を図12に示す。6300はキャッシュセグ
メントを管理するためのキャッシュ管理テーブルであ
る。キャッシュ管理テーブル6300の構成を図13に
示す。6400は、ディスクドライブ5500の最新の
シーク先アドレスである。最新のシーク先アドレスは、
ディスクコントローラー5300がディスクドライブ5
500に対してシーク動作を伴うコマンドを出す時に、
シーク先のシリンダアドレスを領域6400に書き込む
ことによって管理できる。
FIG. 2 shows the configuration of the control table on the control memory 5600. A hit / miss determination table 6000 is used to determine a data hit / miss. The structure of the hit / miss determination table 6000 is shown in FIG. 610
0 is dirty segment management information for managing the cache segment in the dirty state. The structure of the dirty segment management information 6100 is shown in FIG. 6200 is clean / free cache segment management information for managing cache segments in the clean state and the free state. Clean / empty cache segment management information 62
The configuration of 00 is shown in FIG. 6300 is a cache management table for managing cache segments. The structure of the cache management table 6300 is shown in FIG. 6400 is the latest seek destination address of the disk drive 5500. The latest seek address is
Disk controller 5300 is disk drive 5
When issuing a command with a seek operation to 500,
It can be managed by writing the cylinder address of the seek destination in the area 6400.

【0022】図10はヒットミス判定テーブル6000
の構成を示している。ヒットミス判定テーブル6000
はディスクセグメント毎に1つのエントリを有し、エン
トリにはヒットミス判定フラグ6010とディスクセグ
メントがキャッシュメモリに割り当てられている場合の
キャッシュセグメント番号6020を含む。
FIG. 10 shows a hit / miss judgment table 6000.
Is shown. Hit-miss judgment table 6000
Has one entry for each disk segment, and the entry includes a hit-miss determination flag 6010 and a cache segment number 6020 when the disk segment is assigned to the cache memory.

【0023】図11はダーティセグメント管理情報61
00の構成を示している。ダーティセグメント管理情報
6100は合計L個のシリンダグループ毎に、シリンダ
グループ毎のダーティデータ量6110と、シリンダグ
ループ毎のダーティ状態のキャッシュセグメントのキュ
ーのポインタ6120を含む。
FIG. 11 shows the dirty segment management information 61.
00 configuration is shown. The dirty segment management information 6100 includes a dirty data amount 6110 for each cylinder group and a pointer 6120 for the queue of the dirty cache segment for each cylinder group for each L total of cylinder groups.

【0024】図12はクリーン/空きセグメント管理情
報6200の構成を示している。クリーン/空きセグメ
ント管理情報6200はクリーン状態のキャッシュセグ
メントのキューのポインタ6210と空き状態のキャッ
シュセグメントのキューのポインタ6220から構成さ
れる。
FIG. 12 shows the structure of the clean / free segment management information 6200. The clean / free segment management information 6200 is composed of a pointer 6210 of the queue of the cache segment in the clean state and a pointer 6220 of the queue of the cache segment in the free state.

【0025】図13はキャッシュ管理テーブル6300
の構成を示している。キャッシュ管理テーブル6300
はキャッシュセグメント毎にエントリを持つ。エントリ
はキャッシュセグメントが使用中か否かを示す使用中フ
ラグ6310、ダーティ状態か否かを示すダーティフラ
グ6320、最新参照時刻6330、対応するディスク
セグメントアドレス6340、当該キャッシュセグメン
トのキャッシュメモリアドレス6350、当該キャッシ
ュセグメントがつながれるキュー中の後方向ポインタ6
360を含む。
FIG. 13 shows the cache management table 6300.
Is shown. Cache management table 6300
Has an entry for each cache segment. The entry includes a busy flag 6310 indicating whether the cache segment is in use, a dirty flag 6320 indicating whether it is in a dirty state, a latest reference time 6330, a corresponding disk segment address 6340, a cache memory address 6350 of the cache segment, Backward pointer 6 in the queue to which the cache segment is connected
Including 360.

【0026】次に、ホストコンピューターからのディス
ク装置に対するリードライトコマンドに対するディスク
装置のオペレーションについて説明する。
Next, the operation of the disk device in response to a read / write command from the host computer to the disk device will be described.

【0027】図3はディスクコントローラー5300が
実行するコマンド処理プログラム7101のフローチャ
ートである。コマンド処理プログラムは、ホストコンピ
ューターからのコマンドの到着に引き続いて呼び出され
(ステップ7101)、コマンドがリードかライトかを
判定し(ステップ7102)、ヒットミス判定を行ない
(ステップ7103及びステップ7107)、リード/
ライトの別、ヒット/ミスの別により、リードヒット処
理(ステップ7104)、リードミス処理(ステップ7
109)、ライトヒット処理(7108)、ライトミス
処理(7110)のいずれかを行なったのち、デステー
ジ処理の起動を行ない(ステップ7105)、処理を終
了する(ステップ7106)。
FIG. 3 is a flowchart of the command processing program 7101 executed by the disk controller 5300. The command processing program is called subsequent to the arrival of a command from the host computer (step 7101), determines whether the command is read or write (step 7102), makes a hit-miss determination (step 7103 and step 7107), and reads. /
Read hit processing (step 7104) and read miss processing (step 7) depending on whether write or hit / miss
109), write hit processing (7108), or write miss processing (7110), and then destage processing is started (step 7105) and the processing ends (step 7106).

【0028】ライトヒット処理7108とライトミス処
理7110は、ダーティデータ量が増加した場合に、シ
リンダグループ毎のダーティデータ量6110を更新す
る処理を含む。ライトヒット処理とライトミス処理は図
4、図5でそれぞれ展開する。
The write hit process 7108 and the write miss process 7110 include a process of updating the dirty data amount 6110 for each cylinder group when the dirty data amount increases. The write hit process and the write miss process are developed in FIGS. 4 and 5, respectively.

【0029】リードヒット処理とリードミス処理につい
ては、特に公知のものと変わりはない。
The read hit process and the read miss process are the same as those known in the art.

【0030】図4はライトヒット処理のフローチャート
である。ライトヒット処理は呼び出されると(ステップ
7201)、ヒットしたキャッシュセグメントがクリー
ン状態か(この場合をクリーンヒットと呼ぶ)かダーテ
ィ状態か(この場合をダーティヒットと呼ぶ。もちろん
クリーンヒットではない。)を判定する(ステップ72
02)。クリーンヒットであれば、ダーティデータ量が
増加するので、対応するシリンダグループのダーティデ
ータ量6110をインクリメントし(ステップ720
3)、ライトのクリーンヒット処理(ステップ720
4)を行ない、処理を終了する(ステップ7206)。
クリーンヒットでなければ、ダーティデータ量は変化し
ないので、単にライトのダーティヒット処理を行なって
(ステップ7205)、処理を終了する(ステップ72
06)。
FIG. 4 is a flowchart of the write hit process. When the write hit process is called (step 7201), it is determined whether the hit cache segment is in the clean state (this case is called a clean hit) or the dirty state (this case is called a dirty hit. Of course, it is not a clean hit). Judge (step 72)
02). If it is a clean hit, the dirty data amount increases, so the dirty data amount 6110 of the corresponding cylinder group is incremented (step 720).
3), write clean hit processing (step 720)
4) is performed, and the process ends (step 7206).
If it is not a clean hit, the dirty data amount does not change, so a write dirty hit process is simply performed (step 7205), and the process ends (step 72).
06).

【0031】図5はライトミス処理のフローチャートで
ある。ライトミスの場合には、クリーン状態ないしは空
き状態のキャッシュセグメントを新たに割り当てるの
で、キャッシュメモリ上のダーティデータ量は必ず増加
する。ライトミス処理は呼び出されると(ステップ73
01)、ライトミス処理を行ない(ステップ730
2)、対応するシリンダグループのダーティデータ量6
110をデクリメントし(ステップ7303)、処理を
終了する(ステップ7304)。
FIG. 5 is a flowchart of the write miss process. In the case of a write miss, a cache segment in a clean state or an empty state is newly allocated, so that the amount of dirty data on the cache memory always increases. When the write miss process is called (step 73)
01), write miss processing is performed (step 730).
2), the amount of dirty data for the corresponding cylinder group 6
110 is decremented (step 7303), and the process is ended (step 7304).

【0032】図6は、本実施例におけるデステージ処理
のフローチャートである。デステージ処理は起動される
と(ステップ7401)、デステージ対象のシリンダグ
ループの選択を行ない(ステップ7402)、続いて選
択したシリンダグループに対するデステージ処理を行な
い(ステップ7403)、処理を終了する(ステップ7
404)。ステップ7402とステップ7403の処理
を、図7および図9にそれぞれ展開する。
FIG. 6 is a flowchart of the destage process in this embodiment. When the destaging process is activated (step 7401), the cylinder group to be destaged is selected (step 7402), the destaging process is subsequently performed on the selected cylinder group (step 7403), and the process is terminated (step 7403). Step 7
404). The processes of step 7402 and step 7403 are expanded into FIGS. 7 and 9, respectively.

【0033】図7は、ダーティデータ量が最大のシリン
ダグループを選択する方法を実現するフローチャートで
ある。iはシリンダグループ番号を示すワーク用の変数
である。jはシリンダグループ番号が1からjまでの中
でダーティデータ量が最大のシリンダグループの番号を
保持する変数であり、xはシリンダグループjのダーテ
ィデータ量である。ステップ7502で変数xに0を、
変数iに1を代入する。ステップ7503でシリンダグ
ループiにダーティデータが有るか否かをチェックす
る。ダーティデータがなければステップ7507へジャ
ンプし、ダーティデータがあれば、yにシリンダグルー
プiのダーティデータ量をテーブル6100から求めて
セットし、yとxの値を比較する(ステップ750
5)。yの値が大きければ、シリンダグループiがそこ
まででダーティデータ量が最大のシリンダグループであ
り、xの値をyの値に変更しかつjの値をiとし(ステ
ップ7506)、ステップ7507へ進む。ステップ7
505でyの値がxの値以下であれば何もしないでステ
ップ7507へジャンプする。ステップ7507では、
iがシリンダグループ番号の最大値Lに達したか否かチ
ェックする。iがLに等しくなければ、iの値を1だけ
増加して(ステップ7510)、ステップ7503へ戻
って処理を継続する。iの値がLに等しければ、すべて
のシリンダグループに対する処理を終えたことになり、
シリンダグループjがダーティデータ量が最大のシリン
ダグループであり、シリンダグループjをデステージ対
象として(ステップ7508)、処理を終了する(ステ
ップ7509)。以上がダーティデータ量が最大のシリ
ンダグループを選択する方法である。
FIG. 7 is a flow chart for realizing the method of selecting the cylinder group having the maximum dirty data amount. i is a work variable indicating the cylinder group number. j is a variable that holds the number of the cylinder group with the largest dirty data amount among the cylinder group numbers 1 to j, and x is the dirty data amount of cylinder group j. In step 7502, 0 is set to the variable x,
Substitute 1 for the variable i. It is checked in step 7503 if the cylinder group i has dirty data. If there is no dirty data, the process jumps to step 7507. If there is dirty data, the dirty data amount of the cylinder group i is obtained from the table 6100 and set in y, and the values of y and x are compared (step 750).
5). If the value of y is large, the cylinder group i is the cylinder group having the maximum dirty data amount up to that point, the value of x is changed to the value of y, and the value of j is set to i (step 7506), and the process proceeds to step 7507. move on. Step 7
If the value of y is less than or equal to the value of x in 505, nothing is done and the process jumps to step 7507. In step 7507,
It is checked whether i has reached the maximum value L of the cylinder group number. If i is not equal to L, the value of i is incremented by 1 (step 7510) and the process returns to step 7503 to continue the process. If the value of i is equal to L, it means that processing for all cylinder groups has been completed.
The cylinder group j is the cylinder group having the largest dirty data amount, the cylinder group j is set as the destage target (step 7508), and the process ends (step 7509). The above is the method of selecting the cylinder group with the largest amount of dirty data.

【0034】図9は、シリンダグループに対するデステ
ージ処理を示すフローチャートである。ステップ760
2で選択されたシリンダグループに対するデステージ処
理を行なった後、ステップ7603で当該シリンダグル
ープのダーティデータ量6110をデクリメントし、処
理を終了する(ステップ7604)。
FIG. 9 is a flowchart showing the destage process for the cylinder group. Step 760
After performing the destage process for the cylinder group selected in 2, the dirty data amount 6110 of the cylinder group is decremented in step 7603, and the process ends (step 7604).

【0035】本実施例に述べた方法によれば、ライトバ
ック制御を行なうキャッシュ付きディスク装置におい
て、デステージを行なう際に、ダーティデータが最も多
い連続したシリンダのグループを選択して、そのシリン
ダのグループに対するデステージ処理を最初に行なうこ
とによって、効率の良いデステージ処理を実現すること
ができる。
According to the method described in the present embodiment, in a cached disk device which performs write-back control, when destaging is performed, a group of consecutive cylinders having the largest amount of dirty data is selected and the cylinders of that cylinder are selected. By performing the destaging process for the group first, an efficient destaging process can be realized.

【0036】(実施例2)本実施例は、デステージ時
に、シーク時間をダーティデータ量で除した値が最小と
なる、シリンダのグループを見い出して、そのシリンダ
のグループに属するダーティデータを優先的にデステー
ジすることにより、高性能なデステージ処理を実現する
ものである。
(Embodiment 2) In this embodiment, at the time of destage, a group of cylinders having a minimum value obtained by dividing the seek time by the amount of dirty data is found, and the dirty data belonging to the group of cylinders is given priority. By performing the destage, the high-performance destage processing is realized.

【0037】第1の実施例とは、デステージ対象とする
シリンダグループを選択するステップ7402の処理以
外は同じであるので、ステップ7402の処理について
のみ述べる。
Since the process is the same as that of the first embodiment except the process of step 7402 for selecting the cylinder group to be destaged, only the process of step 7402 will be described.

【0038】本実施例では第1の実施例とは、別な考え
方に基づくデステージ対象のシリンダグループの選択方
法を述べる。これは現在のヘッド位置からダーティデー
タを有するシリンダグループ迄のシーク時間をダーティ
データの量で割り、その値が最小のシリンダグループを
最初にデステージする方法である。この方法では、1回
のシーク動作で、単位シーク時間当りでデステージでき
るダーティデータの量が最も大きくなる。シーク時間の
算出は、シーク距離とシーク時間の関係を近似する関数
を持つことにより、可能である。このシリンダグループ
の選択方法のフローチャートを図8に示す。図8で、i
は処理中のシリンダグループの番号を示す変数、jはそ
の時点の検索までで選択されたシリンダグループの番
号、xはその時点までの最小の(シーク時間/ダーティ
データ量)の値である。この手続きは読み出されると
(ステップ7501)、xに処理系の最大値を、iに1
を代入し(ステップ7511)、シリンダグループiに
ダーティデータが有るか否かチェックし(ステップ75
03)、ダーティデータが無ければステップ7507へ
ジャンプし、ダーティデータが有ればステップ7512
へ進み、変数aにシリンダグループiのダーティデータ
量をテーブル6100から求めて代入する。次に、最新
のシーク先アドレス6400を現在のヘッド位置とみな
して、シリンダグループi迄のシーク時間を求め、変数
tに代入し(ステップ7513)、変数yに値(t/
a)を代入し(ステップ7514)、変数yと変数xの
値を比較し(ステップ7515)、yの値が小さければ
xの値をyの値に更新し、更にjの値をiに更新し(ス
テップ7506)、ステップ7507へ進む。ステップ
7515でyの値がxの値より小さくなければステップ
7507へジャンプする。ステップ7507で変数iの
値がシリンダグループの番号の最大値Lに達していれ
ば、シリンダグループjをデステージ対象とし(ステッ
プ7508)、処理を終了する(ステップ7509)。
ステップ7507で変数iの値が最大値Lに達していな
ければ、iを1増やして(ステップ7510)、ステッ
プ7503へジャンプして処理を継続する。
In this embodiment, a method of selecting a cylinder group to be destaged based on a concept different from that of the first embodiment will be described. This is a method in which the seek time from the current head position to the cylinder group having dirty data is divided by the amount of dirty data, and the cylinder group having the smallest value is destaged first. With this method, the amount of dirty data that can be destaged per unit seek time is the largest in one seek operation. The seek time can be calculated by using a function that approximates the relationship between the seek distance and the seek time. FIG. 8 shows a flowchart of this cylinder group selection method. In FIG. 8, i
Is a variable indicating the number of the cylinder group being processed, j is the number of the cylinder group selected by the time of the search, and x is the minimum (seek time / dirty data amount) value up to that time. When this procedure is read (step 7501), x is the maximum value of the processing system and i is 1
Is substituted (step 7511), and it is checked whether or not the cylinder group i has dirty data (step 75).
03), jump to step 7507 if there is no dirty data, and step 7512 if there is dirty data.
Then, the process proceeds to step a and the dirty data amount of the cylinder group i is obtained from the table 6100 and substituted into the variable a. Next, the latest seek destination address 6400 is regarded as the current head position, the seek time to the cylinder group i is obtained, and the seek time is substituted for the variable t (step 7513), and the value (t / t) is set for the variable y.
a) is substituted (step 7514), the values of the variable y and the variable x are compared (step 7515), and if the value of y is small, the value of x is updated to the value of y, and the value of j is updated to i. Then (step 7506), the process proceeds to step 7507. If the value of y is not smaller than the value of x in step 7515, the process jumps to step 7507. If the value of the variable i reaches the maximum value L of the cylinder group number in step 7507, the cylinder group j is destaged (step 7508), and the process ends (step 7509).
If the value of the variable i has not reached the maximum value L in step 7507, i is incremented by 1 (step 7510) and the process jumps to step 7503 to continue the processing.

【0039】本実施例に述べた方法によれば、ライトバ
ック制御を行なうキャッシュ付きディスク装置におい
て、デステージを行なう際に、所要シーク時間をダーテ
ィデータ量で除した値が最も小さいシリンダグループを
選択して、そのシリンダグループに対するデステージ処
理を最初に行なうことによって、効率の良いデステージ
処理を実現することができる。
According to the method described in the present embodiment, in the disk device with cache for performing write-back control, when destaging is performed, the cylinder group having the smallest value obtained by dividing the required seek time by the dirty data amount is selected. Then, by performing the destage process for the cylinder group first, the efficient destage process can be realized.

【0040】[0040]

【発明の効果】ライトバック制御を行なうキャッシュ付
きディスク装置において、キャッシュメモリがダーティ
データでいっぱいになった時に本発明を適用するとキャ
ッシュメモリ上のダーティデータを従来技術に比べて早
期にディスクへ掃き出すことができる。
In a disk device with a cache for performing write-back control, when the present invention is applied when the cache memory is full of dirty data, the dirty data in the cache memory can be swept to the disk earlier than in the prior art. You can

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の概要を表す全体の構成図である。FIG. 1 is an overall configuration diagram showing an outline of the present invention.

【図2】制御メモリ上の制御テーブルの構成を表す図面
である。
FIG. 2 is a diagram showing a configuration of a control table on a control memory.

【図3】コマンド処理のフローチャートである。FIG. 3 is a flowchart of command processing.

【図4】ライトヒット処理のフローチャートである。FIG. 4 is a flowchart of a write hit process.

【図5】ライトミス処理のフローチャートである。FIG. 5 is a flowchart of a write miss process.

【図6】デステージ処理のフローチャートである。FIG. 6 is a flowchart of destage processing.

【図7】デステージ対象のシリンダグループの第一の選
択方法を示すフローチャートである。
FIG. 7 is a flowchart showing a first method of selecting a cylinder group to be destaged.

【図8】デステージ対象のシリンダグループの第二の選
択方法を示すフローチャートである。
FIG. 8 is a flowchart showing a second selection method of a destage target cylinder group.

【図9】シリンダグループに対するデステージ処理のフ
ローチャートである。
FIG. 9 is a flowchart of destage processing for a cylinder group.

【図10】ヒットミス判定テーブルの構成を示す図面で
ある。
FIG. 10 is a diagram showing the structure of a hit / miss determination table.

【図11】ダーティセグメント管理情報の構成を示す図
面である。
FIG. 11 is a diagram showing a structure of dirty segment management information.

【図12】クリーン/空きセグメント管理情報の構成を
示す図面である。
FIG. 12 is a diagram showing the structure of clean / free segment management information.

【図13】キャッシュ管理テーブルの構成を示す図面で
ある。
FIG. 13 is a diagram showing a configuration of a cache management table.

【符号の説明】[Explanation of symbols]

5100…ホストコンピューター、 5300…ディス
クコントローラー、5500…ディスクドライブ、
5600…制御用メモリ、5700…キャッシュメモ
リ、 5800…プロセッサ、6100…ダーティ
セグメント管理情報、6110…各シリンダグループの
ダーティデータ量、6400…最新のシーク先のシリン
ダアドレス、7101…コマンド処理プログラム、74
01…デステージ処理プログラム、7402…デステー
ジ対象とするシリンダグループを選択するステップ、7
403…選択したシリンダグループに対するデステージ
処理ステップ。
5100 ... Host computer, 5300 ... Disk controller, 5500 ... Disk drive,
5600 ... Control memory, 5700 ... Cache memory, 5800 ... Processor, 6100 ... Dirty segment management information, 6110 ... Dirty data amount of each cylinder group, 6400 ... Latest seek destination cylinder address, 7101 ... Command processing program, 74
01 ... Destage processing program, 7402 ... Step for selecting cylinder group to be destaged, 7
403 ... Destage processing step for the selected cylinder group.

Claims (4)

【特許請求の範囲】[Claims] 【請求項1】ディスク装置を接続し、ライトバック制御
を行なうキャッシュ付きのディスク制御装置であって、
前記ディスク装置に含まれる1つ以上の連続領域毎に、
前記キャッシュ上に存在し、前記連続領域に未書き込み
のライトデータであるダーティデータの量を管理する手
段と、前記キャッシュ上の前記ダーティデータを前記連
続領域にデステージする際に、前記連続領域毎の前記ダ
ーティデータの量を参照してデステージ対象の連続領域
を選択する手段を有することを特徴とする、ディスク制
御装置。
1. A disk controller with a cache for connecting a disk device and performing write-back control, comprising:
For each one or more continuous areas included in the disk device,
Means for managing the amount of dirty data that is write data that is present in the cache and that has not been written in the continuous area; and when destaging the dirty data in the cache to the continuous area, for each continuous area 2. A disk control device comprising means for selecting a continuous area to be destaged by referring to the amount of the dirty data of.
【請求項2】請求項1記載のディスク制御装置であっ
て、デステージ対象とする前記連続領域を選択する際
に、前記ダーティデータの量が最大の連続領域を選択す
る手段を有することを特徴とする、ディスク制御装置。
2. The disk control device according to claim 1, further comprising means for selecting a continuous area having a maximum amount of the dirty data when selecting the continuous area to be destaged. The disk controller.
【請求項3】ディスク装置を接続し、ライトバック制御
を行なうキャッシュ付きのディスク制御装置であって、
前記ディスク装置に含まれる1つ以上の連続領域毎に、
前記キャッシュ上に存在し、前記連続領域に未書き込み
のライトデータであるダーティデータの量を管理する手
段と、最新のシーク先アドレスを管理する手段と、前記
キャッシュ上の前記ダーティデータを前記連続領域にデ
ステージする際に、前記連続領域毎の前記ダーティデー
タの量と前記最新のシーク先アドレスを参照してデステ
ージ対象の連続領域を選択する手段を有することを特徴
とする、ディスク制御装置。
3. A disk controller with a cache for connecting a disk device and performing write-back control, comprising:
For each one or more continuous areas included in the disk device,
Means for managing the amount of dirty data that is write data that is present in the cache and has not been written in the continuous area; means for managing the latest seek destination address; and the dirty data on the cache for the continuous area. The disk control device further comprises means for selecting a continuous area to be destaged by referring to the dirty data amount for each continuous area and the latest seek destination address when destaging.
【請求項4】請求項3記載のディスク制御装置であっ
て、デステージ対象とする前記連続領域を選択する際
に、前記最新のシーク先アドレスを用いて、前記連続領
域シーク時間を求め、前記連続領域までのシーク時間を
前記連続領域の前記ダーティデータの量で除した値が、
最小の正数値となる連続領域を選択する手段を有するこ
とを特徴とする、ディスク制御装置。
4. The disk control device according to claim 3, wherein when the continuous area to be destaged is selected, the continuous area seek time is obtained using the latest seek destination address, The value obtained by dividing the seek time to the continuous area by the amount of the dirty data in the continuous area is
A disk controller comprising means for selecting a continuous area having a minimum positive value.
JP6249080A 1994-10-14 1994-10-14 Disk controller Pending JPH08115169A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6249080A JPH08115169A (en) 1994-10-14 1994-10-14 Disk controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6249080A JPH08115169A (en) 1994-10-14 1994-10-14 Disk controller

Publications (1)

Publication Number Publication Date
JPH08115169A true JPH08115169A (en) 1996-05-07

Family

ID=17187708

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6249080A Pending JPH08115169A (en) 1994-10-14 1994-10-14 Disk controller

Country Status (1)

Country Link
JP (1) JPH08115169A (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151660A (en) * 1996-08-23 2000-11-21 Olympus Optical Co., Ltd. Information recording/reproducing apparatus having segmented cache memory
KR100786153B1 (en) * 2005-03-14 2007-12-18 후지쯔 가부시끼가이샤 Storage system, control method thereof, and program
JP2009015845A (en) * 2007-06-29 2009-01-22 Seagate Technology Llc Preferred zone scheduling
JP2010519607A (en) * 2007-02-20 2010-06-03 インターナショナル・ビジネス・マシーンズ・コーポレーション Preserve cache data after failover
JP2011044056A (en) * 2009-08-24 2011-03-03 Fujitsu Ltd Storage system, device and method for controlling cache
JP2013004091A (en) * 2011-06-10 2013-01-07 Freescale Semiconductor Inc Writing data to system memory in data processing system
JP2014519650A (en) * 2011-05-23 2014-08-14 インターナショナル・ビジネス・マシーンズ・コーポレーション Program, system, and method for track cache management for storage
WO2016139787A1 (en) * 2015-03-04 2016-09-09 株式会社日立製作所 Storage system and data writing control method

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151660A (en) * 1996-08-23 2000-11-21 Olympus Optical Co., Ltd. Information recording/reproducing apparatus having segmented cache memory
KR100786153B1 (en) * 2005-03-14 2007-12-18 후지쯔 가부시끼가이샤 Storage system, control method thereof, and program
JP2010519607A (en) * 2007-02-20 2010-06-03 インターナショナル・ビジネス・マシーンズ・コーポレーション Preserve cache data after failover
JP2009015845A (en) * 2007-06-29 2009-01-22 Seagate Technology Llc Preferred zone scheduling
JP2011044056A (en) * 2009-08-24 2011-03-03 Fujitsu Ltd Storage system, device and method for controlling cache
JP2014519650A (en) * 2011-05-23 2014-08-14 インターナショナル・ビジネス・マシーンズ・コーポレーション Program, system, and method for track cache management for storage
JP2013004091A (en) * 2011-06-10 2013-01-07 Freescale Semiconductor Inc Writing data to system memory in data processing system
WO2016139787A1 (en) * 2015-03-04 2016-09-09 株式会社日立製作所 Storage system and data writing control method

Similar Documents

Publication Publication Date Title
US5636355A (en) Disk cache management techniques using non-volatile storage
CN103562843B (en) Method and apparatus for the data in supervisory sequence access storage device
Karedla et al. Caching strategies to improve disk system performance
US7146467B2 (en) Method of adaptive read cache pre-fetching to increase host read throughput
US7058764B2 (en) Method of adaptive cache partitioning to increase host I/O performance
EP1074916B1 (en) Hardware mechanism for managing cache structures in a data storage system
US5734861A (en) Log-structured disk array with garbage collection regrouping of tracks to preserve seek affinity
JP2637290B2 (en) System and method for dynamically controlling cache management
JP4429780B2 (en) Storage control device, control method, and control program.
US20030105928A1 (en) Method, system, and program for destaging data in cache
WO1999040516A1 (en) Disk cache control method, disk array device, and storage device
JP6099059B2 (en) Program, system, and method for track cache management for storage
US20040205297A1 (en) Method of cache collision avoidance in the presence of a periodic cache aging algorithm
JPH06236322A (en) Cache system for disk array
US6473842B1 (en) Virtual memory managing system for managing swap-outs by page units and a batch swap-out by task units
JP2002140231A (en) Extended cache memory system
JPH04239352A (en) Adaptive segment control method and device
US8825952B2 (en) Handling high priority requests in a sequential access storage device having a non-volatile storage cache
US6442648B1 (en) Method of and system for the dynamic scheduling of requests to access a storage system
JPH08115169A (en) Disk controller
JP4189342B2 (en) Storage apparatus, storage controller, and write-back cache control method
US5845318A (en) Dasd I/O caching method and application including replacement policy minimizing data retrieval and storage costs
US7908434B2 (en) Raid apparatus, cache management method, and computer program product
JPH07129470A (en) Disk control method
JPH1011337A (en) Method for controlling data in storage device