JPH07104817B2 - Data record transfer method - Google Patents

Data record transfer method

Info

Publication number
JPH07104817B2
JPH07104817B2 JP3165354A JP16535491A JPH07104817B2 JP H07104817 B2 JPH07104817 B2 JP H07104817B2 JP 3165354 A JP3165354 A JP 3165354A JP 16535491 A JP16535491 A JP 16535491A JP H07104817 B2 JPH07104817 B2 JP H07104817B2
Authority
JP
Japan
Prior art keywords
data
cache
dasd
track
record
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.)
Expired - Lifetime
Application number
JP3165354A
Other languages
Japanese (ja)
Other versions
JPH0566997A (en
Inventor
ブレント・カメロン・ベアードスレイ
マイケル・トーマス・ベンハセ
ゲイル・アンドレア・スペアー
ウィリアム・デニス・ウィリアムス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0566997A publication Critical patent/JPH0566997A/en
Publication of JPH07104817B2 publication Critical patent/JPH07104817B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0884Parallel mode, e.g. in parallel with main memory or CPU

Description

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

【0001】[0001]

【産業上の利用分野】本発明はデータ処理サブシステ
ム、特に大型キャッシュを有しておりまた周辺デバイス
よりも大きなデータレートをもった1つのチャネルを介
してホストプロセッサへ接続されるDASDデータ記憶サブ
システムに関するものである。
FIELD OF THE INVENTION This invention relates to data processing subsystems, particularly DASD data storage subsystems which have a large cache and which are connected to the host processor through one channel having a higher data rate than the peripheral device. It is about the system.

【0002】[0002]

【従来の技術】大規模ホストプロセッサに付属した周辺
データ記憶システムは直接アクセス記憶デバイス(DASD)
を使用しているが、同デバイスは回転可能な磁気メモリ
デバイスの形態を採っているのが普通である。性能を高
めるためにそれらホストプロセッサ及びDASDの間には、
大型のランダムアクセスメモリキャッシュを選択的に挿
置して、ホストプロセッサ及び周辺サブシステムの間の
データ転送レートを高めるようにしている。即ちキャッ
シュはDASDの待ち時間遅れを隠蔽するのに役立つ。従来
より、ホストプロセッサ、キャッシュ及びDASDの間の関
係を取り扱うアルゴリズムが開発されている。かかるア
ルゴリズムがなかったならば、キャッシュの介在によっ
て性能は低下していたことであろう。しかし性能及び完
全性の問題は常に関心の的となっている。そのため、新
たな制御及び手順が必要とされている。ホストプロセッ
サを周辺サブシステムへ接続するチャネルのデータバー
ストレートがDASDのバーストデータレートに近いような
状況においてそれらの問題を解決するためのマシン動作
が従来から考案されている。ホストプロセッサ及びDASD
よりも大きなバーストデータレートをもった周辺サブシ
ステムの間に1つのチャネルを使用する場合、データ及
びシステムの完全性を維持しながら高性能を確保するた
めには、他のアルゴリズム及び制御が必要となる。更に
もう1つの問題はそれらホストプロセッサ及び周辺サブ
システムの間のチャネルケーブルの長さが長くなり、信
号伝搬時間が増す点である。データレートが大きくなる
につれてそのような信号伝搬遅れの増大は時間的に重ね
ることが不可能な多くの制御信号をそれらホストコンピ
ュータ及び周辺サブシステムの間で交換しなければなら
ない場合には性能を相当低下させることになる。
BACKGROUND OF THE INVENTION Peripheral data storage systems attached to large scale host processors are direct access storage devices (DASD).
, But the device typically takes the form of a rotatable magnetic memory device. Between the host processor and DASD to increase performance,
Large random access memory caches are selectively interleaved to increase the data transfer rate between the host processor and peripheral subsystems. That is, the cache helps hide the latency delay of DASD. Conventionally, algorithms have been developed to handle the relationship between the host processor, cache and DASD. Without such an algorithm, performance would have been reduced by the intervention of the cache. However, performance and integrity issues have always been of interest. Therefore, new controls and procedures are needed. Machine operations have been devised to solve these problems in situations where the data burst rate of the channel connecting the host processor to the peripheral subsystem is close to the burst data rate of DASD. Host processor and DASD
Using one channel between peripheral subsystems with a larger burst data rate requires other algorithms and controls to ensure high performance while maintaining data and system integrity. Become. Yet another problem is that the length of the channel cable between the host processor and the peripheral subsystem becomes long and the signal propagation time increases. Such increases in signal propagation delay as data rates increase significantly translate into performance when many control signals that cannot be overlapped in time have to be exchanged between the host computer and peripheral subsystems. Will be lowered.

【0003】キャッシュ記憶式周辺サブシステムにおい
ては、いわゆる分岐書込みを設けるのが一般的な慣例で
ある。このような操作によって、データはホストプロセ
ッサからDASDへまたキャッシュへと同時に転送される。
制御ユニット又はコントローラはDASDが1つのトラック
から現在キャッシュ内にストアされていない別のトラッ
クへ切換わる時に、新たな1組のキャッシュメモリセグ
メント(1セグメントはキャッシュ内の割当て可能な格納
単位である)を割当てる。もしキャッシュが十分一杯に
なっていると、特にサブシステムが現在のトラックから
次のトラックへ切換わる時である場合には、やがて到来
するトラックのデータをストアするのに利用可能なキャ
ッシュセグメントは不十分となる虞れがある。上記従来
技術では、十分なキャッシュセグメントが利用できない
場合には、周辺コントローラがトラックの切換えを実施
させ、そして(周辺コントローラがホストプロセッサと
通信する公知の方法である)チャネル・コマンド・リト
ライ(CCR)を行わせるようになっている。この通信によ
って到来データの転送の遅れを指示し、そして現行のコ
マンドを再送出するように指示する。そしてシステムは
キャッシュセグメントが利用可能になるのを待つ。利用
可能になった後、周辺コントローラはチャネルに再接続
され、そして上記の分岐書込みを継続する。また、もっ
と新型の周辺サブシステムはいわゆる非同期モードで動
作し、このモードでは周辺サブシステムはホストプロセ
ッサからキャッシュ及びDASDに書込むためのデータを受
け入れ、そして各コマンドに終了状態を提示して、たと
え受信データを実際にDASDに書込んでいない場合であっ
てもデータ転送を起こさせる。従ってサブシステムのプ
ロセスがトラックスイッチングが必要であると判定しま
た不十分な数のキャッシュセグメントしか現在利用でき
ないと判定した時、上記のCCR後までそれ以上のデータ
を受取ることはない。CCRをホストプロセッサへ送る時
には、周辺サブシステムは到来するトラックについてデ
ータをホストプロセッサから既に受け入れていて、従っ
て終了状態をホストプロセッサへ提示している、即ち既
にデータが事実上DASD上にストアされていることを示し
ていることがある。CCRはチャネルを1データ転送に専用
に用いることなくデータの完全性の確保を行う。そのよ
うな専用的使用はチャネルの利用可能性を小さくしまた
そのためにデータ処理システム全体の処理度を低下させ
る。データの完全性の問題はチャネルが専用とされた時
に周辺サブシステム中でのデータの喪失を伴うある種の
故障を蒙る場合に発生する虞れがある。周辺データ・サ
ブシステムが終了状態をホストプロセッサに供給する
時、受取ったデータを周辺サブシステム中にストアして
保持していることを周辺データ・サブシステムが事実上
ホストプロセッサに通知している。従って、上記の問題
に対して効率的で完全な解決を与えることが望まれてい
る。
In cache memory peripheral subsystems, it is common practice to provide so-called branch writes. These operations transfer data from the host processor to DASD and to cache at the same time.
A control unit or controller creates a new set of cache memory segments (one segment is an allocatable storage unit in the cache) when the DASD switches from one track to another that is not currently stored in the cache. Assign If the cache is full enough, especially when the subsystem is switching from the current track to the next, there will be no cache segment available to store the data for the upcoming track. There is a risk that it will be sufficient. In the above prior art, if sufficient cache segments are not available, the peripheral controller causes a track switch and channel command retry (CCR) (a known way for the peripheral controller to communicate with the host processor). Is to be done. This communication indicates a delay in the transfer of incoming data, and then the current command is retransmitted. The system then waits for the cache segment to become available. Once available, the peripheral controller is reconnected to the channel and continues with the branch write above. Also, newer peripheral subsystems operate in so-called asynchronous mode, in which the peripheral subsystem accepts data from the host processor for writing to cache and DASD, and presents an exit status to each command, Causes a data transfer even if the received data is not actually written to DASD. Therefore, when the subsystem process determines that track switching is needed and that an insufficient number of cache segments are currently available, it will not receive any more data until after the CCR above. When sending the CCR to the host processor, the peripheral subsystem is already accepting data from the host processor for the incoming track and thus presenting an exit status to the host processor, i.e. the data is already effectively stored on DASD. May indicate that CCR ensures data integrity without dedicating a channel to one data transfer. Such dedicated use reduces the availability of channels and therefore reduces the throughput of the overall data processing system. Data integrity problems can arise when the channel is subject to some kind of failure with loss of data in the peripheral subsystem when it is dedicated. When the peripheral data subsystem supplies an exit status to the host processor, the peripheral data subsystem is effectively informing the host processor that it is storing and holding the received data in the peripheral subsystem. Therefore, it is desired to provide an efficient and complete solution to the above problems.

【0004】米国特許第4,040,027号(van Es)は利用可
能なメモリ空間を指示するためにバッファメモリを制御
する方法について述べている。それによれば、データ転
送は第1のメモリから一時記憶及び中間の第2のバッファ
メモリを介してユーザ・デバイスへと行われる。このシ
ステムは測定デバイスを含んでおり、このデバイスは情
報を第2バッファメモリからユーザ・デバイスへ転送し
ている間、第2バッファメモリが第1メモリがもたらす情
報によって満たされる程度を決める。所定の第1度合の
充填状態を検出した時、測定デバイスは第1のアラーム
信号を生成し、この信号はある所与の遅延後に第1メモ
リからのそれ以上の情報の読出しを一時的にブロックす
る、即ちデータ転送を中断させる。第2バッファメモリ
のある所定の第2度合の充填状態を測定した後に、測定
デバイスは第2のアラーム信号を生成し、この信号は所
与の第2の遅延後に第1メモリから第2バッファメモリへ
の情報の読出しを再開するようイネーブルする。この特
許は発明の背景において説明した問題点に対して同期的
な解決を与えるものであるが、これは制御信号の遅れが
長い高速チャネルの場合での効率的な使用には適してい
ない。
US Pat. No. 4,040,027 (van Es) describes a method of controlling buffer memory to dictate available memory space. According to it, the data transfer is carried out from the first memory to the user device via the temporary storage and the intermediate second buffer memory. The system includes a measuring device that determines the extent to which the second buffer memory is filled with the information provided by the first memory while transferring the information from the second buffer memory to the user device. Upon detection of a predetermined first degree of filling, the measuring device generates a first alarm signal, which temporarily blocks further reading of information from the first memory after a given delay. That is, the data transfer is interrupted. After measuring a certain second degree of filling of the second buffer memory, the measuring device generates a second alarm signal, which signal after a given second delay from the first memory to the second buffer memory. Enable to resume reading information to. This patent provides a synchronous solution to the problems described in the background of the invention, but it is not suitable for efficient use in the case of high speed channels with long control signal delays.

【0005】米国特許第4,298,954号(Bigelow 外)はデ
ータ信号の受信及び供給を交互に行う2個のバッファを
備えたバッファ記憶装置について示している。バッファ
の機能は2個のバッファ間で交互に行われ、バッファの
一方が空の場合に、他方のバッファはまだデータで一杯
になっていないものの、所定数の信号を受取っている。
データがデータバイトのブロック単位で転送される場
合、それらバッファ間のスイッチングはデータブロック
の所定の調節用境界上で行われる。バッファ間での機能
の交替は複数のバッファ記憶装置を使用してホストプロ
セッサやデータ記憶ユニットのような個々のデータバー
ストユニットを結合することによって、データ受信バッ
ファ内の複数のアドレス境界の内の何れか1つにおいて
発生する。それぞれのデータバーストユニットはデータ
転送を実施するため高速のバッファアクセスを備えてい
る。この特許も制御信号に短い応答時間が存在するよう
なモードについて述べている。
US Pat. No. 4,298,954 (Bigelow et al.) Shows a buffer storage device with two buffers that alternately receive and supply data signals. The function of the buffer alternates between the two buffers; when one buffer is empty, the other buffer is receiving a predetermined number of signals, although it is not yet full of data.
If the data is transferred in blocks of data bytes, the switching between the buffers takes place on predetermined alignment boundaries of the data blocks. Alternation of functions among the buffers is accomplished by combining multiple individual data burst units, such as host processors and data storage units, using multiple buffer stores to determine which of the multiple address boundaries within the data receive buffer is to be used. Occurs in one or the other. Each data burst unit has a high speed buffer access for performing the data transfer. This patent also describes a mode in which there is a short response time in the control signal.

【0006】米国特許第4,583,166号(Hartung 外)は直
接アクセス記憶デバイス(DASD)を使用したキャッシュ記
憶式周辺データサブシステムを示している。この特許は
キャッシュデータ記憶システムの背景を成すものであ
る。米国特許第4,571,674号において、Hartungはもう1
つのキャッシュデータ記憶サブシステムを示しており、
ここでは、1つの低速チャネルがこの低速チャネルより
も高いバーストレートを有するDASDへデータバッファを
介して接続されている。このキャッシュは2つのサービ
スを提供する。即ち、一方のサービスは高速チャネル用
のデータをキャッシュ記憶するものであり、そして他方
は低速チャネル用のレート変更用バッファリングであ
る。
US Pat. No. 4,583,166 (Hartung et al.) Shows a cached peripheral data subsystem using a direct access storage device (DASD). This patent forms the background of a cache data storage system. In US Pat. No. 4,571,674, Hartung has another
Shows two cache data storage subsystems,
Here, one slow channel is connected via a data buffer to DASD with a higher burst rate than this slow channel. This cache provides two services. That is, one service is to cache data for the high speed channel and the other is rate changing buffering for the low speed channel.

【0007】[0007]

【発明が解決しようとする課題】しかしながら、上記引
用文献の何れも信号伝搬遅れのために長い応答時間を有
するような高速チャネルに関係するデータの完全性及び
システムの完全性の問題については取組んではいない。
However, none of the above cited references address the data integrity and system integrity issues associated with high speed channels having long response times due to signal propagation delays. Not in.

【0008】[0008]

【課題を解決するための手段】本発明のキャッシュ記憶
式DASD周辺サブシステムを作動する方法では、先ず到来
する更新書込み処理の指示を受取る。指示はDASDに書込
まれるべきファイルの領域及びキャッシュを含んでい
る。利用可能な自由なキャッシュ空間の大きさはキャッ
シュ空間を書込み領域内の諸レコードへ割当てることに
よって測定される。書込み領域のサイズはキャッシュ記
憶空間の利用可能性によって制限されるので、領域は上
述のデータの完全性の問題を生起することなく最大限の
データ転送を可能にするために、部分集合化される。ト
ラックスイッチング時に、利用可能なキャッシュセグメ
ントの数を再度チエックし、トラックスイッチングの遅
れを解消しホストプロセッサからの高速データ転送を可
能にするよう少なくとも1つのDASDトラックがキャッシ
ュ内にストアされることを確保している。
SUMMARY OF THE INVENTION In the method of operating a cached DASD peripheral subsystem of the present invention, an incoming update write operation instruction is first received. The instructions include the area of the file to be written to DASD and the cache. The amount of free cache space available is measured by allocating cache space to the records in the write area. Since the size of the write area is limited by the availability of cache storage space, the area is subset to allow maximum data transfer without causing the data integrity problems described above. . Ensures that at least one DASD track is stored in cache to recheck the number of available cache segments during track switching, eliminating track switching delays and allowing fast data transfer from the host processor. is doing.

【0009】本発明を別の面から見ると、更新書込み動
作(即ちファイルをホストプロセッサにより更新する)で
は起りうる最大キャッシュサイズ要件を計算する。デー
タ転送中に、計算した最大キャッシュ要件をDASD上のデ
ータの断片化に従って調節して、キャッシュ記憶空間の
利用可能性をこの周辺サブシステムの全目的に対し最大
化する。フォーマット書込みでは、利用可能キャッシュ
セグメントの計算は各トラックスイッチング時に行う。
In another aspect of the invention, an update write operation (ie, updating a file by the host processor) calculates the maximum cache size requirement that can occur. During data transfer, the calculated maximum cache requirements are adjusted according to the fragmentation of the data on DASD to maximize the availability of cache storage space for all purposes of this peripheral subsystem. In format writing, the calculation of available cache segments is performed at each track switching.

【0010】データの転送長ファクタ(TLF)がホストプ
ロセッサにより生成される。このファクタはファイル内
の1レコード分のデータの測定値を含み、書込み領域は
レコードの数を示す。ホストプロセッサ及びDASD間のデ
ータ転送を制御するためにキャッシュ内の記憶空間又は
セグメントの最大数が判定される。
A data transfer length factor (TLF) is generated by the host processor. This factor contains a measurement of the data for one record in the file and the write area indicates the number of records. The maximum number of storage spaces or segments in the cache is determined to control the data transfer between the host processor and DASD.

【0011】[0011]

【実施例】次に、図面について述べると、種々の図面に
おいて同じ部品及び構造上の特徴部分は同じ番号で指示
するようにしてある。図1において、ホストプロセッサ1
0は光ファイバチャネル12を介して周辺サブシステム19
に接続されている。サブシステム19は接続機構回路11、
レート変更バッファ13、制御装置/マイクロプロセッサ
(以下マイクロプロセッサと称する)14、キャッシュ16、
データ転送回路18及び複数のDASD 20,21から成る。チャ
ネル12は複数のホストプロセッサ10及び複数の周辺サブ
システム(これらの多くはデータ記憶サブシステムと
し、他のものは他の種類の周辺サブシステムとすること
ができる)の間にある。接続体12の特性はデータ転送の
バーストレートがDASD 20,21のバーストデータ転送レー
トよりもずっと大きく、またホストプロセッサ10及び周
辺サブシステムの間の光ファイバに沿った信号伝搬時間
が相当なものであるようなものである。接続体の長さに
依存する信号伝播時間はリアルタイムベースでのデータ
転送の対話式制御を妨げる。即ち、ホストプロセッサ10
及び周辺データ記憶サブシステム19の間で制御信号を交
換するために以前に使用されたギャップをDASD 20が走
査するのに要する時間はチャネル接続体12の双方向信号
伝搬時間よりも短かい。このようなデータ転送レート及
び信号伝搬時間の不釣合いはデータ完全性及びシステム
完全性の問題を生起する。書込み動作、即ちホストプロ
セッサ10からDASD 20へのデータの転送はいわゆる分岐
書込み動作を包含している。ホストプロセッサ10から接
続機構回路11を介して転送されるデータはレート変更バ
ッファ13及びデータ転送回路18を経て供給され、DASD 2
0上に保存記録される。遅いデータレートはDASD 20のデ
ータレートによって決まるものである。IBM社の拡張形
カウント・キー・データ(ECKD)制御アーキテクチャはDA
SD 20の読取り制御データ機構が介在せずに幾つかのレ
コードのバーストデータ転送を収容することを許容す
る。データをDASDに書込む際、書込むデータのコピーも
キャッシュ16内にストアされる。この動作は分岐操作と
称するものである。キャッシュコピーによって、データ
をDASD 20へ書込んだ後のマシン動作がホストプロセッ
サ10及びサブシステム19の間で電子的速度で実行され
る。分岐操作においては、データをレート変更バッファ
13及びデータ転送回路18を介してバス24,22上を転送す
るだけでなく、バス23上にも転送してキャッシュ16の利
用可能なセグメント内に記憶する。同様にして、読出し
動作時に分岐読出しが生ずる。分岐読出しでは、データ
転送回路18を介して供給されるDASD 20からの読取りデ
ータはレート変更バッファ13を介してホストプロセッサ
10に転送されるだけでなく、ケーブル即ちバス23を介し
てキャッシュ16内にストアされる。上述の動作は全てマ
イクロプロセッサ14によって制御され順序付けられる
が、マイクロコンピュータ14は参照番号27でまとめて表
す一組の電気接続を介して周辺サブシステムの諸要素全
部へ制御信号を送り、またそれらからデータ信号を受取
る。かかる動作は本明細書に述べる更新書込み制御及び
フォーマット書込み制御を含んでいる。
DETAILED DESCRIPTION OF THE INVENTION Referring now to the drawings, like parts and structural features are designated by like numerals in the various views. In FIG. 1, the host processor 1
0 through the fiber optic channel 12 to the peripheral subsystem 19
It is connected to the. The subsystem 19 is the connection mechanism circuit 11,
Rate change buffer 13, controller / microprocessor
(Hereinafter referred to as microprocessor) 14, cache 16,
It comprises a data transfer circuit 18 and a plurality of DASDs 20, 21. Channel 12 is between a plurality of host processors 10 and a plurality of peripheral subsystems (of which many may be data storage subsystems and others may be other types of peripheral subsystems). The characteristics of the connector 12 are that the burst rate of data transfer is much larger than the burst data transfer rate of DASD 20,21, and the signal propagation time along the optical fiber between the host processor 10 and the peripheral subsystem is considerable. Something like that. The signal transit time, which depends on the length of the connection, hinders interactive control of data transfer on a real-time basis. That is, the host processor 10
And the time required for the DASD 20 to scan the gap previously used to exchange control signals between the peripheral data storage subsystem 19 is less than the bidirectional signal propagation time of the channel connector 12. Such imbalances in data transfer rates and signal propagation times give rise to data integrity and system integrity issues. The write operation, ie the transfer of data from the host processor 10 to the DASD 20 involves a so-called branch write operation. The data transferred from the host processor 10 via the connection mechanism circuit 11 is supplied via the rate change buffer 13 and the data transfer circuit 18, and DASD 2
Recorded on 0. The slow data rate is determined by the DASD 20 data rate. IBM's Extended Count Key Data (ECKD) control architecture is DA
Allows accommodating burst data transfers of several records without intervening SD 20 read control data mechanism. When writing data to DASD, a copy of the data to be written is also stored in cache 16. This operation is called a branch operation. The cache copy causes machine operations after writing data to DASD 20 to be performed at electronic speed between host processor 10 and subsystem 19. In a branch operation, the data is a rate change buffer.
The data is transferred not only on the buses 24 and 22 through the data transfer circuit 13 and the data transfer circuit 18, but also on the bus 23 and stored in an available segment of the cache 16. Similarly, branch read occurs during the read operation. In the branch read, the read data from the DASD 20 supplied via the data transfer circuit 18 is transferred via the rate change buffer 13 to the host processor.
In addition to being transferred to 10, it is stored in cache 16 via cable or bus 23. Although all of the operations described above are controlled and sequenced by the microprocessor 14, the microcomputer 14 sends control signals to and from all of the components of the peripheral subsystem via a set of electrical connections, generally designated by the reference numeral 27. Receive a data signal. Such operations include the update write control and the format write control described herein.

【0012】次に、図2について述べると、このマシン
動作フローチャートはホストプロセッサ10の供するコマ
ンドに応答してマイクロプロセッサ14が周辺サブシステ
ムに対し実施する制御について示している。本発明の1
実施例では、図1のホストプロセッサ10及び周辺サブシ
ステムの間でコマンドチェイニングを使用している。こ
のコマンドチェイニングは多年にわたってIBM社が使用
している公知の入出力制御機構である。ここでのフロー
チャートはコマンドチェイニングの使用を反映したもの
である。
Referring now to FIG. 2, this machine operation flow chart illustrates the control performed by microprocessor 14 on the peripheral subsystem in response to commands provided by host processor 10. 1 of the present invention
In the preferred embodiment, command chaining is used between the host processor 10 of FIG. 1 and the peripheral subsystem. This command chaining is a well-known I / O control mechanism used by IBM for many years. The flow chart here reflects the use of command chaining.

【0013】チェイン(図2)中の最初のコマンドはホス
トプロセッサ10からの2個のチャネルコマンドから成
る。DEFINE EXTENTコマンド30は周辺サブシステム19を
次のコマンドチェイニングにおいて処理すべきファイル
が存在しているDASD 20上のアドレスレンジに制限す
る。DEFINE EXTENTコマンド30はいわゆるファイルマス
クを含み、このマスクは次に続く諸コマンドにおけるあ
るタイプの書込み動作を許可したり禁止したりする。
(例えば後で説明するフォーマット書込みを禁止した
り、更新書込みを禁止したり、シリンダシークを禁止し
たり、ホームアドレス又は制御レコードをDASD 20やそ
の他の制御装置上へ書込みを許可する。)また、DEFINE
EXTENTコマンドはブロックサイズ、範囲の初め(即ち開
始アドレス)及び範囲の終了アドレスも指示する。DEFIN
E EXTENTコマンド30の後にLOCATE RECORDコマンド31が
続く。このコマンドはこの連続するコマンドチェイニン
グ中の次に続く書込み動作の範囲を規定する書込み領域
を確立する。このLOCATE RECORDコマンド31は、ホスト
プロセッサメモリ中のチェイニングしたチャネルコマン
ドワード(CCW)からホストプロセッサ10のチャネルプロ
セッサ内で発せられる書込みコマンドのための処理領域
を作り出す。IBM社の公知のLOCATE RECORDコマンドにお
いては、種々のパラメータを使用している。LOCATE REC
ORDには、処理すべきレコード又はトラックの数(本例で
は処理すべきレコード数)を含んでいる。このコマンド
はまたシークアドレス(即ちDASD 20上における上記書込
み領域中の最初のレコードのロケーション)、サーチ引
数及びセクタ番号をも含み、また転送長ファクタも設け
ることができる。CKDレコードアーキテクチャでは、転
送長ファクタTLFはファイル中の各レコードのバイト数
である。チャネルコマンド30及び31は周辺サブシステム
19に対して、到来する書込み動作に対する準備を整える
ように命ずる。
The first command in the chain (FIG. 2) consists of two channel commands from the host processor 10. The DEFINE EXTENT command 30 limits the peripheral subsystem 19 to the address range on DASD 20 where the file to be processed in the next command chain resides. The DEFINE EXTENT command 30 contains a so-called file mask, which allows or disallows certain types of write operations in subsequent commands.
(For example, prohibit the format write described later, prohibit the update write, prohibit the cylinder seek, and allow the home address or the control record to be written on the DASD 20 or other control device.) DEFINE
The EXTENT command also indicates the block size, the beginning of the range (ie the starting address) and the ending address of the range. DEFIN
E EXTENT command 30 is followed by LOCATE RECORD command 31. This command establishes a write area that defines the range of subsequent write operations during this sequential command chain. This LOCATE RECORD command 31 creates a processing area for a write command issued within the channel processor of host processor 10 from a chained channel command word (CCW) in host processor memory. Various parameters are used in the known LOCATE RECORD command of IBM Corporation. LOCATE REC
The ORD contains the number of records or tracks to be processed (the number of records to be processed in this example). This command also contains the seek address (ie the location of the first record in the write area on DASD 20), the search argument and the sector number, and a transfer length factor can also be provided. In the CKD record architecture, the transfer length factor TLF is the number of bytes in each record in the file. Channel commands 30 and 31 are peripheral subsystems
Command 19 to prepare for incoming write operations.

【0014】IBMが設計し構築した周辺サブシステムで
は、図2のマシン動作ステップ32以下は書込みコマンド
が命ずる周辺サブシステムの動作を表している。LOCATE
RECORDコマンド31はチェイン内の受取った書込みコマ
ンドFORMAT WRITEコマンドがマイクロプロセッサ14によ
り評価されているか否かにかかわらず、マシン動作ステ
ップ32で実行すべき書込み動作のタイプを示す。もしFO
RMAT WRITEコマンドを実行すべき場合には、TLFは書込
み領域については正確である必要はない。しかしなが
ら、FORMAT WRITEコマンド(公知のIBM周辺動作)では、
ホストプロセッサ10は何時DASD 20のトラック間でスイ
ッチングが起こるかを知っている。従って、ホストプロ
セッサ10は次のトラックへのスイッチングのためのWRIT
E CKD NEXT TRACKコマンドを発する。このコマンドはホ
ストプロセッサ10が周辺サブシステムに対して、次の即
ち新たなトラックのフォーマット化を開始するように命
じていることを示す。それ故、FORMAT WRITEコマンドに
対して必要な最大の利用可能なキャッシュセグメントは
図3に示すマシン動作から明らかなように、キャッシュ
内に1トラック分のDASDデータをストアするためのキャ
ッシュセグメントである。
In the peripheral subsystem designed and built by IBM, the machine operation step 32 and subsequent steps in FIG. 2 represent the operation of the peripheral subsystem commanded by the write command. LOCATE
The RECORD command 31 indicates the type of write operation to be performed at machine operation step 32 regardless of whether the received write command FORMAT WRITE command in the chain is being evaluated by the microprocessor 14. If FO
If the RMAT WRITE command should be executed, the TLF does not have to be accurate about the write area. However, with the FORMAT WRITE command (known IBM peripheral operation),
The host processor 10 knows when switching occurs between tracks on the DASD 20. Therefore, the host processor 10 uses the WRIT for switching to the next track.
Issue the E CKD NEXT TRACK command. This command indicates that the host processor 10 is instructing the peripheral subsystem to begin formatting the next or new track. Therefore, the largest available cache segment required for the FORMAT WRITE command is the cache segment for storing one track of DASD data in the cache, as is apparent from the machine operation shown in FIG.

【0015】もしステップ32において命令された動作が
FORMAT WRITEコマンドではなくUPDATE WRITEコマンドで
ある場合には、キャッシュの利用可能なセグメントを測
定して、LOCATE RECORDコマンド31中で規定された上記
の書込み領域のサイズと比較する必要がある。周辺サブ
システムコントローラは処理すべき現行ファイルのLOCA
TE RECORDコマンドで示されたレコードの断片化を知ら
ないので、この状態は最悪状態計算を必要とする。
If the operation instructed in step 32 is
If it is an UPDATE WRITE command rather than a FORMAT WRITE command then the available segment of the cache needs to be measured and compared to the size of the write area specified above in the LOCATE RECORD command 31. Peripheral subsystem controller is LOCA of current file to process
This state requires a worst-case state calculation, since it does not know the fragmentation of the record indicated by the TE RECORD command.

【0016】データ転送の意図しない中断を回避してチ
ャネル利用率を最大化しまたデータの完全性を保持する
ために、最悪状態下での断片化を想定する。ステップ33
ではレコードサイズ、即ちTLFを検査する。ここで、レ
コード長は同一ファイル中では同じであるが、異なるフ
ァイルでは根本的に異なることがある。
Fragmentation under worst-case conditions is assumed in order to avoid unintended interruptions of data transfer to maximize channel utilization and preserve data integrity. Step 33
Then, check the record size, that is, TLF. Here, the record length is the same in the same file, but may be fundamentally different in different files.

【0017】TLFは1レコードをストアするのに必要なキ
ャッシュセグメント数を確認するために計算中に使用さ
れる。説明上、DASDの1トラックはある所定量のデータ
を種々のサイズのレコードでストアするものとする。例
えば、レコード長はあるファイルでは250バイト、別の
ファイルでは10,000バイト、更に第3のファイル中では2
5,000バイトである。キャッシュの効率化のために、各
キャッシュセグメントは各トラックのデータ記憶容量の
ほぼ整数分の1の量をストアする。かかる構成は米国特
許第4,499,539号(Vosacek)中に示されており、そこでは
3個のキャッシュセグメントを使用して1データトラック
の内容をストアする。本発明の1実施例では、5個までの
キャッシュセグメントを用いて、1データトラックから
の1データ集合全体をストアする。尚、それら5個のセグ
メントのうちの3個が完全に一杯となり2個は部分的に満
たされたセグメントとなる場合もある。
The TLF is used during calculation to ascertain the number of cache segments needed to store one record. For the sake of explanation, it is assumed that one track of DASD stores a certain amount of data in records of various sizes. For example, the record length is 250 bytes in one file, 10,000 bytes in another file, and 2 bytes in the third file.
It is 5,000 bytes. For cache efficiency, each cache segment stores approximately an integer fraction of the data storage capacity of each track. Such an arrangement is shown in U.S. Pat.No. 4,499,539 (Vosacek), where
Store the contents of one data track using three cache segments. In one embodiment of the invention, up to five cache segments are used to store an entire data set from a data track. Note that three of these five segments may be completely full and two may be partially filled.

【0018】図4に詳解したステップ34では、最大書込
み領域サイズ(以下WDMAXという。)を計算する。断片化
のために、計算では書込み領域中の最後のトラックが一
杯のトラックである点を除いて、DASDトラック当り1個
のレコードがストアされると仮定する。DASDトラックの
キャッシュイメージは1つの完全なトラックイメージで
あることが望ましい。書込み領域中の最初のトラックは
このトラックの直ぐ隣りでかつこのトラック上のインデ
ックスマーク内にある最初のレコードではなくてインデ
ックスマークから円周方向に変位したレコードで始まる
部分トラックイメージを有することがある。それ故、DA
SDトラックの実際のデータ内容をストアするには、可変
数のキャッシュセグメントがキャッシュ16内に必要であ
る。キャッシュ記憶の要件は1セグメントとすることが
でき、そして最大5セグメントである。小さなレコード
の場合、複数のレコードがトラック上にあるとき、複数
のレコードをキャッシュセグメントの各々にストアす
る。キャッシュ空間の最悪状態下での使用はキャッシュ
セグメント中に1レコードのみがストアされ、またレコ
ードが各キャッシュ記憶セグメントの容量以下の任意の
大きさをとり得る場合である。何れにせよ後に詳述する
ように、キャッシュに対する最悪状態下でのWDMAX要件
がステップ34で計算される。このWDMAX要件はトラック
上の最初のレコード(CKDトラック中のレコードHA)以外
のレコードで始まるトラックデータをキャッシュセグメ
ント境界上にストアし、また第1レコードHAをキャッシ
ュセグメント境界にストアすることの必要性から生ずる
ものである。
In step 34 described in detail in FIG. 4, the maximum write area size (hereinafter referred to as WDMAX) is calculated. Due to fragmentation, the calculation assumes that one record is stored per DASD track, except that the last track in the write area is a full track. The DASD track cache image should be one complete track image. The first track in the write area may have a partial track image immediately adjacent to this track and not the first record in the index mark on this track but starting with the record circumferentially displaced from the index mark. . Therefore, DA
A variable number of cache segments is needed in cache 16 to store the actual data contents of the SD track. The cache storage requirement can be one segment, and a maximum of five segments. For small records, multiple records are stored in each of the cache segments when multiple records are on the track. Worst-case use of cache space is when only one record is stored in a cache segment and the record can be any size less than the capacity of each cache storage segment. In any case, the worst-case WDMAX requirement for the cache is calculated in step 34, as will be described in more detail below. This WDMAX requirement requires that track data beginning on a record other than the first record on the track (the record HA in the CKD track) be stored on a cache segment boundary and that the first record HA be stored on a cache segment boundary. It results from

【0019】その後、ステップ35において、計算された
WDMAXを利用可能なキャッシュセグメント数(レコードを
ストアするに十分な自由キャッシュ空間)と比較する。
もし利用可能な自由キャッシュセグメントの数が計算さ
れたWDMAXよりも大きいかそれとも等しければ、サブシ
ステム19は書込み領域中にデータを受取る用意ができて
いることになる。もしそうでなければ、書込み領域デー
タ転送は部分集合化する必要がある。その結果、マシン
ステッブ36では、マイクロプロセッサ14は図5に詳解す
るように現在利用可能なキャッシュセグメントを用いる
最大領域部分集合のサイズを計算する。この計算が完了
すると、周辺サブシステム19はデータをDASD 20へ書込
むため、現行コマンドチェイニング中のホストプロセッ
サ10からの次のWRITEコマンドに効率的かつ安全に応答
する準備ができたことになる。
Then, in step 35, the calculated
Compare WDMAX to the number of available cache segments (enough free cache space to store a record).
If the number of free cache segments available is greater than or equal to the calculated WDMAX, subsystem 19 is ready to receive data in the write area. If not, the write area data transfer needs to be subset. As a result, at machine step 36, the microprocessor 14 calculates the size of the largest region subset using the currently available cache segments as detailed in FIG. Once this calculation is complete, the peripheral subsystem 19 writes the data to DASD 20 and is ready to efficiently and safely respond to the next WRITE command from the host processor 10 during the current command chain. .

【0020】キャッシュ16内にストアされているデータ
のコピーを有するDASD 20の各トラックは別個割当ての
キャッシュ空間である。これはキャッシュアドレス指定
がDASD 20のトラックをアドレス指定することに基づく
からである。その結果、もし1つのレコードしか1DASDト
ラック内に記録されない場合には、1キャッシュセグメ
ントを1レコードのコピーをストアするのに割当てる。
もし2以上のレコードが1DASDトラック内にあれば、全ト
ラックレコードを、もしそれらレコードが小さければ、
1セグメントという1つの最小キャッシュ割当内にストア
することができよう。FORMAT WRITE中のステップ32から
又は更新書込み中のステップ35又は36から、キャッシュ
セグメントをステップ37で割当てる。1つのFORMAT WRIT
Eに対し5個のセグメント(1トラック)を割当てる一方、
計算されたWDMAX(ステップ35でYES)又は最大部分集合サ
イズ(ステップ36)を1つの更新書込みに対し割当てる。
Each track of DASD 20 that has a copy of the data stored in cache 16 is a separately allocated cache space. This is because cache addressing is based on addressing DASD 20 tracks. As a result, if only one record is recorded in one DASD track, one cache segment is allocated to store a copy of one record.
If there are 2 or more records in one DASD track, all the track records, if they are small,
It could be stored within one minimum cache allocation of one segment. The cache segment is allocated in step 37 from step 32 during FORMAT WRITE or from step 35 or 36 during update writing. 1 FORMAT WRIT
While assigning 5 segments (1 track) to E,
Assign the calculated WDMAX (YES in step 35) or the maximum subset size (step 36) to one update write.

【0021】WRITEコマンドの受取りは番号40によって
表わしており、ホストプロセッサ10は図1に示す周辺デ
ータ記憶サブシステムが受取るよう書込みコマンドを送
る。このフローチャートの説明では、全動作が準備チャ
ネルコマンド30,31において提示した要件に従ったもの
であると仮定している。もしステップ41においてWRITE
コマンドがFORMAT WRITEである場合には、A 42を経て図
3に示すマシン動作を実行する。もしコマンドがFORMAT
WRITEではなかつた場合には、それは本例ではUPDATE WR
ITEである。ステップ43では、マイクロプロセッサ14は
データ書込み用の現行のコマンドチェイニングを部分集
合化しなければならないかについて、即ちWDMAXが利用
可能なキャッシュセグメントの数よりも大きいかについ
て確認する。もしそのような状態が存在する場合、B 44
を経て後に説明する図5のステップを実行する。利用可
能なキャッシュセグメント数がキャッシュ16の最悪状態
下での使用において全てのデータをストアすることがで
きる場合には常にデータをDASD 20へ書込むステップ45-
51を実行する。ステップ45では、ステップ40で受取った
書込みコマンドを開始させ、1つもしくはそれ以上のレ
コードをレート変更バッファ13及びデータ回路16を介し
てDASD 20へ書込む。レコードをレート変更バッファ13
からDASD 20へ読取るのと同時に、レコードのコピーを
バス23を介してキャッシュ16内にストアする。キャッシ
ュ16内へのレコードのストアは既に又は現在キャッシュ
16内にストアされている書込み領域からのデータに上書
きすることを含む。かかる書込み即ちキャッシュヒット
は周知であり、またそのようなキャッシュヒットに対応
するキャッシュセグメントのアドレス指定及び構成は周
知であるので、これ以上説明しない。
Receipt of the WRITE command is indicated by the numeral 40, and the host processor 10 sends the write command for receipt by the peripheral data storage subsystem shown in FIG. The description of this flowchart assumes that all operations are in accordance with the requirements presented in the prepare channel commands 30,31. If in step 41 WRITE
If the command is FORMAT WRITE, go through A 42
Executes the machine operation shown in 3. If the command is FORMAT
If it is not WRITE, it is UPDATE WR in this example.
It is ITE. In step 43, the microprocessor 14 checks if the current command chaining for writing data has to be subset, that is, if WDMAX is greater than the number of cache segments available. If such a condition exists, B 44
After that, the steps of FIG. 5 described later are executed. Write data to DASD 20 whenever the number of available cache segments allows all data to be stored for use under worst case cache 16 Step 45-
Execute 51. In step 45, the write command received in step 40 is initiated to write one or more records to DASD 20 via rate change buffer 13 and data circuit 16. Record changing buffer 13
At the same time it reads from DASD 20 into the cache, it stores a copy of the record in cache 16 via bus 23. Store records in cache 16 already or currently cached
Includes overwriting data from the write area stored in 16. Such writes or cache hits are well known, and the addressing and organization of cache segments corresponding to such cache hits is well known and will not be described further.

【0022】キャッシュヒットはWDMAX要件の計算に影
響を与える。この影響はUPDATE WRITE動作に対する所要
キャッシュセグメント数の減少をもたらす。各レコード
の書込みが完了次第ステップ46でマイクロプロセッサ14
は接続機構回路11からバッファ13へのレコード転送によ
ってトラック末尾(EOT)に達したか、即ちDASD 20中に記
録されるべき最後のレコードを後でDASD 20及びキャッ
シュ16内に記録するためにバッファ13内へ受取ったか否
かについて判定する。バッファ13のチャネル接続端にお
けるトラック末尾の検出は周知のように現行トラック上
のインデックスマーク102(図6)に対応しており、検出は
マークを走査するDASD 20により後に示される。尚、現
行のマシン動作はUPDATE WRITEであるから、もし書込む
べきデータトラックが1つしかないかあるいは1レコード
を1トラックにストアする場合、1個のレコードのみをDA
SD 20のディスク(図示せず)の1回転中に書込むことにな
る。もしトラック末尾に達しておらずしかもこのアクセ
ス中の現行トラック上に追加のレコードを書込まなけれ
ばならない場合には、ステップ47で受取る諸WRITEコマ
ンドにより供給される追加のレコードをステップ45で書
込む。しかしながら、DASD 20の現行トラック上に先に
記録した最終レコード及びインデックスマーク(EOT)の
間には、DASDトラックに対して追加のレコードを書込ま
ない。ステップ50では、書込み中の各トラック末尾にお
いて、キャッシュ16内にストアされているデータ量、即
ちDASD 20のトラックを更新するのに使用するデータを
ストアするため、使用できるキャッシュセグメント数を
測定する。もし現行トラック上に1つのレコードしか記
録されなかった場合には、現行トラックのレコードをス
トアするのに最大数のキャッシュセグメントが必要であ
るため、余分のキャッシュセグメントは存在していな
い。他方、もし現行トラックに対して30個のレコードが
書込まれた場合には、それらの30個のレコードは例えば
2つのキャッシュセグメント中にストアするようにする
ことができる。最大断片化では、34個のキャッシュセグ
メントを最初30個のレコードの書込み領域に対して、即
ち1トラックあたり1レコードと仮定して割当てる。実際
には2個のキャッシュセグメントのみを使用して更新デ
ータをキャッシュ16内にストアすることが可能であるか
ら、残りの32個の割当てられたキャッシュセグメントは
他のデータをストアするためにまだ利用可能である。こ
のようなキャッシュセグメントは過剰セグメントと称
し、これを検出した時にトラックの各末尾で割当て解除
を行う。その後、ステップ51で、この書込み領域の終り
に達したか否かについて、最新のコマンドを接続機構回
路11を介して受取る時に検出する。この検出はDASD 20
が書込み領域の全レコードの受取り及びストアの完了前
に生ずる。即ち、レコードをバス22を介してDASD 20へ
転送する時点ではなく、バス24を介してバッファ13へレ
コードを転送する時点で検出する。もし書込み領域の終
りでなければ、ステップ45,46,47,50を書込み領域が終
了するまで繰返し、そして終了すると、マシン動作がパ
ス52を介して他の動作へ移行する。パス52からサブシス
テム19は追加のLOCATE RECORDコマンドを受取ることが
あり、そして受取った時には、ステップ32以下を繰返
す。尚、ステップ50において、過剰セグメントの割当て
解除はトラック間で変ること、即ちファイル規定範囲中
の各トラック上にストアするレコード数が変ることに注
意されたい。米国特許第4,499,539号(Vosacek)はそれら
の目的のためのキャッシュ割当て解除の制御方法につい
て示している。
Cache hits affect the calculation of WDMAX requirements. This effect reduces the number of cache segments required for UPDATE WRITE operations. Upon completion of writing each record, in step 46, the microprocessor 14
Has reached the end of track (EOT) by a record transfer from attachment mechanism circuit 11 to buffer 13, i.e., the last record to be recorded in DASD 20 is buffered for later recording in DASD 20 and cache 16. It is judged whether or not it is received within 13. The detection of the end of the track at the channel connection end of the buffer 13 corresponds, as is known, to the index mark 102 (FIG. 6) on the current track, the detection being shown later by the DASD 20 scanning the mark. Since the current machine operation is UPDATE WRITE, if there is only one data track to be written or if one record is stored in one track, only one record is DA
It will be written during one rotation of the SD 20 disk (not shown). If the end of the track is not reached and additional records must be written on the current track being accessed, the additional records provided by the WRITE commands received at step 47 are written at step 45. . However, no additional record is written to the DASD track between the last record and the index mark (EOT) previously recorded on the current track of DASD 20. In step 50, at the end of each track being written, the amount of data stored in the cache 16, that is, the number of cache segments available to store the data used to update the track of the DASD 20, is measured. If only one record was recorded on the current track, then there is no extra cache segment because the maximum number of cache segments is needed to store the record for the current track. On the other hand, if 30 records were written for the current track, those 30 records would be
It can be stored in two cache segments. In maximum fragmentation, 34 cache segments are allocated to the write area of the first 30 records, assuming 1 record per track. In practice it is possible to store update data in cache 16 using only two cache segments, so the remaining 32 allocated cache segments are still available to store other data. It is possible. Such cache segments are referred to as excess segments, and when they are detected, they are deallocated at each end of the track. Then, in step 51, whether the end of this write area has been reached is detected when the latest command is received via the attachment mechanism circuit 11. This detection is DASD 20
Occurs before receiving and storing all records in the write area. That is, it is detected not when the record is transferred to the DASD 20 via the bus 22 but at the time when the record is transferred to the buffer 13 via the bus 24. If it is not the end of the write area, steps 45, 46, 47 and 50 are repeated until the end of the write area, and when done, machine operation transitions to another operation via path 52. Subsystem 19 from path 52 may receive an additional LOCATE RECORD command, and when it does, repeat steps 32 and below. Note that in step 50 the deallocation of excess segments varies from track to track, ie the number of records stored on each track in the file range changes. U.S. Pat. No. 4,499,539 (Vosacek) shows a method of controlling cache deallocation for those purposes.

【0023】図3は図2に示すフローチャートからA 42を
介してFORMAT WRITEを実施するマシン動作を示す。上記
のLOCATE RECORDコマンド21はWRITEコマンドがトラック
をフォーマット化、即ち新たなカウントフィールドを書
込むべきであることを示している。ステップ60では、サ
ブシステム19はコマンドがWRITE CKD NEXT TRACKコマン
ドであるか否かを判定する。もしコマンドでない場合、
ステップ61でレコードを受取り、そしてキャッシュ16及
びDASD 20中にストアする。このステップ61は終了状態
をホストプロセッサへ供給することを含んでいる。次に
ステップ62で、サブシステムはそれが書込み領域の終り
又はチェインの終りであるか否かについて判定する。こ
の転送の終りに、プロセスはパス63を介して出る。そう
でない場合には、サブシステムはステップ64で次の書込
みコマンドを受取り、そして受取り時に図2に示した動
作を繰返す。
FIG. 3 illustrates the machine operation of performing a FORMAT WRITE via A 42 from the flowchart shown in FIG. The LOCATE RECORD command 21 above indicates that the WRITE command should format the track, ie write a new count field. In step 60, subsystem 19 determines whether the command is a WRITE CKD NEXT TRACK command. If not a command,
The record is received at step 61 and stored in cache 16 and DASD 20. This step 61 involves providing the end status to the host processor. Then, in step 62, the subsystem determines whether it is the end of the write area or the end of the chain. At the end of this transfer, the process exits via path 63. If not, the subsystem receives the next write command in step 64, and upon receipt, repeats the operation shown in FIG.

【0024】ステップ40又は64の何れかでWRITE NEXT T
RACKコマンドを受取ると、ステップ65でサブシステム19
は利用可能なキャッシュセグメントの数について判定し
その数をストアする。ステップ66でサブシステム19は利
用可能キャッシュセグメント数が1トラック分のデータ
をストアするのに十分(即ち、本実施例では5個のキャッ
シュセグメント)であるか否かを判定する。もしYESであ
れば、DASDトラックへスイッチングし、そしてステップ
67で5個のキャッシュセグメントをホストプロセッサ10
からレコードを受取るために割当てて、DASD 20上に次
トラックをFORMAT WRITEする。その後、ステップ61以下
を繰返す。もし利用可能キャッシュセグメントが次DASD
トラック中にデータをストアするのに不十分である場合
には、ステップ70においてサブシステム19はCCR(チャネ
ル・コマンド・リトライ)をホストプロセッサ10へ送
る。ステップ71において、サブシステム19は現行の組の
マシン動作を利用可能キャッシュセグメントが1完全ト
ラックからのデータをストアするのに十分な数になるま
で延期させる。そして、十分となった時点でステップ72
でDEVICE END(DE)をホストプロセッサ10へ送りCCRを行
ったばかりのコマンドの再送出を指示し、その後コマン
ドをステップ64で受取る。ステップ72からステップ64及
び60以下を繰返す。ステップ66からは、ステップ61を実
行する前に、次トラックに対するデータをストアするた
めのキャッシュセグメントをステップ67で割当てる。
WRITE NEXT T in either step 40 or 64
Upon receipt of the RACK command, the subsystem 19 in step 65.
Determines the number of available cache segments and stores that number. In step 66, the subsystem 19 determines whether the number of available cache segments is sufficient to store one track of data (that is, five cache segments in this embodiment). If yes, switch to DASD track and step
67 to 5 cache segments host processor 10
Allocate to receive a record from and FORMAT WRITE the next track on DASD 20. Then, step 61 and subsequent steps are repeated. If the available cache segment is the next DASD
If not enough to store the data in the track, the subsystem 19 sends a CCR (Channel Command Retry) to the host processor 10 in step 70. In step 71, subsystem 19 suspends the current set of machine operations until there are enough cache segments available to store data from one complete track. And when it is enough, step 72
Then, DEVICE END (DE) is sent to the host processor 10 to instruct re-sending of the command that has just been CCR'd, and then the command is received at step 64. Steps 72 to 64 and 60 and subsequent steps are repeated. From step 66, before executing step 61, allocate a cache segment for storing data for the next track in step 67.

【0025】次に、図4について述べると、ステップ34
において言及した計算について2つのステップ80及び81
で詳しく示してある。ステップ80における最初の計算は
キャッシュ内にストアされた書込み領域中のデータに関
するものであり、それはキャッシュの利用に影響を与え
るものである。各ファイルにおいては、全レコードに順
次1(レコード1又はR1)からレコードN(RN)まで番号を付
けてある。但し、Nは整数である。CKD中のレコード0(R0)
は制御目的のために予約してあり、ユーザデータ用には
利用できない。DASD 20に書込まれている最中のキャッ
シュ16中にストアされているレコードは書込み動作中に
キャッシュヒットを生ずる。かかるキャッシュヒットは
チャネルコマンド31において規定する書込み領域に基づ
いて予測することができる。WDMAXはそのような書込み
領域中の最初のレコードが現在キャッシュ中にストアさ
れているコピーをもっている場合には常に増加させる。
即ち、DASDトラック内の最初に参照するレコード及びこ
れに続く全てのレコードはキャッシュ16のセグメントを
追加割当てせずに現行の書込み領域内で処理する。キャ
ッシュ内のそれらレコードは初めは1DASDトラック当た
り1レコードでストアされていると仮定する。図4のステ
ップ80における式は書込み領域サイズCの増加を示して
いる。尚、MはDASDトラック内のトラックキャッシュイ
メージとして現在ストアされているレコードの総数であ
り、値Sはチャネルコマンド31が書込み領域中で同定し
た最初のレコードのレコード番号であり、そしてFはト
ラックキャッシュイメージ中の最初のレコードの番号で
ある。
Next, referring to FIG. 4, step 34
Two steps 80 and 81 for the calculations mentioned in
For more details. The first calculation in step 80 is about the data in the write area stored in the cache, which affects the utilization of the cache. In each file, all records are sequentially numbered from 1 (record 1 or R1) to record N (RN). However, N is an integer. Record 0 (R0) in CKD
Is reserved for control purposes and is not available for user data. A record stored in cache 16 while being written to DASD 20 causes a cache hit during a write operation. Such a cache hit can be predicted based on the write area specified in the channel command 31. WDMAX is incremented whenever the first record in such a write area has a copy currently stored in cache.
That is, the first referenced record in the DASD track and all subsequent records are processed within the current write area without additional allocation of segments in the cache 16. Assume that those records in the cache are initially stored at one record per DASD track. The equation in step 80 of FIG. 4 shows an increase in the write area size C. Note that M is the total number of records currently stored as the track cache image in the DASD track, the value S is the record number of the first record identified by the channel command 31 in the write area, and F is the track cache. It is the number of the first record in the image.

【0026】ステップ81はDASD 20上のファイルの最悪
状態下での断片化に対してWDMAXを計算する。このWDMAX
は利用可能なキャッシュセグメント(CAS)から、一杯の
トラックに対して必要なキャッシュセグメント数の2倍
を引いたものに等しい(図示例ではTは5に等しく、ステ
ップ81での差は10となる)。その差に対し、各レコード
に必要なキャッシュセグメント数である値Rを加える。
このRは値TLFをキャッシュセグメント容量で割った商を
次の桁に丸めたものである。上記の値を次にRで割る。
次にC値を加えて、多数のレコードで表わした書込み領
域の最大サイズを得る。
Step 81 calculates WDMAX for the worst case fragmentation of the file on DASD 20. This WDMAX
Is equal to the available cache segment (CAS) minus twice the number of cache segments required for a full track (T equals 5 in the example shown, and the difference in step 81 is 10) ). The value R, which is the number of cache segments required for each record, is added to the difference.
This R is the quotient of the value TLF divided by the cache segment capacity, rounded to the next digit. Divide the above value by R.
Then add the C value to get the maximum size of the write area represented by a number of records.

