KR100959055B1 - System and embedded circuit for built-in self repair and built-in self test and method thereof - Google Patents

System and embedded circuit for built-in self repair and built-in self test and method thereof Download PDF

Info

Publication number
KR100959055B1
KR100959055B1 KR1020070099872A KR20070099872A KR100959055B1 KR 100959055 B1 KR100959055 B1 KR 100959055B1 KR 1020070099872 A KR1020070099872 A KR 1020070099872A KR 20070099872 A KR20070099872 A KR 20070099872A KR 100959055 B1 KR100959055 B1 KR 100959055B1
Authority
KR
South Korea
Prior art keywords
memory
march
address
algorithm
spare
Prior art date
Application number
KR1020070099872A
Other languages
Korean (ko)
Other versions
KR20080076686A (en
Inventor
박장현
장훈
김창선
심은성
홍원기
Original Assignee
한국전자통신연구원
숭실대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원, 숭실대학교산학협력단 filed Critical 한국전자통신연구원
Publication of KR20080076686A publication Critical patent/KR20080076686A/en
Application granted granted Critical
Publication of KR100959055B1 publication Critical patent/KR100959055B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/27Built-in tests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements

Abstract

본 발명은 유한 상태 머신(FSM) 및 스페어 메모리의 행과 열에 재배치할 수 있는 알고리즘을 이용하여 기존의 결함 모델뿐만 아니라 새롭게 모델링된 결함까지도 검출해 낼 수 있고 메모리 생산 과정의 안정화에 따라 좀 더 다양한 알고리즘을 선택하여 적용할 수 있는 내장 자체 테스트 회로와 검출된 결함을 효율적으로 복구하기 위한 내장 복구 회로를 제공한다. 본 발명에 따른 메모리 장치는 데이터를 저장하고 저장된 데이터를 출력하기 위한 데이터 저장부, 외부에서 입력되는 선택 신호에 대응하여 다수개의 알고리즘 중 하나를 선택하여 출력하는 알고리즘 생성부 및 알고리즘 생성부에서 출력된 알고리즘을 이용하여 데이터 저장부를 테스트하여 결함이 있는 영역을 검출해 내는 테스트 제어부를 포함한다. 본 발명은 여러 가지의 메모리를 포함하는 SOC의 경우 다양한 결함이 발생하여도 결함을 검출하여 SOC를 정상동작시킬 수 있으며 SOC 내 메모리 장치를 스페어 행과 열 메모리를 이용하여 결함을 복구하여 사용할 수 있어 메모리의 수율을 증가시킬 수 있다.The present invention can detect not only the existing defect model but also newly modeled defects using a finite state machine (FSM) and an algorithm that can be relocated to the rows and columns of the spare memory. It provides a built-in self-test circuit that can select and apply algorithms and a built-in recovery circuit to efficiently recover from detected defects. The memory device according to the present invention includes a data storage unit for storing data and outputting the stored data, an algorithm generator for selecting and outputting one of a plurality of algorithms in response to a selection signal input from the outside, and an output from the algorithm generator. And a test control unit for detecting a defective area by testing the data storage unit using an algorithm. According to the present invention, in the case of an SOC including various memories, the SOC can be normally operated by detecting a defect even when various defects occur, and the memory device in the SOC can be repaired and used by using a spare row and column memory. The yield of memory can be increased.

임베디드 메모리, 자가 테스트, 자가 복구, 마치 요소, 유한상태머신 Embedded memory, self test, self repair, like element, finite state machine

Description

프로그램 가능한 자체 테스트가 통합된 내장 메모리 장치 및 시스템과 그의 자가 복구 방법{SYSTEM AND EMBEDDED CIRCUIT FOR BUILT-IN SELF REPAIR AND BUILT-IN SELF TEST AND METHOD THEREOF}Built-in memory device and system with programmable self-test and its self-healing method {SYSTEM AND EMBEDDED CIRCUIT FOR BUILT-IN SELF REPAIR AND BUILT-IN SELF TEST AND METHOD THEREOF}

본 발명은 메모리의 자가 복구 회로에 관한 것으로, 특히 프로그램 가능한 자체 테스트 알고리즘을 통해 시스템온칩(System On Chip, SOC)에 포함된 다양한 내장 메모리를 테스트하여 검출된 결함 있는 메모리 부분을 여분의 메모리로 대체하여 복구할 수 있는 자가 복구 회로 및 그 방법에 관한 것이다.The present invention relates to a self-healing circuit of a memory, and in particular, to test a variety of internal memory contained in a System On Chip (SOC) through a programmable self-test algorithm to replace the detected defective memory portion with a spare memory The present invention relates to a self-healing circuit and a method thereof that can be recovered.

메모리 각각의 구성요소들의 크기가 작아짐에 따라 결함의 발생 가능성이 커지고 발생한 결함을 복구하는 일은 더욱 복잡해 지고 있다. 특히, 휴대용 기기 등의 발전과 맞물려, 여러 기능을 수행하는 회로가 하나의 칩(chip)에 집적되어 생산된다. 이러한 SOC 하나에는 다수개의 회로가 포함되고 그러한 다양한 기능을 지원하기 위해 포함된 내장 메모리의 크기는 점점 커지고 있어, 제조 후 테스트하는 시간도 증가하게 되었다. 결국, 메모리 장치를 테스트하는 시간의 증가로 인하여, 트 랜지스터 하나를 생산하는 비용보다 메모리 장치의 테스트를 위해 소비되는 비용이 더 크게 되었다. As the size of each component of the memory decreases, the probability of occurrence of a defect increases and the recovery of the generated defect becomes more complicated. In particular, in conjunction with the development of portable devices, circuits for performing various functions are integrated and produced on one chip. One such SOC contains multiple circuits, and the size of the embedded memory included to support such a variety of functions is increasing, resulting in increased post-production testing time. As a result, the increased time for testing a memory device has resulted in a higher cost of testing the memory device than the cost of producing one transistor.

SOC내 포함된 내장 메모리를 점점 커지고 있으며, SIA(Semiconductor Industry Association)의 기술보고서에 따르면 2014년에 내장 메모리가 차지하는 면적의 비중이 전체 SOC (System-On-Chip)의 94%에 이를 것으로 전망하고 있다. 따라서, SOC를 테스트하는 과정에서의 시간과 비용을 줄이기 위해서는 내장 메모리를 테스트하는 과정을 개선하는 것이 가장 큰 영향을 미친다는 것을 의미한다.The internal memory included in the SOC is growing, and according to the SIA (Semiconductor Industry Association) technical report, the area of the internal memory in 2014 will be 94% of the total system-on-chip (SOC). have. Thus, to reduce the time and cost of testing SOC, improving the process of testing internal memory has the greatest impact.

내장 메모리의 용량은 계속 커지는 반면, SOC 크기는 점점 줄어듦에 따라 테스트 과정은 더욱 복잡해져 복잡한 알고리즘과 많은 시간이 필요하게 되었다. 따라서 반도체 자동 검사장비(Automatic Test Equipment, ATE)를 이용하여 외부에서 내장 메모리를 액세스하여 테스트하는 방법은 매우 오랜 테스트 시간을 필요로 하고, 엣-스피드(at-speed) 테스트는 할 수 없게 되었다. 또한, 내장 메모리의 비중이 높아짐에 따라 테스트의 효율성뿐만 아니라 내장 메모리를 포함하고 있는 SOC의 수율 도 중요한 문제로 부각되고 있다.As the amount of internal memory continues to grow, while the size of the SOC decreases, the testing process becomes more complex, requiring complex algorithms and a lot of time. Therefore, the method of accessing and testing the internal memory from the outside using a semiconductor automatic test equipment (ATE) requires a very long test time, and at-speed testing cannot be performed. In addition, as the proportion of internal memory increases, not only the efficiency of the test but also the yield of the SOC containing the internal memory is an important problem.

내장 메모리를 효율적으로 테스트하기 위해서는 메모리 장치가 내장 자가 테스트(Built-In Self-Test, BIST) 회로를 내부에 포함하는 것이 제안되고 있으며, 테스트 회로를 단순히 메모리 장치에 포함하는 것만이 아니라, 테스트 방식의 구현의 우수성과 효율성도 고려되어야 한다. 더 나아가, SOC의 수율을 증대시키기 위해, 테스트를 통해 검출된 결함을 복구할 수 있도록 메모리 장치가 내장 자가 복구(Built-In Self-Repair, BISR)회로를 포함하는 것이 제안되고 그 사용이 널리 확 대되고 있다. 여기서, 메모리 장치의 내장 자가 복구(BISR)는 결함 검출을 위한 내장 자가 테스트(BIST) 뿐만 아니라 내장 자가 진단(Built-In Self-Diagnostics, BISD), 자가 리던던시 분석(Built-In Redundancy Analysis, BIRA) 등과 같은 여러 가지 메커니즘을 수반하고 있다.In order to efficiently test the internal memory, it is proposed that the memory device includes a built-in self-test (BIST) circuit therein, and the test method is not merely included in the memory device. The excellence and efficiency of implementation should also be considered. Furthermore, in order to increase the yield of SOC, it is proposed that the memory device include a built-in self-repair (BISR) circuit to repair the defects detected by the test and its use is widely confirmed. It is being treated. Here, the built-in self-repair (BISR) of the memory device is not only built-in self test (BIST) for defect detection, but also built-in self-diagnostics (BISD), self-redundancy analysis (BIRA). It is accompanied by several mechanisms.

내장 자체 테스트(Built-in Self Test)는 기존의 반도체 자동 검사장비(Automatic Test Equipment, ATE)를 이용한 테스트 문제점들을 해결하는 방법을 제시하였다. 내장 자체 테스트는 테스트 하에 있는 칩을 위한 적절한 메모리 테스트 알고리즘을 구현할 수 있다. 메모리 내장 자체 테스트는 메모리 장치에 내장되어있어 외부 검사장비와 연결되는 채널을 위한 많은 수의 포트를 필요로 하지 않고, 메모리 장치의 동작 속도로 테스트가 가능하여 엣-스피드(at-speed) 테스트가 가능하다. 그러나 이러한 테스트 구조는 메모리 장치의 제조시에 이미 정해진 하나의 테스트 알고리즘만을 적용할 수 있었다.Built-in Self Test has presented a method for solving test problems using existing semiconductor automatic test equipment (ATE). Built-in self-test can implement the appropriate memory test algorithm for the chip under test. The built-in memory test is built into the memory device, which eliminates the need for a large number of ports for channels to be connected to external test equipment, and allows for testing at the operating speed of the memory device, enabling at-speed testing. It is possible. However, such a test structure could apply only one test algorithm that was already determined at the time of manufacturing a memory device.

하나의 알고리즘만 사용하여 테스트하는 방법은 다음과 같은 문제점을 가진다. 첫 번째 이유로 메모리 장치는 메모리 생산하는 과정을 반복하는 동안 필요한 테스트 알고리즘이 바뀌었을 때 대처하기 어렵다. 생산 초기에는 비록 복잡하고 시간이 오래 걸리더라도 다양한 결함을 찾아내는 알고리즘이 필요하지만, 생산을 반복적으로 거듭할수록 생산 공정이 안정화되어 수율이 높아지므로 더 간단하고 빠른 알고리즘만으로 메모리 장치의 테스트가 가능하다. 예를 들어, 메모리 장치를 반복적으로 생산하는 데에 어떤 문제가 발생하고 안정적으로 생산이 가능하면, 그에 대한 테스트를 생략해도 될 것이다.The test using only one algorithm has the following problems. For the first reason, memory devices are difficult to cope with when the necessary test algorithms are changed during the memory production process. In the early stages of production, algorithms are needed to find various defects, even if they are complex and time consuming.However, as the production is repeated repeatedly, the production process is stabilized and yield is increased. Therefore, a simpler and faster algorithm can be used to test a memory device. For example, if a problem arises in the repetitive production of a memory device and can be stably produced, testing may be omitted.

두 번째로 SOC는 다양한 형식의 메모리 블록을 포함할 수 있다. 각 메모리 형식에 따라 그에 적합한 테스트 알고리즘들이 다르다. 결국, 메모리 생산 공정의 수율과 메모리 블록에 따른 적합한 알고리즘들을 모두 지원하려면 모든 알고리즘을 구현한 테스트 회로를 내장하여야 하므로 SOC 내부에 오버헤드가 증가하게 된다.Secondly, an SOC can contain various types of memory blocks. Different memory types have different test algorithms. As a result, in order to support both the yield of the memory production process and the appropriate algorithms according to the memory blocks, the overhead of the SOC is increased because the test circuit implementing all the algorithms must be embedded.

이를 개선하기 위해, 다양한 테스트 알고리즘을 지원하는 프로그램 가능한 메모리 내장 자체 테스트(Programmable Memory Built-in Self Test)가 제안되었고, 이는 테스트가 필요한 시점의 환경에 적합한 테스트 알고리즘을 선택 가능할 수 있도록 하여 효율성을 높일 수 있게 되었다. 다양한 프로그램 가능한 메모리 내장 자체 테스트가 지금까지 개발되었는데 크게는 마이크로 코드를 이용한 방법과 유한 태 머신(FSM:Finite State Machine)을 이용한 접근방법으로 나눌 수 있다.To improve this, a Programmable Memory Built-in Self Test has been proposed that supports various test algorithms, which increases efficiency by allowing you to select the test algorithm that is appropriate for the environment at which the test is needed. It became possible. Various programmable in-memory self tests have been developed so far, which can be largely divided into microcode and finite state machine (FSM) approaches.

일반적으로 마이크로 코드를 이용한 방법이 다양한 알고리즘에 적용이 쉽기 때문에 많이 사용된다. 마이크로 코드를 이용한 테스트에서는 알고리즘의 각 단계를 가리키는 명령어들이 정의되어있다. 알고리즘의 각 단계는 미리 정의된 명령어들에 의해서 구성된다. 즉, 테스트 시 알고리즘의 각각 단계마다 명령어가 필요하게 되고, 매번 외부에서 내장 자체 테스트로 명령어를 전송해 주어야 한다. 이 방법은 자유롭게 테스트에 사용할 알고리즘을 선택할 수 있는 장점이 있다. 그러나 내장 자체 테스트 회로의 복잡도가 커지고, 오버헤드가 증가하게 된다. SOC 안에 존재하는 내장 메모리를 테스트하는 경우, 반도체 자동 검사장비(ATE)는 테스트를 수행하기 위한 많은 명령어를 전송해야하므로, 외부의 명령어를 입력받을 수 있는 연결 핀이 필요하고, 테스트 시간 또한 증가하게 된다.In general, the method using microcode is frequently used because it is easy to apply to various algorithms. In microcode testing, instructions are defined for each step of the algorithm. Each step of the algorithm is constituted by predefined instructions. In other words, each step of the algorithm is required for the test, and the command must be sent from the outside to the built-in self test each time. This method has the advantage of freely choosing the algorithm to use for testing. However, the complexity of embedded self-test circuits increases and the overhead increases. When testing the internal memory present in the SOC, the semiconductor automated test equipment (ATE) needs to send a large number of commands to perform the test. Therefore, a connection pin is required to receive external commands and the test time is increased. do.

유한 상태 머신(FSM)을 이용하는 프로그램 가능한 내장 자체 테스트는 알고리즘의 각 단계가 미리 설계된 유한 상태 머신(FSM)을 따라 동작하게 된다. 기존의 하나의 알고리즘을 지원하는 내장 자체 테스트의 대부분이 이러한 방법을 사용하고 있었다. 유한 상태 머신(FSM)을 기반으로 하는 내장 자체 테스트를 프로그램 가능한 구조로 변경하기 위해서는 최소한의 외부 연결 핀이 필요하다. 그 이유는, 외부에서 테스트에 사용할 알고리즘을 선택받아야 하기 때문이다. 또한, 유한 상태 머신(FSM)을 기반으로 하는 내장 자체 테스트는 지원할 수 있는 알고리즘들을 미리 설계 시에 결정하여야 한다. 즉, 유한 상태 머신(FSM) 기반의 구조는 모든 알고리즘이 아닌 미리 정해진 몇 개의 알고리즘만 지원이 가능하다. 하지만, 최소의 외부 연결 핀만을 필요로 하므로 마이크로 코드를 이용한 방식보다 오버헤드를 줄일 수 있고, 메모리 동작 속도에 맞춰 엣-스피드(at-speed) 테스트를 할 수 있기 때문에 효율적인 테스트 속도를 기대할 수 있다.Built-in programmable self-test using the finite state machine (FSM) allows each step of the algorithm to operate according to a predesigned finite state machine (FSM). Most of the built-in self-tests that support a single algorithm used this method. Minimal external connection pins are required to convert the built-in self-test based on the finite state machine (FSM) into a programmable structure. The reason is that the algorithm to be used for the test must be selected externally. In addition, embedded self-tests based on finite state machines (FSMs) must determine in advance the algorithms they can support. That is, the finite state machine (FSM) -based structure can support only a few predetermined algorithms, not all algorithms. However, the minimum external connection pins are required, which reduces the overhead compared to the micro code method, and allows for at-speed testing at the speed of memory operation, thus providing an efficient test speed. .

메모리 내장 자체 테스트를 통해 메모리의 결함 정보를 검출하는 테스트 후 메모리 장치를 복구할 때에는 재배치 알고리즘을 적용한다. 사용자가 결함이 없는 메모리처럼 사용할 수 있도록 여분의 행과 열 메모리에 메모리의 결함 부분을 치환하는 것이 여분 행과 열 메모리 재배치 알고리즘이다. The relocation algorithm is applied to recover the memory device after the test, which detects defect information in the memory through the in-memory self test. Redundant row and column memory relocation algorithms are used to replace defective parts of memory with extra row and column memory so that the user can use them as if they were faultless.

내장 메모리의 행 혹은 열에 결함이 났을 경우 여분의 메모리 행이나 열만을 이용해 결함 부분을 여분 메모리 행 혹은 열로 재배치하는 경우보다 여분 메모리에 행과 열 모두를 이용해 결함 부분을 행과 열로 재배치하는 것이 보다 좀 더 효율적이다. 하지만 결함 부분의 행과 열을 이용해 여분 행과 열 메모리를 재배치하는 알 고리즘은 모든 경우의 수를 전부 확인해 보는 방법 이외에는 정확한 답을 구하기 어려운 비결정 난해(Nondeterministic Polynomial-time hard, NP-hard)에 해당하는 문제이다.If a row or column of internal memory is defective, relocating the defective part to rows and columns using both rows and columns in redundant memory is more difficult than relocating the defective part to extra memory rows or columns using only extra memory rows or columns. More efficient. However, the algorithm for relocating extra row and column memory using defective rows and columns is a non-deterministic polynomial-time hard (NP-hard) that is difficult to get an accurate answer other than checking all the cases. That's a problem.

메모리 셀이 정상적으로 동작하는지 확인하기 위해서는 특정한 순서로 읽기 동작과 쓰기 동작을 수행하여야 한다. 읽기 동작과 쓰기 동작의 횟수와 순서는 찾아내고자 하는 결함의 종류에 따라 달라질 수 있다. 최근 내장 메모리의 결함을 검출하는데 가장 많이 사용되는 알고리즘이 마치(March) 테스트기반 알고리즘이다. 마치(March) 테스트 알고리즘은 마치 요소들(March Elements)로 구성되어 있다. To check whether the memory cells operate normally, read and write operations must be performed in a specific order. The number and order of read and write operations can vary depending on the type of fault you are trying to find. Recently, the most commonly used algorithm for detecting defects in internal memory is March test-based algorithm. March test algorithms consist of March elements.

마치 요소들(March Elements)은 메모리 셀에 적용되는 값과 읽기, 쓰기 동작으로 구성되어 있다. 메모리의 크기가 N이라 할 때, 마치 요소들(March Elements)은 주소를 0에서 N-1까지 증가시키면서, 또는 N-1에서 0까지 감소시키면서 각 메모리 셀에 할당된 여러 번의 읽기, 쓰기 동작을 수행하며 결함을 검출해낸다. 예를 들어, 마치 요소(March Element)인 '(w0,r0)'는 메모리 셀에 '0'을 쓰는 동작(w0)을 하고 읽어온 값이 '0'인지 확인(r0)한 후, 주소가 증가하는 방향으로 다음 주소에 동일한 읽기, 쓰기 동작을 반복 수행하라는 의미이다. 또 다른 마치 요소인 '(r1)'는 읽어온 값을 '1'과 비교한 후 주소 증감 방향에 관계없이 일정한 방향으로 읽기 동작을 수행하라는 의미이고, '(w1)'는 메모리 셀에 '1'을 메모리 감소 방향으로 쓰기 동작을 수행하라는 의미이다.March elements are composed of values applied to memory cells and read and write operations. When the memory size is N, the March elements perform multiple read and write operations allocated to each memory cell, increasing the address from 0 to N-1, or decreasing from N-1 to 0. To detect faults. For example, as if the element ((March Element) '(w0, r0)' performs the operation of writing '0' to the memory cell (w0) and confirms that the read value is '0' (r0), the address is This means repeating the same read and write operations to the next address in increasing direction. Another like element '(r1)' means to read the read value with '1' and perform the read operation in a certain direction regardless of the address increase / decrease direction, and '(w1)' means '1' in the memory cell. 'Means to perform a write operation in the direction of memory reduction.

도 1은 마치 요소들(March Elements)을 기반으로 하는 다양한 테스트 알고리즘을 보여준다. 각각의 알고리즘은 각기 다른 마치 요소들(March Elements)로 구성 되어 있기 때문에, 알고리즘에 따라 검출 가능한 결함의 종류들도 다르다.1 shows various test algorithms based on March Elements. Since each algorithm is composed of different March elements, the types of defects that can be detected vary depending on the algorithm.

도 2는 마치(March) 테스트 기반의 알고리즘마다 가진 결함의 종류들에 대한 결함 검출률을 보여준다. 표에서 'O'는 모두 검출 가능하다는 의미이고, '△'는 부분적으로 검출 가능, 'X'는 검출이 전혀 불가능하다는 의미이다. 표에서 볼 수 있듯이 'March SS' 알고리즘만이 모든 결함의 종류를 검출할 수 있음을 확인할 수 있다.Figure 2 shows the defect detection rate for the types of defects possessed by March test-based algorithms. In the table, 'O' means all detectable, '△' means partially detectable, and 'X' means no detection at all. As can be seen from the table, only the 'March SS' algorithm can detect all types of defects.

기존의 프로그램 가능한 내장 자체 테스트는 MATS+, March X, March C-, March A, March B, Zero-One 총 6개의 알고리즘을 지원했었다. 도 2에서 보는 바와 같이 기존의 프로그램 가능한 내장 자체 테스트 구조에서 지원하는 알고리즘은 읽기 동작에서의 데이터 파괴 결함(Read Destructive Fault, RDF), 쓰기 동작에서의 교란 결함(Write Disturb Fault, WDF), 데이터 전달과정에서의 결함(Coupling Transition fault, CF) 등과 같은 새롭게 모델링된 결함을 완벽하게 검출해낼 수 있다는 보장을 못 한다. SOC의 내장 메모리 생산 초기에는 다양한 결함들이 메모리에서 발생할 수 있어 새롭게 정의된 결함들을 검출해 내지 못하는 기존의 알고리즘만으로 테스트를 하는 것은 테스트의 신뢰도 및 완성된 제품의 신뢰도를 떨어뜨리게 된다. The existing programmable built-in self test supported six algorithms: MATS +, March X, March C-, March A, March B, and Zero-One. As shown in FIG. 2, the algorithms supported by the existing built-in programmable self-testing structure include data destructive faults (Read Destructive Faults (RDF)) in read operations, disturb disturbances (WDF) in write operations, and data transfer. There is no guarantee that new modeled faults, such as coupling transition faults (CF), can be detected perfectly. In the early stages of SOC's internal memory production, various defects can occur in the memory, so testing with existing algorithms that do not detect newly defined defects reduces the reliability of the test and the finished product.

프로그램 가능한 메모리 내장 자체 테스트 후 발견된 결함을 복구하기 위해서, 검출된 결함 정보를 이용해 내장 메모리에 결함 있는 위치를 결함이 없는 여분의 스페어 행과 열 메모리로 재배치함으로써 외부적으로 내장 메모리의 결함에 아무런 영향 없이 사용할 수 있도록 할 수 있다. 스페어 행과 열 메모리 재배치를 위 해 반도체 자동 검사장비(ATE)를 이용한 스페어 메모리 분석 알고리즘들이 제안되어 왔다. 메모리 장치의 내장 자가 복구(BISR)의 구조는 회로에 내장되어야 함에도 기존에 제안되었던 알고리즘들은 내장 회로 내에 적용하기에 많은 비용이 소비되어 구현할 수 없었다. 따라서, 종래에는 스페어 메모리 워드를 이용한 메모리 장치의 내장 자가 복구(BISR)의 구조를 제안하였다. 이 방법은 최적의 해결 방법을 찾기 위해 소모되는 시간이 너무 오래 걸리며 복잡한 계산이 수행되어야 하는 종래에 제안된 다른 알고리즘에 비하여, 스페어 행 메모리만을 이용하기 때문에 스페어 메모리 분석이 요구되지 않아 동작에 이점이 있었다.Programmable Memory To recover from faults found after the built-in self-test, the detected fault information is used to relocate the faulty location in the built-in memory to the spare spare row and column memory without defects, thereby eliminating any faults in the built-in memory. It can be used without impact. Spare memory analysis algorithms using semiconductor automated test equipment (ATE) have been proposed for relocating spare row and column memories. Although the built-in self-healing (BISR) structure of the memory device must be embedded in the circuit, the proposed algorithms are expensive to implement in the embedded circuit and cannot be implemented. Therefore, conventionally, a structure of a built-in self recovery (BISR) of a memory device using a spare memory word has been proposed. This method does not require spare memory analysis because it uses only spare row memory compared to other algorithms proposed in the present invention, which takes too long to find the optimal solution and requires complicated calculations. there was.

그러나, 앞서 설명한 바와 같이, 종래에 사용된 테스트 기술과 복구 기술은 내장 메모리 생산 과정에서 발생할 수 있는 여러 결함을 완전하게 검출하지 못할 뿐만 아니라 검출된 결함을 이용하여 복구하는 데 효율성이 높지 않았다.However, as described above, the test and recovery techniques used in the prior art do not completely detect various defects that may occur in the internal memory production process, and are not highly efficient in recovering from the detected defects.

본 발명은 전술한 문제점을 극복하고 사용자에게 투명성을 제공할 수 있는 기존의 결함 모델뿐만 아니라 새롭게 모델링된 결함까지도 검출해 낼 수 있고 메모리 생산 과정의 안정화에 따라 좀 더 다양한 알고리즘을 선택적으로 적용할 수 있는 내장 메모리 장치 및 시스템과 그의 자가 복구 방법을 제공하는 데 그 특징이 있다. The present invention can detect not only existing defect models but also newly modeled defects that can overcome the above-mentioned problems and provide transparency to the user, and can selectively apply more diverse algorithms according to stabilization of the memory production process. The present invention provides a built-in memory device and system and a self-healing method thereof.

본 발명은 데이터를 저장하고 저장된 데이터를 출력하기 위한 데이터 저장부, 외부에서 입력되는 선택 신호에 대응하여 다수개의 알고리즘 중 하나를 선택하여 출력하는 알고리즘 생성부 및 알고리즘 생성부에서 출력된 알고리즘을 이용하여 데이터 저장부를 테스트하여 결함이 있는 영역을 검출해 내는 테스트 제어부를 포함하는 내장 메모리 장치를 제공한다.The present invention uses a data storage unit for storing data and outputting the stored data, an algorithm generator for selecting and outputting one of a plurality of algorithms corresponding to a selection signal input from the outside, and an algorithm output from the algorithm generator. An internal memory device including a test controller for testing a data storage unit to detect a defective area is provided.

또한, 본 발명은 데이터를 저장하고 저장된 데이터를 출력하기 위한 메모리와 여분의 스페어 메모리를 포함하는 내장 메모리 회로, 외부에서 입력되는 선택 신호에 대응하는 테스트 알고리즘을 실행시켜 내장 메모리 회로 내 메모리의 결함을 검출한 뒤 결함 결과를 통지하는 프로그램 가능한 메모리 자체 테스트 회로, 및 결함 결과를 입력받아 상기 메모리의 결함 영역을 스페어 메모리로 재배치시켜 결함을 복구하기 위한 자가 복구 회로를 포함하는 시스템을 제공한다.In addition, the present invention implements a built-in memory circuit including a memory for storing data and outputting the stored data and an extra spare memory, and a test algorithm corresponding to a selection signal input from an external device to correct defects in the memory in the internal memory circuit. A system includes a programmable memory self-test circuit for detecting and notifying a defect result, and a self-healing circuit for receiving a defect result and relocating the defective area of the memory to a spare memory to repair the defect.

또한, 본 발명은 외부에서 입력된 선택 신호에 의해 내장된 테스트 알고리즘 중 하나를 선택하여 실행한 뒤 내장 메모리의 결함을 테스트하는 단계, 테스트의 결과인 결함 정보에 포함된 주소와 데이터를 이용하여 내장 메모리의 결함 위치를 스페어 행 메모리 혹은 스페어 열 메모리 중 어느 영역으로 재배치할 것인지 판단하기 위한 재배치 알고리즘을 실행하는 단계, 및 재배치 알고리즘 단계에서 발생한 신호에 따라 내장 메모리의 결함 있는 부분을 스페어 행 및 열 메모리로 대체하여 결함을 복구하는 단계를 포함하는 내장 메모리 장치의 자가 복구 방법을 제공한다.Also, the present invention selects and executes one of the test algorithms embedded by an externally selected selection signal, and then tests a defect in the internal memory, and uses the address and data included in the defect information as a result of the test. Executing a relocation algorithm for determining whether to relocate a defective location of the memory to a spare row memory or a spare column memory, and to replace a defective portion of the internal memory according to a signal generated in the relocation algorithm step. The present invention provides a self-healing method of an internal memory device, which includes recovering a defect.

본 발명의 구조에서는 유한 상태 머신(FSM) 및 스페어 메모리의 행과 열에 재배치할 수 있는 알고리즘을 이용하여 기존의 결함 모델뿐만 아니라 새롭게 모델링된 결함까지도 검출해 낼 수 있고, 메모리 생산 과정의 안정화에 따라 좀 더 다양한 알고리즘을 선택하여 적용할 수 있는 내장 자체 테스트 구조를 제안한다. 특히, 더욱 상세하게는 내장된 메모리의 프로그램 가능한 자체 테스트를 통한 메모리 결함 유무 확인과 더불어 결함 있는 정보를 이용해 메모리의 결함 있는 부분을 효율적인 알고리즘을 통해 스페어 행과 열 메모리로 재배치하여 사용자로 하여금 결함 있는 메모리를 정상적인 메모리처럼 사용할 수 있도록 하는 메모리 자체 결함 복구 장치 및 그 방법을 제공하여 종래의 문제를 해결하고자 한다.In the structure of the present invention, by using a finite state machine (FSM) and an algorithm that can be relocated to the rows and columns of the spare memory, not only the existing defect model but also newly modeled defects can be detected. We propose a built-in self test structure that can select and apply a wider variety of algorithms. In particular, in addition to verifying the presence of memory defects through programmable self-testing of the built-in memory, the faulty information can be used to relocate the defective portion of memory to spare row and column memory using efficient algorithms, thereby allowing the user to It is to solve the conventional problem by providing a memory self-defect recovery apparatus and a method for using the memory as a normal memory.

본 발명은 여러 가지의 메모리를 포함하는 SOC의 경우 다양한 결함이 발생하여도 결함을 검출하여 SOC를 정상동작시킬 수 있으며 SOC 내 메모리 장치를 스페어 행과 열 메모리를 이용하여 결함을 복구하여 사용할 수 있도록 함으로써 메모리의 수율을 증가시키는 장점이 있다.According to the present invention, in the case of an SOC including various memories, the SOC can be normally operated by detecting a defect even when various defects occur, and the memory devices in the SOC can be repaired and used by using a spare row and column memory. This has the advantage of increasing memory yield.

또한, 본 발명은 프로그램 가능한 자체 테스트가 통합된 내장 메모리 자가 복구 설계에 관한 것으로 제조시 메모리 장치에서 발생할 수 있는 결함의 종류에 대응하여 적합한 테스트 알고리즘을 선택적으로 실행할 수 있어 테스트 효율을 증가시킬 수 있다.In addition, the present invention relates to an internal memory self-healing design incorporating programmable self-test, which can increase test efficiency by selectively executing a suitable test algorithm corresponding to the kind of defects that may occur in a memory device during manufacturing. .

더 나아가, 본 발명의 특징은 SOC 내 여러 종류의 메모리 장치가 포함되어 있는 경우 각 메모리 장치에서 발생할 수 있는 결함에 대응하는 테스트 알고리즘을 적용할 수 있고 독립적인 스페어 행/열 메모리를 사용함으로써 각 메모리 장치의 결함을 모두 재배치할 수 있는 장점이 있다.Furthermore, a feature of the present invention is that it is possible to apply test algorithms corresponding to defects that may occur in each memory device when several types of memory devices are included in the SOC, and to use each memory by using independent spare row / column memory. The advantage is that all the faults of the device can be rearranged.

상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.The foregoing and other objects, features and advantages of the present invention will become more apparent from the following detailed description of the present invention when taken in conjunction with the accompanying drawings, in which: There will be. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail. Hereinafter, a preferred embodiment of the present invention will be described in detail with reference to the accompanying drawings.

도 3은 본 발명의 일 실시예에 따른 내장 자가 테스트 회로에 설정되어 있는 알고리즘과 알고리즘을 선택하기 위한 선택 번호를 설명하기 위한 표이다.3 is a table for explaining an algorithm set in an embedded self test circuit according to an embodiment of the present invention and a selection number for selecting an algorithm.

도시된 바와 같이, 본 발명의 일 실시예에 따른 프로그램 가능한 자체 테스트 방법은 총 7개의 알고리즘으로 구성되어 있다. 총 7개의 알고리즘에는 메모리 생산 공정 초기에는 많은 결함이 발생하게 되므로 이를 검출하기 위해 현재까지 모델링 된 모든 결함을 검출해 낼 수 있는 March SS 알고리즘이 포함되어있고, 생산을 거듭하여 공정이 안정화될 때 사용가능한 단순하고 빠른 MATS+ 등과 같은 알고리즘도 지원되고 있다.As shown, the programmable self-test method according to an embodiment of the present invention consists of a total of seven algorithms. A total of seven algorithms include the March SS algorithm, which can detect all the defects modeled to date to detect many defects at the beginning of the memory production process. Algorithms such as MATS + are as simple and fast as possible.

도 3에서의 알고리즘 선택번호는 외부의 반도체 자동 검사장비(ATE)에서 내장 자체 테스트를 실행을 위해 선택할 알고리즘의 선택 번호이다. 선택 번호는 총 7개의 알고리즘을 선택하기 위해 3 비트로 구성되어 있다. 선택 번호가 가리키는 각각의 알고리즘은 다수개의 마치(March) 요소들을 포함하고 있고, 각각의 마치 요소는 5비트 신호로 구성되어 있다. 각각의 마치 요소의 코드의 최상위 비트는 마치 요소가 적용되어 테스트 될 메모리를 가리키는 주소의 증감을 나타낸다. 여기서, 주소를 증가하거나 주소의 증감이 자유롭게 테스트하는 마치 요소의 경우는 최상위 비트에‘1’을 부여하고, 주소를 감소시키면서 테스트하는 마치 요소의 경우에는 최상위 비트에 ‘0’이 부여되었다. 또한, 마치 요소를 가리키는 나머지 4비트 코드는 주소의 증감 여부를 제외한 읽기/쓰기 동작을 가리키며, 4비트 코드는 전체 알고리즘에 사용되는 마치 요소들을 정리하여 동작이 동일한 것끼리 같은 번호를 부여하였다. 예를 들어, 모든 알고리즘은 마치 요소인 '(w0)'으로 시작하게 되어있는데, '(w0)'는 주소의 증감이 자유로운 동작이므로 최상위 비트는 '1'로 할당되었고, '(w0)'의 메모리 셀에 '0'을 쓰는 동작을 의미하는 '0001'의 4비트 코드를 부여하여 전체 5비트의 마치 요소의 코드를 완성하였다.The algorithm selection number in FIG. 3 is a selection number of an algorithm to be selected for executing a built-in self test in an external semiconductor automatic inspection equipment (ATE). The selection number consists of 3 bits to select a total of seven algorithms. Each algorithm indicated by the selection number includes a number of March elements, each of which consists of a 5-bit signal. The most significant bit of the code for each element represents the increment of the address pointing to the memory to which the element is applied and tested. In this case, '1' is assigned to the most significant bit for elements that increase or decrease the address freely, and '0' is assigned to the most significant bit for elements that test while decreasing the address. In addition, the remaining 4-bit code indicating the element indicates a read / write operation except whether the address is increased or decreased, and the 4-bit code arranges the elements used in the entire algorithm and gives the same numbers to the same operations. For example, all algorithms are supposed to start with the element '(w0)'. Since '(w0)' is a free movement of the address, the most significant bit is assigned to '1' and the '(w0)' The 4-bit code of '0001', which means the operation of writing '0' to the memory cell, was assigned to complete the code of the entire 5-bit gut element.

도 4는 도 3에 도시된 알고리즘에 포함된 마치 요소를 가리키는 알고리즘코드를 설명하기 위한 표이다.FIG. 4 is a table for explaining algorithm codes indicating elements as if included in the algorithm shown in FIG.

본 발명에 따른 자가 테스트는 총 7개의 알고리즘을 포함하고 있다. 총 7개의 알고리즘에 포함된 마치 요소(March Element)의 수는 35개이지만, 동일한 마치 요소(March Element)에는 같은 코드를 부여하였기에, 1에서 14까지의 코드가 부여 된 마치 요소(March Elements)로 모든 7개의 알고리즘을 표현할 수 있게 되었다. 이러한 취합 과정을 거쳐 정리된 마치 요소(March Elements)는 도 4에 기술된 것처럼 14가지의 4비트 코드[3:0]로 표현될 수 있다.The self test according to the present invention includes a total of seven algorithms. The total number of March elements included in the seven algorithms is 35, but since the same code is assigned to the same March element, the code from 1 to 14 is assigned to the March Elements. All seven algorithms can be represented. March elements arranged through such a collecting process may be represented by 14 four-bit codes [3: 0] as described in FIG. 4.

도 5는 본 발명의 일 실시예에 따른 자체 테스트를 위한 SOC에 내장된 테스트 회로(100)를 설명하기 위한 블록도이다.5 is a block diagram illustrating a test circuit 100 embedded in an SOC for self test according to an exemplary embodiment of the present invention.

도시된 바와 같이, 테스트 회로(100)는 외부로부터 입력되는 제어 신호에 의해 알고리즘을 선택하고 선택된 알고리즘의 마치 요소들(March Elements)을 순서에 맞게 전달하기 위한 알고리즘 생성부(10) 및 전달된 마치 요소들(March Element)을 내장 메모리(20)에 적용시켜 테스트를 진행하는 테스트 제어부(50)를 포함한다. 여기서, 테스트 제어부(50)는 주소를 발생시키기 위한 주소 생성기(80), 내장 메모리(20)에 읽기/쓰기 동작을 실행하기 위한 신호를 발생시키기 위한 신호 발생기(70) 및 내장 메모리(20)에서 읽어 온 값을 정상 동작일 경우의 값과 비교하기 위한 비교기(60)를 포함하고 있다.As shown, the test circuit 100 selects an algorithm by a control signal input from the outside and the algorithm generator 10 and the delivered march for delivering the elements of the selected algorithm in order. The test controller 50 applies a test element by applying the elements to the internal memory 20. Here, the test control unit 50 includes an address generator 80 for generating an address, a signal generator 70 for generating a signal for executing a read / write operation in the internal memory 20, and an internal memory 20. It includes a comparator 60 for comparing the read value with the value in the normal operation.

먼저 반도체 자동 검사장비(ATE)로부터 테스트 시작과 함께 알고리즘을 선택하기 위한 제어 신호(BIST_EN, AL_Select)가 입력되면, 알고리즘 생성부(10)는 포함하고 있는 모든 알고리즘 중 하나를 선택하고 선택된 알고리즘에 맞는 마치 요소들(March Elements)을 준비한다. 준비된 마치 요소들은 코드(MM_code)로 변환되어 마치 시작 신호(Start_ME)의 활성화 이후 테스트 종료 신호(End_of_BIST)의 활성화 전까지 테스트 제어부(50)로 전달된다. 테스트 제어부(50)는 입력되는 코드(MM_code)에 대응하여 마치 요소를 실행하기 위한 읽기/쓰기 동작을 위한 내부 명령어(Ctrl), 읽기/쓰기에 필요한 입력 데이터(InData), 및 읽기/쓰기 동작이 실행될 내장 메모리(20) 내 주소(Addr)를 생성한다.First, when a control signal (BIST_EN, AL_Select) for selecting an algorithm is input from the semiconductor automatic inspection equipment (ATE) at the beginning of the test, the algorithm generator 10 selects one of all algorithms included and fits the selected algorithm. Prepare the Elements. The prepared elements are converted into codes MM_code and transferred to the test controller 50 after the activation of the start signal Start_ME and before the activation of the test end signal End_of_BIST. In response to the input code (MM_code), the test control unit 50 includes an internal command (Ctrl) for a read / write operation to execute an element, input data (InData) required for read / write, and a read / write operation. Create an address Addr in the internal memory 20 to be executed.

테스트가 진행되는 과정에서 테스트 제어부(50)는 입력되는 코드(MM_code)에 대응하는 주소가 없거나 해당 주소로 액세스할 수 없는 경우 혹은 내장 메모리(20)로부터 출력된 데이터(OutData)가 잘못된 경우에 각각에 대응하는 결함 검출 신호들(Fault_Detection, Fault_Address, Fault_Data)을 출력한다.When the test is in progress, the test controller 50 has no address corresponding to the input code MM_code or cannot be accessed with the corresponding address, or when the data OutData output from the internal memory 20 is incorrect. It outputs fault detection signals (Fault_Detection, Fault_Address, Fault_Data) corresponding to.

도 6은 도 5에 도시된 알고리즘 생성부(10)를 구체적으로 설명하기 위한 블록도이다.FIG. 6 is a block diagram for describing in detail the algorithm generator 10 illustrated in FIG. 5.

도시된 바와 같이, 알고리즘 생성부(10)는 외부에 존재하는 반도체 자동 검사장비(ATE)로부터 테스트에 필요한 최소한의 제어 신호를 입력받아, 자체적으로 포함하고 있는 여러 테스트 알고리즘에 해당되는 제어신호 및 코드 등을 출력하기 위한 것이다.As shown, the algorithm generating unit 10 receives a minimum control signal required for a test from an external semiconductor automatic inspection equipment (ATE), the control signal and code corresponding to various test algorithms included in itself And so on.

외부 반도체 자동 검사장비(ATE)로부터 입력되는 제어신호들은 내장된 자체 테스트를 실행시키기 위한 테스트 인에이블 신호(BIST_EN), 포함된 다수개의 알고리즘 중 하나를 선택하기 위한 3비트 알고리즘 선택 신호(AL_Select), 클럭 신호(Clk), 및 테스트의 리셋을 위한 리셋 신호(Rst)가 있다. 아울러, 알고리즘 생성부(10)는 테스트 제어부(50)가 입력된 마치 요소의 코드에 따라 테스트 진행 후 다음 단계의 마치 요소를 요청하기 위한 마치 종료 신호(End_MM)도 입력받는다.The control signals input from the external semiconductor automatic inspection equipment (ATE) include a test enable signal (BIST_EN) for executing a built-in self test, a 3-bit algorithm selection signal (AL_Select) for selecting one of a plurality of included algorithms, There is a clock signal Clk and a reset signal Rst for resetting the test. In addition, the algorithm generator 10 receives the end signal End_MM for requesting the element as if the test control unit 50 is the next step after the test proceeds according to the input code of the element.

전술한 신호들에 대응하여, 알고리즘 생성부(10)는 테스트를 위한 마치 요소(March Element)와 주소 증감 여부를 결정하기 위한 5비트로 구성된 코 드(MM_code), 선택된 테스트 알고리즘의 시작에 따라 마치 요소의 전달을 알리기 위한 마치 시작신호(Start_ME), 모든 테스트가 종료되었음을 알리기 위한 테스트 종료 신호(End_of_BIST), 및 백그라운드 데이터를 바꿔주기 위한 백데이터 신호(BG_CNT)를 테스트 제어부(50)로 출력한다.Corresponding to the above-described signals, the algorithm generating unit 10 is a code (MM_code) consisting of an element (March Element) for testing and whether to increase or decrease the address (MM_code), the element according to the start of the selected test algorithm The start signal Start_ME for notifying the transmission of the signal, the test end signal End_of_BIST for notifying that all the tests have been completed, and the back data signal BG_CNT for changing the background data are output to the test controller 50.

도 7은 도 6에 도시된 알고리즘 생성부(10)의 동작을 구성하는 유한상태머신(FSM)을 설명하기 위한 개념도이다.FIG. 7 is a conceptual diagram illustrating a finite state machine (FSM) constituting an operation of the algorithm generator 10 illustrated in FIG. 6.

도시된 바와 같이, 알고리즘 생성부(10)의 동작은 유한상태머신(FSM)으로 설명할 수 있다. 외부로부터 아무런 입력이 존재하지 않을 시에 알고리즘 생성부(10)는 유휴(Idle, S12)상태에서 외부 입력을 기다리게 된다. 테스트 인에이블 신호(BIST_EN)가 인가되면 알고리즘 생성부(10)는 테스트 가능 상태(BIST Enable, S14)로 전환되고, 외부로부터 알고리즘 선택 신호(AL_Select)가 입력되면 해당되는 알고리즘을 준비하고 준비된 알고리즘에 따라 마치 요소(March element)가 발생함을 알리는 마치 시작 신호(Start_ME)를 테스트 제어부(50)로 인가하게 된다. 이후, 알고리즘 생성부(10)는 테스트 제어부(50)로부터 다음의 마치 요소를 요청할 때까지 기다리는 요청 대기 상태(Wait Request ME, S16)로 전환된다. 이때, 테스트 제어부(50)로부터 마치 종료 신호(End_MM)가 입력되면, 알고리즘 생성부(10)는 마치 요소 전송 상태(Send March Element, S18)로 전환된다. 마치 요소 전송 상태(S18)에서 알고리즘 생성부(10)는 선택된 알고리즘에 해당하는 마치 요소가 남아있는지 그에 따라 필요한 데이터들은 무엇인지를 판단하여 선택된 테스트의 종료를 알려야 하는 경우 유휴(S12)상태로 전환되고, 테스트를 계속 진행해야할 경우에는 테스트 가능 상태(S14) 및 요청 대기 상태(S16)로 전환된다.As shown, the operation of the algorithm generator 10 can be described as a finite state machine (FSM). When there is no input from the outside, the algorithm generator 10 waits for an external input in an idle state (Idle, S12). When the test enable signal BIST_EN is applied, the algorithm generator 10 switches to the testable state (BIST Enable, S14). When the algorithm select signal AL_Select is input from the outside, the algorithm is prepared and the algorithm is prepared. Accordingly, the start signal Start_ME is applied to the test controller 50 indicating that the element is generated. Thereafter, the algorithm generating unit 10 is switched from the test control unit 50 to the request waiting state (Wait Request ME, S16) which waits until the next request for the element is completed. At this time, when the end signal End_MM is input from the test control unit 50, the algorithm generating unit 10 switches to the element transmission state Send March Element S18. In the element transmission state S18, the algorithm generator 10 determines whether the element corresponding to the selected algorithm remains and what data are required accordingly to notify the end of the selected test is switched to the idle state S12. If it is necessary to proceed with the test, it is switched to the testable state (S14) and the request waiting state (S16).

구체적으로 살펴보면, 알고리즘 생성부(10)가 테스트 제어부(50)로부터 다음 단계의 마치 요소(March Element) 요청하는 신호인 마치 종료 신호(End_MM)을 입력받게 되면, 마치 요소 전송 상태(S18)로 전환되어 선택된 알고리즘의 마치 요소들(March Elements)을 코드(MM_code)로 변환하고 다시 요청 대기 상태(S16)로 전환한다. 마치 요소를 전달, 즉 코드(MM_code)를 전송하고 나면 다시 마치 요소 전송 상태(S18)로 전환되고 이러한 과정을 반복적으로 실행하여 해당되는 알고리즘에 포함된 모든 마치 요소들(March elements)을 테스트 제어부(50)로 전달하게 된다. 또한, 알고리즘 생성부(10)는 마지막 마치 요소를 보내고 나서 백그라운드 데이터를 바꾸어 주는 백데이터 신호(BG_CNT)를 하나 증가시키면서 테스트 가능 상태(S14)가 되고 바뀐 백그라운드 데이터를 적용시키기 위하여 마치 시작 신호(Start_ME)를 테스트 제어부(50)로 전달하면서 요청 대기 상태(S16)로 전환되어 새로운 알고리즘을 다시 실행한다. 전술한 과정을 반복하여 백그라운드 데이터를 모두 적용한 테스트가 전부 실행되고 나면 알고리즘 생성부(10)는 테스트 종료 신호(End_of_BIST)를 인가하여 내장 자체 테스트가 끝났음을 알린다.Specifically, when the algorithm generator 10 receives the end signal End_MM, which is a signal for requesting the element of the next step, from the test controller 50, the algorithm generator 10 switches to the element transmission state S18. Then, the elements (March Elements) of the selected algorithm are converted into the code (MM_code), and the state is returned to the request waiting state (S16). After passing the element, that is, the code (MM_code), it is converted to the element transfer state (S18) again and repeatedly executed this process, so that all the March elements included in the corresponding algorithm are included in the test control unit ( 50). In addition, the algorithm generating unit 10 increases the back data signal BG_CNT that changes the background data after sending the last element, and becomes a testable state S14 and applies the changed background data to the start signal Start_ME. ) Is transferred to the test control unit 50 and the state is switched to the request waiting state S16 to execute the new algorithm again. After all the tests that apply all the background data by repeating the above process are executed, the algorithm generator 10 notifies the end of the built-in self test by applying the test end signal End_of_BIST.

도 8은 도 5에 도시된 테스트 제어부(50)의 동작을 구성하는 유한상태머신(FSM)을 설명하기 위한 개념도이다.FIG. 8 is a conceptual diagram illustrating a finite state machine (FSM) constituting an operation of the test controller 50 illustrated in FIG. 5.

도시된 바와 같이, 테스트 제어부(50)는 알고리즘 생성부(10)에서 입력된 신호들에 대응하여 내장 메모리(20)를 직접 테스트한다. 구체적으로, 테스트 제어부(50)는 내장 메모리(20)에 직접 테스트하기 위한 3가지 모듈, 즉 주소를 발생 시 키기 위한 주소 생성기(80), 내장 메모리(20)에 읽기/쓰기 동작을 실행하기 위한 신호를 발생시키는 읽기/쓰기 신호 생성기(70), 및 메모리에서 읽어 온 값을 정상 동작일 경우의 값과 비교하는 비교기(60)를 포함하고 있다.As illustrated, the test controller 50 directly tests the internal memory 20 in response to the signals input from the algorithm generator 10. In detail, the test control unit 50 includes three modules for directly testing the internal memory 20, namely, an address generator 80 for generating an address and a read / write operation for the internal memory 20. A read / write signal generator 70 for generating a signal and a comparator 60 for comparing the value read from the memory with the value in the normal operation.

이하에서는, 도 8에 도시된 유한상태머신(FSM)을 참조하여 테스트 제어부(50)의 동작을 설명한다.Hereinafter, the operation of the test controller 50 will be described with reference to the finite state machine FSM shown in FIG. 8.

테스트 제어부(50)는 알고리즘 생성기(10)로부터 받은 코드(MM_code) 중 최상위 비트는 주소 생성 기(80)로 보내고 나머지는 신호 생성기(70)로 보낸다. 주소 생성기(80)는 입력받은 코드(MM_code)의 최상위 비트(Adr_direc, MM_code[4])가 '1'일 경우에는 주소를 증가시키켜 새로운 주소를 생성하고, '0'일 때에는 주소를 감소시켜 새로운 주소를 생성한 후 내장 메모리(20)로 전송한다. 아울러, 신호 생성기(70)로부터 마치 요소의 각각 세부 동작의 종료를 알리는 동작 종료 신호(End_OP)가 입력되면, 주소 생성기(80)는 새로운 주소를 생성하여 신호 생성기(70)로 다시 전달한다.The test controller 50 sends the most significant bit of the code MM_code received from the algorithm generator 10 to the address generator 80 and the rest to the signal generator 70. When the most significant bit (Adr_direc, MM_code [4]) of the input code (MM_code) is '1', the address generator 80 increases the address to generate a new address, and if it is '0', decreases the address. The new address is generated and then transferred to the internal memory 20. In addition, when the operation end signal End_OP is input from the signal generator 70 to indicate the end of each detailed operation of the element, the address generator 80 generates a new address and delivers it to the signal generator 70 again.

신호 생성기(70)는 최상위 비트(Adr_direc, MM_code[4])를 제외한 코드(MM_code)의 나머지(MM_code[3:0])를 가지고 해당 마치 요소(March Element)가 의미하는 읽기/쓰기 동작을 순서에 맞게 발생시킨다. 예를 들어, 도 4를 참조하면, (r1,w0) 동작을 의미하는 M3 마치 요소(March Element)의 경우, 입력되는 코드는 '0011'이다. 가장 먼저 유휴 상태(Idle, [000])에서 코드 '0011'이 입력되면 신호 생성기(70)는 제 1 상태[100]로 전환된다. 여기서, 제 1 상태[100]는 읽어온 '1'값을 비교(r1)하는 과정을 수행하는 상태이다. 동작이 완료된 이후, 신호 생성기(70) 는 제 2 상태[001]로 이동하게 된다. 제 2 상태[001]는 메모리에 ‘0’값을 쓰는(w0) 과정을 수행하는 상태를 의미한다. 완료되면, 신호 생성기(70)는 다시 유휴 상태[000]로 돌아오게 되고 주소 생성기(80)에 동작 종료 신호(End_OP)를 보내 주소를 증가 또는 감소시키게 된다.The signal generator 70 has the remainder (MM_code [3: 0]) of the code (MM_code) except for the most significant bits (Adr_direc, MM_code [4]) and performs the read / write operation of the corresponding March element. Raise accordingly. For example, referring to FIG. 4, in the case of an M3 March Element meaning an operation of (r1, w0), an input code is '0011'. First, when the code '0011' is input in the idle state (Idle, [000]), the signal generator 70 is switched to the first state [100]. Here, the first state [100] is a state of performing a process of comparing the read '1' value (r1). After the operation is completed, the signal generator 70 moves to the second state [001]. The second state [001] refers to a state in which a process of writing a value '0' into the memory (w0) is performed. Upon completion, the signal generator 70 returns to the idle state [000] again and sends an operation end signal End_OP to the address generator 80 to increase or decrease the address.

신호 생성기(70)은 마치 요소에 정의된 각각의 동작 상태(예를 들어, r0/r1/w0/w1)에서는 내장 메모리(20)를 제어하기 위한 제어 신호(Ctrl)를 발생시킨다. 생성되는 제어 신호(Ctrl)는 로우 어드레스(Row Address) 액세스를 알리기 위한 라스 신호(_RAS), 컬럼 어드레스(Column Address) 액세스를 알리기 위한 카스 신호(_CAS), 내장 메모리(20)에 데이터를 저장하기 위한 쓰기 인에이블 신호(_WE), 및 내장 메모리(20)에서 해당 주소의 데이터를 읽어 오기 위한 출력 인에이블 신호(_OE)가 있다. 아울러, 신호 생성기(70)는 주소 생성기(80)에서 전달받은 로우 및 컬럼 어드레스(Addr)를 전달한다. 그 결과, 쓰기 동작을 테스트하는 경우, 신호 생성기(70)는 내장 메모리(20)에 쓰기 위한 입력 데이터(InData)를 출력한다. 이와 달리, 읽기 동작을 테스트하는 경우에는 내장 메모리(20) 내에서 읽어낸 출력 데이터(OutData)가 테스트 제어부(50)에 포함된 비교기(60)로 출력된다.The signal generator 70 generates a control signal Ctrl for controlling the internal memory 20 in each operation state (for example, r0 / r1 / w0 / w1) defined in the element. The generated control signal Ctrl may include a Lars signal _RAS for informing a row address, a Cass signal _CAS for informing a column address, and storing data in the internal memory 20. A write enable signal _WE and an output enable signal _OE for reading data of a corresponding address from the internal memory 20. In addition, the signal generator 70 transfers the row and column addresses Addr received from the address generator 80. As a result, when testing a write operation, the signal generator 70 outputs input data InData for writing to the internal memory 20. In contrast, in the case of testing a read operation, output data OutData read in the internal memory 20 is output to the comparator 60 included in the test controller 50.

비교기(60)는 내장 메모리(20)에서 출력되는 출력 데이터(OutData)를 선택된 알고리즘에 예상하는 값과 비교하여 상이할 경우 결함이 발생한 경우로 판단하고 결함 난 데이터를 의미하는 결함 데이터(Fault_Data) 및 결함을 감지했다는 결함 감지 신호(Fault_detection)를 내보내게 된다. 그리고, 비교기는(60)는 주소 생성기(80)에 결함 감지 신호(Fault_detection) 신호를 출력하여 주소 생성기(80)가 결 함 난 곳의 결함 주소(Fault_Address)를 외부로 출력할 수 있도록 한다.The comparator 60 compares the output data (OutData) output from the internal memory 20 with a value expected by the selected algorithm, and determines that a fault has occurred when it is different, and indicates fault data (Fault_Data), which means defective data, and It will send a fault detection signal (Fault_detection) indicating that it has detected a fault. In addition, the comparator 60 outputs a fault detection signal (Fault_detection) signal to the address generator 80 so that the address generator 80 can output a fault address (Fault_Address) to the outside.

생산 수율을 높이기 위해 내장 메모리에 결함이 발견되면 결함 부분을 여분 메모리로 재배치하여 외부에서 결함과 상관없이 정상적으로 작동하는 것처럼 보이게 하는 복구 동작이 필요하다. 이때, 내장 메모리의 결함 부분 모두를 대체하기 위한 재배치 처리 공간이 작으면, 결함 위치에 대한 재배치를 통해 복구할 수 있다 하더라도 결함 있는 곳의 정보를 담을 수 없기 때문에 결과적으로 내장 메모리의 동작 전체에 오류가 발생한다. 그렇다고 저장 공간을 확대하여 크기가 커지게 되면 SOC 내 오버헤드로 인한 여러 문제(집적도 저하, 전력 소모 등)가 생기게 되어 여분 메모리의 크기를 늘리는 데 한계가 있다.If defects are found in the internal memory to increase production yields, a recovery action is needed to relocate the defects to redundant memory so that they appear to work normally regardless of the defects from the outside. At this time, if the relocation processing space for replacing all the defective parts of the internal memory is small, even if it is possible to recover through the relocation to the defective location, the information of the defective location cannot be contained, and as a result, the entire operation of the internal memory is error. Occurs. However, if the storage space is enlarged to increase in size, there are limitations in increasing the amount of redundant memory due to various problems caused by overhead in the SOC (degradation, power consumption, etc.).

도 9는 본 발명의 일 실시예에 따른 메모리 장치의 복구 방법을 설명하기 위한 의사 코드이다.FIG. 9 is a pseudo code for describing a method of recovering a memory device, according to an exemplary embodiment. Referring to FIG.

본 발명의 일 실시예에 따른 메모리 장치에서는 결함 있는 위치와 주소의 정보를 저장하기 위한 공간은 스페어 행 메모리 개수와 스페어 열 메모리의 개수의 합으로 한다. 만약 내장 메모리의 결함이 스페어 행 메모리 개수와 스페어 열 메모리 개수의 합 이상이 되면 재배치 공간이 충분치 않아 재배치 실패가 된다. In the memory device according to an embodiment of the present invention, the space for storing the defective location and the address information is the sum of the number of spare row memories and the number of spare column memories. If the defect of the internal memory exceeds the sum of the spare row memory count and the spare column memory count, the relocation space is insufficient and the relocation fails.

이를 보완하기 위해, 내장 메모리의 결함 있는 위치와 결함 있는 주소를 저장하고 있는 위치에서 행을 기준으로 가장 결함이 많은 하나의 행을 선택한다. 열을 기준으로 해도 알고리즘의 결과는 같게 나온다. 본 발명에서는 가장 결함이 많은 행은 스페어 행 메모리로 재배치한다. 만약 결함 있는 셀의 개수가 가장 많은 행이 두 개 이상 나오면, 처음 발생한 행을 스페어 행 메모리로 선정한다. 다음 결 함이 있는 주소의 첫 번째 결함 셀에서 그 주소의 행에 결함 있는 셀 개수와 열에 결함 있는 셀 개수를 비교한다. 결함의 개수가 행에 많다면 내장 메모리의 해당 행을 스페어 행 메모리로 재배치하고 결함의 개수가 열에 많다면 내장 메모리의 해당 열을 스페어 열 메모리로 재배치한다.To compensate for this, select the one with the most defective rows based on the defective locations in the internal memory and the locations where the defective addresses are stored. The result of the algorithm is the same even on a column basis. In the present invention, the most defective row is rearranged into a spare row memory. If two or more rows with the highest number of defective cells appear, the first row is selected as a spare row memory. Next, in the first defective cell of the defective address, compare the number of defective cells in the row of that address with the number of defective cells in the column. If the number of defects is in a row, the corresponding row of the internal memory is relocated to the spare row memory. If the number of defects is a large number, the corresponding column of the internal memory is relocated to the spare column memory.

행에 결함 있는 셀의 개수와 열에 결함 있는 결함 있는 결함 개수를 비교하기 전에 크게 두 가지를 먼저 계산한다. 첫 번째로, 가장 결함이 많은 행의 고장 셀이 가장 결함이 많은 열에 위치하고 있는지를 확인하여야 한다. 가장 결함이 많은 행은 무조건 스페어 행 메모리로 재배치하기 때문에, 스페어 행 메모리로 재배치된 행과 가장 결함이 많은 열 모두의 위치에 있는 결함(즉, 겹치는 곳의 결함)을 스페어 열 메모리로 재배치할 경우 그 결함은 스페어 행 메모리와 스페어 열 메모리 두 곳으로 재배치 되게 된다. 이렇게 되면 스페어 행 메모리나 스페어 열 메모리 두 곳 중 한곳에서 데이터가 업데이트 되었을 때 나머지 곳도 같이 업데이트를 해주어야 오류를 막을 수 있기 때문에 동작이 훨씬 복잡해 진다. 따라서, 가장 결함이 많은 행의 결함 위치와 결함 있는 셀이 겹치게 되면 정보는 무조건 스페어 행 메모리로 재배치한다.Before comparing the number of defective cells in a row and the number of defective defects in a column, two things are largely calculated first. First, make sure that the faulty cell of the most defective row is located in the most defective column. Because the most defective rows are unconditionally relocated to spare row memory, if you relocate defects at both the rows relocated to spare row memory and the location of the most defective columns (that is, the defects at the overlapping locations) to spare column memory. The defect will be relocated to two parts: spare row memory and spare column memory. This makes the operation much more complicated when data is updated in either the spare row memory or the spare column memory, so that the rest must be updated as well to prevent errors. Therefore, when the defective position of the most defective row and the defective cell overlap, the information is unconditionally relocated to the spare row memory.

두 번째는 같은 주소에 결함 있는 셀이 2개 이상일 경우 하나의 셀 결함이 스페어 열 메모리로 재배치되었다면 결함 있는 셀의 공유를 막기 위해 같은 주소의 모든 셀들은 스페어 열 메모리로 재배치되어야 한다. 또한 결함 있는 셀의 열 위치가 다른 주소에 의해 스페어 열 메모리로 재배치되었다면 역시 결함의 공유를 막기 위해 스페어 열 메모리로 재배치되어야 한다.Second, if there are more than one defective cell at the same address, if one cell defect is relocated to spare column memory, all cells at the same address must be relocated to spare column memory to prevent sharing of the defective cell. Also, if the column location of a defective cell is relocated to spare column memory by another address, it must also be relocated to spare column memory to prevent sharing of the defect.

도 9를 참조하면, 전술한 내용의 재배치 알고리즘을 설명하고 있다. 내장 자체 테스트(BIST)를 통해 내장 메모리의 결함 있는 위치와 결함 있는 위치를 저장한 후에는 결함 있는 위치에 정보를 스페어 행과 열 메모리로 재배치하기 위한 알고리즘이 시작된다. 먼저, 재배치 알고리즘에 따라 결함 있는 정보들을 통해 가장 결함이 많은 셀을 가지고 있는 셀의 개수의 행을 선정된다(Search_TheMostFaultyRowCell()). 이후, 결함이 가장 많은 셀을 포함하고 있는 주소(행)에 포함된 셀들은 스페어 행 메모리로 재배치(Reallocation_RowSpareMemory())된다. 만약, 결함 있는 정보를 발견한 후 그곳이 가장 결함이 많은 셀을 포함하는 주소가 아니면 가장 결함 있는 셀의 개수가 많은 행과 열의 셀 결함 위치가 겹치(TheMostFaultyRowCell_Overlap)는지 판단하여 겹치는 경우 결함 있는 셀을 스페어 행 메모리에 재배치(Reallocation_RowSpareMemory())한다.Referring to Fig. 9, the relocation algorithm of the above description is explained. After the built-in self test (BIST) stores the defective and defective locations in the internal memory, an algorithm is started to relocate the information to the spare row and column memory at the defective location. First, a row of the number of cells having the most defective cell is selected through defective information according to a relocation algorithm (Search_TheMostFaultyRowCell ()). Thereafter, the cells included in the address (row) containing the most defective cell are rearranged (Reallocation_RowSpareMemory ()) to the spare row memory. If it finds defective information and it is not the address containing the most defective cell, it is determined whether the cell defect location of the row and column with the highest number of defective cells overlaps (TheMostFaultyRowCell_Overlap). Relocate to spare row memory (Reallocation_RowSpareMemory ()).

만약 결함 있는 정보를 발견한 후 가장 결함이 많은 행과 겹치지 않고, 같은 주소에 있는 다른 결함 셀이 스페어 열 메모리로 이미 재배치(Already_ReallocationColumnSpareMemory_atLocation) 되었거나 결함 위치가 다른 주소에 의해 스페어 열 메모리로 이미 재배치(Already_ReallocationColumnSpareMemory_atFaultyAddress) 되었다면 결함 있는 셀을 스페어 열 메모리로 재배치한다. If after finding faulty information, it does not overlap the most defective row, and another defective cell at the same address has already been relocated to spare column memory (Already_ReallocationColumnSpareMemory_atLocation) or has already been relocated to spare column memory by a different address (Already_ReallocationColumnSpareMemory_atFaultyAddress). If so, relocate the defective cell to spare row memory.

결함 있는 셀의 위치가 위의 세 가지 경우가 아니고 결함 있는 셀의 행의 개수(TheNumberOfRowFaultyCell)와 열의 개수(TheNumberOfColumnFaultyCell)의 개수 를 비교해 열의 결함 있는 셀 개수가 크면 셀의 위치를 스페어 열 메모리에 재배치하고, 그렇지 않으면 스페어 행 메모리에 재배치한다. If the location of the defective cell is not the above three cases, and the number of defective cells in the row (TheNumberOfRowFaultyCell) and the number of columns (TheNumberOfColumnFaultyCell) are compared and the number of defective cells in the column is large, the location of the cells is relocated to spare column memory. Otherwise, it is relocated to spare row memory.

도 10은 도 9에서 설명하고 있는 재배치 알고리즘에 따라 결함 있는 셀이 스페어 행 메모리와 스페어 열 메모리로 재배치되는 것을 설명하기 위한 개념도이다. 구체적으로, 이 예는 5 비트 주소와 행 스페어 메모리 및 열 스페어 메모리가 각각 4개씩 존재하는 경우 재배치되는 과정을 설명하고 있다.FIG. 10 is a conceptual diagram illustrating that a defective cell is rearranged into a spare row memory and a spare column memory according to the relocation algorithm described in FIG. 9. Specifically, this example illustrates the relocation process when there are four 5-bit addresses, four row spare memories, and four column spare memories.

먼저, 내장 메모리에 대한 내장 자가 테스트를 통해 결함을 확인하는 즉시 재배치 알고리즘 회로 내의 저장 회로(210)에 내장 메모리의 결함 있는 주소와 결함 있는 위치 정보가 저장된 후, 결함 있는 위치를 스페어 열 메모리(440) 및 스페어 행 메모리(460)에 재배치된다.First, as soon as a defect is confirmed through an internal self-test on the internal memory, the defective address and the defective location information of the internal memory are stored in the storage circuit 210 in the relocation algorithm circuit, and then the defective location is stored in the spare column memory 440. ) And spare row memory 460.

