JPS59114658A - Management of data memory space - Google Patents

Management of data memory space

Info

Publication number
JPS59114658A
JPS59114658A JP58206059A JP20605983A JPS59114658A JP S59114658 A JPS59114658 A JP S59114658A JP 58206059 A JP58206059 A JP 58206059A JP 20605983 A JP20605983 A JP 20605983A JP S59114658 A JPS59114658 A JP S59114658A
Authority
JP
Japan
Prior art keywords
data
cache
storage
data storage
dasd
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP58206059A
Other languages
Japanese (ja)
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 JPS59114658A publication Critical patent/JPS59114658A/en
Pending 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
    • G06F12/0871Allocation or management of cache space
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/462Track or segment
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
(57) [Summary] This bulletin contains application data before electronic filing, so abstract data is not recorded.

Description

【発明の詳細な説明】 〔発明の分野〕 本発明は多重レベルのデータ記憶階層に係り、更に詳細
に説明すれば、データ記憶階層の上位レベルにあるデー
タに割振られたデータ記憶空間の管理に係る。
DETAILED DESCRIPTION OF THE INVENTION Field of the Invention The present invention relates to multi-level data storage hierarchies and, more particularly, to the management of data storage space allocated to data at higher levels of the data storage hierarchy. It depends.

〔発明の背景〕[Background of the invention]

周辺記憶階層は米国特許第3569938号で開示され
た仮想記憶(apparent 5tore)を与える
ため多年にわたって用いられている。前記特許によれば
、要求時ページングシステムにおいて、キャッシュ型の
高速前部記憶(バッファ)にデータを高速記憶すること
により、周辺記憶システムが外見的に大容量を有し、そ
の上、通常の後部記憶によって与えら扛た速度よりも速
くデータへのアクセスを与えるようにすることができ、
更に後部記−億には磁気テープ記録装置及び磁気ディス
ク記録装置のような不揮発性記憶を用い、他方、前部記
憶には磁気コア記憶装置のような揮発性記憶を用いるこ
とができる。データ記憶技術の進歩によって、前部記憶
には一般に半導体型データ記憶素子が含まれる。米国特
許第3839704号によって、このような記憶階層の
別の形式が開示されている。記憶階層は安い費用ですぐ
れた性能を得ることが重要である。
Peripheral storage hierarchies have been used for many years to provide virtual storage (apparent storage) as disclosed in US Pat. No. 3,569,938. According to the above patent, in a demand paging system, data is stored at high speed in a cache-type high-speed front storage (buffer), so that the peripheral storage system has an apparently large capacity, and moreover, can be made to provide access to data faster than the speed provided by memory;
Furthermore, the rear storage may use non-volatile storage such as magnetic tape recording and magnetic disk storage, while the front storage may use volatile storage such as magnetic core storage. With advances in data storage technology, front storage typically includes semiconductor-based data storage elements. Another form of such a storage hierarchy is disclosed by US Pat. No. 3,839,704. It is important for the storage hierarchy to obtain good performance at low cost.

記憶階層には種々の形態がある。例えば、前記米国特許
第3569938号によれば、単一の高速記憶が複数の
ユーザにサービスを与えている。
There are various forms of memory hierarchy. For example, according to the aforementioned US Pat. No. 3,569,938, a single high speed storage serves multiple users.

米国特許第3750360号は各々のプロセッサがそれ
自身の高速記憶、すなわちキャッシュを持ちうろことを
示している。記憶階層の性能も、所定のデータをキャッ
シュすなわち高速記憶部分に入れるのに用いられるアル
ゴリズム及び他の制御の影響を受ける。この方針に沿っ
て、米国特許第3898624号は、データを後部記憶
から前部記憶またはキャッシュ記憶に取出す時間の変更
を、使用中のCPUで実行中のプログラムに従ってコン
ピュータの操作員が選択できることを示している。この
ように、キャッシュまたは記憶階層の上位レベルのある
データはCPUが必要とするデータであるが、他の余分
なデータはキャッシュにないことが望ましい。この構成
によって更に有用なデータが、更に上位レベルの記憶部
分に格納される。これらの動作はどれも非常に複雑なも
のになる。従って、記憶階層の最善の管理がいかに行な
われているかを評価するため、記憶階層に関する評価プ
ログラムが用いられている。米国特許第3964028
号及び同第4068304号はこれらの目標を達成する
ため記憶階層性能の監視について開示している。その場
合においても、データの保全性を確保しながら最適性能
を向上させるため各種の記憶階層で行なわれるべき多く
のことが残されている。記憶階層に関する研究の多くは
CPUに接続されたキャッシュ及び主記憶の組合せに向
けられている。前記米国特許第3569938号によっ
て最初に示唆されたように、キャッシュ式主記憶の原理
はそのまま周辺システムにも適用することができる。も
ちろん、前記米国特許第3569938号以前にも、主
記憶は磁気テープ・ユニット及び磁気ディスク・ユニッ
トからCPUへのデータのバッファまたはキャッシュと
して用いられている、すなわち主記憶はCPUの作業記
憶としてだけではなく、周辺装置のバッファとしても用
いられている。
US Pat. No. 3,750,360 shows that each processor may have its own high speed memory, or cache. The performance of the storage hierarchy is also affected by the algorithms and other controls used to place certain data into the cache or fast storage portion. Along these lines, U.S. Pat. No. 3,898,624 shows that the time at which data is retrieved from rear storage to front storage or cache storage can be selected by a computer operator according to a program running on the CPU in use. ing. Thus, while some data in the cache or higher levels of the storage hierarchy is needed by the CPU, other extraneous data is preferably not in the cache. This configuration allows more useful data to be stored in higher level storage. All of these operations can be very complex. Therefore, storage hierarchy evaluation programs are used to evaluate how best to manage the storage hierarchy. U.S. Patent No. 3964028
No. 4,068,304 discloses monitoring storage hierarchy performance to achieve these goals. Even then, much remains to be done at the various storage tiers to improve optimal performance while ensuring data integrity. Much of the research on memory hierarchies has focused on the combination of cache and main memory connected to the CPU. As first suggested by the aforementioned US Pat. No. 3,569,938, the principles of cached main memory can be directly applied to peripheral systems. Of course, even before the above-mentioned U.S. Pat. It is also used as a buffer for peripheral devices.

前記性能監視は使用ユニットと後部記憶の間に入れたキ
ャッシュ型バッファを常に使用することは全体のデータ
処理性能及び保全性にとって必ずしも最善の利益ではな
いことを示している。それ故、例えば、米国特許第40
75686号では、キャッシュは特殊な命令によってオ
ン、オフに切換えられ、選択的にキャッシュをバイパス
できることが開示されている。更に、順次入出力動作の
ような場合には、後部記憶はセグメントに分割され、そ
のいくつかがバイパスされていた。米国特許第4268
907号は、データ・ワードの取出しを指定するコマン
ドの場合に標識フラグが所定の状態にセットされること
を開示している。このようなフラグによって、置換回路
は後続の所定のコマンドに応答し、続いて取出されたデ
ータ・ワードについてはキャッシュをバイパスさせる。
The above performance monitoring indicates that constant use of cached buffers interposed between usage units and back storage is not necessarily in the best interest for overall data processing performance and integrity. Therefore, for example, U.S. Pat.
No. 75,686 discloses that the cache can be turned on and off by special instructions to selectively bypass the cache. Furthermore, in cases such as sequential I/O operations, the back storage was divided into segments, some of which were bypassed. US Patent No. 4268
No. 907 discloses that an indicator flag is set to a predetermined state for a command that specifies the retrieval of a data word. Such flags cause the replacement circuitry to respond to subsequent predetermined commands to bypass the cache for subsequently retrieved data words.

これは、キャシュに記憶されている多数のデータ命令が
それらの実行中は置換されないようにするためである。
This is to ensure that many data instructions stored in the cache are not replaced during their execution.

面白いことには、米国特許第4189770号はオペラ
ンドに対してはキャッシュをバイパスするが、命令を記
憶する場合にはキャッシュを用いることを示している。
Interestingly, US Pat. No. 4,189,770 shows bypassing the cache for operands, but using the cache to store instructions.

ディスク記憶装置−直接アクセス記憶装置(DASD)
と呼ぶこともある−では、データ処理のため大量のデー
タが不揮発的に保持される。前に示唆したように、DA
SDをキャッシュ式にすると、DASD単体よりもすぐ
れた性能とスループットを持った記憶階層が実現される
。このような性能の改善は主として、キャッシュ・ミス
の割合を減らすことによって得られる。データ記憶階層
の管理は、キャッシュで達成できるアクセス数の比率を
増加させることを目的として、キャッシュの内容を動的
に変更することを含む。このような管理はコストの面で
前部記憶の大きさを縮小する傾向があるが、データは常
にDASDのレコード・トラックを一杯にするとは限ら
ないので、更に経費節減が可能な場合がある。要するに
、前部記憶のデータ記憶空間の利用を注意深く管理する
ことが必要である。例えば30キロバイト以上の大きな
データ記憶空間が前部記憶に割振られても、それが常に
データ信号で一杯になるとは限らない。
Disk Storage - Direct Access Storage Device (DASD)
A large amount of data is held in a non-volatile manner for data processing. As suggested earlier, D.A.
Caching SDs provides a storage hierarchy with better performance and throughput than DASDs alone. This performance improvement is primarily achieved by reducing the cache miss rate. Managing the data storage hierarchy involves dynamically changing the contents of the cache with the aim of increasing the rate of accesses that can be achieved by the cache. Although such management tends to reduce the size of front storage in terms of cost, further savings may be possible since data does not always fill a DASD record track. In short, it is necessary to carefully manage the utilization of data storage space in front storage. Even if a large data storage space, for example 30 kilobytes or more, is allocated to front storage, it will not always be filled with data signals.

どんなデータ記憶ユニットにおいても使用可能な空間の
完全な利用を保証するデータ処理装置の管理には可変長
データの記憶が含まれる。例えば、米国特許第3739
352号では、どんなビット数の範囲のオペランドでも
処理しうる、いわゆる「自由フィールド」メモリに関連
するマイクロプログラム式プロセッサが開示されている
。自由フィールド・メモリをアドレス指定するアドレス
・レジスタは、メモリ中の任意の2ビット間の境界をフ
ィールドの開始点として指定し、更にこのフィールドの
ビット数を自由フィールド・メモリの最大ビット容量ま
で指定することができる。この方法は確かに、所与のデ
ータ記憶ユニットの使用効率を最大にするように見える
が、成るデータを他のデータと置換するとき、両方のデ
ータの大きさくビット数)が同じである確率は比較的小
さい。
Managing data processing equipment to ensure full utilization of the available space in any data storage unit includes storage of variable length data. For example, U.S. Patent No. 3739
No. 352 discloses a microprogrammed processor associated with a so-called "free field" memory that can process operands of any range of number of bits. The address register that addresses free field memory specifies the boundary between any two bits in memory as the starting point of a field, and also specifies the number of bits in this field up to the maximum bit capacity of free field memory. be able to. Although this method does seem to maximize the efficiency of using a given data storage unit, when replacing one data with another, the probability that both data will be the same (size and number of bits) is Relatively small.

これは、記憶効率を維持すべき場合には、データが置換
されるごとに、メモリの記憶様式を変えなければならな
いことを意味する。従って、この方法は、多くの使用例
では、多分有益であるが、前部記憶/後部記憶のデータ
記憶階層に対しては、データ置換動作のため適用できな
い。無理に適用すると、データ断片化が生じてしまい、
複雑で時間がかかりすぎる管理方法が必要となることは
容易に想像できる。
This means that if storage efficiency is to be maintained, the storage format of the memory must be changed each time data is replaced. Therefore, while this method is likely beneficial in many use cases, it is not applicable to front store/rear store data storage hierarchies due to data replacement operations. If applied forcibly, data fragmentation will occur,
It is easy to imagine that complex and time-consuming management methods would be required.