【0027】図5は必要な書込み領域のサイズWDSIZEがW
DMAX値よりも大きな場合に、データ転送を書込み領域内
で部分集合化する方法について示している。残存する書
込み領域のサイズはステップ36でWDMAX値をWDSIZEから
差引くことによって計算される。
FIG. 5 shows that the required write area size WDSIZE is W
It shows how to sub-set the data transfer within the write area when it is greater than the DMAX value. The size of the remaining write area is calculated in step 36 by subtracting the WDMAX value from WDSIZE.

【0028】B 44は図2に示した1組のマシン動作からス
テップ90へ流れるマシン動作について示す。ステップ90
では、サブシステムはステップ40で受取った書込みコマ
ンドのレコードを受取り、そしてこの受取ったレコード
をキャッシュ及びDASDへストアする。このステップ90は
またマイクロプロセッサ14内のレコードカウントを増分
する。バッファ13が接続機構回路11から1レコードを受
取る毎に、マイクロプロセッサ14は増分値をストアしま
たレコードカウントをそれ自身の内部メモリ(図示せず)
内にストアする。ステップ91では、バッファ13のチャネ
ル接続端でデータ転送が終了したか否か、即ちDASD 20
上及びキャッシュ16内に記録すべき最後のレコードをホ
ストプロセッサ10が供給することによって表わす書込み
領域の終り又はチェインの終わりについて判定する。こ
の時点では、DASD 20及びキャッシュ16はまだ最終レコ
ードを書込み領域内に受取ってはいない。もしデータ転
送の終わりであれば、この動作から番号92で示すように
出る。そうでない場合には、ステップ93において、マイ
クロプロセッサ14はステップ90で増分したレコードカウ
ントがステップ34で計算したWDMAXに等しいか否かにつ
いて判定する。もし受取った最大数のレコードがステッ
プ34で計算したWDMAXではない場合には、ステップ98で
書込みコマンドを受取り、そしてステップ90,91及び93
を繰返す。このループはWDMAXに達するまで繰返す。こ
こで、カウントは接続機構回路11からバス24を介しレー
ト変更バッファへ転送するレコードについて行う。
B 44 shows the machine operation which flows from the set of machine operations shown in FIG. 2 to step 90. Step 90
Then, the subsystem receives the record of the write command received in step 40 and stores the received record in the cache and DASD. This step 90 also increments the record count in the microprocessor 14. Each time buffer 13 receives one record from attachment circuit 11, microprocessor 14 stores an increment value and also records the record count in its own internal memory (not shown).
Store in. In step 91, whether or not the data transfer is completed at the channel connection end of the buffer 13, that is, DASD 20
The end of the write area or the end of the chain represented by the host processor 10 supplying the last record to be recorded on top and in the cache 16 is determined. At this point, DASD 20 and cache 16 have not yet received the final record in the write area. If it is the end of the data transfer, the operation exits as shown at 92. Otherwise, in step 93, microprocessor 14 determines if the record count incremented in step 90 is equal to WDMAX calculated in step 34. If the maximum number of records received is not the WDMAX calculated in step 34, a write command is received in step 98, and steps 90, 91 and 93 are received.
Repeat. This loop repeats until WDMAX is reached. Here, the counting is performed for the records transferred from the connection mechanism circuit 11 to the rate change buffer via the bus 24.

