Abstract:
An apparatus for controlling data transfer between a rotary storage device such as a magnetic disk having a plurality of heads for different tracks and another storage device such as a disk cache includes a plurality of transfer circuits for the purpose of simultaneous data transfer to and from a plurality of tracks. The transfer circuits operate concurrently with and independently of each other to transfer data therethrough and other than noting the regions to be skipped over, ignoring data format on the track. The apparatus is suitable for preloading a disk cache from a disk.

Description:
BACKGROUND OF THE INVENTION 
     The present invention relates to data transfer between a rotary storage device and another storage device (e.g., between a magnetic disk and a disk cache). More particularly, the present invention pertains to simultaneous data transfer for a plurality of tracks between such storage devices. 
     Rotary storage devices, which are typically represented by magnetic disks, are suitable for storing a large amount of data but disadvantageously involve a long access time and a low data transfer rate. A disk cache subsystem such as that disclosed in U.S. Pat. No. 3,569,938 is one means for overcoming the above-described disadvantages of the rotary storage devices. However, when data transfer is between a disk cache and a disk, there is still room for improvement insofar as the mechanism for transferring data is concerned. 
     FIG. 1 shows one example of disk cache subsystems. Disk control units (DKC&#39;s) 101 and 102 are connected to the same CPU or different CPU&#39;s through channel interfaces 111 and 112, respectively. A cache memory 121 is shared by the DKC&#39;s 101 and 102. N disk drive units (DKU&#39;s) 141a to 141n are connected to the DKC&#39;s 101 and 102 through device interfaces 131 and 132, respectively. 
     When the DKC 101 (or 102) receives a data read request directed to one of the DKU&#39;s (e.g., DKU #i) through the channel interface 111 (or 112), the DKC 101 (or 102) searches the cache memory 121. If the requested data is present in the cache memory 121, that is, if a read-hit occurs, the data is transferred from the cache memory 121 to the CPU, and no access to the DKU #i is effected. On the other hand, if the requested data is not present in the cache memory 121, that is, if a read-miss occurs, the DKC 101 (or 102) establishes connection to the DKU #i through the device interface 131 (or 132), reads out the requested data from the DKU #i and sends it to the CPU. 
     When a read-miss occurs, that is, when required data is read out from a disk, a considerably long time is consumed in seeking for the track and waiting for the disk rotation. In addition to that, since the data transfer rate is limited by the rotational speed of the disk, the time required to respond to a data read request is undesirably extended. On the other hand, when a read-hit occurs, that is, when data transfer is effected from the cache memory, there is no such latency time nor restriction on the data transfer rate, and therefore the response time is favorably short. Accordingly, it is important to enhance the probability of a read-hit occurring. For this purpose, an operation which is known as preloading is generally carried out. In preloading, when a disk is accessed due to an occurrence of a read-miss, data stored on a track including the requested data and data on the following several tracks are pre-loaded into the cache memory. This measure is taken on the basis of the statistical fact that there is a strong probability that data which is in the vicinity of data which has once been accessed will be accessed in the near future. 
     However, during preloading, the DKC and DKU which are involved therein are kept connected with each other, which means that this DKC cannot respond for another service request. In a store-in type cache memory, the same problem arises also when the contents of a certain block in the cache memory are transferred to a disk for swapping. The time required for data transfer in such cases is desired to be as short as possible. 
     Generally speaking, it may be obvious that the time required for data transfer is shortened by effecting data transfer for a plurality of tracks in parallel. Japanese Pat. Laid-Open No. 108915/1980 discloses one type of mechanism in which the time required for reading and writing data is shortened by carrying out data transfer for a plurality of tracks in parallel. However, this mechanism is arranged such that a plurality of bits which constitute each character are written and read in parallel by means of a plurality of heads, which means that this mechanism cannot be employed to transfer independent data on different tracks. It is general practice to adopt the variable length recording system for magnetic disks. In this system, data on different tracks are respectively made up of records having different lengths, and each record has a specific field for storing data which indicates the length of the record. Further, if the recording surface has any defect, the data which is written therein is kept away from the defect. The position of such defects usually differs from track to track. Therefore, the reading and writing of this type of data requires a considerably complicated control, and such a control is generally carried out by a processor in a DKC. Accordingly, if parallel data transfer for a plurality of tracks is implemented in a straight forward manner, it is necessary to provide as many processors as the number of tracks which are handled in parallel. 
     SUMMARY OF THE INVENTION 
     It is an object of the present invention to provide a transfer control apparatus which is capable of effecting simultaneous data transfer for a plurality of independent tracks between a rotary storage device and another storage device by means of a reduced amount of hardware. 
     It is another object of the present invention to provide a transfer control apparatus of the type described above which is suitable for preloading data from a rotary storage device to a cache memory associated therewith. 
     To transfer data for the whole track, identification of individual records or fields is not necessarily needed. Such identification can be made when it is actually needed. According to the present invention, there are provided circuits for carrying out data transfer without regard to data format, that is, without effecting any control concerning the structures of records on tracks and fields in individual records. There are provided at least as many such transfer circuits as the desired number of tracks for which simultaneous data transfer is to be effected, and these circuits are arranged to operate concurrently with and independently of each other. Since the structure of such transfer circuits is relatively simple, it is possible to realize simultaneous data transfer for a plurality of independent tracks by means of a reduced amount of hardware. As a result, the improvement in system performance by adoption of the simultaneous data transfer mechanism can be achieved at a reduced cost. 
     The above and other objects, features and advantages of the present invention will become clear from the following description taken in conjunction with the accompanying drawings. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram of one example of a disk cache subsystem to which the present invention may be applied; 
     FIG. 2 is a block diagram of one embodiment of the present invention. 
     FIGS. 3(a) and 3(b) depict views for illustrating the handling of track format in the embodiment shown in FIG. 2; and 
     FIG. 4 is a block diagram showing in more detail one of the defect skip control circuits in the arrangement illustrated in FIG. 2. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     FIG. 2 shows a transfer control circuit in accordance with one embodiment of the present invention which is adapted for simultaneously preloading data stored on M tracks. A DKC 201 is connected to a cache memory 221 through a cache interface 211 and further connected to a DKU 261 through a device interface 251. In the DKU 261, a spindle 271 supports and rotates a plurality of magnetic disks 281a to 281p. M read/write heads (#1 to #M) 291a to 291m are provided in opposing relation to the recording surfaces of these magnetic disks 281a to 281p, the read/write heads being moved together in one unit by a known head driving mechanism (not shown) and positioned at a designated cylinder position. 
     Signal lines which are connected to the heads 291a to 291m together constitute the device interface 251 and are respectively connected to M read/write control circuits (#1 to #M) 241 within the DKC 201. Each of the read/write control circuits 241 effects signal processings such as modulation, demodulation and serial-parallel conversion, the control circuits 241 being the same as the corresponding circuits in conventional magnetic disk systems. The read/write control circuits 241 are respectively connected to M defect skip control circuits (#1 to #M) 231. These defect skip control circuits 231 operate to skip over defect regions of tracks and will be described later in detail. The defect skip control circuits 231 are connected to the cache memory 221 through the cache interface 211. 
     In the cache memory 221, the cache interface 211 is logically connected to M areas (#1 to #M) designated as preload destinations through an access control mechanism (not shown). Each of the areas has at least a capacity which is equal to the total capacity of a user area on one track. By means of the above-described arrangement, M independent data transfer paths which extend from the M heads to the cache memory are formed, and it is possible to simultaneously preload data from the M tracks. 
     In general, data is recorded on a magnetic disk according to the variable length recording system, and several defects per track are allowed. Accordingly, the disposition of records and fields on the track differs widely from track to track. FIG. 3(a) shows one example of track format. An index marker 301 indicates the start and end point of a track. In a home address (HA) 321 are stored a cylinder number and a head number as data for identifying this track, together with defect locations, that is, the distances from the index marker 301 to defect sections. In the illustrated example, three defects 311, 312 and 313 are present. A predetermined length of section around each defect is used neither for recording significant data nor as a significant gap (e.g., IRG). Various fields are recorded subsequently to the HA 321 in the following sequence with a predetermined gap provided between each pair of adjacent field namely, a count fields 331 and a data field 332 which define a record #0; a count field 341, key fields 342 and 343 separated from each other due to the existence of the defect 311, and a data field 344, which define a record #1; a count field 351 and a data field 352 shifted due to the existence of the defect 312, which define a record #2; and a count field 361, and data fields 362 and 363 separated from each other due to the existence of the defect 313, which define a record #3. In each count (C) field are recorded the cylinder number, the head number and the defect locations, together with the record number of the record concerned, the length of its key (K) field and the length of its data (D) field. An area 381 from the top of th record #0 to the index marker 301 defines a so-called user area which can be utilized for recording data. 
     In normal reading and writing operations, a control concerning data format is effected using the key length, data length and defect location for each record. For instance, in a reading operation, the identification of each record, identification of each field in a record and skipping over the defect sections are carried out using the contents of the HA 321 and the contents of the C field in each record. Such control is considerably complicated and effected by a control processor provided in the DKC. If data were simultaneously read out from M independent tracks according to the above-described system, it would be necessary to provide M control processors. 
     In this embodiment, a control concerning data format, such as that described above, is omitted for preloading. More specifically, as shown in FIG. 3(b), the user area 381 is not divided into individual records and individual field within each record, and the user area 381 is handled as if the whole area were constituted by a series of data fields 371 to 374 (Da to Dd) which are separated from each other by the defects 311 to 313 alone. The position and length of each of these virtual data fields Da to Dd are determined only by the positions of the defects 311 to 313 and are independent of the position and length of each individual record and the position and length of each indifidual field in a record. The position of each defect is recorded in the HA 321. Accordingly, in a reading operation for preloading, only the skipping over of defect sections according to the contents of the HA 321 is carried out by each of the defect skip control circuits 231 (see FIG. 1). 
     FIG. 4 shows one example of the defect skip control circuits 231. A detector and extractor circuit 401 checks a raw pulse train 413 supplied from the associated read/write control circuit 241 to detect the index aarker 301 and then extracts the HA 321. The defect position data (e.g., DL 1 , DL 2 , DL 3 , etc. corresponding to the defects 311, 312, 313, etc.) exrracted from the HA are stored in a register group 402. A register select circuit 403 successively selects registers R 1 , R 2 , R 3  and so on for successive operations of writing those defect position data. When all the defect position data have been stored, the register select circuit 403 selects the register R 1  for reading. The defect position data indicate the respective start positions of the defect sections. A counter 404 is reset when the index marker 301 is detected, and then counts the number of clock pulses. 
     A comparator 405 makes a comparison between the contents (the first defect position DL 1 ) of the register R 1  first selected by the register select circuit 403 and the count of the counter 404. When coincidence therebetween is detected, the comparator 405 generates a coincidence signal 411. The signal 411 activates a pulse generator 406 to generate a pulse 412 with a duration corresponding to the length of the defect section on the track, the pulse 412 inhibiting a gate 407. The gate 407 normally allows the raw pulse train 413 to pass therethrough so as to be supplied to the cache interface 211, but when supplied with the pulse 412, the gate 407 inhibits the passage of the raw pulse train 413. The coincidence signal 411 is further used to control the register select circuit 403 so as to select the next register (the register R 2  holding the second defect position data DL 2 , at this time) for reading. In this way, raw pulses within each defect section are skipped, and the virtual data regions Da to Dd shown in FIG. 3(b) are continuously written into the cache memory 221. 
     The data thus written into the cache memory 221 includes not only count fields, key fields and data fields but also error correction codes and gap regions. Error correction by means of error correction codes and gap elimination may be effected by the DKC 201 on receipt of each data request form the CPU. 
     In the above-described embodiment, the defect skip control circuits 231 and the read/write control circuits 241 are provided for all of the existing M heads, thereby allowing the simultaneous preloading of data from M tracks. However, in a system designed to preload data from a smaller number of tracks, it suffices to provide as many defect skip control circuits 231 and read/write control circuits 241 as the designed number of tracks from which preloading is to be effected, and arrange these circuits so as to be selectively connected to any series of heads by a switching circuit. 
     The defect skip control circuits 231 fo skipping defect sections are provided to cope with disturbance of timing control caused by noise which may be generated in defect sections. Accordingly, if such disturbance problem is overcome, the defect skip control circuits 231 may be omitted. 
     Further, in a store-in type disk cache subsystem, it is advantageous to apply the present invention also to data transfer from a cache memory to a disk. For this purpose, each defect skip control circuit 231 is provided with a mechanism which is similar to that shown in FIG. 4 and which inserts gaps corresponding to defect sections into data sent from the cache memory to the associated read/write control circuit. 
     To a disk system of the type in which a group of data bits are recorded on a group of tracks in parallel, such as that disclosed in the above-described Japanese Patent Laid-Open No. 108915/1980, the present invention may be applied in the form of simultaneous data transfer for a plurality of groups of tracks.