KR100488232B1 - 집적 dma 제어기를 이용한 집적 메모리 테스트 방법 - Google Patents
집적 dma 제어기를 이용한 집적 메모리 테스트 방법 Download PDFInfo
- Publication number
- KR100488232B1 KR100488232B1 KR10-1999-7001269A KR19997001269A KR100488232B1 KR 100488232 B1 KR100488232 B1 KR 100488232B1 KR 19997001269 A KR19997001269 A KR 19997001269A KR 100488232 B1 KR100488232 B1 KR 100488232B1
- Authority
- KR
- South Korea
- Prior art keywords
- dma
- memory
- test
- dma transfer
- delete delete
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/36—Data generation devices, e.g. data inverters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/48—Arrangements in static stores specially adapted for testing by means external to the store, e.g. using direct memory access [DMA] or using auxiliary access paths
Landscapes
- Microcomputers (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
마이크로제어기는 집적 메모리 및 집적 DMA 제어기를 포함한다. 테스트하는 동안, DMA 제어기를 이용하여 집적 메모리의 배경 패턴들 및 그의 보수들의 판독/기록 테스트를 수행한다. 집적 메모리는 이러한 집적 메모리들에 전형적으로 필요한 BIST 논리를 포함할 필요가 없다. DMA 제어기를 이용하여 BIST 타입 테스트를 수행함으로써, 테스트가 하드웨어에 제한되지 않는다. 전형적으로, 집적 메모리들에 포함되었던 BIST 논리는 마이크로제어기를 설계하는 동안 설계 및 테스트된다. 이러한 설계 및 테스트 시간은 필요한 DMA 전송을 위해 테스트 벡터들을 발생시키는 (가능하게는 보다 짧은) 작업에 의해 대체될 수 있다. 본 발명의 테스트 방법을 이용하게 되면, BIST 테스에서 에러가 발생할 수 있는 위험이 감소된다. 종래에는, BIST 논리에 에러가 있는 것으로 발견되는 경우, 이러한 문제를 해결하기 위해서는 마이크로제어기를 위한 새로운 제조 마스크들이 필요했다. 많은 시간 및 금전상의 투자가 요구되었다. 본 발명의 방법은 테스트들을 반복 시뮬레이션하고 새로운 테스트 벡터들을 생성함으로써 테스트의 수정 및 변경을 가능하게 한다. 이후, 상기 새로운 테스트 벡터들은 이전에 제조된 마이크로제어기들에 적용될 수 있다.
Description
본 발명은 집적 회로 분야에 관한 것으로서, 특히 집적 회로 내의 집적 메모리의 테스트에 관한 것이다.
집적 회로는 현대 사회에서 광범위하게 이용된다. 자동차, 컴퓨터 시스템, 텔레비젼 및 전화기와 같은 다양한 제품들에는 다양한 기능들을 수행하는 1개 이상의 집적 회로들이 포함되어 있다. 일반적으로, 집적 회로는 단일 모놀리식 반도체 기판에 형성된 회로를 포함한다. 이러한 집적 회로는 집적 회로의 다양한 기능을 수행하는 1개 이상의 코어들과, 집적 회로 외부의 장치들 및 다른 집적 회로들과 통신하기 위한 회로를 구현한다. 코어는 바람직한 높은 레벨의 기능을 수행하기 위해 함께 연결된 회로이다. 예를 들어, 프로세서 코어는 일련의 명령을 실행하는 회로이다. 다른 코어들로는 신호를 처리하도록 구성된 디지털 신호 처리 코어, 외부 메모리의 블록을 캐시로서 관리하는 캐시 제어기 코어 등이 있다.
잘 알려진 형태의 하나의 집적 회로는 마이크로제어기인데, 이는 주변 장치들로의 다양한 직렬 및 병렬 포트 접속을 위한 통신 코어들 및 프로세서 코어를 포함한다. 마이크로제어기는 그에 접속된 주변 장치들을 (프로세서 코어를 통해) 프로그램가능하게 제어할 수 있다. 마이크로제어기는 일반적으로 프린터, 휴대 전화 자동차 등을 포함한 다양한 장치들에 이용된다. 일반적으로, 마이크로제어기는 범용 컴퓨터 시스템 이외의 다른 제품 내에 내장되는 전자 회로의 주요 제어 칩으로서 이용된다(즉, "내장 애플리케이션(embedded application)"이라 한다). 이러한 마이크로제어기 및 관련 회로는, 일반적인 용도가 계산이 아닌 제품(즉, 텔레비젼, 전화, 또는 자동차)의 계산 요구를 충족시키는 데에 이용된다.
현대의 마이크로컴퓨터는 프로세서 코어 및 통신 코어를 포함할 뿐 아니라, 일반적으로 이와 함께 이용되는 다른 장치들을 집적한다. 특히, 마이크로제어기는 메모리 블록들을 집적하기 시작했다. 메모리와 같이 이전에는 별개였던 구성 요소들을 집적하게 되면, 보다 적은 구성 요소들을 필요로 하기 때문에 최종 제품의 비용을 줄일 수 있다. 그러나, 마이크로제어기 내에 메모리를 집적하게 되면, 마이크로제어기를 제조할 때 메모리의 기능성을 테스트할 필요가 있다. 메모리들은 일반적으로 최소의 트랜지스터 치수, 트랜지스터들 간의 최소의 간격 및 최소 사이즈의 컨택들을 이용하여 구성된다. 따라서, 메모리들은 제조 공정 동안 발생되는 결함들에 특히 약하다. 이러한 결함들은, 예를 들어 칩들 또는 마스크들 상의 먼지 입자들, 스크래치, 게이트 산화물의 핀홀들 및 마스크들의 오정렬로 인해 발생한다.
일반적으로, 메모리 테스트를 수행하기 위해 내장형 셀프 테스트(BIST, built in self-test) 논리가 포함된다. BIST 논리는 테스트가 요구될 때 인에이블되어, 마이크로제어기 외부에서 검출할 수 있는 방식으로 테스트의 성공 또는 실패를 보고한다. 예를 들어, 핀이 표명(assert) 또는 비표명(deassert)될 수 있다. 대안적으로, 상태 레지스터가 갱신될 수 있는바, 이 상태 레지스터를 판독하여 BIST의 성공/실패 상태를 결정할 수 있다.
메모리 결함들은 스턱앳 결함(stuck-at fault, "고착 고장"이라고도 칭함), 스턱 오픈 결함(stuck-open fault, "개방 고착 고장"이라고도 칭함), 천이 결함, 상태 결합 결함, 다중 액세스 결함 및 데이터 보유 결함으로 분류될 수 있다. 메모리 셀(또는 비트 위치)은, 이 셀로부터의 판독이 이 셀에서 수행되는 판독/기록 동작 또는 다른 셀들로부터의 어떠한 영향에도 상관없이 항상 특정 논리 값인 경우, 스턱앳되는 것으로 알려져있다. 결코 액세스될 수 없는 경우, 메모리 셀은 스턱 오픈되는 것으로 알려져있다. 천이 결함을 갖는 메모리 셀은, 셀이 반복적으로 기록될 때 0에서 1 또는 1에서 0으로의 천이들중 적어도 하나를 겪는 데에 실패할 것이다. 단지 제 2 셀 만이 하나의 정의된 상태에 있고 제 1 셀이 특정값에 고정되는 경우, 메모리 셀은 다른 셀에 상태 결합되는 것으로 알려져있다. 상태 결합 결함의 테스트는 메모리의 임의 셀들의 쌍이 0-0, 0-1, 1-0 및 1-1 상태가 될 수 있음을 증명할 것을 요구한다. 단일의 판독/기록 동작이 다수의 셀들을 액세스하는 경우, 메모리 셀은 다중 액세스 결함을 갖는 것으로 알려져있다. 마지막으로, 데이터 보유 결함을 갖는 메모리 셀은 자신에게 저장된 전하(이는 이진수 1 또는 이진수 0을 나타낸다)를 최소의 요구 시간 동안 보유할 수 없다.
일반적으로, BIST 논리는 상기 설명한 모든 결함들을 테스트하기 위해 9N 또는 13N 테스트 알고리즘(여기서, N은 메모리 내의 어드레스의 수이고, 9 또는 13은 1번의 테스트 패스(pass of test) 내에서 메모리 셀에 대한 액세스의 수이다)을 이용한다. 일반적으로, 이 알고리즘은 선택된 "배경" 패턴 및 이 배경 패턴의 보수(complement) 모두에 대한 판독 및 기록을 수반한다. 일단 메모리가 선택된 배경 패턴으로 초기화되면, 각 메모리 셀은 선택된 배경 패턴의 확인을 위해 판독되고, 배경 패턴의 보수로 기록된 다음, 선택된 배경 패턴의 확인을 위해 다시 판독된다. 상기 배경 패턴은 물리적으로 서로 근처에 위치하는 셀들을 강조하기 위해 선택되는 이진수 1 및 0의 세트를 포함한다. 예를 들어, 어떠한 셀을 이진수 1로 갱신하도록 배경 배턴들을 선택하는 동안, 인접하는 셀 또는 셀들은 이진수 0으로 갱신되며, 반대로 이 셀을 이진수 0으로 갱신하도록 배경 패턴들을 선택하는 동안, 인접하는 셀 또는 셀들은 이진수 1로 갱신된다. 다른 배경 패턴들은, 특정 셀은 이진수 0(또는 1)으로 갱신되고 인접하는 셀들은 특정값으로 일정하게 유지되도록 선택된다. 9N 및 13N 테스트 알고리즘에 대한 보다 상세한 사항들은, 로브 데커(Rob Dekker), 프랑스 빈커(Frans Beenker), 로크 퉁센(Loek Thussen)의 「스태틱 랜덤 액세스 메모리들을 위한 실제 결함 모델 및 테스트 알고리즘("A Realistic Fault Model & Test Algorithms for Static Random Access Memories")」IEEE 로그 번호 9034766(1989년 7월 10일)에 개시되어 있으며, 이는 본원의 참조로서 인용된다.
불행히도, 상기 BIST 논리는 마이크로제어기 및 다른 집적 회로의 설계를 번거롭게 한다. 마이크로제어기는 일반적으로 비교적 낮은 가격으로 대량 판매되기 때문에, 이러한 마이크로제어기의 설계에는 상당한 비용이 든다. 반도체 기판의 다이 사이즈는 반도체 웨이퍼 마다 제조되는 제품의 수 및 수율을 증가시키기 위해 최소화된다. 상기 BIST 논리는 상당량의 유효 다이 면적을 소모할 수 있다. 예를 들어, 약 3-5% 또는 심지어 그 이상의 다이 면적이 BIST 논리로 전용될 수 있다.
BIST 논리에 의해 제기되는 다른 문제는 메모리로의 액세스가 필요하다는 것이다. 따라서, BIST 논리의 어드레스, 데이터, 판독/기록 제어 및 다른 제어 신호들이 메모리 어레이의 포트들(또는 액세스 포인트들) 내에 포함되어야 한다. 이에 따라, 경합하는 액세스 요구들 간에 선택을 수행하는 데에 이용되는 멀티플렉서들 또는 다른 선택 장치들은 BIST 논리를 위한 다른 입력을 포함해야 한다. 따라서, 이러한 멀티플렉서들은 더 커질 뿐 아니라 더 느리게 되어, 값을 전달하는 데에 부가적인 시간이 필요하게 된다. 따라서, BIST 논리가 포함되면, 마이크로제어기에 의해 달성가능한 클럭 사이클 시간(또는 주파수)이 영향을 받게 된다. 따라서, 집적 메모리를 갖는 집적 회로를 테스트하는 BIST 논리 방법에 대한 대안을 제공하는 것이 바람직하다.
[발명의 요약]
상기 설명한 문제는 본 발명에 따른 마이크로제어기에 의해 해결된다. 이 마이크로제어기는 집적 메모리 및 집적 DMA(direct memory access) 제어기를 포함한다. 테스트를 하는 동안, DMA 제어기를 이용하여 집적 메모리의 배경 패턴들 및 그의 보수들의 판독/기록 테스트를 수행한다. 유익하게는, 집적 메모리는 이러한 집적 메모리에 전형적으로 필요했던 BIST 논리를 포함할 필요가 없다. 이전에 BIST 논리에 전용되었던 다이 면적이 비게 되므로, 다른 용도로 이용할 수 있고 다이의 전체 사이즈를 줄일 수 있다. 또한, 집적 메모리의 입/출력 회로가 BIST 논리를 포함하는 집적 메모리들에 비해 단순화된다. 따라서, 본 발명의 집적 메모리는 BIST 논리를 포함하는 집적 메모리에 비해 액세스 시간이 더 빠른 것을 특징으로 한다.
본원에서 설명되는 DMA 제어기를 이용하는 방법은 BIST 타입 테스트를 수행하는 매우 효율적인 방법이다. 2개의 DMA 채널들을 동시에 이용하여, 각 메모리 위치에서 배경 패턴의 요구되는 판독, 배경 패턴의 보수의 기록 및 배경 패턴의 보수의 판독을 제공한다. 제 2 DMA 채널은 배경 패턴을 확인하기 위해 각 메모리 위치를 판독하며, 제 1 DMA 채널은 배경 패턴의 보수로 각 메모리 위치를 갱신한 다음 이 메모리 위치를 판독하여 배경 패턴의 보수가 그 내에 저장되어 있는 지를 확인한다. 제 2 DMA 채널에 의해 실행되는 DMA 전송의 판독 부분과, 제 1 DMA 채널에 의해 실행되는 DMA 전송의 판독 및 기록 부분들 모두는 테스트 알고리즘의 필요한 부분들을 실행한다. DMA 제어기를 이용하는 방법은 메모리 테스트 자체를 수행하기 위해 명령들(즉, 집적 회로 내의 각 메모리 위치들에 대한 다수의 이동 명령들)을 이용하는 것 보다 실질적으로 훨씬 더 효율적이다. 이러한 명령들은 페치되어야 하는바, 이는 테스트의 판독 및 기록 액세스들을 수행하는 데에 필요한 버스 사이클은 물론 부가적인 버스 사이클들을 위한 외부 버스 및 공유 내부 버스를 점유한다. 대조적으로, 본 발명의 테스트 방법은 적은 수의 명령들을 실행하여 DMA 제어기를 구성하며, 이후 판독 및 기록 액세스가 집적 메모리를 통해 각 테스트 패스 마다 인터럽트되지 않고 진행된다.
소정의 메모리 위치에 대한 테스트 동작의 순서는 13N 테스트 알고리즘에 의해 특정되는 순서이지만, 인접하는 메모리 위치들에 대한 동작들은 서로 혼합된다. 제 2 DMA 채널이 특정 위치를 판독한 다음, 제 1 DMA 채널이 상기 특정 위치에 인접하는 제 1 위치를 판독하고 이 제 1 위치로부터 판독한 값으로 상기 특정 위치를 갱신한다. 이후, 상기 특정 위치에 인접하는 제 2 위치가 제 2 DMA 채널에 의해 판독된 다음, 제 1 DMA 채널이 상기 특정 위치를 판독하고 이 특정 위치로부터 판독한 값으로 상기 제 2 위치를 갱신한다. 이러한 방식으로, 제 1, 2 DMA 채널들은 필요한 판독 및 기록 테스트들을 효율적으로 제공한다. 즉, 각 메모리 위치는 배경 패턴 및 이 배경 패턴의 보수에 대해 판독 및 기록이 가능한 것으로서 검증되며, 각 메모리 위치는 배경 패턴 및 이 배경 패턴의 보수를 저장한다.
DMA 제어기를 이용하여 BIST 타입 테스트를 수행하는 것의 다른 장점은 테스트가 하드웨어에 제한되지 않는 다는 것이다. 전형적으로, 집적 메모리들에 포함되는 BIST 논리는 마이크로제어기를 설계하는 동안 설계 및 테스트된다. BIST 논리의 동작을 정확하게 하고 이를 보장하기 위해서는, 상당량의 설계 및 테스트 시간을 들여야 한다. 유익하게는, 이러한 설계 및 테스트 시간은 요구되는 DMA 전송들의 테스트 벡터들을 발생시키는 작업(이는 실질적으로 적은 시간을 소모한다)에 의해 대체된다. 이에 따라 설계 비용이 감소됨으로써, 최종 마이크로제어기 제품의 비용이 감소된다. 또한, 본 발명의 테스트 방법을 이용하게 되면, BIST 테스트시 에러 발생 위험이 감소된다. 종래에는, BIST 논리가 에러인 것으로 발견되는 경우, 문제를 해결하기 위해서는 마이크로제어기를 위한 새로운 제조 마스크들이 필요했었다. 이는 많은 시간 및 비용상의 투자를 필요로 했다. 유사하게, BIST 테스트의 특성을 어떠한 형태로 바꾸는 것이 바람직한 경우, 마이크로제어기는 새로운 마스크들을 이용하여 제조되어야 했다. 한편, 본 발명의 방법은 테스트를 반복 시뮬레이션하여 새로운 테스트 벡터들을 생성함으로써 테스트의 수정 및 변경을 가능하게 한다. 이후, 상기 새로운 테스트 벡터들은 이전에 제조된 마이크로제어기들에 적용될 수 있다.
개략적으로, 본 발명은 집적 DMA 제어기를 갖는 집적 회로의 메모리를 테스트하는 방법을 고려한다. 메모리를 포함하는 다수의 저장 위치들은 소정값으로 초기화된다. 제 1 DMA 전송이 DMA 제어기에서 수행되어 다수의 저장 위치들 각각을 액세스한다. 제 2 DMA 전송이 DMA 제어기에서 수행되어 다수의 저장 위치들 각각을 소정값의 보수로 갱신한다. 본 발명은 또한 이러한 방법에 의해 테스트되는 집적 회로를 고려한다. 본 발명은 또한 메모리 및 DMA 유닛을 포함하는 집적 회로를 고려한다. 상기 메모리는 집적 회로에 집적되는 다수의 저장 위치들을 포함한다. 메모리에 결합된 DMA 유닛은 동작시, 제 1 DMA 전송을 수행하여 다수의 저장 위치들 각각을 소정값으로 갱신하고, 제 2 DMA 전송을 수행하여 다수의 저장 위치들 각각을 액세스한다.
삭제
본 발명의 다른 목적들 및 장점들은 첨부 도면들을 참조하여 설명되는 하기의 상세한 설명을 읽음으로써 명백해질 것이다.
도 1은 마이크로제어기의 일 실시예의 블록도이다.
도 2는 도 1의 마이크로제어기를 테스트하도록 구성된 테스터 시스템의 블록도이다.
도 3은 도 1의 마이크로제어기에 집적되는 DMA 제어기 및 메모리의 블록도이다.
도 4는 도 3의 메모리를 테스트하기 위해 도 3의 DMA 제어기에 의해 수행되는 동작들을 설명하는 흐름도이다.
도 5는 DMA 제어기가 도 4의 동작들을 수행하는 시간 간격의 다양한 포인트들에서의, 도 3의 메모리의 한 쌍의 연속적인 저장 위치들에서의 값들을 도시한다.
도 5A는 도 4의 흐름도에 따른 몇 개의 버스 트랜잭션들을 도시하는 타이밍도이다.
도 6은 DMA 제어기가 도 4의 동작들을 수행하는 시간 간격의 다양한 포인트들에서의, 도 3의 메모리의 저장 위치들을 포함하는 다양한 저장 위치들의 상태를 도시한다.
도 7은 도 4의 흐름도에 대응하는 테스트 벡터들의 세트를 발생시키기 위해 수행되는 동작들을 도시한 흐름도이다.
도 8은 레지스터들에 예시적인 값들이 프로그램되어 있는 도 3의 블록도이다.
본 발명은 다양한 변형들 및 대안적인 형태들을 가질 수 있지만, 본원에서는 특정한 실시예들에 대해 예시적으로 설명한다. 그러나, 주목할 사항으로서, 도면들 및 상세한 설명은 본 발명을 개시된 특정한 형태로 국한하지 않으며, 본 발명은 첨부된 청구범위에 의해 정의되는 본 발명의 정신 및 범위 내에 포함되는 모든 변형들, 등가들 및 대안들을 포괄한다.
도 1은 마이크로제어기(10)의 일 실시예의 블록도이다. 도시된 실시예에서, 마이크로제어기(10)는 단일의 모놀리식 반도체 기판 위에 형성된다. 다른 실시예들이 고려될 수 있다. 마이크로제어기(10)는 클럭/파워 관리 유닛(12), 인터럽트 제어 유닛(14), 프로세서 코어(16), 타이머 제어 유닛(18), DMA 제어 유닛(20), 프로그램가능한 입/출력(PIO) 유닛(22), 비동기 직렬 인터페이스(24), 동기 직렬 인터페이스(26), 칩 선택 유닛(28), 내부 메모리(30) 및 버스 인터페이스 유닛(32)을 포함한다. 내부 버싱(bussing)(34)은 마이크로제어기(10)의 다양한 요소들(12 내지 32)을 서로 연결하며, 이에 의해 다양한 요소들(12-32)이 서로 통신하게 된다. 일 실시예에서, 마이크로제어기(10)는 80C186 호환성 마이크로제어기이다.
내부 메모리(30)를 테스트하기 위해, DMA 제어 유닛(20)를 이용하여 내부 메모리(30)를 선택된 배경 패턴으로 초기화한 다음, 내부 메모리(30)에 대해 배경 패턴 및 이 배경 패턴의 보수의 판독 및 기록 테스트를 수행한다. 장점으로서, DMA 전송들을 이용하여 BIST를 수행함으로써 BIST 논리는 폐기될 수 있다. DMA 제어 유닛(20)은 정상적인 이용(즉, DMA 전송) 동안 다른 동작들에 대해 이용할 수 있기 때문에, BIST 기능은 어떠한 부가적인 면적 또는 회로도 요구하지 않는다. 주목할 사항으로서, 본원에서 이용되는 특정값의 "보수(complement)"는 대응하는 비트 위치에 있는 특정값의 각 비트의 역수(inverse)를 포함한다. 다시 말해, 보수는 특정값의 논리적 역수이다. 예를 들어, (이진수) 0100 값의 보수는 (이진수) 1011이다.
일 실시예에서는, 2개의 DMA 채널들을 이용하여 배경 및 이 배경의 보수의 기록 및 판독 테스트를 동시에 수행한다. 제 2 DMA 채널은 내부 메모리(30)의 각 메모리 위치로부터 선택된 배경값을 판독한 다음, 이 값을 내부 메모리(30) 외부의 임의 메모리 위치에 저장한다. 따라서, 제 2 DMA 채널은 상기 선택된 배경 패턴이 내부 메모리(30) 내의 각 메모리 위치로/로부터 정확히 기록/판독되는 지를 확인한다. 제 1 DMA 채널은 먼저, 내부 메모리(30)의 외부에 있지만 그에 인접하여 배경값의 보수가 주어지는 위치를 판독한다. 상기 외부 위치로부터 판독된 값은 내부 메모리(30)의 최하위 어드레스에 저장된다. 이후, 제 1 채널은 갱신된 위치를 판독하고 내부 메모리(30)의 두 번째 최하위 어드레스를 갱신한다. 이에 따라, 제 1 DMA 채널은 상기 선택된 배경 패턴의 보수가 내부 메모리(30) 내의 각 메모리 위치로/로부터 정확히 기록/판독되는 지를 확인한다.
제 2 DMA 채널에 이어 제 1 DMA 채널이 특정 위치를 액세스하여, 제 1 DMA 채널이 특정 저장 위치를 갱신하기 전에 제 2 DMA 채널이 상기 특정 저장 위치를 판독하도록 보장한다. 일 실시예에서, 테스트는 (하기 설명되는) "판독 표시(show read)" 모드에서 마이크로제어기(10)에 의해 수행되기 때문에, DMA 전송의 판독 부분에 대한 판독 데이터가 마이크로제어기(10)의 핀들 상에 나타나게 됨으로써, 마이크로제어기(10)를 테스트하는 데에 이용되는 테스트 장치에 의해 검출가능해진다. 2개의 DMA 채널들은 동일한 우선 순위를 갖고 소스가 동기되도록 프로그램된다. DMA 요구 핀들을 동시에 표명함으로써, DMA 채널들이 동시에 시작되고, DMA 제어 유닛(20)에 의해 이들 간의 순서 관계가 보장된다.
프로세서 코어(16)는 이 프로세서 코어(16)에 의해 이용되는 마이크로프로세서 아키텍쳐에 의해 정의되는 명령들의 세트를 실행하는 회로를 포함한다. 일 실시예에서, 프로세서 코어(16)는 80C186 호환성 프로세서 코어이다. 이 프로세서 코어(16)는, 실행되는 명령 코드에 이용되는 어드레스들 및 내부 메모리(30)와 외부 메모리에 할당되는 어드레스 공간 영역에 기초하여, 내부 메모리(30) 및 외부 메모리로부터 명령들 및 특정한 명령 오퍼랜드들을 페치한다. 내부 메모리(30)를 액세스하는 경우, 이러한 액세스는 버싱(34)을 통해 완료된다. 기록 액세스들(즉, 프로세서 코어(16)가 메모리 위치를 갱신하고 있다)에 대해서, 기록 동작 및 갱신되는 데이터는 버스 인터페이스 유닛(32)에 의해 외부 버스(36) 상에 방송된다. 내부 메모리(30)로의 판독 액세스들에 대해서, 어드레스가 외부 버스(36) 상에 방송되지만, 판독되는 데이터는 일반적으로 방송되지 않는다. 주목할 사항으로서, 액세스라는 용어는 판독(액세스되는 저장 위치로부터 전송 개시기(transfer initiator), 예를 들어 프로세서 코어(16)로의 데이터의 전송) 또는 기록(전송 개시기로부터 액세스되는 저장 위치로의 데이터의 전송)을 말한다. 기록 액세스는 갱신이라고도 한다.
마이크로제어기(10)는 디버깅시 사용자를 돕기 위한 메커니즘을 이용하는바, 이는 "판독 표시" 모드라 불린다. 마이크로제어기(10)로의 리셋 신호의 비표명시, 소정 핀의 신호가 표명된다면, 판독 표시 모드에 들어간다. 대안적으로, 구성 레지스터가 소프트웨어 명령에 의해 판독 표시 모드를 인에이블 시키도록 프로그램될 수 있다. 판독 표시 모드에서, 프로세서 코어(16)가 내부 메모리(30)로의 판독 액세스를 수행하면, 내부 메모리(30)로부터 판독되는 데이터는 버스 인터페이스 유닛(32)에 의해 외부 버스(30) 상으로 전달된다. 이에 따라, 내부 메모리(30)로부터 프로세서 코어(16)로 전송되는 데이터는 마이크로제어기(10)의 외부에서 가시화된다. 외부 버스(36) 상에서의 판독 데이터의 기능적 타이밍은 외부 판독 데이터(즉, 외부 메모리에 의해 제공되는 데이터)에 대해 요구되는 기능적 타이밍과 일치한다. 또한, 판독 표시 버스 전송의 A/C 타이밍은 다른 판독들의 A/C 타이밍과 일치한다. 구체적으로, 셋업 시간(즉, 데이터가 캡춰되는 특정한 클럭 에지 이전의 시간량, 이때 상기 데이터는 버스 상에서 유효해야 한다)과 홀드 시간(즉, 버스 상에서 데이터가 유효한, 특정 클럭 에지 이후의 시간량)은 각각 외부 판독들에 대해 대응하는 셋업 시간 및 홀드 시간 보다 크거나 같다.
일반적으로, 내부 메모리(30)는 어떠한 타입의 메모리 저장소(memory storage)를 포함한다. 이 메모리 저장소는 다수의 저장 위치들(또는, "메모리 위치들")로 구성된다. 각 저장 위치는 판독 및 기록 액세스들에 대해 고유의 어드레스(unique address)에 의해 선택될 수 있다. 일 실시예에서, 내부 메모리(30)는 32 킬로 바이트의 랜덤 액세스 메모리(RAM)로 구성된다. 이러한 RAM은, 예를 들어 스태틱 RAM (SRAM) 셀들 또는 다이내믹 RAM (DRAM) 셀들을 포함할 수 있다. 본 실시예에서의 셀들은, 메모리를 액세스하는 각 어드레스에 대해 16 비트 워드가 판독 또는 기록될 수 있도록 구성된다. 주목할 사항으로서, 다른 실시예들에서, 워드들은 다른 수의 비트들로 구성될 수 있다. 또한, 어떠한 바람직한 RAM 구성이 이용될 수 있다. 또한, 버스 인터페이스 유닛(32)은 일반적으로 80C186 인터페이스의 프로토콜에 따라 외부 버스(36) 상에서 통신하는 회로를 제공한다.
클럭 제어/파워 관리 유닛(12)은 외부 발진기(미도시)로부터 입력 발진 신호를 수신한 다음, 이 입력 발진 신호로부터 내부 및 외부 클럭 신호들을 발생시킨다. 이러한 내부 및 외부 클럭 신호들은 최고 속도(full speed)로 동작하거나, 최고 속도 주파수 보다 낮은 주파수에서 파워 절약 모드로 동작할 수 있다. 상기 파워 절약 모드를 선택하기 위한 다양한 알고리즘들이 널리 알려져있다.
인터럽트 제어 유닛(14)은 마이크로제어기(10)에 연결된 장치("주변 장치")로부터 인터럽트 신호들을 수신한다. 일반적으로, 장치가 특정한 서비스를 필요로 하게 되면, 이 장치는 마이크로제어기(10)를 인터럽트한다. 예를 들어, 장치가 입력 데이터를 버퍼링하여 버퍼가 가득 차면, 이 장치는 마이크로제어기(10)를 인터럽트한다. 마이크로제어기(10)는, 인터럽트 제어 유닛(14)에 의해 수신된 인터럽트에 대응하는 인터럽트 서비스 루틴에서의 명령들에 응답하여, 버퍼로부터 데이터를 출력하여 전송한다. 일 실시예에서, 인터럽트 제어 유닛(14)은 외부 장치들로부터 최대 6개의 인터럽트 요구 라인들을 수신하고, 6개의 내부 인터럽트 요구 라인들을 수신한다(3개는 타이머 제어 유닛(18)으로부터 수신되고, 2개는 DMA 제어 유닛(20)로부터 수신되며, 1개는 비동기 직렬 포트(24)로부터 수신된다). 인터럽트 제어 유닛(14)은 인터럽트들의 우선순위를 매긴 다음, 이 인터럽트들을 프로세서 코어(16)에 한번에 하나씩 제공한다. 또한, 개별적인 인터럽트 요구들은 사용자의 요구에 따라 프로그램가능하게 마스크될 수 있다.
타이머 제어 유닛(18)은 다수의 프로그램 가능한 타이머들을 포함한다. 이러한 타이머들은 특정 이벤트들의 시간을 설정하는 데에 이용될 수 있다. 또한, 타이머들중 하나는 "워치독 타이머(watchdog timer)"로서 이용될 수 있다. 이 "워치독 타이머"는 무한의 행 상태(infinite hang condition)(예를 들어, 무한 루프, 데이터가 외부 장치로부터 돌아오지 않기 때문에 결코 실행을 완료하지 않는 명령 등)를 야기시키는 명령 또는 명령들을 수행하기 바로 전에 소프트웨어 명령에 의해 초기화된다. 상기 워치독 타이머는 카운트다운 이후에 인터럽트를 제공함으로써, 프로세서 코어(16)가, 상기 무한의 행 상태를 겪고 있는 명령 코드로부터 빠져나가게 한다. 이후, 마이크로제어기는 다른 작업들로 진행할 수 있다.
DMA 제어 유닛(20)은 메모리와 I/O 공간들 사이에서, 또는 메모리와 I/O 공간들중 하나 또는 다른 하나 내의 2개의 어드레스 범위들로부터 직접 메모리 액세스(DMA) 전송을 수행하도록 구성된다. 일반적으로, DMA 제어 유닛(20)은 소스 어드레스와 목적지 어드레스, 및 소스로부터 목적지로 전송될 바이트들(또는 워드들)의 수를 정의하는 전송 카운트로 프로그램된다. 이후, DMA 제어 유닛(20)은 지시받은 전송을 수행한다. 일 실시예에서, DMA 제어 유닛(20)은 2개의 서로 다른 DMA 전송들을 프로그램하는 2개의 DMA 채널들을 포함한다.
일반적으로, DMA 전송은 프로세서 코어(16)의 개입없이 소스 위치 또는 위치들로부터 목적지 위치 또는 위치들로 수행되는 데이터의 전송이다. 이러한 전송은 DMA 제어 유닛(20)(또는, DMA 제어기) 내의 "채널"을 통해 수행된다. 이러한 채널은 소스 위치와 목적지 위치 간의 통신을 제공한다. 일반적으로, DMA 제어 유닛(20)은 소스 위치들을 판독하여, 이로부터 데이터를 캡춰한 다음, 이 데이터를 목적지 위치들에 저장한다. 각 채널은 개별적으로 구성될 수 있으며 서로 독립적이다. 따라서, 채널들은 내부 버싱(34)을 공유하여 동시에 동작할 수 있다. 또한, 2개의 DMA 전송들은 프로세서 코어(16)에 의해 동시에 초기화될 수 있으며, DMA 전송들은 이러한 전송들에 수반되는 장치들의 요구에 따라 임의의 순서로 이루어질 수 있다.
DMA 전송은 비동기, 소스 동기, 또는 목적지 동기가 될 수 있다. 비동기 DMA 전송은, 전송을 제공하는 채널의 제어 레지스터가 이러한 전송이 프로그램되고 비동기적임을 나타내는 값으로 프로세서 코어(16)에 의해 갱신될 때 시작된다. 소스 동기 전송은 전송을 시작하기 전에, 요구 신호가 DMA 전송의 소스로부터 표명되기를 기다린다. 마지막으로, 목적지 동기 DMA 전송은 전송을 시작하기 전에, 요구 신호가 DMA 전송의 목적지로부터 표명되기를 기다린다. 비동기 및 소스 동기 DMA 전송들은 (일단 전송이 시작되면) 소스 저장 위치 및 목적지 저장 위치의 연속적인 액세스를 수행하고, 목적지 동기 DMA 전송은 목적지 위치의 갱신과 다음 소스 위치로의 액세스 사이에 휴지(pause)를 포함한다. 목적지 장치가 상기 휴지 동안 그의 요구를 제거하는 경우, 전송을 계속하기 위해서는 상기 요구를 다시 표명해야 한다. 일 실시예에서, 상기 휴지는 2 버스 사이클의 길이이다.
PIO 유닛(22)은 프로그램가능한 I/O (PIO) 핀들의 세트의 프로그램을 가능하게 한다. 사용자는 각각의 개별적인 핀을 입력 핀 또는 출력 핀으로서 프로그램하도록 선택할 수 있다. 핀은 사용자의 요구에 따라 어떠한 목적으로도 이용될 수 있다. 출력 핀에 전달되거나 입력 핀으로부터 수신된 값들은 레지스터의 각 위치들에 저장되는바, 사용자는 명령을 통해 이를 액세스할 수 있다. 또한, 구성 레지스터는 PIO 핀들을 인에이블시키고 이 PIO 핀들을 입력 또는 출력으로서 구성한다.
비동기 직렬 포트(24)는 산업 표준 RS232 사양과 호환가능한 비동기 직렬 통신 메커니즘을 제공한다. 한편, 동기 직렬 인터페이스(26)는 클럭 핀, 데이터 핀 및 한 쌍의 인에이블 핀들을 포함하는 동기 직렬 인터페이스를 통해 동기 통신 메커니즘을 제공한다. 상기 데이터 핀 및 한 쌍의 인에이블 핀들을 클럭 핀이라 한다.
칩 선택 유닛(28)은 프로그램가능한 메모리 맵에 기초하여 다양한 주변 장치들에 대해 외부 칩 선택 신호들의 세트를 제공한다. 각 외부 칩 선택 신호는 마이크로제어기(10)에 의해 제공되는 어드레스가능한 메모리(즉, 어드레스 공간) 내의 메모리 블록(즉, 어드레스들의 인접 범위)에 할당된다. 각각의 외부 칩 선택 신호는 특정한 주변 장치에 의해 수신되며, 이러한 외부 칩 선택 신호의 표명은 상기 특정한 주변 장치에게, 제시되는 어드레스가 상기 주변 장치의 어드레스 공간(즉, 그의 할당된 메모리 블록) 내에 있음을 알린다. 일 실시예에서는, 20 비트의 어드레스가 이용되어 1 메가 바이트의 어드레스 공간을 제공한다. 각각의 외부 칩 선택은 1 메가 바이트 어드레스 공간 내의 특정한 어드레스 범위에 응답하도록 프로그램된다. 외부 칩 선택이 응답하는 어드레스들의 범위는 내부 메모리(30)에 할당된 어드레스 범위를 포함하지 않는다. 일 실시예에서는, 80C186 호환성에 따라 최대 12의 외부 칩 선택이 포함된다.
도 2는 마이크로제어기(10)를 테스트하도록 구성된 테스터 시스템(40)의 블록도이다. 이 테스터 시스템(40)은 테스터(42), 테스트 인터페이스(44) 및 마이크로제어기(10)를 포함한다. 상기 테스터(42)는 어떠한 반도체 테스트 머신이 될 수 있다. 예를 들어, 테스터(42)는 메사추세츠주 보스턴에 소재하는 테라다인사(Teradyne, Inc.)로부터 입수할 수 있는 J971 테스터가 될 수 있다. 테스트 인터페이스(44) 또한 테라다인사로부터 입수할 수 있다. 전형적으로, 테스터(42) 및 테스트 인터페이스(44)는 한 유닛으로서 함께 판매된다. 테스트 인터페이스(44)는 마이크로제어기(10)를 접촉하는 데에 이용되며, 일반적으로 테스터(42)를 이용하여 테스트하는 각 집적 회로에 대해 커스터마이즈(customize)된다. 예를 들어, 패키지 부분들은 테스트 인터페이스(44) 내의 장치 인터페이스 보드(DIB)를 이용하여 테스트된다. DIB는 테스트 인터페이스(44)의 나머지 부분에 대해 표준 인터페이스를 갖고 마이크로제어기(10)에 대해 커스터마이즈된 인터페이스를 갖기 때문에, 마이크로제어기(10)의 각 핀이 동시에 접촉된다.
일반적으로, 테스터(42)는 마이크로제어기(10)에 일련의 테스트 벡터들을 제공하도록 구성된다. 각 테스트 벡터는 1개의 클럭 사이클(즉, 클럭 제어/파워 관리 유니(12)에 의해 발생되는 클럭 신호들의 1 주기)을 나타낸다. 이러한 테스트 벡터는 클럭 사이클 동안 입력 모드에 있는 각 입/출력 핀 및 각 입력 핀에 값을 제공한다. 또한, 상기 테스트 벡터는 클럭 사이클 동안 출력 모드에 있는 각 입/출력 핀 및 각 출력 핀에 기대값(expected value)을 제공한다. 테스터(42)는 대응하는 클럭 사이클 동안 테스트 인터페이스(44)를 통해 입력 핀들에 입력값들을 제공하고, 제공되는 세트의 각 테스트 벡터에 대해 대응하는 클럭 사이클 동안 출력 핀들 상의 출력값들을 체크한다.
테스트 벡터들은 일반적으로 마이크로제어기(10)의 설계자에 의해 생성된다. 이 테스트 벡터들은 임계 경로들(즉, 결과를 계산하는 데에 가장 긴 시간이 걸리는 논리 경로들)을 연습(exercise)하도록 생성될 수 있다. 다른 테스트 벡터들의 세트(이러한 테스트 벡터들의 세트는 종종 "기능 패턴들"이라 불린다)는 일반적으로 마이크로제어기(10)의 코어들의 기능을 체크한다.
도시된 실시예에서, 테스트 벡터들의 세트는 내부 메모리(30)에 대해 결함 테스트(즉, BIST)를 수행하도록 생성된다. 이러한 테스트 벡터들은 외부 버스(36)를 통한 프로세서 코어(16)로의 급송 명령(feeding instruction)을 포함한다. 이러한 명령들은 프로세서 코어(16) 내의 구성 레지스터들을 초기화하고, DMA 제어기(10)를 초기화하며, 그리고 DMA 요구 핀들에 결합된 PIO 핀을 표명함으로써 DMA 전송을 초기화한다. 도 2에 도시된 바와 같이, PIO 핀 (46) 및 DMA 요구 핀들(48 및 50)은 마이크로제어기(10)에 포함된다. (하기 설명되는 바와 같이) 테스트 벡터들을 생성하기 위해 수행되는 시뮬레이션 동안, PIO 핀(46)은 DMA 요구 핀들(48 및 50)에 결합되어 DMA 요구 핀들(48 및 50)의 표명을 제공한다. 그러나, 테스트 벡터들로 변환하는 동안, DMA 요구 핀들(48 및 50)은 입력 핀들로서 확인된다. 상기 테스터는 (PIO 핀(46)을 통해) 시뮬레이션에 의해 제공되는 적절한 값으로 상기 입력 핀을 구동(drive)한다. 내부 메모리(30)를 테스트하기 위한 테스트 벡터들은 또한 DMA 전송을 위한 기대 벡터들의 세트를 포함한다. 이러한 기대 벡터들은 내부 메모리(30)의 판독 및 기록의 결과가 정확하다(즉, 어떠한 결함들도 검출되지 않는다)는 것을 검증한다.
도 3은 DMA 제어 유닛(20) 및 내부 메모리(30)의 일 실시예를 보다 상세히 도시한다. 다른 실시예들이 고려될 수 있다. 도 3에 도시된 바와 같이, DMA 제어 유닛(20)은 DMA 제어 블록(60), 제 1 DMA 채널 레지스터들의 세트(62) 및 제 2 DMA 채널 레지스터들의 세트(64)를 포함한다. DMA 채널 블록(60)은 제 1 DMA 채널 레지스터들(62), 제 2 DMA 채널 레지스터들(64) 및 내부 버싱(34)에 연결된다. 또한, DMA 제어 블록(60)은 타이머 제어 유닛(18)으로부터의 타이머 라인(66), DMA 요구 핀(48)에 결합된 DRQ0 라인(68), 및 DMA 요구 핀(50)에 결합된 DRQ1 라인(70)을 수신한다. 마지막으로, DMA 제어 블록(60)은 인터럽트 제어 유닛(14)에 인터럽트 요구 라인들(72 및 74)을 제공한다. 인터럽트 요구 라인(72)은 제 1 DMA 채널에 대응하고, 인터럽트 요구 라인(74)은 제 2 DMA 채널에 대응한다.
도 3은 또한 내부 메모리 구성 레지스터(76)와 함께 내부 메모리(30)를 도시한다. 도시된 바와 같이, 내부 메모리 구성 레지스터(76)는 베이스 필드(78), 인에이블 비트(79) 및 판독 표시 비트(80)를 포함한다. 부가적인 구성 비트들이 또한 제공된다. 인에이블 비트(79)는 내부 메모리(30)를 인에이블/디스에이블시키는 데에 이용된다. 베이스 필드(78)는 마이크로제어기(30)의 어드레스 공간 내의 내부 메모리(30)의 베이스 어드레스 표시를 저장한다. 이 베이스 어드레스는 내부 메모리(30) 내의 최하위 저장 위치의 어드레스이다. 내부 메모리(30) 내의 다른 저장 위치들은 베이스 필드(78)에 저장된 베이스 어드레스 보다 수적으로 큰 값을 갖는 어드레스를 통해 위치된다. 본 실시예에서, 상기 베이스 어드레스는 마이크로제어기(10)의 어드레스 공간 내의 내부 메모리(30)의 사이즈에 대한 어드레스 경계로 정렬될 필요가 있다. 예를 들어, 본 발명의 일 실시예에 따르면, 마이크로제어기(10)의 어드레스 공간은 20 어드레스 비트(즉, 1 메가 바이트의 어드레스 공간)를 특징으로 하고, 내부 메모리(30)는 32 킬로 바이트의 저장 공간을 포함한다. 따라서, 내부 메모리(30)의 베이스 어드레스는 어드레스 공간 내의 32 킬로 바이트 경계(즉, 베이스 어드레스의 최하위 15비트가 0이다)로 정렬된다. 베이스 필드(76)는 0일 필요가 없는 어드레스 비트들(즉, 본 실시예에서는 최상위 5 비트들) 만을 저장하도록 구성된다. 판독 표시 비트(80)는 리셋시 토글(toggle)될 수 있는 하드웨어 핀에 부가하여, 마이크로제어기(10)의 판독 표시 모드를 정의한다. 판독 표시 비트(80)가 세트되면, 마이크로제어기(10)는 판독 표시 모드가 된다. 판독 표시 비트(80)가 클리어되면, 마이크로제어기(10)는 리셋시 하드웨어 핀의 표명에 의해 판독 표시 모드에 놓여지지 않는 한, 판독 표시 모드에 있지 않게 된다.
비교기 회로(82)는 내부 메모리 구성 레지스터(76)의 베이스 필드(78)와 내부 버싱(34)의 어드레스 부분 사이에 결합된다. 내부 버싱(34) 상에 제공되는 어드레스가 내부 메모리(30)의 어드레스 공간 내에 있다면, 비교기 회로(32)는 내부 칩 선택(ICS) 라인(84) 상의 ICS 신호를 내부 메모리(30)에 표명한다. 따라서, 내부 메모리(30)는 판독 데이터를 제공(판독 액세스)하거나 제공된 데이터를 저장(기록 액세스)함으로써 현재의 액세스에 응답하는 것으로 알려져있다. 예를 들어, DMA 제어 블록(60)이 DMA 전송 동안 내부 메모리(30)에 대해 판독 또는 기록 액세스를 수행한다면, ICS 신호가 표명된다.
일반적으로, DMA 제어 블록(60)은 내부 버싱(34)을 통해 판독 및 기록 액세스들을 수행하여, 제 1 DMA 채널 또는 제 2 DMA 채널에 의해 특정되는 DMA 전송을 완료한다. 버스 인터페이스 유닛(32)은 버스 사이클들을 외부적으로 구동한다. DMA 전송에 의해 전송되는 각 데이터 아이템(item)은 소스에 대한 판독 액세스 및 목적지에 대한 기록 액세스를 필요로 한다. 소스 어드레스는 각 액세스 후에 증분(increment) 또는 감분(decrement)되어, DMA 전송에서 연속하는 다음 데이터 아이템을 지정할 수 있다. 유사하게, 목적지 어드레스도 증분 또는 감분될 수 있다. 대안적으로, 소스 어드레스 또는 목적지 어드레스(또는 둘 모두)는 전송하는 동안 일정하게 유지될 수 있다. "데이터 아이템"은 전송되는 데이터의 한 아이템이다. 본 실시예에서, 데이터 아이템들은 바이트들 또는 워드들이 될 수 있다. 소정의 DMA 전송을 위한 데이터 아이템들의 사이즈는 전송을 수행하는 채널의 제어 레지스터에 특정된다. 또한, DMA 제어 블록(60)은 각 판독/기록 쌍의 실행시 채널에 대한 전송 카운트를 감분시킨다. 전송 카운트가 다하면, 제어 레지스터가 달리 지시하지 않는한, DMA 전송은 끝난다. DMA 전송이 완료되면, 인터럽트 요구 라인들(72 또는 74) 상에 인터럽트가 발생된다.
DMA 제어 블록(60)은, DMA 전송이 중복되는 시간 주기 동안 수행되는 경우, 각 DMA 채널들 간의 우선순위를 결정한다. 각 DMA 전송에 대한 제어 레지스터의 값들이 우선순위를 결정하는 것을 돕는다(즉, 높은 우선순위의 채널이 먼저 수행된다). DMA 전송들에 동일한 우선순위가 할당되면, 2개의 전송들의 판독/기록 액세스 쌍들이 인터리브된다. 양 채널들에 동일한 우선순위 레벨이 할당될 때 실행될 첫 번째 판독/기록 액세스 쌍을 결정하기 위해 제 2 DMA 채널이 보다 높은 우선순위로 디폴트된 후, 판독/기록 액세스 쌍의 인터리브가 수행된다(즉, 제 2 DMA 채널로부터 판독/기록 액세스 쌍이 수행된 후, 제 1 DMA 채널로부터 판독/기록 액세스 쌍이 수행된다). 특정값을 얻기 위한 소스로부터의 판독 액세스와 목적지로의 대응하는 기록 액세스의 판독/기록 액세스 쌍은 상기 특정값으로 목적지를 갱신한다.
본 실시예에서, 마이크로제어기(10)는 80C186 호환성이며, 각 데이터 아이템은 전송을 위해 적어도 8개의 클럭 사이클을 필요로 한다. 4개의 클럭 사이클은 판독 액세스에 이용되고, 4개의 클럭 사이클은 기록 액세스에 이용된다. 소스 또는 목적지가 대기 상태(wait state)를 필요로 한다면, 액세스당 클럭의 수가 증가하게 된다. 또한, DMA 전송이 목적지 동기라면, 부가적인 사이클들이 발생한다.
DMA 제어 블록(60)은 내부 버싱(34) 상에서의 레지스터들에 대한 기록 액세스들에 응답하여 제 1 DMA 채널 레지스터(62) 및 제 2 DMA 채널 레지스터(64)를 갱신하고, 판독 액세스들에 응답하여 레지스터의 내용을 제공한다. 제 1 DMA 채널 레지스터(62)는 제 1 DMA 채널을 정의하고, 제 2 DMA 채널 레지스터(64)는 제 2 DMA 채널을 정의한다. 제 1 DMA 채널 레지스터(62)는 제 1 DMA 소스 어드레스 레지스터(62A), 제 1 DMA 목적지 어드레스 레지스터(62B), 제 1 DMA 전송 카운트 레지스터(62C) 및 제 1 DMA 제어 레지스터(62D)를 포함한다. 유사하게, 제 2 DMA 채널 레지스터(64)는 제 2 DMA 소스 어드레스 레지스터(64A), 제 2 DMA 목적지 어드레스 레지스터(64B), 제 2 DMA 전송 카운트 레지스터(64C) 및 제 2 DMA 제어 레지스터(64D)를 포함한다. 제 1 DMA 채널 레지스터(62) 및 제 2 DMA 채널 레지스터(64) 각각에 어드레스가 할당되며, 대응하는 레지스터들을 판독 및 기록하기 위해 이 어드레스에 대한 판독 및 기록 액세스가 수행된다.
채널의 소스 어드레스 레지스터 및 목적지 어드레스 레지스터는 각각, DMA 전송 내의 데이터 아이템의 판독 액세스 및 기록 액세스 동안 제공되는 어드레스를 정의한다. 각 액세스에 이어서, 대응하는 어드레스는 대응하는 제어 레지스터의 값에 따라 증분되고, 감분되거나, 또는 수정되지 않는다. 전송 카운트 레지스터는 전송될 데이터 아이템들의 수를 저장한다.
채널에 대한 제어 레지스터는 수행될 DMA 전송의 세부사항을 특정한다. 구체적으로, 제어 레지스터는 (ⅰ) 전송의 동기 모드(즉, 비동기, 소스 동기, 또는 목적지 동기); (ⅱ) 데이터 아이템의 사이즈(즉, 바이트 또는 워드); (ⅲ) DMA 전송의 종결시 인터럽트를 발생시키는 지의 여부; (ⅳ) DMA 전송이 전송 카운트가 다했을 때 종결되는 지의 여부; (ⅴ) DMA 채널의 우선순위 레벨 (높은 우선순위 또는 낮은 우선순위); (ⅵ) 각 판독/기록 쌍 이후 소스 어드레스를 증분, 감분 또는 수정하지 않는 지의 여부; (ⅶ) 소스 어드레스가 메모리에 있는지, 아니면 I/O 공간에 있는 지의 여부; (ⅷ) 각 판독/기록 쌍 이후 목적지 어드레스를 증분, 감분, 또는 수정하지 않는 지의 여부; 그리고 (ⅸ) 소스 어드레스가 메모리에 있는지, 아니면 I/O 공간에 있는 지의 여부를 특정한다.
소정의 DMA 전송의 동기 모드가 비동기되면, DMA 전송은 대응하는 제어 레지스터의 갱신시 DMA 제어 블록(60)에 의해 초기화된다. 동기 모드가 소스 동기 또는 목적지 동기가 되면, DMA 제어 블록(60)은 대응하는 DMA 요구 신호(제 1 DMA 채널에 대해서는 DRQ0 라인(68), 제 2 DMA 채널에 대해서는 DRQ1 라인(70))의 표명시 DMA 전송을 초기화한다. 대안적으로, 타이머 라인(66)은 채널들을 위한 요구 라인으로서 이용될 수 있다.
도 4는 BIST 동작을 수행하기 위해 DMA 제어기(20)를 이용하여 내부 메모리(30)를 테스트하도록 수행되는 동작들을 나타낸 본 실시예에 따른 흐름도이다. 일련의 다른 동작들이 수행될 수 있으며, 배경 패턴들 및 이 배경 패턴들의 보수들의 판독 및 기록이 결함 테스트 기준을 만족시키도록 수행된다.
상기 테스트는 마이크로제어기(10)의 리셋시 시작된다. 따라서, 마이크로제어기(10)는 상기 테스트를 수행하는 데에 이용되는 상태로 초기화된다(단계 90). 특히, 특정한 칩 선택들이 마이크로제어기(10)의 어드레스 공간 내의 어드레스 범위들에 할당된다. 내부 메모리 구성 레지스터(76)에는 값이 제공되어, 내부 메모리(30)의 베이스 어드레스를 프로그램한다. 일 실시예에서는, 판독 표시 모드가 또한 인에이블된다. 이러한 방식으로, DMA 전송들의 판독 부분은, 내부 메모리(30)로 향할 때, 검증을 위해 마이크로제어기(10)의 핀들 상에 가시화된다. 제 1 칩 선택은 내부 메모리 범위 바로 아래의 어드레스 범위에 대해 프로그램된다(어드레스 범위가 다른 어드레스 범위 내의 어드레스들 보다 수적으로 적은 어드레스들을 포함한다면, 이 어드레스 범위는 상기 다른 어드레스 보다 아래가 된다). 내부 메모리(30)의 베이스 어드레스에 연속하며 이 베이스 어드레스의 아래인 어드레스는 테스트를 위해 선택된 배경 패턴을 저장하는 데에 이용되며, 이에 따라 상기 제 1 칩 선택이 이 메모리 범위에 대해 정의된다. 또한, 제 2 칩 선택은 (하기 설명되는 바와 같이) 테스트를 하는 동안 제 1 DMA 채널에 의해 이용되는 목적지인 내부 메모리(30) 외부의 어드레스를 포함하는 메모리 범위에 대해 정의된다. 베이스 어드레스에 연속하며 이 베이스 어드레스의 아래인 메모리 위치("배경 패턴 위치")는 테스트를 위해 선택된 배경 패턴으로 초기화된다. 마지막으로, PIO 핀(46)은 적절한 제어 레지스터들을 설정함으로써 출력 핀으로서 인에이블된다.
마이크로제어기(10)를 초기화한 후, DMA 제어 유닛(20)의 제 1 DMA 채널은 선택된 배경 패턴으로 내부 메모리(30)를 초기화하는 데에 이용된다(단계 92). 소스 어드레스는 배경 패턴 위치로 프로그램되고, 목적지 어드레스는 내부 메모리(30)의 베이스 어드레스로 프로그램된다. 전송 카운트는 내부 메모리(30)에 저장된 워드들의 수로 설정된다. 또한, DMA 전송은 비동기적으로 수행되어, 목적지 어드레스는 증분되고, 소스 어드레스는 일정하게 유지되며, 데이터 아이템은 워드 사이즈가 된다. 소스 어드레스 및 목적지 어드레스는 모두 메모리 공간 어드레스들로서 확인된다. 따라서, 선택된 배경 패턴이 배경 패턴 위치로부터 반복적으로 판독되어, 내부 메모리(30)의 다양한 메모리 위치들에 저장된다.
내부 메모리(30)의 초기화를 완료한 후, 배경 패턴 위치에 저장된 배경 패턴은 자신의 보수로 대체된다(단계 94). 선택된 배경 패턴을 보수화(complementing)함으로써, 하기 설명되는 바와 같이, 제 2 DMA 채널이 액세스할 상기 보수화된 배경 패턴이 제공된다.
상기 설명한 바와 같이, PIO 핀은 마이크로제어기(10)의 소프트웨어 모델에서 테스트를 시뮬레이션하는 동안 각 테스트 패스를 동시에 수행하도록 동작하는 2개의 DMA 전송들의 초기화를 동기화한다. 따라서, PIO 핀은 2개의 DMA 채널들을 구성하기 전에 비표명된다(단계 96). PIO 핀은 이 PIO 핀의 데이터에 대응하는 제어 레지스터를 비표명 상태로 설정함으로써 비표명된다. 주목할 사항으로서, 일반적으로 단계(96)는 어떠한 방법을 이용하여 DMA 요구 핀들(48 및 50)을 비표명시키는 단계를 포함한다.
제 1, 2 DMA 채널들은 PIO 핀을 비표명시킨 후 테스트 패스를 위해 구성된다(단계 98). 제 1 DMA 채널은 배경 패턴 위치의 소스 어드레스, 내부 메모리(30)의 베이스 어드레스의 목적지 어드레스, 및 내부 메모리(30) 내의 워드수의 전송 카운트로 초기화된다. 제 2 DMA 채널은 내부 메모리(30)의 베이스 어드레스의 소스 어드레스, 내부 메모리(30)의 내용들을 검증하는 데에 이용되는 외부 어드레스의 목적지 어드레스, 및 내부 메모리(30) 내의 워드수의 전송 카운트로 초기화된다. 또한, 제어 레지스터들은 모두 소스 동기, 소스 어드레스의 증가, 메모리 사이즈 내의 모든 어드레스들, 및 높은 우선순위 레벨로 초기화된다. 제 1 DMA 채널은 또한 목적지 어드레스를 증분시키도록 설정되고, 제 2 DMA 채널은 목적지 어드레스를 일정하게 유지하도록 설정된다.
제 2 DMA 채널은 각 메모리 위치에 현재 저장되어 있는 배경 패턴을 판독한 다음 이 패턴을 목적지 어드레스에 저장한다. 따라서, 제 2 DMA 전송은 배경 패턴이 내부 메모리(30) 내의 각 메모리 위치에 저장되고 이로부터 판독될 수 있음을 확인한다. 또한, 제 1, 2 DMA 전송들의 액세스들은 인터리브되기 때문에, 제 2 DMA 전송은 이웃하는 위치들이 배경 패턴의 보수로 갱신될 때 값들이 일정하게 유지된다는 것을 확인한다.
제 1 DMA 채널은 배경 패턴의 보수로 각 메모리 위치를 갱신한 다음 이러한 갱신을 확인하는 데에 이용된다. 제 1 DMA 전송은, 먼저 (단계 96에 의해 배경 패턴의 보수를 저장하고 있는) 배경 패턴 위치를 판독한 다음, 이 값을 내부 메모리(30)의 최하위 저장 위치(내부 메모리(30)의 베이스 어드레스에 의해 식별되는 저장 위치)에 저장하는 데에 이용된다. 계속되는 제 1 DMA 전송의 판독/기록 쌍 동안, 상기 최하위 저장 위치가 액세스되며(이에 따라, 상기 갱신을 확인한다), 두번째의 최하위 저장 위치(즉, 베이스 어드레스에 1개의 워드를 더한다)가 상기 액세스된 값으로 갱신된다.
DMA 채널들의 초기화를 완료한 후, PIO 핀(46)은 이 PIO 핀(46)의 데이터를 나타내는 제어 레지스터에, 표명된 조건을 나타내는 값을 저장함으로써 표명된다(단계 100). 이에 의해, DMA 요구 핀들(48 및 50)은 시뮬레이션으로 표명되고, DRQ0 라인들(68 및 70)은 DMA 제어 블록(60)에 의해 표명된 상태로 수신된다. 상기 설명한 바와 같이, DMA 채널들은 동일한 우선순위 레벨들로 프로그램된다. 요구들이 동시에 수신되고 우선순위 레벨들이 같기 때문에, DMA 제어 블록(60)은 디폴트로 제 2 DMA 채널을 먼저 시작한 다음, 제 1 DMA 채널과 제 2 MDA 채널을 교대시킨다. 따라서, 각 메모리 위치는 제 2 DMA 전송에 의해 판독되고, 제 1 DMA 전송에 의해 갱신된 다음, 제 1 DMA 전송에 의해 판독된다. 도 5 및 5A는 액세스들의 인터리빙을 보다 상세히 도시한다. 주목할 사항으로서, 단계(100)는 DMA 채널들 모두의 동시 요구를 제공한다. DMA 요구 핀들(48 및 50)에 신호들을 동시에 표명하는 어떠한 방법이 이용될 수 있다.
삭제
주목할 사항으로서, 본 실시예에서, 단계들(90 내지 100)은 마이크로제어기(10)의 핀들로부터 프로세서 코어(16)로 명령들을 전달함으로써 수행된다. 상기 명령들은 마이크로제어기(10)의 초기화, DMA 제어 유닛(20)의 구성, PIO 핀(46)의 표명 및 비표명, 그리고 선택된 배경 패턴의 변환 동작들을 수행하도록 실행된다.
테스트는 DMA 전송의 완료를 기다린다(결정 블록(102)). 마이크로제어기(10)의 일 실시예에서, DMA 동작은 프로세서 코어(16)로부터의 요구들 보다 높은 우선순위를 갖기 때문에, 결정 블록(102)을 수행하는 데에 명령들을 필요로 하지 않는다. 대신에, 몇개의 NOP 명령들이 명령 코드 시퀀스에 삽입되어, DMA 동작이 시작될 때 까지 프로세서 코어(16)를 점유하게 된다. 이후, 프로세서 코어(16)는 DMA 동작을 완료할 때 까지 자동으로 로크 아웃(lock out)된다. 프로세서 코어(16)가 버스 동작(bus activity)으로부터 자동으로 로크 아웃되지 않는 다면, 다른 해결책을 적용할 수 있다. 예를 들어, DMA 제어기들은 완료시 프로세서 코어(16)를 인터럽트하도록 구성될 수 있다. 이러한 경우, 프로세서 코어(16)는 무한 루프 내에 위치되어 결정 블록(102)을 수행한다. DMA 전송들을 완료하게 되면, 프로세서 코어(16)는 인터럽트에 의해 이후의 단계들로 진행할 수 있게 된다.
DMA 동작을 완료하게 되면, 결정 블록(104)이 실행된다. 선택된 배경 패턴에 대응하는 제 1 패스에 대한 DMA 동작이 완료되면, 내부 메모리(30)는 (단계 92 및 이후의 DMA 전송에 의해 그 내에 초기화되어 있는) 선택된 배경 패턴을 저장하는 것으로부터, (단계 98에서 프로그램된 DMA 채널에 의해 그 내에 저장되어 있는) 선택된 배경 패턴의 보수를 저장하는 것으로 변환된다. 이후, 단계들(94 내지 102)을 통해 제 2 패스가 수행되어, 내부 메모리(30)를 선택된 배경 패턴의 보수를 저장하는 것으로부터 선택된 배경 패턴을 저장하는 것으로 변환시킨다. 결정 블록(104)은 선택된 배경 패턴에 대해 제 2 패스가 수행되었는지의 여부를 나타낸다. 제 2 패스가 여전히 수행되어야 한다면, 단계들(94 내지 102)이 반복된다. 제 2 패스가 완료되면, 결정 블록(106)이 수행된다.
결정 블록(106)에서, 테스트는 내부 메모리(30)의 테스트를 위해 특정된 모든 배경들이 수행되었는 지를 결정한다. 일 실시예에서는, 내부 메모리(30)의 완전한 BIST를 수행하는 데에 5개의 배경 패턴들을 이용한다. 이러한 값은 16진 워드들: 0000, 3333, 5555, 00ff 및 0f0f로 리스트된다. 모든 패턴들이 수행되면, 테스트가 끝난다. 수행되어야 할 패턴들이 남아있다면, 새로운 패턴이 선택되고(단계 108), 이 새로운 패턴에 대해 단계들(92 내지 106)이 반복된다.
주목할 사항으로서, 테스트 벡터들이 도 4의 흐름도에 따라 발생되는바, 이러한 테스트 벡터들은 마이크로제어기(10)에 적용된다. 이에 따라, 단계들(90 내지 100)을 수행하는 데에 이용되는 명령들이 마이크로제어기(10)에 테스트 벡터 입력들로서 제공된다. 또한, DMA 전송의 정확한 동작(즉, 데이터가 기대한 바와 같다는 확인)은 DMA 전송의 적절한 동작에 대응하는 테스트 벡터 기대 출력들에 의해 확인된다. 메모리 위치에 결함이 있다면, 테스터는 기대값과 실제값 사이의 차이에 주목한다.
주목할 사항으로서, 상기 흐름도의 단계들(94 내지 102)을 통한 패스들은 단계(98)의 제 1, 2 DMA 전송들에 의해 내부 메모리(30)의 어드레스를 증분시킴으로써 수행된다. 그러나, 다양한 패스들에서 어드레스들의 증분 및 감분을 수행하는 다른 실시예들이 고려될 수 있다. 예를 들어, 어드레스들은 선택된 패턴에 대한 제 1 패스 동안에는 증분되고, 제 2 패스 동안에는 감분될 수 있다(즉, 내부 메모리(30)의 최상위 메모리 위치로부터 최하위 메모리 위치로 진행한다).
도 5는 도 4의 흐름도에 의해 설명되는 테스트가 수행되는 시간 간격의 다양한 포인트들 동안, 내부 메모리(30) 내의 연속적인 메모리 위치들(N 및 N+1)의 쌍을 도시한다. 메모리 위치들 내에는 그 메모리 위치에 대해 수행되는 판독 및 기록 동작들이 표시된다. 이러한 동작의 첫 번째 글자는 판독("R") 또는 기록("R")이다. 나머지 2개의 글자들 및 아포스트로피(')의 유무는 판독 또는 기록된 값을 나타낸다. 선택된 배경 패턴("BG") 또는 선택된 배경 패턴의 보수("BG'")중 하나가 판독 또는 기록된다. 또한, 이러한 동작들은 이들의 실행의 시간 순서로 각 위치 내에 리스트된다.
참조 부호들(120 및 122)은 선택된 배경 패턴으로 초기화된 후 메모리 위치들(N 및 N+1)을 나타낸다. 따라서, 각 위치는 선택된 배경 패턴으로 기록된다(WBG). 참조 부호들(124 및 126)은 (각각) 제 1 DMA 채널이 메모리 위치(N)를 액세스한 후의 메모리 위치들(N 및 N+1)을 나타낸다. 따라서, 선택된 배경 패턴이 메모리 위치(N)로부터 판독된다(RBG). 참조 부호들(128 및 130)은 (각각), 제 1 DMA 채널이 보수화된 배경 패턴으로 위치(N)를 갱신하고(WBG') 제 2 DMA 채널이 위치(N+1)를 액세스한(RBG) 후의 메모리 위치들(N 및 N+1)을 나타낸다. 유사하게, 참조 부호들(132 및 134)은, 제 1 DMA 채널이 위치(N)를 액세스하고 위치(N+1)를 갱신한 후의 메모리 위치들(N 및 N+1)을 나타낸다. 그리고, 참조 부호들(136 및 138)은 제 1 DMA 채널이 위치(N+1)를 액세스한 후의 메모리 위치들(N 및 N+1)을 나타낸다.
도 5에 도시된 바와 같이, 제 1 DMA 채널은 내부 메모리(30)의 메모리 위치들을 통해 제 2 DMA 채널의 뒤를 따른다. 도 4의 흐름도의 단계(92)에 대응하는 DMA 초기화 및 단계(98)에 대응하는 1세트의 DMA 전송들이 완료되면, 각 저장 위치가 배경 패턴으로 기록되고(WBG), 배경 패턴이 확인을 위해 판독되며(RBG), 배경 패턴의 보수가 기록되고(WBG'), 그리고 배경 패턴의 보수가 확인을 위해 판독된다(RBG'). 또한, DMA 전송들의 인터리빙으로 인해, 선택된 배경 패턴의 확인을 위해 판독되는 메모리 위치에 인접하는 메모리 위치들은 선택된 배경 패턴의 보수로 갱신된다(예를 들어, 참조 부호들(128 및 130)에서, 메모리 위치(N+1)가 RBG를 수신하기 전에, 메모리 위치(N)가 WBG'를 수신한다).
도 5A는 단계(98)에서 프로그램된 DMA 전송들 동안 내부 버싱(34) 그리고/또는 외부 버스(36) 상에 시간 순서로 나타나는 판독 및 기록 액세스들을 도시한다. 다른 순서들도 고려할 수 있다. 도 5A는 또한 도 5에 도시된 DMA 전송들의 인터리빙을 도시한다. 화살표(140)는 임의 유닛들에서의 정방향으로의 시간의 진행을 나타낸다.
도 5A에 도시된 바와 같이, 제 2 DMA 채널은 메모리 위치("N")로의 판독 액세스(141)를 수행한 다음, 외부 어드레스로의 기록 액세스(142)를 수행한다. 이에 의해, 위치(N)에 대한 배경 패턴이 확인된다. 이후, 제 1 DMA 채널은 위치(N-1)(즉, 위치(N)에 인접하며 이 위치(N) 보다 수적으로 작은 어드레스를 갖는 위치)로의 판독 액세스(144)를 수행한 다음, 위치(N)로의 기록 액세스(146)를 수행한다. 이에 따라, 위치(N)는 (도 5A에는 도시하지 않았지만, 제 1 DMA 채널로부터의 이전의 판독/기록 쌍에 의해 위치(N-1)에 저장된) 배경 패턴의 보수로 갱신된다. 이후, 제 2 DMA 채널에 의한 판독 액세스(148)가 위치(N+1)에 대해 수행된다. 이에 따라, 이 위치(N+1)는, 인접하는 위치(N)를 배경 패턴의 보수로 갱신한 후, 배경 패턴의 확인을 위해 판독된다.
주목할 사항으로서, 제 1 DMA 채널이 위치(N)를 갱신하기 전에 제 2 DMA 채널이 이 위치(N)를 액세스하는 한, 도 5A에 도시된 액세들의 다른 순서들을 고려할 수 있다. 예를 들어, 기록 액세스(142) 및 판독 액세스(144)의 순서를 바꿀 수 있다.
다음으로, 도 6은 선택된 특정 배경에 대해 도 4의 2개의 패스들을 진행하는 동안 다양한 포인트들에서의 마이크로제어기(10)의 어드레스 공간을 도시한다. 어드레스 공간들(150A, 150B, 150C 및 150D)이 도시되는바, 이들은 각각 2개의 테스트 패스를 실행하는 동안 다양한 포인트들에서의 메모리의 상태를 도시한다. 최하위 어드레스(어드레스 "0")는 각 어드레스 공간(150)의 최하부에 도시되고, 최상위 어드레스는 각 어드레스 공간(150)의 최상부에 도시된다. 각 어드레스 공간(150)은 내부 메모리(30)에 대응하는 제 1 영역(152)(예를 들어, 베이스 어드레스와 이 베이스 어드레스에 내부 메모리(30)의 사이즈를 더한 것과의 사이)과, 상기 베이스 어드레스에 의해 식별되는 저장 위치에 연속적이며 이 저장 위치의 아래에 있는 메모리 위치에 대응하는 제 2 영역(154)(즉, 배경 패턴 위치)을 포함한다. 부호 "BG"는 테스트를 위해 선택된 배경 패턴을 저장하는 위치 또는 위치들을 나타낸다. 부호 "BG'"는 선택된 배경 패턴의 보수를 저장하는 위치 또는 위치들을 나타낸다.
어드레스 공간(150A)은, 내부 메모리(30)를 초기화한 후, 하지만 테스트의 제 1 패스를 시작하기 전의 메모리의 상태를 도시한다. 따라서, 영역(152)은 선택된 배경 패턴을 포함하고, 영역(154)은 선택된 배경 패턴의 보수를 포함한다. 어드레스 공간(150B)은 선택된 배경 패턴에 대한 테스트의 제 1 패스 동안의 메모리의 상태를 도시한다. 영역(152)의 일부는 배경 패턴의 보수의 저장하도록 변환되고, 나머지 부분은 계속하여 배경 패턴을 저장한다. 어드레스 공간(150C)은, 제 1 패스를 완료한 후, 하지만 DMA 전송들의 제 2 패스를 시작하기 전의 메모리의 상태를 도시한다. 영역(152)은 배경 패턴의 보수로 완전히 변환된다. 또한, 제 2 패스의 단계(94)를 통해, 영역(154)은 선택된 배경 패턴을 저장한다. 어드레스 공간(150D)은 제 2 패스가 동작하는 동안의 메모리의 상태를 도시한다. 영역(152)의 일부는 선택된 배경 패턴으로 변환되고, 제 2 부분은 선택된 배경 패턴의 보수를 여전히 저장한다. 제 2 패스가 완료되면, 영역(152)은 선택된 배경 패턴을 각 메모리 위치에 다시 저장한다. 주목할 사항으로서, 도 6은 내부 메모리(30)가 어떠한 결함도 포함하지 않는 경우의 메모리 상태를 도시한다. 내부 메모리가 결함을 포함한다면, 어드레스 공간들(150A 내지 150D)로 나타낸 메모리의 상태는 도 6에 도시된 것과 달라지게 된다. 이렇게 되면, 테스터가 에러를 검출하게 되고, 테스트에 실패하게 된다.
도 5, 5A 및 6에 도시된 바와 같이, 제 1, 2 DMA 전송 내에서 이용되는 알고리즘은 13N 테스트 알고리즘의 목표를 달성한다. 특히, 이 알고리즘은 메모리 셀들에 대해, 각 메모리 셀은 배경 패턴 및 배경 패턴의 보수로 판독 및 기록되고, 다른 메모리 셀들 각각은 배경 패턴 또는 배경 패턴의 보수를 저장한다는 것을 확인한다.
도 7은 도 4의 흐름도에 의해 도시된 테스트를 위해 테스트 벡터들을 형성하는 방법을 도시한다. 일반적으로, 이러한 테스트 벡터들은, 마이크로제어기(10)의 소프트웨어 모델에 대해 테스트를 시뮬레이션하고, 시뮬레이션 결과를 포착한 다음, 이 결과를 테스트 벡터들로 변환시킴으로써 생성된다. 마이크로제어기(10)의 소프트웨어 모델은 기대 결과들을 발생시키는바, 정확하게 기능하도록 제조된 마이크로제어기(10)가 동일한 결과를 발생시킨다. 포착된 시뮬레이션 결과들은 시뮬레이션의 각 클럭 사이클 동안 마이크로제어기(10)의 각 핀들에서의 값들을 포함한다. 이후, 클럭 사이클 동안 어느 핀들이 입력들이고 어느 핀들이 출력들인지를 인식하면서 이러한 값들을 테스트 벡터들로 변환한다.
불행히도, 내부 메모리(30) 전체에 대해 DMA 전송들을 시뮬레이션하기 위해서는 많은 시뮬레이션 시간이 필요하다. 예를 들어, 본 실시예에서는, 32 킬로 바이트의 내부 메모리(30)가 이용되고, DMA 전송들의 각 판독/기록 쌍은 8 사이클을 이용한다. 워드들이 2바이트인 경우, 32 킬로 바이트의 내부 메모리(30)는 16k 워드를 포함한다. 내부 메모리(30)를 통한 초기화 패스는 하나의 DMA 채널에 의해 128k(8*16k)의 클럭 사이클을 점유하면서 수행된다. 이후, 메모리(30)를 통한 제 1 테스트 패스가 256k(2*8*16k)의 클럭 사이클 동안 양쪽 채널들을 모두 이용하여 수행된다. 이어서, 제 2 테스트 패스가 256k(2*8*16k)의 클럭 사이클 동안 두 채널들을 다시 이용하여 내부 메모리(30)를 스위프(sweep)한다. 따라서, 하나의 배경 패턴을 테스트하기 위해서는, 총 640k의 클럭 사이클이 필요하다. 마이크로제어기(10)를 초기화하기 위해서는, 적은 수의 부가적인 클럭 사이클이 필요하다. 따라서, 이러한 많은 수의 클럭 사이클에 대한 시뮬레이션 시간은 바람직하지 못하다. 또한, 테스트 벡터들의 수가, 테스터(42)가 1회의 테스트에 대해 저장하도록 구성되는 테스트 벡터들의 최대수를 넘을 수 있다.
도 7에 도시된 흐름도는 DMA 전송 전체를 시뮬레이션하는 것에 대한 대안이다. 이 흐름도는, 일단 DMA 전송이 시작되면, 테스트는 DMA 전송의 어드레스들을 증가시키면서 이루어지는 판독 및 기록 동작들의 반복 패턴이 되지만, 동일한 데이터 패턴이 전송된다는 장점을 갖는다. DMA 전송 전체를 시뮬레이션하는 대신, 소수의 전송 카운트 만이 시뮬레이션을 위해 DMA 전송의 각 채널에 프로그램된다(단계 160). 본 실시예에서는, 각 DMA 전송에 대해 2개의 판독/기록 쌍들이 시뮬레이션된다. 소수의 전송에 대한 시뮬레이션 결과는 이후 테스트 벡터들로 변환된다(단계 162).
단계(162)에 의해 생성된 테스트 벡터들은 제조된 마이크로제어기(10)에 대해 실행되는 것이 바람직한 테스트를 나타내도록 수정된다 (단계 164). 특히, 다음과 같은 수정이 이루어진다.
(ⅰ) 내부 메모리(30) 내의 데이터 아이템들의 수의 전송 카운트(예를 들어, 본 실시예에서는 16k)를 제공하도록 전송 카운트를 갱신하는 명령을 수정한다.
(ⅱ) DMA 전송 동안에는 어드레스 핀들을 "무시(don't care)"한다. 왜냐하면, 이러한 핀들은 시뮬레이션에 반영되지 않는 방식으로 증분되기 때문이다. 이러한 핀들이 무시되기 때문에, 테스터는 핀들의 상태를 확인하려 하지 않을 것이다. 데이터가 내부 메모리(30)의 정확한 동작을 확인하기 때문에, 어드레스들을 무시하더라도 어떠한 BIST 테스트 정보도 손실되지 않는다.
(ⅲ) 테스트에서 실제로 수행되는 DMA 전송들의 수에 이를 때 까지, DMA 전송들에 대응하는 테스트 벡터들을 "반복한다(replicate)"(예를 들어, 본 실시예에서는, 각 DMA 전송에 대해, 2개의 판독/기록 쌍들중 하나를 16k 반복한다). 상기 2개의 판독/기록 쌍들이 시뮬레이션에 제공되어, 반복될 반복 패턴을 나타낸다.
주목할 사항으로서, 수정 (ⅲ)은 DMA 전송들에 대응하는 테스트 벡터들의 세트에 대해 테스터(42)를 루프(loop)시킴으로써 수행된다. 다시 말해, 테스트 벡터의 동일한 세트가 테스터에 의해 반복적으로 적용된다. 이러한 방식으로, 전체 테스트를 여전히 수행하면서, 테스트 벡터들의 수를 감소시킨다.
다음으로, 도 8은 도 3과 유사한 블록도로서, 레지스터들은 예시적인 테스트에 따라 도 4의 흐름도의 단계(98)에 대해 프로그램된다. 예시적인 테스트는, 80C186과 호환성인, 특히 캘리포니아 서니베일에 소재하는 어드밴스드 마이크로 디바이스시즈 인코포레이티드로부터 입수할 수 있는 AM186EM과 호환성인 마이크로제어기(10)의 실시예에 대한 것이다. 도 8에 도시된 예시적인 테스트를 위해 실행되는 명령들을, 1개의 선택된 패턴의 2개의 패스들과 관련하여 아래에 리스트하였다. 코드를 확장하여, 패턴들을 메모리에 저장하고, 카운터를 이용하여 패턴들을 선택하고, 선택된 패턴들의 수와 동일한 횟수로 코드를 루프시킴으로써, 선택된 모든 패턴들에 대한 패스를 수행한다. 주목할 사항으로서, 도 8에 도시된 "0x"로 시작하는 값은 16진수 값들이다. 왜냐하면, 이러한 값들은 "C" 프로그래밍 언어의 표기법에 따라 표현되기 때문이다.
하기의 코드 리스팅은 도 8에 대응하는 예시적인 테스트이다. 이러한 리스팅은 볼드체의 end_listing으로 끝난다.
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
주목할 사항으로서, 예시적인 코드에는 몇 개의 라벨들이 이용된다. 하기의 표 1은 이러한 라벨들 및 그에 대응하는 16 진수 값들을 리스트한 것이다.
주목할 사항으로서, 본 발명은 다양한 신호들의 표명에 대해 설명한다. 본원에서, 어떠한 신호가 특정한 조건을 나타내는 값을 전달한다면, 이 신호는 "표명"된다. 반대로, 어떠한 신호가 특정한 조건이 없음을 나타내는 값을 전달한다면, 이 신호는 "비표명"된다. 신호가 논리 "0" 값을 전달할 때, 또는 반대로 논리 "1" 값을 전달할 때, 이 신호는 표명되는 것으로 정의된다. 또한, 주목할 사항으로서, 상기 실시예에서는 마이크로프로세서가 이용되었지만, 본 발명은 집적 메모리 및 DMA 제어기를 갖는 어떠한 집적 회로에서도 이용될 수 있다.
상기 개시에 따르면, 집적 DMA 제어기를 갖는 집적 회로의 집적 메모리를 테스트하는 방법이 개시된다. 이 방법은 DMA 제어기를 이용하여 BIST 테스트 기능을 수행한다. 따라서, BIST 논리가 집적 회로로부터 제거될 수 있다. 유익하게는, BIST가 차지하는 반도체 영역을 절약할 수 있다. 또한, 종래에는 BIST를 포함했던 메모리의 구조가 단순화되어, 액세스 시간을 감소시킨다.
본 개시의 이득을 갖는 당업자에게, 개시되어 설명된 본 발명의 형태가 본 발명의 예시적인 바람직한 실시예들로서 취해진 것임은 자명하다. 청구 범위에서 설명되는 본 발명의 정신 및 범위를 벗어나지 않으면서 다양한 수정들 및 변형들이 이루어질 수 있다. 하기의 청구 범위는 이러한 모든 수정들 및 변형들을 포함하는 것으로 의도된다.
Claims (23)
- 집적 DMA 제어기를 갖는 집적 회로의 메모리 테스트 방법에 있어서,상기 메모리를 포함하는 복수의 저장 위치들을 소정값으로 초기화하는 단계와;상기 복수의 저장 위치들 각각을 액세스하기 위해 상기 DMA 제어기에서 제 1 DMA 전송을 수행하는 단계와; 그리고상기 복수의 저장 위치들 각각을 상기 소정값의 보수로 갱신하기 위해, 상기 DMA 제어기에서 제 2 DMA 전송을 수행하는 단계를 포함하는 것을 특징으로 하는 집적 회로의 메모리 테스트 방법.
- 제 1 항에 있어서,상기 초기화하는 단계는 상기 복수의 저장 위치들 각각을 상기 소정값으로 갱신하기 위해 상기 DMA 제어기에서 제 3 DMA 전송을 수행하는 단계를 포함하는 것을 특징으로 하는 집적 회로의 메모리 테스트 방법.
- 제 1 항에 있어서,상기 DMA 제어기는 제 1 DMA 채널 및 제 2 DMA 채널을 포함하는 것을 특징으로 하는 집적 회로의 메모리 테스트 방법.
- 제 3 항에 있어서,상기 제 1 DMA 채널은 상기 제 1 DMA 전송을 수행하고, 상기 제 2 DMA 채널은 상기 제 2 DMA 전송을 수행하는 것을 특징으로 하는 집적 회로의 메모리 테스트 방법.
- 제 4 항에 있어서,상기 제 1 DMA 전송을 수행하는 단계 및 상기 제 2 DMA 전송을 수행하는 단계는 동시에 수행되는 것을 특징으로 하는 집적 회로의 메모리 테스트 방법.
- 제 5 항에 있어서,상기 제 1 DMA 전송 및 상기 제 2 DMA 전송은 소스 동기되는 것을 특징으로 하는 집적 회로의 메모리 테스트 방법.
- 제 5 항에 있어서,상기 집적 회로의 제 1 DMA 요구 핀 상에 제 1 신호를 표명하는 단계 및 이와 동시에 상기 집적 회로의 제 2 DMA 요구 핀을 표명하는 단계를 더 포함하며, 상기 제 1 DMA 요구 핀은 상기 제 1 DMA 채널에 대응하고, 상기 제 2 DMA 요구 핀은 상기 제 2 DMA 채널에 대응하는 것을 특징으로 하는 집적 회로의 메모리 테스트 방법.
- 제 1 항에 있어서,상기 제 1 DMA 전송의 목적지는 상기 메모리 외부의 제 2 저장 위치인 것을 특징으로 하는 집적 회로의 메모리 테스트 방법.
- 제 1 항에 있어서,상기 제 2 DMA 전송을 수행하는 단계는, 상기 복수의 저장 위치들중 첫 번째 저장 위치를 액세스하여 제 1 값을 얻는 단계, 및 상기 제 1 값으로 상기 제 2 저장 위치를 갱신하는 단계를 포함하는 것을 특징으로 하는 집적 회로의 메모리 테스트 방법.
- 제 9 항에 있어서,상기 제 2 DMA 전송을 수행하는 단계는, 상기 메모리 외부의 저장 위치를 액세스하여 상기 소정값의 보수를 얻는 단계, 및 상기 소정값의 보수로 상기 복수의 저장 위치들중 상기 첫 번째 저장 위치를 갱신하는 단계를 더 포함하는 것을 특징으로 하는 집적 회로의 메모리 테스트 방법.
- 제 10 항에 있어서,상기 메모리 외부의 저장 위치를 액세스하는 단계는 상기 복수의 저장 위치들중 첫 번째 저장 위치를 액세스하는 단계 이전에 수행되어, 상기 제 1 값이 상기 소정값의 보수를 포함하는 것을 특징으로 하는 집적 회로의 메모리 테스트 방법.
- 제 1 항에 있어서,상기 복수의 저장 위치들 각각을 액세스하기 위해 상기 DMA 제어기에서 제 4 DMA 전송을 수행하는 단계를 더 포함하는 것을 특징으로 하는 집적 회로의 메모리 테스트 방법.
- 제 12 항에 있어서,상기 복수의 저장 위치들 각각을 상기 소정값으로 갱신하기 위해 상기 DMA 제어기에서 제 5 DMA 전송을 수행하는 단계를 더 포함하는 것을 특징으로 하는 집적 회로의 메모리 테스트 방법.
- 제 13 항에 있어서,상기 소정값과 다른 제 2 소정값 및 상기 소정값의 보수와 다른 상기 제 2 소정값의 제 2 보수에 대해, 상기 제 1 DMA 전송, 상기 제 2 DMA 전송, 상기 제 4 DMA 전송 및 상기 제 5 DMA 전송을 반복하는 단계를 더 포함하는 것을 특징으로 하는 집적 회로의 메모리 테스트 방법.
- 제 1 항에 있어서,상기 초기화 단계, 상기 제 1 DMA 전송을 수행하는 단계 및 상기 제 2 DMA 전송을 수행하는 단계는 테스터에 의해 제공되는 복수의 테스트 벡터들에 응답하여 수행되는 것을 특징으로 하는 집적 회로의 메모리 테스트 방법.
- 제 1 항에 기재된 방법에 의해 테스트되는 집적 회로.
- 집적 회로에 있어서,상기 집적 회로에 집적되는 복수의 저장 위치들을 포함하는 메모리와; 그리고상기 메모리에 결합된 DMA 유닛을 포함하여 구성되며,여기서, 상기 DMA 유닛은 상기 복수의 저장 위치들 각각을 소정값으로 갱신하기 위해 제 1 DMA 전송을 수행함과 아울러, 상기 복수의 저장 위치들 각각을 액세스하기 위해 제 2 DMA 전송을 수행하며, 상기 DMA 유닛은 이 DMA 유닛에 포함된 제 1 및 제 2 DMA 채널(62, 64)의 이용을 토대로 하여 메모리 테스트를 수행하는 수단(76)을 포함하는 것을 특징으로 하는 집적회로.
- 삭제
- 제 18 항에 있어서,상기 DMA 유닛은 상기 제 1 DMA 채널 및 제 2 DMA 채널을 이용하여 상기 제 1 DMA 전송 및 제 2 DMA 전송을 동시에 수행하는 것을 특징으로 하는 집적 회로.
- 제 19 항에 있어서,상기 제 1 DMA 전송은 상기 메모리 외부의 저장 위치에 대한 제 1 액세스를 포함하여 상기 소정값을 얻는 것을 특징으로 하는 집적 회로.
- 제 20 항에 있어서,상기 제 1 DMA 전송은 상기 복수의 저장 위치들중 첫 번째 저장 위치에 대한 제 1 갱신을 포함하며, 상기 제 1 갱신은 상기 복수의 저장 위치들중 상기 첫 번째 저장 위치에 상기 소정값을 제공하는 것을 특징으로 하는 집적 회로.
- 제 21 항에 있어서,상기 제 1 DMA 전송은 상기 복수의 저장 위치들중 상기 첫 번째 저장 위치에 대한 제 2 액세스, 및 이후 상기 복수의 저장 위치들중 두 번째 저장 위치에 대한 제 2 갱신을 포함하며, 이에 의해 상기 복수의 저장 위치들중 상기 제 2 저장 위치에 상기 소정값이 제공되는 것을 특징으로 하는 집적 회로.
- 제 22 항에 있어서,상기 DMA 유닛은, 상기 복수의 저장 위치들중 상기 첫 번째 저장 위치에 대한 상기 제 1 갱신 이전에, 상기 제 2 DMA 전송 대신 상기 복수의 저장 위치들중 상기 첫 번째 저장 위치에 대해 제 3 액세스를 수행하는 것을 특징으로 하는 집적 회로.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/696,734 | 1996-08-14 | ||
US08/696,734 US5668815A (en) | 1996-08-14 | 1996-08-14 | Method for testing integrated memory using an integrated DMA controller |
US8/696,734 | 1996-08-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20000029997A KR20000029997A (ko) | 2000-05-25 |
KR100488232B1 true KR100488232B1 (ko) | 2005-05-10 |
Family
ID=24798312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-1999-7001269A KR100488232B1 (ko) | 1996-08-14 | 1997-05-29 | 집적 dma 제어기를 이용한 집적 메모리 테스트 방법 |
Country Status (6)
Country | Link |
---|---|
US (1) | US5668815A (ko) |
EP (1) | EP0978124B1 (ko) |
JP (1) | JP2001510611A (ko) |
KR (1) | KR100488232B1 (ko) |
DE (1) | DE69714472T2 (ko) |
WO (1) | WO1998007163A1 (ko) |
Families Citing this family (68)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7338915B1 (en) | 1995-09-08 | 2008-03-04 | Rice University | Ropes of single-wall carbon nanotubes and compositions thereof |
US5958072A (en) * | 1997-01-13 | 1999-09-28 | Hewlett-Packard Company | Computer-system processor-to-memory-bus interface having repeating-test-event generation hardware |
US6047347A (en) * | 1997-02-04 | 2000-04-04 | Advanced Micro Devices, Inc. | Computer system with programmable bus size |
US5896549A (en) * | 1997-02-04 | 1999-04-20 | Advanced Micro Devices, Inc. | System for selecting between internal and external DMA request where ASP generates internal request is determined by at least one bit position within configuration register |
US6327640B1 (en) * | 1997-03-07 | 2001-12-04 | Advanced Micro Devices, Inc. | Overlapping peripheral chip select space with DRAM on a microcontroller with an integrated DRAM controller |
US5991213A (en) * | 1997-04-30 | 1999-11-23 | Texas Instruments Incorporated | Short disturb test algorithm for built-in self-test |
US5953272A (en) * | 1997-04-30 | 1999-09-14 | Texas Instruments Incorporated | Data invert jump instruction test for built-in self-test |
US6076180A (en) * | 1997-06-23 | 2000-06-13 | Micron Electronics, Inc. | Method for testing a controller with random constraints |
US6237123B1 (en) * | 1997-10-07 | 2001-05-22 | Lucent Technologies Inc. | Built-in self-test controlled by a token network and method |
KR100238256B1 (ko) * | 1997-12-03 | 2000-01-15 | 윤종용 | 직접 억세스 모드 테스트를 사용하는 메모리 장치 및 테스트방법 |
KR100265760B1 (ko) * | 1997-12-03 | 2000-09-15 | 윤종용 | 직접엑세스모드테스트제어회로를구비하는고속반도체메모리장치및테스트방법 |
KR19990069337A (ko) * | 1998-02-06 | 1999-09-06 | 윤종용 | 복합 반도체 메모리장치의자기 테스트 회로 및 이를 이용한 자기 테스트 방법 |
US6178549B1 (en) * | 1998-03-12 | 2001-01-23 | Winbond Electronics Corporation | Memory writer with deflective memory-cell handling capability |
US6473780B1 (en) * | 1998-04-01 | 2002-10-29 | Intel Corporation | Scheduling of direct memory access |
JP2000011691A (ja) | 1998-06-16 | 2000-01-14 | Mitsubishi Electric Corp | 半導体試験装置 |
US6925589B1 (en) | 1998-10-29 | 2005-08-02 | International Business Machines Corporation | Method for translating physical cell-coordinates of a memory product to n-dimensional addresses |
US6260082B1 (en) * | 1998-12-23 | 2001-07-10 | Bops, Inc. | Methods and apparatus for providing data transfer control |
US6427216B1 (en) * | 1999-03-11 | 2002-07-30 | Agere Systems Guardian Corp. | Integrated circuit testing using a high speed data interface bus |
US7457896B1 (en) * | 1999-08-25 | 2008-11-25 | Seagate Technology Llc | Automated register data transfer to reduce processing burden on a processing device |
US6510530B1 (en) * | 1999-09-23 | 2003-01-21 | Nortel Networks Limited | At-speed built-in self testing of multi-port compact sRAMs |
US6851047B1 (en) | 1999-10-15 | 2005-02-01 | Xilinx, Inc. | Configuration in a configurable system on a chip |
US6745321B1 (en) * | 1999-11-08 | 2004-06-01 | International Business Machines Corporation | Method and apparatus for harvesting problematic code sections aggravating hardware design flaws in a microprocessor |
US6732234B1 (en) * | 2000-08-07 | 2004-05-04 | Broadcom Corporation | Direct access mode for a cache |
US6748492B1 (en) | 2000-08-07 | 2004-06-08 | Broadcom Corporation | Deterministic setting of replacement policy in a cache through way selection |
US6848024B1 (en) * | 2000-08-07 | 2005-01-25 | Broadcom Corporation | Programmably disabling one or more cache entries |
US6587982B1 (en) * | 2000-09-05 | 2003-07-01 | Advanced Micro Devices, Inc. | Method of micro-architectural implementation of interface between bist state machine and tester interface to enable bist cycling |
US6484273B1 (en) * | 2000-11-29 | 2002-11-19 | Lsi Logic Corporation | Integrated EJTAG external bus interface |
US6748495B2 (en) | 2001-05-15 | 2004-06-08 | Broadcom Corporation | Random generator |
US7418642B2 (en) * | 2001-07-30 | 2008-08-26 | Marvell International Technology Ltd. | Built-in-self-test using embedded memory and processor in an application specific integrated circuit |
US6948096B2 (en) * | 2001-07-31 | 2005-09-20 | Intel Corporation | Functional random instruction testing (FRIT) method for complex devices such as microprocessors |
US7107374B1 (en) | 2001-09-05 | 2006-09-12 | Xilinx, Inc. | Method for bus mastering for devices resident in configurable system logic |
EP1333380A1 (en) * | 2002-01-30 | 2003-08-06 | STMicroelectronics Limited | DMA access generator |
US7266587B2 (en) * | 2002-05-15 | 2007-09-04 | Broadcom Corporation | System having interfaces, switch, and memory bridge for CC-NUMA operation |
US20040015755A1 (en) * | 2002-07-22 | 2004-01-22 | Finisar Corporation | Scalable scatter/gather I/O testing tool |
US7114106B2 (en) | 2002-07-22 | 2006-09-26 | Finisar Corporation | Scalable network attached storage (NAS) testing tool |
US7062678B2 (en) * | 2002-08-06 | 2006-06-13 | Lsi Logic Corporation | Diagnostic memory interface test |
JP4179827B2 (ja) * | 2002-08-30 | 2008-11-12 | Necエレクトロニクス株式会社 | メモリのテスト回路 |
US7249308B2 (en) * | 2003-04-21 | 2007-07-24 | International Business Machines Corporation | Algorithm to test LPAR I/O subsystem's adherence to LPAR I/O firewalls |
US20040216018A1 (en) * | 2003-04-28 | 2004-10-28 | Cheung Kam Tim | Direct memory access controller and method |
JP2005070949A (ja) * | 2003-08-21 | 2005-03-17 | Sanyo Electric Co Ltd | プログラム処理装置 |
US7350109B2 (en) * | 2003-11-14 | 2008-03-25 | Hewlett-Packard Development Company, L.P. | System and method for testing a memory using DMA |
US7797134B2 (en) * | 2003-11-14 | 2010-09-14 | Hewlett-Packard Development Company, L.P. | System and method for testing a memory with an expansion card using DMA |
JP4737929B2 (ja) * | 2003-12-12 | 2011-08-03 | 株式会社東芝 | 半導体記憶装置 |
US7552268B2 (en) * | 2006-05-18 | 2009-06-23 | Cisco Technology, Inc. | Method for improving bus utilization using predictive arbitration |
US20090006663A1 (en) * | 2007-06-27 | 2009-01-01 | Archer Charles J | Direct Memory Access ('DMA') Engine Assisted Local Reduction |
JP5068188B2 (ja) * | 2008-01-21 | 2012-11-07 | インターナショナル・ビジネス・マシーンズ・コーポレーション | メモリのテストを実行する方法、コンピュータ・プログラム、およびシステム |
US8422402B2 (en) | 2008-04-01 | 2013-04-16 | International Business Machines Corporation | Broadcasting a message in a parallel computer |
US8375197B2 (en) * | 2008-05-21 | 2013-02-12 | International Business Machines Corporation | Performing an allreduce operation on a plurality of compute nodes of a parallel computer |
US8484440B2 (en) | 2008-05-21 | 2013-07-09 | International Business Machines Corporation | Performing an allreduce operation on a plurality of compute nodes of a parallel computer |
US8281053B2 (en) | 2008-07-21 | 2012-10-02 | International Business Machines Corporation | Performing an all-to-all data exchange on a plurality of data buffers by performing swap operations |
US8250250B2 (en) * | 2009-10-28 | 2012-08-21 | Apple Inc. | Using central direct memory access (CDMA) controller to test integrated circuit |
US8565089B2 (en) * | 2010-03-29 | 2013-10-22 | International Business Machines Corporation | Performing a scatterv operation on a hierarchical tree network optimized for collective operations |
US8332460B2 (en) * | 2010-04-14 | 2012-12-11 | International Business Machines Corporation | Performing a local reduction operation on a parallel computer |
US9424087B2 (en) | 2010-04-29 | 2016-08-23 | International Business Machines Corporation | Optimizing collective operations |
US8346883B2 (en) | 2010-05-19 | 2013-01-01 | International Business Machines Corporation | Effecting hardware acceleration of broadcast operations in a parallel computer |
US8949577B2 (en) | 2010-05-28 | 2015-02-03 | International Business Machines Corporation | Performing a deterministic reduction operation in a parallel computer |
US8489859B2 (en) | 2010-05-28 | 2013-07-16 | International Business Machines Corporation | Performing a deterministic reduction operation in a compute node organized into a branched tree topology |
US8776081B2 (en) | 2010-09-14 | 2014-07-08 | International Business Machines Corporation | Send-side matching of data communications messages |
KR101806807B1 (ko) | 2010-11-08 | 2017-12-11 | 삼성전자주식회사 | 메모리 카드 |
US8566841B2 (en) | 2010-11-10 | 2013-10-22 | International Business Machines Corporation | Processing communications events in parallel active messaging interface by awakening thread from wait state |
US8893083B2 (en) | 2011-08-09 | 2014-11-18 | International Business Machines Coporation | Collective operation protocol selection in a parallel computer |
US8667501B2 (en) | 2011-08-10 | 2014-03-04 | International Business Machines Corporation | Performing a local barrier operation |
US8910178B2 (en) | 2011-08-10 | 2014-12-09 | International Business Machines Corporation | Performing a global barrier operation in a parallel computer |
US9495135B2 (en) | 2012-02-09 | 2016-11-15 | International Business Machines Corporation | Developing collective operations for a parallel computer |
KR102081588B1 (ko) * | 2013-08-08 | 2020-02-26 | 삼성전자 주식회사 | Ecc 디코더의 동작 방법 및 그것을 포함하는 메모리 컨트롤러 |
CN108226741B (zh) * | 2016-12-14 | 2020-06-09 | 中国航空工业集团公司西安航空计算技术研究所 | 一种dma自测试电路 |
CN118069218A (zh) * | 2017-09-12 | 2024-05-24 | 恩倍科微公司 | 极低功率微控制器系统 |
JP7125602B2 (ja) * | 2018-08-01 | 2022-08-25 | 富士通株式会社 | データ処理装置および診断方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4701845A (en) * | 1984-10-25 | 1987-10-20 | Unisys Corporation | User interface processor for computer network with maintenance and programmable interrupt capability |
KR880014482A (ko) * | 1987-05-27 | 1988-12-24 | 미다 가쓰시게 | 반도체 집적회로 장치 |
US4888773A (en) * | 1988-06-15 | 1989-12-19 | International Business Machines Corporation | Smart memory card architecture and interface |
US5301156A (en) * | 1991-07-18 | 1994-04-05 | Hewlett-Packard Company | Configurable self-test for embedded RAMs |
FR2697663B1 (fr) * | 1992-10-30 | 1995-01-13 | Hewett Packard Cy | Circuit de test de mémoire. |
-
1996
- 1996-08-14 US US08/696,734 patent/US5668815A/en not_active Expired - Lifetime
-
1997
- 1997-05-29 DE DE69714472T patent/DE69714472T2/de not_active Expired - Lifetime
- 1997-05-29 EP EP97926855A patent/EP0978124B1/en not_active Expired - Lifetime
- 1997-05-29 WO PCT/US1997/009425 patent/WO1998007163A1/en not_active Application Discontinuation
- 1997-05-29 KR KR10-1999-7001269A patent/KR100488232B1/ko not_active IP Right Cessation
- 1997-05-29 JP JP50968698A patent/JP2001510611A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
DE69714472D1 (de) | 2002-09-05 |
DE69714472T2 (de) | 2003-04-10 |
KR20000029997A (ko) | 2000-05-25 |
US5668815A (en) | 1997-09-16 |
EP0978124B1 (en) | 2002-07-31 |
EP0978124A1 (en) | 2000-02-09 |
JP2001510611A (ja) | 2001-07-31 |
WO1998007163A1 (en) | 1998-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100488232B1 (ko) | 집적 dma 제어기를 이용한 집적 메모리 테스트 방법 | |
US7168005B2 (en) | Programable multi-port memory BIST with compact microcode | |
US6560740B1 (en) | Apparatus and method for programmable built-in self-test and self-repair of embedded memory | |
US4460999A (en) | Memory tester having memory repair analysis under pattern generator control | |
US6493839B1 (en) | Apparatus and method for testing memory in a microprocessor | |
US20050066247A1 (en) | Full-speed BIST controller for testing embedded synchronous memories | |
JP2003050269A (ja) | アルゴリズム的にプログラム可能なメモリテスタにおけるトリガ信号生成方法 | |
US6851014B2 (en) | Memory device having automatic protocol detection | |
US5903912A (en) | Microcontroller configured to convey data corresponding to internal memory accesses externally | |
US6934205B1 (en) | Bist for parallel testing of on chip memory | |
US6862704B1 (en) | Apparatus and method for testing memory in a microprocessor | |
EP1632952A2 (en) | A non-volatile memory device controlled by a micro-controller | |
US7213187B2 (en) | Digital logic test method to systematically approach functional coverage completely and related apparatus and system | |
US6611796B1 (en) | Method and apparatus for combining memory blocks for in circuit emulation | |
US5515530A (en) | Method and apparatus for asynchronous, bi-directional communication between first and second logic elements having a fixed priority arbitrator | |
US5446851A (en) | Instruction supplier for a microprocessor capable of preventing a functional error operation | |
CN110415751B (zh) | 一种可参数化配置的存储器内建自测试电路 | |
US7210030B2 (en) | Programmable memory initialization system and method | |
JP2591825B2 (ja) | 圧縮データを用いた論理回路試験方法及びその装置 | |
US6493840B1 (en) | Testability architecture for modularized integrated circuits | |
US5860161A (en) | Microcontroller configured to indicate internal memory accesses externally | |
Cheng et al. | Automatic generation of memory built-in self-test cores for system-on-chip | |
Jone et al. | An efficient BIST method for distributed small buffers | |
KR0164792B1 (ko) | 메모리의 자동초기화 회로 | |
US20050028059A1 (en) | Processor interface for test access port |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
J201 | Request for trial against refusal decision | ||
AMND | Amendment | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment | ||
FPAY | Annual fee payment | ||
LAPS | Lapse due to unpaid annual fee |