Repairable Latch Array

The integration of built-in self-diagnostic and repair logic in latch arrays allows for on-chip defect detection and replacement, improving yield and reducing power consumption, enabling larger and more reliable latch arrays.

JP2024546305APending Publication Date: 2024-12-19ADVANCED MICRO DEVICES INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024537582
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2021-12-23
Filing Date
2022-12-20
Publication Date
2024-12-19

AI Technical Summary

Technical Problem

Latch arrays in integrated circuits are not repairable, leading to decreased chip yield and limited size due to defects, and existing diagnostic methods increase static power usage and require external systems for testing.

Method used

Implementing a latch array with built-in self-diagnostic and repair logic that includes spare rows and columns to replace defective latches, allowing for on-chip diagnostics and repairs during manufacturing or in the field.

Benefits of technology

Enhances chip yield by enabling larger latch arrays and reduces power consumption by eliminating the need for external diagnostic systems, while providing in-field repair capabilities to maintain functionality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2024546305000001_ABST
    Figure 2024546305000001_ABST
Patent Text Reader

Abstract

The integrated circuit includes a latch array including a plurality of latches logically organized into rows and columns, a plurality of repair latches operably coupled to the plurality of latches, and a latch array built-in self-diagnosis and repair logic (LABISTRL) coupled to the plurality of latches. In some implementations, the LABISTRL configures the latches in the array as one or more column-serial diagnostic shift registers, detects one or more defective latches of the plurality of latches based on applied diagnostic data, and selects at least one repair latch in response to detecting the at least one defective latch.
Need to check novelty before this filing date? Find Prior Art

Description

[Background technology]

[0001] A latch array is a small embedded memory in an integrated circuit chip that has rows and columns of latches used by the processing core and other units to store data, instructions, and status data for the processing core, look-up tables, or other purposes. There may be tens of thousands of latch arrays on a chip. To diagnose each latch array during manufacturing, on some chips, an array scan (RASCAN) circuit configures the latches in the latch array to be a serial shift register during a diagnostic mode. However, defects detected in the latches are not repairable, and the chip is discarded when defects are detected. As a result, chip yields decrease as the size of the latch array increases. Also, because the latch array is not unrepairable, there is a limit to the size of the latch array.

[0002] Latch arrays have also been configured to be diagnosable by memory built in self-test (MBIST) or diagnosable by Automatic Test Program Generation (ATPG). However, for MBIST diagnosable solutions, diagnostic data (at the width of the array) generated on-chip must be routed from the controller to the array for each column of the logic array. This utilizes few routing tracks during normal operation with the MBIST logic and increases static power usage. For Automatic Test Program Generation (ATPG) configurations, diagnostic patterns and diagnostic control are performed off-chip using an external diagnostic system. The latch array is diagnosable but not repairable.

[0003] The embodiments will be more readily understood in light of the following description when taken in conjunction with the following drawings, in which like numerals represent like elements and in which: [Brief description of the drawings]

[0004] [Figure 1] FIG. 1 illustrates an example of a prior art array scan configuration for a latch array. [Figure 1-1] FIG. 1 illustrates an example of a prior art array scan configuration for a latch array. [Diagram 2] FIG. 2 is a block diagram illustrating a latch array with built-in self-diagnosis and repair logic according to one example described in this disclosure. [Diagram 3] 1 is a flowchart illustrating an example of a method for controlling a latch array according to an example described in this disclosure. [Figure 4A] FIG. 2 illustrates an example of a latch array with built-in self-diagnosis and repair logic for row repair, according to an example described in this disclosure. [Figure 4B] FIG. 2 illustrates an example of a latch array with built-in self-diagnosis and repair logic for row repair, according to an example described in this disclosure. [Diagram 5] FIG. 2 illustrates an example of a latch array with built-in self-diagnosis and repair logic for row repair, according to an example described in this disclosure. [Figure 5-1] FIG. 2 illustrates an example of a latch array with built-in self-diagnosis and repair logic for row repair, according to an example described in this disclosure. [Figure 5-2] FIG. 2 illustrates an example of a latch array with built-in self-diagnosis and repair logic for row repair, according to an example described in this disclosure. [Figure 6] 6 is a flow chart illustrating a method for performing latch repair according to an example described in the present disclosure with reference to FIGS. 4 and 5. [Figure 6-1] 6 is a flow chart illustrating a method for performing latch repair according to an example described in the present disclosure with reference to FIGS. 4 and 5. [Figure 7A] FIG. 2 illustrates an example of a latch array with built-in self-diagnosis and repair logic for row repair, according to an example described in this disclosure. [Figure 7B]FIG. 2 illustrates an example of a latch array with built-in self-diagnosis and repair logic for row repair, according to an example described in this disclosure. [Figure 8] FIG. 2 illustrates an example of a latch array with built-in self-diagnosis and repair logic for row repair, according to an example described in this disclosure. [Figure 8-1] FIG. 2 illustrates an example of a latch array with built-in self-diagnosis and repair logic for row repair, according to an example described in this disclosure. [Figure 8-2] FIG. 2 illustrates an example of a latch array with built-in self-diagnosis and repair logic for row repair, according to an example described in this disclosure. [Figure 9] 9 is a flow chart illustrating a method for performing latch repair according to an example described in this disclosure with reference to FIGS. 7 and 8. [Figure 10A] FIG. 2 illustrates an example of a latch array with built-in self-diagnosis and repair logic for column repair, according to an example described in this disclosure. [Figure 10B] FIG. 2 illustrates an example of a latch array with built-in self-diagnosis and repair logic for column repair, according to an example described in this disclosure. [Figure 11] FIG. 2 illustrates an example of a latch array with built-in self-diagnosis and repair logic for column repair, according to an example described in this disclosure. [Figure 11-1] FIG. 2 illustrates an example of a latch array with built-in self-diagnosis and repair logic for column repair, according to an example described in this disclosure. [Figure 11-2] FIG. 2 illustrates an example of a latch array with built-in self-diagnosis and repair logic for column repair, according to an example described in this disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0005] In the following description, the use of the same reference numbers in different figures indicates similar or identical items. Unless otherwise noted, the word "coupled" and its related verb forms include both direct and indirect electrical connections by means well known in the art, and unless otherwise noted, any description of a direct connection also refers to alternative embodiments using a suitable form of indirect electrical connection.

