Centralized built-in soft-repair architecture for integrated circuits with embedded memories
10134483 ยท 2018-11-20
Assignee
Inventors
Cpc classification
G11C29/12
PHYSICS
G11C29/702
PHYSICS
G11C29/70
PHYSICS
G06F11/2017
PHYSICS
International classification
G11C29/12
PHYSICS
G11C29/00
PHYSICS
Abstract
A large-scale integrated circuit with built-in self-repair (BISR) circuitry for enabling redundancy repair for embedded memories in each of a plurality of processor cores with embedded built-in self-test (BIST) circuitry. The BISR circuitry receives and decodes BIST data from the embedded memories into fail signature data in a physical-aware form on which repair analysis can be performed. The fail signature data is reformatted into a unified repair format, such that a fuse encoder circuit can be used to encode fuse patterns in that unified repair format for a repair entity for each of the embedded memories. The fuse patterns are reconfigured into the appropriate order for storing in shadow fuse registers associated with the specific embedded memories.
Claims
1. An integrated circuit, comprising: a first processor core, comprising: logic circuitry; a plurality of embedded memories, each associated with at least one repair entity; and built-in self-test circuitry; and built-in self-repair circuitry, comprising: a first decode function, having an input coupled to the first processor core, for decoding test data from each of the embedded memories into fail signature data in a physical-aware format for the associated memory; align and merge circuitry, for reformatting the fail signature data from the first decode function into a unified repair format for all of the plurality of embedded memories of the first processor core; one or more fuse encoders, having an input coupled to the align and merge circuitry, each for generating a fuse pattern in the unified repair format for a repair entity; fuse reconfiguration logic, for reconfiguring the fuse patterns generated by the one or more fuse encoders from the unified repair format into a fuse pattern having an order corresponding to one or more of the repair entities for a selected one of the plurality of embedded memories; and a plurality of shadow fuse registers, each having an input coupled to the fuse reconfiguration logic, each for storing a fuse pattern for the repair entities of an associated embedded memory.
2. The integrated circuit of claim 1, wherein the unified repair format for the first processor core includes a plurality of portions numbering at least the maximum number of repair entities among the plurality of embedded memories of the first processor core, each portion including a plurality of bit positions numbering at least the maximum number of bits of the fail signature data in the physical-aware format for the corresponding repair entity among the plurality of embedded memories of the first processor core.
3. The integrated circuit of claim 2, wherein the align and merge circuitry comprises: a plurality of alignment functions, each associated with one of the plurality of embedded memories, for splitting the physical-aware fail signature data into a plurality of portions corresponding to the unified repair format; for each of the plurality of alignment functions, a plurality of register stages, each register stage corresponding to one of the portions of the unified repair format, and storing the corresponding portion of the physical-aware fail signature data; and merge circuitry, for merging the contents of one register stage for each of the plurality of embedded memories for application to a corresponding fuse encoder.
4. The integrated circuit of claim 3, wherein the plurality of alignment functions each pad excess bit positions in the portions of physical-aware fail signature data beyond that required for enabling the corresponding repair entity for its associated memory.
5. The integrated circuit of claim 1, wherein the first decode function comprises: comparison circuitry for comparing the test data from each of the embedded memories with expected data for that memory to produce fail signature data; and a plurality of multiplexer mapping circuits, each associated with one of the plurality of embedded memories, each for mapping the fail signature data for the associated memory into the physical aware format for that memory.
6. The integrated circuit of claim 5, wherein the comparison circuitry produces the fail signature for each of the embedded memories at a common output; and further comprising: a plurality of decode circuits, each associated with one of the plurality of embedded memories, having an input coupled to the common output of the comparison circuitry and an input receiving an indicator that the current fail signature data corresponds to its embedded memory, for communicating the fail signature data to the multiplexer mapping circuit associated with its embedded memory responsive to the indicator indicating that the fail signature data corresponds to its embedded memory.
7. The integrated circuit of claim 1, wherein the first decode function comprises: a plurality of decode circuits, each associated with one of the plurality of embedded memories, having an input coupled to the first processor core and an input receiving an indicator that the current test data corresponds to its embedded memory, and having an output; a plurality of multiplexer mapping circuits, each associated with one of the plurality of embedded memories and having an input coupled to the output of a corresponding decode circuit, each multiplexer mapping circuit for mapping the test data for the associated memory into the physical-aware format for that memory; and a plurality of comparison circuits, each for comparing the test data from one of the embedded memories as received from a corresponding multiplexer mapping circuit with expected data for that memory to produce fail signature data for that memory.
8. The integrated circuit of claim 1, further comprising: a second processor core, comprising: logic circuitry; a plurality of embedded memories, each associated with at least one repair entity; and built-in self-test circuitry; and wherein the built-in self-repair circuitry further comprises: a second decode function, having an input coupled to the first processor core, for decoding test data from each of the embedded memories into fail signature data in a physical-aware format for the associated memory; wherein the align and merge circuitry is also for reformatting the fail signature data from the second decode function into the unified repair format; and wherein the unified repair format including a plurality of portions numbering at least the maximum number of repair entities among the plurality of embedded memories of the first and second processor cores, each portion including a plurality of bit positions numbering at least the maximum number of bits of the fail signature data in the physical-aware format for the corresponding repair entity among the plurality of embedded memories of the first and second processor cores.
9. The integrated circuit of claim 1, further comprising: a fuse non-volatile read-only-memory, for storing fuse pattern data for each of the repair entities for each of the embedded memories; and a fuse controller, for writing contents of the shadow fuse register for one or more of the embedded memories into corresponding locations of the fuse non-volatile read-only-memory.
10. The integrated circuit of claim 1, further comprising: circuitry for communicating the fuse pattern data stored in at least one of the shadow fuse registers to its associated embedded memory.
11. A method of executing built-in self-repair functionality in an integrated circuit, comprising: executing a built-in self-test routine within a first processor core of the integrated circuit, the first processor core comprising a plurality of embedded memories, each memory associated with at least one repair entity; communicating test data from the built-in self-test routine for one of the plurality of embedded memories to built-in self-repair circuitry in the integrated circuit; decoding the test data into fail signature data in a physical-aware format for the embedded memory; reformatting the fail signature data into a unified repair format for the first processor core, the unified repair format including a plurality of portions numbering at least the maximum number of repair entities among the plurality of embedded memories of the first processor core, each portion including a plurality of bit positions numbering at least the maximum number of bits of the fail signature data in the physical-aware format for the corresponding repair entity among the plurality of embedded memories of the first processor core; encoding the fail signature in the unified repair format into a fuse pattern, in the unified repair format, for the repair entities of the embedded memory; reconfiguring the fuse pattern from the unified repair format into a fuse pattern having an order corresponding to the repair entities for the embedded memory; and then storing the reconfigured fuse pattern in one or more shadow fuse registers associated with the embedded memory.
12. The method of claim 11, wherein the reformatting step comprises: splitting the physical-aware fail signature data into a plurality of portions corresponding to the unified repair format; storing the corresponding portion of the physical-aware fail signature data in a plurality of register stages, each register stage corresponding to one of the portions of the unified repair format; and merging the contents of one register stage for each of the plurality of embedded memories for application to a corresponding fuse encoder.
13. The method of claim 12, wherein the reformatting step further comprises: padding excess bit positions in the portions of physical-aware fail signature data beyond that required for enabling the corresponding repair entity.
14. The method of claim 11, wherein the decoding step comprises: comparing the test data for the embedded memory with expected data for that memory to produce the fail signature data; and mapping the fail signature data for the embedded memory into the physical-aware format for that memory.
15. The method of claim 11, wherein the decoding step comprises: mapping the test data for the associated memory into the physical-aware format for that memory; and then comparing the test data from the embedded memory with expected data for that memory to produce the fail signature data.
16. The method of claim 11, further comprising: writing contents of the shadow fuse register for the embedded memory into a fuse non-volatile read-only-memory.
17. The method of claim 11, further comprising: storing contents of a shadow fuse register in a repair address register of its associated embedded memory.
Description
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
DETAILED DESCRIPTION OF THE INVENTION
(10) The one or more embodiments described in this specification are implemented into a multiple-core large-scale integrated circuit, such as that suitable as a system-on-a-chip (SoC) or similar device, as it is contemplated that such implementation is particularly advantageous in that context. However, it is also contemplated that concepts of this invention may be beneficially applied to other applications, including general purpose microprocessors, application specific processors, and the like. Accordingly, it is to be understood that the following description is provided by way of example only, and is not intended to limit the true scope of this invention as claimed.
(11)
(12) SoC 400 includes multiple processor cores 430a, 430b, 430c, etc. that carry out various programmable arithmetic and logic functions as appropriate for the end application of SoC 400. Examples of the various types of processor cores 430 include generic programmable processors, digital signal processors (DSPs) or other application-specific or customized logic, fixed sequence generators, and the like. For purposes of this description, these processor cores 430 each constitute a block of programmable or custom logic circuitry in combination with embedded memory resources. As typical in the art, these processor cores 430 are portable in the sense that each can be placed, as a whole, in an integrated circuit layout for providing a particular desired function, and are reusable in the sense that the same processor core may be used in different overall SoC architectures. The particular form in which a given processor core 430x is defined can also vary; soft cores are in the form of synthesizable data according to a hardware description language or gate-level netlist, while hard cores are defined as a low-level physical description or actual integrated circuit layout. Processor cores 430 are also referred to in the art as intellectual property cores, IP cores, or more simply IPs, and are often distributed under license agreements with the owner of the intellectual property rights in the design. As described above in connection with the Background of the Invention, processor cores 430a, 430b, 430c in SoC 400 need not originate from the same source or vendor; rather, it is not uncommon for multiple processor cores, from different vendors and of different functional and BIST architectures, to reside within the same large scale integrated circuit.
(13) According to this embodiment, the embedded memory resources of processor cores 430a, 430b, 430c of SoC 400 may be realized as random access memory (RAM) for data storage, flash or other non-volatile memory for storage of data or program instructions, or a combination of these memory types. As discussed above, these embedded memory resources may not be directly accessible over the functional datapath (e.g., via system bus 415) but may be testable only by embedded BIST circuitry and communicated only via a corresponding BIST datapath of processor core 430.
(14) Other memory resources may also reside in SoC 400, for example as shown by non-volatile memory arrays 410a, 410b and RAM 411, each of which is accessible over system bus 415 or direct memory access (DMA) bus 417. While memory resources 410a, 410b, 411 are shown in
(15) Various peripheral functions may also be provided in SoC 400. In the architecture of
(16) In a more general sense, it is contemplated that the various memory resources and other functions in the architecture of SoC 400 may not be physically realized in the arrangement shown in
(17) According to these embodiments, SoC 400 includes built-in self-repair (BISR) circuitry 450 and fuse ROM 452. As shown in
(18) In addition, conventional BIST circuitry 454 may be provided in SoC 400, as shown in
(19) According to these embodiments, BISR circuitry 450 is constructed to include a unified repair architecture for performing repair analysis for embedded memories, and perhaps also non-embedded memories in SoC 400, despite the architectural diversity among those memories. As will become apparent from the following description, this unified architecture is enabled by the aligning and merging the fail signature data from these diverse memory architectures into an interface that is applied to the unified repair architecture. Repair analysis, as performed under the unified repair architecture on the aligned and merged fail signature data, results in repair data that are reconfigured and encoded for storing in shadow fuses for each of the diverse memories.
(20) Referring now to
(21)
(22) Decode memory physical map functions 24a through 24x decode the fail signature data provided at the common output of the corresponding exclusive-OR function 22a through 22x according to which embedded memory is under test, to separately present per-memory fail signature data. Decode memory physical map functions 24a through 24x also decode that fail signature data from a form according to the logical address architecture for the particular embedded memory, to a physical-aware form upon which repair analysis can be performed for each memory. In other words, the per-memory physical-aware fail signature data presented by functions 24a through 24x present those data according to a physical view corresponding to the physical repair architecture of the particular embedded memory. For example, decode memory physical map function 24a presents three separate outputs M.sub.1.sub._q, M.sub.2.sub._q, M.sub.3.sub._q, respectively corresponding to embedded memories M.sub.1, M.sub.2, M.sub.3 of processor core 430a. These separate outputs from decode memory physical map function 24a reflect that the logical-to-physical mapping and fail signature decoding may differ among the various embedded memories in a given processor core 430. For example, if embedded memory M.sub.1 has only redundant columns, the fail signature data on output M.sub.1.sub._q will include only the column fail signature; if, for example, embedded memory M.sub.2 has redundant rows and columns, its fail signature data on output M.sub.2.sub._q will include both row and column fail signatures. As such, the functional architecture of BISR circuitry 450 according to these embodiments can efficiently comprehend these differences in physical, logical, and repair architectures, even among embedded memories within black box processor cores.
(23) The BISR architecture of these embodiments is also capable of analyzing and repairing non-embedded memories, such as memories 410a, 410b, 411 in SoC 400 of
(24) In the functional architecture shown in
(25) As shown in
(26) The fuse patterns derived by repair analysis and fuse encode function 42 are in the unified repair format, rather than arranged according to the particular architecture of the memories. Accordingly, fuse and shadow chain reconfiguration logic 44 is provided to reconfigure the fuse patterns derived by repair analysis and fuse encode function 42 into the proper order for enabling the desired repair entities for the rows or columns to be replaced in the memories under test. Function 42 then applies the reconfigured fuse pattern to the appropriate shadow fuse registers 46 for the memory under test. As shown in
(27)
(28) As shown in both
(29) As described above, exclusive-OR function 22a performs a bit-wise comparison of the memory output communicated from the one of the embedded memories M.sub.1, M.sub.2, M.sub.3 of processor core 430 a under test, with the expected data for corresponding addresses of that memory as generated by the applicable test circuitry, to provide a fail signature indicating which bits of the output data, if any, fail the test by not matching the corresponding bits of expected data. According to this architecture, the fail signature presented by exclusive-OR function 22a at any given time may come from any one of the embedded memories M.sub.1, M.sub.2, M.sub.3 of processor core 430a. As such, decode memory physical map function 24a is provided to decode the fail signature according to which of memories M.sub.1, M.sub.2, M.sub.3 it belongs. In this example, decode memory physical map function 24a carries out this decoding by bit-wise AND functions 52.sub.1 through 52.sub.3. Each bit of AND functions 52.sub.1 through 52.sub.3 receives a corresponding fail signature bit at one input, and an identifier (M1, M2, M3, respectively) indicating which of the embedded memories M.sub.1, M.sub.2, M.sub.3 is currently being accessed. Accordingly, only the one of AND functions 52.sub.1 through 52.sub.3 that is associated with the memory currently under test will pass its fail signature data through to the remainder of the repair analysis. According to this embodiment, the bit width of AND functions 52.sub.1 through 52.sub.3 may thus vary according to the logical word width of its corresponding memory M.sub.1, M.sub.2, M.sub.3, respectively, to save chip area. As shown in
(30) While AND functions 52.sub.1 through 52.sub.3 decode the fail signature data from exclusive-OR function 22a according to the currently accessed memory, multiplexer mapping functions 54.sub.1, 54.sub.2, 54.sub.3 of memory decode physical map function 22a map the fail signature data from the logical architecture of embedded memories M.sub.1, M.sub.2, M.sub.3 to a physical view corresponding to the physical repair architecture of the particular embedded memory, on which the repair analysis can be performed. It is contemplated that those skilled in the art having reference to this specification can implement the particular arrangement of multiplexer mapping functions 54.sub.1, 54.sub.2, 54.sub.3 appropriate for the specific architectures of the embedded memories, in the conventional manner. The resulting physical-aware fail signature data produced by multiplexer mapping functions 54.sub.1, 54.sub.2, 54.sub.3 are provided to align and merge function 32, at physical word widths w1, w2, w3, respectively.
(31) According to these embodiments, align and merge function 32 transforms the physical-aware fail signature data from decode memory physical map function 24a into a unified repair format on which centralized repair analysis and fuse encoding are performed by BIRA circuitry 40. In the particular architecture shown in
(32) The architecture of
(33) The aligned decoded fail signature data are then merged by OR functions 62a, 62b for application to the available repair entities. In this example, OR function 62a receives the contents of upper register stages 60a.sub.1, 60a.sub.2, 60a.sub.3, one of which will typically include fail signature data from the memory under test and the others of which will include 0 data in this example, and will forward that data to fuse encoder 64a. Conversely, OR function 62b receives the contents of lower register stages 60b.sub.1, 60b.sub.2, 60b.sub.3, only one of which will typically include fail signature data at any given time, and will forward that data to fuse encoder 64b.
(34) According to this embodiment, BIRA circuitry 40 includes one or more fuse encoders 64, each of which can be used for any one of the embedded memories of a given processor core 430. The number of fuse encoders 64 corresponds to the maximum number of repair entities for an embedded memory in that processor core 430. For the example of
(35) Each fuse encoder 64a, 64b is constructed of logic circuitry arranged in the conventional manner for encoding fail signature data for a memory into a fuse pattern that enables one of the repair entities for that memory. For example, if the two repair entities for a memory are redundant columns, the fail signature data will indicate the column address in which a read failure occurs, and thus the column address for which a redundant column is to be included in the function of the memory. However, because the fail signature data presented to fuse encoders 64a, 64b are arranged in a unified repair format, fuse encoders 64a, 64b are each capable of encoding the fuse pattern for each of multiple embedded memories, regardless of the particular architectures of those memories.
(36) In the architecture of
(37) In this embodiment, fuse reconfiguration logic 44 is constructed as a series of latches associated with each fuse encoder 64, in combination with multiplexers that selectively route data stored in those latches according to an identifier of the memory currently under test. The number of latches in each series corresponds to the number of bit positions in the unified repair format, which is defined by the maximum number of bits of the fuse pattern for an associated repair entity, as will be evident from an example of fuse reconfiguration logic 44 shown in
(38) In this example, embedded memory M.sub.1 has one repair entity for which the fuse pattern consists of six bits, embedded memory M.sub.2 has two repair entities with fuse patterns of two bits each, and embedded memory M.sub.3 has two repair entities with fuse patterns of four bits each. The unified repair architecture for processor core 430a as implemented by BIRA circuitry 40 must be capable of producing a fuse pattern sufficient for all of embedded memories M.sub.1, M.sub.2, M.sub.3. Accordingly, given this repair architecture, the unified repair architecture for processor core 430a requires two fuse encoders 64a, 64b (for the maximum number of repair entities of two), one generating a fuse pattern of six bits and the other generating a fuse pattern of four bits. As mentioned above, for those memories for which the fuse pattern is smaller than that allowed by the unified repair format, align and merge function 32 and fuse encoders 64 will pad the excess bit positions with 0 data (or other don't care values) as placeholders in those bit positions. One may tabulate the unified repair format as utilized by these embedded memories M.sub.1, M.sub.2, M.sub.3 as follows:
(39) TABLE-US-00001 Unified Repair Format for Processor Core 430a Lower Fuse Encoder Upper Fuse Encoder M.sub.1 D D D D D D 0 0 0 0 M.sub.2 D D 0 0 0 0 D D 0 0 M.sub.3 D D D D 0 0 D D D D
where D indicates that the fuse pattern for that memory will include a data bit, and where 0 in the table indicates an excess bit position that is padded with the 0 (i.e., don't care) value for that memory. The example of fuse reconfiguration logic 44 shown in
(40) Multiplexers 73a through 73d in fuse reconfiguration logic 44 implement the serial communication of fuse pattern data for each of the embedded memories M.sub.1, M.sub.2, M.sub.3, as will now be described. In this example, multiplexer 73a receives the Q output of latch 70.sub.1 at its 0 (or false) input, the Q output of latch 70.sub.3 at its 1 (or true) input, and an indicator that memory M.sub.3 is selected at its control input. Multiplexer 73b receives the output of multiplexer 73a at its 0 input, the Q output of latch 70.sub.5 at its 1 input, and an indicator that memory M.sub.1 is selected at its control input. Multiplexer 73c receives the output of multiplexer 73b at its 0 input, the Q output of latch 72.sub.1 at its 1 input, and an indicator that memory M.sub.2 is selected at its control input. Multiplexer 73d receives the output of multiplexer 73c at its 0 input, the Q output of latch 72.sub.3 at its 1 input, and the indicator that memory M.sub.3 is selected at its control input. It is contemplated that the indicators of which memory is selected will be generated by the applicable BIST embedded circuitry, or other internal or external test circuitry, to identify which memory is currently under test. As a result, the fuse pattern data in the unified repair format, as generated by upper and lower fuse encoders 64a, 64b, are loaded in parallel into the latches 70, 72 of fuse reconfiguration logic 44, and are serially clocked out on line FDO in a format that corresponds to the shadow fuse register 46 (
(41)
(42) For the case in which memory M.sub.2 is the memory under test, multiplexers 73 of fuse reconfiguration logic 44 will route the fuse pattern data in the manner shown in
(43)
(44)
(45) Referring back to
(46)
(47) In the embodiment of
(48) According to this embodiment, multiplexer mapping functions 54.sub.1, 54.sub.2, 54.sub.3 thus present the memory data from their respective memories M.sub.1, M.sub.2, M.sub.3, in a physical-aware form, to an input of a corresponding exclusive-OR function 22a1, 22a2, 22a3, respectively. Each of exclusive-OR functions 22a1, 22a2, 22a3 also receive, at another input, the expected data as generated by BIST circuitry 454 or external automated test equipment for the particular test being performed. These expected data are similarly arranged in a physical-aware form, matching that of the expected data presented by decode memory physical map function 24a for the intended one of memories M.sub.1, M.sub.2, M.sub.3, so that the proper comparison may be made. The provision of dedicated exclusive-OR functions 22a1, 22a2, 22a3 for each memory M.sub.1, M.sub.2, M.sub.3 allows these functions to have a bit width matching that of its memory, rather than a bit width corresponding to the widest bit width among the memories. The exclusive-OR function 22a1, 22a2, 22a3 associated with the memory currently under test will thus generate fail signature data indicating the bit positions at which the decoded and mapped memory data from decode memory physical map function 24a do not match the expected data for that test. These fail signature data for embedded memories M.sub.1, M.sub.2, M.sub.3 are then presented to align and merge function 32, which transforms the physical-aware fail signature data into a unified repair format upon which centralized repair analysis and fuse encoding is applied by BIRA circuitry 40, as described above relative to
(49) These embodiments provide important advantages relative to conventional BISR circuitry, particularly in large-scale integrated circuits such as SoC devices. As discussed above, conventional BISR circuitry provides a dedicated fuse encoder for each embedded memory in each processor core, because of differences in the repair architectures among those various memories. According to these embodiments, however, the same fuse encoder circuitry can be used for multiple embedded memories of varying repair architectures, regardless of whether the embedded memories are directly accessible or are embedded within a black box processor core that has its own embedded BIST circuitry datapath. By reducing the number of instances of fuse encoders required in the integrated circuit, these embodiments can save substantial chip area relative to conventional BISR implementations, for example by as much as 50% over state-of-the-art EDA self-repair solutions for processor cores with embedded BIST. In addition, it is contemplated that these embodiments can save substantial memory repair test time and power consumption, as compared with conventional large-scale integrated circuit architectures in which black box processor cores with embedded BIST cannot take advantage of built-in repair techniques.
(50) While one or more embodiments have been described in this specification, it is of course contemplated that modifications of, and alternatives to, these embodiments, such modifications and alternatives capable of obtaining one or more the advantages and benefits of this invention, will be apparent to those of ordinary skill in the art having reference to this specification and its drawings. It is contemplated that such modifications and alternatives are within the scope of this invention as subsequently claimed herein.