別の米国特許第3824561号は、可変長データ要素
のグループを記憶する際に、各データ要素の特性を定義
する特性データ・セットを用いて記憶アドレスを割振る
技術を開示している。この技術はデータ・セットの2方
向の走査を必要とする。第1のパスで各々の要素の長さ
と境界に関する情報が蓄積され、次いで第2のパスで、
アドレスが各々の要素に割振られ、適切な境界整合を維
持しながらグループ内のギャップが除去される。
Another U.S. Pat. No. 3,824,561 discloses a technique for allocating storage addresses when storing groups of variable length data elements using a characteristic data set that defines the characteristics of each data element. This technique requires scanning the data set in two directions. In the first pass, information about the length and boundaries of each element is accumulated, and then in the second pass,
Addresses are assigned to each element and gaps within the group are removed while maintaining proper boundary alignment.

この技術も、置換動作が必要なデータ記憶階層を除く一
定の適用例において価値がある。周辺データ記憶階層で
要求される性能は、このような時間のかかる割振り技術
では実現できない。
This technique is also valuable in certain applications except for data storage hierarchies where replacement operations are required. The performance required in the peripheral data storage hierarchy cannot be achieved with such time-consuming allocation techniques.

米国特許第4027288号には、開始区切キャラクタ
及び終了区切キャラクタを含むキャラクタ・セットを用
いて記憶機構の最大容量まで、情報セグメントの長さを
任意する技術が開示されている。それによれば、データ
・ストリングの長さが変わるときに、データ記憶割振り
及び不使用記憶空間の再利用が自動的に行われる。この
方式は順次アクセス式の磁気テープには向いているが、
殆んどの前部記憶で使用されているランダム・アクセス
・メモリには向かない。
U.S. Pat. No. 4,027,288 discloses a technique for arbitrarily lengthening information segments up to the maximum capacity of the storage facility using a character set that includes a starting delimiter and an ending delimiter. Thereby, data storage allocation and reclamation of unused storage space is automatically performed when the length of a data string changes. This method is suitable for sequential access type magnetic tape, but
It is not suitable for random access memory, which is used in most frontal storage.

米国特許第4035778号は、ホスト・プロセッサの
主記憶における作業用空間の割振を開示するもので、競
合するプログラムごとに設定される作業用空間の大きさ
を調節することによって割振が最適化される。ホスト・
プロセッサが前部記憶、すなわち作業用記憶と密接な作
業関係を有するデータ記憶階層では、作業用記憶はバッ
ファとみなすことができる。この特許の技術は置換制御
にも関連し、作業用空間の割振は置換技術に従って調節
される。周辺データ記憶階層は、ホスト・プロセッサと
の柔軟結合のため、この技術を利用できない。
U.S. Pat. No. 4,035,778 discloses an allocation of working space in the main memory of a host processor, in which the allocation is optimized by adjusting the size of the working space set for each competing program. . host·
In a data storage hierarchy where the processor has a close working relationship with frontal or working memory, the working memory can be thought of as a buffer. The technology of this patent also relates to displacement control, where the allocation of working space is adjusted according to the displacement technique. Peripheral data storage hierarchies cannot take advantage of this technique due to their flexible coupling with the host processor.

米国特許第4103329号では、周辺データ記憶ユニ
ットにおいて、より小さいデータ記憶を使用するため可
変長フィールドによって表わされたデータの処理が開示
されている。ビット・フィールドは普通の記憶アドレッ
シング要素及び境界において独立して処理される。この
特許は、要求されたビット・フィールドの最初のビット
を含むベース・アドレスからの要素変位を含む変位レジ
スタの初期設定を開示する。このような技術は確かに、
ホスト・プロセッサが用いる主記憶にデータをパックす
るのに適切であるが、データの量がメガバイトの範囲に
あると、複雑さ及びコストが飛躍的に増大する。従って
、この技術も周辺データ記憶階層の前部記憶を管理する
のに十分満足のゆくものではない。
No. 4,103,329 discloses processing data represented by variable length fields in a peripheral data storage unit to use smaller data storage. Bit fields are handled independently in normal storage addressing elements and boundaries. This patent discloses the initialization of a displacement register containing an element displacement from a base address containing the first bit of the requested bit field. Such technology is certainly
Although suitable for packing data into main memory for use by a host processor, complexity and cost increase dramatically when amounts of data are in the megabyte range. Therefore, this technique is also not fully satisfactory for managing the front storage of the peripheral data storage hierarchy.

更に、データ記憶装置の利用度を改善するのに用いられ
る他の技術として、IBM  TECHNICAL  
DISCLO8URE  BULLETI N、 Vo
l、 14、Na 7、December 1971 
、 pp。
Additionally, other techniques used to improve data storage utilization include IBM TECHNICAL
DISCLO8URE BULLETIN, Vo
l, 14, Na 7, December 1971
, pp.

1955−1957に記載されているものがある。There is one described in 1955-1957.

この論文は、各々が別個のディレクトリを有する1つの
8KB (キロバイト)の領域及び2つの4KBの領域
から成る非対称高速記憶を示す。明らかに、より小さい
データ・セットが4KBの領域に記憶され、それに対し
て、より大きいデータ・セットは8KBの領域に記憶さ
れる。このような技術は、比較的大きい可変長データ・
ブロック、すなわち30KB以上のブロックがユニット
として転送されることになっている前部記憶の管理には
適合しない。Gates他の論文”Multiword
 SizeStorage ”、IBM  TECHN
ICAL  DISCLO8URE  BULLETI
N、Vol、 14、Na 8、January  1
969、pp、、1019−1020では、データ・ワ
ードの大きさの相違による記憶ビットの無駄または不使
用を避けるためのデータ記憶装置の管理が示されている
。この論文の技術は、2種類の大きさを有するワードを
記憶し、未使用のディスクが生じないように記憶を交互
に行わせることにを関連する。この論文は極端に制限さ
れたデータ・フォーマット・セットの場合だけのデータ
記憶装置の管理を取上げているので、一般的な場合の記
憶装置にはあてはまらない。
This paper presents an asymmetric fast storage consisting of one 8KB (kilobyte) area and two 4KB areas, each with a separate directory. Obviously, smaller data sets are stored in a 4KB area, whereas larger data sets are stored in an 8KB area. Such techniques are suitable for handling relatively large variable length data.
It is not suitable for front storage management where blocks, ie blocks larger than 30 KB, are to be transferred as units. Gates et al.’s paper “Multiword”
SizeStorage”, IBM TECHN
ICAL DISCLO8URE BULLETI
N, Vol, 14, Na 8, January 1
969, pp. , 1019-1020, management of data storage devices to avoid wasted or unused storage bits due to data word size differences is presented. The technique of this article involves storing words of two different sizes and alternating the storage so that there are no unused disks. This article deals with the management of data storage only in the case of an extremely limited set of data formats and does not apply to storage in the general case.

データ記憶装置を最大限に利用する様々な先行技術があ
るにもかかわらず、それと同時に高い性能を維持しなが
ら比較的安い経費で大きなデータ・ユニットを処理でき
る簡単でしかも効果的な管理装置及び管理方法が必要で
ある。
Despite the various prior art techniques for maximizing the utilization of data storage devices, a simple yet effective management device and management capable of processing large data units at a relatively low cost while at the same time maintaining high performance. A method is needed.

〔発明の概要〕[Summary of the invention]

本発明によって、データ記憶装置は所与のデータ転送に
要する最大容量よりも小さいデータ記憶容量を各々が有
する割振り可能なデータ記憶空間を有する。入力データ
転送の度ごとに、予期されたデータに対してデータ記憶
ユニットでデータ記憶空間の初期最大割振りが行なわれ
、該データは割振られたデータ記憶空間に転送される。
According to the invention, a data storage device has allocable data storage space each having a data storage capacity that is less than the maximum capacity required for a given data transfer. For each input data transfer, an initial maximum allocation of data storage space is made in the data storage unit for the expected data, and the data is transferred to the allocated data storage space.

データ転送が終ると、割振られたデータ記憶空間のどれ
が入力データを実際には受取っていないかについて検査
が行なわれる。入力データを受取らなかったデータ記憶
空間はすべて割振りを解除され、他のデータを記憶する
のに用いることが可能になる。
Once the data transfer is complete, a check is made as to which of the allocated data storage spaces are not actually receiving input data. Any data storage space that does not receive input data is deallocated and can be used to store other data.

表現を換えれば、データ記憶空間の最大初期割振りは最
大データ転送の大きさに従って行なわれ、データ転送が
完了すると初期割振りは実際のデータ転送の大きさに減
少されるとともに、割振られたデータ記憶空間の残りの
部分は割振を解除される。
In other words, the maximum initial allocation of data storage space is made according to the maximum data transfer size, and when the data transfer is completed, the initial allocation is reduced to the actual data transfer size and the allocated data storage space is The remaining portion of is deallocated.

〔詳細な説明〕[Detailed explanation]

以下、図面を参照して行なわれる詳細な説明において、
同じ参照番号は図面が異なっても同じ部分及び構造特性
を示すものとする。第1図及び第2図において、中央処
理ユニット、ホスト・プロセッサ等のような1つ以上の
使用ユニット10は、周辺接続(以下、チャネル11と
いう)を介して記憶ディレクタ12に接続されている。
In the following detailed description with reference to the drawings,
The same reference numbers indicate the same parts and structural features in different drawings. 1 and 2, one or more usage units 10, such as a central processing unit, host processor, etc., are connected to a storage director 12 via peripheral connections (hereinafter referred to as channels 11).

記憶ディレクタ12は装置インタフェース13を介して
複数の直接アクセス記憶装置(以下、DASDl4とい
う)に適切に接続されている。キャッシュ15はチャネ
ル11を介してDASDl 4を1つ以上の使用ユニッ
ト10に選択的に接続する。キャッシュ15に記憶され
たデータへのアクセスはディレクトリ16を介して行な
われる。使用ユニット10はDASDl4の識別された
アドレスを用いて、前部記憶としてのキャッシュ15及
び後部記憶としてのDASDl4を含む記憶サブシステ
ムへのデータ・アクセスを要求する。前記アドレスは、
ディレクトリ16に記憶されているとき、キャッシュ1
5に記憶されたデータを参照し、DASDl4を参照せ
ずにデータ・アクセス要求を満足することができる。記
憶システムの動作は制御記憶18と処理ユニット19を
含むプログラム式プロセッサ17の制御の下に行なわれ
る。制御記憶18は、処理ユニット19がキャッシュ1
5、ディレクトリ16及びDASDl4を適切に制御で
き、使用ユニット10との通信を容易にするためのプロ
グセラムを記憶する。記憶されたプログラムに応答して
プログラム式プロセッサ17によって実行される機能の
大部分はこのような記憶システムにおける周知のもので
あるので詳細な説明は行なわれない。
Storage director 12 is suitably connected via device interface 13 to a plurality of direct access storage devices (hereinafter referred to as DASD14). Cache 15 selectively connects DASD 1 4 to one or more usage units 10 via channel 11 . Access to data stored in cache 15 is via directory 16. Using the identified address of DASD 14, usage unit 10 requests data access to a storage subsystem including cache 15 as front storage and DASD 14 as rear storage. The said address is
When stored in directory 16, cache 1
Data access requests can be satisfied by referring to data stored in DASD 5 and without referring to DASD 14. The operation of the storage system is under the control of a programmable processor 17 which includes a control memory 18 and a processing unit 19. The control memory 18 is stored in the cache 1 by the processing unit 19.
5. Storing a program for properly controlling the directory 16 and the DASD 14 and facilitating communication with the unit 10 used. Most of the functions performed by programmable processor 17 in response to stored programs are well known in such storage systems and will not be described in detail.

