Hierarchical memory system having cache/disk subsystem with command queues for plural disks
First Claim
1. A data processing system comprising:
- a plurality of disk drive devices for driving disks, each of said disks storing segments of data,a host processor for issuing host processor commands, each command defining an operation to be performed, and specifying a disk drive device number and the disk space at which said operation is to be performed;
a cache store for storing segments of data which have been read from, or are to be written to, said disks;
command queue storage means for storing a plurality of command queues, there being one command queue corresponding to each disk drive device with each command queue having a plurality of entries for storing disk commands and a corresponding command queue header including an indication of the number of commands in the corresponding command queue;
a storage control unit connected to said command queue storage means, said cache store, said host processor and said disk drive devices for controlling the transfer of data between said host processor, said cache store and said disk drive devices;
said storage control unit including,first means responsive to a given host processor command for developing a queue command and storing it in the command queue corresponding to the disk drive device specified by said host processor command,second means responsive to said given host processor command and the command queue header corresponding to the disk drive device specified by said given host processor command for selecting the disk drive device specified by the disk drive device number in said given command if the command queue header indicates that the command queue is empty prior to storage of said queue command therein, said each disk drive device including means responsive to said second means for producing signals indicating that the selected disk drive device is busy or idle,third means responsive to said signals for executing said queue command when said signals indicate that the selected disk drive device is idle,fourth means responsive to said signals for determining if a copy of the data from the disk space specified by said given host processor command is resident in said cache store,fifth means responsive to said fourth means for transferring data between said host processor and said cache store if said fourth means determines that a copy of the data from the disk space specified by said given host processor command is resident in said cache store, and,sixth means responsive to the command queue header for the command queue in which said queue command is stored for activating said fourth means if there is already a command in the command queue into which said queue command is stored.
1 Assignment
0 Petitions
Accused Products
Abstract
One or more host processors issue commands to one or more storage control units which control data transfers between the host processors, a cache store and a plurality of disk devices. A command queue is maintained for each disk device to store commands waiting to be executed by the disk device. The cache store stores segments of data which have been read from, or are to be written to disk space. In response to a command from a host processor a corresponding command is added to one of the command queues. If the disk device is not busy and has no previously queued commands waiting to be executed the storage control unit issues a seek command to the disk drive device. If there are previously queued commands waiting to be executed, or if the disk device is busy, the cache store is checked to determine if it contains a copy of the data from the disk space specified by the host processor command. If a copy of the data from the specified disk space is resident in the cache store then a data transfer is initiated between the host processor and the cache store. A priority value and a sequence number are assigned to each command as it is added to a queue so that the highest priority queued command with the lowest request number is executed when the disk device corresponding to the queue becomes idle. The storage control unit may create commands and place them on command queues for execution, these commands being for the purpose of transferring the least recently used segments of data from the cache store to the disks if the segments have been written to while in the cache store.
-
Citations
8 Claims
-
1. A data processing system comprising:
-
a plurality of disk drive devices for driving disks, each of said disks storing segments of data, a host processor for issuing host processor commands, each command defining an operation to be performed, and specifying a disk drive device number and the disk space at which said operation is to be performed; a cache store for storing segments of data which have been read from, or are to be written to, said disks; command queue storage means for storing a plurality of command queues, there being one command queue corresponding to each disk drive device with each command queue having a plurality of entries for storing disk commands and a corresponding command queue header including an indication of the number of commands in the corresponding command queue; a storage control unit connected to said command queue storage means, said cache store, said host processor and said disk drive devices for controlling the transfer of data between said host processor, said cache store and said disk drive devices; said storage control unit including, first means responsive to a given host processor command for developing a queue command and storing it in the command queue corresponding to the disk drive device specified by said host processor command, second means responsive to said given host processor command and the command queue header corresponding to the disk drive device specified by said given host processor command for selecting the disk drive device specified by the disk drive device number in said given command if the command queue header indicates that the command queue is empty prior to storage of said queue command therein, said each disk drive device including means responsive to said second means for producing signals indicating that the selected disk drive device is busy or idle, third means responsive to said signals for executing said queue command when said signals indicate that the selected disk drive device is idle, fourth means responsive to said signals for determining if a copy of the data from the disk space specified by said given host processor command is resident in said cache store, fifth means responsive to said fourth means for transferring data between said host processor and said cache store if said fourth means determines that a copy of the data from the disk space specified by said given host processor command is resident in said cache store, and, sixth means responsive to the command queue header for the command queue in which said queue command is stored for activating said fourth means if there is already a command in the command queue into which said queue command is stored. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A data processing system comprising:
-
a host processor issuing host processor commands specifying an operation to be performed, a disk drive device number, and the disk space at which said operation is to be performed; a plurality of disk drive devices for driving disks; a cache store for storing segments of data read from, or to be written-to said disks; command queue storage means for storing a plurality of command queues, there being one command queue corresponding to each disk drive device with each command queue having a plurality of entries for storing disk commands and a corresponding command queue header; a storage control unit connected to said command queue storage means, said cache store, said disk drive devices and said host processor for controlling the transfer of data between said host processor, said cache store and said disk drive devices; said storage control unit including; first means for determining if the disk drive device specified by a given host processor command is idle; second means for executing a given host processor command when if the disk drive device specified by said given host processor command is idle to thereby transfer data between the host processor and the specified disk drive device; third means responsive to said first means and said given host processor command for determining if a copy of the data from the specified disk space is resident in said cache store if the disk drive device specified by said host processor command is not idle; fourth means responsive to said third means for transferring data between said host processor and said cache store if said third means determines that a copy of the data from the specified disk space is resident in said cache store; and
,fifth means responsive to said third means and said given host processor command for developing a disk command and storing it, for later execution, in the command queue corresponding to the disk drive device specified by the disk drive device number in said given host processor command; and sixth means for executing a disk command in a command queue when the disk drive device corresponding to said command queue is not busy. - View Dependent Claims (7, 8)
-
Specification