Abstract:
Described is a storage control system for a two-level storage system. The system includes a high-speed storage against which requests for data are processed and a slower, larger-capacity main storage. Requests for data are received in terms of logical addresses. Requests can be received concurrently at a plurality of request ports where they are buffered in request stacks. A tag storage serves as an index to the data currently resident in high-speed storage, and a directory storage acts as an index to data currently in main storage. A sequence interlock generator is included which interlocks requests in the plurality of request stacks to insure that requests to the same storage area are performed in proper sequence to insure data integrity. When a request is serviced, the logical address is transformed into a plurality of physical addresses in high-speed storage. The corresponding tags from the tag storage and the corresponding data from the high-speed storage are concurrently fetched. A comparison is made of the tags with the transformed address to determine whether the requested data is in high-speed storage. Since request to the same storage entity in high-speed storage or tag storage can be made concurrently by all request ports, conflict resolvers are included to resolve conflicts arising from simultaneous requests to either of these two storages. High-speed storage is divided into storage modules capable of simultaneous operation such that requests from the plurality of request ports can be serviced concurrently. If comparison of the tags indicate that the requested data is available, the request is serviced. An interstorage transfer mechanism is included such that if the requested data is not available in high-speed storage, then the data is retrieved from main storage and placed into high-speed storage for subsequent processing of the request. Concurrently with interstorage transfer, processing of other requests from the request ports is permissible. In the replacement of data from main storage to high-speed storage, provision is made for also replacing data from high-speed storage to main storage if such be necessary.
Abstract:
A directory, or index, of variable-sized pages of data for use in a two-level storage system employing virtual addressing, wherein data is stored in a large capacity main storage and retrieved to a smaller, faster buffer storage for processing. If a desired piece of data indicated by a virtual address is not currently resident in buffer storage, the location of the beginning of the page containing that data in main storage is found by searching the directory. Directory addresses for searching the directory are formed by a pseudo-random function of two parameters, the virtual address and a count. Since a larger page-size entry will be addressed statistically more frequently than a smaller page-size entry, a new directory entry for a given page size is made in the first location along its algorithm chain which currently contains either an invalid entry or a smaller page-size entry. Thus, it may be necessary to relocate a smaller page-size entry further down its chain.
Abstract:
Described is an interstorage transfer mechanism suitable for use in a storage control system for a two-level storage, wherein the storage system includes a high-speed storage against which requests for data are processed and a slower, larger-capacity main storage. Requests can be received and serviced concurrently at a plurality of request ports in the system where they are buffered in the request stacks. A tag storage serves as an index to the data concurrently resident in high-speed storage and a directory storage acts as an index to data currently in main storage. Requests for data in each port cause the tag storage to be interrogated to determine whether the desired data is in highspeed storage. If not, then the desired data is retrieved from main storage and placed into high-speed storage by the interstorage transfer mechanism. Priority means for accessing said high-speed storage are provided, said interstorage transfer mechanism being given first priority to access said high-speed and tag storages in case of conflicts in access between said interstorage transfer mechanism and at least one of said plurality of request ports. Means are provided for choosing a target address in High-speed storage wherein said desired data will be relocated. The tag indexing said target address is updated by said interstorage transfer mechanism to reflect the new data. Means are further provided for invalidating all requests currently in transit at the time said tag is changed to insure data integrity in case said requests refer to old data in said target line. The aforementioned tags contain a bit indicating that the corresponding address in high-speed storage has recently been accessed. Cold generator means are provided for periodically resetting this bit in each tag to mark the corresponding high-speed storage physical address as a candidate for replacement target.