【0029】サブシステム19によっては、キャッシュ16
を示す複数の独立の記憶パスを有するものがある。それ
ぞれの記憶パスは接続機構回路11中のそれ自身の回路、
それ自身のレート変更バッファ13及びデータ転送回線18
並びにキャッシュ16に対する独立のアクセスパスを含ん
でいる。マイクロプロセッサ16はこれら記憶パスの幾つ
か又は全てを制御する。それぞれの記憶パスについて利
用可能なキャッシュセグメント数は非割当てキャッシュ
セグメントの共通又は共用プールから、又はそれぞれの
記憶パスについてのセグメントプールからの何れかとす
ることができる。何れの場合にも、種々の記憶パス中の
そのようなキャッシュセグメント及び現行データ転送レ
ートに対する負荷バランス又は必要性を実現することが
できる。本発明の上記の制御は何れにせよ同一の発明原
理を使用している。
Depending on the subsystem 19, the cache 16
Some have multiple independent storage paths indicating. Each memory path is its own circuit in the attachment mechanism circuit 11,
Its own rate change buffer 13 and data transfer line 18
It also contains an independent access path to the cache 16. Microprocessor 16 controls some or all of these storage paths. The number of cache segments available for each storage path can either be from a common or shared pool of unallocated cache segments, or from the segment pool for each storage path. In either case, a load balance or need for such cache segments and current data transfer rates in the various storage paths can be realized. The above control of the present invention uses the same inventive principle in any case.