도시된 바와 같이, 결함 있는 정보 중에 가장 결함이 많은 셀을 포함하고 있는 행의 주소(결함 있는 주소)를 찾아 행 스페어 메모리(460)에 해당 주소의 모든 정보를 재배치한다. 도 10에서는 먼저 결함 있는 주소 '10100'을 스페어 행 메모리(460) 내의 주소'1000'에 재배치한다. 저장 회로(210) 안에서 다음 결함 있는 정보가 있는 주소'11101'에서 첫 번째 결함 셀의 열(02)의 결함 있는 셀 개수와 행의 결함 개수를 비교한다. 하지만, 주소'11101' 열의 셀 위치 05와 06, 07, 21번 위치에 결함이 있다. 이 위치는 가장 결함이 많은 주소'10100'의 열 위치와 겹치는 결함의 위치이다. 따라서 주소'11101'는 스페어 행 메모리(460) 내의 주소'0100'에 재배치한다.As shown, the address (defective address) of the row containing the most defective cell among the defective information is found and all information of the corresponding address is rearranged in the row spare memory 460. In FIG. 10, the defective address '10100' is first relocated to the address '1000' in the spare row memory 460. In the storage circuit 210, at the address '11101' with the next defective information, the number of defective cells in the column 02 of the first defective cell is compared with the number of defects in the row. However, cell positions 05, 06, 07 and 21 in the address '11101' are defective. This position is the position of the defect that overlaps with the column position of the most defective address '10100'. Thus, the address '11101' is relocated to the address '0100' in the spare row memory 460.

