IP Library › Granted Patent US 11,657,889
Granted Patent B2
US 11,657,889 · App. 16/827,235 · Granted May 23, 2023

Error correction for dynamic data in a memory that is row addressable and column addressable

Inventors: Jawad B. Khan (Portland, OR); Richard L. Coulson (Portland, OR); Zion S. Kwok (Vancouver, CA); Ravi H. Motwani (Fremont, CA)
Assignee: Intel Corporation
G11C29/42G11C5/025G11C11/409G11C29/021G11C29/44G11C2029/1204
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,657,889
App. No.
16/827,235
Granted
May 23, 2023
Kind
B2
Abstract

Error correction values for a memory device include row error correction values and column error correction values for the same memory array. The memory device includes a memory array that is addressable in two spatial dimensions: a row dimension and a column dimension. The memory array is written as rows of data, and can be read as rows in the row dimension or read as columns in the column dimension. A data write triggers updates to row error correction values and to column error correction values.

Claims (33)

1. A memory device comprising:

a memory array addressable in two spatial dimensions, including a row dimension and a column dimension, the memory array including bit cells that can be read as rows in the row dimension or read as columns in the column dimension, where a row of bits cells stores a row-oriented codeword and a row ECC (error checking and correction) value for the row-oriented codeword, and a column of bit cells stores a column-oriented codeword and a column ECC value for the column-oriented codeword;

a controller configured to generate and store in the memory array, row ECC values for the rows of the memory array and column ECC values for the columns of the memory array, and in response to a data write to a selected row of the memory array, the controller is configured to update a row ECC value for the selected row and to update one or more column ECC values; and

a cache to store one or more updated ECC values in response to the data write, the cache including a column ECC cache to store column ECC values;

wherein the controller is configured to store in the column ECC cache column ECC values updated in response to the data write, and in response to a read request for a selected column in the column dimension, read a column ECC value for the selected column from the column ECC cache instead of from the memory array.

2. The memory device of claim 1 , wherein in response to the data write, the controller is configured to read one or more column ECC values from the memory array, update the one or more column ECC values consistent with the data write, and write the updated column ECC values to the column ECC cache.

3. The memory device of claim 1 , wherein the controller is configured to update multiple column ECC values in parallel in a single operation.

4. The memory device of claim 1 , wherein the cache comprises a row cache to store recent row writes.

5. The memory device of claim 4 , wherein the row cache includes a number of rows less than a number of bits of column ECC in a single column ECC value.

6. The memory device of claim 4 , wherein in response to a read request in the row dimension for a selected row in the row cache, the controller is configured to read a row ECC value for the selected row from the row cache.

7. The memory device of claim 4 , wherein in response to a read request in the column dimension for a selected column, the controller is configured to read the selected column from the memory array, perform ECC on the selected column with a corresponding column ECC value from the memory array, and update the selected column based on rows stored in the row cache.

8. The memory device of claim 1 , wherein the cache comprises a power fail-safe memory having an energy store to flush to the memory array in response to detection of a power failure.

9. The memory device of claim 1 , wherein the controller is configured to update only column ECC values for columns whose bit cell changed in response to the data write.

10. The memory device of claim 9 , wherein for a workload having data writes in the row dimension with a single digit number of bit cells being changed in the row, the controller is configured to write the row and the row ECC value to the memory array, and to update the column ECC value for each column having a bit cell changed in the row.

11. The memory device of claim 9 , wherein the controller is configured to identify changed columns during a read-modify-write operation to perform the data write.

12. The memory device of claim 1 , wherein the controller is configured to transpose and store column ECC values as rows of column ECC values.

13. The memory device of claim 1 , wherein the memory array comprises an array of three-dimensional crosspoint bit cells.

14. A system, comprising:

a host controller; and

a nonvolatile memory device, including

a three-dimensional crosspoint (3DXP)-memory array addressable in two spatial dimensions, including a row dimension and a column dimension, the memory array including bit cells that can be read as rows in the row dimension or read as columns in the column dimension, where a row of bits cells stores a row-oriented codeword and a row ECC (error checking and correction) value for the row-oriented codeword, and a column of bit cells stores a column-oriented codeword and a column ECC value for the column-oriented codeword;

an access controller configured to generate and store in the memory array, row ECC values for the rows of the memory array and column ECC values for the columns of the memory array, and in response to a data write to a selected row of the memory array, the acccss controllcr is configurcd to update a row ECC value for the selected row and to update one or more column ECC values; and

a cache to store one or more updated ECC values in response to the data write, the cache including a column ECC cache to store column ECC values;

wherein the access controller is configured to store in the column ECC cache column ECC values updated in response to the data write, and in response to a read request for a selected column in the column dimension, read a column ECC value for the selected column from the column ECC cache instead of from the memory array.

15. The system of claim 14 , wherein the nonvolatile memory device further includes a column ECC cache to store column ECC values, wherein the access controller is configured to store in the column ECC cache column ECC values updated in response to the data write.

16. The system of claim 14 , wherein the nonvolatile memory device further includes a row cache to store recent row writes;

wherein in response to a read request in the row dimension for a selected row in the row cache, the access controller is configured to read a row ECC value for the selected row from the row cache; and

wherein in response to a read request in the column dimension for a selected column, the access controller is configured to read the selected column from the memory array, perform ECC corrections on the selected column with a corresponding column ECC value from the memory array, and update the selected column based on rows stored in the row cache.

17. The system of claim 14 , further comprising one or more of:

a host processor device coupled to the host controller;

a display communicatively coupled to a host processor;

a network interface communicatively coupled to a host processor; or

a battery to power the system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2020
From: KHAN, JAWAD B.; COULSON, RICHARD L.; KWOK, ZION S.; MOTWANI, RAVI H.
To: INTEL CORPORATION
Reel/Frame 052228/0023 →
Continuity (1)
Related Publication 20200219580A1 · Jul 9, 2020