【0030】データ転送及び書込み領域を部分集合化す
るために、図1に示したサブシステム19はステップ94に
おいてCCRをホストプロセッサへ送ってデータ転送を瞬
時的にストップさせる。サブシステムのCCRはホストプ
ロセッサ10に対して、受取ったばかりのチャネルコマン
ド、即ちカウントが最大値に達した直後のチャネル書込
みコマンドが周辺データ記憶サブシステムによって拒絶
されたことを指示する。CCRは事実上データ転送を中断
する外部割込みである。即ち、チャネル12の動作はホー
ルド状態となる。この例では、デバイス動作はチャネル
16の十分な数の利用可能なキャッシュセグメントが利用
可能になるまで続く。従って、ステップ95で、マイクロ
プロセッサ14は次のデータトラックをストアするのに十
分なキャッシュセグメント、即ち5個のセグメントが存
在するか否かについて判定する。もし十分なければ、ス
テップ95の反復実行より成る待機ループ(待機ループは
周知の如く他の動作とインターリーブさせることができ
る)を少なくとも5個のセグメントが利用可能になるまで
繰返す。そして、利用可能になった時点でデバイスエン
ド(DE)をステップ96でホストプロセッサ10に供給する。
その後、再びステップ33以下を実行するためパス97を辿
る。即ち、書込み領域の残りは現在利用可能なセグメン
ト数を上廻る利用可能なWDMAXを必要とするかもしれな
い。即ち、追加の部分集合化が起こるかもしれない。そ
れぞれの部分集合のサイズは現在利用可能なキャッシュ
セグメント数に応じて変化する。そのようなデバイスエ
ンドDEはホストプロセッサ10に対して周辺サブシステ
ムが今やデータ転送を次に行える状態に達したことを指
示する。このモードでトラックの切換えが生ずる時、FO
RMAT WRITE動作中で行われるようなデータ転送の中断自
体は存在しないことに注意されたい。以上の全てはディ
スク回転のロスが最小限となるDASD 20への書込みを確
保し、またキャッシュ16が全レコードのコピーをストア
できるよう確保する効率的で有効なマシン制御を与え
る。
To sub-set the data transfer and write areas, subsystem 19 shown in FIG. 1 sends a CCR to the host processor in step 94 to momentarily stop the data transfer. The subsystem CCR indicates to the host processor 10 that the channel command that was just received, that is, the channel write command immediately after the count reached the maximum value, was rejected by the peripheral data storage subsystem. CCR is an external interrupt that effectively interrupts the data transfer. That is, the operation of the channel 12 is in the hold state. In this example, the device operation is the channel
Continue until 16 sufficient number of available cache segments are available. Therefore, in step 95, microprocessor 14 determines whether there are enough cache segments, or five segments, to store the next data track. If not, the wait loop consisting of repeated executions of step 95 (the wait loop can be interleaved with other operations as is well known) is repeated until at least 5 segments are available. Then, when it becomes available, the device end (DE) is supplied to the host processor 10 in step 96.
After that, the path 97 is traced again to execute step 33 and the following steps. That is, the rest of the write area may require more WDMAX available than there are currently available segments. That is, additional sub-grouping may occur. The size of each subset varies depending on the number of cache segments currently available. Such a device end DE indicates to the host processor 10 that the peripheral subsystem is now ready for the next data transfer. When switching tracks occurs in this mode, FO
Note that there is no interruption of the data transfer itself as done during the RMAT WRITE operation. All of the above provide efficient and efficient machine control to ensure writes to DASD 20 with minimal loss of disk rotation and to ensure that cache 16 can store a copy of all records.