다음 저장 회로(210)의 행 주소'00010'의 열 위치'09'에서는 가장 결함이 많 은 행의 열 결함 있는 셀의 위치와 겹치는 부분이 없고, 같은 주소에서 이전에 스페어 열 메모리로 재배치한 적이 없어 열 위치의 결함 있는 셀 개수 3개와 행의 결함 있는 셀 개수 2개를 비교한다. 열의 결함 있는 셀 개수가 많음으로 저장 회로(210) 열의 '09'은 스페어 열 메모리(440) 내의 주소'1000' 부분으로 재배치한다. 같은 행 주소'00010'의 다음 결함 있는 셀의 열 위치 '25'은 이전 열 위치 '09'에서 열 스페어 메모리(440)로 재배치되었기 때문에 열의 위치 '25'도 열 스페어 메모리(440) 내 주소'0100'로 재배치된다.In the column position '09' of the row address '00010' of the next storage circuit 210, there is no overlapping with the position of the column defective cell of the most defective row, and it has been previously relocated to the spare column memory at the same address. None compare three defective cells in a column position with two defective cells in a row. Due to the large number of defective cells in the column, the '09' in the storage circuit 210 column is relocated to the '1000' portion of the spare column memory 440. Column position '25' of the next defective cell of the same row address' 00010 'has been relocated to column spare memory 440 from the previous column position' 09 ', so column position' 25 'is also an address within column spare memory 440' Relocated to 0100 '.