ディレクトリ16は、後に第5図に関連して詳細に説明
するように、複数のレジスタ(ディレクトリ・レジスタ
)を有し、その各々にはDASDアドレス(セクション
20)が記憶されており、キャッシュ15のアドレス可
能部分に現在記憶されているデータを記憶する予定にな
っているか、または実際に記憶しているDASD14の
アドレスを識別する。キャッシュI5の記憶場所は各々
のディレクトリ・レジスタのセクション22に含まれた
キャッシュ・アドレス・ポインタP1によって指示され
るか、またはディレクトリ16のどのレジスタがDAS
Dアドレス20を記憶しているかによって指示されるこ
とがある、すなわちディレクトリ・レジスタのアドレス
がキャッシュ15のアドレス可能データ記憶空間に写像
される。
Directory 16 has a plurality of registers (directory registers), each of which stores a DASD address (section 20), as will be explained in more detail in connection with FIG. Identifies the address of the DASD 14 that is to be or actually stores data currently stored in the addressable portion. The storage location of cache I5 is pointed to by a cache address pointer P1 contained in section 22 of each directory register, or which register of directory 16 is assigned to DAS.
The storage of the D address 20 may indicate that the address of the directory register is mapped to the addressable data storage space of the cache 15.

本発明に従って、ディレクトリ16にあるDASDアド
レス20によって指された、DASDI4のデータ記憶
トラック21のデータ記憶容量よりも小さい容量を有す
る、割振り可能なデータ記憶空間(単一のユニットとし
て割振られるアドレス可能データ記憶レジスタのセット
)がキャッシュ15に含まれる。キャッシュ15の割振
り可能なデータ記憶空間の容量はむしろ、データ記憶ト
ラック21の最大容量の整約数である。本発明の説明の
場合、キャッシュ15の割振り可能なデータ記憶空間は
DASD14のトラック容量の3分の1の容量であケ。
In accordance with the present invention, allocatable data storage space (addressable data allocated as a single unit) pointed to by a DASD address 20 in directory 16 has a capacity that is less than the data storage capacity of data storage track 21 of DASDI4. A set of storage registers) are included in cache 15. Rather, the amount of allocable data storage space of cache 15 is an integer divisor of the maximum capacity of data storage tracks 21. In the case of the present invention, the allocatable data storage space of cache 15 is one-third of the track capacity of DASD 14.

従って、キャッシュ15に記憶された完全なりASDト
ラックの内容をアドレス指定するには、3つのキャッシ
ュ・アドレスが必要である。このアドレス指定はキャッ
シュ15の割振り可能なデータ記憶空間23を識別する
ディレクトリ16のセクション22でアドレス・ポイン
タP1を得て、DASD14のトラックの第1の3分の
1の部分を記憶することによって行なわれる。割振り可
能なデータ記憶空間23はその中の、J\空間24及び
26に一対のポインタP2及びP3を有している。DA
SD14のP2はDASD14のトラックの第2の3分
の1の部分を記憶する割振り可能なデータ記憶空間25
を指すアドレスを含み、P3はトラックの第3の3分の
1の部分を記憶する割振り可能なデータ記憶空間27を
指すアドレスを含む。このように、キャッシュ15の3
つの割振り可能なデータ記憶空間は1つのトラックのデ
ータ内容を記憶するように連結されている。キャッシュ
15の前記複数の割振り可能なユニットの数は3と異な
る数であってもよく、またポインタP2及びP3のよう
な追加ポインタはディレクトリ16によって指された最
初の割振り可能なデータ記憶空間23に記憶される代り
に、ディレクトリ16のセクション22にポインタP1
と一緒に記憶されてもよい。ポインタP2、P3をキャ
ッシュ15内に記憶することはディレクトリ16の構造
を簡略化するが、後に明らかになるように、データ転送
をセット・アップするためキャッシュ15にもう1つの
アクセスを必要とする。
Therefore, three cache addresses are required to address the contents of a complete or ASD track stored in cache 15. This addressing is accomplished by obtaining an address pointer P1 in a section 22 of directory 16 that identifies allocatable data storage space 23 of cache 15 and storing the first third of the tracks of DASD 14. It will be done. Allocatable data storage space 23 has a pair of pointers P2 and P3 in J\ spaces 24 and 26 therein. D.A.
P2 of the SD 14 is an allocatable data storage space 25 that stores the second third of the tracks of the DASD 14.
P3 contains an address pointing to an allocatable data storage space 27 that stores the third third of the track. In this way, cache 15 3
The two allocatable data storage spaces are coupled to store the data content of one track. The number of said plurality of allocatable units of cache 15 may be different from three, and additional pointers such as pointers P2 and P3 are added to the first allocatable data storage space 23 pointed to by directory 16. Instead of being stored, pointer P1 is stored in section 22 of directory 16.
may be stored together with. Storing pointers P2, P3 in cache 15 simplifies the structure of directory 16, but requires one more access to cache 15 to set up the data transfer, as will become clear later.

本発明により、キャッシュ15がデータを使用ユニット
10またはDASD14から受取ることになっていると
き、プログラム式プロセッサ17はキャッシュ15が受
取るデータの範囲の指示を受けない。すなわち、それは
1トラック全部のデータのこともあり、または1トラッ
ク全部よりも少ないデータのこともある。従って、キャ
ッシュ15はデータを受取る予定になるごとにキャッシ
ュ15の3つの割振り可能なデータ記憶空間が転送され
て来るデータに割振られる。この割振に続いて、データ
転送が生じる。データ転送が終了すると、プログラム式
プロセッサ17は、23.25または27のような割振
られたデータ記憶空間の中のどれが実際にデータを受取
って記憶したかを検査する。そしてデータを受取らなか
ったデータ記憶空間は、適切なポインタをOにすること
によって割振を解除され、アドレス指定されたばかりの
DASD14の1へラックに関連しないデータの再割振
りのために使用可能になる。このように、キャッシュ1
5のデータ記憶空nfJの管理によって、より多くのト
ラック数が比較的小さいキャッシュ容量によってキャッ
シュ15に有効に記憶され、経費が削減できる。言い換
えれば、同じ大きさのキャッシュ15が用いられる場合
、より多数のアドレス可能なりA−8D14のデータ記
憶トラックの内容がキャッシュ15に記憶可能であるか
ら。
In accordance with the present invention, when cache 15 is to receive data from usage unit 10 or DASD 14, programmable processor 17 is not given an indication of the range of data that cache 15 will receive. That is, it may be a full track of data, or it may be less than a full track of data. Therefore, each time cache 15 is scheduled to receive data, three allocatable data storage spaces of cache 15 are allocated to the incoming data. Following this allocation, data transfer occurs. Once the data transfer is complete, programmed processor 17 checks which of the allocated data storage spaces, such as 23.25 or 27, actually received and stored the data. The data storage space that received no data is then deallocated by setting the appropriate pointer to 0, making it available for reallocation of non-rack related data to one of the DASDs 14 that was just addressed. In this way, cache 1
By managing the data storage space nfJ of 5, a larger number of tracks can be effectively stored in cache 15 with a relatively small cache capacity, reducing costs. In other words, if the same size cache 15 is used, the contents of a larger number of addressable A-8D14 data storage tracks can be stored in the cache 15.

性能が改善される。もちろん、キャッシュ15は多数の
割振り可能なデータ記憶空間28及び29(省略記号で
示す)を有する。
Performance is improved. Of course, cache 15 has a number of allocatable data storage spaces 28 and 29 (indicated by ellipses).

単一のアドレス可能なデータ記憶トラックからキャッシ
ュ15の関連しない複数のセグメントまたはデータ記憶
空間へのデータの分散は、高速データ転送を伴なうとき
は、すばやい連結及び若干の緩衝を必要とする。キャッ
シュ15の入出力データ信号の流れをよくするため一1
第1図及び第2図に示すように、複数の5SAR(シス
テム記憶アドレス・レジスタ)30が設けられる。5S
AR−0は、割振られたデータ記憶空間23をアクセス
するための準備としてディレクトリ16からポインタP
1を受取る。5SAR−1及び5SAR−2はそれぞれ
、割振られたデータ記憶空間23の空間24及び26か
らポインタP2及びP3を受取る。この動作によって後
続するデータ転送の準備は完了する。第4図は複数のア
ドレス・レジスタがいかに迅速に複数のアドレス可能な
データ記憶空間を連結して高速データ信号バーストを受
取れるかを示す。
The distribution of data from a single addressable data storage track to multiple unrelated segments or data storage spaces of cache 15 requires rapid concatenation and some buffering when high speed data transfers are involved. In order to improve the flow of input/output data signals of the cache 15,
As shown in FIGS. 1 and 2, a plurality of 5 SARs (System Storage Address Registers) 30 are provided. 5S
The AR-0 retrieves the pointer P from the directory 16 in preparation for accessing the allocated data storage space 23.
Receive 1. 5SAR-1 and 5SAR-2 receive pointers P2 and P3 from spaces 24 and 26 of the allocated data storage space 23, respectively. This operation completes preparations for subsequent data transfer. FIG. 4 shows how multiple address registers can quickly connect multiple addressable data storage spaces to receive high speed data signal bursts.

データ・アクセス要求を受取るごとに、プログラム式プ
ロセッサ17はディレクトリ16を検査して関連する割
振り可能なデータ記憶空間が使用ユニット10から受取
ったDASDアドレスに割振られているかどうかを決定
する。一致がない場合には、参照番号35に示すように
キャッシュ・ミスが生じる。このようなキャッシュ・ミ
スによって、後に詳細に説明するように、DASD14
からキャッシュ15へのデータ昇格を生じることがある
。このようなキャッシュ・ミスによって処理ユニット1
9は制御記憶18をアクセスしてプログラム36を実行
し、DASD、14からキャッシュ15へのデータ転送
を生じることがある。更に、キャッシュ書込ヒツト−デ
ータが使用ユニット10からキャッシュ15に転送され
ることを意味するーは、矢印37で示すように、プログ
ラム式プロセッサ17でプログラム36を実行させ、キ
ャッシュ15にホスト(使用ユニット10)からのデー
ター最大lトラック全部のデータを含むことがあり、そ
の範囲はもちろん、現在はデータ記憶システムに知られ
てはいない−を受取る準備をさせる。このようなホスト
書込では、ホスト・データはできればDASD14に同
時に書込まれた方がよい。
Each time a data access request is received, programmable processor 17 examines directory 16 to determine whether the associated allocatable data storage space has been allocated to the DASD address received from usage unit 10. If there is no match, a cache miss occurs as shown at 35. Such cache misses cause the DASD 14
Data may be promoted from the cache 15 to the cache 15. Such a cache miss causes processing unit 1
9 accesses control store 18 to execute program 36, which may result in data transfer from DASD, 14 to cache 15. Furthermore, a cache write hit - meaning that data is transferred from the usage unit 10 to the cache 15 - causes the programmable processor 17 to execute a program 36, as shown by arrow 37, and causes the cache 15 to write to the host (use unit 15). unit 10), which may contain up to an entire track of data, the extent of which is, of course, currently unknown to the data storage system. In such host writes, the host data is preferably written to DASD 14 simultaneously.