【0031】キャッシュの利用法及び1つのDASDトラッ
ク上にストアされたデータの割当て方法を図6で説明す
る。DASD 20内の1つのディスク100はトラック101のよう
な多数のデータ記憶用トラックを有している。トラック
101はディスク100上の記録エリアの径方向に延びるイン
デックスマーク102で始まり、それで終了する。省略記
号103はそのようなトラックが多数あることを示してい
る。それらトラックの各々には、可変量のデータまた可
変数のレコードをストアすることができる。最大限の断
片化が生じたファイル中では、トラック101,103のある
ものは1つのレコードしかストアしていない。このファ
イルの次に高位の番号をもつレコードは次のトラックに
ストアされている。キャッシュ16の一部分は論理上複数
の割当て可能でかつアドレス可能なデータ記憶用セグメ
ントA-Yを有するものとして描いてある。トラック101が
データで一杯であると、1トラックをストアするのに番
号110,111でそれぞれ指示したセグメントを5個まで取る
(セグメントA-E,セグメントF-Jはそれぞれ1つのトラッ
クをストアする)。単一のレコードが1DASDトラック上に
ストアされておりまたそれがキャッシュセグメントの1
つにストアできる場合には、このDASDトラックの内容全
体はキャッシュ16内の単一のセグメント、例えばセグメ
ントK中にストアすることができる。また、3個のセグメ
ントにトラック内容をストアしなければならない程十分
な数のレコードをもつ別のDASDトラックの場合、例えば
P,Q,Rセグメントにストアすることができる。このよう
にして、キャッシュ16を最大限に活用することができ
る。上記の最大断片化状況の下では、それぞれのDASDト
ラックは1つのレコードしか有していないと仮定してい
る。従って、それらキャッシュセグメントの1つは1セグ
メントが単一のレコードをストアするものと仮定する
と、DASD 20内へ書込まれるべき各トラックに対するデ
ータ用に割当てられることになろう。インデックス102
のようなトラックの末尾に達したとき、周辺サブシステ
ム19は1つのトラックに対し更新書込み動作においてど
れ程多くのレコードがストアされていたかを知る。例え
ば、もし18個のレコードが番号110で示したキャッシュ
セグメント内にストアされた場合でかつこれらが4個の
セグメントA-Dを占めているならば、キャッシュ16の最
初に割当てた18個のセグメントの内14個が他のマシン動
作のために利用可能となっている。このプロセスは書込
み動作中に1つのトラック102の末尾に達する毎に繰返さ
れる。この説明では、キャッシュ16の割当てをトラック
ベースで行い、またDASD 20の所与トラック中にストア
されているデータが可変量のキャッシュ16を占めること
を前提としている。
A method of using the cache and a method of allocating the data stored on one DASD track will be described with reference to FIG. One disk 100 in DASD 20 has multiple data storage tracks, such as track 101. truck
101 starts with an index mark 102 extending in the radial direction of the recording area on the disc 100 and ends there. The ellipsis 103 indicates that there are many such tracks. Each of these tracks can store a variable amount of data or a variable number of records. In the file with the most fragmentation, some of the tracks 101, 103 store only one record. The record with the next highest number in this file is stored in the next track. A portion of cache 16 is logically depicted as having a plurality of allocatable and addressable data storage segments AY. When track 101 is full of data, it takes up to 5 segments specified by numbers 110 and 111 to store one track.
(Segment AE and segment FJ store one track each). A single record is stored on one DASD track and it is one of the cache segments
If stored in one, the entire contents of this DASD track can be stored in a single segment in cache 16, for example segment K. Also, for another DASD track that has enough records to store the track contents in three segments, for example
Can be stored in P, Q, R segments. In this way, the cache 16 can be fully utilized. Under the maximum fragmentation situation above, it is assumed that each DASD track has only one record. Therefore, one of those cache segments would be allocated for the data for each track to be written into DASD 20, assuming that one segment stores a single record. Index 102
When the end of the track is reached, the peripheral subsystem 19 knows how many records were stored in the update write operation for one track. For example, if 18 records are stored in the cache segment numbered 110 and they occupy 4 segment AD, then the first 18 allocated segments in cache 16 will be 14 are available for other machine operations. This process is repeated each time the end of one track 102 is reached during a write operation. This description assumes that cache 16 is allocated on a track basis and that the data stored in a given track of DASD 20 occupies a variable amount of cache 16.