[0006] A latch array having an array scan configuration has repairable latches. The latch array includes spare rows and / or spare columns to diagnose the latch array and automatically replace defective latches with spare latches. In some embodiments, the diagnosis and repair are performed as part of the manufacturing process to improve yield, while in other embodiments, the diagnosis and repair are performed in the field after the product is in use.

[0007] In some embodiments, a latch array having an array scan configuration identifies a defective latch in the latch array that contains a faulty circuit that causes the latch to fail, repairs the defective latch using a redundant latch, and re-diagnoses the latch array using the redundant latch such that the defective latch is avoided. Logic stores the repair configuration for use during normal functional mode. In some embodiments, a new master status register (MSR) is used as a control register for the repair and re-diagnosis operations.

[0008] In some embodiments, the integrated circuit includes a latch array including a plurality of latches logically organized into rows and columns, a plurality of repair latches operably coupled to the plurality of latches, and a latch array built in self-test and repair logic (LABISTRL) coupled to the plurality of latches. In some embodiments, the LABISTRL configures at least some of the latches in a column as a serial shift register. In some embodiments, each of a plurality of columns of the latch array is configured as a serial test shift register. The LABISTRL detects one or more defective latches of the plurality of latches based on the applied diagnostic data, and in response to the detection of the defective latch, selects at least one repair latch to replace the defective latch. In response to the detection of the at least one detected defective latch, in some embodiments, one or more entire rows are replaced, and in certain embodiments, one or more columns are replaced.

[0009] In some examples, the latch array self-test logic includes a test scan pointer that sequentially selects each row in the latch array during a diagnostic mode to load on-chip diagnostic data into a serial diagnostic shift register.

[0010] In a particular example, the latch repair logic repairs one or more detected defective latches by selecting a row of repair latches and not selecting a row of latches that includes the defective latch.

[0011] In some examples, the latch repair logic repairs one or more defective latches by selecting a column of repair latches and not selecting a column of latches that includes the detected defective latch.

[0012] In certain examples, the integrated circuit includes control logic that automatically re-diagnoses the latch array using a selected repair latch. In some examples, the control logic performs in-field latch array testing and repair of one or more defective latch arrays, provided that a repair latch is available for repair.

[0013] In a particular example, the latch array self-test logic uses a diagnostic scan pointer to load on-chip diagnostic data row-by-row into configured serial test shift registers, which are configured as column shift registers.

[0014] In some embodiments, an integrated circuit includes a processing circuit; and a latch array operably coupled to the processing circuit, the latch array including a plurality of latches logically organized into rows and columns; a plurality of repair latches operably coupled to the plurality of latches; and latch array built-in self-diagnosis and repair logic coupled to the plurality of latches, the latch array configuring each of a plurality of columns of the latch array as a serial diagnostic shift register, detecting one or more defective latches of the plurality of latches based on applied diagnostic data, and selecting at least one of the plurality of repair latches to replace the one or more defective latches in response to detection of the at least one detected defective latch.

[0015] In a particular example, the latch array built-in self-diagnosis logic includes a diagnostic scan pointer that sequentially selects each row in the latch array during a diagnostic mode for loading on-chip diagnostic data into a serial diagnostic shift register. In some embodiments, the processing circuit issues reads and / or writes to the latch array during normal operation.

[0016] In some examples, the latch array built-in self-diagnosis and repair logic includes latch array repair logic coupled to the plurality of repair latches and configured to select a repair latch from the plurality of repair latches and not select a latch in the latch array determined to be defective, and a controller coupled to the latch repair logic and configured to control the latch array repair logic, configure each of the latch columns of the latch array as a serial shift register, and control re-diagnosis of the latches of the latch array after selection of the plurality of repair latches.

[0017] In a particular example, the latch array repair logic includes one or more latch repair control registers, and the latch array repair logic deselects the row of latches that includes the defective latch and shifts to the row of repair latches.

[0018] In some embodiments, the latch array repair logic includes at least one bypass multiplexer configured to bypass a defective row that includes at least one defective latch, which may include defective circuitry that prevents proper access of the row for reading or writing. In a particular embodiment, the latch array repair logic includes at least one bypass multiplexer configured to bypass a defective column that includes at least one defective latch.

[0019] In a particular example, the control logic includes a diagnostic data generator and diagnostic data comparison logic that provides latch failure indication data.

[0020] In some examples, the latch array repair logic repairs one or more detected defective latches by selecting a column of the repair latch and deselecting the column of the latch that includes the detected defective latch.

[0021] In a particular example, the control logic performs in-field latch array diagnosis and repair of one or more defective latch arrays if a repair latch is available for repair.

[0022] In some embodiments, a method of operating a latch array having a plurality of latches logically organized into rows and columns includes configuring a plurality of latches in a column as at least one serial diagnostic shift register, detecting at least one defective latch of the plurality of latches based on applied diagnostic data, and in response to detecting the at least one defective latch, selecting at least one repair latch and deselecting the at least one defective latch.

[0023] In a particular example, a diagnostic scan pointer sequentially selects each row in the latch array during a diagnostic mode for loading on-chip diagnostic data into a serial diagnostic shift register.

