메모리 기술이 발달함에 따라 메모리의 집적도가 증가하게 되었고, 그에 따라 구성요소들의 크기가 작아지게 되고, 고장의 감응성이 증가하게 되어, 테스트는 더욱 복잡하게 된다. 또한, 칩 하나에 포함되어 있는 저장요소가 늘어남에 따라 테스트 시간도 증가하게 된다. SoC 기술의 발달로 대용량의 내장 메모리를 통합할 수 있게 되었지만, 테스트 과정은 복잡하게 되어 외부 테스트 환경에서는 내장 메모리를 테스트하기 어렵게 되었다. 본 논문은 ARM 프로세서 기반의 SoC 환경에서의 임베디드 메모리를 테스트할 수 있는 프로그램 가능한 메모리 내장 자체 테스트를 제안한다.
메모리 기술이 발달함에 따라 메모리의 집적도가 증가하게 되었고, 그에 따라 구성요소들의 크기가 작아지게 되고, 고장의 감응성이 증가하게 되어, 테스트는 더욱 복잡하게 된다. 또한, 칩 하나에 포함되어 있는 저장요소가 늘어남에 따라 테스트 시간도 증가하게 된다. SoC 기술의 발달로 대용량의 내장 메모리를 통합할 수 있게 되었지만, 테스트 과정은 복잡하게 되어 외부 테스트 환경에서는 내장 메모리를 테스트하기 어렵게 되었다. 본 논문은 ARM 프로세서 기반의 SoC 환경에서의 임베디드 메모리를 테스트할 수 있는 프로그램 가능한 메모리 내장 자체 테스트를 제안한다.
The density of Memory has been increased by great challenge for memory technology; therefore, elements of memory become more smaller than before and the sensitivity to faults increases. As a result of these changes, memory testing becomes more complex. In addition, as the number of storage elements ...
The density of Memory has been increased by great challenge for memory technology; therefore, elements of memory become more smaller than before and the sensitivity to faults increases. As a result of these changes, memory testing becomes more complex. In addition, as the number of storage elements per chip increases, the test cost becomes more remarkable as the cost per transistor drops. Recent development in system-on-chip(SoC) technology makes it possible to incorporate large embedded memories into a chip. However, it also complicates the test process, since usually the embedded memories cannot be controlled from the external environment. We present a ARM processor-programmable built-in self-test(BIST) scheme suitable for embedded memory testing in the SoC environment. The proposed BIST circuit can be programmed vis an on-chip microprocessor.
The density of Memory has been increased by great challenge for memory technology; therefore, elements of memory become more smaller than before and the sensitivity to faults increases. As a result of these changes, memory testing becomes more complex. In addition, as the number of storage elements per chip increases, the test cost becomes more remarkable as the cost per transistor drops. Recent development in system-on-chip(SoC) technology makes it possible to incorporate large embedded memories into a chip. However, it also complicates the test process, since usually the embedded memories cannot be controlled from the external environment. We present a ARM processor-programmable built-in self-test(BIST) scheme suitable for embedded memory testing in the SoC environment. The proposed BIST circuit can be programmed vis an on-chip microprocessor.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
그리하여 메모리 테스트를 수행하는 과정에서 시간과 비용을 줄일 수 있는 프로그램 가능한 메모리 내장 자체 테스트가 중요하게 되어서, 본 논문에서는 적은 오버헤드를 가지고, 빠른 속도로 동작하며, 다양한 알고리즘을 지원하는 프로그램 가능한 메모리 내장 자체 테스트를 개발하였다.
본 논문에서는 매크로 코드에 의해 동작하는 FSM방식과 ARM 마이크로 코드 방식의 내장 자체 테스트 구조를 제안한다. 이 구조는 ARM 마이크로 코드를 이용하여 테스트 Elements와 메모리의 크기 등을 설정해 주고 FSM 방식의 BIST로 테스트를 수행하게 된다.
가설 설정
메모리 생산 공정 초기에는 많은 고장이 발생하게 되므로, March C- 알고리즘을 지원하고, 생산이 거듭될수록 공정은 안정화 되므로, 단순하고 빠른 MATS+와 같은 알고리즘을 지원한다. 알고리즘의 설정은 Rme를 이용하여설정한다. 그림 3은 March Element Registei.
제안 방법
Xilinx사의 ISE 8.1i를 사용하여 제안하는 메모리 테스트의 구조를 구현하여 보았다. 테스트할 메모리의 크기를 1KByte, 4KBytes, 16KBytes로 정하였고, 각 메모리는 32bit 워드를 가지며 2匕 아。, 앙2 크기의 주소를가진다.
Address Decoder Faults, Stuck-At Faults가 모델링 되었지만, 고장을 완벽에게 반영할 수는 없었다. 그 후, 실제 디자인에서의 실제 고장을 반영하기 위해서 물리적 레이아웃수준의 실험결과를 바탕으로 State-Coupling Fault, Data-Retention Fault 고장 모델이 성립되었다. 메모리의 집적도가 커지면서 새로운 고장모델링이 필요하게되었다.
ARM 코어에서 마이크로코드를 이용해서 설정값을 원하는 레지스터에 넣기 위한 주소 해독기(Address Decoder) 희로, 원하는 테스트알고리즘 설정과 고장시 고장주소와. 데이타를 저장하기 위한 8개의 레지스터(Rbg, Ral, Rah, Rme, Rir, Rea, Rflag, Red), 테스트 알고리즘에 따른 주소를 발생시키는 주소 생성 회로(Address Generator Logic, AGL), 내장 자체 테스트의 모든 모듈을 제어하는 테스트 제어회로(Test Controller Logic), 마지막으로 메모리에서 읽어온 값을 정상 동작일 경우의 값과 비교하는 비교 기회로(Data Comparator Logic)로 구성되어 진다.
일반적으로 마이크로 코드를 이용한 방법이 다양한 알고리즘의 적용이 쉽기 때문에 많이 사용된다. 마이크로코드를 이용하여 테스트 알고리즘을 적용하기 위해서는 LDA, STA, LDX, STA 등의 명령어들의 반복으로 테스트를 한다. 하지만 이 방법은 명령어의 주소 지정방식과 각 명령어의 처리시간에 따라 많은 영향을 받는다.
본 논문에서 제안한 내장 자체 테스트 설계에 대한 구현은 VerilogHDL로 기술하여 구현하였다. 구현에 대한 검증은 Xilinx사의 ISE 8.
제안한다. 이 구조는 ARM 마이크로 코드를 이용하여 테스트 Elements와 메모리의 크기 등을 설정해 주고 FSM 방식의 BIST로 테스트를 수행하게 된다. 제안하는 구조에서는 8개의 레지스터와 세 가지 로직회로가존재한다, 8개의 레지스터는 ARM 코어에서 보내오는테스트를 위한 설정들을 저장한다.
이 구조는 ARM 마이크로 코드를 이용하여 테스트 Elements와 메모리의 크기 등을 설정해 주고 FSM 방식의 BIST로 테스트를 수행하게 된다. 제안하는 구조에서는 8개의 레지스터와 세 가지 로직회로가존재한다, 8개의 레지스터는 ARM 코어에서 보내오는테스트를 위한 설정들을 저장한다. 로직회로는 Ele- ments에 따른 메모리 주소를 생성해 주는 Address Generator Logic(AGL)과, 메모리에서 읽어온 값과 정상동작일 경우의 값을 비교하는 Data Comparator Logic, 메모리의 읽기/쓰기 동작에 적합한 신호와 AGL 회로를제어하는 Test Controller Logic로 구성되어 진다.
대상 데이터
그림 6은 테스트 제어 회로의 블록도이다. 테스트 제어 회로는 IR Analyzer, FLAG Generator, ME Ana- lyzer로 구성되어 있다. IR Analyzer는 RIR 레지스터의값을 분석해서 내장 자체 테스트를 동작시키고 Flag Generator-^ 데이타 비교기에서 보내오는 Match/们l match 신호와 주소 생성 회로에서 보내오는 Element end 신호를 RFLAG 레지스터에 설정한다.
데이터처리
VerilogHDL로 기술하여 구현하였다. 구현에 대한 검증은 Xilinx사의 ISE 8.1i에서 제공하는 시뮬레이터를 사용하여 RTL 검증을 하였다.
성능/효과
오버헤드를 가지고 있다. 결과적으로 제안하는 테스트 구조를 사용하면 테스트 시간과 비용을 줄일 수있을 것으로 예상한다.
그렇지만, 제안하는 프로그램 가능한 메모리 내장 자체 테스트는 ARM 프로세서의 명령어를 이용하여 알고리즘을 설정하기 때문에 외부 테스트 환경의 제약 없이 테스트 가능하고, 여러 개의 알고리즘을 지원하여 생산과정의 필요성에 따라 다양한 알고리즘을 설계 변경 없이 쉽게 적용할 수 있게 되었다. 또한, 테스트 컨트롤러가 ARM 프로세서의 도움을 받아 동작함으로써 컨트롤러의 크기를 줄일 수 있어 회로의 면적을 줄일 수 있었다.
테스트할 메모리의 크기를 1KByte, 4KBytes, 16KBytes로 정하였고, 각 메모리는 32bit 워드를 가지며 2匕 아。, 앙2 크기의 주소를가진다. 그림 9를 보면 메모리의 크기가 1KByte인 메모리를 테스트하는 메모리 테스트 회로의 오버헤드는 5.01%이고, 4KByte 메모리를 테스트하는 회로의 오버헤드는 2.51%이고, 16KByte 메모리를 테스트하는 회로의 오버헤드는 0.63%의 오버헤드를 가졌다. 메모리는용량이 커짐에 따른 면적 증가율이 해당 메모리를 테스트하는 회로의 크기 증가율보다 매우 크게 증가하였다.
그렇지만, 제안하는 프로그램 가능한 메모리 내장 자체 테스트는 ARM 프로세서의 명령어를 이용하여 알고리즘을 설정하기 때문에 외부 테스트 환경의 제약 없이 테스트 가능하고, 여러 개의 알고리즘을 지원하여 생산과정의 필요성에 따라 다양한 알고리즘을 설계 변경 없이 쉽게 적용할 수 있게 되었다. 또한, 테스트 컨트롤러가 ARM 프로세서의 도움을 받아 동작함으로써 컨트롤러의 크기를 줄일 수 있어 회로의 면적을 줄일 수 있었다.
63%의 오버헤드를 가졌다. 메모리는용량이 커짐에 따른 면적 증가율이 해당 메모리를 테스트하는 회로의 크기 증가율보다 매우 크게 증가하였다. 즉, 메모리 면적은 메모리 크기에 거의 비례하게 증가하였지만, 제안하는 테스트 회로는 비슷한 수준의 크기를유지하는 것을 알 수 있다.
본 논문에서 제안하는 프로그램 가능한 내장 자체 테스트는 전체 메모리 크기와 비교하였을 경우, 매우 작은면적 오버헤드를 가지고 있다. 결과적으로 제안하는 테스트 구조를 사용하면 테스트 시간과 비용을 줄일 수있을 것으로 예상한다.
그러므로, 주소의 증감이 자유롭기 때문에 주소 설정비트는 '01'로 할당하고, (w0)를의미하는 '00T을 할당하였다. 즉 모든 알고리즘의 총 March Element 수는 17개이지만, 동일한 March Ele~ ment에는 같은 번호를 부여하였기에, 코드로 변환된 6개로 제안한 모든 알고리즘을 표현할 수 있게 되었다.
메모리는용량이 커짐에 따른 면적 증가율이 해당 메모리를 테스트하는 회로의 크기 증가율보다 매우 크게 증가하였다. 즉, 메모리 면적은 메모리 크기에 거의 비례하게 증가하였지만, 제안하는 테스트 회로는 비슷한 수준의 크기를유지하는 것을 알 수 있다. 끝으로 구현한 프로그램 가능한 메모리 내장 자체 테스트의 최대 동작 주파수는 71.
후속연구
생산 초기에는 비록 복잡하고 시간이 오래 걸리지만, 다양한 고장을 찾아내는 알고리즘이 필요하지만, 생산이 거듭될수록 생산 공정이 안정화되고 수율이 높고 빠른 알고리즘으로 더 간단히 충분한 테스트가 가능하다. 두 번째, 이유는 SoC는 다양한 종류와 크기의 메모리를 갖기 때문에 각 메모리의 종류와 크기에 따른 적합한 테스트알고리즘이 필요하다. 메모리 생산 공정의 수율과 메모리 블록에 따른 적합한 알고리즘들을 모두 지원하기 위해서는 알고리즘마다 각각 구현회로를 설계해서 내장하여야 하므로 오버헤드가 증가하게 된다.
참고문헌 (8)
A. J. van de Goor and A.Offerman, "Towards a uniform notation for memory tests," in Proc. European Design and Test Conf., 1996, pp. 420-427
V. G. Mikitjuk, V.n. Yarmolik, and A.J. van de Goor, "RAM testing algorithms for detecting multiple linked faults," in Proc. European Design and Test Conf., 1996, pp. 435-439
P. H. Bardell and W. H McAnney, "Built-in test for RAMs," IEEE Design & Test of Computers, Vol.5, No.4, pp. 29-36, Aug. 1988
V. D. Agrawal, C. R. kime, and K. K. Saluja, "A tutorial on built-in self-test. 2. Principles," IEEE Design & Test of Computers, Vol.10, No.2, pp. 73-82, Mar. 1993
V. D. Agrawal, C. R. Kime, and K. K. Saluja, "A tutorial on built-in self-test. 2. Principles," IEEE Design & Teat of Computers, Vol.10, No.2, pp. 69-77, March. 1993
S. Park, K. Lee, C. Im, N. Kwak, K. Kim, Y. choi, "Designing built-in self-test circuits for embedded memories test," in Proc. AP-ASIC 2000, 2nd IEEE Asia Pacific Conf., pp. 315-318
K. Zarrin도, and S. J. Upadhyaya, "On programmable memory built-in self test architectures," in Proc. IEEE Design, Automation and Test in Europe Conf., pp. 708-713, Mar. 1999
S. Hamdioui, G. Gaydadjiev and A. J. van de Goor, "The state-of-art and future trends in testing embedded memories," Memory Technology, Design and Testing, 2004. Records of the 2004 International Workshop, pp. 54-59, Aug 2004
※ AI-Helper는 부적절한 답변을 할 수 있습니다.