다음 주소 결함 위치 행 주소'00011'과 '01101'의 결함 있는 셀 위치는 열의 '09'이다. 열 '09'은 이전 행 주소'00010'에서 스페어 열 메모리로 전부 재배치 되었기 때문에 행 주소 '00011'과 '01101'의 열 '09'도 스페어 열 메모리(440) 내 주소'1000'로 재배치되었다. 결함 있는 행 주소 '00011'의 결함 있는 셀 위치 열 '25' 역시 스페어 열 메모리(440) 내 주소'0100'로 재배치된다.Next defective location The defective cell location at row addresses '00011' and '01101' is '09' in the column. Since column '09' has been completely relocated to the spare column memory from the previous row address '00010', column '09' of the row addresses '00011' and '01101' has also been relocated to the address '1000' in the spare column memory 440. The defective cell location column '25' of the defective row address '00011' is also relocated to the address '0100' in the spare column memory 440.

저장 회로(210) 내 결함 있는 행 주소 '00100'과 '00101'도 행 주소 '00010'에서 열 결함 있는 셀 위치 '25'이 스페어 열 메모리 내 주소'0100'로 재배치되어 행 주소 '00100'과 '00101'의 결함 있는 셀 위치 열 '25'이 스페어 열 메모리(460) 내 주소'0100'로 재배치된다. 다음 행 주소 '01010'의 결함 있는 셀 위치 열'11'~'14'은 행과 열의 주소 측면에서 볼 때 결함 있는 셀 개수가 각각 4개와 1개이므로 스페어 행 메모리(460) 내 주소'0010'로 재배치한다.The defective row addresses '00100' and '00101' in the storage circuit 210 are also rearranged at the row address '00010' with the column defective cell position '25' to the address '0100' in the spare column memory and the row address '00100'. The defective cell location column '25' of '00101' is relocated to the address '0100' in the spare column memory 460. The defective cell location columns '11' through '14' of the next row address '01010' have four and one defective cells, respectively, in terms of the row and column address, so the address '0010' in the spare row memory 460 Relocate to