【0032】以上に本発明について、好ましい実施例を
示しまたこれを参照して説明したが、当業者には判るよ
うに、本発明の精神及び範囲から離れずに形態及び細部
において種々の変更を行うことができる。
Although the present invention has been described and illustrated with reference to preferred embodiments and with reference thereto, it will be understood by those skilled in the art that various changes in form and detail may be made without departing from the spirit and scope of the invention. It can be carried out.

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

【図1】本発明を有利に使用できるようなホストプロセ
ッサに対して接続した周辺データ記憶サブシステムを示
す簡略ブロック図。
FIG. 1 is a simplified block diagram of a peripheral data storage subsystem connected to a host processor such that the present invention may be used to advantage.

【図2】本発明を最良の方法で実施するための図1に示
したシステムの簡略化した一組のマシン動作を示す図。
2 is a simplified set of machine operations of the system shown in FIG. 1 for practicing the present invention in the best way; FIG.

【図3】フォーマット書込み動作中の図1のシステムの
動作を示す簡略フローチャート。
FIG. 3 is a simplified flowchart showing the operation of the system of FIG. 1 during a format write operation.

【図4】図1に示したシステムにおいて更新書込みデー
タ転送に必要な利用可能キャッシュセグメントの判定を
示す簡略フローチャート。
FIG. 4 is a simplified flowchart showing determination of available cache segments required for update write data transfer in the system shown in FIG.

