TL;DR: A write compression buffer is connected to a CPU bus and to a memory controller to provide write cycle compression in which plural partial write requests to the same memory address are compressed into a single memory write cycle as mentioned in this paper.
Abstract: A write compression buffer is connected to a CPU bus and to a memory controller to provide write cycle compression in which plural partial write requests to the same memory address are compressed into a single memory write cycle The buffer has a plurality of buffering level
TL;DR: In this article, an error correcting code (ECC) function and a parity interface scheme providing a translation capability between the ECC and parity protocols is implemented for memory systems in personal computers.
Abstract: An error correcting code (ECC) function and a parity interface scheme providing a translation capability between the ECC and parity protocols is implemented for memory systems in personal computers (PCs). The ECC function addresses the problems of interfacing memory with a variety of other components that may communicate in words composed of differing numbers of bytes. A partial write function within an ECC module permits a read/modify/write operation without extra components, at faster speeds and with minimal use of the system bus. An improved parity/ECC protocol interface is implemented by choosing an appropriate ECC code to facilitate parity generation and checking. This is done by selecting a code that contains groupings of data bits corresponding to the desired parity scheme. The ECC XOR trees are modified to allow parity checking and error correction decode simultaneously, thereby eliminating the need for two sets of XOR trees in the interface.
TL;DR: In this paper, an error arising after a full stripe write is detected by a difference in sequence numbers for all of the components of user data in the stripe, and the errors in both cases are corrected by using the parity metadata for the entire collection of data and the correct information from the other components of the user data and metadata, and applying this information to an error correcting algorithm.
Abstract: Sequence number metadata which identifies an input/output (I/O) operation, such as a full stripe write on a redundant array of independent disks (RAID) mass storage system, and revision number metadata which identifies an I/O operation such as a read modify write operation on user data recorded in components of the stripe, are used in an error detection and correction technique, along with parity metadata, to detect and correct silent errors arising from inadvertent data path and drive data corruption. An error arising after a full stripe write is detected by a difference in sequence numbers for all of the components of user data in the stripe. An error arising after a read modify write is detected by a revision number which occurred before the correct revision number. The errors in both cases are corrected by using the parity metadata for the entire collection of user data and the correct information from the other components of the user data and metadata, and applying this information to an error correcting algorithm. The technique may be executed in conjunction with a read I/O operation without incurring a substantial computational overhead penalty.
TL;DR: In this paper, a read buffering system employs FIFO to hold sequential read data for a number of data streams being fetched by a computer when the system sees a read command from the CPU, it stores an incremented value of the address of the read command in a history buffer and marks the entry as valid The system detects a stream when a subsequent read command specifies an address that matches the address value stored in the history buffer.
Abstract: A read buffering system employs FIFOs to hold sequential read data for a number of data streams being fetched by a computer When the system sees a read command from the CPU, it stores an incremented value of the address of the read command in a history buffer and marks the entry as valid The system detects a stream when a subsequent read command specifies an address that matches the address value stored in the history buffer Upon detecting a stream, the system fetches data from DRAMs at addresses that follow the address of the subsequent read command, and stores it in a FIFO However, to reduce unnecessary prefetching, the system looks for a read X, write X, read X+1 (where X and X+1 designate addresses) succession of commands so as to prevent them from creating a stream This succession occurs often and qualifies as a stream, but is seldom followed by other reads that maintain the stream The system checks for this succession by comparing an incremented value of the address of the write command with each valid address value stored in the history buffer A match causes the system to invalidate the history buffer entry containing the matched address value This effectively disables the use of this address value for detecting a stream upon subsequent read commands and, consequently, for prefetching data from memory
TL;DR: In this article, data read operations before and after the application of a data write magnetic field are executed using read modify write to avoid an influence of an offset or the like resulting from manufacturing irregularities in respective circuits forming a data read path.
Abstract: In one data read operation, data read for reading stored data before and after a predetermined data write magnetic field is applied to a selected memory cell, respectively, is executed, and the data read is executed in accordance with comparison of voltage levels corresponding to the data read operations before and after application of the predetermined data write magnetic field. In addition, data read operations before and after the application of a data write magnetic field are executed using read modify write. It is thereby possible to avoid an influence of an offset or the like resulting from manufacturing irregularities in respective circuits forming a data read path, to improve efficiency of the data read operation with accuracy and to execute a high rate data read operation.