[0024] In some examples, one or more detected defective latches are repaired by selecting a row of repair latches and not selecting a row of latches that includes the detected defective latch.

[0025] In certain examples, one or more detected defective latches are repaired by selecting a column of repair latches and not selecting a column of latches that includes the detected defective latch. In some examples, an in-field latch array diagnosis and repair of one or more defective latch arrays is performed when a repair latch is available for repair.

[0026] FIG. 1 shows an example of a prior art array scan configuration. Latch array 100 includes logical rows and columns of latches 102 (e.g., not flip-flops). In this example, there are three columns of latches with four rows for three bits per row. In this example, B-phase latch 101 has an output that is received by a number of A-phase latches in column 103. However, it will be appreciated that any suitable latch array structure may be employed. When performing on-chip diagnostics of the latch array, a scan pointer 104 is used along with a scan shift enable signal 106 so that scan data in (SDI) 108 can be scanned into the latch array. The columns are configured as serial shift registers during diagnostic scan operations. During normal operation, write data 110 can be written to the latch array when input multiplexer 112 is switched to allow write data 110 to pass to the latch array. This is illustrated with respect to write data latch 113.

[0027] During a diagnostic mode operation, also referred to as a diagnostic scan operation, the array scan configuration provides a diagnostic serial shift register path. An exemplary diagnostic serial shift register includes a receiving latch 101, which includes each latch in a column 103. Each latch is clocked sequentially according to whether a write decoder activates its word line (WL). Similarly, a read decoder (e.g., a set of two-input multiplexers that select between ScanPtr[1:0] and Radr[1:0]) selects any latch in a column to drive the SDO of that column.

[0028] The array scan operation appears to form a column shift register and a serial shift register from each column. The scan pointer 104 (ScanPtr) selects which latches are exposed to the SDO (Scan Data Out) port, as if data values ​​were being serially shifted from SDI (Scan Data In) to SDO.

[0029] The scan pointer 104 is swapped in place of *both* the write address and the read address, so that each row of the latch array is being read as it is being written.

[0030] 104 is a simple counter circuit that makes each column look like a serial shift register, cycling through the address space, with the first bit at the top and the last bit at the bottom, as depicted in the diagram.

[0031] Scan data in 108 is written to the latch array and scan data out (SDO), shown as 114, is read out from a read multiplexer 116 under the control of a scan pointer 104, which also sequentially selects each row so that scan data in is provided in parallel to all latches in a row. Data values ​​are loaded in from SDI and "unloaded" to SDO simultaneously during each cycle. During normal operation, read data is read out by bus 118 as shown.

[0032] An on-chip diagnostic data generator and comparator 120 generates scan data in 108, receives scan data out 114, compares scan data in 108 to scan data out 114, and generates pass or fail indication data 122 depending on whether the scan data in for a row matches the scan data out for the row. For example, if the scan data out for a given row does not match the diagnostic input data, a failure is indicated. If a failure is indicated, the chip is discarded. However, discarding a chip is expensive and reduces production yield. This problem occurs more frequently as the size of the latch arrays increases. Latch arrays have been limited in size due to their impact on chip yield.

[0033] FIG. 2 is a block diagram illustrating an example of a repairable latch array, according to one embodiment. In this example, the integrated circuit includes a processing circuit that issues read and / or write requests to the latch array during normal operation. Examples of processing circuits include, but are not limited to, one or more processing cores of a central processing unit and / or a graphics processing unit, a digital controller, or any suitable digital processing unit that stores and / or retrieves data in / from the latch array. In this example, the integrated circuit includes a repairable latch array that includes built-in self-diagnosis logic for scanning the entire latch array for self-diagnosis operations, but further includes a repair latch, scan logic for diagnosing the repair latch, and logic for repairing the latch array if defects are detected in some latches in the array. In this example, the latch array built-in self-diagnosis repair logic 200 includes an on-die latch array diagnosis and repair controller 204, a latch array repair logic 206, a spare latch array element 208 (also referred to as a redundant latch), an on-chip diagnostic data generator 210, and an on-die diagnostic data comparator 212. In some embodiments, the spare latch array elements are arranged in any suitable configuration of rows, columns and / or spare latch(es) such that an entire row is replaced and / or an entire column is replaced and / or any other suitable number of defective latches are replaced.

[0034] As a general operational description, as part of a manufacturing or in-field diagnostic operation, an on-chip diagnostic data generator 210 generates and sends diagnostic data, also referred to as scan data in 214, to latches in the latch array. During diagnostic mode, the applied diagnostic data is scanned out and shown as scan data out 216 received by a diagnostic data comparator 212. The diagnostic data comparator 212 compares the scan data in 214 with the read scan data out 216 to determine whether a latch in the latch array has failed. If a failure indication is generated, such as an indication that a latch in a row or column has failed, failure indication data 217 is generated. In response to a defect being detected, the latch array diagnosis and repair controller 204 issues repair control data 218 to the latch array repair logic 206. The latch array repair logic 206 issues control data 220 to a spare latch array element 208 to select a latch repair element to replace the defective element and to not select the row or column of the latch element determined to be defective. An example of repair control data 218 is that in the case of a single spare row, the repair control data is a single logic 1 value in any of the RRpr bits labeled Latch Repair Ctrl Register (also shown in FIG. 5 as 502). In the case of no faulty rows, all bits in the latch repair control register 502 will be logic 0, and in the case of a single bad row, one of them will be logic 1 and the others will be logic 0.

