WO1991006053A1 - Multiple step data read apparatus - Google Patents

Multiple step data read apparatus Download PDF

Info

Publication number
WO1991006053A1
WO1991006053A1 PCT/US1990/005484 US9005484W WO9106053A1 WO 1991006053 A1 WO1991006053 A1 WO 1991006053A1 US 9005484 W US9005484 W US 9005484W WO 9106053 A1 WO9106053 A1 WO 9106053A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
read
processor
sectors
segment
Prior art date
Application number
PCT/US1990/005484
Other languages
French (fr)
Inventor
Jay Stuart Belsan
Charles Allen Milligan
Original Assignee
Storage Technology Corporation
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 Storage Technology Corporation filed Critical Storage Technology Corporation
Priority to DE69031983T priority Critical patent/DE69031983T2/en
Priority to EP90916622A priority patent/EP0494999B1/en
Publication of WO1991006053A1 publication Critical patent/WO1991006053A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Definitions

  • This invention relates to data storage systems and, in particular, to a multistep data read apparatus that is used in a rotating media data storage system to improve the data transfer performance of the data storage system.
  • a processor is typically connected by a channel interface unit to a plurality of data channels.
  • Each data channel is connected to one or more Direct Access storage Device (DASD) units which function to store large quantities of data.
  • DASD unit includes a control unit for interfacing with the data channel that typically carries eight bit parallel data in a byte serial decoded input/output record format. The control unit performs a data management function to maintain records of the location of all the data stored in the DASD unit.
  • DASD Direct Access storage Device
  • the DASD unit includes rotating data storage media consisting of a plurality of disks, each of which has associated therewith one or more moveable read/write heads.
  • the data is stored on the rotating media in a track format that consists of a plurality of concentric rings of data.
  • a control module is also included at the head of a string of disk drive units and connected to the control unit to convert between the eight bit parallel data format of the data channel and the bit serial data format of the rotating media.
  • the control module controls data formatting and error correction code generation.
  • the control module is connected by way of a bus to a plurality of read/write heads attached to an actuator, each of which serves to read and write data on an associated disk of the rotating media.
  • the processor transmits a seek request, through the channel interface unit and an available data channel, to the DASD control unit associated with the rotating media on which the requested data is stored.
  • the processor upon completion of the transmission of the seek request, returns to processing other tasks.
  • the DASD control unit responds to the seek request by determining the physical location of the requested data on the plurality of disks.
  • the control unit transmits information to the associated control module identifying the physical location and size of the data in order to retrieve the requested data from one of the disks of the rotating media.
  • the actuator associated with the identified disk of the rotating media on which the requested data is stored must wait until the rotating media rotates a sufficient distance to present the beginning of the requested data underneath the read/write head associated with the actuator.
  • the control module requests the control unit to obtain a data communication path to the processor in order to transmit the retrieved data from the rotating media directly to the processor over this data communication path. If a data communication path to the processor is not available, the control module must wait for one entire revolution of the rotating media before the media is again in the position where the requested data is a sufficient distance away from the read/write head to establish a data communication path to the processor.
  • This read/write head buffer retrieves all or a portion of the track that contains the requested data in multiple steps so that not only is that portion of the track desired for caching purposes staged into cache in the minimum time possible, but also the target data record is available to satisfy the host request in the minimum time possible.
  • the multiple step data read apparatus responds to a request to read data that spans a plurality of track sectors by retrieving the data in one, two, or three data fragments.
  • Each data fragment transfer to the control unit is initiated a predetermined time before the end of the fragment of data such that the read/write head reaches the end of the fragment the same time that the last sector of the fragment is transmitted to the control unit.
  • the data is fragmented such that the data transferred into the read/write head buffer first is transmitted to the control unit first whether or not that data is at the beginning of the data requested by the control unit.
  • the data is further fragmented such that critical portions of the data are available to the control unit to satisfy the host request as soon as the data is read from the device. This fragmenting results in the data becoming available to the control unit in the minimum time possible and the performance of the subsystem being the maximum possible.
  • the data sectors in the track read by the read/write head are stored in the read/write head buffer in two, seven run length limited (RLL) self clocking code format with the error correction code bits appended to each data sector.
  • the read/write head buffer does not process the data read from the rotating media but instead stores this data for subsequent defor atting and processing by the control module.
  • the read/write head buffer includes a phase locked loop to maintain signal clocking independent of the control module.
  • the error correction codes written on the rotating media to protect the integrity of the requested data sectors are maintained since they are stored in the read/write head buffer along with the data sectors.
  • the control module receives the image that was stored on the rotating media from the read/write head buffer and can deformat this data from the bit serial, two, seven run length limited self clocking coding with error correction characters format of this data to the eight bit parallel data that is in an input/output record format for use by the control unit.
  • the control unit stores the decoded error checked data and transmits the requested data record to the processor over the available data channel.
  • Figure 1 illustrates the overall architecture of the multiple step data read apparatus as placed in a data processing environment
  • Figure 2 illustrates additional circuit details of the read/write head buffer
  • FIG. 3 illustrates the format of the data storage track
  • Figure 4 illustrates the timing of a data read operation
  • FIGS 5-7 illustrate, in flow diagram form, the method of fragmenting the requested data record.
  • a processor In computer systems, a processor is typically connected by a channel interface unit to a plurality of data channels. Each data channel is connected to one or more Direct Access Storage Device (DASD) units which function to store large quantities of data. These DASD units typically use rotating data storage media comprised of either optical disks or magnetic disks to store data records thereon.
  • DASD Direct Access Storage Device
  • a typical DASD unit is the 3370-type disk drive unit that uses magnetically readable/writable disks as the data storage media.
  • Each of these 3370-type DASD units includes a control unit for interfacing with a data channel to the processor that typically carries eight bit parallel data in a byte serial decoded input/output record format.
  • the control unit performs a data management function to maintain records of the physical location of all the data stored on the DASD unit.
  • the DASD unit includes rotating data storage media typically consisting of a plurality of magnetically readable/writable disks, each of which has associated therewith one or more moveable read/write heads.
  • the data is stored on the rotating media in a track format that consists of a plurality of concentric rings of data.
  • a control module is also included at the head of a string of disk drive units and connected to the control unit to convert between the eight bit parallel data format of the data channel and the bit serial data format of the rotating media.
  • the control module controls data formatting and error correction code generation.
  • the control module is connected by way of a bus to a plurality of read/write heads attached to an actuator, each of which serves to read and write data on an associated disk of the rotating media.
  • the processor transmits a seek request, through the channel interface unit and an available data channel, to the DASD control unit associated with the rotating media on which the requested data is stored.
  • the processor upon completion of the transmission of the seek request, returns to processing other tasks.
  • the DASD control unit responds to the seek request by determining the physical location of the requested data on the plurality of disks.
  • the control unit transmits information to the associated control module identifying the physical location and size of the data in order to retrieve the requested data from one of the disks of the rotating media.
  • the actuator associated with the identified disk of the rotating media on which the requested data is stored must wait until the rotating media rotates a sufficient distance to present the beginning of the requested data underneath the read/write head associated with the actuator.
  • the control module requests the control unit to obtain a data communication path to the processor in order to transmit the retrieved data from the rotating media directly to the processor over this data communication path. If a data communication path to the processor is not available, the control module must wait for one entire revolution of the rotating media before the media is again in the position where the requested data is a sufficient distance away from the read/write head to establish a data communication path to the processor. This process is repeated until a data communication path to the processor is available and the data, as read by the read/write head, can be transmitted directly via the control module and control unit and an available data channel to the processor. It is obvious that there can be numerous delays in this data storage system while data communication paths are established. In a transaction based system where there are a multitude of random data seeks, such delays can unnecessarily tie up actuators in the disk drive unit and significantly increase the system response time.
  • the multiple step data read apparatus improves data transfer performance in a rotating media data storage system by using a combination of a cache memory in the control unit and a multiple step data read apparatus at the read/write head that is also independent of the control module, control unit and the availability of the data communication path from the control unit to the processor. This is accomplished by providing a buffer memory for each read/write head in the rotating media data storage system that stores the plurality of data sectors that make up the entire track of data that includes the requested data.
  • This read/write head buffer retrieves all or a portion of the track that contains the requested data record in multiple steps so that not only is the portion of the track desired for caching purposes staged into cache in the minimum time possible but the target data record is available to satisfy the host request in the minimum time possible.
  • the multiple step data read apparatus responds to a request to read data that spans a plurality of track sectors by retrieving the data in one, two, or three data fragments.
  • Each data fragment transfer to the control unit is initiated a predetermined time before the end of the fragment of data such that the read/write head reaches the end of the fragment the same time that the last sector of the fragment is transmitted to the control unit.
  • the data is fragmented such that the data transferred into the read/write head buffer first is transmitted to the control unit first whether or not that data is at the beginning of the data requested by the control unit.
  • the data is further fragmented such that critical portions of the data are available to the control unit to satisfy the host request as soon as the data is read from the device. This fragmenting results in the data becoming available to the control unit in the minimum time possible and the performance of the subsystem being the maximum possible.
  • the data sectors in the track read by the read/write head are stored in the read/write head buffer in run length limited self clocking code format (such as 2, 7 coding) with the error correction code bits appended to each data sector.
  • the read/write head buffer does not process the track image read from the rotating media but instead temporarily stores this track image for subsequent deformatting and processing by the control module.
  • the read/write head buffer includes a phase locked loop to maintain signal clocking independent of the control module.
  • the error correction codes written on the rotating media to protect the integrity of the requested data sectors are maintained since they are stored in the read/write head buffer along with the data record.
  • the control module receives the image that was stored on the rotating media from the read/write head buffer and can deformat this data from the bit serial, run length limited self clocking (ex. two, seven) coding with error correction characters format of this data to the eight bit parallel data that is in an input/output record format for use by the control unit.
  • the control unit stores the decoded error checked data record and transmits the requested data record to the processor over the available data channel.
  • Figure 1 illustrates the overall architecture of a data processing system that is equipped with an associated data storage system that includes a plurality of memory devices, one of which is illustrated in Figure 1 in the form of a conventional 3370-type of disk drive unit 120.
  • Processor 100 is connected via bus 101 to a channel interface unit 102 that serves to interconnect processor 100 with a plurality of data channels 103-1 to 103-n, each of which is an eight bit parallel data bus. Connected to one of these data channels 103-1 is the disk drive unit 120 mentioned above.
  • Disk drive unit 120 includes a control unit 104 that functions to provide overall management of the disk drive unit 120.
  • This management function includes storing information that identifies the exact physical location of all data stored on the rotating media 111-0 to 111-15 of disk drive unit 120.
  • Processor 100 identifies a data record by volume identification and address. While this information provides a general physical location of the data, the exact storage location on the rotating media 111-0 to 111-15 requires additional specificity.
  • Control unit 104 provides this additional specific information by converting the volume and address information received from the processor into head, actuator, track and sector identification information to precisely define the physical location of the requested data on disk drive unit 120.
  • the control unit 104 also contains a cache memory, a random access electronic storage used to retain frequently used data for faster access by the channel. Algorithms running in the control unit 104 predicts which data the host will access so that data can be stored in the cache.
  • the control unit 104 transfers data between data channel 103-1 and one or more control modules (ex. 106) in an eight bit parallel data format wherein each eight bits of data comprise one of a series of bits of the data in a decoded input/output record format.
  • the data in this format is converted by control module 106 into a bit serial format wherein error correction code characters are appended thereto for error detection and control purposes.
  • the resultant data is then encoded into two, seven code.
  • the control module 106 responds to the control signals transmitted by control unit 104 identifying the head, actuator, track and sector for storing a data record by selecting one of the actuators 110-0 to 110-15 that are used by disk drive unit 120 to read/write data on the rotating media 111-0 to 111-15. While sixteen actuators are illustrated herein, it is expected that future devices may be equipped with 32 or more actuators.
  • the actuators include the read/write head and signal control circuitry for reading and writing the data on the rotating media 111-0 to 111-15.
  • the above-described conventional disk drive unit 120 of Figure 1 is also equipped with a plurality of read/write head buffers 108-0 to 108-15 on a one per read/write head basis.
  • the read/write head buffer 108-0 for example, is interposed between bus 107 and read/write head 110-0.
  • the exact physical implementation of this read/write head buffer can also be a single memory connected to bus 107 and partitioned into segments, one segment for each read/write head 108 in disk drive unit 120.
  • Read/write head buffer 108-0 serves to temporarily store the entire data track image captured by the read/write head 110-0.
  • Figure 2 illustrates additional detail of read/write head buffer 108-0.
  • Data is read in analog form by read/write circuit 201 of read/write head 110- 0 and converted into a digital signal that is typically self clocked.
  • the digital data signal is transmitted by read/write circuit 201 on lead 202 to read/write head buffer 108-0 where it is applied to phase locked loop 203 and ID sync detect circuit 214.
  • the ID sync detect circuit 214 monitors the digital data signal to identify the presence of an ID sync burst that appears in the beginning of each data sector stored on the media 111-0.
  • the phase locked loop 203 is activated to separate the data from the clock in the digital data signal and applies the data via lead 215 and the clock via lead 204 to shift register 205.
  • the synchronization signal also enables phase locked loop 203 to attain frequency lock with the data in the data sector.
  • the clock and data signals on leads 204 and 215 enable shift register 205 to receive the serial bits of data and store these data bits in its memory. Each 16 bit byte of 2, 7 encoded data that is stored in shift register 205 is transmitted over bus 206 in parallel form to buffer 207.
  • the addressing of buffer 207 is accomplished by the use of the disk drive servo 208 which identifies the sector count of the rotating media in well-known fashion and outputs this information on lead 210 to control logic 211.
  • the sector count is converted by control logic 211 to a pointer value that is output on lead 212 to address buffer 207.
  • the clock signal from phase locked loop 203 is used to maintain clock timing synchronization to load data into buffer 207.
  • the digital data signal that is read from the rotating media 111-0 is maintained in the proper clocking synchronization by the use of phase locked loop 203 so that the data stored via shift register 205 in buffer 207 accurately represents the data stored on the track of the rotating media 111-0.
  • Control module 106 resynchronizes the data obtained from read/write head buffer 108-0, therefore any data storage errors occasioned by read/write head buffer 108-0 due to defects in the rotating media 111-0 are easily corrected by control module 106 by use of its own internal phase locked loop and error correction circuitry. Maintenance of the error correction codes through read/write head buffer 108-0 minimizes the possibility of an error occurring in the data transfer process.
  • the format of a typical data storage track is illustrated in Table 1 and Figure 3. This format is the standard Fixed Block Architecture (FBA) well known in the field of data storage systems.
  • the data storage track consists of a plurality of data sectors (Sector 0, Sector 1, ...Sector N) that are concatenated together to form a continuous string of data.
  • Each data sector (ex. Sector 1) contains a fixed amount (ex. 512 bytes) of the actual data, to which has been prepended an ID field and a data synchrpnization field.
  • the ID and data synchronization fields are separated from each other by a gap field of predetermined length.
  • the gap field contains a predetermined sequence of Is and 0s indicative of a particular gap field.
  • ID sync burst that typically is used by the control module 106 to locate the beginning of the data field.
  • the ID sync burst is located a predetermined distance (number of bits) in advance of the data field in the data sector (Sector 1) .
  • a 518-Byte Sector is defined as containing the following fields:
  • a 2054-Byte Sector is defined as above, except for a 2048-Byte Data Field.
  • Control module 106 in response to a data retrieval request from processor 100, as translated into a head/actuator/track/sector identifier by control unit 104, monitors the data read by the designated read/write head from the selected data storage track. Control module 106 senses the fields in each data sector.
  • the timing of a typical data read operation is illustrated in schematic form in Figure 4.
  • Item 400 is an illustration of the physical track of the data storage media.
  • the track 400 of the data storage media is divided up into a plurality of segments (Sector 0 ... Sector 7) .
  • a first segment consisting of two sectors (Sector 0, Sector 1) represents an area of the physical track 400 that contains either no data or data that has been determined by the caching algorithms running in the control unit 104 to be undesirable for caching purposes.
  • the second segment of the physical track 400 consisting of Sector 2 - Sector 6 represents the portion of the track desirable for caching purposes.
  • Physical track 400 also includes a third segment that consists of Sector 7 that represents further data that is undesirable
  • a typical data read operation is initiated by the processor 100 as described above. It is not uncommon for the data read request to be received by the control module 106 while the read/write head 110-0 associated with the track on the data storage media that contains the requested data is located within the extent of the requested data. On Figure 4, this location would be a position within Sectors 2-6 on physical track 400.
  • the data read request received by control module 106 from the processor 100 identifies the sectors (2-6) of the physical track 400 that have been requested.
  • Sector Interrupt Pointer SIP
  • SIP Sector Interrupt Pointer
  • the SIP can be identified for example by inserting the starting (3) and ending (4) sector numbers of the SIP range as parameters in the command pa ⁇ ket received by control module 106 from the processor 100.
  • the multiple step data read apparatus of the present invention includes control software in control module 106 that retrieves the requested data (Sectors 2-6) in a multiple step process which eliminates the time delay of the prior art systems.
  • the multiple step data read apparatus is activated by the data record read request from processor 100.
  • the control unit 104 determines that the requested data record is not contained in cache.
  • the caching algorithms running in the control unit 104 then determine what portion of the track containing the requested data is desirable to retain in cache. In this example, the desirable portion of the track is sectors 2 through 6 and the requested data is contained in sectors 3 and 4.
  • control unit 104 produces a read data request containing this information.
  • control module 106 activates read/write head 110-0 upon the receipt of the read data request to begin reading the requested data (Sectors 2-6) as soon as the next physical sector boundary (orientation sector) of the requested data (Sectors 2-6) stored on the physical track 400 is detected as located under read/write head 110-0.
  • the sector boundaries represent an identifiable index point for initiating and terminating data read operations.
  • control module 106 enables the associated read/write head buffer 108-0 to store the portion of the track image of the data storage track 400 that contains the requested data (Sectors 2-6) .
  • Control module 106 considers the orientation of the read/write head 110-0 and determines how the requested data should be fragmented in order to transfer the SIP data in the minimum time possible. The optimum fragmentation is determined from an algorithm known to both the control module 106 and the control unit 104. Control module 106 then communicates to control unit 104 its position with regard to the track 400 so the control unit 104 can determine what data will be sent in each data transfer fragment.
  • a number of examples are provided to demonstrate the algorithm that is illustrated in flow diagram form in Figures 5 and 6.
  • the left-most column, labeled "First Sector Read”, is an indication of the first sector on that data storage track 400 that read/write head 110-0 encounters subsequent to the initiation of the read data request.
  • the right ⁇ most column, labeled "Sector Groups Transmitted” is an indication of the sectors on the data storage track 400 that are transmitted in each Packet to processor 100.
  • the data read operation is initiated when the read/write head 110-0 is positioned over a section of the data storage track 400 outside of the bounds of the requested data (Sectors 2-6) (step 501) .
  • the control module determines whether there is a sector Interrupt Pointer (502) and if so whether the SIP data is at the end of the data record (503) . If the SIP data is at the end of the data record, (503) the data retrieval operation then proceeds to transmit the data record in a single fragment (504) .
  • the SIP data is not at the end of the data record so the data record is fragmented into a first fragment consisting of the data sectors from the beginning of the requested data to the end of the SIP data (505) .
  • a second fragment is then created consisting of the data from the sector past the end of the SIP data to the end of the requested data (506) .
  • the first fragment is transmitted to the processor in a packet (Packet 1) containing Sectors 2-4. Even though Sectors 5-6 could be included in the first fragment, it is transmitted without Sectors 5-6 so as not to delay the transmission of SIP sectors to the processor.
  • the second fragment is then transmitted to the processor in a packet (Packet 2) consisting of Sectors 5-6.
  • the second example on Figure 4 is illustrative of a multiple step data read operation.
  • the read sector request is initiated by control unit 104 and the next sector encountered (orientation sector) by read/write head 110-0 is Sector 3, which is the first sector in the SIP (step 511) .
  • the read/write head 110-0 reads Sectors 3, 4 and since this is the end of the SIP Range, these two sectors are immediately transmitted (step 512) to control unit 104 and subsequently to processor 100 as Packet 1. Although more sectors can be included in Packet 1, the delay occasioned by reading these sectors delays the transmission of the SIP sectors to processor 100.
  • the second packet, Packet 2 includes the remainder (Sectors 5, 6) of the requested data (Sectors 2-6) .
  • the orientation sector falls within the SIP data.
  • the control module 106 determines at step 507 whether there is a Sector Interrupt Pointer. If not, at step 521 a first fragment, consisting of the data from the orientation sector to the end of the requested data, is transmitted to the processor. Once the disk rotation brings the beginning of the data record under read/write head 110-0, the control module 106 at step 522 transmits the second fragment, consisting of the data from the beginning of the requested data to the orientation sector, to the processor. If there is a SIP and the SIP data is determined to be at the end of the data record (step 508) , the requested data is divided into two fragments.
  • a first fragment consisting of the data from the orientation sector to the end of the requested data, is transmitted to the processor at step 509.
  • Control module 106 at step 516 creates a first fragment, consisting of the data from the orientation sector to the end of the requested data (Sectors 4-6) , and transmits this first fragment to the processor in a packet (Packet 1) .
  • the orientation sector lies past the SIP (yes condition at step 515) .
  • control module 106 at step 518 creates a first fragment, consisting of the data from the orientation sector to the end of the requested data (Sectors 5-6 or 6) , and transmits this first segment to the processor in a packet (Packet 1) .
  • a second fragment consisting of the data from the beginning of the requested data to the end of the SIP data (Sectors 2-4) , is transmitted at step 519 to the processor in a packet (Packet 2) .
  • control module 106 creates a third fragment (Sector 5) at step 520 and transmits this data to the processor in a packet (Packet 3) .
  • the method for communicating the fragmentation information from the disk drive unit 120 to the control unit 104 is based on the disk drive unit 120 and the control unit 104 sharing the same fragmentation algorithm.
  • the disk drive unit 120 When the disk drive unit 120 has oriented to a sector, the disk drive unit 120 sends a status packet to the control unit 104 containing the number of the orientation sector.
  • the orientation sector is the first sector that the disk drive unit 120 is capable of transferring to the control unit 104. Since the fragmentation algorithm is known to both the control unit 104 and the disk drive unit 120, the data that is contained in each fragment can be calculated based on the identification of the orientation sector.
  • the fragmentation algorithm is as follows:
  • Second fragment is from the sector past the SIP data to the end of the data.
  • First fragment is from the orientation sector to the end of the data.
  • Second fragment is from the beginning of the data to the sector before the orientation sector.
  • First fragment is from the orientation sector to the end of the SIP data.
  • Second fragment is from the sector past the SIP data to the end of the data.
  • First fragment is from the orientation sector to the end of the data.
  • Second fragment is from the beginning of the data to the sector before the orientation sector.
  • Else orientation sector is sector past SIP
  • First fragment is from the orientation sector to the end of the data.
  • Second fragment is from the beginning of the data to the end of the SIP data.
  • Third fragment is from the sector past the SIP data to the sector before the orientation sector. Endif
  • First fragment is from the orientation sector to the end of the data.
  • Second fragment is from the beginning of the data to the sector before the orientation sector.
  • control module 106 signals control unit 104 to request a data communication path to processor 100 via one of the data channels 103-1 to 103-n.
  • the timing of this request such that data transferred from read/write, head buffer 108-0 is completed at exactly the same point in time as read/write head 110-0 reads the end of the fragment of data.
  • the timing of the data transfer to processor 100 can be calculated as: data length multiplied by read/write head transfer rate divided by data channel transfer rate.
  • the time differential is calculated using the above formula to designate the time at which the data transfer to processor 100 is initiated.
  • the second step in the data read operation takes place once the data storage media rotates such that read/write head 110-0 traverses the first segment (Sectors 0, 1) of the data storage track 400.
  • Control module' 106 activates the read/write head 110-0 to read the beginning portion (Sectors 2-3) of the requested data (Sectors 2-6) from the start (Sector 2) of the requested data (Sectors 2-6) to the beginning of the first segment (Sectors 4-6) read during the first step of the data read operation.
  • the control module 106 initiates a data transfer to processor 100 at a point in time preceding the end of the data read operation a sufficient time such that the data transfer to processor 100 is completed at exactly the same time as the data read operation from the rotating media is completed.
  • the length of time in advance of the completion of the data read operation that this data transfer to processor 100 is initiated is calculated using the same formula as was used for the first step of this process.
  • the requested data can be read in a single step process again making use of the anticipatory data transfer as described for the multi-step data transfer operation (First example of Figure 4) .

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Communication Control (AREA)
  • Sewing Machines And Sewing (AREA)
  • Traffic Control Systems (AREA)

