Fuse farm redundancy method and system

A system and method for making efficient use of fuse ROM redundancy to increase yield and security. Some embodiments provide a memory repair system including a non-volatile memory component and a controller coupled to the non-volatile memory component. The non-volatile memory component includes a plurality of memory locations. The plurality of memory locations includes a replacement memory location to replace a faulty memory location and a replacement indicia memory location to store replacement memory location indicia. The controller coupled to the non-volatile memory component reads replacement memory location indicia from the replacement indicia memory location, determines an address for the replacement memory location using the indicia, reads the replacement memory location, and transfers a data value contained in the replacement memory location to a second memory component to repair a defective memory location of the second memory component.

BACKGROUND

As integrated circuit feature sizes shrink, memories embedded within an integrated circuit increase in density, and become more prone to failure. These failures reduce yield, resulting in higher cost per unit produced. One method of improving embedded memory yield involves including spare memory cells in the integrated circuit to replace memory cells found to be defective when the chip is tested. Employing redundancy in this manner can significantly improve the yield of embedded memories with minimal investment in die area.

“Fuse farms” are utilized as part of a system of embedded memory redundancy. A non-volatile memory in the fuse farm stores all the information necessary to repair embedded memories by replacing faulty memory cells with spare cells. During device initialization, a controller in the fuse farm reads the repair information from the fuse farm non-volatile memory (“fuse ROM”) and loads the repair information into the on-chip embedded memories.

Being a form of embedded memory, the fuse ROM is itself subject to an increased rate of failure with reduced feature size. Because the fuse farm supplies repair information for the on chip memories, a fault in the fuse farm memory may result in a die that must be discarded. Moreover, users may be permitted to store limited information, such as serial numbers or part identifiers in fuse ROM after the part leaves the manufacturing facility. The fuse ROM may be implemented in a non-erasable memory technology, making pre-shipment testing of the fuse ROM impossible, and subjecting the manufacturer to an increased risk of loss of customer goodwill if the device is discarded due to an in-field fuse ROM programming failure.

SUMMARY

Accordingly there are herein disclosed various embodiments of systems and methods for making efficient use of fuse ROM redundancy to increase yield and security. In some embodiments, a memory repair system includes a non-volatile memory component and a controller coupled to the non-volatile memory component. The non-volatile memory component includes a plurality of memory locations. The plurality of memory locations includes a replacement memory location to replace a faulty memory location and a replacement indicia memory location to store replacement memory location indicia. The controller reads replacement memory location indicia from the replacement indicia memory location, determines an address for the replacement memory location using the indicia, reads the replacement memory location, and transfers a data value contained in the replacement memory location to a second memory component to repair a defective memory location of the second memory component.

In other embodiments, a method for memory repair includes reading a first memory word, determining whether a second memory word is selected to replace the first memory word, reading a second memory word location, determining a location of the second memory word, reading the second memory word, and transferring a data value from the second memory word to repair a defective memory location

In other embodiments, a memory repair system includes a means for non-volatilely storing memory repair information and a means for non-volatilely storing replacement row indexing information. Additionally, the system includes means for accessing the replacement row indexing information, means for determining the location of the memory repair information from the replacement row indexing information, and means for accessing the memory repair information. Means for transferring the memory repair information to a defective memory component to repair the defective memory component is also included.

NOTATION AND NOMENCLATURE

Certain terms are used throughout the following description and claims to refer to particular system components. As one skilled in the art will appreciate, companies may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not function. In the following discussion and in the claims, the terms “including” and “comprising” and “e.g.” are used in an open-ended fashion, and thus should be interpreted to mean “including, but not limited to . . . ”. The term “couple” or “couples” is intended to mean either an indirect or direct connection. Thus, if a first component couples to a second component, that connection may be through a direct connection, or through an indirect connection via other components and connections. The term “system” refers to a collection of two or more hardware and/or software components, and may be used to refer to an electronic device or devices, or a sub-system thereof.

The drawings show illustrative embodiments that will be described in detail. However, the description and accompanying drawings are not intended to limit the claimed invention to the illustrative embodiments, but to the contrary, the intention is to disclose and protect all modifications, equivalents, and alternatives falling within the spirit and scope of the appended claims.

DETAILED DESCRIPTION

Disclosed herein are various systems and methods for making efficient use of redundancy to repair faults in fuse farm non-volatile memory, to thereby increase yield. The disclosed embodiments include a system for repairing a fuse ROM that stores fuse ROM repair information in a fuse ROM word, as well as methods for efficient use of fuse ROM redundant resources by storing fuse ROM repair information in a fuse ROM word.

