Method and apparatus for transferring data between a data bus and a data storage device
First Claim
1. A data transmission system for transmitting data between a data bus, which transmits data in the form of multi-byte packets that include a plurality of data bytes and associated parity bits and a packet check sum symbol, and a data storage device, the system comprising:
- A. a microprocessor for controlling a data transfer operation;
B. a bus interface which includesi. receiving means for receiving data from the data bus,ii. byte parity check means for detecting errors in received data bytes using received parity bits,iii. converter means for converting the data bytes to data words and associating with each data word a predetermined number of parity bits,iv. word parity check means for detecting errors in the data words using the associated parity bits,v. encoder/decoder means for encoding a predetermined number of data words and generating error detection symbols,vi. check sum error detecting means for detecting errors in a received multi-byte packet using the received packet check sum symbol,the bus interface asserting an error signal, interrupting the microprocessor and stopping a data transmission operation whenever it detects an error;
C. buffer means for receiving from the bus interface data in groups containing a predetermined number of data words and associated error detection symbols and storing each group in a designated buffer;
D. a storage interface for retrieving the data groups one at a time from the buffer means and encoding the retrieved data, using an error correction code, to generate error correction symbols; and
E. a storage device for receiving the data and error correction symbols from the storage interface and storing the data and the error correction symbols in a storage unit on a storage medium.
8 Assignments
0 Petitions
Accused Products
Abstract
A bus interface between a data bus and data-storage devices provides error protection for multi-byte data packets received from the bus and intended for storage on an associated storage device by checking a packet for errors using check sum symbols and parity bits in the packet. The bus interface then (i) encodes a predetermined number of data symbols to generate error detection symbols, (ii) again checks the data symbols for errors using the parity bits, and (iii) stores the data and associated error detection symbols in one of the series of linked buffers. Each buffer holds enough to fill one storage unit, or sector. A storage interface later retrieves the buffered data and error detection symbols, combines them with the address of a designated storage sector, and encodes the symbols to generate error correction symbols. It then stores the encoded data, and error detection and correction symbols in the designated sector. When the storage interface later retrieves the symbols from the sector, it corrects errors in the data using the retrieved error correction symbols. It next removes the sector address from the error detection symbols and returns the data and error detection symbols to the bus interface. The bus interface (i) generates parity bits, (ii) checks for errors using the error detection symbols, (iii) generates check sum symbols and (iv) transmits the data, check sum and parity symbols over the bus. If the bus interface at any time detects an error, it stops the data transfer operation.
-
Citations
16 Claims
-
1. A data transmission system for transmitting data between a data bus, which transmits data in the form of multi-byte packets that include a plurality of data bytes and associated parity bits and a packet check sum symbol, and a data storage device, the system comprising:
-
A. a microprocessor for controlling a data transfer operation; B. a bus interface which includes i. receiving means for receiving data from the data bus, ii. byte parity check means for detecting errors in received data bytes using received parity bits, iii. converter means for converting the data bytes to data words and associating with each data word a predetermined number of parity bits, iv. word parity check means for detecting errors in the data words using the associated parity bits, v. encoder/decoder means for encoding a predetermined number of data words and generating error detection symbols, vi. check sum error detecting means for detecting errors in a received multi-byte packet using the received packet check sum symbol, the bus interface asserting an error signal, interrupting the microprocessor and stopping a data transmission operation whenever it detects an error; C. buffer means for receiving from the bus interface data in groups containing a predetermined number of data words and associated error detection symbols and storing each group in a designated buffer; D. a storage interface for retrieving the data groups one at a time from the buffer means and encoding the retrieved data, using an error correction code, to generate error correction symbols; and E. a storage device for receiving the data and error correction symbols from the storage interface and storing the data and the error correction symbols in a storage unit on a storage medium. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of transmitting data between a data bus and data storage devices, the data transmitting method comprising the steps of:
-
A. receiving from the data bus a data packet which includes a plurality of data bytes and associated parity bits and a packet check sum symbol; B. detecting errors in the received data bytes using the receiving parity bits and asserting an error signal and interrupting a data transfer operation if any errors are detected; C. converting the data bytes to data words and associating with each data word a predetermined number of received parity bits, if not errors are detected in the data bytes; D. encoding a predetermined number of data words using an error detection code and generating error detection symbols; E. detecting errors in the data words using the associated parity bits and asserting an error signal and interrupting the data transfer operation if any errors are detected; F. storing the predetermined number of data words and associated error detection symbols in a buffer sized to hold one storage unit of data and linking this buffer by pointers with buffers associated with data from the same data packet or a later received packet, if not errors are detected in the predetermined number of data words; G. repeating steps D-F; H. when all the data bytes in a data packet have been encoded and stored, detecting errors in the data packet using the packet check sum symbol and asserting an error signal and interrupting the data transfer operation if any errors are detected; I. encoding the data words and the associated error detection symbols in a first buffer associated with the data packet using an error correction code and generating error correction symbols; J. storing the data words, associated error detection symbols and the error correction symbols in a storage unit of an associated storage device; and K. repeating steps I and J until all the buffered data words have been stored in storage units of the associated storage device. - View Dependent Claims (10, 11, 12)
-
-
13. A method of transmitting data between data storage devices and a data bus, the data transmitting method comprising the steps of:
-
A. retrieving the data stored in a storage unit of an associated data storage device, the data consisting of a predetermined number of data words and associated error detection and error correction symbols. B. detecting and correcting errors in the data words and error detection symbols using the error correction symbols; C. asserting an error signal and interrupting the data transfer operation if all detected errors can not be corrected; D. generating for each data word a predetermined number of parity bits, if all detected errors are corrected; E. detecting errors in the data words using the error detection symbols and asserting an error signal and interrupting the data transfer operation if any errors are detected; F. converting the data words to data bytes and associated with each data byte one of the parity bits associated with the corresponding data word, if no errors are detected; G. repeating steps A-F until the data associated with a data packet has been retrieved; H. generating a check sum symbol for the data packet; and I. transmitting the data packet on the data bus. - View Dependent Claims (14, 15, 16)
-
Specification