Abstract

The multiple step data read apparatus provides a buffer memory (108-0) for each read/write head (110-0) in the rotating media (111-0) data storage system that can store up to the entire track (400) of data that includes the requested data (Sectors 2-6). The data is fragmented such that the data transferred into the read/write head buffer (207) first is transmitted to the control unit (104) first whether or not that data is at the beginning of the data requested by the control unit (104). The data is further fragmented such that critical portions of the data are available to the control unit (104) to satisfy the host request as soon as the data is read from the device. This fragmenting results in the data becoming available to the control unit (104) in the mininum time possible and the performance of the subsystem (120) being the maximum possible. In addition each data fragment transfer to the control unit (104) is initiated a predetermined time before the end of the fragment of data such that the read/write head (110-0) reaches the end of the fragment the same time that the last sector of the fragment is transmitted to the control unit (104).

Description

MULTIPLE STEP DATA READ APPARATUS
FIELD OF THE INVENTION
This invention relates to data storage systems and, in particular, to a multistep data read apparatus that is used in a rotating media data storage system to improve the data transfer performance of the data storage system.
PROBLEM
It is a problem in the field of data storage systems to minimize the data retrieval time when reading a data record from a data storage system. In disk drive memory systems for example, a processor is typically connected by a channel interface unit to a plurality of data channels. Each data channel is connected to one or more Direct Access storage Device (DASD) units which function to store large quantities of data. Each DASD unit includes a control unit for interfacing with the data channel that typically carries eight bit parallel data in a byte serial decoded input/output record format. The control unit performs a data management function to maintain records of the location of all the data stored in the DASD unit. The DASD unit includes rotating data storage media consisting of a plurality of disks, each of which has associated therewith one or more moveable read/write heads. The data is stored on the rotating media in a track format that consists of a plurality of concentric rings of data. A control module is also included at the head of a string of disk drive units and connected to the control unit to convert between the eight bit parallel data format of the data channel and the bit serial data format of the rotating media. In addition, the control module controls data formatting and error correction code generation. The control module is connected by way of a bus to a plurality of read/write heads attached to an actuator, each of which serves to read and write data on an associated disk of the rotating media.
In a data read operation, the processor transmits a seek request, through the channel interface unit and an available data channel, to the DASD control unit associated with the rotating media on which the requested data is stored. The processor, upon completion of the transmission of the seek request, returns to processing other tasks. The DASD control unit responds to the seek request by determining the physical location of the requested data on the plurality of disks. The control unit transmits information to the associated control module identifying the physical location and size of the data in order to retrieve the requested data from one of the disks of the rotating media. Since the data is stored in a track format on a rotating media, the actuator associated with the identified disk of the rotating media on which the requested data is stored must wait until the rotating media rotates a sufficient distance to present the beginning of the requested data underneath the read/write head associated with the actuator. A predetermined time before the beginning of the requested data reaches the read/write head associated with the actuator, the control module requests the control unit to obtain a data communication path to the processor in order to transmit the retrieved data from the rotating media directly to the processor over this data communication path. If a data communication path to the processor is not available, the control module must wait for one entire revolution of the rotating media before the media is again in the position where the requested data is a sufficient distance away from the read/write head to establish a data communication path to the processor. This process is repeated until a data communication path to the processor is available and the data, as read by the read/write head, can be transmitted directly via the control module and control unit and an available data channel to the processor. It is obvious that there can be numerous delays in this data storage system while data communication paths are established. In a transaction based system, where there are a multitude of random data seeks, such delays can unnecessarily tie up actuators in the disk drive unit and significantly increase the system response time.
SOLUTION
The above described problems are solved and a technical advance achieved in the field by a combination of a cache memory in the control unit and a multiple step data read apparatus that improves data transfer performance in a rotating media data storage system by using a multiple step data read apparatus at the read/write head that is also independent of the control module, control unit and the availability of the data communication path from the control unit to the processor. This is accomplished by providing a buffer memory for each read/write head in the rotating media data storage system that can store the plurality of sectors the make up the track of data that includes the requested data. This read/write head buffer retrieves all or a portion of the track that contains the requested data in multiple steps so that not only is that portion of the track desired for caching purposes staged into cache in the minimum time possible, but also the target data record is available to satisfy the host request in the minimum time possible.
The multiple step data read apparatus responds to a request to read data that spans a plurality of track sectors by retrieving the data in one, two, or three data fragments. Each data fragment transfer to the control unit is initiated a predetermined time before the end of the fragment of data such that the read/write head reaches the end of the fragment the same time that the last sector of the fragment is transmitted to the control unit. The data is fragmented such that the data transferred into the read/write head buffer first is transmitted to the control unit first whether or not that data is at the beginning of the data requested by the control unit. The data is further fragmented such that critical portions of the data are available to the control unit to satisfy the host request as soon as the data is read from the device. This fragmenting results in the data becoming available to the control unit in the minimum time possible and the performance of the subsystem being the maximum possible.
The data sectors in the track read by the read/write head are stored in the read/write head buffer in two, seven run length limited (RLL) self clocking code format with the error correction code bits appended to each data sector. The read/write head buffer does not process the data read from the rotating media but instead stores this data for subsequent defor atting and processing by the control module. The read/write head buffer includes a phase locked loop to maintain signal clocking independent of the control module. The error correction codes written on the rotating media to protect the integrity of the requested data sectors are maintained since they are stored in the read/write head buffer along with the data sectors. Thus, once a data communication path is established to the processor, the control module receives the image that was stored on the rotating media from the read/write head buffer and can deformat this data from the bit serial, two, seven run length limited self clocking coding with error correction characters format of this data to the eight bit parallel data that is in an input/output record format for use by the control unit. The control unit stores the decoded error checked data and transmits the requested data record to the processor over the available data channel. BR EF DESCRIPTION OF THE DRAWING
Figure 1 illustrates the overall architecture of the multiple step data read apparatus as placed in a data processing environment; Figure 2 illustrates additional circuit details of the read/write head buffer;
Figure 3 illustrates the format of the data storage track;
Figure 4 illustrates the timing of a data read operation; and
Figures 5-7 illustrate, in flow diagram form, the method of fragmenting the requested data record.
DETAILED DESCRIPTION
In computer systems, a processor is typically connected by a channel interface unit to a plurality of data channels. Each data channel is connected to one or more Direct Access Storage Device (DASD) units which function to store large quantities of data. These DASD units typically use rotating data storage media comprised of either optical disks or magnetic disks to store data records thereon. A typical DASD unit is the 3370-type disk drive unit that uses magnetically readable/writable disks as the data storage media. Each of these 3370-type DASD units includes a control unit for interfacing with a data channel to the processor that typically carries eight bit parallel data in a byte serial decoded input/output record format. The control unit performs a data management function to maintain records of the physical location of all the data stored on the DASD unit. The DASD unit includes rotating data storage media typically consisting of a plurality of magnetically readable/writable disks, each of which has associated therewith one or more moveable read/write heads. The data is stored on the rotating media in a track format that consists of a plurality of concentric rings of data. A control module is also included at the head of a string of disk drive units and connected to the control unit to convert between the eight bit parallel data format of the data channel and the bit serial data format of the rotating media. In addition, the control module controls data formatting and error correction code generation. The control module is connected by way of a bus to a plurality of read/write heads attached to an actuator, each of which serves to read and write data on an associated disk of the rotating media.
Traditional Data Read Operation
In a data read operation, the processor transmits a seek request, through the channel interface unit and an available data channel, to the DASD control unit associated with the rotating media on which the requested data is stored. The processor, upon completion of the transmission of the seek request, returns to processing other tasks. The DASD control unit responds to the seek request by determining the physical location of the requested data on the plurality of disks. The control unit transmits information to the associated control module identifying the physical location and size of the data in order to retrieve the requested data from one of the disks of the rotating media. Since the data is stored in a track format on a rotating media, the actuator associated with the identified disk of the rotating media on which the requested data is stored must wait until the rotating media rotates a sufficient distance to present the beginning of the requested data underneath the read/write head associated with the actuator.
A predetermined time before the beginning of the requested data reaches the read/write head associated with the actuator, the control module requests the control unit to obtain a data communication path to the processor in order to transmit the retrieved data from the rotating media directly to the processor over this data communication path. If a data communication path to the processor is not available, the control module must wait for one entire revolution of the rotating media before the media is again in the position where the requested data is a sufficient distance away from the read/write head to establish a data communication path to the processor. This process is repeated until a data communication path to the processor is available and the data, as read by the read/write head, can be transmitted directly via the control module and control unit and an available data channel to the processor. It is obvious that there can be numerous delays in this data storage system while data communication paths are established. In a transaction based system where there are a multitude of random data seeks, such delays can unnecessarily tie up actuators in the disk drive unit and significantly increase the system response time.
Multiple Step Data Read Theory of Operation
The multiple step data read apparatus improves data transfer performance in a rotating media data storage system by using a combination of a cache memory in the control unit and a multiple step data read apparatus at the read/write head that is also independent of the control module, control unit and the availability of the data communication path from the control unit to the processor. This is accomplished by providing a buffer memory for each read/write head in the rotating media data storage system that stores the plurality of data sectors that make up the entire track of data that includes the requested data. This read/write head buffer retrieves all or a portion of the track that contains the requested data record in multiple steps so that not only is the portion of the track desired for caching purposes staged into cache in the minimum time possible but the target data record is available to satisfy the host request in the minimum time possible. The multiple step data read apparatus responds to a request to read data that spans a plurality of track sectors by retrieving the data in one, two, or three data fragments. Each data fragment transfer to the control unit is initiated a predetermined time before the end of the fragment of data such that the read/write head reaches the end of the fragment the same time that the last sector of the fragment is transmitted to the control unit. The data is fragmented such that the data transferred into the read/write head buffer first is transmitted to the control unit first whether or not that data is at the beginning of the data requested by the control unit. The data is further fragmented such that critical portions of the data are available to the control unit to satisfy the host request as soon as the data is read from the device. This fragmenting results in the data becoming available to the control unit in the minimum time possible and the performance of the subsystem being the maximum possible.
The data sectors in the track read by the read/write head are stored in the read/write head buffer in run length limited self clocking code format (such as 2, 7 coding) with the error correction code bits appended to each data sector. The read/write head buffer does not process the track image read from the rotating media but instead temporarily stores this track image for subsequent deformatting and processing by the control module. The read/write head buffer includes a phase locked loop to maintain signal clocking independent of the control module. The error correction codes written on the rotating media to protect the integrity of the requested data sectors are maintained since they are stored in the read/write head buffer along with the data record. Thus, once a data communication path is established to the processor, the control module receives the image that was stored on the rotating media from the read/write head buffer and can deformat this data from the bit serial, run length limited self clocking (ex. two, seven) coding with error correction characters format of this data to the eight bit parallel data that is in an input/output record format for use by the control unit. The control unit stores the decoded error checked data record and transmits the requested data record to the processor over the available data channel.
System Architecture
Figure 1 illustrates the overall architecture of a data processing system that is equipped with an associated data storage system that includes a plurality of memory devices, one of which is illustrated in Figure 1 in the form of a conventional 3370-type of disk drive unit 120. Processor 100 is connected via bus 101 to a channel interface unit 102 that serves to interconnect processor 100 with a plurality of data channels 103-1 to 103-n, each of which is an eight bit parallel data bus. Connected to one of these data channels 103-1 is the disk drive unit 120 mentioned above.
Disk drive unit 120 includes a control unit 104 that functions to provide overall management of the disk drive unit 120. This management function includes storing information that identifies the exact physical location of all data stored on the rotating media 111-0 to 111-15 of disk drive unit 120. Processor 100 identifies a data record by volume identification and address. While this information provides a general physical location of the data, the exact storage location on the rotating media 111-0 to 111-15 requires additional specificity. Control unit 104 provides this additional specific information by converting the volume and address information received from the processor into head, actuator, track and sector identification information to precisely define the physical location of the requested data on disk drive unit 120. The control unit 104 also contains a cache memory, a random access electronic storage used to retain frequently used data for faster access by the channel. Algorithms running in the control unit 104 predicts which data the host will access so that data can be stored in the cache.
The control unit 104 transfers data between data channel 103-1 and one or more control modules (ex. 106) in an eight bit parallel data format wherein each eight bits of data comprise one of a series of bits of the data in a decoded input/output record format. The data in this format is converted by control module 106 into a bit serial format wherein error correction code characters are appended thereto for error detection and control purposes. The resultant data is then encoded into two, seven code. The control module 106 responds to the control signals transmitted by control unit 104 identifying the head, actuator, track and sector for storing a data record by selecting one of the actuators 110-0 to 110-15 that are used by disk drive unit 120 to read/write data on the rotating media 111-0 to 111-15. While sixteen actuators are illustrated herein, it is expected that future devices may be equipped with 32 or more actuators. The actuators include the read/write head and signal control circuitry for reading and writing the data on the rotating media 111-0 to 111-15.
The above-described conventional disk drive unit 120 of Figure 1 is also equipped with a plurality of read/write head buffers 108-0 to 108-15 on a one per read/write head basis. The read/write head buffer 108-0, for example, is interposed between bus 107 and read/write head 110-0. The exact physical implementation of this read/write head buffer can also be a single memory connected to bus 107 and partitioned into segments, one segment for each read/write head 108 in disk drive unit 120. Read/write head buffer 108-0 serves to temporarily store the entire data track image captured by the read/write head 110-0.
Read/Write Head Buffer Circuit
Figure 2 illustrates additional detail of read/write head buffer 108-0. Data is read in analog form by read/write circuit 201 of read/write head 110- 0 and converted into a digital signal that is typically self clocked. The digital data signal is transmitted by read/write circuit 201 on lead 202 to read/write head buffer 108-0 where it is applied to phase locked loop 203 and ID sync detect circuit 214. The ID sync detect circuit 214 monitors the digital data signal to identify the presence of an ID sync burst that appears in the beginning of each data sector stored on the media 111-0. Once ID sync detect circuit 214 verifies the presence of the ID sync burst, the phase locked loop 203 is activated to separate the data from the clock in the digital data signal and applies the data via lead 215 and the clock via lead 204 to shift register 205. The synchronization signal also enables phase locked loop 203 to attain frequency lock with the data in the data sector. The clock and data signals on leads 204 and 215 enable shift register 205 to receive the serial bits of data and store these data bits in its memory. Each 16 bit byte of 2, 7 encoded data that is stored in shift register 205 is transmitted over bus 206 in parallel form to buffer 207. The addressing of buffer 207 is accomplished by the use of the disk drive servo 208 which identifies the sector count of the rotating media in well-known fashion and outputs this information on lead 210 to control logic 211. The sector count is converted by control logic 211 to a pointer value that is output on lead 212 to address buffer 207. The clock signal from phase locked loop 203 is used to maintain clock timing synchronization to load data into buffer 207. Thus, the digital data signal that is read from the rotating media 111-0 is maintained in the proper clocking synchronization by the use of phase locked loop 203 so that the data stored via shift register 205 in buffer 207 accurately represents the data stored on the track of the rotating media 111-0. The accuracy of this data stored in buffer 207 is insured because this data along with its associated error correction code bits is stored in a two, seven code format. The image of the entire data storage track is thereby temporarily stored in buffer 207 for transmission to control module 106 via shift register 205 and bus 107. Read/write head buffer 108-0 therefore appears transparent to control module 106 in that the output of read/write head buffer 108-0 is identical to the signal output by read/write head 110- 0 except for its lack of synchronization with the rotating media 111-0. Control module 106 resynchronizes the data obtained from read/write head buffer 108-0, therefore any data storage errors occasioned by read/write head buffer 108-0 due to defects in the rotating media 111-0 are easily corrected by control module 106 by use of its own internal phase locked loop and error correction circuitry. Maintenance of the error correction codes through read/write head buffer 108-0 minimizes the possibility of an error occurring in the data transfer process.
Track Data Image
The format of a typical data storage track is illustrated in Table 1 and Figure 3. This format is the standard Fixed Block Architecture (FBA) well known in the field of data storage systems. The data storage track consists of a plurality of data sectors (Sector 0, Sector 1, ...Sector N) that are concatenated together to form a continuous string of data. Each data sector (ex. Sector 1) contains a fixed amount (ex. 512 bytes) of the actual data, to which has been prepended an ID field and a data synchrpnization field. The ID and data synchronization fields are separated from each other by a gap field of predetermined length. The gap field contains a predetermined sequence of Is and 0s indicative of a particular gap field. This enables the control module 106 to simply determine the location of the ID and data fields. Also included in the ID field is an ID sync burst that typically is used by the control module 106 to locate the beginning of the data field. The ID sync burst is located a predetermined distance (number of bits) in advance of the data field in the data sector (Sector 1) .
TABLE 1
A 518-Byte Sector is defined as containing the following fields:
Figure imgf000018_0001
A 2054-Byte Sector is defined as above, except for a 2048-Byte Data Field.
Data Record Read Operation
Control module 106, in response to a data retrieval request from processor 100, as translated into a head/actuator/track/sector identifier by control unit 104, monitors the data read by the designated read/write head from the selected data storage track. Control module 106 senses the fields in each data sector. The timing of a typical data read operation is illustrated in schematic form in Figure 4. Item 400 is an illustration of the physical track of the data storage media. The track 400 of the data storage media is divided up into a plurality of segments (Sector 0 ... Sector 7) . A first segment consisting of two sectors (Sector 0, Sector 1) represents an area of the physical track 400 that contains either no data or data that has been determined by the caching algorithms running in the control unit 104 to be undesirable for caching purposes. The second segment of the physical track 400 consisting of Sector 2 - Sector 6 represents the portion of the track desirable for caching purposes. Physical track 400 also includes a third segment that consists of Sector 7 that represents further data that is undesirable for caching purposes.
A typical data read operation is initiated by the processor 100 as described above. It is not uncommon for the data read request to be received by the control module 106 while the read/write head 110-0 associated with the track on the data storage media that contains the requested data is located within the extent of the requested data. On Figure 4, this location would be a position within Sectors 2-6 on physical track 400. The data read request received by control module 106 from the processor 100 identifies the sectors (2-6) of the physical track 400 that have been requested. In addition. Sector Interrupt Pointer (SIP) can be included in the data read request to identify one or more sectors (ex. Sectors 3, 4) within the requested data (Sectors 2-6) that are the immediate target of the processor 100 requesting the data. The SIP can be identified for example by inserting the starting (3) and ending (4) sector numbers of the SIP range as parameters in the command paσket received by control module 106 from the processor 100.
In order to illustrate the data read operation, several examples are provided on Figure 4 and an operational flowchart is provided on Figures 5 and 6. Assume for the purpose of this description, that the data read request is received from processor 100 at a point in time when read/write head 110-0 is in position over Sector 3 of the requested data (Sectors 2-6) . It is obvious from the positioning of read/write head 110-0, that in the typical data storage system, the data storage media must rotate through almost an entire revolution before the read/write head 110-0 is again at the beginning of the requested data (Sectors 2-6) . These existing data storage systems require that the requested data (Sectors 2-6) be read from the beginning of Sector 2 through to the end of the data at the end of Sector 6. It is obvious that such a requirement consumes a significant amount of time where the processor 100 must wait for the data storage media to rotate to the proper position under read/write head 110-0. The multiple step data read apparatus of the present invention includes control software in control module 106 that retrieves the requested data (Sectors 2-6) in a multiple step process which eliminates the time delay of the prior art systems. The multiple step data read apparatus is activated by the data record read request from processor 100. The control unit 104 determines that the requested data record is not contained in cache. The caching algorithms running in the control unit 104 then determine what portion of the track containing the requested data is desirable to retain in cache. In this example, the desirable portion of the track is sectors 2 through 6 and the requested data is contained in sectors 3 and 4. The control unit 104 produces a read data request containing this information. As part of this request, control module 106 activates read/write head 110-0 upon the receipt of the read data request to begin reading the requested data (Sectors 2-6) as soon as the next physical sector boundary (orientation sector) of the requested data (Sectors 2-6) stored on the physical track 400 is detected as located under read/write head 110-0. The sector boundaries represent an identifiable index point for initiating and terminating data read operations. Upon the positioning of the next physical sector boundary of the requested data (Sectors 2-6) under the read/write head 110-0, control module 106 enables the associated read/write head buffer 108-0 to store the portion of the track image of the data storage track 400 that contains the requested data (Sectors 2-6) . Control module 106 considers the orientation of the read/write head 110-0 and determines how the requested data should be fragmented in order to transfer the SIP data in the minimum time possible. The optimum fragmentation is determined from an algorithm known to both the control module 106 and the control unit 104. Control module 106 then communicates to control unit 104 its position with regard to the track 400 so the control unit 104 can determine what data will be sent in each data transfer fragment. With reference to Figure 4, a number of examples are provided to demonstrate the algorithm that is illustrated in flow diagram form in Figures 5 and 6. The left-most column, labeled "First Sector Read", is an indication of the first sector on that data storage track 400 that read/write head 110-0 encounters subsequent to the initiation of the read data request. The right¬ most column, labeled "Sector Groups Transmitted", is an indication of the sectors on the data storage track 400 that are transmitted in each Packet to processor 100.
In the first example on Figure 4, the data read operation is initiated when the read/write head 110-0 is positioned over a section of the data storage track 400 outside of the bounds of the requested data (Sectors 2-6) (step 501) . The control module then determines whether there is a sector Interrupt Pointer (502) and if so whether the SIP data is at the end of the data record (503) . If the SIP data is at the end of the data record, (503) the data retrieval operation then proceeds to transmit the data record in a single fragment (504) . However, in the illustrated case, the SIP data is not at the end of the data record so the data record is fragmented into a first fragment consisting of the data sectors from the beginning of the requested data to the end of the SIP data (505) . A second fragment is then created consisting of the data from the sector past the end of the SIP data to the end of the requested data (506) . The first fragment is transmitted to the processor in a packet (Packet 1) containing Sectors 2-4. Even though Sectors 5-6 could be included in the first fragment, it is transmitted without Sectors 5-6 so as not to delay the transmission of SIP sectors to the processor. The second fragment is then transmitted to the processor in a packet (Packet 2) consisting of Sectors 5-6.
The second example on Figure 4 is illustrative of a multiple step data read operation. The read sector request is initiated by control unit 104 and the next sector encountered (orientation sector) by read/write head 110-0 is Sector 3, which is the first sector in the SIP (step 511) . The read/write head 110-0 reads Sectors 3, 4 and since this is the end of the SIP Range, these two sectors are immediately transmitted (step 512) to control unit 104 and subsequently to processor 100 as Packet 1. Although more sectors can be included in Packet 1, the delay occasioned by reading these sectors delays the transmission of the SIP sectors to processor 100. The second packet, Packet 2, includes the remainder (Sectors 5, 6) of the requested data (Sectors 2-6) . Although there remains another sector (Sector 2) of the requested data (Sectors 2-6) yet to be read from the data storage track 400, the second packet (Packet 2) is transmitted (step 513) without Sector 2 to thereby provide control unit 104 with Sectors 5, 6 as quickly as possible. Once read/write head 110-0 is positioned over the remaining sector, Sector 2, it is read and transmitted (step 514) to control unit 104 as Packet 3, thereby completing the transmission of the requested data.
In the third example of Figure 4, the orientation sector falls within the SIP data. The control module 106 determines at step 507 whether there is a Sector Interrupt Pointer. If not, at step 521 a first fragment, consisting of the data from the orientation sector to the end of the requested data, is transmitted to the processor. Once the disk rotation brings the beginning of the data record under read/write head 110-0, the control module 106 at step 522 transmits the second fragment, consisting of the data from the beginning of the requested data to the orientation sector, to the processor. If there is a SIP and the SIP data is determined to be at the end of the data record (step 508) , the requested data is divided into two fragments. A first fragment, consisting of the data from the orientation sector to the end of the requested data, is transmitted to the processor at step 509. A second fragment, consisting of the data from the beginning of the requested data to the sector before the orientation sector, is transmitted to the processor at step 510.
However, the third example of Figure 4 is neither of these two cases and, instead, satisfies the NO condition of step 515 since the orientation sector is within the SIP, not past the SIP. Control module 106 at step 516 creates a first fragment, consisting of the data from the orientation sector to the end of the requested data (Sectors 4-6) , and transmits this first fragment to the processor in a packet (Packet 1) . A second fragment, consisting of the data from the beginning of the requested data to the sector before the orientation sector, is transmitted at step 517 to the processor in a packet (Packet 2) .
In the fourth and fifth examples of Figure 4, the orientation sector lies past the SIP (yes condition at step 515) . Then control module 106 at step 518 creates a first fragment, consisting of the data from the orientation sector to the end of the requested data (Sectors 5-6 or 6) , and transmits this first segment to the processor in a packet (Packet 1) . A second fragment, consisting of the data from the beginning of the requested data to the end of the SIP data (Sectors 2-4) , is transmitted at step 519 to the processor in a packet (Packet 2) . In the case where additional data lies between the end of the SIP data and the sector before the orientation sector, control module 106 creates a third fragment (Sector 5) at step 520 and transmits this data to the processor in a packet (Packet 3) .
Fragmentation Method
The method for communicating the fragmentation information from the disk drive unit 120 to the control unit 104 is based on the disk drive unit 120 and the control unit 104 sharing the same fragmentation algorithm. When the disk drive unit 120 has oriented to a sector, the disk drive unit 120 sends a status packet to the control unit 104 containing the number of the orientation sector. The orientation sector is the first sector that the disk drive unit 120 is capable of transferring to the control unit 104. Since the fragmentation algorithm is known to both the control unit 104 and the disk drive unit 120, the data that is contained in each fragment can be calculated based on the identification of the orientation sector.
The fragmentation algorithm is as follows:
If (orientation sector is outside the bounds of the data)
If (there is a SIP) If (SIP data is at the end of the data)
All data transferred in a single fragment. Else (SIP data is not at the end of the data) First fragment is from the beginning of the data to the end of the SIP data.
Second fragment is from the sector past the SIP data to the end of the data.
Endif Else (there is no SIP)
All data is transferred in a single frag ent. Endif
Else (orientation sector > first sector of data)
If (there is a SIP) If (SIP data is at the end of the data)
First fragment is from the orientation sector to the end of the data. Second fragment is from the beginning of the data to the sector before the orientation sector.
Else (SIP data is not at the end of the data)
If (orientation sector <■****• beginning of SIP) First fragment is from the orientation sector to the end of the SIP data.
Second fragment is from the sector past the SIP data to the end of the data.
Third fragment is from the beginning of the data to the sector before the orientation sector. Elseif (orientation sector > beginning of SIP)
First fragment is from the orientation sector to the end of the data. Second fragment is from the beginning of the data to the sector before the orientation sector. Else (orientation sector is sector past SIP)
First fragment is from the orientation sector to the end of the data.
Second fragment is from the beginning of the data to the end of the SIP data. Third fragment is from the sector past the SIP data to the sector before the orientation sector. Endif
Endif Else (there is not a SIP)
First fragment is from the orientation sector to the end of the data. Second fragment is from the beginning of the data to the sector before the orientation sector.
Endif Endif
Anticipatory Data Transmission In order to further speed the data transfer from the data storage media to processor 100, control module 106 signals control unit 104 to request a data communication path to processor 100 via one of the data channels 103-1 to 103-n. The timing of this request such that data transferred from read/write, head buffer 108-0 is completed at exactly the same point in time as read/write head 110-0 reads the end of the fragment of data. Thus, the time delay between the start of read/write head 110-0 retrieving the first sector of the fragment of data from physical track 400 and the initiation of the data transfer to processor 100 accounts for the speed differential between these two processes. The timing of the data transfer to processor 100 can be calculated as: data length multiplied by read/write head transfer rate divided by data channel transfer rate. Thus, since the data channel is faster than the read/write head in the data transfer capability, the time differential is calculated using the above formula to designate the time at which the data transfer to processor 100 is initiated.
The second step in the data read operation takes place once the data storage media rotates such that read/write head 110-0 traverses the first segment (Sectors 0, 1) of the data storage track 400. Control module' 106 activates the read/write head 110-0 to read the beginning portion (Sectors 2-3) of the requested data (Sectors 2-6) from the start (Sector 2) of the requested data (Sectors 2-6) to the beginning of the first segment (Sectors 4-6) read during the first step of the data read operation. As with the first step described above, the control module 106 initiates a data transfer to processor 100 at a point in time preceding the end of the data read operation a sufficient time such that the data transfer to processor 100 is completed at exactly the same time as the data read operation from the rotating media is completed. The length of time in advance of the completion of the data read operation that this data transfer to processor 100 is initiated is calculated using the same formula as was used for the first step of this process. Thus, by the use of a two step data read operation, the data is transferred as quickly as possible to processor 100 without processor 100 having to wait for the rotation of the data storage media to position the read/write head at the beginning of the requested data. In addition, the use of the anticipatory data transfer to processor 100 timed so that the data transfer completes simultaneously with the completion of the data read operation provides the requested data to the processor 100 in the minimum amount of time.
In the case where the data read request is received by control module 106 when the read/write head is positioned over a sector not within the requested data (Sectors 2-6) , then the requested data (Sectors 2-6) can be read in a single step process again making use of the anticipatory data transfer as described for the multi-step data transfer operation (First example of Figure 4) .
While a specific embodiment of the present invention has been disclosed, it is expected that those skilled in the art can and will devise alternate embodiments that fall within the scope of the appended claims.