도 11은 도 10에서 설명한 재배치 알고리즘을 통해 출력되는 결과를 설명하기 위한 개념도이다.FIG. 11 is a conceptual diagram illustrating a result output through the relocation algorithm described with reference to FIG. 10.

도시된 바와 같이, 재배치 알고리즘을 통해 출력되는 최종 정보는 내장 메모리에 결함 있는 위치의 결함 데이터(Faulty Data), 내장 메모리에 결함 있는 결함 주소(Faulty Address), 스페어 행과 열 메모리(460, 440)로 재배치될 스페어 메모리 주소(Spare Memory Address), 및 스페어 행 메모리(460)와 스페어 열 메모리(440)중 어디로 재배치될지에 대한 행/열 플래그(Row/Column Flag)의 총 4개로 구성되어 있다.As shown, the final information output through the relocation algorithm is faulty data at faulty locations in the internal memory, faulty fault addresses in the internal memory, spare row and column memories 460 and 440. A total of four spare memory addresses, a row memory address and a row / column flag for relocation to the spare row memory 460 and the spare column memory 440.

행/열 플래그 정보는 '0'이면 스페어 행 메모리(460)로 재배치되고, '1'이면 스페어 열 메모리(440)로 결함 데이터들이 재배치됨을 의미한다. 스페어 메모리 주소(Spare Memory Address)는 스페어 행과 열 메모리(460, 440)로 재배치될 수 있는 개수만큼의 비트 수를 갖는다. 스페어 행 메모리(460)로 재배치되는 경우는 스페어 행 메모리 전체를 재배치하기 때문에 결함 있는 위치를 확인할 필요가 없어 ‘.’로 표시하며, 스페어 열 메모리(440)로 의 경우는 결함 있는 위치의 셀을 재배치하기 때문에 결함 있는 내장 메모리의 위치를 파악해야 한다. 따라서 결함 있는 셀의 위치는 ‘1’로 결함이 없는 셀의 위치는 ‘0’로 나타낸다. 마지막으로 내장 메모리의 결함 있는 주소의 위치는 결함 있는 주소에 표현한다.If the row / column flag information is '0', the row / column flag information is rearranged to the spare row memory 460, and if '1', the row / column flag information is rearranged to the spare column memory 440. The spare memory address has a number of bits that can be rearranged into the spare row and column memories 460 and 440. When the spare row memory 460 is relocated, the entire spare row memory is relocated, so it is not necessary to check the defective location and is represented by '.'. Because of the relocation, you need to locate the faulty internal memory. Thus, the location of a defective cell is represented by a '1' and the location of a defective cell is represented by a '0'. Finally, the location of the defective address in the internal memory is represented by the defective address.