[0035] The latch array diagnostic and repair controller 204 issues latch array scan diagnostic control data 222 to initiate the self-diagnosis process, for example, by issuing scan shift enable (SSE) data and other initiation data as necessary. For example, as shown by data 224, the latch array diagnostic and repair controller 204 initializes the data in the latch array to all zeros before diagnostics begin and initiates on-chip diagnostic data generators and other logic. In some embodiments, the latch array diagnostic and repair controller 204 automatically initiates a re-diagnosis of the latch array after it has been reconfigured to include a repair latch replacing a defective latch. If the re-diagnosis is successful, the latch array is identified as usable.

[0036] In some embodiments, if one faulty latch is detected, the row is determined to be a faulty row. The logic shuts off the row by not selecting it, e.g., selecting an upper row as the new row. The faulty row is not selected. In effect, the write clock for the row is turned off. It will be appreciated that a similar approach is taken for column repair, where in some embodiments an entire column is shut off if a latch is determined to be faulty in the column. In some embodiments, for row repair, the latch repair logic repairs one or more detected faulty latches by selecting a row of repair latches and not selecting, e.g., bypassing, the row of latches that contain the faulty latch. In some embodiments, the latch repair logic repairs one or more detected faulty latches by selecting a column of repair latches and not selecting, e.g., bypassing, the column of latches that contain the faulty latch. In some embodiments, a bypass multiplexer is used to bypass the faulty row or column. However, it will be appreciated that less than all latches in a row or column may be shut off. For example, if a group of latches is configured to be addressed via partial columns or rows, a subset of the latches may be selectable.

[0037] As an example, in some embodiments, if a row of a latch array has a faulty word line driver circuit, the entire row fails diagnosis. A row may be defective (i.e., faulty) because the word line driver or other circuitry is insufficient. In another example, all of the latches in a row (or column) may be fault-free, but the wires connecting them to the write / read circuits may be faulty. In that case, the disclosed self-diagnosis and repair circuitry identifies the row / column as defective and selects a spare row / column instead. As used herein, a faulty latch includes faulty circuitry that prevents proper access to read or write latches other than the actual latches of the latch array, and the disclosed structure and operation also detects these additional faulty circuits, if present.

[0038] In some embodiments, there is an additional control register for setting the latch array built-in self-diagnosis operation, which when set, causes the controller to perform the self-diagnosis and repair operation. Thus, the controller can be activated in the field to perform the self-diagnosis and repair operation during power-on or in response to some other condition, such as a predetermined time interval, or can be set during the manufacturing process to perform it. Thus, the control logic in certain embodiments performs an in-field latch array diagnosis and repair of one or more defective latch arrays if a repair latch is available for repair. In some examples, during the initialization state, the state of the latches is unknown, so the control logic writes zeros in all of the latches and then begins the diagnostic sequence. In some embodiments, writing the opposite value and reading the previous value is performed for each latch. In some embodiments, a diagnostic pattern writes the same value to each latch of the latch array, and a comparator compares the output from the read multiplexer to the input diagnostic pattern and flags a defect that has occurred in the row of the latch array if they do not match. The redundant latch or repair latch is switched in one example after all the latch array rows have been diagnosed.

[0039] When used as part of manufacturing diagnostics, the latch array self-diagnosis and repair operations diagnose manufacturing defects, but when used in the field, the latch array self-diagnosis and repair operations detect and repair defects caused, for example, by normal wear and tear of processing units and other circuitry on the die.

[0040] 3 illustrates an example of a method of operating a repairable latch array having a plurality of latches logically organized into rows and columns, according to one example. In this example, operations are performed by latch array built-in self-diagnosis and repair logic 200, examples of which are further illustrated in additional figures below. It will be appreciated that the operations illustrated in the methods disclosed herein may be performed in any suitable order and by any suitable component or components.

[0041] The operation of block 300 in one example is performed by the latch array built-in self-diagnosis and repair logic, for example, by enabling a built-in self-diagnosis scan operation. As shown in block 302, the method includes detecting one or more defective latches of a plurality of latches in the latch array based on the applied diagnostic data. In one example, the latch array built-in self-diagnosis and repair logic 200 utilizes an output of a diagnostic data comparator, and when a failure occurs, the latch array diagnostic and repair controller initiates a repair process. As shown in block 304, the method includes selecting a repair latch in response to detecting at least one detected defective latch. In one example, the latch array diagnostic and repair controller 204 issues repair control data, and the latch array repair logic selects a repair latch to replace one or more of the defective repair latches. In one example, an entire row of latches is replaced, and in another example, an entire column of latches is replaced by a column of repair latches.

[0042] In one example, selecting a number of repair latches in operation 304 includes, for example, not selecting a row or column having a defective latch, as shown in block 306, and re-diagnosing the latch array to verify that the selected repair latch is not defective and other latches in the array are fully operational, as shown in block 308. As described below, this may be done in any suitable manner, and by way of example, in some embodiments, this is done by diagnosing all rows or columns in the latch array, or by diagnosing each row or column in the latch array and performing a repair on a row-by-row or column-by-column basis, as opposed to diagnosing the entire latch array and then performing a repair.

[0043] 4A, 4B and 5, an example of a latch array built-in self-diagnosis and repair logic operation to replace a row of latches, where at least one of the latches has been detected as defective, is described. As shown in block 300, the method includes configuring each of a plurality of columns of the latch array as a serial diagnostic shift register similar to that shown in FIG. 1. This can be done, for example, by a latch array diagnostic and repair controller initiating a diagnostic operation. The controller configures each column as a serial shift register as described above, and the output of each serial shift register is passed to a comparator.

