This invention relates generally to computer memory, and more particularly to providing error protection for data-masking bits in a memory system.
Data masking is a technique to allow or block access to one or more locations in a memory device when issuing a read or write command to the memory device. For example, if a memory device has a data bus width of 8 bits (1 byte) and a burst length of 8 bytes per burst, a data mask can be used when issuing a write command burst to the memory device so fewer than 8 bytes are written as part of the burst.
To enhance reliability in a memory system, error detection can be employed. Error detection may be used to detect data errors and initiate a retry of a failed operation to protect against input/output (I/O) errors in a high-speed memory interface channel. For example, a parity bit can be used in conjunction with data received on data pins at a memory device to confirm that even or odd parity is maintained on read or write commands. If an error is detected, e.g., a data bit changed state due to a temporary error condition; a retry of the operation may fix the problem. However, when an error occurs for data-masking bits, the result can be a write of data to an unintended location, for instance, a location that should have been masked is overwritten. Therefore, even though the error may be detected, simply retrying the errant operation will not fix the problem when the errant data mask results in modifying unintended locations. A successful retry does not fix locations that were polluted by the error condition. The polluted data is not recovered because the write operation (without any error) masks writing to the polluted locations.
It would be beneficial to develop an approach to modify a memory system to perform error detection on data-masking bits, preventing errant data mask values from being used to modify data values in memory. Writing data-masking bits on data pins rather than dedicated data mask pins can reduce memory device pin count, but error protection schemes must be modified to account for a potential error occurring while sending data-masking bits to the memory device on the data pins. Accordingly, there is a need in the art for providing error protection for data-masking bits in a memory system.