스페어 행과 열 메모리(460, 440)의 주소 표현은 이진 주소(binary code)로 나타내지 않고, 스페어 행과 열 메모리(460, 440)의 행/열 개수만큼 비트 수를 가진 주소로 나타낸다. 예를 들어, 스페어 열 메모리(460)의 행 개수가 4개라면 일반적으로는 4개의 이진 주소(00, 01, 10, 11)로 나타내지만, 본 발명에서는 4개의 주소를 '1000', '0100', '0010', '0001'로 나타낸다. 즉, 일반적인 방식으로는 2 비 트의 주소로 나타낼 수 있지만, 본 발명의 구조에서는 4 비트의 주소가 필요하다. 이렇게 표현한 이유는 동시에 결함 있는 위치가 두 곳(00, 01)일 경우 일반적인 방식으로는 2비트씩 2번 전송이 필요했지만, 본 발명의 방식은 주소를 논리합(OR) 연산 후 4비트(1100)를 1번만 전송하면 되기 때문이다. 또한, 스페어 행과 열 메모리(460, 440)의 주소에 일반적인 방식처럼 8비트의 주소를 소비하면 스페어 행과 열 메모리에 접근하기 위한 중복된 데이터 값들이 저장될 수 있지만, 본 발명의 일 실시예에 따른 주소 체계인 4비트 주소와 같이 정한다면 데이터들의 중복 저장을 피할 수 있다.The address representation of the spare row and column memories 460 and 440 is not represented as a binary code, but as an address having the number of bits as many as the number of rows and columns of the spare row and column memories 460 and 440. For example, if the number of rows of the spare column memory 460 is four, it is generally represented by four binary addresses (00, 01, 10, 11). However, in the present invention, four addresses are designated as '1000', '0100'. ',' 0010 'and' 0001 '. That is, although it can be represented by 2 bits of address in a general manner, the structure of the present invention requires 4 bits of address. The reason for this expression is that if two defective locations are located at the same time (00, 01), the general method requires two transmissions of two bits each, but the method of the present invention uses four bits (1100) after an OR operation. This is because you only need to send it once. In addition, if the 8-bit address is consumed in the addresses of the spare row and column memories 460 and 440 as in a general manner, duplicate data values for accessing the spare row and column memories may be stored. If you set the address as a 4-bit address, you can avoid the redundant storage of data.

이러한 재배치 알고리즘을 통해 결함 있는 메모리의 셀 위치와 주소는 스페어 행과 열 메모리로 재배치될 수 있는 정보로 가공한다. 즉, 가공된 최종 정보는 내장 메모리에 결함 있는 위치와 내장 메모리에 결함 있는 주소, 스페어 행과 열 메모리로 재배치될 주소, 스페어 행 메모리 또는 스페어 열 메모리로 재배치될지에 대한 플래그 총 4개의 정보를 포함하며 이러한 정보들은 재배치 알고리즘을 담고 있는 제어 회로로부터 출력된다. 출력된 재배치 정보를 이용해 사용자가 결함 있는 주소로 데이터를 내장 메모리에 입력 혹은 출력했을 때 결함이 없는 것처럼 사용할 수 있게 데이터를 내장 메모리에 결함 위치로 입력 혹은 출력시키지 않고, 스페어 행과 열 메모리를 이용해 결함이 없는 내장 메모리처럼 사용할 수 있게 한다.This relocation algorithm processes the cell location and address of the defective memory into information that can be relocated into spare row and column memory. That is, the final processed information includes four pieces of information: a defective location in internal memory, a defective address in internal memory, an address to be relocated to spare row and column memory, and a flag to be relocated to spare row memory or spare column memory. This information is output from the control circuit containing the relocation algorithm. With the output relocation information, you can use spare row and column memory without inputting or outputting data to or from the defective location in the internal memory so that the user can use it as if the data were entered or output to the internal memory at the defective address. It can be used like a faultless internal memory.

도 12는 본 발명의 일실시예에 따른 내장 자가 복구가 가능한 메모리 장치를 설명하기 위한 블록도이다.12 is a block diagram illustrating a built-in self-recoverable memory device according to an embodiment of the present invention.

도시된 바와 같이, 메모리 장치는 테스트 알고리즘을 상황에 따라 변경할 수 있는 프로그램 가능한 메모리 자체 테스트 회로(100), 재배치 알고리즘 회로(200), 데이터 입/출력 재배치 회로(300), 및 내장 메모리 회로(400)를 포함한다. 프로그램 가능한 메모리 자체 테스트 회로(100)는 도 5에서 설명하고 있는 내장 테스트 회로(100)에 포함된 알고리즘 생성부(10)와 테스트 제어부(50)를 적용하여 구현이 가능하며, 재배치 알고리즘 회로(200) 및 데이터 입/출력 재배치 회로(300)는 도 9~11에서 설명하고 있는 재배치 알고리즘을 채택할 수 있다. 또한, 내장 메모리 회로(400)는 데이터를 저장하기 위한 내장 메모리(420)와 내장 메모리 내 검출된 결함 셀들을 대체하기 위한 여분의 메모리(즉, 스페어 행 메모리(460)와 스페어 열 메모리(440))를 포함하고 있다.As shown, the memory device includes a programmable memory self-test circuit 100, a relocation algorithm circuit 200, a data input / output relocation circuit 300, and an internal memory circuit 400 that can change the test algorithm according to circumstances. ). The programmable memory self test circuit 100 may be implemented by applying the algorithm generator 10 and the test controller 50 included in the built-in test circuit 100 described with reference to FIG. 5, and the reposition algorithm 200 ) And the data input / output relocation circuit 300 may employ the relocation algorithm described in FIGS. 9-11. In addition, the internal memory circuit 400 may include an internal memory 420 for storing data and an extra memory for replacing defective cells detected in the internal memory (that is, the spare row memory 460 and the spare column memory 440). ) Is included.

도 12에서 나타내는 제어 신호 및 데이터들의 비트 수들은 내장 메모리의 주소가 5비트이고, 스페어 행 메모리(460)와 스페어 열 메모리(440)를 각각 4개의 행/열을 가지며, 데이터가 32비트로 이루어진 경우를 들어 도시되어 있다. 하지만, 이 것들은 SOC 혹은 시스템에서 필요로 하는 메모리 장치의 크기에 따라 얼마든지 변경이 가능하다. 내장 자가 복구가 가능한 메모리 장치의 동작을 살펴보면 다음과 같다.The number of bits of the control signal and data shown in FIG. 12 has 5 bits of the address of the internal memory, 4 rows / columns of the spare row memory 460 and the spare column memory 440, and data has 32 bits. For example is shown. However, these can be changed as many as the size of the memory device required by the SOC or system. The operation of the internal self-healing memory device is as follows.

프로그램 가능한 메모리 자체 테스트 회로(100)를 통해 내장 메모리의 결함 있는 위치의 주소(Faulty Address)와 결함 있는 데이터(Faulty Data)를 결함 검출 신호(Fault Detection)와 함께 재배치 알고리즘 회로(200)에 보내지게 된다. 재배치 알고리즘 회로(200)는 상기 정보를 이용하여 결함 셀을 재배치하기 위한 도 11에 도시된 최종 정보를 데이터 입/출력 재배치 회로(300)로 보낸다. 재배치 알고리 즘 회로(200)를 통해 재배치 정보를 받은 데이터 입/출력 재배치 회로(300)는 내장 메모리의 결함 있는 위치에 접근하는 데이터를 정상적인 데이터로 교체 해주는 일을 수행한다. Programmable memory self-test circuit 100 allows faulty address and faulty data to be sent to relocation algorithm circuit 200 along with fault detection signals in the internal memory. do. The relocation algorithm circuit 200 sends the final information shown in FIG. 11 to the data input / output relocation circuit 300 to relocate the defective cell using the information. The data input / output relocation circuit 300 that receives the relocation information through the relocation algorithm circuit 200 replaces the data accessing the defective location of the internal memory with the normal data.

도 13은 도 12에 도시된 데이터 입/출력 재배치 회로(300)의 구성을 설명하기 위한 블록도이다.FIG. 13 is a block diagram illustrating the configuration of the data input / output relocation circuit 300 shown in FIG. 12.

도시된 바와 같이, 재배치 알고리즘 회로(200)와 내장 메모리 회로(400)에 연결된 데이터 입/출력 재배치 회로(300)는 결함 주소 비교부(320), 스패어 메모리 주소 재배치 회로(340), 및 데이터 재배치 회로(360)를 포함한다. 이하에서는 도 11에서 설명한 재배치 알고리즘을 적용하여 데이터 입/출력 재배치 회로(300)의 동작을 설명한다.As shown, the data input / output relocation circuit 300 connected to the relocation algorithm circuit 200 and the internal memory circuit 400 includes a defect address comparison unit 320, a spare memory address relocation circuit 340, and data. A relocation circuit 360. Hereinafter, the operation of the data input / output relocation circuit 300 will be described by applying the relocation algorithm described with reference to FIG. 11.

재배치 알고리즘 회로(200)는 재배치할 데이터가 스페어 행 메모리(460)와 스페어 열 메모리(440) 중 어디로 재배치되는 지를 구분하기 위해 행/열 플래그(Row/Column Flag)를 출력한다. 결함 있는 데이터가 스페어 행 메모리(460)로 재배치될 경우는 32비트로 구성된 데이터 전체가 스페어 행 메모리(460)로 재배치되기 때문에 데이터 재배치부(360)를 거쳐 스페어 행 메모리(460)로 재배치되거나 스페어 행 메모리(460)로부터 치환되어 출력된다. The relocation algorithm circuit 200 outputs a row / column flag to distinguish between the data to be relocated to the spare row memory 460 and the spare column memory 440. When the defective data is relocated to the spare row memory 460, since the entire 32-bit data is relocated to the spare row memory 460, the defective data is relocated to the spare row memory 460 through the data relocator 360 or the spare row. The memory 460 is replaced and output.

만약, 스페어 열 메모리(440)로 재배치되면 재배치 알고리즘 회로(200)에서 출력된 결함 있는 위치의 정보(Faulty Data, Faulty Address)를 이용해, 입력된 데이터가 내장 메모리(420)의 결함 있는 위치에 접근하는 경우 재배치 알고리즘 회로(200)는 내장 메모리(420)의 결함 있는 위치에 접근하는 데이터를 추출하여 스페 어 메모리 주소 재배치 회로(340)로 보내는 역할을 한다.If the data is relocated to the spare column memory 440, the inputted data approaches a defective location of the internal memory 420 by using faulty data (Faulty Address) output from the relocation algorithm circuit 200. In this case, the relocation algorithm circuit 200 extracts data that approaches a defective location of the internal memory 420 and sends the data to the spare memory address relocation circuit 340.

데이터 입/출력 재배치 회로(300) 내 스페어 메모리 주소 재배치 회로(340)는 스페어 행 메모리(460)나 스페어 열 메모리(440)의 내 주소를 선택하여 데이터 재배치부(360)를 통해 전달되는 재배치할 데이터를 스페어 행 혹은 열 메모리(460, 440)에 재배치하는 역할을 한다.The spare memory address relocation circuit 340 in the data input / output relocation circuit 300 selects an address in the spare row memory 460 or the spare column memory 440 to relocate the data transferred through the data relocation unit 360. Relocate data to spare row or column memories 460 and 440.

쓰기 동작을 예를 들어 설명한다. 내장 메모리(420)에 5비트 주소 ‘11101’을 32비트 데이터 ‘FF000000h’를 쓰려고 하는 경우를 살펴본다. 먼저, 내장 메모리(420)의 주소 ‘11101’가 내부 결함 셀들로 인하여 스페어 행과 열 메모리(460, 440)로 재배치되었는지 결함 주소 비교기(320)에서 비교 확인한다.The write operation will be described with an example. The case in which the 5-bit address '11101' is written in the internal memory 420 to write 32-bit data 'FF000000h' will be described. First, the defect address comparator 320 compares the address '11101' of the internal memory 420 with the spare row and column memories 460 and 440 due to internal defect cells.

재배치된 주소임을 확인하게 되면, 결함 있는 주소 비교기로부터 재배치 알림 신호(Hit)가 활성화되어 데이터 재배치부(360)로 입력된다. 그때, 행/열 플래그 신호가 '0'일 경우 재배치 알고리즘 회로(200)로부터 입력되는 32비트 데이터는 데이터 재배치 회로(200)로 입력되고, 스페어 행 메모리(460)의 주소 '0100'이 스페어 메모리 주소 재배치부(340)로 입력된다. 행/열 플래그 신호가 ‘0’이고 스페어 메모리 주소 재배치부(340)에 입력된 값 ‘0100’에 따라서 스페어 행 메모리(460)의 ‘0100’ 위치에 입력된 32비트 데이터 값 ‘FF000000h’이 저장된다.When it is confirmed that the relocated address, the relocation notification signal Hit is activated from the defective address comparator and input to the data relocating unit 360. At this time, when the row / column flag signal is '0', 32-bit data input from the relocation algorithm circuit 200 is input to the data relocation circuit 200, and the address '0100' of the spare row memory 460 is a spare memory. The address relocator 340 is input. The 32-bit data value 'FF000000h' stored in the '0100' position of the spare row memory 460 is stored according to the value '0100' inputted to the spare memory address relocator 340 when the row / column flag signal is '0'. do.