いずれにせよ、キャッシュ15がオーバーランせずにデ
ータを受取り得るように、プログラム式プロセッサ17
はプログラム36に応答してプログラム40を実行し、
1つのDASDトラック容量をキャッシュ15に割振り
、必要に応じてポインタP1.P2及びP3をセットす
る。例えばキャッシュ15のデータ記憶空間がそれまで
に割振られていない場合、キャッシュ15の3つのデー
タ記憶空間が割振られ、対応するポインタが生成される
。他方、1つのデータ記憶空間だけが現在割振られてい
る場合には、後に、第3図に関連して詳細に説明される
ように、更に2つのデータ記憶空間が割振られ、対応す
るポインタが生成される。プログラム40の実行が完了
すると、プログラム式プロセッサ17はプログラム41
を実行する。これは状況により、実際にホスト(使用ユ
ニット10)またはDASD14からキャッシュ15へ
のデータ転送を生じる。データ転送が終了すると、プロ
グラム式プロセッサ17はプログラム42を実行してキ
ャッシュ15に転送されたデータの最後のバイトの終了
アドレスを検査する。この検査によって、割振られたデ
ータ記憶空間のどれが実際にはデータを受取らなかった
かを識別する。すなわち、終了アドレスの検査によって
、3つの割振られたデータ記憶空間のどれが最後にデー
タを受取ったかが決定される。次に、プログラム式プロ
セッサ17はプログラム43を実行して、データ転送の
ために行なわれたキャッシュ割振のうち未使用のものを
割振り解除する。もちろん、プログラム36及び43の
実行の前とその後に、データ記憶サブシステムに通常存
在する他のプログラム44が実行されるが、本発明の理
解には関係がないので、その詳細は省略する。
In any case, programmable processor 17
executes program 40 in response to program 36;
Allocate one DASD track capacity to cache 15 and pointer P1. Set P2 and P3. For example, if no data storage space in cache 15 has been previously allocated, three data storage spaces in cache 15 are allocated and corresponding pointers are generated. On the other hand, if only one data storage space is currently allocated, then two more data storage spaces are allocated and corresponding pointers are generated, as will be explained in more detail in connection with FIG. be done. Upon completion of execution of program 40, programmable processor 17 executes program 41.
Execute. This actually results in data transfer from the host (using unit 10) or DASD 14 to cache 15, depending on the situation. Once the data transfer is complete, programmable processor 17 executes program 42 to check the ending address of the last byte of data transferred to cache 15. This check identifies which of the allocated data storage spaces actually received no data. That is, checking the ending address determines which of the three allocated data storage spaces last received data. Programmed processor 17 then executes program 43 to deallocate unused cache allocations made for data transfers. Of course, other programs 44 typically present in the data storage subsystem are executed before and after the execution of programs 36 and 43, but their details are omitted as they are not relevant to the understanding of the present invention.

プログラム40おいて、プログラム式プロセッサ17が
キャッシュ15に存在するデータを置換えることが要求
されることがあり、自由な、すなわち末剤振りのデータ
記憶空間を識別する必要がある。この動作は、第5図に
関連して説明されるデータ記憶空間で通常用いられるL
 RU (leastrecently used)置
換制御リスト(以下、LRU47という)によって行な
われる。LRU47は割振り可能なデータ記憶空間の識
別を含む。従って、プログラム式プロセッサ17がプロ
グラム40を実行することによって、MRU−LRUプ
ログラム46が使用され、LRU47を走査してデータ
記憶空間を割振る。もし割振り可能なデータ記憶空間が
十分に存在すれば、これらの空間はこれ以上の動作を伴
なわずに割振られる。しかしながら、もし割振り可能な
データ記憶空間が存在しなければ、プログラム式プロセ
ッサ17は既知の置換方法を用いる置換プログラム45
を使用して、割振られたデータ記憶空間のうちで置換さ
れるべき空間にあるデータをDASD14に転送する。
In program 40, programmable processor 17 may be required to replace data residing in cache 15, and there is a need to identify free or free data storage space. This operation is similar to the L
This is performed using an RU (least recently used) replacement control list (hereinafter referred to as LRU 47). LRU 47 contains the identification of allocatable data storage space. Accordingly, MRU-LRU program 46 is used by programmable processor 17 to execute program 40 to scan LRU 47 to allocate data storage space. If there is sufficient data storage space available for allocation, these spaces are allocated without further action. However, if there is no data storage space available for allocation, the programmable processor 17 uses a replacement program 45 using known replacement methods.
is used to transfer data in the allocated data storage space to be replaced to DASD 14.

DASD14がキャッシュ15と同時に更新されるので
あれば、キャッシュ15の空間は、DASD14への事
前置換データ転送を伴なわずに、到来するデータに対し
即座に再割振りされる。このように、キャッシュ15は
常に、昇格されたデータで満たすことができる。プログ
ラム48によってプログラム式プロセッサ17は既知の
方法を用いてキャッシュ15をアクセスするので、プロ
グラム48の詳細は省略する。
If DASD 14 is updated at the same time as cache 15, space in cache 15 is immediately reallocated for incoming data without pre-replacement data transfer to DASD 14. In this way, cache 15 can always be filled with promoted data. Since program 48 causes programmable processor 17 to access cache 15 using known methods, details of program 48 will be omitted.

第2図は2つの記憶ディレクタ12を用いた本発明の良
好な実施例を示す。各々の記憶ディレクタ12は複数の
チャネル・アダプタ50を含む。
FIG. 2 shows a preferred embodiment of the invention using two storage directors 12. Each storage director 12 includes a plurality of channel adapters 50.

これらのチャネル・アダプタはまた個々にCAA乃至C
AD (数は4でなくてもよい)と呼ばれ、複数のチャ
ネル11を介してそれぞれの記憶ディレクタ12を複数
の使用ユニット10に接続する。
These channel adapters also individually
AD (the number need not be four) connects each storage director 12 to a plurality of usage units 10 via a plurality of channels 11 .

各々の記憶ディレクタ12には、通常、記憶ディレクタ
機能を実行するコンピュータ・プログラムを含む制御記
憶18を有する処理ユニット19が含まれている。第2
図は論理構造、すなわち制御記憶18にあるプログラム
の実行によって処理ユニット19で実現される機能を示
す。プログラム式プロセッサ17には、使用ユニット1
0が供給した周辺コマンドを受取って評価する「アドレ
ス及びコマンド評価器JACE52を構成するプログラ
ムが含まれ°る。このような機能はまた、現在、全世界
的に広く販売されている非キャッシュ式DASDの記憶
ディレクタで実行されており、第1図の「他のプログラ
ム44」の一部分である。プログラム式プロセッサ17
にはまた、周知のDASDアクセス及び制御機能を実行
するためDASD14への装置コマンドを与えるほか、
A CE 52によって評価、解読されたコマンドに応
答して使用ユニット10とDASD 14の間のデータ
転送を制御する間接アクセス制御DAC53のプログラ
ムが含まれている。DAC53には、DASD14のア
クセス及び使用ユニツ1〜10とDASD14の間のデ
ータ転送に関連して「他のプログラム44」に含まれた
DASD14をナクセスする既知のプログラム、ならび
にプログラム41が含まれている。プログラム式プロセ
ッサ17は更に、キャッシュ15をアクセスするキャッ
シュ・アクセス制御のプログラムCAC34を含んでい
る。各々のDASD14に対して1つずつ設けられるC
Dラッチ59はそれぞれ、DAC53及びCAC34に
よってアクセスされ、キャッシュ15またはDASD1
4に直接アクセスすべきかどうかが決定されるとともに
、キャッシュ・ミスの場合には前記ラッチがDにセット
される。記憶ディレクタ12からDASD14への接続
は、既知の装置アダプタ及びデータ・フロー設計技術を
用いて構成されているDASD回路55を介して行なわ
れる。キャッシュ15は、5SAR30などのアドレス
及びアクセス要求を生成する回路を含む記憶回路56を
介してアクセスされる。キャッシュ15は大容量のラン
ダム・アクセス記憶(以下、システム記憶57と呼ぶ)
の一部分である。
Each storage director 12 typically includes a processing unit 19 having a control memory 18 containing a computer program that performs storage director functions. Second
The figure shows the logical structure, ie the functions realized in the processing unit 19 by the execution of the programs located in the control memory 18. The programmable processor 17 includes a usage unit 1.
This includes a program that configures the address and command evaluator JACE52, which receives and evaluates peripheral commands supplied by the JACE52. It is executed in the storage director of , and is a part of "other programs 44" in FIG. Programmable processor 17
It also provides device commands to the DASD 14 to perform well-known DASD access and control functions, as well as
Contains programming for an indirect access control DAC 53 that controls data transfer between usage unit 10 and DASD 14 in response to commands evaluated and decoded by ACE 52. The DAC 53 includes a known program that accesses the DASD 14 and a program 41 that is included in "other programs 44" in connection with accessing the DASD 14 and transferring data between the units 1 to 10 and the DASD 14. . Programmable processor 17 further includes a cache access control program CAC 34 for accessing cache 15 . C provided for each DASD14
The D latches 59 are accessed by the DAC 53 and CAC 34, respectively, and are accessed by the cache 15 or DASD1.
4 is to be accessed directly and the latch is set to D in case of a cache miss. Connections from storage director 12 to DASD 14 are made through DASD circuitry 55, which is constructed using known device adapter and data flow design techniques. Cache 15 is accessed through storage circuitry 56 that includes circuitry, such as 5SAR 30, that generates addresses and access requests. Cache 15 is a large capacity random access memory (hereinafter referred to as system memory 57).
It is a part of.

キャッシュ15は同時に且つ独立してDASDI4及び
ホスト(使用ユニットIO)とともにデータ転送を処理
できることが望ましい。キャッシュ15のディレクトリ
16及びLRU47もシステム記憶57に記憶されてい
る。更に、どの使用ユニット10も記憶ディレクタ12
にコマンドを与えて、データをキャッシュ15に固定さ
せておくことかで六る。すべての固定されたトラックは
キャッシュ固定リスト60−ディレクトリ16内に記憶
されているが、分り易くするため別個に示されている−
に記録され、キャッシュ15に記憶されたどのデータが
キャッシュ15に残るべきかが両方の記憶ディレクタ1
2に指示される。このような固定データは置換プログラ
ム45によるキャッシュ15の空間の再割振りを阻止す
るためLRU47には記入されない。
Preferably, cache 15 can handle data transfers simultaneously and independently with DASDI 4 and the host (Using Unit IO). Directory 16 of cache 15 and LRU 47 are also stored in system memory 57. Furthermore, every usage unit 10 has a storage director 12
This can be done by giving a command to the cache 15 and fixing the data in the cache 15. All pinned tracks are stored in the cache pinned list 60 - directory 16, but are shown separately for clarity.
Both storage directors 1 determine which data recorded in the cache 15 should remain in the cache 15.
2 is instructed. Such fixed data is not written to LRU 47 to prevent reallocation of cache 15 space by replacement program 45.

複数のDASD14がコントローラ65−一個々にDC
A乃至DCDと呼ばれる−を介して記憶ディレクタ12
に接続されている、いわゆるディシイ・ストリング配列
を介してDASD14へのアクセスが行なわれる。各々
の記憶ディレクタ12はディシイ・チェーン装置接続(
装置インタフェース13)を介してコントローラ65に
接続する。既知の放射状接続設計が用いられることもあ
る6本発明に従って第2図に示されたシステムの動作は
第3図に示された計算機動作の流れ図を参照することに
よって最もよく理解される。
A plurality of DASDs 14 are each connected to a controller 65--one DC
The storage director 12 is connected to the storage director 12 through the
Access to the DASD 14 is made through a so-called decimal string array connected to the DASD 14. Each storage director 12 has a decimal chain device connection (
It is connected to the controller 65 via the device interface 13). Known radial connection designs may be used.6 The operation of the system shown in FIG. 2 in accordance with the present invention is best understood by reference to the computer operation flowchart shown in FIG.

第3図のステップ70でプログラム式プロセッサ17は
記憶アクセス要求を受取る。この要求はACE52で既
知の方法を用いて、解読、評価される。ステップ71で
、プログラム式プロセッサ17のDAC53部分は、受
取った記憶アクセス要求においてアドレス指定されたD
ASD14に関連するCDラッチ59 (第2図)を検
査し、キャッシュ15、またはキャッシュ15を除外し
てDASD14だけのどちらがアクセスされることにな
っているかを決定する。直接アクセスの場合には、DA
SD14はステップ72で、普通のDASDアクセス方
法を用いてアクセスされる。キャッシュ・アクセスの場
合には、ステップ73で、プログラム式プロセッサ17
はディレクトリ16を探索し、受取った記憶アクセス要
求(I10コマンド)で要求されたトラックがキャッシ
ュ15に割振られた空間を有するかどうかを決定する。
At step 70 of FIG. 3, programmable processor 17 receives a storage access request. This request is decoded and evaluated by the ACE 52 using known methods. At step 71, the DAC 53 portion of the programmable processor 17 determines whether the D
The CD latch 59 (FIG. 2) associated with the ASD 14 is examined to determine whether the cache 15, or only the DASD 14 to the exclusion of the cache 15, is to be accessed. In case of direct access, DA
SD 14 is accessed at step 72 using conventional DASD access methods. In the case of cache access, in step 73 the programmable processor 17
searches directory 16 to determine whether the track requested in the received storage access request (I10 command) has space allocated in cache 15.