[0044] 4A is a timing diagram illustrating an example of signaling used during built-in self-test operation and an example of signaling for the latch array built-in self-test and repair logic. As shown, the latch array diagnostic and repair controller 204 receives a clock signal 402 from a suitable clock source and a latch array diagnostic start signal 404, such as from a control register or other source, to initiate the scan diagnostic and latch array built-in self-test and repair logic. The latch array diagnostic and repair controller 204 generates the SSE signal and the latch array serial BIST clock enable signal 406, the latch repair in signal 408, and the latch repair clock 410. In some embodiments, the LatchRprClk pulses once for each repair configuration. In effect, the clock moves a logic one value from the RRpr[n] flop in the lower row to the upper row. The LatchRprClk does not pulse while a repair configuration is being diagnosed. In a particular embodiment, the LatchRprClk pulses only once after attempting a repair configuration and before attempting the next repair configuration (if any). The LatchRepairIn signal inserts a logic 1 into the RRpr[0] flop while LatchRprClk is at a logic 1 as shown.

[0045] As shown in this example, the latch array embedded self-diagnosis and repair logic 200 is shown to include a spare latch array element 208, which in this example is a row of repair latches forming three columns. The operation shown herein is a row repair operation as opposed to a column repair operation, for example as shown and described later in this specification. An additional four rows and three columns make up the latch array, as well as another latch array element shown as latch element 500. The scan diagnostic logic shown in Figures 4B and 5 is similar to that shown in Figure 1, but includes modifications such as the scan pointer 403 and other logic. In some embodiments, the scan pointer 403 is a two-bit pointer, but can be of any suitable size depending on the size of the latch array, for example, the latch array can have a 10-bit scan pointer, and has a carry out signal that is used for diagnostic data in. The carry out is generated when the counter reaches its maximum count value. This is used to indicate that the latch array is fully initialized so that a comparison can be made by the diagnostic data comparator 212. In this example, the comparison is made until the carry bit is set, since the array is not yet initialized until the carry bit is set.

[0046] A clock (LATestDinClk also called LATestCLK) is pulsed, for example, every 4 cycles to a 2-bit scan pointer. The scan pointer sequentially selects each row in the latch array during diagnostic mode to load on-chip diagnostic data into the serial diagnostic shift register (e.g., row of latches). The scan pointer indexes / selects which bits / latches are accessed sequentially during the diagnostic phase. Thus, the latch array self-diagnosis logic loads on-chip diagnostic data row by row into the configured serial diagnostic shift register. The scan pointer 403 employs a counter to generate addresses that sequentially load diagnostic data into each row. In this example, the address pointer cycles through all address values, but once a defective row* is identified, it is not used and instead, its upper row is used.

[0047] In this example, the latch array serial built-in self-test and repair logic 200 includes latch array repair logic operably coupled to the repair and non-repair latches of the latch array. In this example, the latch array repair logic 206 includes a latch repair control register 502, a latch array diagnostic input multiplexer 503, a latch repair fail register 504, a latch repair logic 506, and repair bypass multiplexers 508A-C. The multiplexer 503 selects between diagnostic data coming from SDI and diagnostic data coming from the LA diagnostic circuitry, shown as LATestDin.

[0048] Each latch in the latch repair control register 502 indicates whether its associated row is good / bad. If a row is bad, the row immediately above is used in place of the defective row, and similarly all other rows, including the spare row, are accessed in place of the row below them. The latch repair fail register 504 starts at logic 0 and is set to logic 1 only if all possible repair configurations have been tried and failed. Its function is to indicate that the latch array is unrepairable. To illustrate this, assume that the flip-flops in 502 and 504 are initialized to all 0 before diagnosis and repair begins. A value of 1 is shifted to the bottommost flop, i.e. RRpr[0]=1. The diagnosis is then run. If it passes, it is assumed that the bottom row was faulty and the spare row is assumed to be good. If it fails, a value of 1 is shifted to the RRpr flop above it, so RRpr[1]=1. The diagnosis is then rerun. If it passes, it is very good, if it fails, the shifting is done again and the diagnosis is rerun up to the top row. Assuming that the row is bad (i.e., by setting RRpr[3]=1 in the case of a 4-row array), all possible repair configurations have been tried and do not result in a passing diagnosis. Hence, in that case, the 504 bit is set and the device is considered unrepairable.

[0049] The latch repair logic 506 interfaces with the control registers and the bypass multiplexers to select and deselect rows of latches. The repair bypass multiplexers 508A-C are responsible for repairs in the read data path. If they are not present, it is possible to read from a faulty row. In some embodiments, the bypass multiplexers are coupled to receive outputs from repair latches 507 in the repair row and outputs from non-repair latches 509 in the non-repair row. In particular embodiments, the outputs of the bypass multiplexers provide output data to a column level read multiplexer. In some embodiments, each bypass multiplexer is coupled to consecutive rows of multiple latches in the latch array. In some embodiments, the outputs of the bypass multiplexers are arranged in a column format and pass data to a common read multiplexer for the column. For example, in FIG. 5, the latch array repair logic includes at least one bypass multiplexer configured to bypass a faulty row that includes at least one faulty latch. For example, in the example shown in FIG. 8 below, the latch array repair logic includes at least one bypass multiplexer configured to bypass a defective column that includes at least one defective latch.

[0050] In operation, the latch array built-in self-test and repair logic shown in Figures 4B and 5 attempts to repair all row configurations in sequence until the entire latch array passes self-test. It will be appreciated that only one latch array is shown and the logic to perform self-test and latch repair may be included in multiple latch arrays or all latch arrays on a chip, as desired. It will be appreciated that any suitable size latch array may be employed.

