JP2002023962A - Disk device and its controlling method - Google Patents
Disk device and its controlling methodInfo
- Publication number
- JP2002023962A JP2002023962A JP2000206057A JP2000206057A JP2002023962A JP 2002023962 A JP2002023962 A JP 2002023962A JP 2000206057 A JP2000206057 A JP 2000206057A JP 2000206057 A JP2000206057 A JP 2000206057A JP 2002023962 A JP2002023962 A JP 2002023962A
- Authority
- JP
- Japan
- Prior art keywords
- command
- queue
- sequential
- random
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Landscapes
- Moving Of Head For Track Selection And Changing (AREA)
Abstract
(57)【要約】
【課題】アクセスパターンに基づいたディスクアクセス
のスケジューリング機能をディスク装置自身に持たせ
る。
【解決手段】ディスク装置は、パターン判別部46、ス
ケジュール機構50、ディスクタイムシェアリング機構
82及びリオーダリング機構88を備える。パターン判
別部46は、ホストから受領したコマンドがシーケンシ
ャルかランダムかを判別し、スケジュール機構50のキ
ュー70,72,74,76にアクセスパターンとリー
ド/ライトに別けて格納し、キューに格納したコマンド
のディスクアクセスをアクセスパターンを考慮してディ
スクタイムシェアリング機構82のシーケンシャルキュ
ー84とランダムキュー86に対するコマンド投入をス
ケジューリングする。
(57) [Summary] A disk device itself has a disk access scheduling function based on an access pattern. The disk device includes a pattern determination unit, a schedule mechanism, a disk time sharing mechanism, and a reordering mechanism. The pattern determining unit 46 determines whether the command received from the host is sequential or random, stores the command in the queues 70, 72, 74, 76 of the schedule mechanism 50 separately for the access pattern and the read / write, and stores the command stored in the queue. The command is scheduled to be input to the sequential queue 84 and the random queue 86 of the disk time sharing mechanism 82 in consideration of the access pattern.
Description
【0001】[0001]
【発明の属する技術分野】本発明は、リオーダリング機
能を備えたディスク装置に関し、特に、シーケンシャル
アクセスとランダムアクセスに別けてリオーダリング機
構に対するコマンド投入をスケジュールするディスク装
置に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a disk device having a reordering function, and more particularly to a disk device for scheduling a command input to a reordering mechanism separately for sequential access and random access.
【0002】[0002]
【従来の技術】従来、ハードディスクドライブとして知
られたディスク装置は、実行待ちコマンドを処理時間が
最短になるように並び替えるリオーダリング機能(Re-o
rdering 機能)を持っている。即ち、リオーダリング機
能を備えたディスク装置は、コマンドのキューをたかだ
かひとつ持ち、そのキューの中でシーク時間と回転待ち
時間のみを考慮してコマンドのリオーダリングを行って
いる。2. Description of the Related Art Conventionally, a disk device known as a hard disk drive has a reordering function (Re-o
rdering function). That is, a disk device having a reordering function has at most one command queue, and performs command reordering in the queue considering only the seek time and the rotation waiting time.
【0003】リオーダリング機能は、ディスク装置が、
実行待ちコマンドの中からシーク時間と回転待ち時間の
和で定義されるポジショニング時間を最小にするコマン
ドを、次に実行するコマンドとして選ぶ機能である。デ
ィスク装置にコマンドを依頼する際に、リオーダリング
の対象として良い旨のタスク指定となるシンプルタスク
(Simple task )をディスク装置に通知する。[0003] The reordering function is implemented by a disk device,
This function selects the command that minimizes the positioning time defined by the sum of the seek time and the rotation wait time from the execution wait commands as the next command to be executed. When requesting a command to the disk device, the disk device is notified of a simple task (Simple task) for designating a task to be reordered.
【0004】ディスク装置はシンプルタスク指定のコマ
ンドの場合は、ポジショニング時間を最小にするような
順番でコマンドをスケジュールする。これにより、ラン
ダムアクセス時の平均処理時間が短縮される。In the case of a command specifying a simple task, the disk device schedules the command in an order that minimizes the positioning time. Thereby, the average processing time at the time of random access is reduced.
【0005】リオーダリング機能は、このようにディス
ク装置のスループットを向上させるが、最大レスポンス
時間が大きくなる問題がある。これは、次のコマンドに
ポジショニング時間が最小となるコマンドを選択するた
め、あるコマンドが長い間待ちのままでスケジュールさ
れない現象が発生するためである。Although the reordering function improves the throughput of the disk device in this way, there is a problem that the maximum response time becomes longer. This is because a command that minimizes the positioning time for the next command is selected, and a phenomenon occurs in which a certain command is not scheduled while waiting for a long time.
【0006】この現象を解決するため、ディスク装置
は、リオーダリングの対象として良いことを指定するシ
ンプルタスク(Simple task)の他に、オーダードタスク
(Ordered task)を指定する機能を備えている。オーダ
ードタスクの指定でコマンドを依頼すると、ディスク装
置は、それまでに受け付けていた未だ完了していないコ
マンドを全て完了させた後、オーダードタスクのコマン
ドをスケジューリングする。これによってレスポンス保
証や優先制御を行う。In order to solve this phenomenon, the disk device has a function of designating an ordered task in addition to a simple task designating that the reordering is good. When a command is requested by designating an ordered task, the disk device completes all commands that have been received and have not been completed, and then schedules the command of the ordered task. In this way, response assurance and priority control are performed.
【0007】更に、キューの先頭にコマンドを強制的に
配置することをコマンドについたタグによって実現して
いる。Further, forcibly placing a command at the head of a queue is realized by a tag attached to the command.
【0008】[0008]
【発明が解決しようとする課題】一方、現実のディスク
装置のアクセスには、いくつかのアクセスパターンが存
在している。多くのアプリケーションはランダムなアク
セスに対して高速なレスポンスを期待している。これに
対して例えば音声や動画などを扱うアプリケーション
は、シーケンシャルなアクセスに対して一定のスループ
ットを期待している。On the other hand, there are several access patterns in actual disk drive access. Many applications expect a fast response to random access. On the other hand, for example, an application that handles audio and moving images expects a certain throughput for sequential access.
【0009】コマンドのリオーダリング機能は、シーク
と回転待ちの時間しか考慮しないので、シーケンシャル
アクセスやランダムアクセスが混在するときに、例えば
シーケンシャルアクセスが連続する場合にランダムアク
セスのレスポンスが下がるなどの問題が生じる。The command reordering function considers only the seek and rotation wait times. Therefore, when sequential access and random access coexist, there is a problem that, for example, if sequential access is continuous, the response of random access drops. Occurs.
【0010】更に、シーケンシャルアクセスの場合、予
めキャッシュにプリフェッチすることでレスポンスを高
速にすることができるが、アクセスパターンを認識しな
いでプリフェッチしたのでは、十分効果をあげることが
できない。Further, in the case of the sequential access, the response can be made faster by prefetching the data in the cache in advance, but if the prefetch is performed without recognizing the access pattern, a sufficient effect cannot be obtained.
【0011】このような問題を解決するために、ディス
ク制御機構に多数のディスク装置をRAID構成で設け
たような大規模な外部記憶装置では、アクセスパターン
に基づいたディスクアクセスのスケジューリングがファ
ームウェアで実現されている。In order to solve such a problem, in a large-scale external storage device in which a large number of disk devices are provided in a disk control mechanism in a RAID configuration, disk access scheduling based on an access pattern is realized by firmware. Have been.
【0012】しかしながら、扱うデータ量の少ないコン
シューマ機としてのディスク装置単体において、このよ
うな大規模なディスク制御機構を接続することはコスト
的に見合わない。また、現在のコンシューマ機の代表的
なOSでは、このようなアクセスパターンを考慮したデ
ィスク入出力のスケジューリングを行わない。However, it is not cost-effective to connect such a large-scale disk control mechanism in a single disk device as a consumer device that handles a small amount of data. In addition, a typical OS of a current consumer machine does not perform disk input / output scheduling in consideration of such an access pattern.
【0013】このため現状では、アクセスパターンを考
慮したディスク入出力のスケジューリングの機能は、コ
ンシューマ機ではアプリケーションにまかされている。
しかし、アプリケーションごとに入出力スケジューリン
グのルーチンを作成するコストはかなり大きい。またこ
のようなアプリケーションが複数ある場合には、同時に
動作した場合、意図どうりのスケジューリング動作にな
る保証はない。Therefore, at present, the function of scheduling disk input / output in consideration of the access pattern is left to the application in the consumer machine.
However, the cost of creating an I / O scheduling routine for each application is quite large. Further, when there are a plurality of such applications, there is no guarantee that the scheduling operation will be performed as intended if they are operated simultaneously.
【0014】本発明は、アクセスパターンに基づいたデ
ィスクアクセスのスケジューリング機能を装置自身に備
えたディスク装置を提供することを目的とする。An object of the present invention is to provide a disk device having a disk access scheduling function based on an access pattern in the device itself.
【0015】[0015]
【課題を解決するための手段】図1は本発明の原理説明
図である。本発明のディスク装置は、図1(A)のよう
に、パターン判別部46とスケジュール機構50を備え
る。パターン判別部46は、ホストやサーバ等の上位装
置から受領したコマンドのアクセスパターンを判別す
る。FIG. 1 is a diagram illustrating the principle of the present invention. As shown in FIG. 1A, the disk device of the present invention includes a pattern determining unit 46 and a schedule mechanism 50. The pattern determination unit 46 determines an access pattern of a command received from a host device such as a host or a server.
【0016】スケジュール機構50は、アクセスパター
ン毎にキュー70,72,74,76を持ち、パターン
判別部46で判別したアクセスパターンに対応したキュ
ーにコマンドを格納し、キューに格納したコマンドのデ
ィスクアクセスをアクセスパターンを考慮してスケジュ
ーリングする。The schedule mechanism 50 has queues 70, 72, 74, and 76 for each access pattern, stores commands in queues corresponding to the access patterns determined by the pattern determination section 46, and performs disk access of the commands stored in the queues. Is scheduled in consideration of the access pattern.
【0017】このように本発明のディスク装置は、アク
セスパターンに基づいたコマンドのスケジューリングを
装置内において行うことにより、シーケンシャルなアク
セスに対して一定のスループットの保証と、ランダムな
アクセスに対する高速なレスポンスを低コストで実現す
る。ディスクドライブ単体でアクセスパターンに基づい
てコマンドをスケジューリングすることで、ホスト側の
OSやアプリケーションの変更は必要ない。As described above, the disk device of the present invention performs command scheduling based on an access pattern in the device, thereby guaranteeing a constant throughput for sequential access and providing a high-speed response to random access. Realized at low cost. By scheduling the command based on the access pattern by the disk drive alone, there is no need to change the OS or application on the host side.
【0018】パターン判別部46は、ディスクの領域ご
とに記憶するデータのアクセスパターンを設定し、コマ
ンドのアドレスからアクセスパターンを判別する。また
パターン判別部46は、コマンドに付加されたタグによ
りアクセスパターンを判別してもよい。更に、パターン
判別部46は、コマンド列を監視してアクセスパターン
を発見し、各コマンドがどのアクセスパターンに属する
かを判別してもよい。The pattern determining section 46 sets an access pattern of data to be stored for each area of the disk, and determines the access pattern from a command address. Further, the pattern determining unit 46 may determine the access pattern based on the tag added to the command. Further, the pattern determining unit 46 may monitor the command sequence to find an access pattern, and determine which access pattern each command belongs to.
【0019】パターン判別部46は、ホストからのリー
ドコマンドとライトコマンドを例えばシーケンシャルア
クセスとランダムアクセスに分けて判別する。これに対
応してスケジュール機構50は、シーケンシャルリード
キュー70を持ったシーケンシャルリードスケジューラ
60、シーケンシャルライトキュー72を持ったシーケ
ンシャルライトスケジューラ62、ランダムリードキュ
ー74を持ったランダムリードスケジューラ64、及び
ランダムライトキュー76を持ったランダムライトスケ
ジューラ66を備える。The pattern discriminating section 46 discriminates a read command and a write command from the host into, for example, sequential access and random access. In response to this, the schedule mechanism 50 includes a sequential read scheduler 60 having a sequential read queue 70, a sequential write scheduler 62 having a sequential write queue 72, a random read scheduler 64 having a random read queue 74, and a random write queue. It has a random write scheduler 66 having a.
【0020】更に、本発明は、キャッシュ制御機構5
2、リオーダリング機構88及びディスクタイムシェア
リング機構82を備える。キャッシュ制御機構52は、
上位装置からライトデータとディスク媒体からのリード
データをキャッシュメモリ54上で処理する。リオーダ
リング機構88は、コマンドをキューイングし、シーク
や回転待ち時間を考慮したコマンドのリオーダリングを
行う。Further, according to the present invention, the cache control mechanism 5
2. It has a reordering mechanism 88 and a disk time sharing mechanism 82. The cache control mechanism 52
The write data from the host device and the read data from the disk medium are processed on the cache memory 54. The reordering mechanism 88 queues commands and reorders commands in consideration of seek and rotation waiting time.
【0021】タイムシェアリング機構82は、シーケン
シャルキュー84とランダムキュー86を持ち、スケジ
ュール機構50から対応するアクセスパターンのコマン
ドを格納し、シーケンシャルキュー84とランダムキュ
ー86にコマンドが格納されて競合している場合に、予
め決定された各キューの割当時間(クォンタム)τ1,
τ2を順番に切替えてリオーダリング機構88にコマン
ドを投入するスケジューリングを行う。The time sharing mechanism 82 has a sequential queue 84 and a random queue 86, stores a command of a corresponding access pattern from the schedule mechanism 50, and the sequential queue 84 and the random queue 86 store commands and compete with each other. , The predetermined allocation time (quantum) τ1,
Scheduling for switching the τ2 in order to input a command to the reordering mechanism 88 is performed.
【0022】このように本発明は、アクセスパターンと
してシーケンシャルリード、シーケンシャルライト、ラ
ンダムリード、ランダムライトを想定している。勿論、
それ以外のパターンを同様にサポートすることが可能で
ある。As described above, the present invention assumes sequential access, sequential write, random read, and random write as access patterns. Of course,
Other patterns can be supported as well.
【0023】キャッシュ制御機構52は、ホストからの
ライトコマンドによるライトデータはキャッシュメモリ
54に書込んで正常終了とし、その後にキャッシュ上の
ライトデータのライトバックをキューイングしたライト
コマンドに基づいてスケジューリングする。またキャッ
シュメモリ54にプリフェッチしたリードデータは、ホ
ストからのリードコマンドのキャッシュヒットで転送す
る。The cache control mechanism 52 writes the write data according to the write command from the host to the cache memory 54 and terminates normally, and then schedules the write-back of the write data in the cache based on the queued write command. . The read data prefetched into the cache memory 54 is transferred by a cache hit of a read command from the host.
【0024】更に本発明は、シーケンシャルアクセスと
ランダムアクセスに分けてキューイングしたコマンド
を、割当時間で切替えてディスク媒体側にコマンドを投
入するディスクタイムシェアリング機構(DTC)82
の働きにより、シーケンシャルアクセスのスループット
を一定値に保ち、ランダムIOのレスポンスを保証す
る。Further, according to the present invention, a disk time sharing mechanism (DTC) 82 for switching a command queued separately for sequential access and random access at an assigned time and inputting the command to a disk medium side.
By keeping the sequential access throughput at a constant value, the response of the random IO is guaranteed.
【0025】このようにスケジュール機構50とディス
クタイムシェアリング機構82による2階層のディスク
アクセスのスケジューリングを行うことで次の利点をも
つ。The following advantages are obtained by performing the two-layer disk access scheduling by the schedule mechanism 50 and the disk time sharing mechanism 82 as described above.
【0026】(1)同じパターンのシーケンシャルアク
セスが連続してリオーダリング機構に投入されるため、
シーク時間や回転待ちを減少してディスクタイムシェア
リング機構単体でのスケジューリングよりスループット
およびレスポンスを向上する。(1) Since sequential accesses of the same pattern are successively input to the reordering mechanism,
The seek time and the rotation wait are reduced, and the throughput and the response are improved as compared with the scheduling using the disk time sharing mechanism alone.
【0027】(2)スケジュール機構のシーケンシャル
リードキューが空になった場合、ディスクタイムシェア
リング機構にプリフェッチコマンドが投入されるため、
ディスクタイムシェアリング機構単体でのスケジューリ
ングよりスループットを向上する。(2) When the sequential read queue of the schedule mechanism becomes empty, a prefetch command is input to the disk time sharing mechanism.
Throughput is improved compared to scheduling using the disk time sharing mechanism alone.
【0028】パターン判別部46は、リードコマンドに
ついてはアクセスパターンを判別してスケジュール機構
50のシーケンシャルリードキュー70又はランダムリ
ードキュー74に格納し、ライトコマンドついてはアク
セスパターンを判別してキャッシュ制御機構52にライ
トデータを転送した後にスケジュール機構50のシーケ
ンシャルライトキュー72又はランダムライトキュー7
6に格納する。The pattern discriminating section 46 discriminates an access pattern for a read command and stores it in the sequential read queue 70 or the random read queue 74 of the schedule mechanism 50, and discriminates an access pattern for a write command and sends it to the cache control mechanism 52. After the transfer of the write data, the sequential write queue 72 or the random write queue 7
6 is stored.
【0029】キャッシュ制御機構52は、キャッシュメ
モリ54上に所定値以上の空容量がある場合はライトデ
ータをキャッシュメモリ54に書込み、所定値以上の空
き容量がない場合、キャッシュメモリ54の廃棄可能デ
ータを廃棄した後にライトデータをキャッシュメモリ5
4に書込み、廃棄可能データがなければ上位装置にビジ
ーを応答する。The cache control mechanism 52 writes the write data to the cache memory 54 when the free space in the cache memory 54 is equal to or more than a predetermined value. Write data after discarding the
4, and if there is no discardable data, a busy response is sent to the host device.
【0030】シーケンシャルリードスケジューラ60
は、シーケンシャルリードキュー70にコマンドが格納
されている場合は、一定量のコマンドをディスクタイム
シェアリング機構82のシーケンシャルキュー84に投
入し、シーケンシャルリードキュー70が空の場合は、
プリフェッチ処理部78を起動して後続のプリフェッチ
コマンドをディスクタイムシェアリング機構82のシー
ケンシャルキュー84に投入する。The sequential read scheduler 60
When a command is stored in the sequential read queue 70, a certain amount of commands are input to the sequential queue 84 of the disk time sharing mechanism 82, and when the sequential read queue 70 is empty,
The prefetch processing unit 78 is activated and the subsequent prefetch command is input to the sequential queue 84 of the disk time sharing mechanism 82.
【0031】シーケンシャルライトスケジューラ62
は、シーケンシャルライトキュー72にコマンドが格納
されている場合は、全てのコマンドをディスクタイムシ
ェアリング機構82のシーケンシャルキュー84に投入
する。The sequential write scheduler 62
Sends commands to the sequential queue 84 of the disk time sharing mechanism 82 when the commands are stored in the sequential write queue 72.
【0032】ランダムリードスケジューラ64は、ラン
ダムリードキュー74にコマンドが格納されている場合
は、一定量のコマンドをディスクタイムシェアリング機
構82のランダムキュー86に投入する。When a command is stored in the random read queue 74, the random read scheduler 64 sends a certain amount of commands to the random queue 86 of the disk time sharing mechanism 82.
【0033】ランダムライトスケジューラ66は、ラン
ダムライトキュー76にコマンドが格納されている場
合、キャッシュメモリ54の空き容量が所定値以上の時
はスケジューリングを行わず、キャッシュメモリ54の
空き容量が所定値未満の時は、ライトバック処理部80
を起動し、キャッシュメモリ54上に格納されているラ
イトデータが最も古いコマンドのアドレスから一定の範
囲にあるライトデータのコマンドをまとめてランダムラ
イトキュー76からディスクタイムシェアリング機構8
2のランダムキュー86に投入する。When a command is stored in the random write queue 76, the random write scheduler 66 does not perform scheduling when the free space of the cache memory 54 is equal to or more than a predetermined value, and the free space of the cache memory 54 is less than the predetermined value. , The write-back processing unit 80
Is started, and the write data commands stored in the cache memory 54 whose write data is within a certain range from the address of the oldest command are put together and the disk time sharing mechanism 8 is written from the random write queue 76.
2 is entered into the random queue 86.
【0034】ディスクタイムシェアリング機構82は、
シーケンシャルキュー84とランダムキュー86の一方
にコマンドが格納され他方が空の場合、割当時間τ1,
τ2に係らず、コマンドを格納しているキューからリオ
ーダリング機構88にコマンドを連続して投入する。The disk time sharing mechanism 82
If the command is stored in one of the sequential queue 84 and the random queue 86 and the other is empty, the allocation time τ1,
Regardless of τ2, commands are continuously input to the reordering mechanism 88 from the queue storing the commands.
【0035】ここで、リオーダリング機構88は、シン
プルタスクの指定でポジショニング時間を最小とするよ
うに複数のコマンドをスケジューリングし、オーダード
タスクの指定で既に受付けたコマンドを完了させた後に
オーダードタスク指定のコマンドをスケジューリングす
る。この場合、ディスクタイムシェアリング機構82
は、シーケンシャルアクセスキュー84とランダムアク
セスキュー86に格納されたコマンドについて、シンプ
ルタスクの指定とオーダードタスクの指定を分けてスケ
ジューリングする。Here, the reordering mechanism 88 schedules a plurality of commands so as to minimize the positioning time by designating the simple task, and after completing the command already received by designating the ordered task, reorders the ordered task. Schedule the specified command. In this case, the disk time sharing mechanism 82
Schedules commands stored in the sequential access queue 84 and the random access queue 86 separately for specifying a simple task and specifying an ordered task.
【0036】即ち、ディスクタイムシェアリング機構8
2は、シーケンシャルアクセスキュー84とランダムア
クセスキュー86からコマンドをリオーダリング機構8
8に投入する際に、アクセスパターンを切替えた直後の
最初のコマンドはオーダードタスクを指定して切替前の
アクセスパターンのコマンドを完了させた後に切替後の
アクセスパターンのコマンドをスケジューリングし、次
にアクセスパターンを切替えるまでのコマンドはシンプ
ルタスクで指定してポジショニング時間を最小とするよ
うに複数のコマンドをスケジューリングする。That is, the disk time sharing mechanism 8
Reference numeral 2 denotes a command for reordering commands from the sequential access queue 84 and the random access queue 86.
8, the first command immediately after switching the access pattern is to specify the ordered task, complete the command of the access pattern before switching, schedule the command of the access pattern after switching, and then Commands until the access pattern is switched are specified by a simple task, and a plurality of commands are scheduled so as to minimize the positioning time.
【0037】このため、1つのクォンタム内で、シーケ
ンシャルアクセス又はランダムアクセスのコマンドをリ
オーダリング機構88に連続して投入することができ
る。Therefore, a sequential access or random access command can be continuously input to the reordering mechanism 88 within one quantum.
【0038】ディスクタイムシェアリング機構82は、
クォンタム切替時に未処理の処理時間を予測して次のク
ォンタム開始時刻T0 を算出(予測)し、コマンドの受
付け又はコマンドの完了応答毎に、その時の未処理コマ
ンドの処理時間とクォンタム開始時刻T0 に基づいて残
り時間Tr を予測し、残り時間があると判断した場合
(Tr >0)は、現クォンタムのコマンドをリオーダリ
ング機構88に投入し、残り時間がないと判断した場合
(Tr ≦0)は次のクォンタムに切替える。The disk time sharing mechanism 82
The unprocessed processing time is predicted at the time of quantum switching, and the next quantum start time T0 is calculated (predicted). Each time a command is accepted or a command is completed, the unprocessed command processing time and the quantum start time T0 are calculated. The remaining time Tr is predicted on the basis of this, and when it is determined that there is a remaining time (Tr> 0), the command of the current quantum is input to the reordering mechanism 88, and when it is determined that there is no remaining time (Tr ≦ 0). Switches to the next quantum.
【0039】リオーダリングの恩恵を受けるためにはデ
ィスクタイムシェアリング機構82において、できるだ
け多くのコマンドを依頼する環境を作る必要がある。こ
のためにシンプルタスクを使う場合、リオーダリング機
構88に対して複数のコマンドを投入することになる。In order to benefit from reordering, it is necessary to create an environment for requesting as many commands as possible in the disk time sharing mechanism 82. When a simple task is used for this purpose, a plurality of commands are input to the reordering mechanism 88.
【0040】本発明のディスクタイムシェリング機構8
2は、コマンド処理時間の時分割制御を目的としている
ので、リオーダリング機構88にコマンドを投入する際
には、投入した複数のコマンドの処理に必要な時間を予
測し、次のアクセスパターンのクォンタムに切替えた後
に切替えたアクセスパターンのコマンドを投入するか否
か判断する必要がある。The disk time shelling mechanism 8 of the present invention
2 is intended to control the command processing time in a time-sharing manner. Therefore, when a command is input to the reordering mechanism 88, the time required for processing a plurality of input commands is predicted, and the quantum of the next access pattern is estimated. Then, it is necessary to determine whether or not to input a command of the switched access pattern after switching.
【0041】このため、クォンタム切替え時に現在リオ
ーダリング機構88に投入しているコマンドが次のクォ
ンタム内で完了して新たなコマンドを投入できるか否か
を判断するため残り時間Tr を次式で算出する。 残り時間Tr =クォンタム開始時刻T0 +クォンタム割
当時間τ−未処理コマンド処理時間−現在時刻 クォンタム開始時刻T0 =クォンタム切替時刻+未処理
コマンド処理時間 未処理コマンド処理時間=未処理コマンド数×コマンド
平均処理時間 またディスクタイムシェアリング機構82は、1つのア
クセスパターンのコマンドを連続してリオーダリング機
構88に投入する場合、割当て時間をリセットした直後
の最初のコマンドはオーダードタスクを指定してリセッ
ト前のコマンドを完了させた後にリセット後のコマンド
投入をスケジューリングし、次にリセットするまでのコ
マンドはシンプルタスクで指定してポジショニング時間
を最小とするようにスケジューリングする。Therefore, at the time of quantum switching, the remaining time Tr is calculated by the following equation to determine whether the command currently input to the reordering mechanism 88 is completed within the next quantum and a new command can be input. I do. Remaining time Tr = quantum start time T0 + quantum allocation time τ-unprocessed command processing time-current time Quantum start time T0 = quantum switching time + unprocessed command processing time Unprocessed command processing time = number of unprocessed commands x command average processing Time When the disk time sharing mechanism 82 continuously issues commands of one access pattern to the reordering mechanism 88, the first command immediately after resetting the assigned time designates the ordered task and specifies the ordered task. After the command is completed, the command input after the reset is scheduled, and the command until the next reset is specified by a simple task and the scheduling is performed so as to minimize the positioning time.
【0042】このように1つのアクセスパターンのクォ
ンタムが連続する場合にも、クォンタム開始時刻を現在
時刻に設定し直すために、クォンタムをリセットした後
のリオーダリング機構88に対する最初のコマンドをオ
ーダードタスクで投入することにより、リオーダリング
により生じる弊害である応答時間の延長を防止できる。Even in the case where the quanta of one access pattern continues as described above, in order to reset the quantum start time to the current time, the first command to the reordering mechanism 88 after resetting the quantum is sent to the ordered task. , It is possible to prevent the response time from being prolonged, which is an adverse effect caused by reordering.
【0043】本発明は、アクセスパターンに基づいてデ
ィスクアクセスをスケジューリングするディスク装置の
制御方法を提供する。この制御方法は、ホスト等の上位
装置から受信したコマンドのアクセスパターンを判別
し;リードコマンドは判別されたアクセスパターン対応
したキューに投入し;ライトコマンドはホストからのキ
ャッシュにライトデータを転送してから判別されたアク
セスパターンに対応したキューに投入し;一定時間ごと
に各キューからコマンドのディスクタイムシェアリング
機構への投入をアクセスパターンに応じてスケジューリ
ングする;上位装置から受信したコマンドのアクセスパ
ターンは、コマンドのアクセスするディスク領域、コマ
ンドに付随するタグ、またはコマンド列より判別する。The present invention provides a method for controlling a disk drive that schedules disk access based on an access pattern. In this control method, an access pattern of a command received from a host device such as a host is determined; a read command is input to a queue corresponding to the determined access pattern; a write command transfers write data from a host to a cache. The command is input to the queue corresponding to the access pattern determined from the above; the input of the command from each queue to the disk time sharing mechanism is scheduled at regular time intervals according to the access pattern; , The disk area accessed by the command, the tag attached to the command, or the command string.
【0044】このディスク装置の制御方法において、リ
ードコマンド又はライトコマンドのアクセスパターンと
してシーケンシャルアクセスとランダムアクセスを判別
して、シーケンシャルリードキュー、シーケンシャルラ
イトキュー、ランダムリードキュー、又はランダムライ
トキューに別けてコマンドを格納し;一定時間ごとに各
キューのコマンドをスケジューリングしてタイムシェア
リング機構のシーケンシャルキューとランダムキューに
別けて投入し;タイムシェアリング機構のシーケンシャ
ルキューとランダムキューにコマンドが格納されて競合
している場合に、予め決定された各キューの割当時間
(クォンタム)を順番に切替えてリオーダリング機構に
コマンドを投入する。In this disk device control method, sequential access and random access are determined as an access pattern of a read command or a write command, and a command is divided into a sequential read queue, a sequential write queue, a random read queue, or a random write queue. Is stored; stored in the sequential queue and the random queue of the time sharing mechanism and competed with each other. In this case, a command is input to the reordering mechanism by sequentially switching the predetermined allocation time (quantum) of each queue.
【0045】またディスク装置の制御方法において、シ
ーケンシャルリードキューにコマンドが格納されている
場合は、一定量のコマンドを前記タイムシェアリング機
構のシーケンシャルキューに投入し、シーケンシャルリ
ードキューが空の場合は、後続のプリフェッチコマンド
を前記タイムシェアリング機構のシーケンシャルキュー
に投入し;シーケンシャルライトキューにコマンドが格
納されている場合は、全てのコマンドを前記タイムシェ
アリング機構のシーケンシャルキューに投入し、前記ラ
ンダムリードキューにコマンドが格納されている場合
は、一定量のコマンドを前記タイムシェアリング機構の
ランダムキューに投入し;更にランダムライトキューに
コマンドが格納されている場合、キャッシュメモリの空
き容量が所定値以上の時はスケジュールを行わず、前記
キャッシュメモリの空き容量が所定値未満の時は、キャ
ッシュメモリ上に格納されているライトデータが最も古
いコマンドのアドレスから一定の範囲にライトデータが
あるコマンドをまとめてタイムシェアリング機構のラン
ダムキューに投入してキャッシュメモリのライトデータ
をディスク媒体に優先的にライトバックさせる;これ以
外のディスク装置の制御方法の詳細は、装置の場合と同
じになる。In the method of controlling a disk drive, when a command is stored in the sequential read queue, a fixed amount of commands is input to the sequential queue of the time sharing mechanism. When the sequential read queue is empty, Subsequent prefetch commands are input to the sequential queue of the time sharing mechanism; if commands are stored in the sequential write queue, all commands are input to the sequential queue of the time sharing mechanism, and the random read queue is input. If a command is stored in the random queue, a certain amount of the command is input to the random queue of the time sharing mechanism; if a command is stored in the random write queue, the free space of the cache memory is equal to or more than a predetermined value. When the free space of the cache memory is less than a predetermined value, the write data stored in the cache memory collects commands having write data within a certain range from the address of the oldest command. The write data in the cache memory is preferentially written back to the disk medium by entering the random queue of the time sharing mechanism; the details of the control method of the disk device other than this are the same as those of the device.
【0046】[0046]
【発明の実施の形態】図2は、本発明が適用されるハー
ドディスクドライブのブロック図である。図2におい
て、ハードディスクドライブは、SCSIコントローラ
10、ドライブコントロール12及びディスクエンクロ
ージャ14で構成される。勿論、ホストとのインタフェ
ースはSCSIコントローラ10に限定されず、適宜の
インタフェースコントローラが使用できる。FIG. 2 is a block diagram of a hard disk drive to which the present invention is applied. In FIG. 2, the hard disk drive includes a SCSI controller 10, a drive control 12, and a disk enclosure 14. Of course, the interface with the host is not limited to the SCSI controller 10, and an appropriate interface controller can be used.
【0047】SCSIコントローラ10には、MCU
(メインコントロールユニット)16、制御記憶として
使用されるDRAMもしくはSRAMを用いたメモリ1
8、制御プログラムを格納するフラッシュメモリなどの
不揮発性メモリを使用したプログラムメモリ20、ハー
ドディスクコントローラ(HDC)22及びデータバッ
ファ24が設けられる。The SCSI controller 10 has an MCU
(Main control unit) 16, Memory 1 using DRAM or SRAM used as control storage
8. A program memory 20 using a nonvolatile memory such as a flash memory for storing a control program, a hard disk controller (HDC) 22, and a data buffer 24 are provided.
【0048】ドライブコントロール12には、ドライブ
インタフェースロジック26、DSP28、リード/ラ
イトLSI30、サーボ復調部32及びサーボドライバ
34が設けられる。The drive control 12 is provided with a drive interface logic 26, a DSP 28, a read / write LSI 30, a servo demodulator 32, and a servo driver 34.
【0049】更にディスクエンクロージャ14にはヘッ
ドIC36が設けられ、ヘッドIC36に対しライトヘ
ッドとリードヘッドを備えた複合ヘッド38−1〜38
−6を接続している。Further, a head IC 36 is provided in the disk enclosure 14, and a composite head 38-1 to 38 having a write head and a read head is provided for the head IC 36.
-6 is connected.
【0050】複合ヘッド38−1〜38−6は磁気ディ
スク40−1〜40−3の各記録面に対し設けられ、V
CM44によるロータリアクチュエータの駆動で磁気デ
ィスク40−1〜40−3の任意のトラック位置に移動
される。磁気ディスク40−1〜40−3はスピンドル
モータ42により一定速度で回転される。The composite heads 38-1 to 38-6 are provided for each recording surface of the magnetic disks 40-1 to 40-3.
The magnetic disk 40-1 is moved to an arbitrary track position by driving the rotary actuator by the CM 44. The magnetic disks 40-1 to 40-3 are rotated at a constant speed by a spindle motor 42.
【0051】SCSIコントローラ10のハードディス
クコントローラ22には、フォーマッタやECC処理部
に加えて本発明にあっては、アクセスパターンスケジュ
ール機構を設けている。The hard disk controller 22 of the SCSI controller 10 has an access pattern schedule mechanism in the present invention in addition to the formatter and the ECC processing unit.
【0052】このアクセスパターンスケジュール機構
は、ホストから発行されたコマンドのアクセスパターン
としてシーケンシャルリード、シーケンシャルライト、
ランダムリード及びランダムライトの4つを想定し、コ
マンドを受信した際にアクセスパターンを判別し、各ア
クセスパターンごとに設けたコマンドのキューに格納し
た後に、アクセスパターンを考慮したコマンドのスケジ
ューリングを行う。This access pattern schedule mechanism uses sequential read, sequential write,
Assuming four types of random read and random write, an access pattern is determined when a command is received, the command is stored in a command queue provided for each access pattern, and then command scheduling is performed in consideration of the access pattern.
【0053】またハードディスクコントローラ22には
キャッシュ制御機構が設けられており、データバッファ
24内のキャッシュ領域をキャッシュメモリとして使用
し、ホストからのライトデータと磁気ディスクからのリ
ードデータをキャッシュメモリ上で処理する。The hard disk controller 22 is provided with a cache control mechanism. The cache area in the data buffer 24 is used as a cache memory, and write data from the host and read data from the magnetic disk are processed on the cache memory. I do.
【0054】またドライブコントロール12に設けたド
ライブインタフェースロジック26には、リオーダリン
グ機構が設けられている。このリオーダリング機構はコ
マンドキューを持ち、ハードディスクコントローラ22
に設けている本発明によるアクセスパターンスケジュー
ル機構から投入されたコマンドについて、コマンドキュ
ーに格納している実行待ちのコマンドの中からシーク時
間と回転待ち時間の和で定義されるポジショニング時間
を最小にするコマンドを次に実行するコマンドとして選
び、リオーダリング処理を行っている。The drive interface logic 26 provided in the drive control 12 has a reordering mechanism. This reordering mechanism has a command queue and the hard disk controller 22.
For the commands input from the access pattern schedule mechanism according to the present invention provided in the above, the positioning time defined by the sum of the seek time and the rotation wait time from the commands waiting for execution stored in the command queue is minimized. The command is selected as the next command to be executed, and the reordering process is performed.
【0055】図3は、図2のハードディスクドライブに
設けられた本発明によるアクセスパターンスケジュール
機構の機能構成を示したブロック図である。FIG. 3 is a block diagram showing a functional configuration of the access pattern schedule mechanism according to the present invention provided in the hard disk drive of FIG.
【0056】図3において、本発明によるアクセスパタ
ーンスケジュール機構は、ハードディスクコントローラ
22の機能として提供されるホストインタフェース4
5、パターン判別部46、スケジュール機構50、キャ
ッシュ制御機構52、キャッシュメモリ54、ディスク
タイムシェアリング機構(DTC)82、及びドライブ
インタフェースロジック26側に設けているリオーダリ
ング機構88で構成される。Referring to FIG. 3, the access pattern scheduling mechanism according to the present invention includes a host interface 4 provided as a function of the hard disk controller 22.
5, a pattern discriminator 46, a schedule mechanism 50, a cache control mechanism 52, a cache memory 54, a disk time sharing mechanism (DTC) 82, and a reordering mechanism 88 provided on the drive interface logic 26 side.
【0057】ホストインタフェース45は例えばSCS
Iインタフェースにおけるホスト側のイニシエータに対
し、ターゲットとして機能する。The host interface 45 is, for example, an SCS
It functions as a target for the initiator on the host side in the I interface.
【0058】パターン判別部46は、ホストインタフェ
ース45を介してホストから受信したコマンドについて
コマンドパターンを判別する。この実施形態にあっては
コマンドパターンとして (1)シーケンシャルリード (2)シーケンシャルライト (3)ランダムリード (4)ランダムライト の4パターンをサポートしている。勿論、この4つのア
クセスパターン以外のパターンを同様にサポートするこ
とも可能である。The pattern determining section 46 determines a command pattern for a command received from the host via the host interface 45. In this embodiment, four command patterns (1) sequential read, (2) sequential write, (3) random read, and (4) random write are supported. Of course, patterns other than these four access patterns can be similarly supported.
【0059】パターン判別部46は予め磁気ディスクの
領域ごとに、記憶するデータのアクセスパターンを指定
しており、ホストからリードコマンドまたはライトコマ
ンドを受信した際のアドレスをディスク領域の指定情報
と比較することでコマンドのパターンを判別する。The pattern discriminating section 46 specifies an access pattern of data to be stored for each area of the magnetic disk in advance, and compares an address when a read command or a write command is received from the host with information for specifying the disk area. This determines the command pattern.
【0060】コマンドパターンごとのディスク領域の指
定は、ホストからユーザがコマンドを使用して行うこと
ができる。例えばSCSIにあっては、ベンダユニーク
コマンドを使用してユーザ指定により磁気ディスク媒体
のディスク領域として論理ブロックアドレスLBA0で
定義されているパーテーションにつき、4つのアクセス
パターンであるシーケンシャルリード、シーケンシャル
ライト、ランダムリード及びランダムライトに対するパ
ーテーションとの対応関係を指定し、これをディスク領
域指定情報48として記憶している。The designation of the disk area for each command pattern can be performed by the user from the host using a command. For example, in the case of SCSI, four access patterns, sequential read, sequential write, and random read, are used for a partition defined by a logical block address LBA0 as a disk area of a magnetic disk medium by a user specification using a vendor unique command. In addition, the correspondence between the partition and the partition for the random write is designated, and this is stored as the disk area designation information 48.
【0061】アクセスパターンと対応関係をもって指定
されたパーテーションのテーブル情報は、テーブルの先
頭アドレスと最終アドレスが分かっていることから、ホ
ストから受信したコマンドのアドレスと比較することで
アクセス対象とするディスク領域が判明し、ディスク領
域が分かればディスク領域指定情報48からアクセスパ
ターンの種類を判別することができる。The table information of the partition specified in association with the access pattern is obtained by comparing the address of the command received from the host with the disk area to be accessed because the start address and the end address of the table are known. Is determined, and if the disk area is known, the type of access pattern can be determined from the disk area designation information 48.
【0062】パターン判別部46に続いて設けられたキ
ャッシュ制御機構52は、キャッシュメモリ54に格納
するキャッシュデータを管理するキャッシュテーブル5
6と、キャッシュメモリ54上に存在するキャッシュデ
ータの廃棄を管理するLRU管理部58を備えている。The cache control mechanism 52 provided subsequent to the pattern discriminating section 46 has a cache table 5 for managing cache data stored in the cache memory 54.
6 and an LRU management unit 58 that manages the disposal of cache data existing in the cache memory 54.
【0063】キャッシュ制御機構52はホストインタフ
ェース45及びパターン判別部46を介してホストから
移動したリードコマンドまたはライトコマンドにつき、
キャッシュテーブル52の参照でキャッシュメモリ54
上にリードデータが存在するキャッシュヒットを判別す
ると、キャッシュメモリ54上のキャッシュデータをリ
ードデータとしてホストに応答してコマンドを正常終了
する。The cache control mechanism 52 responds to a read command or a write command moved from the host via the host interface 45 and the pattern discriminating unit 46.
By referring to the cache table 52, the cache memory 54
When a cache hit in which the read data is present is determined, the command is normally completed in response to the host using the cache data in the cache memory 54 as the read data.
【0064】キャッシュメモリ54上にリードデータが
なければ、パターン判別部46によるリードコマンドの
判別結果、即ちシーケンシャルリードかランダムリード
かに応じたスケジュール機構50に対するコマンドのキ
ューイングによるスケジュール処理を経てリードデータ
を応答する。If there is no read data in the cache memory 54, the result of the determination of the read command by the pattern determining section 46, that is, the read data is processed through the schedule processing by queuing the command to the schedule mechanism 50 according to the sequential read or the random read. To respond.
【0065】またキャッシュ制御機構52でホストから
のライトコマンドを受けた場合には、キャッシュメモリ
54上に一定値以上の空き領域があれば、ホストからの
ライトデータをキャッシュメモリ54に転送して書き込
んだ後、ホストに対しライトコマンドの正常終了を通知
する。When the cache control mechanism 52 receives a write command from the host, if there is a free area of a certain value or more in the cache memory 54, the write data from the host is transferred to the cache memory 54 and written. Then, the host is notified of the normal end of the write command.
【0066】同時にライトコマンドは、パターン判別部
46でアクセスパターンの種別を判別した後、スケジュ
ール機構50側にキューイングし、キューイングしたラ
イトコマンドに基づくキャッシュメモリ54上のライト
データの磁気ディスクに対するライトバックを行う。At the same time, the write command is discriminated by the pattern discriminating section 46 to determine the type of the access pattern, then queued to the schedule mechanism 50 side, and the write data in the cache memory 54 based on the queued write command is written to the magnetic disk. Do the back.
【0067】スケジュール機構50は、パターン判別部
46で判別した4つのアクセスパターンであるシーケン
シャルリード、シーケンシャルライト、ランダムリード
及びランダムライトに分けて、各アクセスパターンを考
慮したコマンドのスケジューリングを行う。The schedule mechanism 50 divides the four access patterns identified by the pattern identification section 46 into sequential read, sequential write, random read, and random write, and schedules commands in consideration of each access pattern.
【0068】このためスケジューリング機構50にはシ
ーケンシャルリードスケジューラ60、シーケンシャル
ライトスケジューラ62、ランダムリードスケジューラ
64及びランダムライトスケジューラ66が設けられて
いる。これらのスケジューラ60,62,64,66の
それぞれには、シーケンシャルリードキュー70、シー
ケンシャルライトキュー72、ランダムリードキュー7
4及びランダムライトキュー76が設けられている。For this purpose, the scheduling mechanism 50 is provided with a sequential read scheduler 60, a sequential write scheduler 62, a random read scheduler 64, and a random write scheduler 66. Each of these schedulers 60, 62, 64, 66 has a sequential read queue 70, a sequential write queue 72, a random read queue 7
4 and a random write queue 76 are provided.
【0069】更にシーケンシャルリードスケジューラ6
0にはプリフェッチ処理部78が設けられ、ランダムラ
イトスケジューラ66にはライトバック処理部80が設
けられている。Further, the sequential read scheduler 6
0 is provided with a prefetch processing unit 78, and the random write scheduler 66 is provided with a write-back processing unit 80.
【0070】スケジュール機構50は一定時間ごとに、
シーケンシャルリードスケジューラ60、シーケンシャ
ルライトスケジューラ62、ランダムリードスケジュー
ラ64及びランダムライトスケジューラ66を動作し、
それぞれのキュー70,72,74,76のコマンドを
ディスクタイムシェアリング機構82に設けているシー
ケンシャルキュー84またはランダムアクセスキュー8
6に投入するスケジューリングを行うが、このスケジュ
ーリングは各アクセスパターンごとに固有の処理経過を
とる。The schedule mechanism 50 operates at regular intervals.
Operate a sequential read scheduler 60, a sequential write scheduler 62, a random read scheduler 64, and a random write scheduler 66,
The commands of the queues 70, 72, 74, 76 are transferred to the sequential queue 84 or the random access queue 8 provided in the disk time sharing mechanism 82.
6 is performed, and this scheduling takes a process specific to each access pattern.
【0071】まずシーケンシャルリードスケジューラ6
0は、シーケンシャルリードキュー70にコマンドが格
納されている場合は一定量のコマンドをディスクタイム
シェアリング機構82のシーケンシャルキュー84に投
入する。First, the sequential read scheduler 6
0 indicates that if a command is stored in the sequential read queue 70, a certain amount of the command is input to the sequential queue 84 of the disk time sharing mechanism 82.
【0072】このコマンドの投入によりシーケンシャル
リードキュー70が空になった場合は、プリフェッチ処
理部78を起動して後続のプリフェッチコマンドをディ
スクタイムシェアリング機構のシーケンシャルキュー8
4に投入する。When the sequential read queue 70 becomes empty due to the input of this command, the prefetch processing unit 78 is started to transmit the subsequent prefetch command to the sequential queue 8 of the disk time sharing mechanism.
Put into 4.
【0073】このためホストのシーケンシャルリード中
にコマンド転送に時間がかかってシーケンシャルリード
キュー70が空になっても、そのプリフェッチ処理部7
8によって後続するシーケンシャルリードコマンドがプ
リフェッチコマンドとして生成されてディスクタイムシ
ェアリング機構82のシーケンシャルキュー84に投入
され、これによってドライブインタフェースロジック2
6のリオーダリング機構88を経由してプリフェッチさ
れたシーケンシャルリードコマンドよりキャッシュメモ
リ54上にシーケンシャルリードデータがプリフェッチ
され、後続するシーケンシャルリードコマンドに対しキ
ャッシュ制御機構52側でプリフェッチデータのキャッ
シュヒットとなって、シーケンシャルリードのスループ
ットを向上することができる。For this reason, even if the command transfer takes time during the sequential read of the host and the sequential read queue 70 becomes empty, the prefetch processing unit 7
8, a subsequent sequential read command is generated as a prefetch command and input to the sequential queue 84 of the disk time sharing mechanism 82, whereby the drive interface logic 2
6, the sequential read data is prefetched on the cache memory 54 from the sequential read command prefetched via the reordering mechanism 88, and a cache hit of the prefetched data occurs on the cache control mechanism 52 side for the subsequent sequential read command. Thus, the sequential read throughput can be improved.
【0074】シーケンシャルライトスケジューラ62
は、シーケンシャルライトキュー72にコマンドが格納
されている場合は全てのコマンドをディスクタイムシェ
アリング機構82のシーケンシャルキュー84に投入す
る。このシーケンシャルライトコマンドのシーケンシャ
ルキュー84に対する投入は、ホストからのシーケンシ
ャルライトコマンドについてキャッシュメモリ54上に
転送してホストに対し正常終了した後のキャッシュメモ
リ54のライトデータの磁気ディスクに対するライトバ
ックのスケジューリングを行わせることになる。The sequential write scheduler 62
Sends all commands to the sequential queue 84 of the disk time sharing mechanism 82 when the commands are stored in the sequential write queue 72. The input of the sequential write command into the sequential queue 84 is performed by transferring the sequential write command from the host to the cache memory 54 and scheduling the write back of the write data in the cache memory 54 to the magnetic disk after the host completes the normal write command. Will be done.
【0075】これによってキャッシュメモリ54に転送
されたシーケンシャルライトデータのライトバック効率
を高め、ライトバックによってキャッシュメモリ54上
のライトデータは破棄可能データとなることで、後続す
るホストからのライトコマンドによるライトデータのキ
ャッシュメモリ54上での空き領域の確保を十分に可能
とする。As a result, the write-back efficiency of the sequential write data transferred to the cache memory 54 is improved, and the write-back on the cache memory 54 becomes discardable data by the write-back. It is possible to sufficiently secure a free area on the cache memory 54 for data.
【0076】ランダムリードスケジューラ64は、ラン
ダムリードキュー74にコマンドが格納されている場合
は一定量のコマンドをディスクタイムシェアリング機構
82のランダムアクセスキュー86に投入する。When a command is stored in the random read queue 74, the random read scheduler 64 submits a certain amount of commands to the random access queue 86 of the disk time sharing mechanism 82.
【0077】更にランダムライトスケジューラ66は、
ランダムライトキュー76にコマンドが格納されている
場合、キャッシュメモリ54の空き容量が所定値以上の
時はスケジューリングを行わずに、キャッシュメモリ5
4の空き容量が所定値未満となった時に、ランダムライ
トキュー76に格納しているコマンドの内、ライトデー
タが最も古いコマンドとそのライトデータのアドレスか
ら一定範囲にあるライトデータの他のコマンドを優先的
にライトバックするスケジューリングを行う。Further, the random write scheduler 66
When a command is stored in the random write queue 76, if the free space in the cache memory 54 is equal to or larger than a predetermined value, scheduling is not performed and the cache memory 5
When the free space of No. 4 becomes smaller than the predetermined value, the command having the oldest write data among the commands stored in the random write queue 76 and other commands of the write data within a certain range from the address of the write data are deleted. A scheduling for preferentially writing back is performed.
【0078】ディスクタイムシェアリング機構82は、
スケジュール機構50によるアクセスパターンを考慮し
てスケジュールされたコマンドの投入を受けたシーケン
シャルキュー84及びランダムアクセスキュー86のコ
マンドを対象に、予め設定されたシーケンシャルアクセ
ス割当時間τ1とランダムアクセス割当時間τ2を順番
に切り替えてリオーダリング機構88のコマンドキュー
92にコマンドを投入する。The disk time sharing mechanism 82
For the commands in the sequential queue 84 and the random access queue 86 which have received the commands scheduled in consideration of the access pattern by the schedule mechanism 50, the predetermined sequential access allocation time τ1 and random access allocation time τ2 are sequentially set. And the command is input to the command queue 92 of the reordering mechanism 88.
【0079】またシーケンシャルキュー84とランダム
アクセスキュー86の一方にしかコマンドが格納されて
いない場合は、割当時間τ1,τ2に関わらず、コマン
ドを格納しているキューからリオーダリング機構88に
コマンドを連続して投入することになる。When the command is stored in only one of the sequential queue 84 and the random access queue 86, the command is continuously transmitted from the queue storing the command to the reordering mechanism 88 regardless of the allocation times τ1 and τ2. And then throw it in.
【0080】このディスクタイムシェアリング機構82
によるシーケンシャルアクセスとランダムアクセスにつ
いて割当時間τ1,τ2を定めたタイムシェアリングに
よるスケジューリングで、シーケンシャルアクセスにつ
いてはスループットを保証し、またランダムアクセスに
ついてはレスポンス性能を保証する。This disk time sharing mechanism 82
For the sequential access and the random access, the scheduling is performed by time sharing in which the allocation times τ1 and τ2 are determined, and the throughput is guaranteed for the sequential access, and the response performance is guaranteed for the random access.
【0081】更にディスクタイムシェアリング機構82
は、リオーダリング機構88に対するコマンド投入の際
にシンプルタスクとオーダドタスクの指定を分けてスケ
ジューリングする。即ちディスクタイムシェアリング機
構82は、シーケンシャルキュー84とランダムアクセ
スキュー86からコマンドをリオーダリング機構88の
コマンドキュー90に投入する際に、アクセスキューを
切り替えた直後の最初のコマンドはオーダドタスクを指
定する。このオーダドタスクの指定により、リオーダリ
ング機構88は2時間前に格納したコマンドを完了させ
た後に切替後のコマンドをスケジューリングする。Further, the disk time sharing mechanism 82
Schedules the designation of the simple task and the ordered task separately when the command is input to the reordering mechanism 88. That is, when the disk time sharing mechanism 82 sends a command from the sequential queue 84 and the random access queue 86 to the command queue 90 of the reordering mechanism 88, the first command immediately after switching the access queue specifies an ordered task. By the designation of the ordered task, the reordering mechanism 88 completes the command stored two hours ago and then schedules the command after switching.
【0082】またディスクタイムシェアリング機構82
はキュー切替直後のコマンドをオーダードタスクで指定
した後は、次にキューを切り替えるまでの間のコマンド
についてはシンプルタスクを指定し、このシンプルタス
クの指定でリオーダリング機構88はポジショニング時
間を最小とするように、いくつものコマンドの実行順番
をスケジューリングする。The disk time sharing mechanism 82
After specifying the command immediately after the queue switching in the ordered task, specify the simple task for the command until the next queue switching, and by specifying this simple task, the reordering mechanism 88 minimizes the positioning time. Schedule the execution order of several commands.
【0083】このような切替直後のオーダドタスクの指
定と次に切り替えるまでのシンプルタスクの指定によっ
て、1つの割当時間内でシーケンシャルアクセスまたは
ランダムアクセスのコマンドをリオーダリング機構88
に対し連続して投入することができる。By specifying the ordered task immediately after the switching and the simple task until the next switching, the sequential access or random access command can be reordered within one allotted time.
Can be supplied continuously.
【0084】この場合、ディスクタイムシェアリング機
構82はリオーダリング機構88にコマンドを投入する
際に、投入した複数のコマンドの処理に必要な時間を予
測し、次のアクセスパターンの割当時間に切り替えた後
に、切り替えたアクセスパターンのコマンドを投入する
か否かの判断を行うようにしている。このディスクタイ
ムシェアリング機構機構82のスケジューリングについ
ては後の説明で更に明らかにする。In this case, when a command is input to the reordering mechanism 88, the disk time sharing mechanism 82 estimates the time required for processing the plurality of input commands and switches to the allocation time of the next access pattern. Thereafter, it is determined whether or not to input a command of the switched access pattern. The scheduling of the disk time sharing mechanism 82 will be further clarified in a later description.
【0085】図4は、図3における本発明によるアクセ
スパターンスケジュール処理のフローチャートであり、
割込処理により起動する処理となる。FIG. 4 is a flowchart of the access pattern schedule process according to the present invention in FIG.
This is a process activated by the interrupt process.
【0086】図4において、ステップS1で割込みを判
別しており、割込みを判別するとステップS2に進み、
スケジューリング割込みか否かチェックする。スケジュ
ーリング割込みであればステップS3に進み、図3のス
ケジュール機構50によるアクセスパターンを考慮した
コマンドのスケジューリングを行う。In FIG. 4, the interrupt is determined in step S1, and when the interrupt is determined, the process proceeds to step S2.
Check if it is a scheduling interrupt. If it is a scheduling interrupt, the process proceeds to step S3, and the scheduling is performed by the schedule mechanism 50 of FIG. 3 in consideration of the access pattern.
【0087】またステップS4でコマンド受付け割込み
を判別すると、ステップS5のコマンド受付処理を行
う。このコマンド受付処理は、図3のコマンドパターン
判別部46におけるアクセスパターンごとにディスク領
域を指定するための処理を行うコマンド受付処理と通常
のライトコマンドやリードコマンドを受付けする処理を
含む。If a command acceptance interrupt is determined in step S4, a command acceptance process in step S5 is performed. The command receiving process includes a command receiving process of performing a process for specifying a disk area for each access pattern in the command pattern determining unit 46 of FIG. 3 and a process of receiving a normal write command or a read command.
【0088】更にステップS6でコマンド終了割込みを
判別した場合には、ステップS7でコマンド終了処理を
行う。このコマンド終了処理は図3のスケジュール機構
50でスケジュールしてディスクタイムシェアリング機
構82側に投入したコマンドの終了応答に対する割込処
理を行うことになる。更に、それ以外のコマンド割込み
であった場合については、ステップS8でその他の割込
みに対応した処理を行うことになる。Further, if it is determined in step S6 that a command end interrupt has occurred, a command end process is performed in step S7. This command end process is to execute an interrupt process in response to the end response of the command which is scheduled by the schedule mechanism 50 of FIG. 3 and input to the disk time sharing mechanism 82 side. Further, in the case of other command interruption, a process corresponding to the other interruption is performed in step S8.
【0089】図5は、図4におけるステップS5のコマ
ンド受付処理の詳細を示したフローチャートである。こ
のコマンド受付処理は図3のコマンドパターン判別部4
6における処理となる。FIG. 5 is a flowchart showing details of the command receiving process in step S5 in FIG. This command accepting process is performed by the command pattern determining unit
6.
【0090】まずステップS1でアクセスパターン関連
付けコマンドか否かチェックする。図3の実施形態にあ
ってはアクセスパターンごとにディスク領域を指定する
ため、ユーザがホスト側から例えばSCSIのベンダユ
ニークコマンドをアクセスパターン関連付けコマンドと
して送っていることから、このアクセスパターン関連付
けコマンドを判別するとステップS2に進み、シーケン
シャルとランダムにつき各パターンのアクセス領域の設
定を行う。First, it is checked in step S1 whether the command is an access pattern association command. In the embodiment shown in FIG. 3, since the user sends a SCSI vendor unique command, for example, as an access pattern association command from the host side to specify a disk area for each access pattern, the access pattern association command is determined. Then, the process proceeds to step S2, where an access area of each pattern is set for sequential and random.
【0091】即ち、シーケンシャルリード、シーケンシ
ャルライト、ランダムリード、ランダムライトの4つの
アクセスパターンに対応して例えば磁気ディスク媒体の
パーテーションとの関係を設定し、これを図3のパター
ン判別部46のディスク領域指定情報48として記憶す
る。That is, a relationship with, for example, a partition of a magnetic disk medium is set corresponding to four access patterns of sequential read, sequential write, random read, and random write, and this is set to the disk area of the pattern discriminating section 46 in FIG. It is stored as the designation information 48.
【0092】ステップS2のディスク領域の設定処理が
ステップS3で正常終了すれば、ステップS4で正常終
了応答がホストに返され、これ以降のリードコマンド及
びライトコマンドについては、本発明によるアクセスパ
ターンに応じたスケジュール処理が可能となる。またア
クセスパターンごとのディスク領域の設定処理が正常に
できなかった場合には、ステップS5でホストに異常終
了応答を返すことになる。If the disk area setting process in step S2 ends normally in step S3, a normal end response is returned to the host in step S4, and subsequent read commands and write commands are set according to the access pattern according to the present invention. Schedule processing can be performed. If the setting of the disk area for each access pattern cannot be performed normally, an abnormal end response is returned to the host in step S5.
【0093】一方、ステップS1でアクセスパターン関
連付けコマンド以外のコマンド受付けであった場合に
は、通常のリードコマンドまたはライトコマンドである
ことから、ステップS6の通常コマンド処理に進む。On the other hand, if a command other than the access pattern association command is received in step S1, it is a normal read command or write command, and the process proceeds to the normal command processing in step S6.
【0094】図6は図5のステップS6における通常コ
マンド処理の詳細を示したフローチャートである。この
通常コマンド処理はホストからのリードコマンド及びラ
イトコマンドに対するコマンド処理であり、例えば図7
のようなフォーマットを持ったコマンドデータブロック
を受け付けて処理する。FIG. 6 is a flowchart showing details of the normal command processing in step S6 of FIG. This normal command process is a command process for a read command and a write command from the host.
A command data block having a format as described above is received and processed.
【0095】図7(A)はSCSIで使用するリードコ
マンドデータブロックであり、5バイトのコマンドデー
タであり、先頭のバイト0にリードを示すコマンドコー
ド「0A」を格納し、バイト1〜3は論理ブロックアド
レスフィールドであり、論理ブロックアドレスにおける
リードデータの先頭アドレスを格納している。FIG. 7A shows a read command data block used in SCSI, which is 5-byte command data. A command code "0A" indicating read is stored in the first byte 0, and bytes 1 to 3 are stored. This is a logical block address field, and stores the head address of read data in the logical block address.
【0096】またバイト4は転送ブロック数であり、こ
の論理ブロック数は最大256論理データブロックまで
指定可能である。この論理ブロック数のフィールドが0
のときは256論理データブロックの転送が指定され、
0以外の時は転送すべき論理データブロックの数が指定
される。Byte 4 is the number of transfer blocks, and the number of logical blocks can be specified up to a maximum of 256 logical data blocks. If the field of the number of logical blocks is 0
In the case of, transfer of 256 logical data blocks is specified,
When it is other than 0, the number of logical data blocks to be transferred is specified.
【0097】図7(B)はライトコマンドデータブロッ
クであり、図7のリードコマンドデータブロックと同
様、5バイトのコマンドデータであり、先頭のバイト0
にライトコマンドのコード「08」を格納している。次
のバイト1〜3は論理ブロックアドレスフィールドであ
り、ライトデータの論理ブロックアドレスフィールドに
おける先頭アドレスを指定する。更にバイト4は転送ブ
ロック数であり、最大256論理データブロックまで指
定可能である。FIG. 7B shows a write command data block, which is 5 bytes of command data, like the read command data block shown in FIG.
The code "08" of the write command is stored in the "." The next bytes 1 to 3 are a logical block address field, which specifies the start address of the write data in the logical block address field. Byte 4 is the number of transfer blocks, and up to 256 logical data blocks can be specified.
【0098】この転送ブロック数のフィールドが0のと
きは256論理データブロックのライトデータの転送が
指定され、0以外の時は転送すべきライトデータの論理
データブロック数が指定される。When the transfer block number field is 0, the transfer of write data of 256 logical data blocks is designated, and when the value is other than 0, the number of logical data blocks of write data to be transferred is designated.
【0099】このようなリードコマンド及びライトコマ
ンドの受付けに対する図6の通常コマンド処理は次のよ
うになる。まずステップS1でリードコマンドか否かを
チェックしてする。リードコマンドの受付けであれば、
キャッシュ制御機構52においてキャッシュメモリ54
上でリードデータがミスヒットとなったことを条件にス
テップS2に進む。The normal command processing of FIG. 6 for receiving such a read command and a write command is as follows. First, it is checked in step S1 whether the command is a read command. If accepting a read command,
The cache memory 54 in the cache control mechanism 52
The process proceeds to step S2 on condition that the read data is a mishit.
【0100】ステップS2では、パターン判別部46で
リードコマンドのパターンがシーケンシャルリードかラ
ンダムリードかを判別し、対応するアクセスパターンの
キュー、例えばシーケンシャルリードであればリードコ
マンドをシーケンシャルリードスケジューラ60のシー
ケンシャルリードキュー70に格納し、ランダムリード
のリードコマンドであればランダムリードスケジューラ
64のランダムリードキュー74に格納する。In step S2, the pattern discriminating section 46 discriminates whether the pattern of the read command is sequential read or random read, and queues the corresponding access pattern. The command is stored in the queue 70, and if it is a random read read command, it is stored in the random read queue 74 of the random read scheduler 64.
【0101】ステップS1で受付コマンドがライトコマ
ンドであった場合にはステップS3に進み、キャッシュ
メモリ54の空き容量が一定値以上か否かチェックす
る。キャッシュメモリ54の空き容量が一定値以上であ
れば、ステップS4でライトデータをキャッシュメモリ
54に転送してホストに対し正常終了する。If the received command is a write command in step S1, the flow advances to step S3 to check whether the free space of the cache memory 54 is equal to or more than a predetermined value. If the free space in the cache memory 54 is equal to or more than the predetermined value, the write data is transferred to the cache memory 54 in step S4, and the host normally ends.
【0102】続いてステップS2に進み、受け付けたラ
イトコマンドのアクセスパターンをパターン判別部46
でディスク領域指定情報48から判別し、シーケンシャ
ルライトであればシーケンシャルライトスケジューラの
シーケンシャルライトキュー72にライトコマンドを格
納し、またランダムライトであればランダムライトスケ
ジューラ66のランダムライトキュー76にライトコマ
ンドを格納する。Then, the process proceeds to a step S2, wherein the access pattern of the received write command is determined by the pattern discriminating section 46.
In the case of sequential write, the write command is stored in the sequential write queue 72 of the sequential write scheduler, and in the case of random write, the write command is stored in the random write queue 76 of the random write scheduler 66. I do.
【0103】ステップS3でキャッシュメモリ54の空
き容量が一定値以上なかった場合には、ステップS5に
進み、キャッシュ制御機構52のキャッシュテーブル5
6の参照で廃棄可能データの有無をチェックする。廃棄
可能データがあればステップS6でキャッシュメモリ5
4からデータを廃棄した後、ステップS3に戻り、これ
によってデータ空き容量が一定値以上となれば、ステッ
プS4でライトデータをキャッシュメモリ54に転送
し、ステップS2でアクセスパターンに対応したライト
コマンドのシーケンシャルライトキュー72またはラン
ダムライトキュー76に対する格納を行う。If the free space in the cache memory 54 is not equal to or more than the predetermined value in step S3, the process proceeds to step S5, where the cache table 5
Check whether there is any discardable data by referring to step 6. If there is discardable data, at step S6 the cache memory 5
After discarding the data from step S4, the process returns to step S3. If the data free space becomes equal to or larger than a predetermined value, the write data is transferred to the cache memory 54 in step S4, and the write command corresponding to the access pattern is transferred in step S2. The data is stored in the sequential write queue 72 or the random write queue 76.
【0104】ステップS5でキャッシュメモリ54に廃
棄可能データがなかった場合には、ステップS7でホス
トにビジーを通知して処理を終了する。If there is no discardable data in the cache memory 54 in step S5, a busy is notified to the host in step S7, and the process ends.
【0105】図8は図4のステップS3におけるスケジ
ューリング処理の詳細を示したフローチャートであり、
このスケジューリング処理は図3のスケジュール機構5
0が一定時間ごとにアクセスパターンに対応したキュー
に格納しているコマンドをスケジューリングしてディス
クタイムシェアリング機構82のキューに投入する処理
である。FIG. 8 is a flowchart showing details of the scheduling process in step S3 of FIG.
This scheduling process is performed by the scheduling mechanism 5 shown in FIG.
0 is a process for scheduling a command stored in a queue corresponding to an access pattern at regular intervals and inputting the command to the queue of the disk time sharing mechanism 82.
【0106】図8において、一定時間ごとの割込みで実
行されるスケジューリング処理は、まずステップS1で
スケジュール機構50に設けている4つのアクセスパタ
ーンに対応したキュー70,72,74,76にコマン
ドがあるか否かチェックし、コマンドがなければ処理を
終了し、コマンドがあればステップS2に進み、アクセ
スパターンの種別を判別する。Referring to FIG. 8, in the scheduling process executed by interruption every predetermined time, first, in step S1, there are commands in queues 70, 72, 74 and 76 corresponding to the four access patterns provided in the schedule mechanism 50. It is checked whether or not there is no command, and if there is no command, the process is terminated.
【0107】このアクセスパターンの種別により、キュ
ーイングされているコマンドがステップS3でシーケン
シャルリードのコマンドであれば、ステップS4に進
み、シーケンシャルリードスケジューラ60によるシー
ケンシャルリードスケジューリングを実行する。According to the type of the access pattern, if the queued command is a sequential read command in step S3, the flow advances to step S4 to execute sequential read scheduling by the sequential read scheduler 60.
【0108】またステップS5でキューイングされてい
るコマンドがシーケンシャルライトであれば、ステップ
S6に進み、シーケンシャルライトスケジューラ62に
よりシーケンシャルライトスケジューリングを実行す
る。If the command queued in step S5 is a sequential write, the flow advances to step S6 to execute sequential write scheduling by the sequential write scheduler 62.
【0109】またキューイングされているコマンドがス
テップS7でランダムリードであった場合には、ステッ
プS8に進み、ランダムリードスケジューラ64によっ
てランダムリードスケジューリングを実行する。If the queued command is a random read in step S7, the flow advances to step S8, and the random read scheduler 64 executes random read scheduling.
【0110】更にキューイングされているコマンドがラ
ンダムライトであった場合にはステップS9に進み、ラ
ンダムライトスケジューラ66によりランダムライトス
ケジューリングを実行する。このスケジューリング処理
におけるシーケンシャルリード、シーケンシャルライ
ト、ランダムリード及びランダムライトの各スケジュー
リングは、図9,図10,図11及び図12のそれぞれ
で明らかにされる。If the queued command is a random write, the flow advances to step S9 to execute random write scheduling by the random write scheduler 66. Each scheduling of the sequential read, the sequential write, the random read, and the random write in the scheduling process is clarified in FIGS. 9, 10, 11, and 12, respectively.
【0111】図9は、図8のステップS4のシーケンシ
ャルリードスケジューリングのフローチャートである。
シーケンシャルリードスケジューリングは、図3のシー
ケンシャルリードスケジューラ60により実行される。FIG. 9 is a flowchart of the sequential read scheduling in step S4 in FIG.
The sequential read scheduling is executed by the sequential read scheduler 60 in FIG.
【0112】まずステップS1でシーケンシャルリード
キュー70が空か否かチェックし、リードコマンドが確
認されていればステップS2に進み、一定量のコマンド
をディスクタイムシェアリング機構82のシーケンシャ
ルキュー84に投入する。First, in step S1, it is checked whether or not the sequential read queue 70 is empty. If the read command is confirmed, the process proceeds to step S2, where a fixed amount of commands are input to the sequential queue 84 of the disk time sharing mechanism 82. .
【0113】このコマンドの投入によりステップS3で
シーケンシャルリードキュー70が空になった場合に
は、ステップS4でプリフェッチ処理部78を起動し、
後続のプリフェッチコマンドを生成してディスクタイム
シェアリング機構82のシーケンシャルキュー84に投
入して処理を終了する。When the sequential read queue 70 becomes empty in step S3 due to the input of this command, the prefetch processing unit 78 is started in step S4,
A subsequent prefetch command is generated and input to the sequential queue 84 of the disk time sharing mechanism 82, and the process ends.
【0114】一方、ステップS1でシーケンシャルリー
ドの途中でシーケンシャルリードキュー70が空であっ
た場合には、ステップS5に進み、プリフェッチ処理部
78によって後続のプリフェッチコマンドを生成してデ
ィスクタイムシェアリング機構82のシーケンシャルキ
ュー84に投入する。On the other hand, if the sequential read queue 70 is empty during the sequential read in step S1, the process proceeds to step S5, where the prefetch processing unit 78 generates a subsequent prefetch command and generates the disk time sharing mechanism 82. To the sequential queue 84.
【0115】図10は、図8のステップS6におけるシ
ーケンシャルライトスケジューリングのフローチャート
であり、図2のシーケンシャルライトスケジューラ62
で行われる。このシーケンシャルライトスケジューリン
グは、ステップS1でシーケンシャルライトキュー72
に格納されている全コマンドをディスクタイムシェアリ
ング機構82のシーケンシャルキュー84に投入する。FIG. 10 is a flowchart of the sequential write scheduling in step S6 of FIG. 8, and the sequential write scheduler 62 of FIG.
Done in In this sequential write scheduling, the sequential write queue 72
Are sent to the sequential queue 84 of the disk time sharing mechanism 82.
【0116】図11は、図8のステップS8におけるラ
ンダムリードスケジューリングのフローチャートであ
り、図22のランダムリードスケジューラ64がランダ
ムリードキュー74に格納されている一定量のコマンド
をディスクタイムシェアリング機構82のランダムキュ
ー86に投入する。FIG. 11 is a flowchart of the random read scheduling in step S8 in FIG. 8. The random read scheduler 64 in FIG. 22 transmits a certain amount of commands stored in the random read queue 74 to the disk time sharing mechanism 82. Input to the random queue 86.
【0117】図12は、図8のステップS9におけるラ
ンダムライトスケジューリングであり、図3のランダム
ライトスケジューラ66で実行される。このランダムラ
イトスケジューリングは、ステップS1でキャッシュメ
モリ54の空き容量が一定値以上か否かチェックする。
空き容量が一定値以上であれば、ランダムライトキュー
76にコマンドが格納されていてもスケジューリングは
行わない。FIG. 12 shows the random write scheduling in step S9 in FIG. 8, which is executed by the random write scheduler 66 in FIG. In this random write scheduling, it is checked in step S1 whether the free space of the cache memory 54 is equal to or larger than a certain value.
If the free space is equal to or more than a certain value, scheduling is not performed even if a command is stored in the random write queue 76.
【0118】ステップS1でキャッシュメモリ54の空
き容量が一定値以上でなかった場合には、ライトバック
処理部80によってキャッシュメモリ54のライトデー
タを磁気ディスクにライトバックして、廃棄データとす
るための優先的なライトバック処理を行う。If the free space in the cache memory 54 is not equal to or larger than the predetermined value in step S1, the write-back processing unit 80 writes the write data in the cache memory 54 back to the magnetic disk to generate discard data. Perform priority write-back processing.
【0119】即ちステップS2にあっては、ランダムラ
イトキュー76に格納されているライトコマンドに対応
したキャッシュメモリ54上のライトデータの内、最も
古いライトコマンドのアドレスから一定範囲にあるライ
トデータに対応したライトコマンドを、最も古いライト
コマンドと共にランダムライトキュー76からディスク
タイムシェアリング機構82のランダムキュー86に投
入し、古いライトデータをディスク媒体にライトバック
させる優先ライトバック処理をスケジューリングする。That is, in step S 2, among the write data in the cache memory 54 corresponding to the write command stored in the random write queue 76, the write data corresponding to the write data within a certain range from the address of the oldest write command are corresponded. The written write command is sent from the random write queue 76 to the random queue 86 of the disk time sharing mechanism 82 together with the oldest write command, and priority write-back processing for writing old write data back to the disk medium is scheduled.
【0120】図13は、図4のステップS7におけるコ
マンド終了処理のフローチャートである。このコマンド
終了処理は図3のスケジュール機構50における各アク
セスパターンに対応したスケジューラ60,62,6
4,66がキャッシュ制御機構52と連携して処理を行
う。FIG. 13 is a flowchart of the command end processing in step S7 in FIG. This command end processing is performed by the schedulers 60, 62, 6 corresponding to each access pattern in the schedule mechanism 50 of FIG.
4 and 66 perform processing in cooperation with the cache control mechanism 52.
【0121】コマンド終了処理は、ディスクタイムシェ
アリング機構82側からリオーダリング機構88にスケ
ジューリングしたコマンドについての正常終了通知がコ
マンド終了割込みとして受け付けられた際に実行され
る。The command end processing is executed when a normal end notification of a command scheduled by the disk time sharing mechanism 82 to the reordering mechanism 88 is received as a command end interrupt.
【0122】まずステップS1で、コマンド終了割込み
が行われたコマンドについて、シーケンシャルリードか
シーケンシャルライトかランダムリードかランダムライ
トかのアクセスパターンの種別判別が行われる。First, in step S1, the type of an access pattern of a sequential read, a sequential write, a random read, or a random write is determined for a command for which a command end interrupt has been performed.
【0123】ステップS2で終了コマンドがシーケンシ
ャルリードであればステップS5に進み、ホストに接続
要求を行い、ステップS6でキャッシュメモリ54経由
でホストのリード後にキャッシュメモリ上のリードデー
タを廃棄可能データとしてキャッシュテーブル56上で
管理する。If the end command is a sequential read in step S2, the flow advances to step S5 to make a connection request to the host. In step S6, the read data in the cache memory is read as discardable data after the host reads via the cache memory 54 and cached. It is managed on the table 56.
【0124】またステップS3で終了コマンドがランダ
ムリードであった場合には、ステップS7に進み、ホス
トに接続要求を行い、ステップS8でキャッシュメモリ
54上に転送しているリードデータをホストに転送した
後、キャッシュメモリ54のリードデータを廃棄可能デ
ータとしてキャッシュテーブル56で管理する。If the end command is a random read in step S3, the flow advances to step S7 to make a connection request to the host. In step S8, the read data transferred on the cache memory 54 is transferred to the host. Thereafter, the read data of the cache memory 54 is managed in the cache table 56 as discardable data.
【0125】更にステップS4で終了コマンドがシーケ
ンシャルライトであることが判別された場合には、ステ
ップS9でキャッシュメモリ54上のライトデータはラ
イトバックが済んだことから廃棄可能として、キャッシ
ュテーブル56で管理する。Further, if it is determined in step S4 that the end command is a sequential write, the write data in the cache memory 54 has been written back in step S9 and can be discarded. I do.
【0126】更に終了コマンドがランダムライトであっ
た場合には特別な終了処理を行わず、メインルーチンに
リターンする。If the end command is a random write, the process returns to the main routine without performing any special end processing.
【0127】このコマンド終了処理の対象となっていな
いランダムライトのライトデータについては、キャッシ
ュ制御機構52に設けているLRU管理部58により管
理する。即ち、ランダムライトのライトデータをキャッ
シュメモリ54に書き込んだ場合には、同じライトデー
タに対しホストからのアクセスが繰り返される可能性が
あることから、ライトコマンドの終了でそのライトデー
タを廃棄可能とせず、キャッシュメモリ上のランダムラ
イトのライトデータのホストアクセスが行われなくなっ
たことをLRU管理部58で管理し、LRU管理により
アクセス時間系列的に末尾となった段階でランダムライ
トのライトデータを破棄可能データとしている。The write data of the random write which is not subjected to the command end processing is managed by the LRU management unit 58 provided in the cache control mechanism 52. That is, when write data of random write is written to the cache memory 54, the same write data may be repeatedly accessed by the host. Therefore, the write data cannot be discarded at the end of the write command. The LRU management unit 58 manages that the host access of the write data of the random write in the cache memory is not performed, and the write data of the random write can be discarded at the end of the access time sequence by the LRU management. Data.
【0128】図14は、図3のディスクタイムシェアリ
ング機構(DTC)の実施形態のブロック図である。FIG. 14 is a block diagram of an embodiment of the disk time sharing mechanism (DTC) of FIG.
【0129】ディスクタイムシェアリング機構82は、
スケジュール機構50からのコマンドをシーケンシャル
アクセスとランダムアクセスにグループ化し、各グルー
プがディスク装置を使用する時間の比率を定義し、定義
された時間比率に基づき各グループが連続してディスク
装置を使用できるクォンタム(割当時間)を決定し、複
数のグループから依頼を受けつけている場合に競合した
グループ間でクォンタムを順番に切り替えてディスク装
置を使用するようにスケジューリングする。The disc time sharing mechanism 82
Commands from the schedule mechanism 50 are grouped into a sequential access and a random access, a ratio of time for each group to use the disk device is defined, and a quantum in which each group can continuously use the disk device based on the defined time ratio. (Allocation time) is determined, and when a request is received from a plurality of groups, quantum is sequentially switched between the competing groups to schedule the disk device to be used.
【0130】またひとつのグループのコマンドのみしか
ない場合は、そのグループのコマンドに対しディスク装
置を連続して使用可能とするスケジューリングを行う。
このような本発明のディスクタイムシェアリングを実現
する図3の各部の構成及び機能を更に詳細に説明すると
次のようになる。If there is only one group of commands, scheduling is performed so that disk devices can be used continuously for the commands of that group.
The configuration and function of each unit in FIG. 3 for realizing such disk time sharing of the present invention will be described in more detail as follows.
【0131】ディスクタイムシェアリング機構82は、
制御情報92、コマンド受付部94、コマンドスケジュ
ール部95、及びコマンド完了処理部96を備える。コ
マンドスケジュール部95は、制御情報92を参照及び
更新してディスクタイムシェアリングのスケジューリン
グを行なう。The disk time sharing mechanism 82
It includes control information 92, a command receiving unit 94, a command schedule unit 95, and a command completion processing unit 96. The command schedule unit 95 refers to and updates the control information 92 to perform disk time sharing scheduling.
【0132】制御情報92は、コマンドをシーケンシャ
ルグループG1とランダムグループG2の2つに分けて
定義した場合を例にとっており、グループG1,G2に
対応してスケジュール待ち用のシーケンシャルキュー8
4とランダムキュー86が設けられる。The control information 92 exemplifies a case where a command is defined by dividing the command into two, a sequential group G1 and a random group G2. The sequential queue 8 for waiting for a schedule corresponds to the groups G1 and G2.
4 and a random queue 86 are provided.
【0133】このスケジュール待ち用のシーケンシャル
キュー84とランダムキュー86には、コマンド受付部
94で受け付けたコマンドがシーケンシャルコマンドと
ランダムコマンドに分けてキューを構成するFIFOに
格納することで並ぶ。In the sequential queue 84 and the random queue 86 for waiting for the schedule, the commands received by the command receiving unit 94 are divided into a sequential command and a random command and stored in the FIFO constituting the queue.
【0134】またグループG1,G2に対応して完了待
ち用のシーケンシャルキュー85とランダムキュー87
が設けられる。完了待ちキュー85,87には、ドライ
ブインタフェースロジック26のリオーダリング機構8
8へコマンドを投入した後、コマンド完了応答を受けて
いないコマンドがキューを構成するFIFOに格納する
ことで並んでいる。A sequential queue 85 for waiting for completion and a random queue 87 corresponding to the groups G1 and G2.
Is provided. In the completion waiting queues 85 and 87, the reordering mechanism 8 of the drive interface logic 26 is provided.
After the command has been input to No. 8, commands that have not received a command completion response are queued by being stored in the FIFO constituting the queue.
【0135】更にグループG1,G2に対応してシーケ
ンシャル用クォンタム98−1とランダム用クォンタム
98−2が設けられる。このクォンタム98−1,98
−2には、グループG1,G2がリオーダリンク機構8
8を使用する時間の比率α1,α2を予め定義し、定義
された比率α1,α2に基づき、それぞれのグループG
1,G2が連続してリオーダリング機構88を使用でき
る割当時間となるクォンタムτ1,τ2を決定して格納
している。Further, a sequential quantum 98-1 and a random quantum 98-2 are provided corresponding to the groups G1 and G2. This quantum 98-1,98
-2, the groups G1 and G2 have the reorder link mechanism 8
8, the ratios α1 and α2 of the times in which the respective groups G are used are defined based on the defined ratios α1 and α2.
Quantum τ1 and τ2, which are allocated times for which the reordering mechanism 88 can use the reordering mechanism 88 continuously, are determined and stored.
【0136】例えば1回のタイムシェアリングを行なう
タイムシェアリング周期をTcとするとグループG1,
G2のクォンタムτ1,τ2は次式で定義される。For example, assuming that the time sharing cycle for performing one time sharing is Tc, the group G1
The quantum τ1, τ2 of G2 is defined by the following equation.
【0137】τ1=α1・Tc τ2=α2・Tc このようなグループG1,G2のディスク装置の使用を
決めるクォンタムτ1,τ2の適正値は次のようにして
決める。まずクォンタムは値を小さくしすぎるとディス
ク装置のコマンド処理時間に近くなり、ポジショニング
時間を最小とするようにコマンドを選択するリオーダリ
ングの効果が小さくなり、全体のコマンド処理性能が低
下する。Τ1 = α1 · Tc τ2 = α2 · Tc The appropriate values of the quantum τ1 and τ2 that determine the use of the disk devices of the groups G1 and G2 are determined as follows. First, if the quantum is set too small, it will approach the command processing time of the disk device, and the effect of reordering to select a command so as to minimize the positioning time will be reduced, thus lowering the overall command processing performance.
【0138】逆にクォンタムの値が大きすぎると、他の
グループに切り替えるクォンタムの待ち時間が延びるこ
とにより、平均コマンド処理時間及び最大コマンド処理
時間が延びることになる。例えばクォンタムτ1とクォ
ンタムτ2をそれぞれ1時間に設定すると、クォンタム
τ1の処理中はクォンタムτ2のコマンドを実行できな
いため、クォンタムτ2のコマンドはクォンタムτ1の
終了を1時間待つことになる。Conversely, if the quantum value is too large, the average command processing time and the maximum command processing time will be prolonged because the quantum waiting time for switching to another group will increase. For example, if the quantum τ1 and the quantum τ2 are set to one hour, respectively, the quantum τ2 command cannot be executed during the processing of the quantum τ1, so that the quantum τ2 command waits for the quantum τ1 to end for one hour.
【0139】本願発明者の実験によれば、コマンドの平
均処理時間が数ms〜20msのディスク装置の場合、
クォンタムの値としては数十ms〜数百msが望まし
い。According to an experiment conducted by the inventor of the present application, in the case of a disk device having an average command processing time of several ms to 20 ms,
The value of the quantum is desirably several tens ms to several hundreds ms.
【0140】更に制御情報92には、現クォンタム種別
100、現クォンタム開始時刻102、更に次コマンド
タスク種別104が設けられる。この現クォンタム種別
100は、現在、リオーダリング機構88を使用してい
るグループの識別子が設定される。Further, the control information 92 includes a current quantum type 100, a current quantum start time 102, and a next command task type 104. In the current quantum type 100, an identifier of a group that is currently using the reordering mechanism 88 is set.
【0141】現クォンタム開始時刻102は、現在クォ
ンタム種別100に設定されている現在のクォンタムが
開始した時刻T0 が設定される。更に次コマンドタスク
種別104は、リオーダリング機構88に対する次のコ
マンド依頼をシンプルタスクとするかオーダードタスク
とするかが設定される。この次コマンドタスク種別10
4に設定されるシンプルタスク又はオーダードタスク
は、リオーダリング機構88の機能を十分に生かすため
に行う。The current quantum start time 102 is set to the time T 0 at which the current quantum set in the current quantum type 100 has started. Further, in the next command task type 104, whether the next command request to the reordering mechanism 88 is a simple task or an ordered task is set. This next command task type 10
The simple task or the ordered task set to 4 is performed to make full use of the function of the reordering mechanism 88.
【0142】ここでリオーダリング機構88は、実行待
ちのコマンドの中からシーク時間と回転時間の和で与え
られるポジショニング時間を最小とするコマンドを次に
実行するコマンドとして選ぶ。Here, the reordering mechanism 88 selects a command that minimizes the positioning time given by the sum of the seek time and the rotation time from the commands waiting to be executed as the next command to be executed.
【0143】このようなリオーダリング機構88にコマ
ンドを発行する場合、シンプルタスクを指定すると、リ
オーダリングの対象としてよいことを通知することにな
る。このシンプルタスクを指定したコマンドを受け付け
たリオーダリング機構88は、ポジショニング時間を最
小とするような順番でコマンドをスケジュールする。When a command is issued to such a reordering mechanism 88, if a simple task is specified, it is notified that the task can be reordered. The reordering mechanism 88 that has received the command specifying the simple task schedules the commands in such an order as to minimize the positioning time.
【0144】しかしながら、リオーダリング機構88は
常にポジショニング時間が最小となるコマンドを選択す
るため、あるコマンドが長い間待ちのままスケジュール
されない現象が発生する。この現象を解消するためリオ
ーダリング機構88はシンプルタスクの他にオーダード
タスクの機能を備えている。However, since the reordering mechanism 88 always selects a command that minimizes the positioning time, a phenomenon occurs in which a certain command is not scheduled while waiting for a long time. In order to solve this phenomenon, the reordering mechanism 88 has an ordered task function in addition to the simple task.
【0145】オーダードタスクを指定してコマンドを発
行すると、リオーダリング機構88はそれまで受け継い
でいた未だ完了していないコマンドを全て完了させた後
に、オーダードタスクのコマンドをスケジュールする。
このためシンプルタスクの間にオーダードタスクを混ぜ
ることで、コマンドの最大応答時間の延長を押さえるこ
とが可能となる。When a command is issued with an ordered task specified, the reordering mechanism 88 schedules the ordered task command after completing all of the commands that have been inherited and have not been completed.
Therefore, it is possible to suppress the extension of the maximum response time of the command by mixing the ordered tasks between the simple tasks.
【0146】本発明のディスクタイムシェアリング機構
82にあっては、クォンタムを切り替えた後の最初のコ
マンドは、オーダードタスクを指定してリオーダリング
機構88にコマンドを発行し、クォンタム切り替え前の
未だ完了していないコマンドを完了させた後に次のクォ
ンタムのコマンドを実行する。このためクォンタムに切
り替えた後の2つ目以降のコマンドについてはシンプル
タスクを指定する。In the disk time sharing mechanism 82 of the present invention, the first command after switching the quantum issues a command to the reordering mechanism 88 by designating the ordered task, and the command before the quantum switching is still executed. Execute the next quantum command after completing the unfinished command. For this reason, a simple task is specified for the second and subsequent commands after switching to quantum.
【0147】また1つのグループのコマンドしかない場
合には、そのグループのスケジュールを連続するために
クォンタムをリセットしながら繰り返すことになる。こ
の場合にあってはクォンタムをリセットした直後の最初
のコマンドはオーダードタスクで依頼し、前のクォンタ
ムで完了してないコマンドを総て完了した後にリセット
後のクォンタムのコマンドをスケジュールする。When there is only one group command, the group is repeated while resetting the quantum in order to continue the schedule. In this case, the first command immediately after resetting the quantum is requested by an ordered task, and after the command that has not been completed in the previous quantum is completed, the command in the reset quantum is scheduled.
【0148】これによって複数のグループのコマンドが
競合する場合、及び1つのグループのみのコマンドが連
続する場合の最大応答時間の延長を防止することができ
る。As a result, it is possible to prevent an increase in the maximum response time when a plurality of groups of commands compete with each other and when only one group of commands continues.
【0149】図15は、図14のディスクタイムシェア
リング機構82に設けているコマンドスケジュール部9
5によるスケジュールの一例である。FIG. 15 shows the command schedule section 9 provided in the disk time sharing mechanism 82 of FIG.
5 is an example of a schedule according to No. 5;
【0150】図15において、シーケンシャルとランダ
ムのグループG1,G2について、制御情報92のシー
ケンシャルキュー84トランダムキュー86にコマンド
が格納されている競合状態にあっては、グループG1,
G2毎に決定されたクォンタムτ1,τ2に従って、グ
ループG1,G2の順に各コマンドをスケジューリング
してリオーダリング機構88にコマンドを発行する。In FIG. 15, regarding the sequential and random groups G1 and G2, when the command is stored in the sequential queue 84 and the random queue 86 of the control information 92, the groups G1 and G2
Each command is scheduled in the order of the groups G1 and G2 according to the quantum τ1 and τ2 determined for each G2, and the commands are issued to the reordering mechanism 88.
【0151】例えば時刻t0からのクォンタムτ1の間
は、シーケンシャルグループG1の2つのコマンドがス
ケジュールされる。クォンタム切替えは、コマンド完了
時点の時刻が現クォンタム切替え時刻を越えた時点で、
次のランダムグループのクォンタムτ2に切替える。こ
の切替えは次式で判断する。 (現在クォンタムのコマンド開始時刻)< (現クォンタム開始時刻+クォンタム) (1) 即ち、(1)式を満たせば、現クォンタム種別に対応す
るシーケンシャルグループG1のコマンドをリオーダリ
ング機構88に発行し、満たさない場合は、次のランダ
ムグループG2のクォンタムに切替える。For example, during the quantum τ1 from time t0, two commands of the sequential group G1 are scheduled. Quantum switching is performed when the time when the command is completed exceeds the current quantum switching time.
Switch to the next random group quantum τ2. This switching is determined by the following equation. (Current quantum command start time) <(current quantum start time + quantum) (1) That is, if the expression (1) is satisfied, a command of the sequential group G1 corresponding to the current quantum type is issued to the reordering mechanism 88, If not, the quantum is switched to the next quantum of the random group G2.
【0152】次のランダムグループG2のクォンタムτ
2の間には、例えば6つのコマンドがスケジュールされ
ている。更に時刻t2でクォンタムτ2が経過すると、
再びシーケンシャルグループG1のクォンタムτ1への
切り替えが行われ、例えば3つのコマンドがスケジュー
ルされる。以下同様にクォンタム持ち時間τ1,τ2を
切り替えて、シーケンシャルアクセスコマンドとランダ
ムアクセスコマンドをスケジュールする。The quantum τ of the next random group G2
Between two, for example, six commands are scheduled. Further, when the quantum τ2 elapses at time t2,
The sequential group G1 is switched to the quantum τ1 again, and, for example, three commands are scheduled. In the same way, the sequential access command and the random access command are scheduled by switching the quantum holding times τ1 and τ2 in the same manner.
【0153】図16は、シーケンシャルグループのコマ
ンドのみが連続した場合のタイムシェアリング処理の一
例である。図16において、時刻t0でシーケンシャル
グループG1のコマンドのみが図14のシーケンシャル
キュー84に並んでおり、ランダムグループG2のラン
ダムキュー86は空であったとする。FIG. 16 shows an example of the time sharing process when only the commands of the sequential group continue. In FIG. 16, it is assumed that at time t0, only the commands of the sequential group G1 are arranged in the sequential queue 84 of FIG. 14, and the random queue 86 of the random group G2 is empty.
【0154】この場合には時刻t0からのシーケンシャ
ルグループG1のクォンタムτ1で2つのシーケンシャ
ルコマンドをスケジュールした後、時刻t1でクォンタ
ムτ1をリセットすることで次の同じシーケンシャルグ
ループG1のクォンタムτ1をリスタートさせ、例えば
3つのシーケンシャルコマンドをスケジュールする。In this case, after scheduling two sequential commands at the quantum τ1 of the sequential group G1 from the time t0, the quantum τ1 of the same sequential group G1 is restarted by resetting the quantum τ1 at the time t1. For example, schedule three sequential commands.
【0155】このようにひとつのグループのコマンドの
み待ち状態にある時は、そのクォンタムをリセットする
ことで連続してひとつのグループのコマンドをスケジュ
ールする。As described above, when only one group of commands is in a waiting state, the quantum is reset to continuously schedule one group of commands.
【0156】更に図16にあっては、時刻t2でグルー
プG1,G2のコマンドが競合状態となることで、次の
クォンタムτ2への切り替えが行われる。しかしなが
ら、クォンタムτ2においてランダムグループG2のコ
マンドが3つしかなく、クォンタムτ2の途中の時刻t
3で3つのコマンドが途絶えている。Further, in FIG. 16, when the commands of the groups G1 and G2 enter a conflicting state at time t2, switching to the next quantum τ2 is performed. However, there are only three commands of the random group G2 in the quantum τ2, and the time t during the quantum τ2
At 3, three commands are interrupted.
【0157】この場合には、シーケンシャルグループG
1に待ち状態のコマンドがあることから、時刻t3でク
ォンタムτ1に切り替え、シーケンシャルグループG1
の例えば3つのコマンドをスケジュールする。In this case, the sequential group G
Since there is a command in the waiting state at time t1, the time is switched to quantum τ1 at time t3, and the sequential group G1
For example, three commands are scheduled.
【0158】この図15及び図16に示したディスクタ
イムシェアリングのスケジュールにおいて、リオーダリ
ング機構88に対するコマンドの発行は、クォンタムを
切り替えた直後のコマンドはオーダードタスクで発行
し、2回目以降の次のクォンタム切替えまでのコマンド
はシンプルタスクで発行する。In the disk time sharing schedule shown in FIG. 15 and FIG. 16, the command issued to the reordering mechanism 88 is issued by the ordered task immediately after the quantum is switched, and the next and subsequent commands are issued. The command up to the quantum switch is issued by a simple task.
【0159】このようにリオーダリング機構88の機能
を生かすためには、クォンタムを切り替えた際に発行し
ているコマンドが全て完了するまでの時間を予測し、こ
の予測時間が切り替え後のクォンタム以内であれば、切
り替え後にコマンドを発行し、予測時間が切り替え後の
クォンタムを越えていた場合には、切り替え後にコマン
トを発行せずに次のクォンタムへの切り替えを待つよう
にする。In order to utilize the function of the reordering mechanism 88 in this way, the time until all the commands issued when the quantum is switched is predicted, and the predicted time is within the quantum after the switching. If so, a command is issued after the switch, and if the predicted time exceeds the quantum after the switch, a command is not issued after the switch, and the switch to the next quantum is waited.
【0160】これはリオーダリング処理の恩恵を受ける
ためには、ディスクタイムシェアリング機構82におい
て、できるだけ多くのコマンドをリオーダリング機構8
8に発行する環境を作るためである。In order to benefit from the reordering process, the disk time sharing mechanism 82 sends as many commands as possible to the reordering mechanism 8.
This is to create an environment for issuing to 8.
【0161】シンプルタスクを使う場合、ディスクタイ
ムシェアリング機構82はリオーダリング機構88に対
して複数のコマンドを発行することになる。ディスクタ
イムシェリング機構82は、コマンド処理時間の時分割
制御を目的としているので、コマンドを発行する際に
は、発行した複数のコマンドをディスクに読み書きする
のに必要な時間を予測し、次のクォンタムに切替えた後
に、切替え後のクォンタム種別のコマンドを投入するか
否か判断する必要がある。When using the simple task, the disk time sharing mechanism 82 issues a plurality of commands to the reordering mechanism 88. Since the disk time shelling mechanism 82 aims to control the command processing time in a time-sharing manner, when issuing a command, it estimates the time required to read and write a plurality of issued commands to the disk, and then executes the next quantum operation. It is necessary to determine whether or not to input a command of the quantum type after the switching after the switching.
【0162】このため、クォンタム切替え時に現在依頼
しているコマンドが次のクォンタム内で完了して新たな
コマンドが投入できるか否かを判断するため残り時間τ
r を次式で算出する。 τr =T0 +τ−Tw −Tnow (2) 但し、T0 はクォンタム開始時刻(予測値) τはクォンタム割当時間 Tw は未処理コマンド処理時間(予測値) Tnow は現在時刻 T0 =Ts +Tw (3) 但し、Ts は切替え前のクォンタム開始時刻 Tw =N×Ta (4) 但し、Nは未処理のコマンド数 Ta はアクセス種別毎によるコマンドの平均処理時間 ここで未処理コマンドとは、リオーダリング機構88に
コマンドを発行して完了応答が返っていなものをいう。
この未処理コマンドには、本発明の実施形態の場合、前
未処理コマンド、前々未処理コマンドおよび全未処理コ
マンドがあり、それぞれ直前のクォンタムの未処理コマ
ンド、2つ前のクォンタムの未処理コマンド、および全
てのクォンタムを通じた未処理コマンドを意味する。Therefore, the remaining time τ is determined in order to determine whether the command currently requested at the time of quantum switching is completed in the next quantum and a new command can be input.
Calculate r by the following formula. τr = T0 + τ−Tw−Tnow (2) where T0 is the quantum start time (predicted value) τ is the quantum allocation time Tw is the unprocessed command processing time (predicted value) Tnow is the current time T0 = Ts + Tw (3) , Ts is the quantum start time before switching Tw = N × Ta (4) where N is the number of unprocessed commands Ta is the average processing time of commands for each access type Here, the unprocessed commands are sent to the reordering mechanism 88. A command that has been issued and has not returned a completion response.
In the case of the embodiment of the present invention, the unprocessed commands include a pre-unprocessed command, a pre-pre-processed command, and an all-unprocessed command, and the unprocessed commands of the immediately preceding quantum and the unprocessed commands of the immediately preceding quantum, respectively. Command, and all outstanding commands through quantum.
【0163】またクォンタム開始時刻T0 も予測値であ
り、前クォンタムの残り時間予測により、現クォンタム
への切替えを判断した際に予測する。この時、リオーダ
リング機構88で前クォンタムの未処理コマンドの処理
が全て完了するのに必要な時間Twを(4)式で予測
し、前クォンタムの終了時刻、即ち、現クォンタムの開
始時刻T0 を(3)式で予測する。The quantum start time T0 is also a predicted value, and is predicted when the switching to the current quantum is determined based on the prediction of the remaining time of the previous quantum. At this time, the time Tw required for the reordering mechanism 88 to complete the processing of all the unprocessed commands of the previous quantum is predicted by equation (4), and the end time of the previous quantum, that is, the start time T0 of the current quantum, is calculated. The prediction is made by the equation (3).
【0164】(2)式の残り時間Trは、ディスクタイ
ムシェアリング機構82が新たなコマンドを受け付けた
場合、またはリオーダリング機構88側からコマンドの
完了応答を受けた場合に算出され、残り時間Tr が Tr >0 あれば、残り時間ありと判断し、現クォンタムのコマン
ドをリオーダリング機構88に発行する。また Tr ≦0 であれば、残り時間なしと判断し、クォンタムを切替え
る。The remaining time Tr in the equation (2) is calculated when the disk time sharing mechanism 82 receives a new command or when a command completion response is received from the reordering mechanism 88, and the remaining time Tr is calculated. If Tr> 0, it is determined that there is remaining time, and the command of the current quantum is issued to the reordering mechanism 88. If Tr ≦ 0, it is determined that there is no remaining time, and the quantum is switched.
【0165】ここで前記(2)式の残り時間Tr の算出
に使用するディスクドライブの平均コマンド処理時間T
a の算出方法は、例えば直前のn個のコマンド処理時間
の平均値とする。この場合nは例えばn=10の有限値
であってもよし、例えばn=∞つまりシステム始動時か
らの総てのコマンドについてでもよい。Here, the average command processing time T of the disk drive used for calculating the remaining time Tr in the above equation (2)
The method of calculating a is, for example, an average value of the last n command processing times. In this case, n may be a finite value of, for example, n = 10, or may be, for example, n = ∞, that is, all commands from the start of the system.
【0166】更にコマンド処理時間の平均値の算出につ
いては、グループ毎に平均値を算出する方法と、全ての
グループの平均値を算出する方法のいずれかとすること
ができる。Further, the average value of the command processing time can be calculated by either a method of calculating an average value for each group or a method of calculating an average value of all groups.
【0167】一方、シーケンシャルアクセスのように大
量データをアクセスする場合、ポジショニング時間がデ
ータ転送時間に比較して短いため、アクセスするデータ
量とディスク転送能力から平均コマンド処理時間Ta を
予測する。この場合、ポジショニング時間はリオーダリ
ング処理の恩恵をどの程度受けられるか、即ちその時の
リオーダリング対象のコマンドの数、個々のコマンドの
アドレスの分散具合などによって違ってくるが、大量デ
ータを扱うシーケンシャルアクセスの場合、処理時間に
占めるポジショニング時間の割合が小さいため、この場
合には処理時間を (平均ポジショニング時間)+(データ転送時間) と予測する。On the other hand, when a large amount of data is accessed as in the case of sequential access, the average command processing time Ta is predicted from the amount of data to be accessed and the disk transfer capability because the positioning time is shorter than the data transfer time. In this case, the positioning time depends on the degree of benefit of the reordering process, that is, the number of commands to be reordered at that time, the distribution of addresses of individual commands, and the like. In the case of, the proportion of the positioning time to the processing time is small. In this case, the processing time is predicted to be (average positioning time) + (data transfer time).
【0168】例えば転送速度が20MB/s、平均回転
待ち時間が3ms、平均シーク時間が5msのディスク
ドライブで1MBのデータをアクセスする場合、平均ポ
ジショニング時間が8msに対し、転送時間は52ms
なので、処理時間は両者を加えた60msとする。For example, when accessing 1 MB of data with a disk drive having a transfer speed of 20 MB / s, an average rotation waiting time of 3 ms, and an average seek time of 5 ms, the transfer time is 52 ms while the average positioning time is 8 ms.
Therefore, the processing time is 60 ms, which is the sum of the two.
【0169】図17は、クォンタム切替え時の残り時間
予測の例であり、シーケンシャルアクセスとランダムア
クセスを交互に切り替える場合について、図17(A)
〜(J)と時間が経過する場合の例である。FIG. 17 shows an example of prediction of the remaining time at the time of quantum switching. FIG. 17A shows a case where sequential access and random access are alternately switched.
This is an example in which time elapses from (J) to (J).
【0170】図17(A)(B)は、ランダムアクセス
からシーケンシャルアクセスへの切替え時に、次のクォ
ンタム開始時刻T0 を予測する例である。ランダムアク
セスに切替っている現在時刻Tnow で、ランダムアクセ
スの残り時間不足になったとする。このとき、前クォン
タムのシーケンシャルアクセス、現クォンタムのランダ
ムアクセスの3つのコマンドの完了応答が返ってきてお
らず、処理中である。FIGS. 17A and 17B show an example of predicting the next quantum start time T0 when switching from random access to sequential access. It is assumed that the remaining time of the random access becomes insufficient at the current time Tnow at which the random access is switched. At this time, the completion response of the three commands of the sequential access of the previous quantum and the random access of the current quantum has not been returned, and is being processed.
【0171】この場合、図17(B)のように、処理中
のコマンドの全て完了するまでの時間Tw1を(4)式で
予測し、(2)式より次のシーケンシャルアクセスの開
始時刻T0 を決定する。またクォンタムをシーケンシャ
ルアクセスのクォンタムに切替える。In this case, as shown in FIG. 17B, the time Tw1 until all the commands being processed are completed is predicted by the equation (4), and the start time T0 of the next sequential access is calculated from the equation (2). decide. The quantum is switched to the sequential access quantum.
【0172】図17(C)〜(F)は、残り時間予測
で、残り時間ありと判断する例である。図17(B)で
シーケンシャルアクセスに切替わった後、ディスクタイ
ムシェアリング機構82が現在時刻Tnow でシーケンシ
ャルアクセスの1コマンド受け付けたとする。この時、
リオーダリング機構88に発行しているコマンドの完了
応答が返ってきていない未処理コマンドとして、ランダ
ムアクセスのコマンドが1つがある。即ち、リオーダリ
ング機構88側は、前クォンタムのランダムアクセスの
1コマンドを処理中である。FIGS. 17C to 17F show examples in which the remaining time is predicted and it is determined that there is a remaining time. It is assumed that after switching to sequential access in FIG. 17B, the disk time sharing mechanism 82 receives one command of sequential access at the current time Tnow. At this time,
As an unprocessed command for which the completion response of the command issued to the reordering mechanism 88 has not been returned, there is one random access command. That is, the reordering mechanism 88 is processing one random access command of the previous quantum.
【0173】この場合、図17(E)のように、ランダ
ムアクセスの1コマンドの処理をリオーダリング機構8
8で完了するまでの時間Tw2を(4)式で予測し、図1
7(B)で求めたクォンタム開始時刻T0 を使用して
(2)式より残り時間Tr2を図17(F)のように求め
る。この場合、Tr2>0であることから、シーケンシャ
ルアクセスのコマンドをリオーダリング機構88に投入
することができる。In this case, as shown in FIG. 17E, the processing of one random access command is performed by the reordering mechanism 8.
The time Tw2 until completion at step 8 is predicted by equation (4), and FIG.
Using the quantum start time T0 obtained in step 7 (B), the remaining time Tr2 is obtained from equation (2) as shown in FIG. 17 (F). In this case, since Tr2> 0, a sequential access command can be input to the reordering mechanism 88.
【0174】図17(G)〜(J)は、残り時間予測
で、残り時間なしと判断する例である。さらに時間が進
み、図17(G)の現在時刻Tnow でディスクタイムシ
ェアリング機構82がシーケンシャルアクセスの1コマ
ンドを受け付けたとする。FIGS. 17G to 17J show examples in which it is determined that there is no remaining time in the remaining time prediction. It is further assumed that the time further advances, and the disk time sharing mechanism 82 receives one command of the sequential access at the current time Tnow in FIG.
【0175】この時、リオーダリング機構88に発行し
ているコマンドの完了応答が返ってきていない未処理コ
マンドとしてシーケンシャルアクセスの1コマンドがあ
る。即ち、現クォンタムのシーケンシャルアクセスの1
コマンドを処理中である。At this time, there is one sequential access command as an unprocessed command for which a completion response of the command issued to the reordering mechanism 88 has not been returned. In other words, one of the current quantum sequential access
The command is being processed.
【0176】この場合、図17(I)のように、シーケ
ンシャルアクセスの1コマンドをオーダリング機構88
側で完了するまでの時間Tw3を(4)式で予測し、図1
7(B)で求めたクォンタム開始時刻T0 を使用して
(2)式より残り時間Tr3を図17(J)のように求め
る。この場合、Tr3<0であることから、残り時間なし
と判断し、次のランダムアクセスに切替える。In this case, as shown in FIG. 17I, one command of the sequential access is transmitted to the ordering mechanism 88.
The time Tw3 to complete on the side is predicted by equation (4), and FIG.
Using the quantum start time T0 obtained in step 7 (B), the remaining time Tr3 is obtained from equation (2) as shown in FIG. 17 (J). In this case, since Tr3 <0, it is determined that there is no remaining time, and switching to the next random access is performed.
【0177】図18は、図14のディスクタイムシェア
リング機構82に設けたコマンドスケジュール部95に
よる制御処理のフローチャートである。FIG. 18 is a flowchart of the control processing by the command schedule unit 95 provided in the disk time sharing mechanism 82 of FIG.
【0178】このコマンドスケジュール部95によるデ
ィスクタイムシェアリング処理は、コマンド受付部94
で図3のスケジュール機構50から投入されたコマンド
を受付けた際の呼出し、或いはコマンド完了処理部96
でスケジュール機構50にコマンド終了を通知した時の
呼出しを受けて動作する。The disk time sharing process by the command schedule unit 95 is executed by the command receiving unit 94.
At the time when the command input from the schedule mechanism 50 in FIG.
The operation is performed in response to a call when the command end is notified to the schedule mechanism 50.
【0179】まず図15のスケジューリング説明図のよ
うに、図14のディスクコマンドスケジュール機構82
において、競合したシーケンシャルアクセスとランダム
アクセスのグループ間でクォンタムτ1,τ2を順番に
切替えてリオーダリング機構88にコマンドを投入する
タイムシェアリングを行なう場合を説明する。First, as shown in FIG. 15, the disk command schedule mechanism 82 shown in FIG.
In the following, a case will be described in which the quantum τ1 and τ2 are sequentially switched between the conflicting sequential access and random access groups to input a command to the reordering mechanism 88 to perform time sharing.
【0180】ステップS1で現クォンタム種別に設定さ
れているクォンタム識別子i=1に対応するシーケンシ
ャルキュー84を調べ、待ちのコマンドの有無を判定す
る。シーケンシャルキュー84に待ちのコマンドがあれ
ば、ステップS2に進み、前々クォンタムに未完了のコ
マンドがあるか否かチェックする。いま、クォンタム識
別子i=1が最初のスケジュールであるとすると、前々
クォンタムに未完了コマンドはないことから、ステップ
S3に進み、残り時間Tr を(2)式から予測する。In step S1, the sequential queue 84 corresponding to the quantum identifier i = 1 set for the current quantum type is checked to determine whether there is a waiting command. If there is a waiting command in the sequential queue 84, the process proceeds to step S2, and it is checked whether there is an uncompleted command in the quantum two months before. Now, assuming that the quantum identifier i = 1 is the first schedule, there is no uncompleted command in the quantum immediately before, so the process proceeds to step S3, and the remaining time Tr is predicted from the equation (2).
【0181】続いてステップS4で残り時間TrがTr
>0か否かチェックし、この条件が成立する場合には残
り時間ありと判断してステップS8に進む。ステップS
4にあっては、現クォンタムのシーケンシャルキュー8
4の先頭のコマンドをリオーダリング機構88のコマン
ドキュー90に投入し、次コマンドタスク種別情報10
4のタスクをシンプルタスクに設定する。Subsequently, at step S4, the remaining time Tr becomes Tr.
It is checked whether or not> 0, and if this condition is satisfied, it is determined that there is a remaining time, and the routine proceeds to step S8. Step S
4 is the current quantum sequential cue 8
4 is input to the command queue 90 of the reordering mechanism 88, and the next command task type information 10
Task 4 is set as a simple task.
【0182】続いてステップS1に戻り、現クォンタム
のシーケンシャルキュー84に待ちのコマンドがあるか
否かチェックし、待ちコマンドがあればステップS2、
S3,S8の処理を繰り返す。このようなシーケンシャ
ルグループG1のクォンタムτ1におけるコマンドのス
ケジュールによりステップS3でTr ≦0となり、残り
時間無しが判断されるとステップS5に進み、ランダム
グループG2のランダムキュー86に待ちのコマンドが
あるか否かチェックする。Subsequently, the flow returns to step S1, and it is checked whether or not there is a waiting command in the sequential queue 84 of the current quantum.
Steps S3 and S8 are repeated. According to the command schedule in the quantum τ1 of the sequential group G1, Tr ≦ 0 in step S3, and if it is determined that there is no remaining time, the process proceeds to step S5 to determine whether there is a command waiting in the random queue 86 of the random group G2. Check if.
【0183】このとき次のグループG2のランダムキュ
ー86にコマンドの待ちがあるとステップS10に進
み、次のグループG2のクォンタムτ2に切替え、次コ
マンドタスク種別情報104について、次のタスクをオ
ーダードに設定する。同時に、クォンタム現在時刻T0
を(3)式から予測し、予測したT0 を現クォンタム開
始時刻102に設定する。At this time, if there is a command waiting in the random queue 86 of the next group G2, the process proceeds to step S10, switching is made to the quantum τ2 of the next group G2, and the next task is ordered based on the next command task type information 104. Set. At the same time, the quantum current time T0
Is predicted from the equation (3), and the predicted T0 is set as the current quantum start time 102.
【0184】これにより最初のシーケンシャルグループ
G1のクォンタムτ1から次のランダムグループG2の
クォンタムτ2への切替えが行われ、再びステップS1
に戻り、クォンタム切替えに伴う次のランダムグループ
G2のコマンドをステップS2,S3,S4,S8によ
り処理する。As a result, the quantum τ1 of the first sequential group G1 is switched to the quantum τ2 of the next random group G2, and step S1 is performed again.
The command of the next random group G2 accompanying the quantum switching is processed in steps S2, S3, S4, and S8.
【0185】この時、ステップS10で次のタスクをオ
ーダードに設定しているため、クォンタム切替え後の最
初のコマンドはオーダードの指定でリオーダリング機構
88に投入される。コマンドの投入が済んだならば次コ
マンドタスク種別情報104のタスクをシンプルに設定
する。At this time, since the next task is set to ordered in step S10, the first command after the quantum switching is input to the reordering mechanism 88 by designation of ordered. When the command has been input, the task of the next command task type information 104 is simply set.
【0186】次に図16のスケジュール説明図のように
1つのグループ、例えばシーケンシャルグループG1の
コマンドが連続した場合の処理を説明する。同じシーケ
ンシャルグループG1のコマンドの受付けが連続した場
合には、ステップS1〜S4の処理をクォンタムt1で
繰り返して同じグループのコマンドをディスクドライブ
24−1に依頼し、この間にステップS4で残り時間無
しが判別されるとステップS5に進み、ランダムグルー
プG2のランダムキュー86に待ちのコマンドがあるか
否かチェックする。Next, the processing in the case where commands of one group, for example, the sequential group G1 are consecutive as shown in the explanatory diagram of the schedule of FIG. 16 will be described. If the commands of the same sequential group G1 are continuously received, the processing of steps S1 to S4 is repeated at the quantum t1, and the commands of the same group are requested to the disk drive 24-1. If it is determined, the process proceeds to step S5, and it is checked whether or not there is a waiting command in the random queue 86 of the random group G2.
【0187】この時、ランダムグループG2のランダム
リードキュー86に待ちコマンドがなく空であった場合
には、ステップS9に進み、現クォンタムτ1をリセッ
トし次のタスクをオーダードに設定し、同時に、クォン
タム現在時刻To を予測して現クォンタム開始時刻に設
定し、ステップS1に戻る。この場合、現クォンタム種
別はそのままとする。At this time, if there is no waiting command in the random read queue 86 of the random group G2 and it is empty, the flow advances to step S9 to reset the current quantum τ1 and set the next task to ordered, and at the same time, The current quantum time To is predicted and set to the current quantum start time, and the process returns to step S1. In this case, the current quantum type is left as it is.
【0188】このため現クォンタム持ち時間τ1をリセ
ットした後の次のクォンタムも同じクォンタム持ち時間
τ1となり、シーケンシャルグループG1のコマンドが
続いている場合には、同じクォンタムτ1が継続され
る。For this reason, the next quantum after resetting the current quantum holding time τ1 has the same quantum holding time τ1, and when the command of the sequential group G1 continues, the same quantum τ1 is continued.
【0189】一方、図16の時刻t2以降に示すように
時刻t0〜t2の間にグループG1のコマンドが連続し
てクォンタムτ1がリセットにより継続し、時刻t2ま
でに残りのランダムグループG2のコマンドが受付けら
れてランダムキュー86に格納されていると、次のラン
ダムグループG2のクォンタムτ2への切替えが行われ
る。On the other hand, as shown after time t2 in FIG. 16, commands in group G1 continue from time t0 to t2, quantum .tau.1 continues by reset, and commands in the remaining random group G2 disappear by time t2. If accepted and stored in the random queue 86, the next random group G2 is switched to the quantum τ2.
【0190】しかしながら、図16の時刻t3のように
クォンタムτ2の途中でランダムグループG2のランダ
ムキュー86が空になってステップS1で待ちキュー無
しが判別されると、ステップS6に進み、クォンタムτ
1のシーケンシャルキュー84に待ちのコマンドがある
か否かチェックする。However, if the random queue 86 of the random group G2 becomes empty in the middle of the quantum τ2 as shown at time t3 in FIG. 16 and it is determined in step S1 that there is no waiting queue, the process proceeds to step S6, where the quantum τ
It is checked whether or not there is a waiting command in the first sequential queue 84.
【0191】この時、シーケンシャルキュー84に待ち
のコマンドがあればステップS7に進み、前クォンタム
に未完了のコマンドがあるか否かチェックし、無ければ
ステップS10に進み、シーケンシャルグループG1の
クォンタムτ1に切替え、次タスクをオーダードに設定
し、更に、クォンタム開始時刻T0 を予測して設定し、
ステップS1に戻ることで切替え後のグループG1の最
初のコマンドをオーダードでリオーダリング機構88に
投入し、ステップS1〜S4,S8の処理を通じて次の
コマンドをシンプルタスクを指定して投入する。At this time, if there is a command waiting in the sequential queue 84, the process proceeds to step S7, and it is checked whether there is an uncompleted command in the previous quantum. If not, the process proceeds to step S10, where the quantum τ1 of the sequential group G1 is Switching, setting the next task to ordered, and predicting and setting the quantum start time T0,
By returning to step S1, the first command of the group G1 after switching is input to the reordering mechanism 88 in an ordered manner, and the next command is input by specifying the simple task through the processing of steps S1 to S4 and S8.
【0192】このようにシーケンシャルキュー84とラ
ンダムキュー86に格納されたシーケンシャルアクセス
のコマンド及びまたはランダムアクセスのコマンドは、
それぞれについて決定したクォンタムτ1,τ2の比率
に従ったスケジュールで順番にリオーダリング機構88
に投入されて実行され、シーケンシャルアクセスのスル
ープットとランダムアクセスのレスポンス時間の各々に
ついて、最低値保証が可能となる。As described above, the sequential access command and / or random access command stored in the sequential queue 84 and the random queue 86 are:
The reordering mechanism 88 is sequentially arranged on a schedule according to the ratio of the quantum τ1, τ2 determined for each.
The minimum value can be guaranteed for each of the sequential access throughput and the random access response time.
【0193】図19は、本発明のアクセスパターンスケ
ジューリングの他の実施形態であり、この実施形態にあ
ってはコマンドのタグ情報からアクセスパターンを判別
するようにしたことを特徴とする。FIG. 19 shows another embodiment of the access pattern scheduling according to the present invention. This embodiment is characterized in that an access pattern is determined from tag information of a command.
【0194】図19において、この実施形態は図3の実
施形態と同様、アクセスパターンスケジューリングのた
めの機能ブロックとして、ホストインタフェース45、
パターン判別部46、スケジュール機構50、キャッシ
ュ制御機構52、キャッシュメモリ54、ディスクタイ
ムシェアリング機構82及びリオーダリング機構88で
構成される。In FIG. 19, this embodiment is similar to the embodiment of FIG. 3 in that the host interface 45,
It comprises a pattern determination unit 46, a schedule mechanism 50, a cache control mechanism 52, a cache memory 54, a disk time sharing mechanism 82, and a reordering mechanism 88.
【0195】この内、パターン判別部46はホストから
のコマンドに付加されているタグによりシーケンシャル
リード、シーケンシャルライト、ランダムリード及びラ
ンダムライトのアクセスパターンを判別し、スケジュー
ル機構50でアクセスパターンを考慮したコマンドのス
ケジューリングを行うようにしている。The pattern discriminating section 46 discriminates the access patterns of sequential read, sequential write, random read and random write based on the tag added to the command from the host. Scheduling.
【0196】本発明のディスク装置はホストとのインタ
フェースとしてSCSIを使用しているが、SCSIに
あってはホスト側のイニシエータがキュータグメッセー
ジにより各コマンドに固有のタグ(ID)を付けること
ができる。Although the disk device of the present invention uses SCSI as an interface with the host, in the case of SCSI, the host-side initiator can attach a unique tag (ID) to each command by a queue tag message. .
【0197】そこで、ホスト側においてアクセスパター
ンとしてサポートしているシーケンシャルリード、シー
ケンシャルライト、ランダムリード及びランダムライト
の各コマンドについて、キュータグメッセージによって
シーケンシャルリードタグ、シーケンシャルライトタ
グ、ランダムリードタグ及びランダムライトタグを付け
て本発明のディスク装置にコマンドを転送する。Therefore, for the sequential read, sequential write, random read, and random write commands supported as access patterns on the host side, a sequential read tag, a sequential write tag, a random read tag, and a random write tag To transfer the command to the disk device of the present invention.
【0198】このようなホストからのアクセスパターン
を指定するタグを付加したコマンドに対し、図19のパ
ターン判別部46にあってはホストからのアクセスパタ
ーン関連付けコマンド例えばベンダユニークコマンドを
使用して、ユーザ指定によりシーケンシャルリードタ
グ、シーケンシャルライトタグ、ランダムリードタグ及
びランダムライトタグのタグ情報を受領し、タグ指定情
報106として記憶しておく。In response to such a command to which a tag designating an access pattern from the host has been added, the pattern discriminating section 46 shown in FIG. The tag information of the sequential read tag, the sequential write tag, the random read tag, and the random write tag is received by the designation, and stored as the tag designation information 106.
【0199】このようにしてパターン判別部46にアク
セスパターンを示すコマンドのタグ指定情報が記憶され
ていれば、それ以降、ホストから受け付けるコマンドに
付いてコマンドに付加されたタグからアクセスパターン
を判別することができる。If the tag identification information of the command indicating the access pattern is stored in the pattern identification section 46 in this way, the access pattern is identified from the tag added to the command for the command received from the host thereafter. be able to.
【0200】図20は、図19のパターン判別部46に
おけるコマンド受付処理のフローチャートである。この
コマンド受付処理にあっては、ステップS1でホストか
ら受け付けたコマンドがアクセスパターン関連付けコマ
ンドか否かチェックする。FIG. 20 is a flowchart of the command receiving process in the pattern discriminating section 46 of FIG. In this command reception processing, it is checked whether or not the command received from the host in step S1 is an access pattern association command.
【0201】関連付けコマンドであればステップS2に
進み、シーケンシャルリード、シーケンシャルライト、
ランダムリード及びランダムライトのそれぞれについ
て、指定されたタグの関係をタグ指定情報106として
記憶する。このようにタグ指定情報の設定が済めば、そ
れ以降のホストからのコマンド受付けについてはステッ
プS6の通常コマンド処理に入り、この通常コマンド処
理は図6に示した図3の実施形態と同じ処理である。If the command is an association command, the flow advances to step S2 to execute sequential read, sequential write,
For each of the random read and the random write, the relationship between the designated tags is stored as the tag designation information 106. After the setting of the tag designation information is completed, the subsequent command reception from the host starts the normal command processing of step S6, and the normal command processing is the same processing as the embodiment of FIG. 3 shown in FIG. is there.
【0202】即ち、図19の実施形態は、図5に示した
コマンドに付加されるタグ情報とアクセスパターンとの
対応関係を指定するタグ指定情報を設定する以外は図3
の実施形態と同じになる。That is, the embodiment of FIG. 19 is similar to that of FIG. 3 except that tag designation information for designating the correspondence between the tag information added to the command shown in FIG. 5 and the access pattern is set.
This is the same as the embodiment.
【0203】図21は、コマンド列からアクセスパター
ンを判別する本発明のアクセスパターンスケジューリン
グの他の実施形態のブロック図である。FIG. 21 is a block diagram of another embodiment of the access pattern scheduling of the present invention for determining an access pattern from a command sequence.
【0204】この図21の実施形態は、パターン判別部
46にホストから受け付けたコマンド列からアクセスパ
ターンを判別するためのコマンド列指定情報108を記
憶している以外は、図3の実施形態と同じである。この
パターン判別部48に記憶されているコマンド列指定情
報108は、ホストからのアクセスパターン関連付けコ
マンド例えばベンダユニークコマンドによって設定され
る情報である。The embodiment of FIG. 21 is the same as the embodiment of FIG. 3 except that the pattern discriminating section 46 stores command string designation information 108 for discriminating an access pattern from a command string received from the host. It is. The command sequence designation information 108 stored in the pattern determination unit 48 is information set by an access pattern association command from the host, for example, a vendor unique command.
【0205】コマンド列指定情報108としては、ホス
トから受け付けたコマンドのアドレス関係を判断する情
報である。例えばシーケンシャルアクセスにあっては、
図7に示したリードコマンドデータブロックまたはライ
トコマンドデータブロックの転送ブロック数が最大論理
ブロック数256を示す0であった場合にはシーケンシ
ャルアクセスと判定する。The command string designation information 108 is information for judging the address relationship of the command received from the host. For example, for sequential access,
If the transfer block number of the read command data block or the write command data block shown in FIG. 7 is 0 indicating the maximum number of logical blocks 256, it is determined that the access is sequential.
【0206】また転送ブロック数だけではシーケンシャ
ルアクセスの最終コマンドを正確に判別できないことか
ら、連続する2つのコマンドのアドレスについて1つ前
のコマンドの最終アドレスと今回のコマンドの先頭アド
レスを比較し、両者が等しいか例えば2ブロック程度の
所定値以下であった場合にはシーケンシャルアクセスと
判別する。Since the last command of the sequential access cannot be accurately determined only by the number of transfer blocks, the last address of the previous command and the start address of the current command are compared for the addresses of two consecutive commands. Are equal to or less than a predetermined value of, for example, about two blocks, it is determined that the access is sequential.
【0207】このように各コマンドのブロック数や前後
のコマンドのアドレス関係についてシーケンシャルアク
セスか否かを判定する基準が、コマンド列指定情報10
8としてパターン判別部46に記憶されている。As described above, the criterion for judging whether or not the access is sequential access with respect to the number of blocks of each command and the address relationship between the preceding and succeeding commands is based on the command sequence designation information 10.
8 is stored in the pattern determination unit 46.
【0208】図22は、図21のパターン判別部46に
おけるコマンド受付処理のフローチャートである。この
コマンド受付処理にあっては、ステップS1でホストか
らの受付けコマンドがアクセスパターン関連付けコマン
ドか否かチェックする。FIG. 22 is a flowchart of a command accepting process in the pattern determining section 46 of FIG. In this command accepting process, it is checked in step S1 whether the accepting command from the host is an access pattern association command.
【0209】関連付けコマンドであればステップS2に
進み、シーケンシャルコマンド列とランダムコマンド列
の判定基準をコマンド列指定情報として作成して記憶す
る。このコマンド列指定情報は各コマンドの指定ブロッ
ク数や連続するコマンドのアドレスの判断基準となって
いる。If the command is an association command, the flow advances to step S2 to create and store the determination criteria for the sequential command sequence and the random command sequence as command sequence designation information. This command string designation information is a criterion for determining the number of designated blocks of each command and the addresses of consecutive commands.
【0210】ステップS1,S2によるコマンド列に基
づくアクセスパターンの指定情報の記憶が済むと、それ
以降、受け付けるコマンドについてはステップS6の通
常コマンド処理を行うことになる。この図21の実施形
態にあっても、図22のコマンド受付処理のフローチャ
ートに示したパターン判別部46の処理以外は図3の実
施形態と同じになる。After the storage of the access pattern designation information based on the command sequence in steps S1 and S2, the normal command processing in step S6 is performed for the subsequently accepted commands. The embodiment of FIG. 21 is the same as the embodiment of FIG. 3 except for the processing of the pattern determining unit 46 shown in the flowchart of the command receiving process of FIG.
【0211】尚、上記の実施形態はアクセスパターンと
してシーケンシャルリード、シーケンシャルライト、ラ
ンダムリード及びランダムライトをサポートしている
が、それ以外のパターンについても同様なパターン判別
部46とスケジュール機構50、更にはディスクタイム
シェアリング機構82の構成により、同様にサポートす
ることができる。Although the above embodiment supports sequential read, sequential write, random read, and random write as access patterns, the same pattern discriminating section 46 and schedule mechanism 50 as to other patterns are used. With the configuration of the disk time sharing mechanism 82, it can be similarly supported.
【0212】また本発明は上記の実施形態に限定され
ず、その目的と利点を損うことのない適宜の変形を含
む。更に本発明は上記の実施形態に示した数値による限
定は受けない。 (付記) (付記1)上位装置から受領したコマンドのアクセスパ
ターンを判別するパターン判別部と、アクセスパターン
毎にキューを持ち、前記パターン判別部で判別したアク
セスパターンに対応したキューにコマンドを格納し、前
記キューに格納したコマンドのディスクアクセスをアク
セスパターンを考慮してスケジューリングするスケジュ
ール機構と、を備えたことを特徴としたディスク装置。
(1) (付記2)付記1記載のディスク装置に於いて、前記パ
ターン判別部は、ディスクの領域ごとに記憶するデータ
のアクセスパターンを設定し、コマンドのアドレスから
アクセスパターンを判別することを特徴としたディスク
ドライブ。The present invention is not limited to the above embodiments, but includes appropriate modifications without impairing the objects and advantages thereof. Further, the present invention is not limited by the numerical values shown in the above embodiments. (Supplementary Note) (Supplementary Note 1) A pattern discriminating unit that discriminates an access pattern of a command received from a higher-level device, a queue for each access pattern, and a command stored in a queue corresponding to the access pattern discriminated by the pattern discriminating unit A disk mechanism for scheduling a disk access of a command stored in the queue in consideration of an access pattern.
(1) (Supplementary note 2) In the disk device according to Supplementary note 1, the pattern determination unit sets an access pattern of data to be stored for each area of the disk, and determines the access pattern from a command address. And a disk drive.
【0213】(付記3)付記1記載のディスク装置に於
いて、前記パターン判別部は、コマンドに付加されたタ
グによりアクセスパターンを判別することを特徴とする
ディスク装置。(Supplementary Note 3) In the disk device according to Supplementary Note 1, the pattern determination unit determines an access pattern based on a tag added to a command.
【0214】(付記4)付記1記載のディスク装置に於
いて、前記パターン判別部は、コマンド列を監視してア
クセスパターンを発見し、各コマンドがどのアクセスパ
ターンに属するかを判別することを特徴とするディスク
装置。(Supplementary Note 4) In the disk device according to Supplementary Note 1, the pattern determination unit monitors a command sequence to find an access pattern, and determines which access pattern each command belongs to. Disk device.
【0215】(付記5)付記1記載のディスク装置に於
いて、前記パターン判別部は、シーケンシャルアクセス
とランダムアクセスに分けてリードコマンドとライトコ
マンドを判別し、前記スケジュール機構は、シーケンシ
ャルリードキューを持ったシーケンシャルリードスケジ
ューラと、シーケンシャルライトキューを持ったシーケ
ンシャルライトスケジューラと、ランダムリードキュー
を持ったランダムリードスケジューラと、ランダムライ
トキューを持ったランダムライトスケジューラと、を備
え、更に、上位装置からライトデータとディスク媒体か
らのリードデータをキャッシュメモリ上で処理するキャ
ッシュ制御機構と、コマンドをキューイングし、シーク
や回転待ち時間を考慮したコマンドのリオーダリングを
行うリオーダリング機構と、シーケンシャルキューとラ
ンダムキューを持ち、前記スケジュール機構から対応す
るアクセスパターンのコマンドを格納し、シーケンシャ
ルキューとランダムキューにコマンドが格納されて競合
している場合に、予め決定された各キューの割当時間
(クォンタム)を順番に切替えて前記リオーダリング機
構にコマンドを投入するディスクタイムシェアリング機
構と、を設けたことを特徴とするディスク装置。(2) (付記6)付記5記載のディスク装置に於いて、前記パ
ターン判別部は、リードコマンドについてはアクセスパ
ターンを判別して前記スケジュール機構のシーケンシャ
ルリードキュー又はランダムリードキューに格納し、ラ
イトコマンドについてはアクセスパターンを判別して前
記キャッシュ制御機構にライトデータを転送した後に前
記スケジュール機構のシーケンシャルライトキュー又は
ランダムライトキューに格納し、前記キャッシュ制御機
構は、キャッシュメモリ上に所定値以上の空容量がある
場合はライトデータをキャッシュメモリに書込み、所定
値以上の空き容量がない場合、キャッシュメモリの廃棄
可能データを廃棄した後にライトデータをキャッシュメ
モリに書込み、廃棄可能データがなければ上位にビジー
を応答することを特徴とするディスク装置。(3) (付記7)付記5記載のディスク装置に於いて、前記シ
ーケンシャルリードスケジューラは、シーケンシャルリ
ードキューにコマンドが格納されている場合は、一定量
のコマンドを前記ディスクタイムシェアリング機構のシ
ーケンシャルキューに投入し、シーケンシャルリードキ
ューが空の場合は、プリフェッチ処理部を起動して後続
のプリフェッチコマンドを前記ディスクタイムシェアリ
ング機構のシーケンシャルキューに投入することを特徴
とするディスクドライブ。(4) (付記8)付記5記載のディスク装置に於いて、前記シ
ーケンシャルライトスケジューラは、シーケンシャルラ
イトキューにコマンドが格納されている場合は、全ての
コマンドを前記ディスクタイムシェアリング機構のシー
ケンシャルキューに投入することを特徴とするディスク
ドライブ。(5) (付記9)付記5記載のディスク装置に於いて、前記ラ
ンダムリードスケジューラは、ランダムリードキューに
コマンドが格納されている場合は、一定量のコマンドを
前記ディスクタイムシェアリング機構のランダムキュー
に投入することを特徴とするディスクドライブ。(6) (付記10)付記5記載のディスク装置に於いて、前記
ランダムライトスケジューラは、ランダムライトキュー
にコマンドが格納されている場合、前記キャッシュメモ
リの空き容量が所定値以上の時はスケジュールを行わ
ず、前記キャッシュメモリの空き容量が所定値未満の時
は、ライトバック処理部を起動し、キャッシュメモリ上
に格納されているライトデータが最も古いコマンドのア
ドレスから一定の範囲にあるライトデータのコマンドを
まとめて前記ランダムライトキューから前記ディスクタ
イムシェアリング機構のランダムキューに投入すること
を特徴とするディスク装置。(7) (付記11)付記5記載のディスク装置に於いて、前記
ディスクタイムシェアリング機構は、前記シーケンシャ
ルキューとランダムキューの一方にコマンドが格納され
他方が空の場合、コマンドを格納しているキューから前
記リオーダリング機構にコマンドを連続して投入するこ
とを特徴とするディスク装置。(Supplementary Note 5) In the disk device according to Supplementary Note 1, the pattern discriminating unit discriminates a read command and a write command separately for sequential access and random access, and the schedule mechanism has a sequential read queue. A sequential read scheduler, a sequential write scheduler with a sequential write queue, a random read scheduler with a random read queue, and a random write scheduler with a random write queue. A cache control mechanism that processes read data from a disk medium on a cache memory, and a reordering module that queues commands and reorders commands in consideration of seek and rotation wait time Mechanism, a sequential queue and a random queue, and stores a command of a corresponding access pattern from the scheduling mechanism. When a command is stored in the sequential queue and the random queue and there is a conflict, the queue of each predetermined queue is determined. A disk device comprising: a disk time sharing mechanism for sequentially switching an assigned time (quantum) and inputting a command to the reordering mechanism. (2) (Supplementary note 6) In the disk device according to supplementary note 5, the pattern determination unit determines an access pattern for the read command, stores the read command in a sequential read queue or a random read queue of the schedule mechanism, and writes the read command. After determining the access pattern and transferring the write data to the cache control mechanism, the write data is stored in a sequential write queue or a random write queue of the schedule mechanism, and the cache control mechanism has an empty capacity of a predetermined value or more in the cache memory. If there is, write the write data to the cache memory.If there is no free space equal to or larger than the predetermined value, write the write data to the cache memory after discarding the discardable data in the cache memory. respond A disk device characterized by the above-mentioned. (3) (Supplementary note 7) In the disk device according to supplementary note 5, the sequential read scheduler, when a command is stored in a sequential read queue, sends a fixed amount of the command to the sequential queue of the disk time sharing mechanism. A sequential read queue, and when the sequential read queue is empty, activates a prefetch processing unit and submits a subsequent prefetch command to the sequential queue of the disk time sharing mechanism. (4) (Supplementary note 8) In the disk device according to Supplementary note 5, when a command is stored in a sequential write queue, the sequential write scheduler stores all commands in a sequential queue of the disk time sharing mechanism. A disk drive characterized by being loaded. (5) (Supplementary note 9) In the disk device according to supplementary note 5, when a command is stored in the random read queue, the random read scheduler sends a fixed amount of the command to the random queue of the disk time sharing mechanism. A disk drive characterized in that it is put into a disk drive. (6) (Supplementary Note 10) In the disk device according to Supplementary Note 5, when a command is stored in the random write queue, the random write scheduler may schedule the command when the free space of the cache memory is equal to or more than a predetermined value. When the free space of the cache memory is less than the predetermined value, the write-back processing unit is started, and the write data stored in the cache memory is stored in a certain range from the address of the oldest command. A disk device wherein commands are collectively input from the random write queue to a random queue of the disk time sharing mechanism. (7) (Supplementary Note 11) In the disk device according to Supplementary Note 5, the disk time sharing mechanism stores a command when one of the sequential queue and the random queue stores a command and the other is empty. A disk device for continuously inputting commands from a queue to the reordering mechanism.
【0216】(付記12)付記5記載のディスク装置に
於いて、前記リオーダリング機構は、シンプルタスクの
指定でポジショニング時間を最小とするように複数の入
出力をスケジューリングし、オーダードタスクの指定で
受付け中の入出力を完了させた後に第2タスク指定の入
出力をスケジューリングし、前記ディスクタイムシェア
リング機構は、前記シーケンシャルアクセスキュー又は
ランダムアクセスキューから前記リオーダリング機構に
コマンドを投入する際に、前記シンプルタスクの指定と
オーダードタスクの指定を分けてスケジューリングする
ことを特徴とするディスク装置。(Supplementary Note 12) In the disk device according to Supplementary Note 5, the reordering mechanism schedules a plurality of inputs and outputs so as to minimize the positioning time by designating a simple task, and to execute scheduling by designating an ordered task. After completing the input / output being accepted, schedule the input / output of the second task designation, and when the disk time sharing mechanism inputs a command from the sequential access queue or random access queue to the reordering mechanism, A disk device, wherein the designation of the simple task and the designation of the ordered task are separately scheduled.
【0217】(付記13)付記12記載のディスク装置
に於いて、前記ディスクタイムシェアリング機構、前記
シーケンシャルアクセスとランダムアクセスとの間を切
替えた直後の最初のコマンドはオーダードタスクを指定
して切替前のアクセスパターンのコマンドを完了させた
後に切替後のアクセスパターンのコマンドをスケジュー
リングし、その後、次のアクセスパターンを切替えるま
でのはシンプルタスクで指定してポジショニング時間を
最小とするようにスケジューリングすることを特徴とす
るディスク装置。(Supplementary note 13) In the disk device according to supplementary note 12, the first command immediately after switching between the sequential access and the random access is switched by specifying the ordered task. After completing the command of the previous access pattern, schedule the command of the access pattern after switching, and then schedule until the switching of the next access pattern is specified by a simple task to minimize the positioning time A disk device characterized by the above-mentioned.
【0218】(付記14)付記13記載のディスク装置
に於いて、前記ディスクタイムシェアリング機構は、ク
ォンタム切替時に未処理コマンドの予測処理時間に基づ
いて次のクォンタム開始時刻を予測し、コマンドの受付
け又はコマンドの完了応答毎に、その時の未処理コマン
ドの予測処理時間と前記クォンタム開始時刻に基づいて
残り時間を予測し、残り時間があると判断した場合は、
現クォンタムのコマンドをディスク装置に投入し、残り
時間がないと判断した場合は次のクォンタムに切替える
ことを特徴とするディスク装置。(Supplementary note 14) In the disk device according to supplementary note 13, the disk time sharing mechanism predicts the next quantum start time based on the predicted processing time of the unprocessed command at the time of quantum switching, and accepts the command. Or, for each command completion response, the remaining time is predicted based on the predicted processing time of the unprocessed command at that time and the quantum start time, and when it is determined that there is a remaining time,
A disk device wherein a command of the current quantum is input to the disk device, and if it is determined that there is no remaining time, the disk device is switched to the next quantum.
【0219】(付記15)付記12記載のディスク装置
に於いて、前記ディスクタイムシェアリング機構は、1
つのアクセスパターンに含まれる複数のコマンドを連続
してスケジューリングする場合、割当時間をリセットし
た直後の最初のコマンドはオーダードタスクを指定して
リセット前のコマンドを完了させた後にリセット後のコ
マンドをスケジューリングし、次にリセットするまでの
コマンドはシンプルタスクで指定してポジショニング時
間を最小とするようにスケジューリングすることを特徴
とするディスク装置。(Supplementary Note 15) In the disk device according to Supplementary Note 12, the disk time sharing mechanism may include:
When scheduling multiple commands in one access pattern consecutively, the first command immediately after resetting the assigned time specifies the ordered task, completes the command before reset, and then schedules the command after reset A disk device characterized in that a command until a next reset is designated by a simple task and scheduling is performed so as to minimize a positioning time.
【0220】(付記16)ディスク装置の制御方法に於
いて、上位装置から受信したコマンドのアクセスパター
ンを判別し、リードコマンドは判別されたアクセスパタ
ーン対応したキューに投入し、ライトコマンドはホスト
からのキャッシュにライトデータを転送してから判別さ
れたアクセスパターンに対応したキューに投入し、一定
時間ごとに各キューからコマンドのディスクタイムシェ
アリング機構への投入をアクセスパターンに応じてスケ
ジューリングすることを特徴とするディスク装置の制御
方法。(8) (付記17)付記16記載のディスク装置の制御方法に
於いて、上位装置から受信したコマンドのアクセスパタ
ーンを、コマンドのアクセスするディスク領域、コマン
ドに付随するタグ、またはコマンド列より判別すること
を特徴とするディスク装置の制御方法。(Supplementary Note 16) In the disk device control method, the access pattern of the command received from the host device is determined, the read command is input to the queue corresponding to the determined access pattern, and the write command is transmitted from the host. Write data is transferred to the cache and then entered into the queue corresponding to the determined access pattern, and commands are sent from each queue to the disk time sharing mechanism at regular intervals according to the access pattern. Control method for a disk device. (8) (Supplementary note 17) In the disk device control method according to supplementary note 16, the access pattern of the command received from the higher-level device is determined from a disk area to which the command accesses, a tag attached to the command, or a command sequence. A method of controlling a disk device.
【0221】(付記18)付記16記載のディスク装置
の制御方法に於いて、リードコマンド又はライトコマン
ドのアクセスパターンとしてシーケンシャルアクセスと
ランダムアクセスを判別して、シーケンシャルリードキ
ュー、シーケンシャルライトキュー、ランダムリードキ
ュー、又はランダムライトキューに分けてコマンドを格
納し、一定時間ごとに前記各キューのコマンドをスケジ
ューリングしてディスクタイムシェアリング機構のシー
ケンシャルキューとランダムキューに分けて投入し、デ
ィスクタイムシェアリング機構のシーケンシャルキュー
とランダムキューにコマンドが格納されて競合している
場合に、予め決定された各キューの割当時間(クォンタ
ム)を順番に切替えて前記リオーダリング機構にコマン
ドを投入することを特徴とするディスク装置の制御方
法。(9) (付記19)付記18記載のディスク装置の制御方法に
於いて、前記シーケンシャルリードキューにコマンドが
格納されている場合は、一定量のコマンドを前記ディス
クタイムシェアリング機構のシーケンシャルキューに投
入し、シーケンシャルリードキューが空の場合は、後続
のプリフェッチコマンドを前記ディスクタイムシェアリ
ング機構のシーケンシャルキューに投入し、前記シーケ
ンシャルライトキューにコマンドが格納されている場合
は、全てのコマンドを前記ディスクタイムシェアリング
機構のシーケンシャルキューに投入し、前記ランダムリ
ードキューにコマンドが格納されている場合は、一定量
のコマンドを前記ディスクタイムシェアリング機構のラ
ンダムキューに投入し、更に前記ランダムライトキュー
にコマンドが格納されている場合、前記キャッシュメモ
リの空き容量が所定値以上の時はスケジュールを行わ
ず、前記キャッシュメモリの空き容量が所定値未満の時
は、キャッシュメモリ上に格納されているライトデータ
が最も古いコマンドのアドレスから一定の範囲にライト
データがあるコマンドをまとめて前記ディスクタイムシ
ェアリング機構のランダムキューに投入してキャッシュ
メモリのライトデータをディスク媒体に優先的にライト
バックさせることを特徴とするディスク装置の制御方
法。(10)(Supplementary note 18) In the method of controlling a disk device according to supplementary note 16, sequential access and random access are determined as an access pattern of a read command or a write command, and a sequential read queue, a sequential write queue, and a random read queue are determined. Or, the commands are stored in a random write queue, and the commands in each of the queues are scheduled at regular time intervals, and are separately input into a sequential queue and a random queue of a disk time sharing mechanism, and the sequential of the disk time sharing mechanism is stored. When a command is stored in a queue and a random queue and there is contention, a command is input to the reordering mechanism by sequentially switching a predetermined allocation time (quantum) of each queue. Control method for a disk device according to claim. (9) (Supplementary note 19) In the method of controlling a disk device according to Supplementary note 18, when a command is stored in the sequential read queue, a fixed amount of command is input to the sequential queue of the disc time sharing mechanism. When the sequential read queue is empty, a subsequent prefetch command is input to the sequential queue of the disk time sharing mechanism, and when a command is stored in the sequential write queue, all commands are stored in the disk time sharing queue. When a command is stored in the sequential queue of the sharing mechanism, and a command is stored in the random read queue, a certain amount of command is input to the random queue of the disk time sharing mechanism, and a command is further stored in the random write queue. Is stored, the schedule is not performed when the free space of the cache memory is equal to or more than a predetermined value, and when the free space of the cache memory is less than a predetermined value, the write data stored in the cache memory is not stored. Commands having write data in a certain range from the address of the oldest command are put together into a random queue of the disk time sharing mechanism, and write data of the cache memory is preferentially written back to the disk medium. Control method of a disk device to be executed. (10)
【0222】[0222]
【発明の効果】以上説明してきたように本発明によれ
ば、アクセスパターンに基づいたコマンドのスケジュー
リングをディスク装置内で行うことにより、シーケンシ
ャルなアクセス即ちシーケンシャルリードとシーケンシ
ャルライトに対し一定のスループットを保証し、同時に
ランダムなアクセス即ちランダムリードやランダムライ
トに対し高速なレスポンスを保証でき、このようなシー
ケンシャルアクセスに対するスループットの保証とラン
ダムアクセスに対する高速レスポンスの保証をディスク
装置単体による低コストで実現することができる。As described above, according to the present invention, by scheduling a command based on an access pattern in a disk device, a constant throughput is guaranteed for sequential access, that is, sequential read and sequential write. At the same time, it is possible to guarantee a high-speed response to random access, that is, random read or random write, and it is possible to guarantee such a throughput for sequential access and a high-speed response to random access at low cost by a single disk device. it can.
【0223】またディスク装置単体でアクセスパターン
に基づくコマンドのスケジューリングができることで、
ホスト側のOSやアプリケーションの変更を必要としな
い利点が得られる。Further, the command scheduling based on the access pattern can be performed by the disk device alone.
The advantage that no change in the OS or application on the host side is required is obtained.
【0224】更に本発明にあっては、アクセスパターン
に基づいたコマンドのスケジューリングに続いて、シー
ケンシャルアクセスとランダムアクセスについて割当時
間を切り替えてリオーダリング機構にコマンドを投入す
るディスクタイムシェアリングを行う2階層のスケジュ
ーリングによって、同じパターンのシーケンシャルアク
セスが連続してリオーダリング機構に投入されるため、
シーク時間や回転待ちを減少し、ディスクタイムシェア
リング単体でのスケジューリングに比べ、更にスループ
ットとレスポンスを向上できる。Furthermore, in the present invention, following the command scheduling based on the access pattern, two-layered disk time sharing for switching the allocation time between sequential access and random access and inputting the command to the reordering mechanism. The sequential access of the same pattern is continuously input to the reordering mechanism by the scheduling of
The seek time and the rotation wait can be reduced, and the throughput and the response can be further improved as compared with the scheduling using the disk time sharing alone.
【0225】またアクセスパターンに基づくスケジュー
リングでシーケンシャルリードキューが空になった場合
には、ディスクタイムシェアリング側にプリフェッチコ
マンドが投入されるため、ディスクタイムシェアリング
単体でのスケジューリングに比べシーケンシャルアクセ
スのスループットを更に向上することができる。When the sequential read queue is emptied by the scheduling based on the access pattern, a prefetch command is issued to the disk time sharing side, so that the sequential access throughput is higher than that of the disk time sharing alone. Can be further improved.
【図1】本発明の原理説明図FIG. 1 is a diagram illustrating the principle of the present invention.
【図2】本発明が適用されるハードディスクドライブの
ブロック図FIG. 2 is a block diagram of a hard disk drive to which the present invention is applied;
【図3】本発明のアクセスパターン・スケジューリング
の実施形態のブロック図FIG. 3 is a block diagram of an embodiment of access pattern scheduling of the present invention.
【図4】図3によるアクセスパターン・スケジューリン
グ処理のフローチャートFIG. 4 is a flowchart of an access pattern scheduling process according to FIG. 3;
【図5】図4におけるコマンド受付け処理のフローチャ
ートFIG. 5 is a flowchart of a command receiving process in FIG. 4;
【図6】図5における通常コマンド処理のフローチャー
トFIG. 6 is a flowchart of a normal command process in FIG. 5;
【図7】リードコマンドとライトコマンドのフォーマッ
ト説明図FIG. 7 is an explanatory diagram of a format of a read command and a write command.
【図8】図4におけるスケジューリング処理のフローチ
ャートFIG. 8 is a flowchart of a scheduling process in FIG. 4;
【図9】図8におけるシーケンシャルリード・スケジュ
ーリングのフローチャート9 is a flowchart of sequential read scheduling in FIG.
【図10】図8におけるシーケンシャルライト・スケジ
ューリングのフローチャートFIG. 10 is a flowchart of sequential write scheduling in FIG. 8;
【図11】図8におけるランダムリード・スケジューリ
ングのフローチャートFIG. 11 is a flowchart of random read scheduling in FIG. 8;
【図12】図8におけるランダムライト・スケジューリ
ングのフローチャートFIG. 12 is a flowchart of random write scheduling in FIG. 8;
【図13】図4におけるコマンド終了処理のフローチャ
ートFIG. 13 is a flowchart of a command end process in FIG. 4;
【図14】図3のディスクタイムシェアリング機構(D
TC)のブロック図FIG. 14 shows a disk time sharing mechanism (D
TC) block diagram
【図15】図14のシーケンシャルアクセスとランダム
アクセスを対象としたスケジューリングの説明図15 is an explanatory diagram of scheduling for sequential access and random access in FIG. 14;
【図16】図14でシーケンシャルアクセスのみが連続
した場合のディスク・タイムスケジューリングの説明図FIG. 16 is an explanatory diagram of disk time scheduling when only sequential access is continued in FIG.
【図17】図14でクォンタムを切替える時の残り時間
の予測処理の説明図FIG. 17 is an explanatory diagram of a process of estimating a remaining time when quantum is switched in FIG. 14;
【図18】図14のディスク・タイムシェアリング処理
のフローチャートFIG. 18 is a flowchart of a disk time sharing process of FIG. 14;
【図19】コマンドのタグ情報からアクセスパターンを
判別する本発明のアクセスパターン・スケジューリング
の他の実施形態のブロック図FIG. 19 is a block diagram of another embodiment of the access pattern scheduling of the present invention for determining an access pattern from command tag information.
【図20】図19におけるコマンド受付け処理のフロー
チャートFIG. 20 is a flowchart of a command receiving process in FIG. 19;
【図21】コマンド列からアクセスパターンを判別する
本発明のアクセスパターン・スケジューリングの他の実
施形態のブロック図FIG. 21 is a block diagram of another embodiment of the access pattern scheduling of the present invention for determining an access pattern from a command sequence.
【図22】図21におけるコマンド受付け処理のフロー
チャートFIG. 22 is a flowchart of a command receiving process in FIG. 21;
10:SCSIコントローラ 12:ドライブコントロール 14:ディスクエンクロージャ 16:MCU 18:メモリ 20:プログラムメモリ 22:ハードディスクコントローラ 24:データバッファ 26:ドライブインタフェースロジック 28:DSP 30:リード/ライトLSI 32:サーボ復調部 34:サーボドライバ 36:ヘッドIC 38−1〜38−6:複合ヘッド 40−1〜40−3:ディスク 42:スピンドルモータ(SPM) 44:ボイスコイルモータ(VCM) 45:ホストインタフェース 46:パターン判別部 48:ディスク領域指定情報 50:スケジュール機構 52:キャッシュ制御機構 54:キャッシュメモリ 56:キャッシュテーブル 58:LRU管理部 60:シーケンシャルリードスケジューラ 62:シーケンシャルライトスケジューラ 64:ランダムリードスケジューラ 66:ランダムライトスケジューラ 70:シーケンシャルリードキュー 72:シーケンシャルライトキュー 74:ランダムリードキュー 76:ランダムライトキュー 78:プリフェッチ処理部 80:ライトバック処理部 82:ディスクタイムシェアリング機構(DTC) 84:シーケンャルキュー 85:完了待ちシーケンシャルキュー 86:ランダムキュー 87:完了待ちランダムキュー 88:リオーダリング機構 90:コマンドキュー 92:制御情報 94:コマンド受付部 95:コマンドスケジュール部 96:コマンド完了処理部 98−1,98−2:クォンタム 100:現クォンタム種別 102:現クォンタム開始時刻 104:次コマンドタスク種別 106:タグ指定情報 108:コマンド列指定情報 10: SCSI Controller 12: Drive Control 14: Disk Enclosure 16: MCU 18: Memory 20: Program Memory 22: Hard Disk Controller 24: Data Buffer 26: Drive Interface Logic 28: DSP 30: Read / Write LSI 32: Servo Demodulator 34 : Servo driver 36: Head IC 38-1 to 38-6: Composite head 40-1 to 40-3: Disk 42: Spindle motor (SPM) 44: Voice coil motor (VCM) 45: Host interface 46: Pattern discriminator 48: Disk area designation information 50: Schedule mechanism 52: Cache control mechanism 54: Cache memory 56: Cache table 58: LRU management unit 60: Sequential read schedule 62: Sequential write scheduler 64: Random read scheduler 66: Random write scheduler 70: Sequential read queue 72: Sequential write queue 74: Random read queue 76: Random write queue 78: Prefetch processing unit 80: Write back processing unit 82: Disk time Sharing mechanism (DTC) 84: Sequential queue 85: Completion sequential queue 86: Random queue 87: Completion random queue 88: Reordering mechanism 90: Command queue 92: Control information 94: Command reception unit 95: Command schedule Unit 96: Command completion processing unit 98-1, 98-2: Quantum 100: Current quantum type 102: Current quantum start time 104: Next command Disk type 106: Tag designation information 108: Command string designation information
───────────────────────────────────────────────────── フロントページの続き (72)発明者 荻原 一隆 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 (72)発明者 武 理一郎 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 (72)発明者 田村 雅寿 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 (72)発明者 西川 克彦 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 (72)発明者 堀田 勇次 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5B065 BA01 CC08 CH15 5D088 MM06 MM10 ──────────────────────────────────────────────────続 き Continuing on the front page (72) Inventor Kazutaka Ogihara 4-1-1, Kamidadanaka, Nakahara-ku, Kawasaki-shi, Kanagawa Prefecture Inside Fujitsu Limited (72) Inventor Riichiro Take 4-chome, Kamiodanaka, Nakahara-ku, Kawasaki-shi, Kanagawa No. 1 Fujitsu Limited (72) Inventor Masatoshi Tamura 4-1-1 Kamiodanaka, Nakahara-ku, Kawasaki-shi, Kanagawa Prefecture No. 1 Fujitsu Limited (72) Inventor Katsuhiko Nishikawa 4, Kamiodanaka, Nakahara-ku, Kawasaki-shi, Kanagawa 1-1 1-1 Fujitsu Limited (72) Inventor Yuji Hotta 4-1-1 1-1 Kamiodanaka, Nakahara-ku, Kawasaki-shi, Kanagawa F-term within Fujitsu Limited 5B065 BA01 CC08 CH15 5D088 MM06 MM10
Claims (10)
パターンを判別するパターン判別部と、 アクセスパターン毎にキューを持ち、前記パターン判別
部で判別したアクセスパターンに対応したキューにコマ
ンドを格納し、前記キューに格納したコマンドのディス
クアクセスをアクセスパターンを考慮してスケジューリ
ングするスケジュール機構と、を備えたことを特徴とし
たディスク装置。A pattern discriminator for discriminating an access pattern of a command received from a host device, a queue for each access pattern, and storing a command in a queue corresponding to the access pattern discriminated by the pattern discriminator; A disk device comprising: a scheduling mechanism for scheduling disk access of a command stored in a queue in consideration of an access pattern.
ダムアクセスに分けてリードコマンドとライトコマンド
を判別し、 前記スケジュール機構は、 シーケンシャルリードキューを持ったシーケンシャルリ
ードスケジューラと、 シーケンシャルライトキューを持ったシーケンシャルラ
イトスケジューラと、 ランダムリードキューを持ったランダムリードスケジュ
ーラと、 ランダムライトキューを持ったランダムライトスケジュ
ーラと、を備え、更に、 上位装置からライトデータとディスク媒体からのリード
データをキャッシュメモリ上で処理するキャッシュ制御
機構と、 コマンドをキューイングし、シークや回転待ち時間を考
慮したコマンドのリオーダリングを行うリオーダリング
機構と、 シーケンシャルキューとランダムキューを持ち、前記ス
ケジュール機構から対応するアクセスパターンのコマン
ドを格納し、シーケンシャルキューとランダムキューに
コマンドが格納されて競合している場合に、予め決定さ
れた各キューの割当時間(クォンタム)を順番に切替え
て前記リオーダリング機構にコマンドを投入するディス
クタイムシェアリング機構と、を設けたことを特徴とす
るディスク装置。2. The disk device according to claim 1, wherein the pattern determination unit determines a read command and a write command separately for sequential access and random access, and the schedule mechanism has a sequential read queue. A sequential read scheduler, a sequential write scheduler with a sequential write queue, a random read scheduler with a random read queue, and a random write scheduler with a random write queue, and write data and disk from a higher-level device A cache control mechanism that processes read data from the medium on the cache memory, and a reordering that queues commands and reorders commands in consideration of seek and rotation wait time Structure, has a sequential queue and a random queue, stores a command of a corresponding access pattern from the scheduling mechanism, and stores a command in the sequential queue and the random queue; A disk device comprising: a disk time sharing mechanism for sequentially switching an assigned time (quantum) and inputting a command to the reordering mechanism.
記パターン判別部は、リードコマンドについてはアクセ
スパターンを判別して前記スケジュール機構のシーケン
シャルリードキュー又はランダムリードキューに格納
し、ライトコマンドについてはアクセスパターンを判別
して前記キャッシュ制御機構にライトデータを転送した
後に前記スケジュール機構のシーケンシャルライトキュ
ー又はランダムライトキューに格納し、 前記キャッシュ制御機構は、キャッシュメモリ上に所定
値以上の空容量がある場合はライトデータをキャッシュ
メモリに書込み、所定値以上の空き容量がない場合、キ
ャッシュメモリの廃棄可能データを廃棄した後にライト
データをキャッシュメモリに書込み、廃棄可能データが
なければ上位にビジーを応答することを特徴とするディ
スク装置。3. The disk device according to claim 2, wherein the pattern determination unit determines an access pattern for the read command, stores the access pattern in a sequential read queue or a random read queue of the schedule mechanism, and stores the read command in a sequential read queue or a random read queue. After determining the access pattern and transferring the write data to the cache control mechanism, the write data is stored in a sequential write queue or a random write queue of the schedule mechanism, and the cache control mechanism has an empty capacity of a predetermined value or more in the cache memory. If there is, write the write data to the cache memory.If there is no free space equal to or larger than the predetermined value, write the write data to the cache memory after discarding the discardable data in the cache memory. Do A disk device characterized by the following.
記シーケンシャルリードスケジューラは、シーケンシャ
ルリードキューにコマンドが格納されている場合は、一
定量のコマンドを前記ディスクタイムシェアリング機構
のシーケンシャルキューに投入し、シーケンシャルリー
ドキューが空の場合は、プリフェッチ処理部を起動して
後続のプリフェッチコマンドを前記ディスクタイムシェ
アリング機構のシーケンシャルキューに投入することを
特徴とするディスクドライブ。4. The disk device according to claim 2, wherein the sequential read scheduler stores a certain amount of commands in the sequential queue of the disk time sharing mechanism when the commands are stored in the sequential read queue. A disk drive characterized in that when a sequential read queue is empty, a prefetch processing unit is started and a subsequent prefetch command is input to a sequential queue of the disk time sharing mechanism.
記シーケンシャルライトスケジューラは、シーケンシャ
ルライトキューにコマンドが格納されている場合は、全
てのコマンドを前記ディスクタイムシェアリング機構の
シーケンシャルキューに投入することを特徴とするディ
スクドライブ。5. The disk device according to claim 2, wherein the sequential write scheduler sends all commands to a sequential queue of the disk time sharing mechanism when a command is stored in a sequential write queue. A disk drive characterized by the following.
記ランダムリードスケジューラは、ランダムリードキュ
ーにコマンドが格納されている場合は、一定量のコマン
ドを前記ディスクタイムシェアリング機構のランダムキ
ューに投入することを特徴とするディスクドライブ。6. The disk device according to claim 2, wherein the random read scheduler stores a certain amount of commands in the random queue of the disk time sharing mechanism when a command is stored in the random read queue. A disk drive characterized by being loaded.
記ランダムライトスケジューラは、ランダムライトキュ
ーにコマンドが格納されている場合、前記キャッシュメ
モリの空き容量が所定値以上の時はスケジュールを行わ
ず、前記キャッシュメモリの空き容量が所定値未満の時
は、ライトバック処理部を起動し、キャッシュメモリ上
に格納されているライトデータが最も古いコマンドのア
ドレスから一定の範囲にあるライトデータのコマンドを
まとめて前記ランダムライトキューから前記ディスクタ
イムシェアリング機構のランダムキューに投入すること
を特徴とするディスク装置。7. A disk drive according to claim 2, wherein said random write scheduler schedules when a free space in said cache memory is equal to or more than a predetermined value when a command is stored in a random write queue. When the free space of the cache memory is less than a predetermined value, the write-back processing unit is activated, and the write data stored in the cache memory is stored in the command of the write data within a certain range from the address of the oldest command. A disk device which collectively puts the random write queue from the random write queue into a random queue of the disk time sharing mechanism.
別し、 リードコマンドは判別されたアクセスパターン対応した
キューに投入し、 ライトコマンドはホストからのキャッシュにライトデー
タを転送してから判別されたアクセスパターンに対応し
たキューに投入し、 一定時間ごとに各キューからコマンドのディスクタイム
シェアリング機構への投入をアクセスパターンに応じて
スケジューリングすることを特徴とするディスク装置の
制御方法。8. A control method for a disk device, wherein an access pattern of a command received from a host device is determined, a read command is input to a queue corresponding to the determined access pattern, and a write command is stored in a cache from a host. After transferring the write data, the write data is input to a queue corresponding to the determined access pattern, and the input of a command from each queue to the disk time sharing mechanism is scheduled at regular intervals according to the access pattern. A method for controlling a disk device.
於いて、 リードコマンド又はライトコマンドのアクセスパターン
としてシーケンシャルアクセスとランダムアクセスを判
別して、シーケンシャルリードキュー、シーケンシャル
ライトキュー、ランダムリードキュー、又はランダムラ
イトキューに別けてコマンドを格納し、 一定時間ごとに前記各キューのコマンドをスケジューリ
ングしてディスクタイムシェアリング機構のシーケンシ
ャルキューとランダムキューに分けて投入し、 ディスクタイムシェアリング機構のシーケンシャルキュ
ーとランダムキューにコマンドが格納されて競合してい
る場合に、予め決定された各キューの割当時間(クォン
タム)を順番に切替えてリオーダリング機構にコマンド
を投入することを特徴とするディスク装置の制御方法。9. A method for controlling a disk device according to claim 8, wherein a sequential access and a random access are determined as an access pattern of a read command or a write command, and a sequential read queue, a sequential write queue, a random read queue, Alternatively, the commands are stored separately in a random write queue, the commands in each of the queues are scheduled at regular time intervals, and are separately input into a sequential queue and a random queue of the disk time sharing mechanism, and the sequential queue of the disk time sharing mechanism is stored. And when a command is stored in a random queue and there is a conflict, the command is input to the reordering mechanism by sequentially switching the predetermined allocation time (quantum) of each queue. The method of disk device.
に於いて、 前記シーケンシャルリードキューにコマンドが格納され
ている場合は、一定量のコマンドを前記ディスクタイム
シェアリング機構のシーケンシャルキューに投入し、シ
ーケンシャルリードキューが空の場合は、後続のプリフ
ェッチコマンドを前記ディスクタイムシェアリング機構
のシーケンシャルキューに投入し、 前記シーケンシャルライトキューにコマンドが格納され
ている場合は、全てのコマンドを前記ディスクタイムシ
ェアリング機構のシーケンシャルキューに投入し、 前記ランダムリードキューにコマンドが格納されている
場合は、一定量のコマンドを前記ディスクタイムシェア
リング機構のランダムキューに投入し、 更に前記ランダムライトキューにコマンドが格納されて
いる場合、前記キャッシュメモリの空き容量が所定値以
上の時はスケジュールを行わず、前記キャッシュメモリ
の空き容量が所定値未満の時は、キャッシュメモリ上に
格納されているライトデータが最も古いコマンドのアド
レスから一定の範囲にライトデータがあるコマンドをま
とめて前記ディスクタイムシェアリング機構のランダム
キューに投入してキャッシュメモリのライトデータをデ
ィスク媒体に優先的にライトバックさせることを特徴と
するディスク装置の制御方法。10. A control method for a disk device according to claim 9, wherein when a command is stored in said sequential read queue, a certain amount of command is input to a sequential queue of said disk time sharing mechanism. If the sequential read queue is empty, a subsequent prefetch command is input to the sequential queue of the disk time sharing mechanism. If a command is stored in the sequential write queue, all commands are stored in the disk time share. When a command is stored in the sequential queue of the ring mechanism, and a command is stored in the random read queue, a certain amount of command is input to the random queue of the disk time sharing mechanism, and a command is further stored in the random write queue. If it is stored, the schedule is not performed when the free space of the cache memory is equal to or more than a predetermined value, and when the free space of the cache memory is less than the predetermined value, the write data stored in the cache memory is most frequently used. Commands having write data in a certain range from the address of the old command are put together in a random queue of the disk time sharing mechanism, and the write data in the cache memory is preferentially written back to the disk medium. A method for controlling a disk device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000206057A JP2002023962A (en) | 2000-07-07 | 2000-07-07 | Disk device and its controlling method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000206057A JP2002023962A (en) | 2000-07-07 | 2000-07-07 | Disk device and its controlling method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002023962A true JP2002023962A (en) | 2002-01-25 |
Family
ID=18703045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000206057A Withdrawn JP2002023962A (en) | 2000-07-07 | 2000-07-07 | Disk device and its controlling method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2002023962A (en) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004081784A1 (en) * | 2003-03-10 | 2004-09-23 | Matsushita Electric Industrial Co., Ltd. | Data transmission control method |
JP2005250582A (en) * | 2004-03-01 | 2005-09-15 | Hitachi Ltd | Network storage system, command controller, command control method in network storage system, and command control method in command controller |
US7159071B2 (en) | 2003-03-07 | 2007-01-02 | Fujitsu Limited | Storage system and disk load balance control method thereof |
JP2007128527A (en) * | 2006-11-16 | 2007-05-24 | Hitachi Ltd | Disk array device |
JP2007310919A (en) * | 2006-05-16 | 2007-11-29 | Fujitsu Ltd | Data read method and system for tiered storage apparatus |
JP2008269015A (en) * | 2007-04-16 | 2008-11-06 | Hitachi Ltd | Storage system and control method thereof |
US7949895B2 (en) | 2007-11-05 | 2011-05-24 | Fujitsu Limited | Data reading method |
US7986489B2 (en) | 2009-05-15 | 2011-07-26 | Kabushiki Kaisha Toshiba | Disk controller, disk drive device, and disk control method |
US7991975B2 (en) | 2007-03-30 | 2011-08-02 | Nec Corporation | Storage medium control unit, data storage device, data storage system, method, and control program |
JP2012523619A (en) * | 2009-04-08 | 2012-10-04 | グーグル インコーポレイテッド | Data storage device command and interrupt grouping |
JP2013210847A (en) * | 2012-03-30 | 2013-10-10 | Fujitsu Ltd | System, control method, and control program for storage |
JP2014516179A (en) * | 2011-05-23 | 2014-07-07 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Program, system, and method for determining caching of data in a storage system having a cache |
JP2015095226A (en) * | 2013-11-14 | 2015-05-18 | 富士通株式会社 | Information processing device, data access method, and program |
JP2015158725A (en) * | 2014-02-21 | 2015-09-03 | 富士通株式会社 | Storage control device, storage device and storage control program |
US9244842B2 (en) | 2009-04-08 | 2016-01-26 | Google Inc. | Data storage device with copy command |
JP2021108199A (en) * | 2008-02-28 | 2021-07-29 | メモリー テクノロジーズ リミティド ライアビリティ カンパニー | Range of expansion usage for memory apparatus |
US20220334765A1 (en) * | 2021-04-16 | 2022-10-20 | Western Digital Technologies, Inc. | Command Queue Order Adjustment in a Data Storage Device |
US11733869B2 (en) | 2009-06-04 | 2023-08-22 | Memory Technologies Llc | Apparatus and method to share host system RAM with mass storage memory RAM |
US11782647B2 (en) | 2012-04-20 | 2023-10-10 | Memory Technologies Llc | Managing operational state data in memory module |
US11797180B2 (en) | 2012-01-26 | 2023-10-24 | Memory Technologies Llc | Apparatus and method to provide cache move with non-volatile mass memory system |
-
2000
- 2000-07-07 JP JP2000206057A patent/JP2002023962A/en not_active Withdrawn
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7159071B2 (en) | 2003-03-07 | 2007-01-02 | Fujitsu Limited | Storage system and disk load balance control method thereof |
WO2004081784A1 (en) * | 2003-03-10 | 2004-09-23 | Matsushita Electric Industrial Co., Ltd. | Data transmission control method |
JP2005250582A (en) * | 2004-03-01 | 2005-09-15 | Hitachi Ltd | Network storage system, command controller, command control method in network storage system, and command control method in command controller |
JP4521206B2 (en) * | 2004-03-01 | 2010-08-11 | 株式会社日立製作所 | Network storage system, command controller, and command control method in network storage system |
JP2007310919A (en) * | 2006-05-16 | 2007-11-29 | Fujitsu Ltd | Data read method and system for tiered storage apparatus |
JP2007128527A (en) * | 2006-11-16 | 2007-05-24 | Hitachi Ltd | Disk array device |
JP4486633B2 (en) * | 2006-11-16 | 2010-06-23 | 株式会社日立製作所 | Disk array device |
US7991975B2 (en) | 2007-03-30 | 2011-08-02 | Nec Corporation | Storage medium control unit, data storage device, data storage system, method, and control program |
JP2008269015A (en) * | 2007-04-16 | 2008-11-06 | Hitachi Ltd | Storage system and control method thereof |
US8214606B2 (en) | 2007-04-16 | 2012-07-03 | Hitachi Ltd. | Storage system and control method thereof |
US7949895B2 (en) | 2007-11-05 | 2011-05-24 | Fujitsu Limited | Data reading method |
US11907538B2 (en) | 2008-02-28 | 2024-02-20 | Memory Technologies Llc | Extended utilization area for a memory device |
US11829601B2 (en) | 2008-02-28 | 2023-11-28 | Memory Technologies Llc | Extended utilization area for a memory device |
JP2021108199A (en) * | 2008-02-28 | 2021-07-29 | メモリー テクノロジーズ リミティド ライアビリティ カンパニー | Range of expansion usage for memory apparatus |
US11550476B2 (en) | 2008-02-28 | 2023-01-10 | Memory Technologies Llc | Extended utilization area for a memory device |
JP2012523619A (en) * | 2009-04-08 | 2012-10-04 | グーグル インコーポレイテッド | Data storage device command and interrupt grouping |
US9244842B2 (en) | 2009-04-08 | 2016-01-26 | Google Inc. | Data storage device with copy command |
US7986489B2 (en) | 2009-05-15 | 2011-07-26 | Kabushiki Kaisha Toshiba | Disk controller, disk drive device, and disk control method |
US11733869B2 (en) | 2009-06-04 | 2023-08-22 | Memory Technologies Llc | Apparatus and method to share host system RAM with mass storage memory RAM |
US11775173B2 (en) | 2009-06-04 | 2023-10-03 | Memory Technologies Llc | Apparatus and method to share host system RAM with mass storage memory RAM |
JP2014516179A (en) * | 2011-05-23 | 2014-07-07 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Program, system, and method for determining caching of data in a storage system having a cache |
US11797180B2 (en) | 2012-01-26 | 2023-10-24 | Memory Technologies Llc | Apparatus and method to provide cache move with non-volatile mass memory system |
JP2013210847A (en) * | 2012-03-30 | 2013-10-10 | Fujitsu Ltd | System, control method, and control program for storage |
US11782647B2 (en) | 2012-04-20 | 2023-10-10 | Memory Technologies Llc | Managing operational state data in memory module |
JP2015095226A (en) * | 2013-11-14 | 2015-05-18 | 富士通株式会社 | Information processing device, data access method, and program |
JP2015158725A (en) * | 2014-02-21 | 2015-09-03 | 富士通株式会社 | Storage control device, storage device and storage control program |
US20220334765A1 (en) * | 2021-04-16 | 2022-10-20 | Western Digital Technologies, Inc. | Command Queue Order Adjustment in a Data Storage Device |
US11966631B2 (en) * | 2021-04-16 | 2024-04-23 | Western Digital Technologies, Inc. | Command queue order adjustment in a data storage device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2002023962A (en) | Disk device and its controlling method | |
KR100415861B1 (en) | A method for determining whether to issue a command from a disk controller to a disk drive, a disk controller and a memory media that stores a program | |
JP2520576B2 (en) | Data processing system and channel adapter | |
US7761642B2 (en) | Serial advanced technology attachment (SATA) and serial attached small computer system interface (SCSI) (SAS) bridging | |
JP4579494B2 (en) | Disk controller configured to perform out-of-order write operations | |
TWI498918B (en) | Access buffer | |
US4638424A (en) | Managing data storage devices connected to a digital computer | |
US5644786A (en) | Method for scheduling the execution of disk I/O operations | |
US5530897A (en) | System for dynamic association of a variable number of device addresses with input/output devices to allow increased concurrent requests for access to the input/output devices | |
CN103403681B (en) | Descriptor scheduler | |
US20100153634A1 (en) | System and method for data migration between computer cluster architecture and data storage devices | |
US20050071547A1 (en) | Reordering hardware for mass storage command queue | |
JP3440219B2 (en) | I / O device and disk time sharing method | |
JPH0760415B2 (en) | Multitasking data processing system | |
US20050066138A1 (en) | Multiple storage element command queues | |
US20040049628A1 (en) | Multi-tasking non-volatile memory subsystem | |
US6442648B1 (en) | Method of and system for the dynamic scheduling of requests to access a storage system | |
EP2438513B1 (en) | Scheduling realtime information storage system access requests | |
US7818478B2 (en) | Input/Output completion system for a data processing platform | |
JP3617631B2 (en) | Storage control apparatus and control method thereof | |
JPH09258907A (en) | Highly available external storage device having plural storage disk parts | |
JP3623697B2 (en) | Disc time sharing apparatus and method | |
JP4091225B2 (en) | Disc time sharing apparatus and method | |
US9465745B2 (en) | Managing access commands by multiple level caching | |
CN117806540A (en) | Storage device controller and method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20071002 |