EP0371034A4 - Method and apparatus for data buffer management - Google Patents
Method and apparatus for data buffer managementInfo
- Publication number
- EP0371034A4 EP0371034A4 EP19880905495 EP88905495A EP0371034A4 EP 0371034 A4 EP0371034 A4 EP 0371034A4 EP 19880905495 EP19880905495 EP 19880905495 EP 88905495 A EP88905495 A EP 88905495A EP 0371034 A4 EP0371034 A4 EP 0371034A4
- Authority
- EP
- European Patent Office
- Prior art keywords
- block
- data
- buffer
- blocks
- scheduling
- Prior art date
- Legal status (The legal status 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 status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
Definitions
- This invention pertains to method and apparatus for managing the buffering of informational data between devices, such as the buffering of data between a host computer system and a peripheral storage device. 2. PRIOR ART AND OTHER CONSIDERATIONS.
- coded informational data is often transmitted in data blocks between a first device (such as a host computer) and a second device (such as a peripheral device which handles a storage medium) , with each data block having a fixed length such as a selected number of data bytes.
- a first device such as a host computer
- a second device such as a peripheral device which handles a storage medium
- each data block having a fixed length such as a selected number of data bytes.
- Many modern peripheral devices have the capability of determining whether one or more errors occur in the transmission of a block of data between the devices, and of providing an indication that an erroneous or "bad" block has been transmitted.
- some contemporary magnetic tape handling devices e.g. "tape drives” are able to write a block of data during a first pass and then to read the just-written block during a second pass.
- Error detection circuitry associated with the tape handling device examines the block read during the second pass to determine whether the block as written on the storage medium is properly readable. If the block as read during the second pass is deemed by the error detection circuitry to contain errors, a signal indicative of the occurrence of the error is generated.
- a block of coded information may not be properly readable from a storage medium.
- One particularly acute reason is the presence of a defect in the storage medium.
- the block may be properly transmitted to the medium handling device for writing to a particular physical location on the medium, the medium may have a defect or blemish at that physical location which gives rise to an error.
- the defect may cause the block to be deemed erroneous or bad.
- a block is said to be erroneous or "bad” if the block is improperly written to a storage medium or if the block is not properly readable from a storage medium.
- defects in a storage medium occur in patterns.
- tape defects are often found to have an essentially horizontal pattern or grouping (e.g., the defect runs parallel to the direction of tape travel) .
- an object of the present invention to provide method and apparatus for rewriting blocks of coded data to a storage medium when the block, as initially or earlier written to the storage medium, has been determined to be bad.
- An advantage of the present invention is the provision of method and apparatus for controlling the physical locations on storage media whereat blocks are rewritten.
- Another advantage of the present invention is the provision of method and apparatus for increasing the usable storage density of storage media without sacrificing data integrity.
- a further advantage of the present invention is the provision of method and apparatus for reading a storage medium in a manner whereby rewritten blocks are properly considered in the transmission of data between devices.
- a data buffer management system governs the transmission of blocks of data between a first device, a data buffer, and a second device.
- the first device is a host computer system
- the second device is a storage medium-handling device
- the data buffer is a dynamic random access memory (DRAM) .
- the data buffer management system includes a micro-controller; "IPORT" circuitry for interfacing the first device with the management system; "DPORT” circuitry for interfacing the second device with the management system; and, circuitry for interfacing the data buffer with the management system.
- the transmission of data between the first device, the data buffer, and the second device is scheduled by the micro-controller in conjunction with sequencers included in both the IPORT circuitry and the DPORT circuitry.
- the data transmission occurs on a buffer data bus which is connected to the first device, the data buffer, and the second device.
- Data transmission occurs in two modes. In a first mode, also known as an output or write mode, a block of data is transmitted from the first device to a memory location in the data buffer, and thence from that location in the data buffer to the second device. In a second mode, also known as an input or read mode, a block of data is transmitted from the second device to a memory location in the data buffer, and thence from that location in the data buffer to the first device.
- the micro-controller uses the IPORT circuitry and the DPORT circuitry to generate the addresses of the particular memory locations in the data buffer involved in the transmission of a data block.
- Both the IPORT circuitry and the DPORT circuitry include, in addition to a sequencer, a set of registers and address generators.
- the set of registers includes a control register and a plurality of header registers.
- the header registers are employed, inter alia, in connection with the generation or retrieval of a block header which is included as part of the data block.
- the address generators included in the IPORT circuitry and the DPORT circuitry utilize information stored in the header registers in order to generate addresses for the particular memory locations in the data buffer at which the header associated with a data block and the data associated with the data block are to be stored. The gating of information between the various registers and generators is governed by the sequencer.
- the micro-controller addresses the registers included in the IPORT circuitry and the DPORT circuitry for setting the contents of the registers.
- the micro-controller circuitry sets the contents of the control register for each of the IPORT and DPORT circuits.
- the sequencer included in each of the IPORT and DPORT circuits monitors the bits of the control register and performs various tasks in accordance with the status of those bits.
- One such task is the gating of information from the header registers to the address generators included in the interface circuitry (either IPORT or DPORT).
- a data block is acquired from the first device and applied to the buffer data bus.
- the micro-controller sends information to the header registers comprising the IPORT so that a header can be generated for the data block.
- the micro-controller also sets bits in the IPORT control register to enable the IPORT sequencer to gate information from the IPORT header registers to the IPORT address generators.
- the IPORT address generators develop values correponding to the addresses in the data buffer at which the data block and the block header are to be stored.
- the IPORT sequencer then gates the block header to the address in the data buffer at which the block header is to be stored and applies the block data on the buffer data bus to the address in the data buffer at which the data is to be stored.
- the micro-controller also schedules the transmission of the block of data from the data buffer to the second device so that the block is output in an originally-intended sequence to a channel associated with the second device.
- the micro ⁇ controller puts the block identification number (BLOCK ID) of the block in a circular queue known as the READOUT queue.
- the data buffer management system is usable in connection with a second device of the type which is able to make a determination whether a block written thereto is a bad block. That is, the second device is capable of determining whether the data block was not properly written to the storage medium handled by the second device, or whether the block as written is not readable by the second device. In this regard, the second device provides a signal that the block just written was a bad block.
- the micro-controller If the micro-controller receives an indication from the second device that the block just output to the channel associated with the second device was a bad block, the micro-controller reschedules the transmission of the block from its memory location in the data buffer so that the block is output in an alternate sequence to the second device. Rescheduling the transmission of the bad block involves re-entering the BLOCK ID of the bad block into the READOUT queue.
- the micro ⁇ controller reschedules the transmission of the block so that the block is also written at an alternate physical location on the tape which is not the orginally- intended location.
- the alternate physical location is chosen such that, if a tape defect occurred at the originally-intended physical location, it will not be likely that the same tape defect will extend to the alternate physical location. If, for example, a number M of blocks is written across the width of a tape, the number N of blocks written between the originally-intended physical location of the block and the alternate location is chosen such that N differs from M and is not related by an integer.
- DPORT header registers receive header information for a block and transmit the same to the micro-controller.
- the micro ⁇ controller examines the block header and determines whether the block is a valid block or an invalid (e.g. a duplicate) block. If the block is valid, the DPORT supervises transmission of the block to the data buffer and loads header data associated with the block into an allocation table. The allocation table has stored therein header data for every block currently stored in the data buffer. Thereafter the IPORT supervises the transmission of the block to the first (host) device.
- the determination of whether a block is a duplicate block involves computing two parameters, DBID and DPID.
- the parameter DBID is the difference between a pointer Rptr (which points to the address in the buffer memory into which the most recently-acquired block has been written) and a pointer RDptr (which points to the address in the buffer memory from which the next-extracted block will be read) .
- the parameter PBID is computed by an equation that requires knowledge of a PHYSICAL BLOCK ID both for the block just acquired from the second device and for the next block to be transmitted to the host. These PHYSICAL BLOCK IDs are available from the DPORT header registers and the allocation table.
- FIG. 1 is a schematic view of a data buffer management system according to an embodiment of the invention
- FIG. 2 is a schematic view of a micro ⁇ controller included in the system of the embodiment of FIG. 1;
- FIG. 3 is a schematic view of an interface port (IPORT) included in the system of the embodiment of FIG. 1;
- IPORT interface port
- FIG. 4 is a schematic view of a device port (DPORT) included in the system of the embodiment of FIG. 1;
- DPORT device port
- FIG. 5A is a schematic view showing steps executed in a first stage of a write mode according to the invention
- FIG. 5B is a schematic view showing steps executed in a second stage of a write mode according to the invention.
- FIG. 6A is a schematic view showing steps executed in a first stage of a read mode according to the invention.
- FIG. 6B is a schematic view showing steps executed in a second stage of a read mode according to the invention
- FIG. 7 is a schematic view of steps executed to determine whether blocks of data obtained from a storage device used with the embodiment of FIG. 1 are valid blocks;
- FIG. 8A is a schematic view of a READOUT queue which exists in a memory associated with the micro-computer of FIG. 2;
- FIG. 8B is a schematic view of a BAD BLOCK queue stored in the memory of the micro-controller of FIG. 2
- FIG. 8C is a schematic view of addresses included in a buffer memory connected to the management system of FIG. 1 and showing memory pointers when the invention is in a write mode;
- FIG. 9 is a schematic view of addresses included in the buffer memory connected to the management system of FIG. 1 and showing memory pointers when the invention is in a read mode;
- FIG. 10 is a schematic view illustrating a block of data on a magnetic tape
- FIG. 10B is a table showing the format of a block header according to an embodiment of the invention
- FIG. 11 is a schematic view of blocks of data recorded on magnetic tape according to an embodiment of the invention.
- FIG. 12 is a schematic view depicting various memory locations of a random access memory included in the micro-controller of FIG. 2.
- Fig. 1 shows a data buffer management system
- a micro-controller 12 comprising a micro-controller 12; a host interface port (IPORT) 16; a device port (DPORT) 18; and, a dynamic random access memory (DRAM) controller buffer interface 20.
- a first device such as host computer system 21, is connected to the IPORT 16.
- a data buffer 24 is connected to the buffer interface 20.
- the data buffer 24 comprises a bank of DRAM chips configured as 256K by 9 bits wide.
- a second device 26, such as a helical scan tape drive, has a channel connected to the DPORT 18.
- a communication channel, disc drive, or other type device may be substituted for the tape drive as the second device 26.
- the first (host) device 21, the second device 26, and the data buffer management system 10 are each connected to a bi-directional buffer data bus 28 and a buffer address bus 30.
- Priority access lines 31 and 32 connect the buffer interface 20 with the IPORT 16 and DPORT 18, respectively.
- the SCSI interface 22 is a conventional device such as a type WD33C93 SCSI chip manufactured by Western Digital, for example.
- the DRAM chips used in one embodiment are type 41256 RAM chips such as those manufactured by Texas Instruments. Such chips are fabricated as 256 K bytes by 1 bit wide and may be linked together to produce a 9 bit wide data bus. In the illustrated embodiment, 9 bits are used: 8 bits contain data while the 9th bit is used for parity checking.
- the data buffer or buffer memory 24 (illustrated in Figs. 8C and 9) comprises 8K addresses whereat block header information is storable and 248K wherein block information is storable.
- the 248K are partitioned into 248 blocks, labelled blockO to block247 (Fig. 8C) .
- Each block contains 1024 bytes (IK) of memory.
- IPORT 16 In the illustrated embodiment, IPORT 16,
- DPORT 18 and buffer interface 20 are fabricated as a custom LSI chip. If desired, these functions can also be duplicated using discrete components. It should also be understood that alternative interface modules can be substituted for the SCSI interface 22 associated with the host 21 and that electrical hardware circuits can be substituted for the micro-controller 12 without affecting the scope of the invention.
- Fig. 10A illustrates that a block of data is conceptualized as having a header 33 and informational data 34.
- the header 33 comprises 16 bytes; the informational data 34 comprises 1024 bytes.
- the format of the header 33 for the illustrated embodiment is understood with reference to Fig. 10B.
- the micro-controller 12 used in the illustrated embodiment comprises a microprocessor or CPU 36 (such as type 8032, 8-bit manufactured by Intel Corporation) ; an 8K by 8 bit random access memory (RAM) 38 (such as a type HM 6242 manufactured by Hitachi); and, a 16K by 8 bit programmable read only memory (PROM) 40 (such as a type 27128 manufactured by Intel Corporation).
- the microprocessor 36, RAM 38, and PROM 40 are connected inter alia by an internal data bus 42 and internal address bus 44.
- Control interface 45 includes an external data bus 46 (8 bits); an external address bus 48 (8 bits); and, a plurality of other lines generally depicted by reference numeral 50. Examples of lines included in the group 50 are an address latch enable signal line; a chip select signal line; a write signal line; a read signal line; a reset signal line; interrupt signal lines; and interrupt acknowledge signal lines. These group 50 lines are connected to specific pins on the CPU 36. An address decoder built into the CPU 36 directs signals to registers of the IPORT 16 and DPORT 18.
- the IPORT 16 (Fig * 3) comprises a plurality of header registers, including a "A" PAGE ID register 60; a "B” PAGE ID register 62; an "A" BLOCK ID register 64; a “B” BLOCK ID register 66; two DATA BYTE COUNT registers HI 68 and LO 70; and, three LOGICAL BLOCK ID registers HI, MD, LO, labelled 72,74,76, respectively.
- the IPORT 16 also comprises an IPORT sequencer 77; an IPORT data address generator 78; an IPORT header address generator 80; and, an IPORT control register 84.
- the registers included in IPORT 16 are connected to a plurality of busses, to be discussed below.
- the PAGE ID registers 60,62 are each 1 byte long and are used to inform the management system 10 of the size of the buffer memory 24. Valid values for this register are 0,1,2 or 3. With 256K memory, the register has a value of 0. If larger memory (i.e., 1 megabyte) is used for the buffer 24, the value in this register is adjusted to reflect which bank of 256K memory is being accessed. The correct memory page address is loaded by the micro-controller 12 into "A" PAGE ID register 60 and then transferred into "B" PAGE ID register 62 so as to increase the speed of the data buffer management system 10.
- the BLOCK ID registers 64,66 are each 1 byte long and are used to construct the address of a block of data in the buffer memory 24. This value is written to the tape device 26 and tells the device 26 where in the buffer memory 24 to place data on a subsequent read operation of the device to the buffer.
- the "A" BLOCK ID register 64 is loaded by the micro-controller 12 and then transferred into "B" BLOCK ID register "B” 66 so as to increase the speed of the data buffer management system 10.
- the DATA BYTE COUNT registers 68,70 total 10 bits. These registers inform the micro-controller 12 on a subsequent read operation of the device to the buffer how much data is in each 1024 memory block that is written to the device 26. If a data block is full, these registers contain the value 1024. If, for example, only 500 bytes of data are in a data block, the data byte count register 68,70 contains the value 500.
- the LOGICAL BLOCK ID registers 72,74,76 total 24 bits and are used for logical operations of the buffer memory 24. For example, if the host 21 transfers data to the device 26 in 16K bytes per block segments, whereas the buffer memory 24 is arranged as IK blocks, the actual number of blocks per transfer is sixteen.
- the LOGICAL BLOCK ID registers 72, 74, 76 assign a unique number to this group of sixteen IK blocks to identify them as belonging to one 16K block of data received from the host 21. The next group of sixteen IK blocks received from the host 21 are then assigned another unique identifying LOGICAL BLOCK ID.
- the IPORT header address generator 80 and the IPORT data address generator 78 generate buffer addresses for each data block, the blocks being labelled from blockO to block 278.
- the data address generator 78 generates a 20-bit value by concatenating the "B" BLOCK ID register 66 (in the most significant position) and the 10-bit value in the DATA BYTE COUNT registers 68,70.
- the IPORT header address generator 80 generates a 20-bit value by concatenating of a string of five "l"'s (in bits 13 to 17), the value in the "B" BLOCK ID register 66, and a "0" (as the fourth bit).
- Bits 18 and 19 of each generator selects which page of memory to use if more than 256K of memory is used for the buffer 24.
- the IPORT control register 84 contains 8 bits which are used by the IPORT sequencer 77 to control the operation of the IPORT 16. The bits in the control register 84 are set by the CPU 36.
- bit seven of control register 84 indicates that the system 10 is in read mode; otherwise bit seven indicates a write mode.
- TRUE bit six enables the IPORT 16; when bit six is FALSE the IPORT 16 is disabled and reset.
- Bit five enables IPORT 16 to execute the mode (either read or write) specified by bit seven.
- Bit four is used to inform the CPU 36 of the status of the IPORT 16.
- Bit three informs the CPU 36 whether the IPORT 16 is busy or not.
- Bit two indicates when a parity error occurs. Bit one prevents data collision on the busses.
- bit one determines whether the SCSI interface 22 and buffer memory 24 should have control of the buffer data bus 28, or whether control of the bus 28 should be given to the SCSI interface 22 and the CPU 36.
- Bit zero is used to .activate the buffer memory 24 after the management system's 10 power supply has stabilized.
- the IPORT sequencer 77 governs the timing of the execution of IPORT, particularly the timing of the gating of signals between various IPORT registers; between IPORT registers and the IPORT address generators 78,80; between the IPORT address generators 78,80 and the buffer address bus 30; and between the
- the IPORT sequencer 77 also receives indications from the host device 21 as to whether the host device 21 is requesting a block of data (in a read mode) or making a block of data available (in a write mode); apprises the micro-controller 12 of such indication (via an interrupt line included in the control interface 45); and, requests access to the buffer interface 20.
- the IPORT sequencer 77 thus comprises a plurality of switches and gates for performing the gating and signalling operations in the sequence and manner described herein. In view of the nature and sequence of IPORT operations described herein, the man skilled in the art will well understand how to connect gating and switch elements to accomplish the herein- described functions performed by the IPORT sequencer 77.
- the IPORT sequencer 77 is shown in Fig. 3 as being connected by an IPORT sequencer communication bus 85 to each of the IPORT header registers, to the IPORT control register 84, and to the IPORT address generators 78,80.
- the IPORT sequencer 77 is also connected by an IPORT/SCSI communication bus 77a to the SCSI interface 22 and by an IPORT/BUFFER communication bus 77b to the buffer interface 20.
- the control interface 45 from the micro ⁇ controller 12 is connected to the "A" PAGE ID register 60; "A" BLOCK ID register 64; DATA BYTE COUNT registers 68,70; LOGICAL BLOCK ID registers 72,74,76; and, the IPORT control register 84.
- the output of the "A" PAGE ID register 60 is connected to the input of the "B" PAGE ID register 62.
- the output of the "A" BLOCK ID REGISTER 64 is connected to the input of the "B" BLOCK ID register 66.
- the micro-controller 12 loads the "A" registers 60,64 and then instructs the IPORT 16, via bit 5 of the IPORT control register 82, to execute either a read or write function based on the status of bit 7 of the IPORT control registers.
- the IPORT sequencer 77 then gates the contents of the registers 60,64 to the registers 62,66, respectively. Since registers 60,64 are now empty, the micro-controller 12 can load therein new data, increasing the speed of execution.
- the output of the PAGE ID register 62 and BLOCK ID register 66 are connected to the IPORT data address generator 78 and to the IPORT header address generator 80 by lines 86,88 respectively.
- the control interface 45 also supplies information to the DATA BYTE COUNT registers 68,70 and LOGICAL BLOCK ID registers 72,74,76. The output of these registers are connected to the above-described buffer data bus 28.
- the output of the DATA BYTE COUNT registers 68,70 are also connected to the IPORT data address generator 78 via lines 92,94, respectively.
- Bus 30 carries the IPORT-generated addresses to the buffer interface 20.
- the DPORT 18 (Fig. 4) comprises a plurality of header registers, including two BLOCK TYPE ID registers 100,102; three PAGE ID registers 104,106,108; three BLOCK ID registers 110,112,114; two DATA BYTE COUNT registers 116,118; three LOGICAL BLOCK ID registers 120,122,124; and, six PHYSICAL BLOCK ID registers 126,128,130,132,134,136.
- the DPORT 18 includes a DPORT sequencer 137; a DPORT control register 140; a DPORT data address generator 142; and, a DPORT header address generator 144.
- the PAGE ID; BLOCK ID; DATA BYTE COUNT; LOGICAL BLOCK ID registers; and, CONTROL register are similar to correspondingly-denominated registers in the IPORT 16 and thus their description is not repeated.
- the BLOCK TYPE ID registers describe the attributes of a block. As shown in Fig. 10B, four bits of the BLOCK TYPE ID register are reserved for a retry count. One bit signifies the start of a logical flag. One bit signifies the end of a logical flag. The seventh bit is not used, while the eighth bit is always set to 1.
- the BLOCK TYPE ID registers are loaded with an 8-bit value by the micro-controller 12, which 8-bit value is later transferred as part of the header for recording onto the second device 26. During a read operation, these registers are loaded with a value received from the device 26 which may then be retrieved by the micro ⁇ controller 12.
- the PHYSICAL BLOCK ID registers describe the physical block location of data in the second device 26.
- the PHYSICAL BLOCK ID registers are loaded with a 24-bit value by the micro ⁇ controller 12, which value is later transferred as part of the header to the device 26.
- these registers are loaded with a value received from the device 26 which may then be retrieved by the micro-controller 12.
- the DPORT control register 140 is connected to the control interface 45 and by line 32 to the buffer interface 20.
- the format and function of the DPORT control register 140 is analogous to that of the IPORT control register 84, it being understood that the DPORT control register 140 concerns the operation of DPORT elements rather than analogously-denominated IPORT elements.
- a device read header bus 146 connects the second device 26 with DPORT registers 100,104,110,116,118,120,122, 124,126,128 and 130. Under control of the DPORT sequencer 137, the bus 146 serves to load these registers with information from the block header obtained from the device 26. The output ports of the registers are connected to the control interface 45.
- the BLOCK ID register 110 and the PAGE ID register 104 are also connected to the DPORT data address generator 142 via line 147A and 147B, respectively.
- the control interface 45 is also connected to the BLOCK TYPE ID register 102; the "A" PAGE ID register 106; the "A" BLOCK ID register 112; and,
- PHYSICAL BLOCK ID registers 132,134,136 As with the IPORT 16, the output of the "A" PAGE ID register 106 is connected to the "B" PAGE ID register 108 and the output of the "A" BLOCK ID register 112 is connected to the "B" BLOCK ID register 108 for the purpose of facilitating the operation of the management system 10.
- the output of registers 102,108,114,132,134 and 136 are connected to a device write header bus 148.
- the device write header bus 148 is connected to the device 26 so that certain header information carried on bus 148 can be written as part of a block, header (Fig. 10) to a storage medium (such as a magnetic tape) handled by the second device 26.
- the output of the "B" PAGE ID register 108 is also connected to the DPORT data address generator 142 and to the DPORT header address generator 144 via line 150.
- the output of the "B" BLOCK ID register 114 is connected to the DPORT data address generator 142 and to the DPORT header address generator 144 via line 152.
- the DPORT sequencer 137 functions in an analogous manner as does IPORT sequencer 77. That is, the DPORT sequencer 137 examines the bits in the DPORT control register 140 and governs the timing of the execution of DPORT 18 based on those bit settings, particularly the timing of the gating of signals between various DPORT registers; between DPORT registers and the DPORT address generators 142,144; between the DPORT address generators 142,144 and the buffer address bus 30; between DPORT registers and the device write header bus 148; and between the device read header bus 146 and the DPORT header registers.
- the DPORT sequencer 137 also receives indications from the second device 26 as to whether the second device 26 is requesting a block of data (in a write mode) or make a block available (in a read mode); apprises the micro ⁇ controller 12 of such indications (via an interrupt line included in the control interface 45); and, requests access to the buffer interface 20.
- the DPORT sequencer 137 comprises a plurality of switches and gates for performing the signalling and gating operations in the sequence and manner described herein. In view of the nature and sequence of the DPORT operations described herein, the man skilled in the art will well understand how to connect the gating and switch elements to accomplish the herein-described function performed by the DPORT sequencer 137.
- the DPORT sequencer 137 is shown in Fig. 4 as being connected by a DPORT sequencer communication bus 155 to each of the DPORT header registers, to the DPORT control register 140, and to the DPORT address generators 142,144.
- the DPORT sequencer 137 is also connected by a DPORT/DEVICE communication bus 137a to the second device 26 and by a DPORT/BUFFER communication bus 137b to the buffer interface 20.
- the DRAM controller buffer interface 20 (Fig. 1) is capable of simultaneously interfacing in an asynchronous mode of operation with the IPORT 16 and DPORT 18.
- the buffer interface 20 is responsible for several functions including the determination of the priority of processing simultaneous requests.
- the buffer interface 20 determines which request is to be processed first and acts accordingly to allow one operation to precede the other.
- the buffer interface 20 also performs a memory refresh operation DRAM chips comprising buffer 24 when memory accesses are not occurring with respect to the IPORT 16 or DPORT 18.
- the buffer interface 20 is also responsible for turning on a write enable pin to the buffer memory 24, and for activating address strobes associated with the DRAM memory 24.
- the buffer interface 20 is connected to the buffer address bus 30 and to the bi-directional buffer data bus 28.
- the buffer address bus 30 connects the buffer interface 20 to the address generators 78,80 of the IPORT 16 and to the address generators 142,144 of the DPORT.
- the buffer data bus 78 connects the buffer interface 20 to the IPORT 16, to device 26, and to the SCSI port 22 included in the host 21.
- the buffer memory 24 is divided into 8K addresses whereat block header information is storable and 248K addresses wherein block informational data is storable.
- the 248K addresses are logically partitioned into 248 segments of 1,024 (IK) bytes each, which segments have loaded therein the blocks labelled blockO through block 247.
- the addresses of the buffer memory are managed by the IPORT address generator 78,80 and DPORT address generators 142,144.
- a first mode also known as an output or write mode
- a block of data is transmitted in a first stage from the first device 21 to a memory location in the data buffer 24, and thence in a second stage from the location in the buffer 24 to the second device 26.
- a second mode also known as an input or read mode
- a block of data is transmitted in a first stage from the second device 26 to a memory location in the data buffer 24, and thence in a second stage from that location in the data buffer 24 to the first device 21.
- header data generated in the micro-controller 12 is transferred on control interface 45 to the IPORT header registers.
- IPORT sequencer 77 data stored in various ones of the IPORT 16 header registers is gated to The IPORT address generators 78,80 for the generation of a buffer data address data and a buffer header address.
- the IPORT sequencer 77 also supervises the construction of a block header by gating the information in the IPORT 16 header registers, in a predetermined sequence, to the buffer data bus 28 to the address generated by the IPORT header address generator 80.
- Block informational data from the host device 21 is applied on the buffer data bus 28 to the address generated by the IPORT data address generator 78.
- informational data and header information for each data block is stored in the buffer memory 24.
- a block of data is transferred from physical addresses within the buffer memory 24 to the device 26 over the buffer read data bus 28.
- the DPORT header address generator 144 generates the address in buffer memory 24 from whence the block header is extracted; the DPORT data address generator 142 generates the address in buffer memory 24 from whence the block informational data is extracted.
- the block is written in an originally-intended sequence to the second device 26. If the block is determined to be a "bad" block, the block is rewritten in an alternate sequence.
- N number of blocks must undergo write mode first stage processing before the second stage of the write mode commences.
- N number of blocks must undergo the write mode first stage processing to substantially "prime" the management system 10.
- N number of BLOCK IDs are entered into a circular READOUT queue 184 (maintained in RAM 38) at addresses specified by a revolving pointer RDQwr.
- the second stage of the write mode can commence.
- BLOCK ID values are extracted from locations in the READOUT queue 184 pointed to by a revolving pointer ROQrd.
- block header information is transferred from the device 26 over the device read header bus 146 and stored in the header registers of the DPORT 18. The contents of these header registers are applied to the micro ⁇ controller 12 via the control interface 45.
- the micro ⁇ controller 12 examines the block header information associated with each received block and determines whether the block is valid, e.g. determines that the block is not a duplicate block.
- the micro-controller 12 also stores the block header information for valid blocks in an allocation table in RAM 38. Invalid blocks are not transmitted to the data buffer 24.
- Block informational data for valid blocks is transferred directly from the device 26 to the buffer memory 24 and stored at physical addresses therein as specified by the DPORT Data Address Generator 142.
- block informational data from the data buffer 24 is applied to the buffer data bus 28 for transmission to the first (host) device 21.
- a block is transferred from the host 21 and stored temporarily in the buffer memory 24.
- a block is read from the buffer memory 24 and transferred to the device 26. Steps associated with the write mode of the invention are shown in Figs. 5A and 5B.
- N has the value 11.
- the two stages of the write mode can occur concurrently for different blocks.
- BLOCK IDs are numbered 0 through 247, corresponding to the 248 memory segments available in the data buffer 24.
- the BLOCK ID is generated by the micro-controller 12.
- the micro-controller 12 For each block of data, the micro-controller 12 generates data for the IPORT header registers and the IPORT control register 84 (step 204), including the BLOCK ID and PAGE ID data. This data is applied (at step 206) to the IPORT header registers and the IPORT control register 84 on the control interface 45.
- the BLOCK ID data and PAGE ID data are applied to the "A" BLOCK ID and to the "A" PAGE ID registers 60 and 64, respectively.
- the IPORT sequencer 77 thereafter takes over the supervision of IPORT functions. At step 208 the sequencer 77 directs that data in "A" registers 60 and 64 be gated into respective "B” registers 62 and 66.
- the sequencer 77 gates data from the IPORT header registers 62 and 66 into the IPORT header address generator 80 and data from the IPORT header registers 62, 64, 68, and 70 into the IPORT data address generator 78.
- the generators 80 and 78 generate values corresponding to the addresses in the data buffer 24 whereat the block data and the block header associated with the block are to be stored.
- the sequencer 77 gates the header address generated by the IPORT header generator 80 to the buffer interface 20 via buffer address bus 30.
- the sequencer 77 gates the contents of IPORT registers 68,70,72,74 and 76 to the data buffer controller buffer interface 20 via the buffer data bus 28.
- the sequencer 77 gates the IPORT registers in a predetermined order as dictated by a pre-established header format such as that depicted in Fig. 10B.
- the sequencer 77 gates the data address generated by the IPORT address generator 78 to the buffer interface 20 via the buffer address bus 30.
- the block data from the first (host) device 21 is loaded into the buffer interface 20 via the buffer data bus 28.
- the buffer interface 20 uses the header address generated by IPORT address generator 80 and the block data address generated by IPORT address generator 78 to write the block header and block data into the data memory 24 in the manner depicted by Fig. 8C.
- block headers are stored in memory locations addressable in the last 8K of the memory 24, while the block data is stored in partitioned segments (i ⁇ each) in a lower 248K of memory 24.
- the block data is written into the DRAM comprising the buffer memory 24 at the address pointed to by the pointer WRptr, which pointer WRptr is related to the address generated by the IPORT data address generator 78.
- the IPORT 16 continues to accept blocks from the SCSI Module Interface 22, to associate Block IDs with each block, and to store the blocks and headers in the buffer memory 24 in sequence to the BLOCK ID (BLOCK IDs sequence from 0,1,2...246,247,0,1,2, ..., 246,247,...) until the buffer 24 is full.
- BLOCK ID BLOCK IDs sequence from 0,1,2...246,247,0,1,2, ..., 246,247, etc.
- a 'Buffer Full' condition exists when there are no unused Block IDs available, which occurs when there are no unused segments in the buffer memory 24.
- the Buffer Full condition causes the SCSI interface 22 to suspend data input until sufficient buffer space is available.
- the micro-controller 12 increments the pointer ROQrd associated with the READOUT queue 184 maintained in RAM 38 (step 232).
- the pointer ROQrd is used to point to the BLOCK ID for the next block scheduled to be transmitted from the data memory 24 and the second device 26.
- the value of ROQrd will be "1" to point to the first block acquired from the host 21.
- the micro-controller 12 generates data for the DPORT header registers and the DPORT control register 140 (step 234), including the BLOCK ID and PAGE ID data. This data is applied (at step 236) on the control interface 45 to the DPORT header registers and the DPORT control register 140.
- the BLOCK ID data and PAGE ID data are applied to the "A" BLOCK ID and to the "A" PAGE ID registers 106 and 112, respectively.
- the DPORT sequencer 137 thereafter takes over the supervision of DPORT functions.
- the sequencer 137 directs that data in "A" registers 106 and 112 be gated into respective "B" registers 108 and 114.
- the sequencer 137 gates data from the DPORT header registers 108 and 114 into the DPORT header address generator 144 and data from the DPORT header registers 108 and 114 into the DPORT data address generator 142.
- the generators 144 and 142 generate values corresponding to the addresses in the data buffer 24 whereat the block data and the block header associated with the block are stored.
- the sequencer 137 gates the header address generated by the DPORT header generator 144 to the buffer interface 20 via buffer address bus 30.
- the buffer interface applies to the buffer data bus 28, and thus to second device 26, the partial block header obtained from a location corresponding to the address generated by the DPORT generator 144.
- the sequencer 137 gates the remainder of the block header to the second device on the device write header bus 148.
- the sequencer 137 gates the data address generated by the DPORT address generator 142 to the buffer interface 20 via the buffer address bus 30.
- the block data from the buffer interface 20 is applied to the second device 26 via the buffer data bus 28.
- the block data is extracted from the DRAM comprising the buffer memory 24, particularly from the address pointed to by the pointer RDptr, which pointer RDptr is related to the address generated by the DPORT data address generator 142 (see Fig. 9).
- the second device 26 then writes the entire block including the block header to the storage medium handled thereby.
- the device 26 reports back to the micro ⁇ controller 12 whether each block of data was processed correctly.
- the address in the buffer memory 24 from which the block was extracted can be written over by another block received from the first (host) device 21. This ultimately occurs at step 253 by incrementing the pointer ROQwr and entering the BLOCK 10 of the block most recently transmitted from the host 21 to the buffer interface 2D into the READOUT queue 184.
- a block is not processed correctly, i.e., it is determined (at step 252) to be a bad block (for example, due to a recording or transmission error), the address in the data buffer 24 from which the block was extracted cannot yet be written over by another block received from the first device 21.
- the BLOCK ID of the bad block is placed into a BAD BLOCK queue 186 if it has not already been so.
- the pointer ROQwr is incremented and the BLOCK ID of the bad block is re-entered into the READOUT queue at the location now pointed to by ROQwr.
- the BAD BLOCK queue 186 is located in RAM 38 of the micro-controller 12 (see FIG. 12). BLOCK IDs of bad blocks are only once entered into the BAD BLOCK queue 186, but can be repeatedly entered into the READOUT queue if necessary.
- the bad blocks are not recalled or erased as in prior art devices, but are instead, later rewritten, a plurality of times if necessary, at alternate physical locations on the storage medium.
- the rewritten blocks are identified with a Retry Count that is incremented each time the block is rescheduled in the READOUT queue until either the device 26 processes the block correctly or a maximum permissible number of retries is exceeded.
- the device 26 is a helical-scan magnetic tape recorder wherein blocks are written in helical stripes as shown in Fig. 11.
- rewritten blocks are scattered across a tape 170 to avoid tape defects which tend to lie in horizontal patterns in the direction of the tape travel.
- the bad block should be rewritten N number of blocks away from its originally-intended physical location.
- N has the value 11 or greater, and more preferably that N be exactly 11 so that the alternate location will be 11 blocks away from the originally-intended location of the block. This combination insures that rewritten bad blocks will be positioned at least three blocks over from the previous copy of the bad block, reducing susceptibility to common tape defects.
- other tape formats other combinations of parameters are usable.
- Block 5 is a bad block as indicated by shading in Fig. 11B.
- block 5 must be retransmitted to the tape 170 for writing at an alternate physical location.
- the BLOCK ID for block 5 is re-entered into the READOUT queue 184 and entered into BAD BLOCK queue 186 in the manner aforedescribed.
- Block 6 to Block 15 are then processed onto original block locations 6 to 15.
- the next original block location (location 16) is separated eleven blocks from the bad original block 5.
- the contents of block 5 are retrieved from the buffer 24 and re-recorded on the tape 170 at physical position 16.
- Physical position 16 is thus referred to as an alternate physical location of block 5. If block 5 is successfully retransmitted, it is removed from the BAD BLOCK queue 186. This process repeats for the entire data transfer operation. Whenever a bad block is detected, it is re-recorded at an alternative location which, in the illustrated embodiment, is eleven blocks away from its originally-intended bad block location. BLOCK IDs and Retry Counts may be entered into the BAD BLOCK queue 186 until it is full, which causes the micro-controller 12 to temporarily suspend the data flow output from the buffer memory 24 until the bad blocks are correctly processed by the device 26.
- Bad blocks are removed from the BAD BLOCK queue 186 when they are correctly processed by the device 26, which may not be the same order as the order in which the bad blocks occurred. In cases where bad blocks are removed from the middle of the queue, the queue is compressed to fill the space left after the bad block was removed.
- the BAD BLOCK queue 186 also controls which buffer segments may be written by the IPORT 16, since bad blocks cannot be removed from the buffer 24 or overwritten by new blocks until the bad blocks are correctly processed by the device.
- the WRITE operation is complete when the READOUT queue 184 is empty and all bad blocks have been removed from the BAD BLOCK queue 186.
- a completed WRITE operation is indicated to the device 26 by an • Out of data' signal, which terminates the transmission of a block to the device 26.
- blocks of data are transferred from the device 26 to the host 21 in two stages.
- a block of data is read from the device 26 and temporarily stored in the buffer memory 24.
- a block of data is removed from the buffer memory 24 and transferred to the SCSI Module Interface 22 associated with the host 21.
- the block is removed from the buffer memory 24, which vacates the addresses occupied by the block for receiving additional data from the device 26. Steps associated with the read mode are depicted in Figs. 6A and 6B.
- blocks of data are streamed from the second device 26 into the buffer 24 in the order that the blocks are stored on the device 26.
- blocks may not be stored in strict BLOCK ID sequence on the storage medium.
- blocks stored on the helically-recorded tape 170 may be out of sequence as a result of interleaved bad data blocks, good data blocks, and rewritten blocks.
- the blocks Prior to transmission to the first device 21 the blocks must be placed into a correct sequence regardless of the order in which they were read from the storage medium.
- a "valid" block is a block of data obtained from the storage medium which is transmissable to the data buffer 24 and from thence to the first (host) device 21. Thus, neither "bad" blocks or duplicate blocks are considered to be valid blocks.
- the second device 26 includes an error detector which detects the transmission of a suspected "bad" block to the device 26 during a write operation.
- the error detector included with the device 26 also communicates to the data buffer management system the occurrence of an error during a read operation.
- the threshold criteria employed by the error detector for evaluating whether a block is bad is more stringent for a write operation than for a read operation. Accordingly, the error detector of device 26 may require that a block to be rewritten several times before the more stringent error criteria is met.
- the error detector of device 26 may consider many of the rewritten blocks as good blocks rather than bad blocks.
- the plurality of rewritten good blocks are duplicate blocks which should not be transmitted to the buffer 24 nor to the host device 21.
- Valid data blocks are temporarily stored in the buffer memory 24 until processed by the IPORT 16. By providing temporary buffer storage and real-time processing of data blocks read from the device 26, the data blocks can be restored to the correct order without frequent interruptions of the read process.
- the DPORT sequencer 137 receives a signal from the second device 26 that a block of data is available. If the DPORT 18 is ready to handle a new block from the second device, i.e. if the DPORT 18 is finished writing the previous block to the data buffer 24, the DPORT sequencer 137 informs the micro ⁇ controller 12 that a new block is to be processed (step 260).
- step 262 As a data block arrives from the device 26, at step 262 (see Fig. 6A) its associated header is transmitted on the device read header bus 146 for storage in the appropriate DPORT 18 registers.
- the DPORT sequencer 137 gates information into the header registers comprising the DPORT in a predetermined order in accordance with the pre- established format of the header (see FIG. 10B) .
- the block header information is transmitted to the micro-controller 12.
- the micro-controller 12 examines the data from these registers and, in the manner hereinafter described (with reference to Fig. 7), at step 266 determines whether the current data block is valid.
- step 268 the micro ⁇ controller applies data to the DPORT control register 140.
- the DPORT sequencer 137 examines this register for instructions as to how the sequencer 137 is to govern the DPORT functions.
- the DPORT sequencer 137 thereafter takes over the supervision of DPORT functions.
- the sequencer 137 gates data from the DPORT header registers 110 and 104, into the DPORT data address generators 142 and 144.
- the generator 142 generates values corresponding to the addresses in the data buffer 24 whereat the block data is to be stored.
- the sequencer 137 gates the data address generated by the DPORT address generator 142 to the buffer interface 20 via the buffer address bus 30.
- the buffer interface receives the block data information applied on the buffer data bus 28 and stores the same at the location corresponding to the value generated by the DPORT data address generator 142, which address corresponds to the pointer WRptr shown in Fig. 9.
- the micro ⁇ controller 12 enters BLOCK ID and other header information (including BLOCK PHYSICAL ID) with that block into an allocation table 281 maintained in RAM 38.
- the allocation table 281 contains header data for every block currently stored in the data buffer 24, including the BLOCK ID and PHYSICAL BLOCK ID values. Thus, as shown in FIG. 12, the allocation table 281 contains header information for 248 blocks.
- the first device 21 requests a block of data, which request is received at step 302 by the IPORT sequencer 77.
- IPORT sequencer 77 informs the micro ⁇ controller 12 that the host device 21 has requested further data from the buffer management system 10.
- the micro-controller 12 obtains the next BLOCK ID for the next block.
- the next BLOCK ID is obtained by transformching the allocation table 281 and selecting therefrom the next BLOCK ID corresponding to the next value in an increasing monotonic sequence.
- the micro-controller 12 generates data for the IPORT header registers and the IPORT control register 84 (step 308), including the BLOCK ID and PAGE ID data.
- This data is applied (at step 310) to the IPORT header registers and the IPORT control register 84 on the control interface 45.
- the BLOCK ID data and PAGE ID data are applied to the "A" BLOCK ID and to the "A" PAGE ID registers 60 and 64, respectively.
- the IPORT sequencer 77 thereafter takes over the supervision of IPORT functions.
- the sequencer 77 directs that data in "A" registers 60 and 64 be gated into respective "B" registers 62 and 66.
- the sequencer 77 gates data from the IPORT header registers 62,64,68, and 70 into the IPORT data address generator 78.
- the generator 78 generates a value corresponding to the addresses in the data buffer 24 whereat the block data associated with the block is stored. This value corresponds to the pointer RDptr.
- the sequencer 77 gates the data address generated by the IPORT address generator 78 to the buffer interface 20 via the buffer address bus 30.
- block data from the buffer interface 20 is applied to the first device 21 via the buffer data bus 28.
- the micro-controller 12 determines whether the block is valid, i.e. whether the block belongs to a current buffer BLOCK ID group. Valid blocks are stored, whereas invalid blocks are immediately discarded.
- Fig. 7 represents a flow chart of the steps performed to determine whether blocks obtained from the device 26 are valid.
- the micro-controller 12 first examines the buffer read address pointer RDptr and buffer write address pointer WRptr to produce a difference value DBID (Step 350).
- the micro-controller 12 computes a physical distance DPID, the equation for which is discussed below.
- the difference value DBID is compared to a constant Buffer threshold, BTHRESH. An equation for calculating BTHRESH is discussed below. This comparison at step 352 determines the relative "distance" between the current IPORT BLOCK ID read position and the BLOCK ID of the block in question.
- the block belongs to a group of blocks currently undergoing processing (i.e. the current Buffer BLOCK ID Group). If the block is in the current group, the micro-controller 12 checks at step 353 whether the data buffer 24 is currently full.
- the buffer 24 is full if the physical distance DPID is greater than or equal to a Maximum Buffer Block ID (MAXBUFID) .
- MAXBUFID Maximum Buffer Block ID
- the micro-controller 12 halts the device 26 read operation while the host 21 continues to remove data from the buffer 24 (Step 354). When sufficient space is available in the buffer 24, the read operation is resumed.
- the micro-controller 12 determines whether the block has already been stored in the buffer 24 by examining the allocation table 281 maintained in RAM 38. If the block has already been stored, then it is a redundant copy and is discarded (Step 358). Otherwise the block is stored in the data buffer 24 (step 360).
- the micro-controller 12 compares the value of BTHRESH with the physical distance DPID (the equation for which is given below). If this physical distance DPID is greater than or equal to BTHRESH, the block in question is a new block ahead of the current buffer read address pointer RDptr and Buffer Block ID Group. In this case, at Step 364 the micro-controller 12 examines the allocation table 281 in RAM 38 to determine whether the block has already been stored in the data buffer 24. If the block has been stored, it is discarded (step 358); otherwise it will be stored in the buffer 24 (step 360).
- Step 362 If at Step 362 it is determined that the physical distance DPID is less than BTHRESH, then the block is behind the current buffer read address pointer RDptr. In this case the block in question is a redundant copy of a block within the current Buffer Block ID Group, and is discarded (Step 358).
- the physical distance DPID must be adjusted by the block's Retry Count to reflect the PHYSICAL BLOCK ID of the original copy.
- An equation for calculating the physical distance DPID is:
- K (Block Retry Count) x N, where N is the length of the READOUT queue.
- BTHRESH (Maximum BLOCK ID) - (Maximum Block Offset)
- N ll
- Maximum Retry Count 12
- Maximum Block ID 248 (actual physical values range from 0 through 247).
- a BTHRESH value of 128 is used.
- a "Buffer Empty" condition exists when the micro-controller 12 requires the next BLOCK ID to schedule into the IPORT 16 registers and there are no segments in the buffer memory 24 containing data. This condition will cause 15 the SCSI interface 22 to suspend data output to the host 21 until a sufficient amount of data is available in the buffer memory 24.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Communication Control (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US6913287A | 1987-07-02 | 1987-07-02 | |
US69132 | 1987-07-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
EP0371034A1 EP0371034A1 (en) | 1990-06-06 |
EP0371034A4 true EP0371034A4 (en) | 1993-02-24 |
Family
ID=22086955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP19880905495 Withdrawn EP0371034A4 (en) | 1987-07-02 | 1988-05-27 | Method and apparatus for data buffer management |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0371034A4 (en) |
JP (1) | JPH02504083A (en) |
WO (1) | WO1989000312A1 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5239636A (en) * | 1988-09-09 | 1993-08-24 | Advanced Micro Devices, Inc. | Buffer memory subsystem for peripheral controllers |
JP2864741B2 (en) * | 1990-12-19 | 1999-03-08 | 株式会社日立製作所 | Communication system that guarantees data integrity |
DE69831790T2 (en) * | 1998-05-12 | 2006-08-10 | Hewlett-Packard Development Co., L.P., Houston | Method for reading during writing in a data storage device |
JP2000285616A (en) * | 1999-03-30 | 2000-10-13 | Matsushita Electric Ind Co Ltd | Video signal recording and reproducing device |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5354432A (en) * | 1976-10-28 | 1978-05-17 | Toshiba Corp | Memory device |
FR2379112A1 (en) * | 1977-01-27 | 1978-08-25 | Cii Honeywell Bull | METHOD OF WRITING INFORMATION CONCERNING DEFECTS OF A MAGNETIC RECORDING MEDIA |
US4209809A (en) * | 1978-09-11 | 1980-06-24 | International Business Machines Corporation | Apparatus and method for record reorientation following error detection in a data storage subsystem |
USRE31069E (en) * | 1978-09-11 | 1982-10-26 | International Business Machines Corporation | Apparatus and method for record reorientation following error detection in a data storage subsystem |
IT1129809B (en) * | 1979-03-26 | 1986-06-11 | Ugine Kuhlmann | CATALYTIC COMPOSITION FOR THE CONVERSION OF HYDROCARBONS AND PROCEDURE FOR THE DEHYDRATION OF PERFLUOROALCANSOLPHONIC ACIDS INTENDED TO BE PART OF THE BEAUTIFUL COMPOSITION |
US4434487A (en) * | 1981-10-05 | 1984-02-28 | Digital Equipment Corporation | Disk format for secondary storage system |
JPS5877034A (en) * | 1981-10-30 | 1983-05-10 | Hitachi Ltd | Recording method |
JPS58181163A (en) * | 1982-04-16 | 1983-10-22 | Hitachi Ltd | Storage device control method |
US4637023A (en) * | 1983-02-14 | 1987-01-13 | Prime Computer, Inc. | Digital data error correction method and apparatus |
US4549295A (en) * | 1983-06-21 | 1985-10-22 | International Business Machines Corporation | System for identifying defective media in magnetic tape storage systems |
JPS6075931A (en) * | 1983-09-30 | 1985-04-30 | Fujitsu Ltd | Magnetic disk control method |
JPS6084632A (en) * | 1983-10-17 | 1985-05-14 | Nec Corp | Disk controller |
US4672613A (en) * | 1985-11-01 | 1987-06-09 | Cipher Data Products, Inc. | System for transferring digital data between a host device and a recording medium |
-
1988
- 1988-05-27 JP JP63505150A patent/JPH02504083A/en active Pending
- 1988-05-27 WO PCT/US1988/001697 patent/WO1989000312A1/en not_active Application Discontinuation
- 1988-05-27 EP EP19880905495 patent/EP0371034A4/en not_active Withdrawn
Non-Patent Citations (2)
Title |
---|
IBM TECHNICAL DISCLOSURE BULLETIN. vol. 18, no. 5, October 1975, NEW YORK US page 1577 N.OUCHI 'TAPE DEFECT BYPASS SYSTEM' * |
See also references of WO8900312A1 * |
Also Published As
Publication number | Publication date |
---|---|
EP0371034A1 (en) | 1990-06-06 |
WO1989000312A1 (en) | 1989-01-12 |
JPH02504083A (en) | 1990-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR950000550B1 (en) | Semiconductor memory unit | |
US6961816B2 (en) | Disk array device with selectable method for generating redundant data | |
US5155835A (en) | Multilevel, hierarchical, dynamically mapped data storage subsystem | |
US5608891A (en) | Recording system having a redundant array of storage devices and having read and write circuits with memory buffers | |
US3999163A (en) | Secondary storage facility for data processing systems | |
US4805090A (en) | Peripheral-controller for multiple disk drive modules having different protocols and operating conditions | |
EP0477503B1 (en) | Method of recording data in memory card having eeprom and memory card system using the same | |
US4667286A (en) | Method and apparatus for transferring data between a disk and a central processing unit | |
US8397019B2 (en) | Memory for accessing multiple sectors of information substantially concurrently | |
US4467421A (en) | Virtual storage system and method | |
US5751937A (en) | Array type storage unit system | |
US5202979A (en) | Storage system using multiple independently mechanically-driven storage units | |
US4420807A (en) | Selectively holding data in a buffer for defective backing store tracks | |
US4885683A (en) | Self-testing peripheral-controller system | |
CA2218296C (en) | Method and apparatus for storing and retrieving error check information | |
US5127088A (en) | Disk control apparatus | |
EP0371034A4 (en) | Method and apparatus for data buffer management | |
EP0397778B1 (en) | An early start mode method and apparatus | |
JPS6050672A (en) | Read control system of rotary memory | |
JPH02171843A (en) | Interface device | |
US5048020A (en) | Electronic disk subsystem | |
GB2298308A (en) | A disk storage array with a spiralling distribution of redundancy data | |
JPS61133433A (en) | Defective sector alternate processing system in unrewritable data recording medium | |
JPS61134859A (en) | Backup controlling system of memory | |
JPS59178671A (en) | Buff storage replacement method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 19891211 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE CH DE FR GB IT LI LU NL SE |
|
A4 | Supplementary search report drawn up and despatched |
Effective date: 19930107 |
|
AK | Designated contracting states |
Kind code of ref document: A4 Designated state(s): AT BE CH DE FR GB IT LI LU NL SE |
|
17Q | First examination report despatched |
Effective date: 19940124 |
|
GRAH | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOS IGRA |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 19960319 |