Generally, a memory repair system incorporating fuse farm technology operates to maintain memory functionality by employing spare memory locations within a memory component in place of faulty memory locations within the component. In other words, faulty memory locations are replaced by, or remapped to, functional locations within the memory component. Because the fuse ROM is a critical element of the memory repair system, flexible and efficient means of utilizing redundant fuse ROM resources must be employed to overcome fuse ROM defects.

FIG. 1shows an illustrative integrated circuit (“IC”)120which includes a fuse farm102coupled to an embedded memory system112,114. Fuse farm102comprises a fuse ROM104for storage of embedded memory repair information and other user data, and a fuse farm controller106for accessing the fuse ROM104. The fuse ROM104is a non-volatile memory that may be implemented in a variety of non-volatile memory technologies, for example, fusible link, anti-fuse, EPROM, EEPROM, FLASH, ferroelectric, magnetic, or equivalent non-volatile memory technologies. The fuse farm controller106orchestrates the transfer of memory repair information from the fuse ROM104to the embedded memories112,114during device initialization. Controller106may be implemented as a state machine, a processor and associated program, or equivalent.

The embedded memories112,114include spare memory cells that may replace memory cells found to be defective when the memories112,114are tested during production. Repair information for enabling spare cells to replace defective cells is written into the fuse ROM104as part of the manufacturing process. During device initialization, controller106reads repair information from fuse ROM104and transfers the repair information to embedded memories112,114via interface116, which generally comprises a serial scan chain. Note that in the context of the present disclosure, the term “repair” refers not to restoring a defective memory cell to proper operation, but to maintaining operability of the memory as a whole in spite of a defective memory cell through application of redundancy and other techniques.

The controller106also manages access to the fuse ROM104. An interface108, for example a Joint Test Action Group (“JTAG”) interface, allows external systems122to access the fuse farm102. Memory repair information and other user information to be written into the fuse ROM102may be transferred via interface108. On-chip systems118, for example a processor core, may access the fuse farm102through other provided interfaces. Controller106operates to enhance device security by disabling read or write access to the programmed fuse ROM104by on-chip systems118or external systems122.

The reliability of fuse farm102is one factor in achieving the yield improvements enabled by including redundant memory cells in embedded memories112,114. Existing systems have implemented a variety of reliability enhancement strategies.FIG. 2shows an illustrative array of fuse ROM memory blocks202. Each memory block202is further subdivided into rows or words204,206. One or more of memory rows206may be reserved to replace memory rows204found to be defective.

Referring now toFIG. 3, an example of a fuse ROM memory row204is illustrated. In the example ofFIG. 3, the fuse ROM memory row204comprises a data field306, a repair address (“RA”) field302, and set of access control flags304. Some embodiments of fuse farm102apply the RA field302to implement single bit error repairs. When a value is written to data field306, and subsequent read-back of data field306indicates a single defective bit, the column number of the defective bit may be written into the RA field302. The column number stored in RA field302is used to correct the defective bit when the row204is subsequently read. When post-write verification of the data field306indicates multiple defective bits, or when an attempt to correct a single bit error by writing a column number to the RA field302fails, a replacement row206may be substituted for the defective row204. Some fuse farm102embodiments set a repair flag308to indicate that the row204is defective and has been superseded by a replacement row206. In some fuse farm implementations, selection of a replacement row206may be based on the address of the defective row. For example, when two rows of block202have been allocated for use as replacement rows206, the least significant bit (“LSB”) of the address of the defective row204may serve as an index to the replacement row206. Similarly, when four rows of block202have been allocated for use as replacement rows206, the two LSBs of the address of the defective row204may serve as an index to the replacement row206. Unfortunately, this indexing method limits row replacement to one of each of a plurality of rows having the same address LSBs. Consequently, notwithstanding the fact that adequate replacement rows are available, when two rows having the same address LSBs are defective, the fuse ROM cannot be repaired, and the device is discarded.

The embodiments of the present disclosure provide for efficient use of fuse ROM replacement rows, thereby reducing the number of unrepairable fuse ROM defects and improving device yield.FIG. 4Ashows a first embodiment of an illustrative application of a reserved field, in this example the RA field302and control flag field304, of a defective fuse ROM row204to identify a replacement row206. InFIG. 4A, the repair flag308is set indicating substitution of a replacement row206for this defective row204. The write protect (“WP”)312and the read protect (“RP”)310flags are reset indicating that the RA field302contains a replacement row index. By writing replacement row indexing information into a relatively large field of the defective fuse ROM row204, such as the RA field302, a substantial number of replacement rows206may be directly accommodated. To enhance data security, the data in defective data field306may be obfuscated by overwriting the defective data field306with, for example, a random value or all ones.

FIG. 4Billustrates a second aspect of the embodiment ofFIG. 4A. InFIG. 4A, the WP312and RP310flags are “0,” which, for purposes of this illustration, is the state of a fuse ROM memory cell prior to programming. The WP312and RP310flags, so reset, signify that the RA field302contains a replacement row index. If a defect in the RA field302is identified after writing the replacement row index, and the resultant RA field302value is unacceptable for use as a replacement row index, then a two bit non-zero index value may be written to WP312and RP310. The two bit index value written to WP312and RP310may be used alone or in combination with the defective row address to form a replacement row index. Thus the use of the reserved fields of a defective row support both inter and intra row redundancy.

FIG. 7shows a flow diagram for an illustrative fuse ROM repair method incorporating storage of replacement row indexing information in a reserved field of the defective row204. In block702, a value is written to a data field306of a fuse ROM memory row204. The value is read from the fuse ROM to determine whether the row204is defective in block704. If the write was successful, the operation is complete. If the write failed due to a single bit error in block706, the column number of the faulty bit is written to the RA field302in block708. The column number write is verified in block710, and if successful, the write operation is complete. If the column number write is unsuccessful, the repair flag308is set in block726to indicate replacement of the defective row204. Data field306is overwritten in block728to obfuscate any value previously written. When an unsuccessful column number write results in an RA field302value acceptable for use as a replacement row index in block720, the data value is written into the selected fuse ROM replacement row206in block724and the operation is complete. When an unsuccessful column number write results in an RA field302value unsuitable for use as a replacement row index, a two bit non-zero index value is written to the WP312and RP310fields in block722, and the data value is written into the selected fuse ROM replacement row206in block724.

If a multi-bit error is detected in block706, the repair flag308is set in block712. The set repair flag308indicates that a replacement row206is being substituted for the defective row204. Data field306is overwritten in block714to obfuscate any value previously written, and a replacement row index is written to the RA field302in block716. The RA field302write is verified in block718. If the RA field write was successful, the data value is written to the selected fuse ROM replacement row206in block724. If the RA field write was unsuccessful, the acceptability of the RA field value for use as a replacement row index is determined in block720. For example, if an RA field value resulting from a failed write can nevertheless be used to build a useable replacement row index, the RA field value may be acceptable. If the RA field value is deemed acceptable in block720, the data value is written to the selected fuse ROM replacement row206in block724. If the RA field value is unacceptable, then a two bit non-zero index value is written to the WP312and RP310fields in block722, and the data value is written to the selected replacement row206in block724.

FIG. 8shows a flow diagram for an illustrative fuse ROM reading method complementary to the replacement row index storage method ofFIG. 7. In block802, the controller106reads a fuse ROM row204. If, in block804, the repair flag308is reset, then the row204is deemed free of multi-bit errors, single-bit errors indicated by the RA field302are corrected, and the read operation is complete. If the repair flag308is set, the row204is defective and a replacement row206has been substituted. In block806, if the row's WP312and RP310flags are reset, the replacement row index is read from the RA field302in block808and used to read the selected fuse ROM replacement row206in block812. If the WP312and RP310flags are found to be not reset in block806, then the two bit index value contained in the WP312and RP310flags may be used to build a replacement row index in block810. For example, the two bit index value contained in the WP312and RP310flags may be combined with the address of the defective row to form a replacement row index. Numerous methods of combining of the index value stored in WP312and RP310with the defective row address can be used to generate the replacement row index, including using the index value in WP312and RP312as a complete replacement row index, or using the index value in WP312and RP310as the LSBs of a replacement row index. The replacement row index built in block810is used to read the selected fuse ROM replacement row206in block812.

FIGS. 5A,5B, and5C show a first alternative embodiment of an illustrative application of a reserved field, in this example, the RA field302and control flag field304, of a defective fuse ROM row204to identify a replacement row206. InFIG. 5A, the repair flag308is set indicating that a replacement row206is to be substituted for this defective row204, and the WP312and RP310flags are set as a security measure to prevent systems118,112external to the fuse farm102from accessing this fuse ROM row204. In this embodiment access protection redundancy may be provided by disabling both external read and write accesses to the row204when either of the WP312or RP310flags is set.

InFIGS. 5A,5B, and5C, the RA field302is subdivided into three sets of two bit sub-fields to provide index field redundancy. As exemplified inFIG. 5A, when sub-field RA[1:0] contains a non-zero value, that is, when at least one bit of the sub-field is a “1,” the non-zero value denotes an index that may alone or in combination with the address of the defective row be used to identify the replacement row206. When an index value containing sub-field is identified, higher order RA sub-fields are ignored. Consequently, inFIG. 5A, sub-fields RA[3:2] and RA[5:4] need not be read. InFIG. 5B, the RA[1:0] sub-field is unprogrammed, and therefore zeroed. The zeroed RA[1:0] sub-field indicates that RA[1:0] does not contain an index value, but rather that an index value may be read from one of the higher order RA sub-fields. Sub-field RA[3:2] contains a non-zero index value inFIG. 5B, so sub-field RA[5:4] need not be read. Finally,FIG. 5Cillustrates a situation in which both sub-field RA[1:0] and sub-field RA[3:2] are zeroed, indicating that they are unprogrammed and that a two bit index value may be read from sub-field RA[5:4].

FIG. 9shows a flow diagram for an illustrative first alternative fuse ROM104repair method incorporating storage of a replacement row index in a reserved field of a defective row204. In block902, a value is written to the data field306of a fuse ROM memory row204. The value is read from the fuse ROM104to determine whether the row204is defective in block904. If the write was successful, the operation is complete. If the write failed due to a single bit error in block906, the column number of the faulty bit is written to the RA field302in block908. The column number write is verified in block910, and if successful, the write operation is complete. If, in block910, the column number write failed, the repair flag308is set in block912indicating that a replacement row206is being substituted for the defective row204. The RA sub-field values resulting from the failed write of block908may be used as an index by the method ofFIG. 10. In block926, the RP310and WP312flags are set to inhibit access to the defective row by systems118,122external to the fuse farm102.

If a multi-bit error was detected in block906, the repair flag308is set in block914. The repair flag308indicates that a replacement row206is being substituted for the defective row204. In block916, an index value which may be used to identify a selected replacement row206is written to sub-field RA[5:4]. If, in block918, the index value write was successful or the resultant sub-field value is acceptable as an index value, the WP312and RP310flags are set in block926to inhibit access to the defective row204by systems118,112external to the fuse farm, and the data value is written to the selected fuse ROM replacement row206in block928. If the RA[5:4] sub-field value is unacceptable in block918, an index value is written to sub-field RA[3:2]. If in block922, the index value write was successful or the resultant RA[3:2] sub-field value is acceptable as an index value, the WP312and RP310flags are set in block926to inhibit access to the defective row204by systems118,122external to the fuse farm102. The data value is written to the selected fuse ROM replacement row206in block928. If the RA[3:2] sub-field value is unacceptable in block922, an index value is written into sub-field RA[1:0] in block924and the WP312and RP310flags are set in block926to inhibit access to the defective row204by systems118,122external to the fuse farm102. The data value is written to the selected fuse ROM replacement row206in block928.

FIG. 10shows a flow diagram for an illustrative fuse ROM104reading method complementary to the index value storage method ofFIG. 9. The method employs successive testing of RA sub-fields to identify a valid index value for location of replacement row206. In block1002, the controller106reads a fuse ROM row204. If the repair flag308is not set in block1004, then the row204is deemed free of multi-bit errors, single-bit errors indicated by the RA field302are corrected, and the read operation is complete. If the repair flag308is set in block1004, the row204is defective, and a replacement row206has been substituted. In block1006, if sub-field RA[1:0] is non-zero, then sub-field RA[1:0] contains an index value for identifying a replacement row206. In block1008, the contents of sub-field RA[1:0] alone or in combination with the defective row address may be used to build a replacement row index and to read the selected fuse ROM replacement row206in block1016. A replacement row index may be built in block1008by, for example, combining the index value extracted from the RA sub-field with the upper bits of the defective row address, such that:
ReplacementRowIndex=(DefectAddress & SubFieldMask)|IndexValue,
where DefectAddress is the address of the defective row, SubFieldMask zeros the address field to be replaced by IndexValue, IndexValue is the index value extracted from the RA sub-field, and “&” and “|” denote bit-wise “AND” and “OR” respectively. As in any of the disclosed embodiments, the replacement row index may constitute any value leading to the location of the replacement row206including the address of the replacement row206.

If sub-field RA[1:0] contains all zeros in block1006, sub-field RA[1:0] does not contain an index value, and sub-field RA[3:2] may be tested for an index value in block1010. If, in block1010, sub-field RA[3:2] is found to contain a non-zero value, then sub-field RA[3:2] contains an index value which in block1012may be used alone or in combination with the defective row address to build a replacement row index and to read the selected fuse ROM replacement row206in block1016. If sub-field RA[3:2] contains all zeros in block1010, field RA[5:4] contains an index value, and in block1014, the contents of sub-field RA[5:4] may be used alone or in combination with the defective row address to build a replacement row index and to read the selected fuse ROM replacement row in block1016.

FIGS. 5D and 5Eshow an alternative embodiment of an illustrative application of a reserved field to identify a replacement row206wherein the RA field302is subdivided into two three bit sub-fields. The present embodiment is similar in many respects to the embodiment of5A-5C, but employs a three bit rather than a two bit index field. InFIG. 5D, the repair flag308is set indicating that a replacement row206is to be substituted for the defective row204. The WP312and RP310flags are set as a security measure to prevent systems118,122external to the fuse farm102from accessing the defective fuse ROM row204. In this embodiment, access protection redundancy is provided by disabling access to the defective row204by systems118,122external to fuse farm102when either of the WP312or RP310flags is set.

The RA field302is subdivided into a set of two three bit sub-fields to provide redundant storage for replacement row identifying index values. As illustrated inFIG. 5D, when sub-field RA[2:0] contains a non-zero value, that value denotes an index that may alone or in combination with the address of the defective row204be used to identify the replacement row206. In this embodiment, when an index containing sub-field is identified, higher order RA sub-fields are ignored. Consequently, inFIG. 5Dsub-field RA[5:3] need not be read. InFIG. 5E, the RA[2:0] sub-field is unprogrammed, and therefore contains zeros. The zeroed RA[2:0] sub-field indicates that RA[2:0] does not contain an index value, but rather that an index value may be read from the RA[5:3] sub-field.

FIGS. 6A,6B, and6C show yet another alternative embodiment of an illustrative application of a reserved field, in this example, the RA field302and control flag field304, of a defective fuse ROM row204to identify a replacement row206. InFIG. 6A, the repair flag308is set indicating that a replacement row206is to be substituted for this defective row204. The WP312and RP310flags are set as a security measure to prevent access to the defective fuse ROM row204by systems118,122external to the fuse farm102. In this embodiment access protection redundancy is provided by disabling access to the defective row204by systems118,122external to the fuse farm102when either of the WP312or RP310flags is set.

The RA field302is subdivided into a set of three two bit sub-fields to provide index field redundancy. As illustrated inFIG. 6A, when sub-field RA[5:4] contains both a one and a zero, that value denotes an index that may alone or in combination with the address of the defective row be used to identify a replacement row206. In this embodiment, when an index containing sub-field is identified, lower order RA sub-fields are ignored. Consequently, inFIG. 6Asub-fields RA[3:2] and RA[1:0] need not be read. InFIG. 6B, the RA[5:4] sub-field contains either all ones or all zeros, indicating that the RA[5:4] sub-field does not contain an index value, but rather that an index value may be read from one of the lower order RA sub-fields. Sub-field RA[3:2] contains both a zero and a one, and consequently contains an index value that may alone or in combination with the address of the defective row be used to identify the replacement row206. InFIG. 6C, both RA[5:4] and RA[3:2] contain either an all ones or all zeros value, indicating that a replacement row identifying index value may be read from a lower order RA sub-field, e.g., sub-field RA[1:0].

FIG. 11shows a flow diagram for an illustrative second alternative fuse ROM104repair method incorporating storage of a replacement row index in a reserved field of the defective row204. In block1102, a value is written to the data field306of a fuse ROM memory row204. The value is read from the fuse ROM104to determine whether the row204is defective in block1104. If the write was successful, the operation is complete. If the write failed due to a single bit error in block1106, the column number of the faulty bit is written to the RA field302in block1108. The column number write is verified in block1110, and if successful, the write operation is complete. If, in block1110, the column number write failed, the repair flag308is set in block1112indicating that a replacement row206is being substituted for the defective row204. The RA sub-field values resulting from the failed write of block1108may be used as a replacement row index by the method ofFIG. 12. In block1126, the RP310and WP312flags are set to prevent access to the defective row204by systems118,122external to fuse farm102, and the data value is written to the selected fuse ROM replacement row206in block1128.

