Abstract:
A file access history attribute may be encoded and stored with a file in a computer memory. The file access history attribute may provide information as to the date of most recent access and the level of access on which date. In addition, the file access history attribute may provide information concerning recent file history (e.g., previous nine days), quarterly history (e.g., 80 days preceding the previous nine days), as well as long-term history (e.g., beyond the 80 day period). The encoding technique of the present invention may compress file access history information into a compact file access history attribute (e.g., six to twelve bytes). Disk caching software, for maintaining files in a hard drive of a local computer coupled to a network, may utilize the file access history attribute in deciding which files are to be stored in the local hard drive and which should be migrated to network storage or archive. A file history maintenance program may operate as a background job to periodically update file access history relative to a known maintenance start date.
Abstract:
In storage subsystems such as winchester disk, blocks of sequential data corresponding to sectors are concurrently accessed by the disk and the host. Semiconductor memory devices for storing block data are often utilized as storage location for sectors of data read or written to the disk and the host. Application of a semiconductor memory which increases the effective transfer rate of the system is highly desirable particularly in disk storage systems. A semiconductor memory for use in disk storage applications where information is transferred in blocks of data is hereby disclosed. Specifically, the memory includes a main memory configured as a random access memory array having rows and columns, each row having a plurality of n-bit words, a secondary memory having a data register file, first and second parallel-by-bit interfaces and a transferring circuit for transferring data between the main and secondary memories. Access to the main memory through a first interface is achieved independently of accesses to the secondary memory through a second interface thereby allowing concurrent accesses. Accordingly, concurrent and independent semiconductor memory accesses by any two utilization device located externally to the memory such as a host, a disk sequencer, an ECC logic or a microcontroller is performed without corruption of the data. Further included in the secondary memory is a mask register file for maintaining the integrity of adjacent blocks of data when a block or sector of data having more words than the number of words in a row of the main memory is affected.
Abstract:
Display control circuitry is provided which includes a frame buffer (104) having a plurality of memory spaces (301) each for storing a block of display data. Circuitry (200) is provided for generating display position data representing a position on a display screen corresponding to a current display pixel being generated. For each memory space (301), a window control circuit (201) is provided for controlling the transfer of a block of data from the given memory space (301) to a selected window on the display screen. Each window control circuit (201) includes first registers (205, 206) for storing data defining horizontal boundaries of the window, second registers (210, 211) for storing data defining vertical boundaries of the window, and circuitry (207, 208, 209, 212, 213, 214) for comparing the display position data with data stored in the first and second registers and generate an enable signal when the position on the screen of the current pixel is within the window boundaries. Memory control circuitry (300, 302) is provided for retrieving data from the memory space (301) selected in response to the enable signals received from the window control circuits (201).
Abstract:
EDC/CRC checker (70) performs an EDC/CRC check as a block of data is being corrected during a correction pass, thereby obviating buffer access for EDC/CRC purposes subsequent to block correction. During the correction pass, an EDC/CRC sum is accumulated which, upon completion of the pass of the block, is zero EDC/CRC bytes in the block confirm that the block has been corrected. During the single correction pass of the block, bytes of an uncorrected, most-recent codeword are added to the accumulated sum. Bytes of a previous codeword which have a byte synchronization relationship with the byte of the most-recent codeword are corrected (if necessary), and (when correction occurs) error pattern factors including error patterns used to correct the bytes of the previous codeword are also added to the accumulated sum. In the illustrated embodiment, the block is conceptualized as having columns of codewords and the byte synchronization relationship is such that when an uncorrected byte is being accumulated, correction occurs for a corresponding byte of a next previous codeword. Various embodiments of the invention are capable of handling a plurality of codewords simultaneously.
Abstract:
An error correction system operates in two modes: (1) a two-phased mode for correcting computer data having pointers; and (2) a subcode mode for correcting subcode packs included with audio digital data. During the two-phased mode for correcting computer data with pointers, a generator (20), calculator (30), and corrector (60) are each operated during two phases. During a first phase (known as PTR-TIME) the generator (20) generates one or two multi-bit buffer-obtained pointers ( alpha = PO, alpha = P1) for the most-recent codeword while the calculator (30) uses syndromes (S0, S1) generated by generator (20) for a previous codeword CWn-1 to generate one or two error patterns (E0, E1) for the previous codeword. During a second phase (shown as DATA-TIME), the generator (20) generates syndromes (S0, S1) for the most-recent codeword CWn while the calculator (30) performs mathematical operation(s) with respect to any multi-bit buffer-obtained pointers (i.e., P0, P1) for the most-recent codeword CWn. In the subcode mode, the error correction system attempts to perform correction with a subcode pack. In correcting subcodes, the system first generates differing sets of subcode syndromes with respect to differing portions of the pack. After generation of the subcode syndromes, the system controller (10) analyzes the subcode syndromes and applies differing correction strategies in accordance with the analysis. In view of the differing field lengths of the computer data and the subcodes, the syndrome generator (20) is selectively configurable for selection of differing feedback paths (e.g., feedback multipliers).
Abstract:
A memory (200) is provided which includes a plurality of self-contained memory units (201) for storing data. A plurality of shift registers (211) are provided, each including a first parallel port coupled to a data port of a corresponding one of the self-contained memory units (201). Interconnection circuitry (212) is coupled to a parallel data port of each of the shift registers. Control circuitry (208, 213) is provided which is operable to control the exchange of data between a selected one of the memory units and the interconnection circuitry (212) via the shift register (211) coupled to the selected memory unit (201).
Abstract:
Memory circuitry (200) is provided which includes first and second banks of memory cells (201a, 201b) arranged in rows and columns. Row decoder circuitry (210) is included for selecting a row in at least one of the memory banks (201) in response to a row address. Row address circuitry (208, 209, 215) is provided for presenting a sequence of the row addresses to the row decoder circuitry (210) in response to a single row address provided at an address port to memory circuitry (200). Column decoder circuitry (213) is further included for selecting a column in each of the banks (201) in response to a column address. Column address circuitry (211, 212, 215) presents a sequence of the column addresses to the column decoder circuitry (213) in response to a single column address received at the address port to memory circuitry (200).
Abstract:
A processing device (107) is provided disposed on a single chip which includes a controller (103) and a memory (104). The controller (103) is coupled to an address bus (202) and a data bus (204). The memory (103) includes a plurality of independently addressable blocks (200) of memory cells, each block (200) coupled to the address bus (202) and having a selected number of output lines coupled to the data bus (204). The controller (103) accesses a location of the selected number of memory cells of a selected one of the blocks (200) through an address presented on the address bus (202).
Abstract:
Defect management for automatic track processing without an ID field processes defect information for a track on a magnetic media within a disk drive system. A system which uses any method of defect management including linear replacement, sector slipping, cylinder slipping or segment slipping, can be supported. A physical sector number for each sector is translated to a logical sector number relating to the order of data on a track. This translation of the physical sector number to a logical sector number for automatic track processing can be accomplished using any one of three methods: 1) a track defect table can be built in the buffer RAM; 2) the defect information can be written in the header of every sector; or 3) a system FIFO, located in the onboard logic, can be used to manage the defect list. In the second method, the header subfield comprises four defect records. In the third method, if there are more defect records for the track than will fit in the FIFO, then the first and second banks are each loaded while the other is being processed in a ping-pong manner until all of the defect records for the track have been processed. A defect record includes a physical sector number of the defective sector, an offset number and a flag indicating whether or not the defective sector has been slipped. Defect flags are automatically generated by the system for each defective sector.
Abstract:
One-stage and two-stage CRC generation systems (400, 600) feature a CRC generator/checker (700) comprising a segmenter (710) of an input data stream into substreams, a circuit (712) forming a linear combination of the substreams and generating CRC bytes therefrom, and a checker (714) comparing the CRC bytes with previously generated CRC bytes. The two-stage system (600) includes a first CRC generator/checker (601) generating primary CRC bytes, a memory (602) receiving the input data and the primary CRC bytes, and a second CRC generator/checker (603) generating verification CRC bytes for comparison with the primary CRC bytes to check the input data after retrieval from the memory (602) and before input to an encoder (604). The second CRC generator/checker (603) can optionally apply some of the verification CRC bytes to the encoder (604) for use as secondary CRC bytes. The number of CRC bytes outputted by the CRC generator/checkers (601, 603) is programmable.