これに関連して、いくつかのコマンドはキャッシュ15
を除外してDASD14への直接接続を要求する点が注
目される。従って、このような工10コマンドを検出す
ると、ACE52は、アドレス指定されたDASD14
のCDラッチ59を直接モードrDJにセットする。こ
のようなI10コマンドの例としてDASD14の再較
正がある。
In this regard, some commands are cache 15
It is noteworthy that it requires a direct connection to the DASD 14, excluding the . Therefore, upon detecting such a command, the ACE 52 directs the addressed DASD 14
CD latch 59 is set to direct mode rDJ. An example of such an I10 command is recalibration of the DASD 14.

探索コマンドはディレクトリ16内でキャッシュ15ア
クセスについて実行することができる。すなわち、この
コマンドはDASD14に関連しない仮想方式で実行さ
れる。良好な実施例では、ブイレフ1−リ16はトラッ
クにあるレコードを個々゛  には識別せず、トランク
だけを識別するが、もちろん本発明はこれに限定されな
い。
Search commands may be executed within directory 16 for cache 15 accesses. That is, this command is executed in a virtual manner that is not related to DASD 14. In the preferred embodiment, the relay 16 does not individually identify the records on the track, only the trunk, but of course the invention is not so limited.

ディレクトリ16のgfF4が終了すると、ステップ7
4で、プログラム式プロセッサ17はキャッシュ・ヒツ
トが生じたかどうかを決定する。キャッシュ・ヒツトが
生じた場合、ステップ74Aで、プログラム式プロセッ
サ17は受取ったDASD14のアドレスによって識別
されたディレクトリ16のレジスタのセクション22に
記憶されたPlを5SAR−0に転送し、次いでP2及
びP3をそれぞれの記憶場所から5SAR−1及び5S
AR−2にそれぞれ転送する。
When gf4 in directory 16 is finished, step 7
At 4, programmable processor 17 determines whether a cache hit has occurred. If a cache hit occurs, in step 74A, programmable processor 17 transfers Pl stored in register section 22 of directory 16 identified by the received DASD 14 address to 5SAR-0, then P2 and P3. 5SAR-1 and 5S from their respective storage locations
Transfer each to AR-2.

ステップ75で記憶ディレクタ12はキャッシュ15を
検査して、アクセスされるレコードがキャッシュ15に
記憶されている(レコード・ヒツト)かどうかを決定す
る。アドレス指定されたレコードがキャッシュ15にあ
る(レコード・ヒツトがイエスである)場合、後続する
データ転送をうまく完了するのに追加セグメントはなく
てもよい。次にステップ76で、実行されるデータ転送
動作の種類が検査される。読取動作R(ホストへのデー
タ転送)の場合は、ステップ77で記憶ディレクタ12
は要求されたデータをキャッシュ15から要求元のホス
ト(使用ユニツhlO)に転送する。この転送で動作が
完了すると記憶ディレクタI2はパス78を介して他の
データ処理動作に移ることができる6書込動作W(ホス
トからのデータ転送)の場合は、ステップ80で、記憶
ディレクタ12はホストから受取ったコマンドを検査し
、書込はフォーマット書込(DASD14だけのアクセ
スが要求される)か、または他の書込形式(キャッシュ
15への書込み可)が要求されているかを決定する。フ
ォーマット書込の場合、ステップ81で、記憶ディレク
タ12はキャッシュ15におけるデータ記憶空間の割振
りを解除し、受取ったデータをDASD14に転送する
。ステップ80で非フォーマット書込(フォーマット=
0)の場合は、ステップ82で、記憶ディレクタ12は
データを要求元のホスト(使用ユニット10)から、キ
ャッシュ15及びDASD14のアドレス指定されたデ
ータ記憶領域に転送する。このように、キャッシュ15
とDASD14は常に同じデータの同一コピーを保有す
る。ステップ81及び82から、記憶ディレクタ12は
パス78を介して他のデータ処理動作に進む。この動作
はキャッシュにおける完全な11〜ラツクよりも小さい
割振り(部分トラック割振り)が連続するデータ転送を
処理することを可能にする。
At step 75, storage director 12 examines cache 15 to determine whether the record being accessed is stored in cache 15 (record hit). If the addressed record is in cache 15 (record hit is yes), no additional segments are required to successfully complete the subsequent data transfer. Next, at step 76, the type of data transfer operation to be performed is examined. In the case of a read operation R (data transfer to the host), the storage director 12
transfers the requested data from the cache 15 to the requesting host (using unit hlO). Once the operation is complete with this transfer, the storage director I2 can move on to another data processing operation via path 78.6 In the case of a write operation W (data transfer from the host), in step 80, the storage director 12 The command received from the host is examined to determine whether the write is a format write (only access to DASD 14 is required) or another type of write (allowing writing to cache 15). For format writes, storage director 12 deallocates data storage space in cache 15 and transfers the received data to DASD 14 at step 81 . In step 80, unformatted writing (format =
0), in step 82 the storage director 12 transfers the data from the requesting host (using unit 10) to the addressed data storage area of the cache 15 and DASD 14. In this way, cache 15
and DASD 14 always have identical copies of the same data. From steps 81 and 82, storage director 12 proceeds via path 78 to other data processing operations. This operation allows allocations (partial track allocations) smaller than a full 11-rack allocation in the cache to handle successive data transfers.

ステップ75で、記憶ディレクタ12がアドレス指定さ
れたレコードを発見しない(レコード・ヒツトがノーで
ある)場合、さし迫ったキャッシュへのデータ転送のた
め、追加セラメン1−が後続するデータ転送に割振られ
ることがある。ステップ85で、記憶ディレクタ12は
P2及びP3の値を検査する。いずれか一方または双方
のポインタがOである(キャッシュ15で対応する空間
が割振られていない)場合、ステップ86で、記憶ディ
レクタ12は、前に説明したように、トラックに対する
追加セグメントを割振った後、キャッシュ15にデータ
を転送するためステップ87に進む。ステップ87のデ
ータ転送は、ホストがらDASD14及びキャッシュ1
5への書込、DASD14からキャッシュ15及びホス
トへの読取、またはDASD14からキャッシュ15へ
のデータ・ステージング動作である。
In step 75, if the storage director 12 does not find the addressed record (record hit is no), then for the impending data transfer to the cache, an additional ceramic 1- is allocated for the subsequent data transfer. It may happen. At step 85, storage director 12 examines the values of P2 and P3. If either or both pointers are O (the corresponding space has not been allocated in cache 15), then in step 86 storage director 12 allocates additional segments for the track as previously described. Thereafter, the process proceeds to step 87 to transfer the data to the cache 15. The data transfer in step 87 is performed from the host to the DASD 14 and the cache 1.
5, a read from DASD 14 to cache 15 and the host, or a data staging operation from DASD 14 to cache 15.

転送後の機械動作として、記憶ディレクタ12はキャッ
シュ15を検査し、3つの割振られたセグメントの中の
どれが完了したばかりのデータ転送から実際にデータを
受取ったかを決定する。ステップ88で、記憶ディレク
タ12は後に説明するセグメント・カウンタ129(第
4図)を検査し、1.2または3の値−それぞれ、1つ
、2つまたは3つの割振られたセグメント(PI、P2
、P3に対応する)が実際にデータを受取って現在記憶
していることを示す−を確認する。K=1の場合、ステ
ップ90で、記憶ディレクタ12はセグメント2及び3
(それぞれ、XM及びYMとも呼ばれる)を識別してL
RUリス1〜に挿入し、これらのセグメントが割振りに
使用できるようにする。ステップ91で、対応するポイ
ンタP2及びP3は0にセットされる。ステップ88で
に=2の場合、記憶ディレクタ12はステップ92及び
93で、第3のセグメントYMをLRUリス1〜に挿入
してポインタP3をOにセットする。
As a post-transfer machine operation, storage director 12 examines cache 15 to determine which of the three allocated segments actually received data from the data transfer that just completed. At step 88, storage director 12 examines segment counter 129 (FIG. 4), which will be described later, and indicates a value of 1.2 or 3 - one, two or three allocated segments (PI, P2), respectively.
, corresponding to P3), confirms - indicating that the data has actually been received and currently stored. If K=1, then in step 90 storage director 12 stores segments 2 and 3.
(also referred to as XM and YM, respectively) and
RU list 1~ to make these segments available for allocation. At step 91, corresponding pointers P2 and P3 are set to zero. If =2 in step 88, storage director 12 inserts the third segment YM into LRU list 1~ and sets pointer P3 to O in steps 92 and 93.

ステップ88でに=3の場合、記憶ディレクタ12は、
3・つのセグメン1へすべてがデータを受取って現在記
憶していることを知るので、パス78を介して直接化の
データ処理動作に進む。また、ステップ91及び93か
らもパス78に進む。
If =3 in step 88, storage director 12:
Knowing that all three segments 1 have received and are currently storing data, we proceed via path 78 to the direct data processing operation. The process also proceeds to path 78 from steps 91 and 93.

ステップ74でキャッシュ・ミス(ヒツト=0)の場合
、記憶ディレクタ12はステップ95及び96で、キャ
ッシュ15にある3つのセグメント(XY、XM、YM
)を後続するデータ転送のために割振るとともに、それ
ぞれの5SAR0,1及び2に対応するポインタP1、
P2及びP3をセラ1−する。そして、記憶ディレクタ
12は、前に説明したように、ステップ87で実行され
るデータ転送動作に進む。
If there is a cache miss (hit=0) in step 74, storage director 12 stores the three segments (XY, XM, YM
) for subsequent data transfer and pointers P1, corresponding to the respective 5SAR0, 1 and 2.
Sera 1- is applied to P2 and P3. Storage director 12 then proceeds to a data transfer operation performed at step 87, as previously described.

ディレクトリ16の1つの実施例では、ディレクトリ1
6にあるレジスタの各々はキャッシュ15の1つ空間2
8(第1図)に対応している。それ故、セクション22
は関連空間のキャッシュ15における開始アドレスも(
ベース+オフセット・アドレッシングを用いて)指示す
るディレクトリ16内のレジスタ・アドレスなしで済ま
される。
In one embodiment of directory 16, directory 1
Each of the registers in cache 15 has one space 2 in cache 15.
8 (Fig. 1). Therefore, section 22
is also the starting address in the cache 15 of the related space (
Using base+offset addressing) there is no need to point to a register address in directory 16.

そして割振は適切なりASDアドレスをレジスタのセク
ション20に挿入することから成る。アドレスXM及び
YMはそれぞれポインタP2及びP3となり、アドレス
XYに対応するデータ記憶空間23の中の空間24及び
26に記憶される。これらの最後の2つのポインタに対
してはディレクトリ16に変更がないことに注目された
い。所与のレジスタが常にキャッシュ15の1つデータ
記憶領域に関連する上述のディレクトリ構造の場合、ア
ドレスP2及びP3はそれぞれのポインタhす・レジス
タに挿入され、P2及びP3のレジスタはLRU47か
ら落とされる。以上で、後続するデータ転送のためのポ
インタのセツI〜アップは完了する。
The allocation then consists of inserting the appropriate ASD address into section 20 of the register. Addresses XM and YM become pointers P2 and P3, respectively, and are stored in spaces 24 and 26 in data storage space 23 corresponding to address XY. Note that there is no change in directory 16 for these last two pointers. For the directory structure described above, where a given register is always associated with one data storage area of cache 15, addresses P2 and P3 are inserted into their respective pointer registers, and registers P2 and P3 are dropped from LRU 47. . With the above steps, setting I to up of pointers for subsequent data transfer is completed.