다음은 읽기 동작을 설명한다. 예를 들어, 내장 메모리(420)에 5비트 주소 ‘11101’에 있는 데이터 값을 읽는 경우를 살펴본다. 먼저 내장 메모리(420)의 주소 ‘11101’은 스페어 행과 열 메모리(460, 440)로 재배치되었는지 결함 주소 비교기(320)에서 비교확인한다. 재배치된 주소임을 확인하게 되면, 결함 주소 비교 기(320)로부터 재배치 알림 신호(Hit)가 활성화되어 재배치 알고리즘 회로(200)로부터 행/열 플래그 신호가 ‘0’으로 출력되면 내장 메모리(420)에 저장된 값이 데이터 재배치부(360)로 입력된다. 또한, 스페어 행 메모리(460)의 주소 '0100'가 스페어 메모리 주소 재배치부(340)로 입력된다. 행/열 플래그 신호 ‘0’과 스페어 메모리 주소 재배치부(340)에 입력된 값 ‘0100’에 따라 스페어 행 메모리(460)의 ‘0100’ 위치에 저장된 데이터 값 ‘FF000000h’이 출력되게 된다.The following describes the read operation. For example, a case in which the data value at the 5-bit address '11101' is read in the internal memory 420 will be described. First, the address '11101' of the internal memory 420 is compared and checked by the defective address comparator 320 to be rearranged to the spare row and column memories 460 and 440. When it is confirmed that the address is relocated, the relocation notification signal Hit is activated from the defective address comparator 320 and the row / column flag signal is output as '0' from the relocation algorithm circuit 200 to the internal memory 420. The stored value is input to the data relocator 360. In addition, the address '0100' of the spare row memory 460 is input to the spare memory address relocator 340. The data value 'FF000000h' stored at the position '0100' of the spare row memory 460 is output according to the row / column flag signal '0' and the value '0100' input to the spare memory address relocator 340.

또 다른 경우를 살펴보자. 내장 메모리(420)의 5비트 주소 '00011'에 32비트 데이터 ‘FF407000h’를 쓰려고 한다. 이 경우도 마찬가지로, 내장 메모리의 주소 ‘00011’은 스페어 행과 열 메모리(460, 440)로 재배치되었는지 결함 주소 비교기(320)에서 비교 확인한다.Let's look at another case. The 32-bit data 'FF407000h' is written to the 5-bit address '00011' of the internal memory 420. Similarly, in this case, the address '00011' of the internal memory is compared and confirmed by the defective address comparator 320 to be relocated to the spare row and column memories 460 and 440.

재배치된 주소임을 확인하게 되면 결함 주소 비교기(320)로부터 재배치 알림 신호(Hit)가 활성화되어 데이터 재배치부(360)로 입력된다. 그때, 재배치 알고리즘 회로(200)로부터 행/열 플래그 신호 ‘1’과 결함 있는 데이터가 데이터 재배치부(360)로 입력되고, 스페어 메모리의 주소 값 '1100'이 스페어 메모리 주소 재배치 부(340)로 입력된다. 행/열 플래그 신호 ‘1’이면, '1100'은 스페어 열 메모리(440)의 주소를 말하는 것으로 결함 셀은 스페어 열 메모리(440)로 재배치되어진 것으로 판단할 수 있다.When it is confirmed that the relocated address, the relocation notification signal Hit is activated from the defective address comparator 320 and input to the data relocator 360. At that time, the row / column flag signal '1' and defective data are input from the relocation algorithm circuit 200 to the data relocation unit 360, and the address value '1100' of the spare memory is transferred to the spare memory address relocation unit 340. Is entered. If the row / column flag signal '1', '1100' refers to the address of the spare column memory 440, and it may be determined that the defective cell has been relocated to the spare column memory 440.

재배치 알고리즘 회로(200)로부터 데이터 재배치부(360)에 입력된 결함 데이터(Faulty Data:00000000010000000000000001000000)값을 토대로 결함 있는 셀 위치의 값을 스페어 메모리 주소 재배치 회로(340)에 입력 값으로 전달한다. 즉, 결함 있는 셀의 위치는 7, 23번에 해당하는 데이터 입력 값 중 7, 23번째에 해당하는 ‘0’과 ‘1’이 스페어 메모리 주소 재배치 회로(340)에 입력 값으로 전달된다. 재배치 알고리즘 회로(200)에서 입력받은 스페어 열 메모리의 주소 ‘1100’을 ‘1000’과 ‘0100’으로 나누고, 스페어 열 메모리(440)의 주소 ‘1000’에 데이터 재배치부(360)에서 입력받은 데이터 중 23번째에 해당하는 ‘1’과 주소 ‘0100’에는 7번째에 해당하는 ‘0’을 쓴다.The defective cell location value is transmitted to the spare memory address relocation circuit 340 as an input value based on the faulty data value (Faulty Data: 00000000010000000000000001000000) input from the relocation algorithm circuit 200 to the data relocation unit 360. That is, in the position of the defective cell, '0' and '1' corresponding to the seventh and twenty-third of the data input values corresponding to the seventh and twenty-thirds are transferred to the spare memory address relocation circuit 340 as an input value. The address '1100' of the spare column memory received from the relocation algorithm circuit 200 is divided into '1000' and '0100', and the data received from the data relocator 360 at the address '1000' of the spare column memory 440. The '1' corresponding to the 23rd and the '0' corresponding to the 7th are written in the address '0100'.

결함 있는 위치에 있는 셀을 포함한 입력 받은 32비트 데이터는 내장 메모리에 ‘00011’ 주소에 정상적인 쓰기 동작을 수행한다. 결함 있는 셀의 위치 값은 스페어 열 메모리(440)로 재배치되어 있어 내장 메모리(420)에 쓰기를 해도 아무 상관이 없게 된다.The 32-bit data received, including the cell in the defective location, performs a normal write operation to the '00011' address in the internal memory. The position value of the defective cell is rearranged to the spare column memory 440, so it is irrelevant to write to the internal memory 420.

또 다른 경우, 내장 메모리(420)에 5비트 주소 ‘00011’에 데이터를 읽을 때를 예를 들어 설명한다. 먼저, 내장 메모리(420)의 주소 ‘00011’은 스페어 행과 열 메모리(460, 440)로 재배치되었는지 결함 주소 비교기(320)에서 비교 확인한다.In another case, an example of reading data from the 5-bit address '00011' into the internal memory 420 will be described. First, the address '00011' of the internal memory 420 is compared with the defective row comparator 320 to determine whether it is relocated to the spare row and column memories 460 and 440.

재배치된 주소임을 확인하게 되면, 결함 주소 비교기(320)로부터 재배치 알림 신호(Hit)가 활성화되어 데이터 재배치부(360)로 입력된다. 그때, 재배치 알고리즘 회로(200)로부터 행/열 플래그 신호 ‘1’과 결함 있는 데이터가 데이터 재배치부(360)로 입력되고, 스페어 메모리의 주소 '1100'이 스페어 메모리 주소 재배치 부(3400로 입력된다. 행/열 플래그 신호 ‘1’이면, 결함 셀이 스페어 열 메모리(440)로 재배치되어진 것을 알 수 있다.When it is confirmed that the relocated address, the relocation notification signal Hit is activated from the defective address comparator 320 and input to the data relocating unit 360. At that time, the row / column flag signal '1' and defective data are input from the relocation algorithm circuit 200 to the data relocation unit 360, and the address '1100' of the spare memory is input to the spare memory address relocation unit 3400. If the row / column flag signal is '1', it can be seen that the defective cell has been rearranged to the spare column memory 440.

재배치 알고리즘 회로(200)에서 입력받은 스페어 열 메모리(440)의 주소 ‘1100’을 ‘1000’과 ‘0100’으로 나눈다. 스페어 열 메모리(440)의 주소 ‘1000’과 ‘0100’의 값 ‘1’과 ‘0’을 스페어 메모리 주소 재배치부(340)에 입력한다. 그때에 내장 메모리(420)의 주소 ‘00011’에 해당하는 데이터 값을 데이터 재배치부(360)에 입력한다. 데이터 재배치부(360)에서는 입력된 결함 있는 셀의 위치의 결함 데이터(Faulty Data:00000000010000000000000001000000)값을 토대로 결함 있는 셀 위치 7번과 23번에 데이터 값을 ‘0’과 ‘1’로 치환하여 최종 데이터 출력으로 내보낸다.The address '1100' of the spare column memory 440 received from the relocation algorithm circuit 200 is divided into '1000' and '0100'. The values '1' and '0' of the addresses '1000' and '0100' of the spare row memory 440 are input to the spare memory address relocator 340. At this time, the data value corresponding to the address '00011' of the internal memory 420 is input to the data relocator 360. The data repositioning unit 360 replaces the data values with '0' and '1' at the defective cell positions 7 and 23 based on the faulty data (Faulty Data: 00000000010000000000000001000000) value of the inputted defective cell position. Export to data output.

전술한 바와 같이, 본 발명에 따른 메모리 장치는 자가 테스트 및 자가 복구를 위한 회로들을 포함하고 있으며, 상황에 맞게 알고리즘을 선택할 수 있어 테스트 및 복구의 효율성이 매우 높아진다. 따라서, 메모리 장치의 제조시 수율을 개선하고 테스트 시간을 줄일 수 있다. 또한, SOC 내에 포함되는 메모리 장치 역시 전술한 자가 테스트 및 자가 복구를 위한 회로를 내장시켜 발생할 수 있는 다양한 결함을 복구하는 것이 가능해졌다.As described above, the memory device according to the present invention includes circuits for self-testing and self-healing, and the algorithm can be selected according to the situation, so that the efficiency of the test and recovery becomes very high. Therefore, it is possible to improve the yield and reduce the test time in the manufacture of the memory device. In addition, the memory device included in the SOC has also been able to recover from various defects that may occur by incorporating the above-described self-test and self-healing circuits.

상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다. 또한, 이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.As described above, the method of the present invention may be implemented as a program and stored in a recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.) in a computer-readable form. Since this process can be easily implemented by those skilled in the art will not be described in more detail. In addition, the present invention described above is capable of various substitutions, modifications and changes within the scope without departing from the spirit of the present invention for those skilled in the art to which the present invention pertains to the embodiments and It is not limited by the accompanying drawings.

도 1은 마치 요소들(March Elements)을 기반으로 하는 다양한 테스트 알고리즘을 설명하기 위한 표이다.1 is a table for explaining various test algorithms based on March elements.

도 2는 마치(March) 테스트 기반의 알고리즘마다 가진 결함의 종류들에 대한 결함 검출률을 보여주기 위한 표이다.FIG. 2 is a table showing defect detection rates for types of defects for each test based algorithm.

도 3은 본 발명의 일 실시예에 따른 내장 자가 테스트 회로에 설정되어 있는 알고리즘과 알고리즘을 선택하기 위한 선택 번호를 설명하기 위한 표이다.3 is a table for explaining an algorithm set in an embedded self test circuit according to an embodiment of the present invention and a selection number for selecting an algorithm.

도 4는 도 3에 도시된 알고리즘에 포함된 마치 요소를 가리키는 알고리즘코드를 설명하기 위한 표이다.FIG. 4 is a table for explaining algorithm codes indicating elements as if included in the algorithm shown in FIG.

도 5는 본 발명의 일 실시예에 따른 자체 테스트를 위한 SOC에 내장된 테스트 회로를 설명하기 위한 블록도이다.5 is a block diagram illustrating a test circuit embedded in an SOC for a self test according to an embodiment of the present invention.

도 6은 도 5에 도시된 알고리즘 생성부를 구체적으로 설명하기 위한 블록도이다.FIG. 6 is a block diagram for describing in detail the algorithm generator illustrated in FIG. 5.

도 7은 도 6에 도시된 알고리즘 생성부의 동작을 구성하는 유한상태머신(FSM)을 설명하기 위한 개념도이다.FIG. 7 is a conceptual diagram illustrating a finite state machine (FSM) constituting an operation of the algorithm generator illustrated in FIG. 6.

도 8은 도 5에 도시된 테스트 제어부의 동작을 구성하는 유한상태머신(FSM)을 설명하기 위한 개념도이다.FIG. 8 is a conceptual diagram illustrating a finite state machine (FSM) constituting an operation of the test controller illustrated in FIG. 5.

도 9는 본 발명의 일 실시예에 따른 메모리 장치의 복구 방법을 설명하기 위한 의사 코드이다.FIG. 9 is a pseudo code for describing a method of recovering a memory device, according to an exemplary embodiment. Referring to FIG.

도 10은 도 9에서 설명하고 있는 재배치 알고리즘에 따라 결함 있는 셀이 스 페어 행 메모리와 스페어 열 메모리로 재배치되는 것을 설명하기 위한 개념도이다. FIG. 10 is a conceptual diagram illustrating that a defective cell is rearranged into a spare row memory and a spare column memory according to the relocation algorithm described with reference to FIG. 9.

도 11은 도 10에서 설명한 재배치 알고리즘을 통해 출력되는 결과를 설명하기 위한 개념도이다.FIG. 11 is a conceptual diagram illustrating a result output through the relocation algorithm described with reference to FIG. 10.

도 12는 본 발명의 일실시예에 따른 내장 자가 복구가 가능한 메모리 장치를 설명하기 위한 블록도이다.12 is a block diagram illustrating a built-in self-recoverable memory device according to an embodiment of the present invention.

도 13은 도 12에 도시된 데이터 입/출력 재배치 회로의 구성을 설명하기 위한 블록도이다.FIG. 13 is a block diagram illustrating a configuration of a data input / output relocation circuit shown in FIG. 12.

Claims (20)