If a multi-bit error is detected in block1106, the repair flag308is set in block1114. The repair flag308indicates that a replacement row206is being substituted for the defective row204. In block1116, a replacement row identifying index value is written to sub-field RA[1:0]. If, in block1118, the index value write was successful, the WP312and RP310flags are set to inhibit systems118,122external to the fuse farm102from accessing the defective row204in block1126, and the data value is written to the selected replacement row206in block1128. If, in block1118, the index value write failed, a replacement row index is written to sub-field RA[3:2] in block1120. If in block1122the index value write was successful, the WP312and RP310flags are set in block1126to inhibit systems118,122external to the fuse farm102from accessing the defective row204. The data value is written to the selected replacement row in block1128. If the index value write to sub-field RA[3:2] failed in block1122, an index value is written into sub-field RA[5:4] in block1124, the WP312and RP310flags are set in block1126to prevent fuse farm external systems118,112from accessing the defective row204, and the data value is written to the selected replacement row in block1128.

FIG. 12shows a flow diagram for an illustrative fuse ROM reading method complementary to the replacement row index storage method ofFIG. 11. The method employs successive testing of RA sub-fields to identify a replacement row locating index value. In block1202, the controller106reads a fuse ROM row204. If the repair flag308is not set in block1204, then the row204is deemed free of multi-bit errors, single-bit errors indicated by the RA field302are corrected, and the read operation is complete. If the repair flag308is set, the row204is defective and a replacement row206has been substituted. In block1206, if sub-field RA[5:4] contains both a zero and a one, then sub-field RA[5:4] contains a replacement row identifying index value, and the contents of sub-field RA[5:4] may be used in block1208to build a replacement row index, and to read the selected fuse ROM replacement row206in block1216. A replacement row index may be formed in block1208by, for example, combining the index value extracted from the RA sub-field with the upper bits of the defective row address, such that:
ReplacementRowIndex=(DefectAddress & SubFieldMask)|IndexValue,
where DefectAddress is the address of the defective row, SubFieldMask zeros the address field to be replaced by IndexValue, and IndexValue is the index value extracted from the RA sub-field.

If sub-field RA[5:4] contains all zeros or all ones in block1206, sub-field RA[5:4] does not contain a replacement row index, and sub-field RA[3:2] is tested for a valid replacement row index value in block1210. If in block1210sub-field RA[3:2] is found to contain neither all ones nor all zeros, then sub-field RA[3:2] contains an index value, and the contents of sub-field RA[3:2] may be used in block1212to build a replacement row index, and to read the selected fuse ROM replacement row206in block1216. If field sub-RA[3:2] contains all ones or all zeros in block1210, then sub-field RA[1:0] contains an index value. In block1214, the contents of sub-field RA[1:0] are used to build a replacement row index, and to read the selected fuse ROM replacement row206in block1216.

As disclosed, some embodiments apply the RA field302to correct single bit memory faults within the data field306. Control flag field304failures are also correctable using the RA field302. Referring now toFIG. 3and Table 1 below, where Table 1 contains a set of illustrative RA values for correcting data field306and control field304bit errors. When a multi-bit data field306error or an RA field302error necessitates row replacement, repair flag308is set. As illustrated in Table 1, various RA field302values may be reserved to correct a repair flag302memory failure. When a repair flag308write fails, an appropriate value may be written to the RA field302to accomplish a repair flag308correction. When a single data field bit error is detected, and the subsequent RA field column write fails, and the requisite repair flag308write also fails, the repair flag308failure is correctable by setting the appropriate RA field bits. The resultant RA field302value may be used as an index value to build a replacement row index. Thus, this disclosure also supports repair flag308redundancy.

While illustrative embodiments of this invention have been shown and described, modifications thereof can be made by one skilled in the art without departing from the spirit or teaching of this invention. The embodiments described herein are illustrative and are not limiting. Many variations and modifications of the methods and apparatus are possible and are within the scope of the invention. Accordingly, the scope of protection is not limited to the embodiments described herein, but is only limited by the claims which follow, the scope of which shall include all equivalents of the subject matter of the claims.