第4図は本発明とともに使用可能なキャッシュ15のア
ドレッシング回路を示す。DASD14との間のデータ
転送の場合のデータ経路100はキャッシュ15から記
憶回路56を介してDASD回路55に達する。データ
経路はまた、第2図に示すように、使用ユニット10と
の間のデータ転送のためチャネル・アダプタ50に達す
る。キャッシュ15、チャネル・アダプタ50及びDA
SD回路55の間のデータ転送は、既知の設計で且つ現
にDASD記憶システムにおいて使用されている普通の
自動データ転送回路の制御下にある。
FIG. 4 shows an addressing circuit for cache 15 that can be used with the present invention. Data path 100 in the case of data transfer to/from DASD 14 runs from cache 15 via storage circuit 56 to DASD circuit 55 . The data path also reaches a channel adapter 50 for data transfer to and from the usage unit 10, as shown in FIG. cache 15, channel adapter 50 and DA
Data transfer between SD circuits 55 is under the control of conventional automatic data transfer circuits of known design and currently used in DASD storage systems.

このような自動転送制御回路は第4図で記憶回路56の
一部分である自動制御101として示されている。プロ
グラム式プロセッサ17は適切な開始信号をライン10
2を介して自動制御101に供給する。5SAR30に
はアドレス・バス110.111及び112を介してそ
れぞれプログラム式プロセッサ17から受取った適切な
アドレスP1、P2及びP3がロードされているものと
する。プログラム式プロセッサ17からアドレス・レジ
スタへのこのようなローディングはよく知られている。
Such automatic transfer control circuitry is shown in FIG. 4 as automatic control 101, which is part of storage circuitry 56. Programmable processor 17 sends the appropriate start signal to line 10.
2 to the automatic control 101. It is assumed that 5SAR 30 is loaded with the appropriate addresses P1, P2, and P3 received from programmable processor 17 via address buses 110, 111, and 112, respectively. Such loading of address registers from programmable processor 17 is well known.

自動制御101は、開始信号を受取ると直ちに、キャッ
シュ15のアクセス制御信号をライン103を介してキ
ャッシュ15に供給する。
Automatic control 101 provides a cache 15 access control signal to cache 15 via line 103 as soon as it receives the start signal.

その結果、キャッシュ15は後に説明するように、キャ
ッシュ内のデータ記憶レジスタをアクセスするアドレス
を受取る。ライン103上のアクセス制御信号は、動作
がキャッシュからの読取動作であるか、またはキャッシ
ュへの書込動作であるかの指示を運ぶ。多くのキャッシ
ュ15は、リフレッシュ・サイクルをデータ・アクセス
・サイクルの間にはさんでいる。キャッシュ15は、1
組のデータ信号をデータ経路100を介して転送するご
とに、ライン104を介して自動制御101に1動作サ
イクルを指示する。自動制御101は所与の数のデータ
信号をキャッシュ15とDASD14またはホスト(使
用ユニット10)との間で転送するため既知の方法でプ
リセットされている。
As a result, cache 15 receives addresses that access data storage registers within the cache, as will be explained below. The access control signal on line 103 carries an indication of whether the operation is a read operation from the cache or a write operation to the cache. Many caches 15 sandwich refresh cycles between data access cycles. Cache 15 is 1
Each transfer of a set of data signals via data path 100 instructs automatic control 101 via line 104 for one operating cycle. The automatic control 101 is preset in a known manner to transfer a given number of data signals between the cache 15 and the DASD 14 or the host (utilization unit 10).

データ信号がキャッシュ15に書込まれつつあるとき、
自動制御101は受取られる信号数を知らなくてもよい
。この場合、もう1つの信号がライン102を介して供
給されて自動制御101をオフにし、ライン103上の
信号を取除く。例えば、ホストからキャッシュ15への
データ転送において、I 8M370インタフエース・
アーキテクチャを用いてホストは、データ転送の終了を
指示する、いわゆるCOMMAND  OUT  I1
0タグ信号を送ることがある。このようなI10タグ信
号によってプログラム式プロセッサ17はもう1つの信
号をライン102に送り、自動制御101にデータ転送
の終了を指示する。内部的に自動制御101による、ま
たは外部的に受取ったコマンドによるデータ転送の終了
はライン105を介して供給される終了信号によってプ
ログラム式プロセッサ17に指示される。
When a data signal is being written to cache 15,
Automatic control 101 may not know the number of signals received. In this case, another signal is provided via line 102 to turn off automatic control 101 and remove the signal on line 103. For example, in data transfer from the host to the cache 15, the I8M370 interface
Using the architecture, the host sends the so-called COMMAND OUT I1, which indicates the end of the data transfer.
0 tag signal may be sent. Such an I10 tag signal causes programmable processor 17 to send another signal on line 102 instructing automatic control 101 to terminate the data transfer. Termination of a data transfer, either internally by automatic control 101 or by an externally received command, is indicated to programmable processor 17 by a termination signal provided via line 105.

キャッシュI5の動作サイクルごとに、自動制御101
はライン115を介してアドレス増分信号を出す。アド
レス増分信号はプログラム式プロセッサ17からバス1
30を介して受取った5SARアドレスによって選択さ
れた1つの5SAR30にだけ与えられる。複数のアド
レス・レジスタのアドレス指定はよく知られているので
その説明は省略する。Pl、P2及びP3がロードされ
ると、プログラム式プロセッサ17から受取った5SA
Rアドレス信号は5SAR−0を選択する。
The automatic control 101 is performed every operation cycle of the cache I5.
issues an address increment signal on line 115. The address increment signal is sent from programmable processor 17 to bus 1.
5SAR 30 selected by the 5SAR address received via 30. The addressing of multiple address registers is well known and will not be described here. Once Pl, P2 and P3 are loaded, the 5SA received from the programmable processor 17
The R address signal selects 5SAR-0.

デコーダ131はアドレス信号を解読し、AND回路イ
ネーブル信号をライン132を介してAND回路116
及び120に供給する。AND回路116はライン11
5上のアドレス増分信号を5SAR−0に送って5SA
R−0に含まれているアドレスを増分する。アドレスを
減分する場合も同様に行なわれる。5SAR−0が増分
されるごとに、1組のアドレス信号がAND回路120
に供給され、更にアドレス・バス123を介してキャッ
シュ15に転送され、データ転送のためキャッシュ15
のアドレス指定されたデータ記憶空間内の次のデータ記
憶場所が選択される。
Decoder 131 decodes the address signal and sends an AND circuit enable signal to AND circuit 116 via line 132.
and 120. AND circuit 116 connects line 11
Send the address increment signal on 5 to 5SAR-0 to 5SA
Increment the address contained in R-0. The same procedure is used when decrementing an address. Each time 5SAR-0 is incremented, one set of address signals is output to AND circuit 120.
is supplied to the cache 15 via the address bus 123, and is further transferred to the cache 15 for data transfer.
The next data storage location within the addressed data storage space is selected.

キャッシュ15の1つのデータ記憶空間内のアドレス可
能なデータ記憶場所のすべてにわたって5SAR−0が
カウントし終ったとき、5SAR−0はキャリ信号をラ
イン126からOR回路125に供給し、セグメント・
カウンタ129を増分する。2にのデータ記憶場所(k
は整数)を有するセグメントをカウントするセラメン1
−・カウンタ129はライン140を介してプログラム
式プロセッサ17から受取ったりセラ1へ信号によって
0にプリセットされている。セグメント・カウンタ12
9は信号「0」をライン141を介してデコーダ131
に供給し、受取った5SAR−0アドレス信号を解読回
路に送ってライン132にAND回路イネーブル信号を
生じさせる。セラメン1〜・カウンタ129は、5SA
R−0のキャリ信号によって増分されると、信号「1」
をライン142を介してデコーダ131に供給する。
When 5SAR-0 has counted across all of the addressable data storage locations within one data storage space of cache 15, 5SAR-0 provides a carry signal on line 126 to OR circuit 125 and the segment
Increment counter 129. Data storage location (k
is an integer)
- Counter 129 is preset to zero by a signal received from programmable processor 17 via line 140 and to cellar 1; Segment counter 12
9 sends the signal "0" to the decoder 131 via the line 141.
and sends the received 5SAR-0 address signal to a decoding circuit to produce an AND circuit enable signal on line 132. Ceramen 1~・Counter 129 is 5SA
When incremented by the carry signal of R-0, the signal “1”
is supplied to decoder 131 via line 142.

デコーダ131は受取った5SARアドレスに1を加え
ることにより、ライン132のAND回路イネーブル信
号を除去して新しいAND回路イネーブル信号をライン
133を介して供給することができる。この信号は5S
AR−1に関連するAND回路117及び12】をイネ
ーブルする。
By adding one to the received 5SAR address, decoder 131 can remove the AND circuit enable signal on line 132 and provide a new AND circuit enable signal on line 133. This signal is 5S
AND circuits 117 and 12 related to AR-1 are enabled.

AND回路117によってライン115上のアドレス増
分信号は5SAR−1を増分し、次いで、アドレス信号
がAND回路121を介してキャッシュ15に供給され
る。同様に、5SAR−1はそのキャリ信号をライン1
27を介してOR回路125に供給してセグメント・カ
ウンタ129のカウントを増分し、信号「2Jがライン
143を介してデコーダ131に供給される。それによ
って、デコーダ]、 31は受取った5SARアドレス
に2を加え、AND回路イネーブル信号はライン134
を介して、5SAR−2に関連するAND回路118及
び122に送られる。5SAR−2はアドレス増分信号
を受取ってキャッシュ・データ記憶場所の信号をキャッ
シュ15に供給し、かくして3番目のデータ記憶空間が
続いて起る動作でアドレス指定される。
The address increment signal on line 115 is incremented by 5SAR-1 by AND circuit 117 and the address signal is then provided to cache 15 via AND circuit 121. Similarly, 5SAR-1 sends its carry signal to line 1
27 to the OR circuit 125 to increment the count of the segment counter 129, and the signal ``2J'' is provided to the decoder 131 via line 143, thereby causing the decoder], 31 to 2 and the AND circuit enable signal is on line 134.
to AND circuits 118 and 122 associated with 5SAR-2. 5SAR-2 receives the address increment signal and provides a cache data storage location signal to the cache 15, so that the third data storage space is addressed in subsequent operations.

セグメント・カウンタ129によるカウントは2にの大
きさのセグメントに制限されない。セグメント・サイズ
・レジスタを備えることによって、セグメント・カウン
タ129は任意の大きさを有するセグメント、または大
きさが可変のセグメントをカウントできるが、簡略化の
ためには2にの大きさのセグメントの方が望ましい。
Counting by segment counter 129 is not limited to segments as large as two. By providing a segment size register, segment counter 129 can count segments of arbitrary size or segments of variable size; however, for simplicity, segments of size 2 are preferred. is desirable.

第4図の省略記号147で示すように、更に多数のSS
A、R30が設けられることがあることを認識する必要
がある。その場合、より多くの記憶アドレス・レジスタ
の中の任意の3レジスタが本発明に従ってキャッシュ1
5の動作を順序づけるのに用いられることがある。従っ
て、省略記号148に示すように、同程度に多数のAN
D回路イネーブル・ラインがある。いずれにしても、P
lを受取る最初の記憶アドレス・レジスタはプログラム
式プロセッサ17によって通常の方法で選択される。プ
ログラム式ブイセッサ17は次に、キャッシュ15内の
連続的にアクセスされるデータ記憶空間28の連結され
たアドレスのシーケンスを開始するP1アドレスをどの
5SARが受取ったかを指示する。従って、可変数のデ
ータ記憶空間28を用いて異なった大きさのアドレス空
間からのデータ信号を受取ることができる。例えば、2
種類のDASD14が記憶ディレクタ12に接続されて
いる場合、2つの異なる大きさのデータ転送単位(2つ
のDASDトラックのデータ内容は異なる数の記憶デー
タ・ビットを有する)が含まれることがある。最初のD
ASD14に対しては、例えば、3つのデータ記憶空間
28が連結され、より大きくて新らしいDASD、14
に対しては、キャッシュ15の中の5個のデータ記憶空
間28が用いられる。後者の場合、データ受取りのため
に適切な数のデータ記憶空間28が選択されるように、
各々のDASD装置アドレスとデータ転送単位の大きさ
とを関係付けるテーブル(図示せず)が記憶ディレクタ
12に設けられる。DASD14には、1/3単位また
はl/4単位で別々にアドレス可能なトラックと、1単
位でのみアドレス可能なトラックとを両方とも含むもの
がある。
As shown by the abbreviation 147 in FIG.
It is necessary to recognize that A, R30 may be provided. In that case, any three of the more storage address registers may be cached according to the present invention.
It is sometimes used to order the operations of 5. Therefore, as shown at ellipsis 148, an equally large number of AN
There is a D circuit enable line. In any case, P
The first storage address register to receive l is selected by programmable processor 17 in the usual manner. Programmable processor 17 then indicates which 5SAR received the P1 address which begins a sequence of concatenated addresses of sequentially accessed data storage space 28 in cache 15. Thus, a variable number of data storage spaces 28 can be used to receive data signals from address spaces of different sizes. For example, 2
When different DASDs 14 are connected to the storage director 12, two different sized data transfer units may be included (the data contents of the two DASD tracks have different numbers of stored data bits). first D
For the ASD 14, for example, three data storage spaces 28 may be connected and a larger, newer DASD, 14
For this, five data storage spaces 28 in cache 15 are used. In the latter case, the appropriate number of data storage spaces 28 are selected for data reception.
A table (not shown) is provided in storage director 12 that relates each DASD device address to the size of a data transfer unit. Some DASDs 14 include both tracks that can be addressed separately in 1/3 or 1/4 units and tracks that can be addressed only in 1/4 units.