데이터를 저장하고 저장된 데이터를 출력하기 위한 데이터 저장부;A data storage unit for storing data and outputting the stored data; 외부에서 입력되는 선택 신호에 대응하여 MATS+, March X, March C-, March B, March U, March LR 및 March SS 알고리즘에 포함된 마치 요소들의 종류를 14가지로 분류하고, 각각 4 비트 코드로 변환하여 알고리즘 중 하나를 선택할 시 4 비트 코드를 출력하는 알고리즘 생성부; 및Corresponding to the selection signal input from the outside, 14 kinds of elements included in the MATS +, March X, March C-, March B, March U, March LR, and March SS algorithms are classified into four bit codes. An algorithm generator for outputting a 4-bit code when selecting one of the algorithms; And 상기 알고리즘 생성부에서 출력된 알고리즘을 이용하여 상기 데이터 저장부를 테스트하여 결함이 있는 영역을 검출해 내는 테스트 제어부를 포함하는 내장 메모리 장치.And a test controller configured to test the data storage unit to detect a defective area by using the algorithm output from the algorithm generator. 제 1항에 있어서,The method of claim 1, 상기 선택 신호는 3비트로 구성되어 있고 상기 MATS+, March X, March C-, March B, March U, March LR 및 March SS 알고리즘들 각각은 서로 다른 마치 요소(March Elements)를 구비하여 상기 데이터 저장부에서 검출할 수 있는 결함 정보가 상이한 것을 특징으로 하는 내장 메모리 장치.The selection signal is composed of 3 bits, and each of the MATS +, March X, March C-, March B, March U, March LR, and March SS algorithms have different March Elements in the data storage unit. An internal memory device, characterized in that detectable defect information is different. 삭제delete 삭제delete 제 2항에 있어서,3. The method of claim 2, 상기 알고리즘 생성부는 유휴 상태, 테스트 가능 상태, 요구 대기 상태, 및 마치 요소 전송 상태의 4가지 동작 모드를 가지는 것을 특징으로 하는 내장 메모리 장치.And the algorithm generator has four operation modes: an idle state, a testable state, a request wait state, and an element transfer state. 제 1항에 있어서,The method of claim 1, 상기 테스트 제어부는The test control unit 상기 알고리즘 생성부에서 입력된 코드 중 최상위 비트를 입력받아 테스트할 상기 데이터 저장부의 주소를 증가 혹은 감소시키기 위한 주소 생성기;An address generator for increasing or decreasing the address of the data storage unit to be tested by receiving the most significant bit of the code input from the algorithm generator; 상기 코드 중 나머지를 입력받아 상기 데이터 저장부의 읽기/쓰기 동작을 테스트하기 위한 제어신호를 생성하기 위한 신호 발생기; 및A signal generator for receiving a remainder of the codes and generating a control signal for testing a read / write operation of the data storage unit; And 상기 데이터 저장부에서 출력된 데이터와 기준 데이터를 비교하여 결함 유무를 판단하기 위한 비교기를 포함하는 내장 메모리 장치.And a comparator for comparing the data output from the data storage with reference data to determine whether there is a defect. 제 6항에 있어서,The method of claim 6, 상기 코드는 총 5비트로 구성되어 있고, 상기 제어신호는 로우 액세스 관련 신호, 컬럼 액세스 관련 신호, 쓰기 동작 관련 신호, 및 읽기 동작 관련 신호를 포함하는 것을 특징으로 하는 내장 메모리 장치.The code has a total of 5 bits, and the control signal includes a row access related signal, a column access related signal, a write operation related signal, and a read operation related signal. 제 6항에 있어서,The method of claim 6, 상기 테스트 제어부는 데이터 저장부의 결함 유무를 알리는 결함 검출 신호, 데이터 저장부 내 결함 있는 곳의 주소를 나타내는 결함 주소 신호, 결함 있는 곳에 저장될 데이터를 가리키는 결함 데이터를 출력하는 것을 특징으로 하는 내장 메모리 장치.The test control unit outputs a defect detection signal indicating whether there is a defect in the data storage unit, a defect address signal indicating an address of a defective place in the data storage unit, and defect data indicating data to be stored in a defective place. . 데이터를 저장하고 저장된 데이터를 출력하기 위한 메모리와 여분의 스페어 메모리를 포함하는 내장 메모리 회로;An internal memory circuit including a memory for storing data and outputting the stored data and an extra spare memory; 외부에서 입력되는 선택 신호에 대응하는 테스트 알고리즘을 실행시켜 상기 내장 메모리 회로 내 메모리의 결함을 검출한 뒤 결함 결과를 통지하는 프로그램 가능한 메모리 자체 테스트 회로; 및A programmable memory self test circuit for executing a test algorithm corresponding to an externally selected selection signal to detect a defect in the memory in the internal memory circuit and to notify a result of the defect; And 상기 결함 결과를 입력받아 Take the defect result 상기 결함 결과를 바탕으로 재배치 알고리즘을 실행하여 내장 메모리에 결함 있는 위치의 결함 데이터, 내장 메모리에 결함 있는 결함 주소, 스페어 행과 열 메모리로 재배치될 스페어 메모리 주소 및 스페어 행 메모리와 스페어 열 메모리 중 어디로 제배치될지에 대한 행/열 플래그를 출력하여, 상기 내장 메모리 내 결함 영역을 재배치할 스페어 행 메모리와 스페어 열 메모리를 포함하는 스페어 메모리를 결정하기 위한 재배치 알고리즘 회로와,Based on the result of the defect, a relocation algorithm is executed to the fault data at the defective location in the internal memory, the defective address in the internal memory, the spare memory address to be relocated to the spare row and column memory, and the spare row memory and the spare column memory. A relocation algorithm circuit for determining a spare memory including a spare row memory and a spare column memory to relocate defective areas in the internal memory by outputting a row / column flag for relocation; 입력된 주소가 상기 스페어 행 및 열 메모리로 재배치된 주소인지를 비교하여 확인하기 위한 결함 주소 비교부와, 상기 내장 메모리의 결합 있는 위치에 대응되는 데이터를 상기 스페어 행 혹은 열 메모리로 재배치하기 위한 데이터 재배치부 및 상기 스페어 행 메모리나 상기 스페어 열 메모리의 내 주소를 선택하여 상기 데이터 재배치부를 통해 전달되는 재배치할 데이터를 상기 스페어 행 혹은 열 메모리에 재배치하기 위한 스페어 메모리 주소 배치부로 구성되어, 상기 재배치 알고리즘 회로의 결정에 따라 데이터를 재배치하고 외부에서 내장 메모리의 결함 영역을 액세스할 경우 재배치된 스페어 메모리를 액세스하도록 하기 위한 데이터 입/출력 재배치 회로를 포함하는 자가 복구 회로를 포함하는 시스템.A defect address comparison unit for comparing and confirming whether an input address is an address relocated to the spare row and column memories, and data for relocating data corresponding to a combined position of the internal memory to the spare row or column memory A relocation algorithm and a spare memory address arranging unit configured to select an address in the spare row memory or the spare column memory and relocate data to be relocated to the spare row or column memory by being transferred through the data relocation unit, wherein the relocation algorithm is configured. And a self-healing circuit comprising data input / output relocation circuitry for relocating the data according to the circuit's decision and for accessing the relocated spare memory when externally accessing a defective area of the internal memory. 제 9항에 있어서,The method of claim 9, 상기 프로그램 가능한 메모리 자체 테스트 회로는The programmable memory self test circuit is 상기 선택 신호에 대응하여 In response to the selection signal MATS+, March X, March C-, March B, March U, March LR 및 March SS 알고리즘에 포함된 마치 요소들의 종류를 14가지로 분류하고, 각각 4 비트 코드로 변환하여, 알고리즘 중 하나를 선택할 시 대응하는 4 비트 코드를 출력하는 알고리즘 생성부; 및14 kinds of elements included in the MATS +, March X, March C-, March B, March U, March LR, and March SS algorithms are converted into four bit codes, respectively, to respond when one of the algorithms is selected. An algorithm generator for outputting a 4-bit code; And 상기 알고리즘 생성부에서 출력된 알고리즘을 이용하여 상기 메모리를 테스트하여 결함이 있는 영역을 검출해 내는 테스트 제어부를 포함하는 시스템.And a test control unit which detects a defective area by testing the memory using an algorithm output from the algorithm generating unit. 제 10항에 있어서,The method of claim 10, 상기 선택 신호는 3비트로 구성되어 있고 상기 MATS+, March X, March C-, March B, March U, March LR 및 March SS 알고리즘들, 각각은 서로 다른 마치 요소(March Elements)를 구비하여 상기 데이터 저장부에서 검출할 수 있는 결함 정보가 상이한 것을 특징으로 하는 시스템.The selection signal is composed of 3 bits and the MATS +, March X, March C-, March B, March U, March LR, and March SS algorithms, each having different March Elements, so that the data storage unit System characterized in that the defect information that can be detected in the different. 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 외부에서 입력된 선택 신호에 대응하여 MATS+, March X, March C-, March B, March U, March LR 및 March SS 알고리즘에 포함된 마치 요소들의 종류를 14가지로 분류하고, 각각 4 비트 코드로 변환하여, 알고리즘 중 하나를 선택할 시 대응하는 4비트 코드를 출력하고,In response to the externally selected selection signal, 14 kinds of elements included in the MATS +, March X, March C-, March B, March U, March LR, and March SS algorithms are classified into four bit codes. When selecting one of the algorithms, output the corresponding 4-bit code, 상기 출력한 4 비트 코드에 대응하는 테스트 알고리즘을 실행하여 내장 메모리를 테스트하고, 상기 내장 메모리의 결함 유무를 알리는 결함 검출 신호, 결함 있는 곳의 주소를 나타내는 결함 주소 신호, 결함 있는 곳에 저장될 데이터를 출력하여 상기 내장 메모리의 결함을 테스트하는 단계;The internal memory is tested by executing a test algorithm corresponding to the output 4-bit code, and a defect detection signal indicating whether the internal memory is defective, a defect address signal indicating an address of a defect, and data to be stored in a defect location Outputting and testing a defect of the internal memory; 상기 테스트의 결과인 결함 정보에 포함된 주소와 데이터를 이용하여 상기 내장 메모리의 결함 위치를 스페어 행 메모리 혹은 스페어 열 메모리 중 어느 영역으로 재배치할 것인지 판단하기 위해, 행을 기준으로 가장 결함이 많은 하나의 행을 선택하고,The one with the most defects in terms of rows, in order to determine whether to replace the defective location of the internal memory with the spare row memory or the spare column memory using the address and data included in the defect information that is the result of the test. Select the row of, 가장 결함이 많은 행의 고장 셀 위치와 열의 위치 비교를 하기 위한 결함의 열 위치가 겹치게 되는지를 확인하며,Verify that the fault cell position of the most defective row overlaps the position of the fault column to compare the position of the column, 결함 있는 셀의 열 위치가 다른 주소에 의해 스페어 열 메모리로 재배치되었는지 확인하고,Verify that the column position of the defective cell has been relocated to spare column memory by another address, 다음 결함이 있는 주소의 첫 번째 결함 셀에서 그 주소의 행에 결함 있는 셀 개수와 열에 결함 있는 셀 고장 개수를 비교하여 재배치 알고리즘을 실행하는 단계; 및Executing a relocation algorithm by comparing the number of defective cells in the row of that address with the number of defective cell failures in the column in the first defective cell of the next defective address; And 상기 재배치 알고리즘 단계에서 발생한 신호에 따라 상기 내장 메모리의 결함 있는 부분을 상기 스페어 행 및 열 메모리로 대체하여 결함을 복구하는 단계를 포함하는 내장 메모리 장치의 자가 복구 방법.And recovering a defect by replacing a defective portion of the internal memory with the spare row and column memories according to a signal generated in the relocation algorithm step. 삭제delete 삭제delete 제 17 항에 있어서,The method of claim 17, 상기 결함을 복구하는 단계는 상기 재배치 알고리즘을 실행하는 단계에서의 상기 재배치 알고리즘 회로의 설정 값을 가지고 결함 있는 내장 메모리의 데이터 값을 상기 스페어 행과 열 메모리로 대신 사용하기 위하여 상기 내장 메모리가 읽기 및 쓰기 동작을 하는 경우, 상기 스페어 행과 열 메모리도 상기 내장 메모리와 같은 읽기 및 쓰기 동작을 하는 내장 메모리 장치의 자가 복구 방법.The repairing of the fault may include reading and storing the internal memory by using the data of the faulty internal memory as a spare row and column memory instead of the setting value of the relocation algorithm circuit in executing the relocation algorithm. When the write operation is performed, the spare row and column memories also perform the same read and write operations as the internal memory.
KR1020070099872A 2007-02-16 2007-10-04 System and embedded circuit for built-in self repair and built-in self test and method thereof KR100959055B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020070016745 2007-02-16
KR20070016745 2007-02-16

Publications (2)

Publication Number Publication Date
KR20080076686A KR20080076686A (en) 2008-08-20
KR100959055B1 true KR100959055B1 (en) 2010-05-20

Family

ID=39879891

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070099872A KR100959055B1 (en) 2007-02-16 2007-10-04 System and embedded circuit for built-in self repair and built-in self test and method thereof

Country Status (1)

Country Link
KR (1) KR100959055B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101012108B1 (en) * 2009-07-21 2011-02-07 한국원자력연구원 An apparatus for estimating fault coverage of embedded systems and the method thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100354437B1 (en) 2000-01-28 2002-09-28 삼성전자 주식회사 An integrated circuit semiconductor device having built-in self-repair circuit for embedded memory and a method for repairing the memory
KR20060018542A (en) * 2004-08-25 2006-03-02 장훈 Generator of memory bist circuit
KR20060094592A (en) * 2005-02-25 2006-08-30 장훈 (build-in self repair method and device for embedded sram)

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100354437B1 (en) 2000-01-28 2002-09-28 삼성전자 주식회사 An integrated circuit semiconductor device having built-in self-repair circuit for embedded memory and a method for repairing the memory
KR20060018542A (en) * 2004-08-25 2006-03-02 장훈 Generator of memory bist circuit
KR20060094592A (en) * 2005-02-25 2006-08-30 장훈 (build-in self repair method and device for embedded sram)

Also Published As

Publication number Publication date
KR20080076686A (en) 2008-08-20

Similar Documents

Publication Publication Date Title
US6667918B2 (en) Self-repair of embedded memory arrays
US6728916B2 (en) Hierarchical built-in self-test for system-on-chip design
US6728910B1 (en) Memory testing for built-in self-repair system
US7149924B1 (en) Apparatus, method, and system having a pin to activate the self-test and repair instructions
KR102117633B1 (en) Self repair device
CN108877870B (en) Repair circuit for repair operation and memory device including the same
US6640321B1 (en) Built-in self-repair of semiconductor memory with redundant row testing using background pattern
US6259637B1 (en) Method and apparatus for built-in self-repair of memory storage arrays
US7474575B2 (en) Apparatus for testing a memory of an integrated circuit
JPWO2008001543A1 (en) Semiconductor test apparatus and semiconductor memory test method
US7930592B2 (en) Enabling memory redundancy during testing
US20050166111A1 (en) Memory built-in self test circuit with full error mapping capability
KR101967270B1 (en) Memory device and method for testing the same
TW559824B (en) System and method for assured built in self repair of memories
JP5611916B2 (en) Semiconductor integrated circuit
US7549098B2 (en) Redundancy programming for a memory device
US10706952B1 (en) Testing for memories during mission mode self-test
US7518918B2 (en) Method and apparatus for repairing embedded memory in an integrated circuit
US7464309B2 (en) Method and apparatus for testing semiconductor memory device and related testing methods
KR100959055B1 (en) System and embedded circuit for built-in self repair and built-in self test and method thereof
JP4215723B2 (en) Integrated circuit
US7352638B2 (en) Method and apparatus for testing a memory device
EP1116241A2 (en) A method and a device for testing a memory array in which fault response is compressed
US11657892B1 (en) Repairable latch array
US20070118778A1 (en) Method and/or apparatus to detect and handle defects in a memory

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee