Abstract:
Described is a sequence interlock generator and priority apparatus combination 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 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. The sequence interlock generator 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. A sequence interlock vector is computed when the request first enters its request port and is appended to the request until the request is clear to request service. A request is received in terms of a logical address. The logical address is transformed into a plurality of physical addresses in high-speed storage. The physical addresses are used to address corresponding tags from the tag storage to determine the contents of the desired addresses in high-speed storage. The priority apparatus essentially splits the request into two priority determinations, one for priority to access the tag storage and the second for priority to access the data storage. The ideal situation is for tags and storage to be accessed concurrently. However, the invention makes provision for action to begin upon the tags if the tag storage can be accessed due to conflicts for accessing the addressable entity in highspeed storage. As a consequence of the invention, initiation of service of a given request is begun at the earliest possible time.
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:
Apparatus in a digital computer for allowing the skipping of predetermined instructions in a sequence of instructions is disclosed. Means are provided for detecting a specific type of instruction in a sequence of instructions. This specific type of instruction is referred to as a skip instruction and indicates that upon the occurrence of a specified machine condition, predetermined subsequent instructions in said sequence are to be skipped. Further means are provided to determine the occurrence of the specified machine condition, and to emit an output signal indicative of the occurrence. Means responsive to the output signal effect the skipping of the predetermined instructions.
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.