その場合も本発明の原理が同様に適用できる。もちろん
、セグメント・カウンタ129はそれに応じて調整され
なければならない。
In that case, the principles of the present invention are similarly applicable. Of course, segment counter 129 must be adjusted accordingly.

データ記憶空間28の割振り解除を行なうため、セグメ
ント・カウンタ129は、現在のデータ転送動作のシー
ケンスでアクセスされたセグメントの数をバス145を
介して供給する。第3図のステップ88で、セグメント
・カウンタ129の値が決定される。
To deallocate data storage space 28, segment counter 129 provides over bus 145 the number of segments accessed in the current sequence of data transfer operations. In step 88 of FIG. 3, the value of segment counter 129 is determined.

第5図はディレクトリ16の動作を例示している。ディ
レクトリ16は複数のレジスタを含み、その各々はキャ
ッシュ15のデータ記憶空間28の1つだけに独特の関
連を有する。ディレクトリ16へのアクセスは、プログ
ラム式プロセッサ17を介して使用ユニット10からバ
ス150に受取ったDASDアドレスに基づいて行なわ
れる。
FIG. 5 illustrates the operation of the directory 16. Directory 16 includes a plurality of registers, each of which has a unique association with only one of the data storage spaces 28 of cache 15. Access to directory 16 is based on DASD addresses received on bus 150 from usage unit 10 via programmable processor 17.

ハツシュ回路151は受取ったDASDアドレスを周知
のハツシュ・クラスに分析、解剖する。特定のデータ記
憶システムのすべてのDASD14のアドレス・ベース
全体はトラック数、装置数及びDASDシリンダ数(シ
リンダは1つの放射状の区域またはアドレスにおける全
レコード・トラックである)に従って複数のクラスに分
けられる。
The hash circuit 151 analyzes and dissects the received DASD address into known hash classes. The entire address base of all DASDs 14 in a particular data storage system is divided into classes according to number of tracks, number of devices, and number of DASD cylinders (a cylinder is the entire record track at one radial area or address).

各々のハツシュ・クラスはS I T (分散インデッ
クス表)152に単一のレジスタを有する。ハツシュ回
路151の出力は5IT152において1つのレジスタ
だけをアドレス指定する。5ITI52は、所与のSI
Tレジスタについて定義されたハツシュ・クラスに属す
るDASDアドレスをセクション20に有するディレク
トリ・レジスタのアドレスを記憶している。このアドレ
スは矢印】54で示すように供給され、ディレクトリ1
6の中の指示されたレジスタを選択する。各々のディレ
クトリ・レジスタ内にハツシュ・ポインタ155があり
、同じハツシュ・クラス内のDASDアドレスを含む次
のディレクトリ・レジスタを指す。このようなディレク
トリ・レジスタの連鎖されたリストにある最後のディレ
クトリ・レジスタは全O1すなわち連鎖終了であること
を示す特別コードを含む。従って、ディレクトリ・レジ
スタを走査する場合には、プログラム式プロセッサ17
はハツシュ回路151を活動化して5IT152からデ
ィレクトリ・レジスタをアクセスし、比較回路157で
最初のディレクトリ・レジスタのセクション20に含ま
れたDASDアドレスとバス150に受取ったDASD
アドレスとを比較する。両者が一致する場合はライン1
58上の信号で示すようにキャッシュ・ヒツトが生じて
いる。
Each hash class has a single register in the SIT (distributed index table) 152. The output of hash circuit 151 addresses only one register in 5IT 152. 5ITI52 is the given SI
Stores the address of a directory register whose section 20 contains DASD addresses belonging to the hash class defined for the T register. This address is supplied as shown by arrow ]54 and is provided in directory 1
Select the designated register from 6. There is a hash pointer 155 within each directory register that points to the next directory register containing a DASD address within the same hash class. The last directory register in a chained list of such directory registers contains a special code indicating all O1s, ie, the end of the chain. Therefore, when scanning a directory register, programmable processor 17
activates hash circuit 151 to access the directory register from 5IT 152, and comparator circuit 157 compares the DASD address contained in section 20 of the first directory register with the DASD received on bus 150.
Compare with address. If both match, line 1
A cache hit has occurred as indicated by the signal above 58.

実施例では、ライン158はプログラム式プロセッサ1
7内における36のようなプログラムの中の論理バスで
ある。ライン159によって不一致が示された場合、ハ
ツシュ・ポインタ155が読取られ、そのハツシュ・ポ
インタが指すディレクトリ・レジスタ中のDASDアド
レスが同じ方法で比較される。このサイクルは両DAS
Dアドレスが一致してキャッシュ・ヒツトを表わすか、
またはEOC(連鎖終了)が生じるまで反復される。
In the example, line 158 is the programmable processor 1
It is a logical bus in a program such as 36 in 7. If a mismatch is indicated by line 159, hash pointer 155 is read and the DASD address in the directory register pointed to by the hash pointer is compared in the same manner. This cycle is for both DAS
Does the D address match and indicate a cache hit?
or iterated until EOC (end of chain) occurs.

EOCの場合は、ライン160で示すように、キャッシ
ュ・ミスが生じる。
In the case of an EOC, a cache miss occurs, as shown by line 160.

ディレクトリ16を構成するディレクトリ・レジスタの
各々はセクション22にP1ポインタを含む。前に述べ
たように、ディレクトリ・レジスタの実際のアドレスは
直線的にデータ記憶領域28に関連していてもよいが、
Plをセクション2.2に保持しておけば、ディレクト
リ16の構造とキャッシュ15の構成の間に特定の関係
を持つ必要はない。
Each of the directory registers that make up directory 16 includes a P1 pointer in section 22. As previously mentioned, the actual address of the directory register may relate linearly to the data storage area 28;
By keeping Pl in Section 2.2, there is no need to have a specific relationship between the structure of directory 16 and the configuration of cache 15.

LRU47もディレクトリ16内に存在する。LRU 47 also exists in directory 16.

ディレクトリ16のレジスタの各々は、キャッシュ15
において現レジスタが指すデータ記憶空間の1つ前に使
用されたデータ記憶空間に対応するディレクトリ・レジ
スタを指すポインタLRUPを含むセクション167を
有する。同様に、セクション168はより最近に使用さ
れたデータ記憶空間に対応するディレクトリ・レジスタ
を指すボインクMPUPを有する。従って、セクション
167及び168はブイレフ1〜す・レジスタの2重リ
ンク・リストを構成し、それによって各データ記憶空間
がどれ位前に使用されたかを示す。最も −前に使用さ
れたデータ記憶空間はLRUPセクション167に特殊
コードで表わされ、最後に使用されたデータ記憶空間は
MRUPセクション168に特殊コードで表わされる。
Each of the registers in directory 16 is stored in cache 15.
section 167 containing a pointer LRUP that points to a directory register corresponding to the data storage space that was used immediately before the data storage space pointed to by the current register. Similarly, section 168 has a boink MPUP pointing to a directory register corresponding to more recently used data storage space. Sections 167 and 168 thus constitute a doubly linked list of registers, thereby indicating how long ago each data storage space was used. The most recently used data storage space is represented by a special code in the LRUP section 167, and the most recently used data storage space is represented by a special code in the MRUP section 168.

プログラム式プロセッサ17の制御記憶18はいわゆる
LRUアンカ165及びMRUアンカ166を有する。
The control store 18 of the programmable processor 17 has so-called LRU anchors 165 and MRU anchors 166.

LRUアンカ165は最も前に使用されたディレクトリ
・レジスタのアドレスを含み、MRUアンカ166は最
後に使用されたデータ記憶空間に対応するディレクトリ
・レジスタを指す。2重リンク・リストのセクション1
67、j68及びアンカ165.166の更新はよく知
られているので説明を省略する。第3図のステップ91
または93に示すように、P2またはP3がOにセット
されると、プログラム式プロセッサ17は対応するキャ
ッシュ15のセグメントを解放する(Fビット171を
1にセットする)ことによってセクション167.16
8の2重リンク・リストを更新し、リンク・リストのL
RU末尾部分に解放されたセグメントを再リンクする。
LRU anchor 165 contains the address of the most recently used directory register, and MRU anchor 166 points to the directory register corresponding to the most recently used data storage space. Section 1 of a doubly linked list
67, j68, and anchors 165 and 166 are well known, so their explanation will be omitted. Step 91 in Figure 3
When P2 or P3 is set to O, as shown in section 167.16 or 93, programmable processor 17 frees the corresponding segment of cache 15 (by setting F bit 171 to 1).
Update the double linked list of 8 and add L of the linked list.
Relink the released segment to the tail of the RU.

更に、DASD14がキャッシュ15のデータ更新と同
時に更新されないときは、LRU47は対応するデータ
記憶空間28のステータス標識を含む。Mビット170
によって、対応するデータ記憶空間28のデータ内容が
使用ユニット10によって変更されたかどうかが表示さ
れる。Mビット170が0のときは、対応するデータ記
憶空間の割振り解除が可能である。Mビット170が1
に等しい(キャッシュ15のデータが変更されている)
ときは、対応するデータ記憶空間28のデータ内容がD
ASD14の関連データ記憶領域に移された後に、対応
するデータ記憶空間の再割振りが可能になる。DASD
14とキャッシュ15が同時に更新されるときは、Mビ
ット170は使用されずに済む。Fビット171はデー
タ記憶空間28が自由(未開振り)であって割振りに使
用できるかどうかを指示する。第3図のステップ81及
び95に関連して説明されたLRU走査はLRUアンカ
165が指示したディレクトリ・レジスタによって始ま
り、2重リンク・リスト(セクション167及び168
)を用いて1に等しいFビット171のレジスタを走査
する。自由なデータ記憶空間を発見しない場合には、0
に等しいMビット170の走査が次に行われる。もちろ
ん、各々のディレクトリ・レジスタは省略記号175で
示すよう・に追加の制御情報を含む。
Additionally, when DASD 14 is not updated simultaneously with data updates in cache 15, LRU 47 includes a status indicator for the corresponding data storage space 28. M bit 170
indicates whether the data content of the corresponding data storage space 28 has been modified by the usage unit 10. When M bit 170 is 0, the corresponding data storage space can be deallocated. M bit 170 is 1
(data in cache 15 has been changed)
In this case, the data content of the corresponding data storage space 28 is D.
After being moved to the associated data storage area of the ASD 14, the corresponding data storage space can be reallocated. DASD
When cache 14 and cache 15 are updated at the same time, M bit 170 can be unused. F bit 171 indicates whether data storage space 28 is free (unopened) and available for allocation. The LRU traversal described in connection with steps 81 and 95 of FIG.
) is used to scan the register for F bit 171 equal to one. 0 if no free data storage space is found.
A scan of M bits 170 equal to is then performed. Of course, each directory register contains additional control information as indicated by ellipsis 175.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は本発明に従うデータ記憶システムの概略及びプ
ログラムの流れを示すブロック図、第2図は第1図に示
す技術を周辺データ記憶階層に適用したブロック図、 第3図は第2図の動作を示す流れ図、 第4図は記憶回路56の詳細を示すブロック図、第5図
はディレクトリ16の詳細を示すブロック図である。
FIG. 1 is a block diagram showing the outline and program flow of a data storage system according to the present invention, FIG. 2 is a block diagram in which the technology shown in FIG. 1 is applied to a peripheral data storage hierarchy, and FIG. FIG. 4 is a block diagram showing details of the storage circuit 56, and FIG. 5 is a block diagram showing details of the directory 16.