[0051] FIG. 6 illustrates a method of operating a latch array, for example, performed by the latch array serial built-in self-diagnosis and repair logic 200 illustrated in FIGS. 4A-5. However, any suitable structure may be employed. In this example, the method includes initiating a latch array including a repair latch. As illustrated by dashed line block 600, a latch array diagnostic and repair controller initializes the latch array and performs a scan-in and scan-out of diagnostic data, as shown, the latch array with built-in self-diagnosis and repair logic is reset as illustrated in block 602, and as part of the initialization operation, a zero is written to the latch array element including the repair latch as illustrated in block 604. Next, the reads and writes are scanned in and out as illustrated, such that data is read to be zero, then data for the latch is written to be one, and so on, as illustrated in block 606. Next, the write data set to "1" is read in block 608, the write data with a logic "0" is written to the latches including the repair latch, and the data expected to be 0 is read and a "logic 1" is written to the latches as shown in block 609, thereby toggling the latches appropriately for diagnosis as known in the art. The diagnostic data comparator 212 compares the scan-in data to the scan-out data, and if there is only a match, no failure has occurred as shown in block 610. In other words, in block 604, a background pattern is written, in this case all 0s. In block 606, that background pattern is read first, and then another pattern is written, in this case all 1s. In block 608, the device reads 1s and writes 0s, and vice versa in block 609. By performing all of the above steps, the diagnosis has demonstrated that 1s and 0s can be written to every row in the array and then read back correctly. It will be appreciated that other diagnostic patterns, such as a checkerboard pattern, can be used to check for effects on adjacent latches.

[0052] As shown in block 612, the method includes performing a first latch array repair attempt to diagnose the spare row. In one example, the spare row(s) can be diagnosed by falsely marking any of the original rows as defective. This is accomplished by having the data value of the row marked as a bad row by comparing it to the opposite of the actual expected value. This results in the spare row being diagnosed. This sequence can be repeated to diagnose multiple spare rows as desired. If the spare row is not defective, an in-field register is set to indicate that the spare row is available for in-field repair. Alternatively, the clock (word line) for the spare row may be independently activated and its data value read by forcing the read multiplexer select line such that the data value of the spare row is read out of the array.

[0053] If there is a failure in the latch array, as shown in block 614, the diagnosis is finished, which means that there is no spare latch array available to be used for repair. This is shown in block 616. However, if there is no failure of the repair latch, the diagnosis of the latch array is completed, as shown in block 618, and an in-field repair is indicated as possible, for example, by setting a flag or bit in a control register. For example, if in-field, the controller or processing circuitry checks the register or flag, and if it is set to indicate that an in-field repair is available, initiates the latch array built-in self-diagnosis and repair logic. In other words, if the diagnosis is performed and no failures occur in both the non-repair latches (e.g., latches in a conventional latch array) and the repair latches, a field repair is indicated as possible, and if the chip is in the field, the latch array with built-in self-diagnosis and repair logic can be executed to automatically repair the latch failures in-situ based on a predetermined interval, during power-on operation, or depending on other conditions when the chip is in the field.

[0054] However, if a fault is detected as shown in block 610, if there is a latch in the standard latch array rather than a spare latch, as shown in block 620, the method includes initiating a latch repair. As shown in block 622, the method includes setting a latch repair in (LRprIn) to logic 1, pulsing a latch repair clock, and setting the latch repair in to 0, for example, by the latch array diagnosis and repair controller 204. In some embodiments, the latch array diagnosis and repair controller 204 is implemented as one or more state machines. In other embodiments, the latch array diagnosis and repair controller 204 is implemented as a controller running firmware, although any suitable logic may be employed. As shown in block 624, the method includes performing the latch array serial built-in self-test shown in block 600, and if no fault is detected as shown in block 626, a first latch array repair attempt is completed as shown in block 628. In some embodiments, the operations shown in block 600 are performed without a repair latch (the spare row is not diagnosed). The operations of block 620 replace one row with a spare row. The act of block 630 replaces the next row (if necessary) with the spare row.

[0055] As shown in block 630, if the operation of block 620 fails, a second latch array repair attempt is performed, this time for another row in the latch array. As shown in block 632, the method includes pulsing the latch repair clock and performing a latch array serial BIST operation shown as 634, and if no failure occurs as shown in block 636, the diagnosis for the second latch array attempt is completed as shown by 638. The process continues as shown in blocks 640 and 650 for other rows in the latch array. In the general case, a latch array with N rows may require N attempts. In some embodiments, the LABIST repair logic identifies which row failed based on the time that the bad data arrives at the comparator. A counter is used to track the scan pointer value to keep track of the ScanPtr value that caused the failure.

[0056] As shown, if a failure is detected in each of the repair attempts, as shown in block 670, the device will fail because there are not enough spare latches to correct all of the different rows that are detected as having defects.

[0057] 7A, 7B and 8 show another example of latch array built-in self-test logic that performs row repair, in this example identifying the failed row when diagnosed, setting register repair bits (RRpr bits) 800a-800d in a latch repair control register 802 indicating the failing row, and not employing the latch repair failure register 504 (see FIG. 5). The latch repair logic 804 is controlled by the latch array diagnosis and repair controller 700 to select the row of repair latches and bypass (e.g., not select) the detected row that contains a defective latch. In one example, a control datum 806 called ApplyLatchRpr is set to "0" during the first pass and set to logic "1" during the second pass.

[0058] FIG. 9 illustrates a method of operating a latch array during built-in self-test, which in this example will be described with reference to FIGS. 7A-8. As illustrated, the method includes issuing a control signal, such as ApplyLatchRpr, to a logic "0" as shown in block 900. This may be done, for example, by the latch array diagnostic and repair controller of FIG. 7B. As shown in block 902, a latch array serial built-in self-test operation is performed as described above. As shown in block 904, the diagnostic data comparator 702 determines whether any failures have been detected from any row, and if no failures are detected, the method includes diagnosing the spare latch array element 208 as shown in block 906. In this example, if no spare latch failures are detected as shown in block 908, the diagnostic process is complete as shown in block 910, and since none of the spare rows are defective, an in-field repair bit is set in a register indicating that there is a spare row available to be used for in-field repair. However, if a failure occurs in a spare row, as shown in block 912, the chip is considered usable, but no repair action can be employed.