【図5】ホストプロセッサ及びデバイスの間のデータ転
送を部分集合化してデータ転送に必要なWDMAXのキャッ
シュセグメントよりも少ない少数のキャッシュセグメン
トに適応するためのマシン動作フローチャート。
FIG. 5 is a machine operation flowchart for subsetting data transfers between a host processor and a device to accommodate a small number of cache segments less than the WDMAX cache segments required for data transfers.

【図6】キャッシュ利用及びDASDトラックにストアした
データの割当てを示す図。
FIG. 6 is a diagram showing cache utilization and allocation of data stored in DASD tracks.

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

10・・・ホストプロセッサ 12・・・光ファイバチャネル 19・・・周辺サブシステム 11・・・接続機構回路 13・・・レート変更バッファ 14・・・制御装置/マイクロプロセッサ 16・・・キャッシュ 18・・・データ転送回路 20,21・・・DASD(直接アクセス記憶デバイス) 100・・・DASD内のディスク 101・・・トラック 102・・・インデックスマーク 103・・・諸トラック 110,111・・・キャッシュセグメント 10 ・ ・ ・ Host processor 12 ・ ・ ・ Optical fiber channel 19 ・ ・ ・ Peripheral subsystem 11 ・ ・ ・ Connection mechanism circuit 13 ・ ・ ・ Rate change buffer 14 ・ ・ ・ Controller / microprocessor 16 ・ ・ ・ Cache 18 ・..Data transfer circuits 20,21 ... DASD (Direct Access Storage Device) 100 ... Disks in DASD 101 ... Tracks 102 ... Index marks 103 ... Tracks 110,111 ... Cache segments

───────────────────────────────────────────────────── フロントページの続き (72)発明者 マイケル・トーマス・ベンハセ アメリカ合衆国85749、アリゾナ州 トゥ ーソン、ノース・プラシタ 4801番地 (72)発明者 ゲイル・アンドレア・スペアー アメリカ合衆国85715、アリゾナ州 トゥ ーソン、イースト・フィールドストーン・ レーン 6822番地 (72)発明者 ウィリアム・デニス・ウィリアムス アメリカ合衆国85741、アリゾナ州 トゥ ーソン、ウエスト・トビラ 4079番地 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor Michael Thomas Benhase 4857 North Tolasson, Tucson, Arizona, USA 85749 (72) Inventor Gail Andrea Spear, USA 85715, Tucson, Arizona, East East Fieldstone Lane 6822 (72) Inventor William Dennis Williams 4079 West Tobira, Tucson, Arizona, USA 85741

Claims (4)

【特許請求の範囲】[Claims] 【請求項1】DASDに接続されたホストトプロセッサチャ
ネル手段及び前記DASDに接続されたキャッシュを有する
キャッシュ記憶式周辺データ記憶サブシステムにおいて
前記DASD、前記キャッシュ及び前記ホストプロセッサチ
ャネル手段の間でデータレコードを転送する方法であっ
て、 前記サブシステム内において、第1の所定数のデータレ
コードを前記チャネル手段及び前記DASDの間で転送しか
つ前記第1の所定数のデータレコードを前記キャッシュ
内にコピーするために、前記DASD上に記憶されるべき前
記第1の所定数のデータレコードのための書込み領域を
確立する段階と、 前記サブシステム内において、前記データレコードの転
送に先立って、第2の所定数のデータレコードを記憶す
るための所定の利用可能なキャッシュ記憶を判定しかつ
指示する段階と、 前記サブシステムにおいて、前記指示された利用可能な
キャッシュ記憶が転送されるべき前記第1の所定数のデ
ータレコードを記憶するに必要な領域より小さい場合、
前記データレコードの転送を前記第2の所定数のデータ
レコードの所定数の部分集合に区分けする段階と、 前記サブシステムにおいて、前記データレコードの転送
を複数の部分集合データレコードの転送に分けて行い、
各部分集合データレコードの転送に先立って各部分集合
データレコード転送においてデータレコードを記憶する
ための第3の所定数のキャッシュセグメントを割当て、
前記チャネル手段及び前記DASDの間で前記部分集合デー
タレコードの転送を順次行うとともに前記部分集合デー
タレコードのコピーを前記キャッシュ記憶の利用可能領
域に記憶する段階と、 よりなるデータレコード転送方法。
1. A data record between the DASD, the cache and the host processor channel means in a cached peripheral data storage subsystem having a hosted processor channel means connected to the DASD and a cache connected to the DASD. Transferring a first predetermined number of data records between the channel means and the DASD and copying the first predetermined number of data records in the cache in the subsystem. Establishing a write area for the first predetermined number of data records to be stored on the DASD, in the subsystem prior to transferring the data records, a second Determine and point to a given available cache store for storing a given number of data records If a step in the subsystem, the indicated available cache memory is smaller than the space required to store the first predetermined number of data records to be transferred,
Dividing the transfer of the data records into a predetermined number of subsets of the second predetermined number of data records, and in the subsystem, transferring the data records to a plurality of subsets of data records. ,
Assigning a third predetermined number of cache segments for storing data records in each subset data record transfer prior to each subset data record transfer,
A data record transfer method comprising the steps of sequentially transferring the subset data records between the channel means and the DASD and storing a copy of the subset data records in an available area of the cache storage.
【請求項2】前記DASDは所定数のデータレコードをそれ
ぞれ記憶する複数のアドレス指定可能なデータ記憶トラ
ックを有し、 前記方法は、 前記DASDに書込まれるべきファイルのレコード数を示す
ように前記書込み領域を設定する段階と、 前記判定及び指示する段階において、前記データレコー
ド転送においてデータレコードを記憶するのに必要な最
大キャッシュセグメント数WDMAXを WDMAX=(CAS−2T+R)/R+C ただし CAS:利用可能なキャッシュセグメント T:一杯のトラックに対して必要なキャッシュセグメン
ト数 R:各レコードに必要なキャッシュセグメント数 C:書き込み領域サイズ に決定し指示する段階と、 を更に有する請求項1記載のデータレコード転送方法。
2. The DASD has a plurality of addressable data storage tracks each storing a predetermined number of data records, the method comprising: a method for indicating a number of records of a file to be written to the DASD; In the step of setting the write area and the step of judging and instructing, the maximum number of cache segments WDMAX necessary for storing the data record in the data record transfer is WDMAX = (CAS-2T + R) / R + C where CAS: 2. The data according to claim 1, further comprising: determining and instructing an available cache segment T: the number of cache segments required for a full track R: the number of cache segments required for each record Record transfer method.
【請求項3】前記DASDは所定量のデータ記憶容量の所定
数のデータレコードをそれぞれ記憶する複数のアドレス
指定可能なデータ記憶トラックを有し、 前記方法は、 前記部分集合データレコード転送の各々において、前記
所定数のデータレコードを前記DASDのデータ記憶トラッ
クの1つに記憶しうる前記所定数のデータレコード数を
超えない値に制限する段階と、 前記所定数のデータレコードの転送の際、前記判定及び
指示する段階を反復して利用可能なキャッシュ記憶が前
記所定量のデータ記憶容量のレコードを記憶できるかを
判定及び指示し、記憶できる場合には、次の部分集合デ
ータレコード転送を実行し、記憶できない場合は、前記
利用可能なキャッシュ記憶が前記所定数のデータレコー
ドを記憶するに十分な数のキャッシュセグメントを持つ
に至るまで次の部分集合データレコード転送を遅延させ
る段階と、 所望のデータレコード転送が完了するまで前記制限する
段階及び前記遅延させる段階を反復する段階と、 を更に有する請求項1記載のデータレコード転送方法。
3. The DASD comprises a plurality of addressable data storage tracks each storing a predetermined number of data records of a predetermined amount of data storage capacity, the method comprising: in each of the subset data record transfers. The step of limiting the predetermined number of data records to a value that does not exceed the predetermined number of data records that can be stored in one of the DASD data storage tracks; and, when transferring the predetermined number of data records, The steps of determining and indicating are repeated to determine and indicate whether the available cache storage can store the record of the predetermined amount of data storage capacity, and if so, execute the next subset data record transfer. , If not, then the available cache store has a sufficient number of cache segments to store the predetermined number of data records. 2. The method of claim 1, further comprising delaying the next subset data record transfer until the end of the step, repeating the limiting step and the delaying step until the desired data record transfer is complete. Data record transfer method.
【請求項4】前記DASDは所定量のデータ記憶容量をそれ
ぞれ有する複数のアドレス指定可能なデータ記憶トラッ
クを含み、前記サブシステムは前記チャネル手段用の入
出力端及び前記DASD用の入出力端を有するレート変更バ
ッファを含み、 前記方法は、 前記DASD上に記録されるべき前記チャネル手段からの全
てのデータレコードを前記レート変更手段の前記チャネ
ル手段入出力端に供給して前記レート変更バッファに一
時的に記憶し、次いで前記チャネル手段から供給されて
前記レート変更バッファに記憶されたデータレコードの
コピーを前記DASD入出力端から前記キャッシュへ及び前
記DASDへ供給して記憶する段階と、 前記レート変更バッファの前記チャネル手段入出力端に
おいて、現在利用可能なキャッシュ記憶が前記所定量の
データ記憶容量より下がったかを判定し、データレコー
ドを受取り記憶している前記DASDのデータ記憶トラック
の現在のトラックのトラックアドレスの終点で部分集合
データレコード転送を中止するよう指示し、前記現在の
トラック以外の前記DASDのデータ記憶トラックをアドレ
ス指定して次の部分データレコード転送を再開する段階
と、 前記部分集合データレコード転送の中止の指示及び前記
アドレス指定の後、前記判定及び指示する段階を反復し
て前記所定量のデータ記憶容量を下回らない利用可能な
キャッシュ記憶を検出する段階と、 を更に有する請求項1記載のデータレコード転送方法。
4. The DASD includes a plurality of addressable data storage tracks each having a predetermined amount of data storage capacity, the subsystem including an input / output end for the channel means and an input / output end for the DASD. Comprising a rate change buffer having, wherein said method supplies all data records from said channel means to be recorded on said DASD to said channel means input / output end of said rate change means to temporarily store in said rate change buffer. Storage, and then supplying and storing a copy of the data record supplied from the channel means and stored in the rate change buffer to the cache and to the DASD from the DASD input / output end for storage. At the channel means input / output end of the buffer, the currently available cache storage is the predetermined amount of data storage capacity. It is determined whether or not the data record is lower than the current track, and an instruction to stop the subset data record transfer is made at the end of the track address of the current track of the data storage track of the DASD receiving and storing the data record, and Addressing the data storage track of the DASD to restart the next partial data record transfer, and after the instruction to stop the subset data record transfer and the addressing, repeat the steps of determining and instructing The method of claim 1, further comprising: detecting available cache storage that is not less than a predetermined amount of data storage capacity.
JP3165354A 1990-08-31 1991-07-05 Data record transfer method Expired - Lifetime JPH07104817B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US575716 1990-08-31
US07/575,716 US5235690A (en) 1990-08-31 1990-08-31 Method for operating a cached peripheral data storage subsystem including a step of subsetting the data transfer into subsets of data records

