The present invention generally relates to the field of memory testing and repair. Specifically, the present invention relates to the field of memory Built-in Self-Repair (BISR).
With VLSI designs entering multi-million gate count range, the yield of embedded memories is becoming a limiting factor for the overall yield for Integrated Circuit manufacturing. Memory built-in self-repair (BISR) techniques can help improve the yield of embedded memories. The memory BISR capability allows an IC device to continue to function despite the presence of defect(s) in its embedded memories. With memory BISR, faulty or defective memory blocks are identified and replaced with “redundant” memory block(s). These redundant memory blocks are pre-allocated memory blocks within a chip to be used for BISR purposes. By contrast, regular memory blocks are called “base” blocks.
Two methods for memory BISR have been proposed previously by Nicolaidis, et al. (2003). In the first method, as illustrated in
The present invention provides a novel solution to memory BISR. During memory BISR, for a fault-free base block, input data can be written directly into the base block without going through a network of multiplexers (MUXes). This will allow the memory to operate at its intended speed during the write mode of operation.
The above and other objectives, advantages and features of the invention will become more apparent when considered with the following specifications and accompanying drawings wherein:
The following description is presently contemplated as the best mode of carrying out the present invention. This description is not to be taken in a limiting sense but is made merely for the purpose of describing the principles of the invention. The scope of the invention should be determined by referring to the appended claims.
The embodiment of the present invention, further illustrated in
For ease of illustration, we make definitions as follows: A base block of the memory will be called Ui, with i ranging from 0 to N−1. The redundant blocks will be called R0 to Rk−1, where k is the number of pre-allocated redundant blocks within a chip. The multiplexers associated with redundant blocks R0 to Rk−1 will be called MUXR0 to MUXRk−1. The multiplexers associated with base block U0 to UN−1 will be called MUX0 to MUXN−1. di designates the input signal of the memory unit (0≦i≦N−1). qi designates the output signal of the memory unit (0≦i≦N−1). The control signals for MUXRi (0≦i≦K−1) are Mij (0≦j≦N−1). The control signals for MUXi (0≦i≦N−1) are Mji (0≦j≦K−1).
For write configuration, the input signal, di, of the memory unit fans out to Ui and MUXR0 to MUXRk−1. Each multiplexer MUXRi has N control signals Mi0 to MiN−1. When one of the MUX control signals is 1, this means a base memory block is defective and a redundant block is needed for the repair operation. When all control signals are 0, there is no need for a repair operation. For example, if block U0 is defect-free, while U1 is defective, M01 must be 1 and all the multiplexer's other control inputs, M00, M02 to M0N−1, must be zero. The input, d1, will be stored in redundant block R0.
For ease of illustration, we make the following definitions: ri represents the state of a redundant block and
The logic values at the multiplexer control inputs Mi+1j+1, where 0≦i≦k−2 and 0≦j≦N−2, can be expressed in terms of the states of their associated base blocks U0 to Uk as follows:
As can be seen, variable Mi+1j+1 is equal to 1 if base block, Uj+1, is defective, the redundant, Ri+1, is defect-free, and if there exists an integer n<i+1 such that the defect-free redundant block, Rn, is already assigned to a base unit Um with m<j+1, and the redundant blocks Rn+1, Rn+2, . . . , Ri are defective.
The logic values at the multiplexer control inputs M0j, where 0≦j≦k, can be expressed in terms of the states of their associated base blocks U0 to Uk as follows:
As can be seen, variable M00 is equal to 1 if base block U0 is defective and the redundant block, R0 is defect-free, otherwise M00 will be zero. Variable M0i+1 (0≦i≦N−2) is equal to 1 when base block Ui+1 is defective, the base blocks, Un (integer n<i+1) are defect-free and the redundant block R0 is defect-free, otherwise variable M0i+1 will be zero.
The logic values at the multiplexer control inputs Mi0, where 0≦i≦k, can be expressed in terms of the states of their associated base blocks U0 to Uk as follows:
As can be seen, variable Mi+10 (0≦i≦k−2) is equal to 1 when base block U0 is defective, the redundant block, Ri+1, is defect-free and Rn (integer n<i+1) are defective, else variable Mi+10 will be zero.
For read configuration, the output signal, qi, of the memory unit comes from MUXi. Each multiplexer MUXi has K control signals M0i to MK−1i. When one of the MUX control signals is 1, this means the base memory block i is defective and the value in the redundant block should be the output. When all control signals are 0, the base memory block i is defect-free and the value of it should be the output. For example, if M01 is 1, the value of redundant block R0 should be output to q1. The variable Mi+1j+1 is equal to those in the write configuration.
Having thus described presently preferred embodiments of the present invention, it can now be appreciated that the objectives of the invention have been fully achieved. And it will be understood by those skilled in the art that many changes in construction & circuitry, and widely differing embodiments & applications of the invention will suggest themselves without departing from the spirit and scope of the present invention. The disclosures and the description herein are intended to be illustrative and are not in any sense limitation of the invention, more preferably defined in the scope of the invention by the Claims appended hereto and their equivalents.