[0059] Referring back to operation 904, if a failure of a non-spare latch in the latch array indicates a failure, as shown in block 914, a latch array repair operation is initiated. As shown in dashed block 916, various operations are performed. In this example, the latch array repair operation includes issuing an ApplyLatchRpr signal equal to logic "1" as control data 806 by the latch array diagnosis and repair controller 700, as shown in block 918. In this alternative row repair scheme, the latch repair control register (802) is again initialized to all zeros, but then, during diagnosis, as soon as the array fails, the LABistFail signal becomes logic 1 and its RRpr[n] bit is set if that row is the row currently being diagnosed. The ApplyLatchRpr signal is logic 0 during self-test, but then, if the array is diagnosed again with a spare row replacing the faulty row, ApplyLatchRpr=1.

[0060] As shown in block 920, the latch array serial built-in self-test is performed as shown in block 902. If the diagnostic data comparator 702 determines that a fault has occurred as shown in block 924, as shown in block 922, the device is indicated as having failed because the repair logic failed or because repair resources were insufficient. In one example, this is done by setting a bit in a register. However, if no fault occurs as shown in block 926, the repair operation was successful. The latch array repair operation in this example sets RRpr bits for those rows that are defective, and any RRpr bits that were set during the built-in self-test are enabled when ApplyLatchRpr is asserted.

[0061] 10A, 10B and 11 show an example of a column repair as opposed to a row repair. This embodiment identifies a failing column when diagnosed and sets its LASBISTFailbit, shown as data 1120. Latch array diagnosis and repair controller 1010 issues latch repair data 1011, such as ApplyLatchRpr, to spare latch array elements 208 and latch array repair logic 206 to use the repair columns and not select columns that contain at least one defective latch. For example, data 1120 (FIG. 11) is used as repair logic to select repair latches in the form of columns, shown as repair latches 1100A-1100D. As shown in FIG. 10B, latch array diagnosis and repair controller 1010 generates latch repair data 1011, in this example ApplyLatchRpr. Diagnostic data comparator logic 1020 issues a column fail indicator for each failed column, and control logic 1000 issues control data, such as a LABIST fail bit. The latch array diagnostic and repair controller 1010 issues the apply latch repair data 1011 to be equal to a logic "0" during a first pass of the test and to be equal to a logic "1" during a second pass of the test. As mentioned above, the diagnostic operation for the built-in self-test is illustrated in Figure 9. As described herein, the latch array built-in self-test and repair logic can be used to repair one or more rows or columns in the latch array.

[0062] As described above and in FIGS. 2-9, an exemplary method of operating a latch array having a plurality of latches logically organized into rows and columns includes configuring each of a plurality of columns of the latch array as a serial diagnostic shift register, detecting one or more defective latches of the plurality of latches based on applied diagnostic data, and selecting a plurality of repair latches and deselecting the defective latch in response to detecting at least one detected defective latch. The method in some embodiments includes using a diagnostic scan pointer that sequentially selects each row (or column) in the latch array during a diagnostic mode to load on-chip diagnostic data into the serial diagnostic shift register. For row repair, the method in some embodiments includes repairing one or more detected defective latches by selecting a row of repair latches and deselecting a row of latches that include the detected defective latch. If column repair is employed, the method includes repairing one or more detected defective latches by selecting a column of repair latches and deselecting a column of latches that include the detected defective latch. In a particular embodiment, the method includes performing an in-field latch array diagnosis and repair of one or more defective latch arrays if a repair latch is available for repair. In some embodiments, the control logic includes a register or registers that indicate which repair resource(s) are currently in use and therefore which resource(s) are still available for in-field repair.

[0063] One or more technical advantages of the disclosed repairable latch array are that larger latch arrays can be utilized without the need for MBIST circuitry and control as described above, improving yield during manufacturing, and providing in-field repair capability for the latch array when applied after manufacturing. This can improve reliability of dies such as those used in data centers by avoiding silent data corruption (SDC). Other advantages will be recognized by those skilled in the art. For example, with the illustrated serial shift register operation and repair logic, fewer consecutive elements are required compared to, for example, MBIST logic, eliminating the need to discard a die due to a latch array failure.

[0064] When in-field latch array diagnosis and repair is performed, systems in data centers or other applications, for example, do not need to have chips removed, but instead, when a latch is detected to be defective, for example through a bit failure due to normal wear, a diagnosis and repair operation is activated, for example by processing circuitry or other logic, to re-enable the latch array. For example, an in-field repair operation can be performed during each power on to select a repair latch operation. Another advantage in other applications is that it avoids component replacement and instead allows for repair of the latch array, for example in automotive and other applications.

[0065] Although the features and elements are described above in certain combinations, each feature or element can be used alone without the other features and elements, or in various combinations with or without the other features and elements. In some embodiments, the apparatus described herein uses software or firmware embodied in a non-transitory computer-readable storage medium for execution by a general purpose computer or processor. Examples of computer-readable storage media include read only memory (ROM), random-access memory (RAM), registers, cache memory, semiconductor memory devices, magnetic media such as internal hard disks and removable disks, magneto-optical media, and optical media such as CD-ROM disks and digital versatile disks (DVDs).