Claims

I CLAIM:
1. In a data storage system (120) that reads and writes data via one or more read/write heads (110) on a plurality of tracks on a data storage media (111) , a data read apparatus for reading a requested data record from a track of said data storage media (111) to a processor (100) that requests said data comprising: buffer memory means (207) ; means (211, 213, 214) responsive to a data read request received from said processor (100) identifying a plurality of sectors of at least one of said tracks as said requested data record for detecting the first sector boundary encompassed by said requested data on said track and appearing under said read/write head (110) subsequent to said data read request; and means (201-206, 208-215) for reading a first segment of said requested data, from said first sector boundary to the end of said data, into said buffer memory means (207) .
2. The apparatus of claim 1 further including: means (104-107, 205, 206) for transmitting said first segment of said requested data stored in said buffer memory (207) to said requesting processor (100) ; and means (211, 212) responsive to said detecting means (211, 213, 214) for activating said transmitting means (104-107, 205, 206) prior to said read/write head (110) reaching said end of said requested data.
3. The apparatus of claim 2 further comprising: means (211) responsive to said processor
(100) identifying at least one of said requested sectors as the set of sectors that is the immediate target of said processor (100) for transmitting said target sectors to said processor (100) as said target sectors are read from said data storage media (111) .
4. The apparatus of claim 3 further comprising: means (502-522) responsive to said target sectors for fragmenting said set of data sectors according to a predetermined algorithm into two or more packets for transmission to said processor (100) as soon as each said packet is filled with said data sectors read from said data storage media (111) , the last of said packets being transmitted as containing only target sectors even if said last packet is not filled.
5. The apparatus of claim 4, wherein said data storage system (120) is connected to said processor (100) via a control unit (104) , said apparatus further comprising: means (105-106) for sending data to said control unit (104) identifying the sector corresponding to said first sector boundary prior to transmitting said data sectors.
6. The apparatus of claim 5 further comprising: means, in said control unit (104) , for reconstructing said set of data sectors based on said predetermined algorithm, said first sector boundary identification data and said received two or more packets of data sectors.
7. The apparatus of claim 6 further comprising: means (515-517) responsive to the transmission of the last target sector in said first segment to said processor (100) via said control unit (104) for transmitting to said processor (100) the non-target sector sectors appearing in said first segment subsequent to said last target sector on a packet basis.
8. The apparatus of claim 2 wherein said activating means (211, 212) includes: means (211) for calculating the length of time required for said transmitting means (104-107, 205, 206) to transmit said first segment of said requested data to said processor; and means (212) for activating said transmitting means (104-107, 205, 206) said calculated length of time in advance of said read/write head (110) reaching said end of said requested data.
9. The apparatus of claim 8 wherein said apparatus further comprises: means (214) for identifying the beginning of said requested data on said track; and means responsive to said identifying means
(214) for reading a second segment of said requested data, from said beginning of said data to said first sector boundary, into said buffer memory means (207) .
10. The apparatus of claim 9 wherein: said calculating means (211) is responsive to said identifying means (214) for calculating the length of time required for said transmitting means (104-107, 205, 206) to transmit said second segment of said requested data to said processor (100) ; and said activating means (212) are further responsive to said calculating means (211) for activating said transmitting means (104-107, 205, 206) said second segment transmission time in advance of said first sector boundary.
11. The apparatus of claim 1 wherein said apparatus further comprises: means (214) for identifying the beginning of said requested data on said track; and means (202-206) responsive to said identifying means (214) for reading a second segment of said requested data, from said beginning of said data to said first sector boundary, into said buffer memory means (207) .
12. The apparatus of claim 11 further comprising: means responsive to said processor (100) identifying at least one of said requested sectors as the set of sectors that is the immediate target of said processor (100) for transmitting (104-107, 205, 206) said target sectors to said processor (100) as said target sectors are read from said data storage media (ill) .
13. The apparatus of claim 12 further comprising: means (505-522) responsive to said target sectors for fragmenting said set of target sectors according to a predetermined algorithm into two or more packets for transmission to said processor (100) as soon as each said packet is filled with said data sectors read from said data storage media (111) , the last of said packets being transmitted as containing only target sectors even if said last packet is not filled.
14. The apparatus of claim 13, wherein said data storage system (120) is connected to said processor (100) via a control unit (104) , said apparatus further comprising: means (105-106) for sending data to said control unit (104) identifying the sector corresponding to said first sector boundary prior to transmitting said target sectors.
15. The apparatus of claim further comprising: means, in said control unit (104) , for reconstructing said set of data sectors based on said predetermined algorithm, said first sector boundary identification data and said received two or more packets of data sectors.
16. The apparatus of claim 11 further including: means (104-107, 205, 206) for transmitting said second segment of said requested data stored in said buffer memory (207) to said requesting processor (100) ; and means (212) responsive to said detecting means (214) for activating said transmitting means
(104-107, 205, 206) prior to said read/write head
(110) reaching said first sector boundary of said requested data.
17. In a data storage system (120) that reads and writes data via one or more read/write heads (110) on a plurality of tracks on a data storage media
(111) , a method for reading a requested data record from a track of said data storage media (111) to a processor (100) that requests said data comprising the steps of: detecting, in response to a data read request received from said processor (100) identifying a plurality of sectors of at least one of said tracks as said requested data, the first sector boundary encompassed by said requested data on said track and appearing under said read/write head (110) subsequent to said data read request; and reading a first segment of said requested data, from said first sector boundary to the end of said data, into a buffer memory (207) .
18. The method of claim 17 further comprising the step of: transmitting, in response to said processor (100) identifying at least one of said requested sectors as the set of sectors that is the immediate target of said processor (100) , said target sectors to said processor (100) as said target sectors are read from said data storage media (111) .
19. The method of claim 18 further comprising the step of: fragmenting, in response to said target sectors, said set of data sectors according to a predetermined algorithm into two or more packets for transmission to said processor (100) as soon as each said packet is filled with said data sectors read from said data storage media (111) , the last of said packets being transmitted as containing only target sectors even if said last packet is not filled.
20. The method of claim 19, wherein said data storage system (120) is connected to said processor (100) via a control unit (104) , further comprising the step of: sending data to said control unit (104) identifying the sector corresponding to said first sector boundary prior to transmitting said target sectors.
21. The method of claim 20 further comprising the step of: reconstructing, in said control unit (104) , said set of data sectors based on said predetermined algorithm, said first sector boundary identification data and said received two or more packets of data sectors.
22. The method of claim 21 further comprising the step of: transmitting, in response to the transmission to said processor (100) of the last target sector in said first segment, to said processor (100) the non-target sector sectors appearing in said first segment subsequent to said last target sector on a packet basis.
23. The method of claim 17 further including the steps of: transmitting said first segment of said requested data stored in said buffer memory (207) to said requesting processor (100) ; and enabling said step of transmitting prior to said read/write head (111) reaching said end of said requested data.
24. The method of claim 23 wherein said step of activating includes the steps of: calculating the length of time required to transmit said first segment of said requested data to said processor (100) ; and enabling said step of calculating said length of time in advance of said read/write head (110) reaching said end of said requested data.
25. The method of claim 24 wherein said method further comprises the steps of: identifying the beginning of said requested data on said track; and reading a second segment of said requested data, from said beginning of said data to said first sector boundary, into a buffer memory (207) .
26. The method of claim 25 further including the steps of: calculating the length of time required to transmit said second segment of said requested data to said processor (100) ; and enabling said step of transmitting said second segment transmission time in advance of said first sector boundary.
27. The method of claim 17 wherein said method further comprises the steps of: identifying the beginning of said requested data on said track; and reading a second segment of said requested data, from said beginning of said data to said first sector boundary, into a buffer memory (207) .
28. The method of claim 27 further including the steps of: transmitting said second segment of said requested data stored in said buffer memory (207) to said requesting processor (100) ; and enabling said step of transmitting prior to said read/write head (110) reaching said first sector boundary of said requested data.
29. In a data storage system (120) that reads and writes data via one or more read/write heads (110) on a plurality of tracks on a data storage media (111) , a data read apparatus for reading a requested data record from a track of said data storage media (111) to a processor (100) that requests said data comprising: means (201-206, 208-215) responsive to a data read request when said read/write head (110) is over said requested data on said track for reading a first segment of said requested data, from said receipt of said data read request to the end of said data, into a buffer memory (207) ; means (214) for identifying the beginning of said requested data on said track; and means (201-206, 208-215) responsive to said identifying means (214) for reading a second segment of said requested data, from said beginning of said data to the beginning of said first segment, into said buffer memory (207) .
30. The apparatus of claim 29 further comprising: means (104-107, 205, 206) responsive to said processor (100) identifying at least one of said requested sectors as the set of sectors that is the immediate target of said processor (100) for transmitting said target sectors to said processor (100) as said target sectors are read from said data storage media (111) .
31. The apparatus of claim 30 further comprising: means (505-522) responsive to said target sectors for fragmenting said set of data sectors according to a predetermined algorithm into two or more packets for transmission to said processor (100) as soon as each said packet is filled with said data sectors read from said data storage media (111) , the last of said packets being transmitted as containing only target sectors even if said last packet is not filled.
32. The apparatus of claim 31, wherein said data storage system (120) is connected to said processor (100) via a control unit (104) , said apparatus further comprising: means (105, 106) for sending data to said control unit (104) identifying the sector corresponding to said first sector boundary prior to transmitting said target sectors.
33. The apparatus of claim 32 further comprising: means, in said control unit (104) , for reconstructing said set of data sectors based on said predetermined algorithm, said first sector boundary identification data and said received two or more packets of data sectors.
34. The apparatus of claim 33 further comprising: means (515-517) responsive to the transmission of the last target sector in said first segment to said processor (100) via said control unit (104) for transmitting to said processor (100) the non-target sector sectors appearing in said first segment subsequent to said last target sector on a packet basis.
35. The apparatus of claim 29 further including: means (104-107, 205, 206) for transmitting said first segment of said requested data stored in said buffer memory (207) to said requesting processor (100) ; and means (211, 212) responsive to said detecting means (214) for activating said transmitting means (104-107, 205, 206) prior to said read/write head (110) reaching said end of said requested data.
36. The apparatus of claim 35 wherein said activating means (211, 212) includes: means (211) for calculating the length of time required for said transmitting means (104-107, 205, 206) to transmit said first segment of said requested data to said processor (100) ; and means (212) for activating said transmitting means (104-107, 205, 206) said calculated length of time in advance of said read/write head (110) reaching said end of said requested data.
37. The apparatus of claim 36 wherein: said (211) calculating means is responsive to said identifying means (214) for calculating the length of time required for said transmitting means (104-107, 205, 206) to transmit said second segment of said requested data to said processor (100) ; and said (212) activating means are further responsive to said calculating means (211) for activating said transmitting means (104-107, 205, 206) said second segment transmission time in advance of said beginning of said first segment.
38. In a data storage system (120) that reads and writes data via one or more read/write heads (110) on a plurality of tracks on a data storage media (111) , a method for reading a requested data record from a track of said data storage media (111) to a processor (100) that requests said data comprising the steps of: reading, in response to a data read request when said read/write head (110) is over said requested data on said track, a first segment of said requested data, from said receipt of said data read request to the end of said data, into a buffer memory (207) ; identifying the beginning of said requested data on said track; and reading a second segment of said requested data, from said beginning of said data to the beginning of said first segment, into said buffer memory (207) .
39. The method of claim 38 further including the steps of: transmitting said first segment of said requested data stored in said buffer memory (207) to 5 said requesting processor (100) ; enabling said step of transmitting prior to said read/write head (110) reaching said end of said requested data.
40. The method of claim 39 wherein said step of activating includes the steps of: calculating the length of time required to transmit said first segment of said requested data to 5 said processor (100) ; and enabling said step of transmitting said calculated length of time in advance of said read/write head (110) reaching said end of said requested data.
41. In a data storage system (120) that reads and writes data via one or more read/write heads (110) on a plurality of tracks on a data storage media (111) , a data read apparatus for reading a requested
-5 data record from a track of said data storage media (111) to a processor (100) that requests said data comprising: means (214) responsive to a data read request for detecting the first sector boundary
10 encompassed by said requested data on said track and appearing under said read/write head (110) subsequent to said data read request; means (201-206, 208-215) for reading a first segment of said requested data, from said sector 15 boundary to the end of said data, into a buffer memory (207) ; means (104-107, 205, 206) for transmitting said first segment of said requested data stored in said buffer memory (207) to said requesting processor (100) ; means (211, 212) responsive to said detecting means (214) for activating said transmitting means (104-107, 205, 206) prior to said read/write head reaching said end of said requested data, including: means (211) for calculating the length of time required for said transmitting means
(104-107, 205, 206) to transmit said first segment of said requested data to said processor (100) ; means for activating said transmitting means (104-107, 205, 206) said calculated length of time in advance of said read/write head (110) reaching said end of said requested data; means (214) for identifying the beginning of said requested data on said track; means (201-206, 208-215) responsive to said identifying means (214) for reading a second segment of said requested data, from said beginning of said data to said sector boundary, into a buffer memory
(207) ; wherein said calculating means (211) is responsive to said identifying means (214) for calculating the length of time required for said transmitting means (104-107, 205, 206) to transmit said second segment of said requested data to said processor (100) ; and wherein said activating means (212) are further responsive to said calculating means (211) for activating said transmitting means (104-107, 205, 206) said second segment transmission time in advance of said sector boundary.
PCT/US1990/005484 1989-10-10 1990-09-26 Multiple step data read apparatus WO1991006053A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE69031983T DE69031983T2 (en) 1989-10-10 1990-09-26 MULTI-STEP DATA READER
EP90916622A EP0494999B1 (en) 1989-10-10 1990-09-26 Multiple step data read apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US41959389A 1989-10-10 1989-10-10
US419,593 1989-10-10

