Abstract:
PROBLEM TO BE SOLVED: To provide a high performance storage subsystem with a plurality of independent paths for communication between a storage controller and a storage device. SOLUTION: This data processing system has a plurality of independent paths 352, 354 for the communication between a host and a plurality of storage devices. Each path has its own queue 413, 415, services a requests generated by the host and accesses the storage devices 345. Each request is assigned a unique sequential ID and after that, stored in all the queues along with the ID, Each storage device has a 'mailbox' register 500 to store the ID and a status of the executed latest ID. Queues are serviced and their status are updated based on the contents of the mailbox. Consequently, the queue in each path is allowed to be completely out of synchronization with each queue in other paths. COPYRIGHT: (C)2003,JPO
Abstract:
Apparatus for converting binary digital data from one form to another according to a variable word length code of fixed rate comprises word position indicating circuitry for indicating predetermined word position states of data in a data storage unit and conversion circuitry for sequentially converting a constant number of input bits at a time into the corresponding number of bits in said other form in dependence upon the contents of the data storage unit and the word position indication. The constant number of bits is less than the number of bits in the longest variable length word in the input data code form. The word position indicating circuitry either generates an updated function representing the current position of the word boundary in the data storage unit or recognizes the boundary from distinctive word ending patterns in the data storage unit.
Abstract:
An electrical digital transmission method and circuits for improving recorded or transmitted information density. The embodiment serially modulates signal switching with a separation of at least two adjacent clock periods and not over eight clock periods in any sequence of byte transmissions. A fixed length transmission per byte is used. A serial clock cycle is provided per data byte and may be divided into two clock cycle sections. The first clock period of each section is not available for information modulation switching. The remaining clock periods of each section are available to contain electrical current switchings to encode a part of an information byte by permuting the switchings while maintaining the required switching separation. The first clock period of each section contains a switching only if no information induced switching occurs in its adjacent clock periods. These clock switchings assure an output switching within a maximum number of clock periods equal to the longest of the two sections.
Abstract:
A data processing system (300, 800, 1000) having multiple independent paths for communication between a host (310, 810, 1010) and a plurality of storage devices (340, 840, 1040) where each path has its own queue (326, 828) for servicing requests generated by the host for accessing the storage devices. Each request is assigned a unique sequential ID before it is stored, along with its unique ID, in all the queues. Each storage device has a "mailbox" register (500) where the ID and the status (520) of the latest request being carried out is stored. Queues are serviced and their status updated based on the content of the mailbox in each storage device. The combination of assigning a unique task ID to each request and a "mailbox" register in each storage device allows the queue in each path to be completely out of sync with each of the queues in the other paths without causing data integrity problems, duplication of requests at the device level, or a need for complex locking schemes to keep the queues in sync with each other.
Abstract:
A method is disclosed for correcting multibyte errors in a magnetic medium on which data is recorded in variable length blocks that comprise sub-blocks of data bytes and corresponding check bytes and include error correction code (ECC) for which ECC syndromes are generated during reading. A sequence of N sequential parity check bytes is written at the end of each block. After ECC syndromes are generated during reading, parity syndromes are generated by comparing parity check bytes computed from data bytes and check bytes as read with the parity check bytes as written. When a long-burst error occurs, a pointer points to the first of the N consecutive bytes in a block that could have been influenced by the error burst. After correcting correctable errors in all sub-blocks not affected by the N bytes identified by the pointer, and adjusting the parity syndromes for errors thus corrected, the adjusted parity syndromes are used to correct the errors in the N bytes indicated by the pointer. Unused ECC syndromes are then adjusted for errors corrected by the adjusted parity syndromes and used to correct all correctable errors then remaining.
Abstract:
ERROR CORRECTING SYSTEM FOR SERIAL BY BYTE DATA A system is disclosed for generating a plurality of error correcting check ECC bytes from a block of data presented to the system in serial by byte form. The system employs a plurality of ECC channels which operate in parallel with the channel generating check bytes from interleaved subsets of the data block. One channel generates an ECC parity check byte for each interleaved subset while another channel generates an ECC locator check byte for each interleaved subset of data. The ECC locator check byte for each subset represents the parity or modulo 2 sum of bit positions which are selected systematically in accordance with a predefined m sequence which is unique to each channel that generates locator check bytes. Error patterns greater than the number of bits in one byte are correctable, as are error patterns which are less than the number of bits in one byte but extend across byte boundaries of two adjacent bytes in different subsets. SA978033
Abstract:
SEQUENTIAL ENCODING AND DECODING OF VARIABLE WORD LENGTH, FIXED RATE DATA CODES A method of encoding or decoding data in a code of variable length words and fixed rate comprises the steps of (1) initially entering a constant number (k) of input bits into a shift register; (2) entering a constant number (m) of input bits into the shift register; (3) encoding or decoding a constant number (n) of bits in response to the contents of the shift register; and (4) repeating steps (2) and (3) until the input bits are exhausted. To complete the encoding or decoding, steps (2) and (3) are further repeated with dummy input bits until (k) dummy bits have been entered into the shift register. The encoding or decoding of (n) bits may be affected by auxiliary state variables which account for the position in the shift register of the boundary between words.
Abstract:
An electrical digital transmission method and circuits for improving recorded or transmitted information density. The embodiment serially modulates signal switching with a separation of at least two adjacent clock periods and not over eight clock periods in any sequence of byte transmissions. A fixed length transmission per byte is used. A serial clock cycle is provided per data byte and may be divided into two clock cycle sections. The first clock period of each section is not available for information modulation switching. The remaining clock periods of each section are available to contain electrical current switchings to encode a part of an information byte by permuting the switchings while maintaining the required switching separation. The first clock period of each section contains a switching only if no information induced switching occurs in its adjacent clock periods. These clock switchings assure an output switching within a maximum number of clock periods equal to the longest of the two sections.
Abstract:
A data processing system (300, 800, 1000) having multiple independent paths for communication between a host (310, 810, 1010) and a plurality of storage devices (340, 840, 1040) where each path has its own queue (326, 828) for servicing requests generated by the host for accessing the storage devices. Each request is assigned a unique sequential ID before it is stored, along with its unique ID, in all the queues. Each storage device has a "mailbox" register (500) where the ID and the status (520) of the latest request being carried out is stored. Queues are serviced and their status updated based on the content of the mailbox in each storage device. The combination of assigning a unique task ID to each request and a "mailbox" register in each storage device allows the queue in each path to be completely out of sync with each of the queues in the other paths without causing data integrity problems, duplication of requests at the device level, or a need for complex locking schemes to keep the queues in sync with each other.