[0066] In the foregoing detailed description of the various embodiments, reference has been made to the accompanying drawings which form a part thereof, and which show, by way of example, certain preferred embodiments in which the invention may be practiced. These embodiments have been described in sufficient detail to enable those skilled in the art to practice the invention, it being understood that other embodiments may be utilized, and that logical, mechanical, and electrical changes may be made without departing from the scope of the invention. To avoid details not necessary to enable those skilled in the art to practice the invention, the description may omit certain information known to those skilled in the art. Moreover, many other various embodiments incorporating the teachings of the present disclosure may be readily constructed by those skilled in the art. Thus, the present invention is not intended to be limited to the particular forms described herein, but on the contrary, is intended to embrace such alternatives, modifications, and equivalents that may reasonably be included within the scope of the present invention. Thus, the above detailed description should not be construed in a limiting sense, and the scope of the present invention is defined solely by the appended claims. The above detailed description of the embodiments and examples described herein has been presented only for purposes of illustration and description, and not for limitation. For example, the operations described may be performed in any suitable order or manner. It is therefore contemplated that the present invention will cover any modifications, variations or equivalents that fall within the scope of the basic underlying principles disclosed above and claimed herein.

[0067] The foregoing detailed description and examples described therein have been presented only for purposes of illustration and description and not for purposes of limitation.

Claims

1. 1. An integrated circuit comprising: A latch array is provided. The latch array comprises: a plurality of latches logically organized into rows and columns; a plurality of repair latches operably coupled to the plurality of latches; a latch array built-in self-diagnosis and repair logic operably coupled to the plurality of latches; The latch array built-in self-diagnosis and repair logic comprises: configuring a plurality of latches in a column as at least one serial diagnostic shift register; detecting at least one faulty latch of the plurality of latches based on the applied diagnostic data; selecting at least one repair latch in response to detecting the at least one defective latch; Operate to do the following: Integrated circuits.

2. the latch array self-test logic comprises a diagnostic scan pointer operative to sequentially select each row in the latch array during a diagnostic mode for loading on-chip diagnostic data into the serial diagnostic shift register; 2. The integrated circuit of claim 1.

3. the latch repair logic operates to repair one or more defective latches by selecting a row of repair latches and deselecting a row of latches including the defective latch.

2. The integrated circuit of claim 1.

4. the latch repair logic operates to repair one or more defective latches by selecting a column of repair latches and deselecting a column of latches that includes the defective latch.

2. The integrated circuit of claim 1.

5. control logic operative to automatically re-diagnose the latch array using the selected repair latch.

2. The integrated circuit of claim 1.

6. and control logic operative to perform in-field latch array diagnosis and repair of one or more defective latch arrays if a repair latch is available for repair.

2. The integrated circuit of claim 1.

7. the latch array self-test logic operates to load on-chip diagnostic data row-by-row into a configured serial diagnostic shift register; 3. The integrated circuit of claim 2.

8. 1. An integrated circuit comprising: A processing circuit; a latch array operably coupled to the processing circuit; The latch array comprises: a plurality of latches logically organized into rows and columns; a plurality of repair latches operably coupled to the plurality of latches; a latch array built-in self-diagnosis and repair logic operably coupled to the plurality of latches; The latch array built-in self-diagnosis and repair logic comprises: configuring each of a plurality of columns of the latch array as a serial diagnostic shift register; detecting one or more faulty latches of the plurality of latches based on the applied diagnostic data; selecting at least one repair latch from the plurality of repair latches in response to detecting the at least one defective latch; Operate to do the following: Integrated circuits.

9. the latch array built-in self-test logic comprises a diagnostic scan pointer operative to sequentially select each row in the latch array during a diagnostic mode for loading on-chip diagnostic data into the serial diagnostic shift register; 9. The integrated circuit of claim 8.

10. The latch array built-in self-diagnosis and repair logic comprises: a latch array repair logic operatively coupled to the plurality of repair latches, the latch array repair logic operable to select a repair latch from the plurality of repair latches and to not select a latch in the latch array that has been determined to be defective; a controller operatively coupled to the latch repair logic, the controller operative to control the latch array repair logic, operative to configure each of the latch columns of a latch array as a serial shift register, and operative to control re-diagnosis of latches of the latch array after selection of the plurality of repair latches.

9. The integrated circuit of claim 8.

11. the latch array repair logic comprises one or more latch repair control registers configured to not select a row of latches containing a defective latch and to select a row of repair latches in place of the row of defective latches.

11. The integrated circuit of claim 10.

12. the latch array repair logic comprises at least one bypass multiplexer configured to bypass a defective row that includes at least one defective latch; 12. The integrated circuit of claim 11.

13. the latch array repair logic comprises at least one bypass multiplexer configured to bypass a defective column that includes at least one defective latch; 12. The integrated circuit of claim 11.

14. the latch array repair logic operates to repair one or more detected defective latches by selecting a column of repair latches and deselecting a column of latches that includes the detected defective latch.

9. The integrated circuit of claim 8.

15. the control logic is operative to perform in-field latch array diagnosis and repair of one or more defective latch arrays if a repair latch is available for repair.

9. The integrated circuit of claim 8.

16. 1. A method of operating a latch array having a plurality of latches logically organized into rows and columns, comprising: configuring a plurality of latches in a column as at least one serial diagnostic shift register; detecting at least one faulty latch of the plurality of latches based on the applied diagnostic data; selecting at least one repair latch in response to detecting the at least one defective latch; and not selecting the at least one defective latch. method.

17. using a diagnostic scan pointer to sequentially select each row in the latch array during a diagnostic mode to load on-chip diagnostic data into the at least one serial diagnostic shift register; 17. The method of claim 16.

18. repairing one or more defective latches by selecting a row of repair latches and not selecting a row of latches including said defective latches.

17. The method of claim 16.

19. repairing one or more detected defective latches by selecting a column of repair latches and not selecting a column of latches including said defective latches.

17. The method of claim 16.

20. performing in-field latch array diagnosis and repair of one or more defective latch arrays if a repair latch is available for repair; 17. The method of claim 16.