Publications (1)

Publication Number Publication Date
WO1991006053A1 true WO1991006053A1 (en) 1991-05-02

Family

ID=23662913

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1990/005484 WO1991006053A1 (en) 1989-10-10 1990-09-26 Multiple step data read apparatus

Country Status (7)

Country Link
US (1) US5329622A (en)
EP (1) EP0494999B1 (en)
JP (1) JP3242912B2 (en)
AT (1) ATE162644T1 (en)
AU (1) AU637432B2 (en)
DE (1) DE69031983T2 (en)
WO (1) WO1991006053A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5664144A (en) * 1990-09-24 1997-09-02 Emc Corporation System and method for FBA formatted disk mapping and variable-length CKD formatted data record retrieval
US6889288B2 (en) 2002-12-02 2005-05-03 Emc Corporation Reducing data copy operations for writing data from a network to storage of a cached data storage system by organizing cache blocks as linked lists of data fragments

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3276147B2 (en) * 1991-08-07 2002-04-22 アダプテック・インコーポレイテッド Automatic read and write intelligent hardware for multiple sectors of data between computer bus and disk drive
US5412782A (en) * 1992-07-02 1995-05-02 3Com Corporation Programmed I/O ethernet adapter with early interrupts for accelerating data transfer
US5434872A (en) * 1992-07-28 1995-07-18 3Com Corporation Apparatus for automatic initiation of data transmission
US5761531A (en) * 1995-06-30 1998-06-02 Fujitsu Limited Input/output control apparatus and method for transfering track data from cache module to channel unit during the staging of the data track from device adapter
US5923857A (en) * 1996-09-06 1999-07-13 Intel Corporation Method and apparatus for ordering writeback data transfers on a bus
US5845318A (en) * 1996-10-28 1998-12-01 International Business Machines Corporation Dasd I/O caching method and application including replacement policy minimizing data retrieval and storage costs
US6112319A (en) * 1998-02-20 2000-08-29 Micron Electronics, Inc. Method and system for verifying the accuracy of stored data
US6751757B2 (en) 2000-12-07 2004-06-15 3Ware Disk drive data protection using clusters containing error detection sectors
US7680982B2 (en) * 2007-02-20 2010-03-16 International Business Machines Corporation Preservation of cache data following failover

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4198699A (en) * 1979-03-01 1980-04-15 Kearney & Trecker Corporation Mass memory access method and apparatus
US4241420A (en) * 1978-11-01 1980-12-23 Bank Computer Network Corporation Disk data control
US4667286A (en) * 1984-12-20 1987-05-19 Advanced Micro Devices, Inc. Method and apparatus for transferring data between a disk and a central processing unit
US4723223A (en) * 1984-05-08 1988-02-02 Kabushiki Kaisha Toshiba Direct memory access controller for reducing access time to transfer information from a disk
US4903195A (en) * 1985-10-18 1990-02-20 Hitachi, Ltd. Method for controlling data transfer
US4918651A (en) * 1988-07-18 1990-04-17 Western Digital Corporation Method and disk controller architecture for zero latency data read

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155811A (en) * 1989-01-31 1992-10-13 Storage Technology Corporation Read/write head buffer

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4241420A (en) * 1978-11-01 1980-12-23 Bank Computer Network Corporation Disk data control
US4198699A (en) * 1979-03-01 1980-04-15 Kearney & Trecker Corporation Mass memory access method and apparatus
US4723223A (en) * 1984-05-08 1988-02-02 Kabushiki Kaisha Toshiba Direct memory access controller for reducing access time to transfer information from a disk
US4667286A (en) * 1984-12-20 1987-05-19 Advanced Micro Devices, Inc. Method and apparatus for transferring data between a disk and a central processing unit
US4903195A (en) * 1985-10-18 1990-02-20 Hitachi, Ltd. Method for controlling data transfer
US4918651A (en) * 1988-07-18 1990-04-17 Western Digital Corporation Method and disk controller architecture for zero latency data read

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5664144A (en) * 1990-09-24 1997-09-02 Emc Corporation System and method for FBA formatted disk mapping and variable-length CKD formatted data record retrieval
US5909692A (en) * 1990-09-24 1999-06-01 Emc Corporation System and method for disk mapping and data retrieval
US6185653B1 (en) 1990-09-24 2001-02-06 Emc Corporation System and method for disk mapping and data retrieval
US6418509B1 (en) 1990-09-24 2002-07-09 Emc Corporation System and method for disk mapping and data retrieval
US6587919B2 (en) 1990-09-24 2003-07-01 Emc Corporation System and method for disk mapping and data retrieval
US6889288B2 (en) 2002-12-02 2005-05-03 Emc Corporation Reducing data copy operations for writing data from a network to storage of a cached data storage system by organizing cache blocks as linked lists of data fragments