Claims (1)

【特許請求の範囲】 割振り可能な多数のデータ記憶空間を有するデータ記憶
ユニットにおいて、 書込み要求に応答して使用可能な複数のデータ記憶空間
を割振り、該複数のデータ記憶空間へ順次にデータを書
込み、該複数の記憶空間のうちでデータを書込まれなか
ったデータ記憶空間の割振りを解除して他の書込み要求
に対する再割振りを可能にすることを特徴とするデータ
記憶空間の管理方法。
[Claims] In a data storage unit having a large number of allocatable data storage spaces, in response to a write request, a plurality of available data storage spaces are allocated, and data is sequentially written to the plurality of data storage spaces. . A method for managing a data storage space, characterized in that a data storage space in which no data is written among the plurality of storage spaces is deallocated to enable reallocation in response to another write request.
JP58206059A 1982-12-20 1983-11-04 Management of data memory space Pending JPS59114658A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US450894 1982-12-20
US06/450,894 US4499539A (en) 1982-12-20 1982-12-20 Method and apparatus for limiting allocated data-storage space in a data-storage unit

Publications (1)

Publication Number Publication Date
JPS59114658A true JPS59114658A (en) 1984-07-02

Family

ID=23789949

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58206059A Pending JPS59114658A (en) 1982-12-20 1983-11-04 Management of data memory space

Country Status (5)

Country Link
US (1) US4499539A (en)
EP (1) EP0112442B1 (en)
JP (1) JPS59114658A (en)
DE (1) DE3379920D1 (en)
SG (1) SG25291G (en)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4603382A (en) * 1984-02-27 1986-07-29 International Business Machines Corporation Dynamic buffer reallocation
US4680702A (en) * 1984-04-27 1987-07-14 Honeywell Information Systems Inc. Merge control apparatus for a store into cache of a data processing system
US4875155A (en) * 1985-06-28 1989-10-17 International Business Machines Corporation Peripheral subsystem having read/write cache with record access
US4779189A (en) * 1985-06-28 1988-10-18 International Business Machines Corporation Peripheral subsystem initialization method and apparatus
US4740909A (en) * 1986-04-28 1988-04-26 The United States Of America As Represented By The Secretary Of The Air Force Real time data reduction system standard interface unit
US4967353A (en) * 1987-02-25 1990-10-30 International Business Machines Corporation System for periodically reallocating page frames in memory based upon non-usage within a time period or after being allocated
JPS63226762A (en) * 1987-03-16 1988-09-21 Hitachi Ltd Data processing method
US5446844A (en) * 1987-10-05 1995-08-29 Unisys Corporation Peripheral memory interface controller as a cache for a large data processing system
JP2965987B2 (en) * 1988-02-22 1999-10-18 株式会社日立製作所 Data processing system
US5359713A (en) * 1989-06-01 1994-10-25 Legato Systems, Inc. Method and apparatus for enhancing synchronous I/O in a computer system with a non-volatile memory and using an acceleration device driver in a computer operating system
US5226141A (en) * 1989-07-14 1993-07-06 Touch Technologies, Inc. Variable capacity cache memory
EP0438556A4 (en) * 1989-07-14 1993-03-17 Touch Technologies, Inc. Variable capacity cache memory
CA2025197C (en) * 1989-10-19 1998-04-21 Michael H. Kelley Method and system for dynamically controlling the operation of a program
US6728832B2 (en) * 1990-02-26 2004-04-27 Hitachi, Ltd. Distribution of I/O requests across multiple disk units
US5680574A (en) * 1990-02-26 1997-10-21 Hitachi, Ltd. Data distribution utilizing a master disk unit for fetching and for writing to remaining disk units
US5235690A (en) * 1990-08-31 1993-08-10 International Business Machines Corporation Method for operating a cached peripheral data storage subsystem including a step of subsetting the data transfer into subsets of data records
US5317728A (en) * 1990-09-07 1994-05-31 International Business Machines Corporation Storage management of a first file system using a second file system containing surrogate files and catalog management information
JPH0774984B2 (en) * 1991-06-10 1995-08-09 インターナショナル・ビジネス・マシーンズ・コーポレイション System resource utilization measurement method and data processing system
US6026452A (en) 1997-02-26 2000-02-15 Pitts; William Michael Network distributed site cache RAM claimed as up/down stream request/reply channel for storing anticipated data and meta data
JPH0659952A (en) * 1992-08-07 1994-03-04 Toshiba Corp Magnetic disk device
US5394534A (en) * 1992-09-11 1995-02-28 International Business Machines Corporation Data compression/decompression and storage of compressed and uncompressed data on a same removable data storage medium
US5991775A (en) * 1992-09-23 1999-11-23 International Business Machines Corporation Method and system for dynamic cache allocation between record and track entries
US5404500A (en) * 1992-12-17 1995-04-04 International Business Machines Corporation Storage control system with improved system and technique for destaging data from nonvolatile memory
US5499354A (en) * 1993-05-19 1996-03-12 International Business Machines Corporation Method and means for dynamic cache management by variable space and time binding and rebinding of cache extents to DASD cylinders
US5519846A (en) * 1993-12-23 1996-05-21 Unisys Corporation Multiprocessor system with scheme for managing allocation and reservation of cache segments in a cache system employing round-robin replacement and exclusive access
US5717916A (en) * 1994-09-30 1998-02-10 Vlsi Technology, Inc. Method for providing an improved fully associative cache memory having a finite state machine and linked list structure
US6085234A (en) * 1994-11-28 2000-07-04 Inca Technology, Inc. Remote file services network-infrastructure cache
US5634028A (en) * 1994-12-15 1997-05-27 International Business Machines Corporation Compact track address translation mapping system and method
US5717888A (en) * 1995-06-02 1998-02-10 International Business Machines Corporation Accessing cached data in a peripheral disk data storage system using a directory having track and cylinder directory entries
US5623701A (en) * 1995-06-06 1997-04-22 International Business Machines Corporation Data compression method and structure for a direct access storage device
US5682499A (en) * 1995-06-06 1997-10-28 International Business Machines Corporation Directory rebuild method and apparatus for maintaining and rebuilding directory information for compressed data on direct access storage device (DASD)
US5689702A (en) * 1995-06-07 1997-11-18 Microtec Research, Inc. Flexible data structure layout for data structure including bit-field data members
US5666560A (en) * 1995-08-03 1997-09-09 International Business Machines Corporation Storage method and hierarchical padding structure for direct access storage device (DASD) data compression
US5924112A (en) * 1995-09-11 1999-07-13 Madge Networks Limited Bridge device
US5802557A (en) * 1996-03-18 1998-09-01 Emc Corp System and method for caching information in a digital data storage subsystem
US6134708A (en) * 1997-02-13 2000-10-17 Nec Corporation Program compilation execution system
US5926834A (en) * 1997-05-29 1999-07-20 International Business Machines Corporation Virtual data storage system with an overrun-resistant cache using an adaptive throttle based upon the amount of cache free space
US5983239A (en) * 1997-10-29 1999-11-09 International Business Machines Corporation Storage management system with file aggregation supporting multiple aggregated file counterparts
US6098074A (en) * 1997-10-29 2000-08-01 International Business Machines Corporation Storage management system with file aggregation
US6021415A (en) * 1997-10-29 2000-02-01 International Business Machines Corporation Storage management system with file aggregation and space reclamation within aggregated files
US6247095B1 (en) * 1998-06-24 2001-06-12 Philips Semiconductors, Inc. Digital reverberation processor and method for generating digital reverberation
US6286080B1 (en) * 1999-02-16 2001-09-04 International Business Machines Corporation Advanced read cache emulation
US6490666B1 (en) * 1999-08-20 2002-12-03 Microsoft Corporation Buffering data in a hierarchical data storage environment
US6625708B1 (en) * 1999-11-23 2003-09-23 Intel Corporation Method and apparatus for dynamically defining line buffer configurations
US6629168B1 (en) * 2000-06-15 2003-09-30 Hewlett-Packard Development Company, Lp. Byte-swapping for efficient use of memory
US6658438B1 (en) * 2000-08-14 2003-12-02 Matrix Semiconductor, Inc. Method for deleting stored digital data from write-once memory device
US7421459B2 (en) * 2002-03-06 2008-09-02 Hewlett-Packard Development Company, L.P. Buffer management for data transfers between a host device and a storage medium
US7124243B2 (en) * 2003-05-16 2006-10-17 Pillar Data Systems, Inc. Methods and systems of cache memory management and snapshot operations
TWI273402B (en) * 2004-07-30 2007-02-11 Mediatek Inc Data buffering method in disc data reading system and system of the same
US9152823B2 (en) * 2005-04-22 2015-10-06 Storagecraft Technology Corporation Systems, methods, and computer readable media for computer data protection

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57111757A (en) * 1980-12-29 1982-07-12 Fujitsu Ltd Track buffer memory system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4025901A (en) * 1975-06-19 1977-05-24 Honeywell Information Systems, Inc. Database instruction find owner
US4467411A (en) * 1981-03-06 1984-08-21 International Business Machines Corporation Scheduling device operations in a buffered peripheral subsystem
US4430712A (en) * 1981-11-27 1984-02-07 Storage Technology Corporation Adaptive domain partitioning of cache memory space

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57111757A (en) * 1980-12-29 1982-07-12 Fujitsu Ltd Track buffer memory system

Also Published As

Publication number Publication date
EP0112442A3 (en) 1987-03-25
SG25291G (en) 1991-06-21
EP0112442B1 (en) 1989-05-24
EP0112442A2 (en) 1984-07-04
DE3379920D1 (en) 1989-06-29
US4499539A (en) 1985-02-12

Similar Documents

Publication Publication Date Title
JPS59114658A (en) Management of data memory space
US4493026A (en) Set associative sector cache
US7424593B2 (en) Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US10126964B2 (en) Hardware based map acceleration using forward and reverse cache tables
US5813031A (en) Caching tag for a large scale cache computer memory system
US4467421A (en) Virtual storage system and method
US3761881A (en) Translation storage scheme for virtual memory system
US5530829A (en) Track and record mode caching scheme for a storage system employing a scatter index table with pointer and a track directory
KR100242868B1 (en) Compressed data cache storage system
US6202138B1 (en) Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US4875155A (en) Peripheral subsystem having read/write cache with record access
US5386524A (en) System for accessing information in a data processing system
EP0072108B1 (en) A multiple operating mode storage subsystem
US8688894B2 (en) Page based management of flash storage
US5537572A (en) Cache controller and method for dumping contents of a cache directory and cache data random access memory (RAM)
US6349372B1 (en) Virtual uncompressed cache for compressed main memory
US6401181B1 (en) Dynamic allocation of physical memory space
US5765201A (en) Changing page size in storage media of computer system
EP0130349A2 (en) A method for the replacement of blocks of information and its use in a data processing system
US20050015557A1 (en) Nonvolatile memory unit with specific cache
US5418927A (en) I/O cache controller containing a buffer memory partitioned into lines accessible by corresponding I/O devices and a directory to track the lines
US5289581A (en) Disk driver with lookahead cache
JPS6117025B2 (en)
US5420983A (en) Method for merging memory blocks, fetching associated disk chunk, merging memory blocks with the disk chunk, and writing the merged data
JPS5876956A (en) Peripheral system with buffer memory