Random access memory with error correction capability
First Claim
1. A read/write memory, comprising:
- a plurality of data memory cells arranged in rows and columns;
a plurality of code memory cells arranged in rows and columns;
each row of said code memory cells for storing an error detection code corresponding to a row of said data memory cells;
row addressing means for selecting a row of said data memory cells and the corresponding row of said code memory cells;
sensing means for sensing the contents of each data memory cell and each said code memory cell in the row selected by said row addressing means and for writing the contents of said data memory cells and said code memory cells in the selected row;
error detection logic, connected to said sensing means, for detecting an error in the sensed contents of said data memory cells and the contents of the associated code memory cells by way of a predetermined code;
error correction logic, connected to said error detection logic and to said sensing means, for modifying the sensed output for a data memory cell corresponding to an error detected by said error detection logic;
column addressing means for selecting a data memory cell to be read or written responsive to a column address signal;
input/output means, connected to said column addressing means, for externally presenting the modified contents of the selected data memory cell in a read cycle, and for receiving data to be written to the selected data memory cell in a write cycle;
read/write logic, for controlling said input/output means to present data responsive to a read signal, and for controlling said input/output means to receive data in a write cycle;
a data latch having a bit position for each data memory cell in a row, connected to the output of said error correction logic, for storing the output of said error correction logic, and connected to said input/output means and said read/write logic so that, in a write cycle, the bit position corresponding to the data memory cell selected by said column addressing means therewithin is rewritten with the data received by said input/output means;
a data rewrite bus, connected to said data latch and to said sensing means, for communicating the contents of said data latch to said sensing means for application to the data memory cells in the selected row; and
code generation means, connected to said data rewrite bus and to said sensing means, for generating the contents of the code memory cells for the selected row, based upon the contents of said data latch, for application to the code memory cells in the selected row.
1 Assignment
0 Petitions
Accused Products
Abstract
A Random Access Memory with error detection/correction capability includes an information array (10) for storage of a collective data word in a single row thereof and a parity array (12) for storage of corresponding parity information in a single row thereof. A single row of the information array (10) and the parity array (12) are accessed and input to an error correct circuit (54). The collective data and parity information are also input to an error syndrome/parity generator (48), the output of which is input to the error correct circuit (54) to correct bits that are in error. A latch (72) is provided for latching the corrected information therein to allow new data to be written therein. The output of the latch (72) is multiplexed into the error syndrome/parity generator (48) which is configurable as a parity generator to generate new parity information for a write operation. The new collective data and parity information in the write mode are stored in arrays (10) and (12).
-
Citations
12 Claims
-
1. A read/write memory, comprising:
-
a plurality of data memory cells arranged in rows and columns; a plurality of code memory cells arranged in rows and columns;
each row of said code memory cells for storing an error detection code corresponding to a row of said data memory cells;row addressing means for selecting a row of said data memory cells and the corresponding row of said code memory cells; sensing means for sensing the contents of each data memory cell and each said code memory cell in the row selected by said row addressing means and for writing the contents of said data memory cells and said code memory cells in the selected row; error detection logic, connected to said sensing means, for detecting an error in the sensed contents of said data memory cells and the contents of the associated code memory cells by way of a predetermined code; error correction logic, connected to said error detection logic and to said sensing means, for modifying the sensed output for a data memory cell corresponding to an error detected by said error detection logic; column addressing means for selecting a data memory cell to be read or written responsive to a column address signal; input/output means, connected to said column addressing means, for externally presenting the modified contents of the selected data memory cell in a read cycle, and for receiving data to be written to the selected data memory cell in a write cycle; read/write logic, for controlling said input/output means to present data responsive to a read signal, and for controlling said input/output means to receive data in a write cycle; a data latch having a bit position for each data memory cell in a row, connected to the output of said error correction logic, for storing the output of said error correction logic, and connected to said input/output means and said read/write logic so that, in a write cycle, the bit position corresponding to the data memory cell selected by said column addressing means therewithin is rewritten with the data received by said input/output means; a data rewrite bus, connected to said data latch and to said sensing means, for communicating the contents of said data latch to said sensing means for application to the data memory cells in the selected row; and code generation means, connected to said data rewrite bus and to said sensing means, for generating the contents of the code memory cells for the selected row, based upon the contents of said data latch, for application to the code memory cells in the selected row. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A read/write memory, comprising:
-
a plurality of data memory cells arranged in rows and columns; a plurality of code memory cells arranged in rows and columns, each row of said code memory cells for storing an error detection code corresponding to a row of said data memory cells; row addressing means for selecting a row of said data memory cells and the corresponding row of said code memory cells; sensing means for sensing the contents of each data memory cell and each said code memory cell in the row selected by said row addressing means and for writing the contents of said data memory cells and said code memory cells in the selected row; parity/syndrome logic, connected to said sensing means, operative during a first part of the memory cycle to calculate an error syndrome according to a predetermined code based upon the sensed contents of the sensed data memory cells and the code memory cells from the selected row; an error position decoder, connected to the output of the parity/syndrome logic, for determining the location of the data memory cell in error based upon the error syndrome calculated by said parity/syndrome logic; error correction logic, connected to said error position decoder and to said sensing means, for modifying the sensed output of a data memory cell corresponding to an error detected by said parity/syndrome logic; column addressing means for selecting a data memory cell to be read or written responsive to a column address signal; input/output means, connected to said column addressing means, for externally presenting the modified contents of the selected data memory cell in a read cycle, and for receiving data to be written to the selected data memory cell in a write cycle; read/write logic, for controlling said input/output means to present data responsive to a read signal, and for controlling said input/output means to receive data in a write cycle; a data latch having a bit position for each data memory cell in a row, connected to the output of said error correction logic, for storing the output of said error correction logic, and connected to said input/output means and said read/write logic so that, in a write cycle, the bit position corresponding to the data memory cell selected by said column addressing means therewithin is rewritten with the data received by said input/output means; and a data rewrite bus, connected to said data latch and to said sensing means, for communicating the contents of said data latch to said sensing means for application to the data memory cells in the selected row; wherein said parity/syndrome logic is connected to said data rewrite bus, and is operative during a second part of the memory cycle for calculating the contents of said code memory cells in the selected row, based upon the contents of said data latch, for application to the code memory cells in the selected row. - View Dependent Claims (9, 10, 11, 12)
-
Specification