Also Published As

Publication number Publication date
DE69031983D1 (en) 1998-02-26
DE69031983T2 (en) 1998-07-30
JP3242912B2 (en) 2001-12-25
ATE162644T1 (en) 1998-02-15
AU637432B2 (en) 1993-05-27
EP0494999A4 (en) 1992-09-23
US5329622A (en) 1994-07-12
JPH05501321A (en) 1993-03-11
EP0494999A1 (en) 1992-07-22
AU6710990A (en) 1991-05-16
EP0494999B1 (en) 1998-01-21

Similar Documents

Publication Publication Date Title
KR100188442B1 (en) System and method for decision of destination track in data storage disk drive
EP0362362B1 (en) High capacity multiple-disk storage system and method
US4558446A (en) Memory system
EP0221763B1 (en) System for transferring digital data between a host device and a recording medium
US4811280A (en) Dual mode disk controller
AU637432B2 (en) Multiple step data read apparatus
JP2001005724A (en) Method for controlling write cache transfer and disk drive
JPH03157872A (en) Assembly of data group of digital audio tape
US5341479A (en) Address mark triggered read/write head buffer
US4903195A (en) Method for controlling data transfer
US5623507A (en) Error pointers for enhanced error correction
US4918651A (en) Method and disk controller architecture for zero latency data read
EP0456690B1 (en) Read/write head buffer
US5155811A (en) Read/write head buffer
JP4053234B2 (en) Disk unit
US6349348B1 (en) Data transfer method and apparatus
US6745300B1 (en) Magnetic disk device and disk access method therefor
US6161155A (en) Apparatus and method for storing retrievable boundary information into a buffer memory of a receiving device
KR20000071796A (en) Disc controller, disc control system, and disc controling method
JP2644218B2 (en) Magnetic recording method
JPH01171044A (en) Method for positioning block of memory
JP3905944B2 (en) CONTROL CIRCUIT ELEMENT FOR MAGNETIC DISK DEVICE AND MAGNETIC DISK DEVICE HAVING THE CONTROL CIRCUIT ELEMENT
EP0437779A2 (en) Dat drive/controller interface
WO1991008536A1 (en) Data record move apparatus for a virtual memory system
JP2002073285A (en) Reproduction method of recorded data and recorder- reproducer

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AU CA JP

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB IT LU NL SE

WWE Wipo information: entry into national phase

Ref document number: 1990916622

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1990916622

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: CA

WWG Wipo information: grant in national office

Ref document number: 1990916622

Country of ref document: EP