Abstract:
Fault tolerant data storage systems and methods of operating a fault tolerant data storage system are presented. In one aspect of the invention, a fault tolerant data storage system comprises: a plurality of coupled components individually including: an interface adapted to couple with a data connection and to selectively receive a plurality of transactions from the data connection; transaction processing circuitry coupled with the interface and configured to process transactions received from the interface; and analysis circuitry configured to detect error conditions within the transactions and to prevent entry of transactions individually including an error condition into the respective component responsive to the detection.
Abstract:
A verification system for an interchangeable component configured to be mated with a receiving system. The system includes a key device supported by the interchangeable component. The key device includes a transmitter configured to transmit a signal comprising component identification characteristics. The system further includes a lock system having a signal receiver and a verification component. The signal receiver is configured to receive the signal from the key device transmitter and pass the signal to the verification component. The verification component is configured to use the signal to determine whether or not the component should be admitted to the receiving system, and to generate an authorization signal if the component should be admitted.
Abstract:
Methods and systems for fault location are described. In one described embodiment, an “in circuit” solution is provided for locating faults along a passive transmission line. Once a fault occurs, various hardware gathers information that is necessary to determine which of a number of different replaceable components has failed. This enables the subsystem to properly respond to the fault condition and thereby eliminate any guessing that could potentially lead to loss of data availability. In the particular described embodiment, signals are driven and received through a selected input/output (I/O) pad. Logic circuitry is provided and launches a wave onto the passive transmission line. Immediately following the launching of the wave, the I/O pad is monitored and can sense the reflections from the wave that has just been launched. By analyzing the reflections, and more specifically the time that it takes for the reflection to be sensed, a determination is made as to the fault location. Once the fault location (or distance thereto) is ascertained, a determination can be made as to which component has failed. At this point, an intelligent decision can be made as to which component should continue operation.
Abstract:
A storage management system for a Redundant Array of Independent Disks (RAID) data storage system and an AutoRAID memory transaction manager for a disk array controller are disclosed. The disk array controller enables a consistent, coherent memory image of the data storage space to all processors across hot-plug interfaces. To external processes seeking to read or write data, the memory image looks the same across the hot-plug interface. The disk array controller has two identical controllers, each with its own non-volatile memory, to maintain redundant images of disk array storage space. A hot-plug interface interconnects the two controllers. Each controller has an AutoRAID memory transaction manager that enables sharing of cyclic redundancy check (CRC)-protected memory transactions over the hot-plug interface between the two controllers. The AutoRAID memory transaction managers also have transaction queues which facilitate ordered execution of the memory transactions regardless of which controller originated the transactions. The AutoRAID transaction manager includes first and second bus interfaces, a mirror entity, and a local memory interface. Mirrored read and write transactions are handled atomically across the hot-plug interface.
Abstract:
The present invention provides improved compression ratios for small data sets with only a minor impact of the compression ration of larger data sets by rapidly tracking the statistics at the beginning of the compression run, slowing down to a traditional pace as the size increases. This is accomplished by limiting the size of the probability table at the start. As more data passes through the compressor, the size of the table is expanded. The size of the probability is controlled by gradually opening the context window for limited number of bytes at the beginning of the data set.
Abstract:
The present invention provides improved compression ratios for small data sets with only a minor impact of the compression ration of larger data sets by selecting a context model optimized for the size of the data set being processed. The size of the original data is determined. Based on the size, a context model is selected. The original data is compressed into the compressed data using the context model. Any number of context models may be defined and appropriate values chosen. To decompress, it is necessary to select a context model based on the size of the original data. Two ways of detecting the correct context model are described. First, the size of the original data is part of the compressed data. Alternatively, an indicator, identifying which context model was used to compress the original data, is part the compressed data.
Abstract:
A system converts a source image, which may include plural grey level source pixels at a first resolution level, to a destination image at a second resolution level. The system employs a scaling subsystem including a memory which stores at least a portion of a row of source pixels, a scale factor and a relative input index array (RIIA) comprising a single index bit for each column of the destination image. Each index bit enables a grey level source pixel to be identified to be used in scaling of the source image to the second resolution. A scale logic circuit is responsive to each index bit and the source pixels, to associate at least one source pixel with each column of the destination image. The scaling subsystem further includes a control processor which calculates the RIIA based upon the scale factor stored in the memory.
Abstract:
A system converts a source image of grey level pixel values into a destination image of binary pixel values, the source and destination images having different levels of resolution. The system includes a memory which stores at least a portion of a row of source pixels, a corresponding row of a grey level threshold matrix and a relative input index array (RIIA) which employs a single index bit for each column of the destination image. Index bits are read from the memory and placed in an index bit register, and N source pixel values are written into a source register. A scale logic circuit includes N destination image column outputs and is responsive to each index bit, to output one grey level source pixel on each output. An alignment switch is responsive to a clock input to provide N threshold pixel value outputs that are aligned with corresponding destination image pixels. A comparator compares each source grey level pixel with a corresponding threshold pixel value and assigns a binary value in accordance with the comparison action. A controller initially loads the registers with values from the memory and then synchronously operates the system to output, in parallel, N destination image binary pixel values per clock cycle.
Abstract:
Because laser printers are capable of rendering only a maximum number of characters per unit time, pervious printer would pre-render the entire page prior to print the page. This pre-rendering process greatly increases the memory requirements. To overcome this problem, there is provided a method for reducing memory requirements in a laser printer when printing a page of characters. First, the page is divided into a series of strips. Next, the entire page is scanned strip by strip for any strips that contain an excess number of characters, where the excess number is that number of character that exceeds the maximum number the printer can render in the given time. Assuming a complex strip is found, any common characters in the complex strips are prerendered. If, after pre-rendering the common characters any strip is still complex, then the excess characters are pre-rendered. Finally, each character in a strip is rendered when the printer is ready to print that strip, if any character in the strip was pre-rendered then it is retrieved from memory. Thus, the present invention renders many of the characters while the page is being exposed. Therefore, the printer can start the exposure process sooner and with significantly lower memory requirements.
Abstract:
A disk controller includes memory that is accessible by both a microprocessor and hardware parity logic. Parity-related operations are identified by scenario, and parity coefficient subsets are stored in a memory table for each different parity-related calculation scenario. To perform a particular parity-related operation, the microprocessor determines the operation's scenario and identifies the corresponding coefficient subset. The hardware parity logic is then instructed to perform the appropriate parity computation, using the identified coefficient subset. In one embodiment, parity segments are calculated by a parity segment calculation module that is embodied as an application specific integrated circuit (ASIC). The ASIC includes one or more result buffers for holding intermediate computation results, one or more mathematical operator components configured to receive data segments and coefficients associated with the data segments and operate on them to provide intermediate computation results that can be written to the one or more result buffers, and one or more feedback lines. The feedback lines are coupled between an associated result buffer and an associated mathematical operator component and provide an intermediate computation result to the math operator for use in calculating parity segments.