Publications (2)

Publication Number Publication Date
JPH0566997A JPH0566997A (en) 1993-03-19
JPH07104817B2 true JPH07104817B2 (en) 1995-11-13

Family

ID=24301421

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3165354A Expired - Lifetime JPH07104817B2 (en) 1990-08-31 1991-07-05 Data record transfer method

Country Status (3)

Country Link
US (1) US5235690A (en)
EP (1) EP0473377A3 (en)
JP (1) JPH07104817B2 (en)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544347A (en) 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
JPH0659952A (en) * 1992-08-07 1994-03-04 Toshiba Corp Magnetic disk device
US5555390A (en) * 1992-10-19 1996-09-10 International Business Machines Corporation Data storage method and subsystem including a device controller for respecifying an amended start address
US5530829A (en) * 1992-12-17 1996-06-25 International Business Machines Corporation Track and record mode caching scheme for a storage system employing a scatter index table with pointer and a track directory
US5526511A (en) * 1993-12-23 1996-06-11 Unisys Corporation Enhanced least recently used round robin cache management method and apparatus for allocation and destaging of cache segments
US5535372A (en) * 1994-07-06 1996-07-09 International Business Machines Corporation Method and apparatus for efficient updating of CKD data stored on fixed block architecture devices
US5619497A (en) * 1994-12-22 1997-04-08 Emc Corporation Method and apparatus for reordering frames
US5713008A (en) * 1995-06-08 1998-01-27 Sun Microsystems Determination of working sets by logging and simulating filesystem operations
US5974502A (en) * 1995-10-27 1999-10-26 Lsi Logic Corporation Apparatus and method for analyzing and modifying data transfer reguests in a raid system
JP3287203B2 (en) 1996-01-10 2002-06-04 株式会社日立製作所 External storage controller and data transfer method between external storage controllers
US6052797A (en) * 1996-05-28 2000-04-18 Emc Corporation Remotely mirrored data storage system with a count indicative of data consistency
US5901327A (en) * 1996-05-28 1999-05-04 Emc Corporation Bundling of write data from channel commands in a command chain for transmission over a data link between data storage systems for remote data mirroring
JP3410010B2 (en) 1997-12-24 2003-05-26 株式会社日立製作所 Subsystem migration method and information processing system
US7114049B2 (en) * 1997-01-08 2006-09-26 Hitachi, Ltd. Adaptive remote copy in a heterogeneous environment
US6088764A (en) * 1997-07-14 2000-07-11 International Business Machines Corporation Method and apparatus for reducing space allocation failures in storage management systems
JP4689137B2 (en) * 2001-08-08 2011-05-25 株式会社日立製作所 Remote copy control method and storage system
WO2000045242A2 (en) * 1999-02-01 2000-08-03 Pratt Jessica L System and method for developing and implementing interactive three dimensional internet sites
US7167962B2 (en) 1999-08-19 2007-01-23 Hitachi, Ltd. Remote copy for a storage controller with reduced data size
US6804761B1 (en) * 2000-01-21 2004-10-12 Cisco Technology, Inc. Memory allocation system and method
US6748486B2 (en) 2001-01-04 2004-06-08 International Business Machines Corporation Method, system, and data structures for superimposing data records in a first data format to memory in a second data format
US7194590B2 (en) * 2001-02-28 2007-03-20 Hitachi, Ltd. Three data center adaptive remote copy
EP1251460A1 (en) * 2001-04-19 2002-10-23 TELEFONAKTIEBOLAGET L M ERICSSON (publ) Adaptive method for allocation of random access memory
US7213114B2 (en) 2001-05-10 2007-05-01 Hitachi, Ltd. Remote copy for a storage controller in a heterogeneous environment
US7143252B2 (en) * 2001-05-10 2006-11-28 Hitachi, Ltd. Storage apparatus system and method of data backup
US6775738B2 (en) 2001-08-17 2004-08-10 International Business Machines Corporation Method, system, and program for caching data in a storage controller
US7017006B2 (en) * 2003-04-28 2006-03-21 Texas Instruments Incorporated System and method to enable efficient communication with a dynamic information storage and retrieval system, or the like
GB2417797B (en) * 2004-09-02 2009-05-13 Hewlett Packard Development Co A method and apparatus for managing storage used by a processor when processing instructions
US7778959B2 (en) * 2005-12-09 2010-08-17 Microsoft Corporation Protecting storages volumes with mock replication
US10877669B1 (en) * 2011-06-30 2020-12-29 Amazon Technologies, Inc. System and method for providing a committed throughput level in a data store
US20150248443A1 (en) * 2014-03-02 2015-09-03 Plexistor Ltd. Hierarchical host-based storage

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL165859C (en) * 1975-04-25 1981-05-15 Philips Nv STATION FOR TRANSFER OF INFORMATION.
US4198681A (en) * 1977-01-25 1980-04-15 International Business Machines Corporation Segmented storage logging and controlling for partial entity selection and condensing
US4467421A (en) * 1979-10-18 1984-08-21 Storage Technology Corporation Virtual storage system and method
US4394732A (en) * 1980-11-14 1983-07-19 Sperry Corporation Cache/disk subsystem trickle
US4489378A (en) * 1981-06-05 1984-12-18 International Business Machines Corporation Automatic adjustment of the quantity of prefetch data in a disk cache operation
US4503501A (en) * 1981-11-27 1985-03-05 Storage Technology Corporation Adaptive domain partitioning of cache memory space
US4571674A (en) * 1982-09-27 1986-02-18 International Business Machines Corporation Peripheral storage system having multiple data transfer rates
US4583166A (en) * 1982-10-08 1986-04-15 International Business Machines Corporation Roll mode for cached data storage
US4499539A (en) * 1982-12-20 1985-02-12 International Business Machines Corporation Method and apparatus for limiting allocated data-storage space in a data-storage unit
US4603380A (en) * 1983-07-01 1986-07-29 International Business Machines Corporation DASD cache block staging
US4835686A (en) * 1985-05-29 1989-05-30 Kabushiki Kaisha Toshiba Cache system adopting an LRU system, and magnetic disk controller incorporating it
US5133060A (en) * 1989-06-05 1992-07-21 Compuadd Corporation Disk controller includes cache memory and a local processor which limits data transfers from memory to cache in accordance with a maximum look ahead parameter

Also Published As

Publication number Publication date
JPH0566997A (en) 1993-03-19
EP0473377A2 (en) 1992-03-04
US5235690A (en) 1993-08-10
EP0473377A3 (en) 1992-12-16

Similar Documents

Publication Publication Date Title
JPH07104817B2 (en) Data record transfer method
US4779189A (en) Peripheral subsystem initialization method and apparatus
US5226141A (en) Variable capacity cache memory
US4435762A (en) Buffered peripheral subsystems
EP0104588B1 (en) Peripheral storage system having multiple data transfer rates
US5418929A (en) Controller for storage unit and method of controlling storage unit
CA1197021A (en) Roll mode for cached data storage
US4875155A (en) Peripheral subsystem having read/write cache with record access
US6401149B1 (en) Methods for context switching within a disk controller
US4410942A (en) Synchronizing buffered peripheral subsystems to host operations
US5553307A (en) Method and device for transferring noncontiguous blocks in one transfer start by creating bit-map indicating which block is to be transferred
JPS6120006B2 (en)
US5694570A (en) Method and system of buffering data written to direct access storage devices in data processing systems
US5813024A (en) Disk control method for use with a data storage apparatus having multiple disks
US5136692A (en) Memory disk buffer manager
JPH07225715A (en) Method and system for accessing data in cache
JPH11191037A (en) Data storage
EP0418723B1 (en) Buffered disk unit and method of transferring data therein
KR100423812B1 (en) RAID Controller and Parity Operator Method having Disk Cash Memory Controller and Parity Operator Device
EP0278425B1 (en) Data processing system and method with management of a mass storage buffer
KR100385238B1 (en) Method for realizing segment cash buffer for group adaptation type
JPH04311216A (en) External storage controller
JP2826780B2 (en) Data transfer method
JP2001209577A (en) Information recording and reproducing device
JPH064225A (en) Disk controller prereading stand-by sector