KR20150145694A - 데이터 처리장치의 메모리 내장 자체 테스트 - Google Patents

데이터 처리장치의 메모리 내장 자체 테스트 Download PDF

Info

Publication number
KR20150145694A
KR20150145694A KR1020150077688A KR20150077688A KR20150145694A KR 20150145694 A KR20150145694 A KR 20150145694A KR 1020150077688 A KR1020150077688 A KR 1020150077688A KR 20150077688 A KR20150077688 A KR 20150077688A KR 20150145694 A KR20150145694 A KR 20150145694A
Authority
KR
South Korea
Prior art keywords
memory
mbist
test
data
transactions
Prior art date
Application number
KR1020150077688A
Other languages
English (en)
Other versions
KR102288558B1 (ko
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 KR20150145694A publication Critical patent/KR20150145694A/ko
Application granted granted Critical
Publication of KR102288558B1 publication Critical patent/KR102288558B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/14Implementation of control logic, e.g. test mode decoders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/14Implementation of control logic, e.g. test mode decoders
    • G11C29/16Implementation of control logic, e.g. test mode decoders using microprogrammed units, e.g. state machines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/30Accessing single arrays
    • G11C29/32Serial access; Scan testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Memory System (AREA)
  • Computer Hardware Design (AREA)

Abstract

데이터 처리장치는 적어도 한 개의 메모리와 처리회로를 갖는다. 메모리 내장 자체 테스트(MBIST) 인터페이스는 적어도 한 개의 타겟 메모리 위치를 테스트하기 위해 테스트 절차를 행해야 한다는 것을 나타내는 MBIST 요구를 수신한다. 제어회로는, MBIST 요구를 검출하고, 타겟 메모리 위치를 포함하는 적어도 한 개의 예약 메모리 위치를 테스트하는 것을 예약한다. 테스트 절차 중에, 메모리는 제어회로에 의해 예약된 예약 위치 이외의 메모리 위치를 타겟으로 하는 처리회로에 의해 발행된 메모리 트랜잭션들을 계속 서비스한다. 처리회로가 예약 메모리 위치를 액세스하려고 시도하면 이 처리회로가 정지된다. 테스트는 드물게 발생하는 트랜잭션들의 짧은 버스트들로 구성된다. 이에 따르면, 프로세서가 필드에서 동작하고 있는 동안 MBIST 테스트를 계속하므로 성능상의 영향이 줄어든다.

Description

데이터 처리장치의 메모리 내장 자체 테스트{MEMORY BUILT-IN SELF-TEST FOR A DATA PROCESSING APPARATUS}
본 발명은 데이터 처리 분야에 관한 것이다. 특히, 본 발명은 메모리 내장 자체 테스트(memory built-in self-test: MBIST)를 행하는 기술에 관한 것이다.
데이터 처리 시스템에 장치 내부에 설치된 메모리를 테스트하는 자체 테스트 기구를 설치하여, 메모리 회로가 제조되었을 때, 장치가 자체 테스트 또는 일련의 자체 테스트를 행하여 회로가 불합격되어야 한다는 것을 의미하는 결함이 존재하는지 여부를 판정하는 것이 알려져 있다. 이와 같은 기술은 보통 메모리 내장 자체 테스트(MBIST)로 불린다. 데이터 처리장치의 제조시에 MBIST를 행하는 것 이외에, 나중에 집적회로가 현장에 배치되어 설계된 기능을 행하고 있을 때 MBIST를 행할 수도 있다(이것은 "온라인" MBIST, "라이브" MBIST 또는 "현장(in-field)" MBIST로 불린다). 그러나, 기존의 온라인 MBIST 기술은 처리회로의 정규 기능에 심각하게 영향을 미친다. 본 발명은 이와 같은 문제를 해소하는 것을 목적으로 한다.
일면에 따르면, 본 발명은,
데이터를 기억하도록 구성된 적어도 한 개의 메모리와,
상기 적어도 한 개의 메모리 내부의 데이터를 액세스하기 위한 메모리 트랜잭션들을 발행하도록 구성된 처리회로와,
상기 적어도 한 개의 메모리의 적어도 한 개의 타겟 메모리 위치를 테스트하기 위해 테스트 절차를 행해야 한다는 것을 나타내는 MBIST 요구를 수신하도록 구성된 메모리 내장 자체 테스트(MBIST) 인터페이스와,
상기 MBIST 인터페이스에 의해 수신된 상기 MBIST 요구를 검출하고, 상기 MBIST 요구 검출에 응답하여, 상기 적어도 한 개의 타겟 메모리 위치를 포함하는 적어도 한 개의 예약 메모리 위치를 테스트하는 것을 예약하도록 구성된 제어회로를 구비하고,
상기 테스트 절차 중에, 상기 적어도 한 개의 메모리는, 상기 제어회로에 의해 예약된 상기 적어도 한 개의 예약 메모리 위치 이외의 메모리 위치를 타겟으로 하는 상기 처리회로에 의해 발행된 메모리 트랜잭션들의 서비스를 계속하도록 구성된, 데이터 처리장치를 제공한다.
기존의 온라인 메모리 테스트 기술은, 프로세서 상에서 실행되는 소프트웨어를 이용하여 메모리를 직접 테스트하거나, 소프트웨어가 테스트하려는 메모리에 대한 프로세서 액세스를 디스에이블하여 외부 장치가 테스트 인터페이스를 거쳐 테스트를 행할 수 있다. 일반적으로, 소프트웨어는 그것의 정규 연산을 중지하고 테스트 모드로 들어간다. 이것은 매우 침해가 크며(invasive) 프로세서가 그것의 정상 기능을 행하지 못하게 한다. 이와 같은 문제를 해소하기 위해, 적어도 한 개의 메모리 내부의 적어도 한 개의 타겟 메모리 위치에 대해 테스트 절차를 막 행하려고 한다는 것을 표시하는, MBIST 인터페이스에서 수신된 MBIST 요구를 검출하기 위해 제어회로가 설치된다. MBIST 요구를 검출하면, 제어회로가 적어도 테스트할 타겟 메모리 위치를 포함하는 적어도 한 개의 예약 메모리 위치를 테스트하는 것을 예약한다. 그후, 테스트 절차를 행할 때, 적어도 한 개의 메모리가 제어회로에 의해 예약된 예약 위치 이외의 메모리 위치들을 타겟으로 하는 처리회로에 의해 발행된 메모리 트랜잭션들의 서비스를 계속할 수 있다. 따라서, 적어도 한 개의 메모리 위치의 일부만 예약되고 나머지 부분들은 여전히 처리회로로부터 트랜잭션들을 서비스할 수 있으므로, 프로세서가 평상시와 같이 기능을 계속하며 프로세서 상에서 실행되고 있는 소프트웨어에 대해 테스트가 투명해진다. 테스트를 위해 메모리를 예약하기 위해 하드웨어로 전용 제어회로를 설치함으로써(이것은 예를 들어 프로세서가 예약 메모리 위치를 액세스하는 경우에는 프로세서가 정지되도록 할 수도 있다), MBIST를 행하기 위해 처리회로의 인터럽트 처리를 행할 필요가 없어진다. 이와 같은 구성은, MBIST 절차에 기인한 성능에 대해 훨씬 적은 영향을 발생하므로, MBIST가 회로의 정규 기능과 공존하는 것을 가능하게 한다. 이것은, 장시간 동안 처리회로의 정규 처리를 디스에이블하는 것이 바람직하지 않은, 예를 들어 안전 필수(safety-critical) 기능을 행하는 데이터 처리장치에서 특히 중요하다.
MBIST 요구를 검출하고 테스트를 위한 메모리 내부의 위치를 예약하는 제어회로가, MBIST 인터페이스를 거쳐 수신된 트랜잭션들에 대한 데이터 처리장치의 응답을 제어하기 위해 이 인터페이스에 접속된 MBIST 인터페이스 제어회로 내부에 설치되는 경우도 있다. 또한, 제어회로가 적어도 한 개의 메모리의 한 개 이상을 제어하는 메모리 제어회로 내부에 설치되는 경우도 있다. 예를 들면, 특정한 메모리에 대한 메모리 제어기는, 이 메모리를 통과하는 모든 트랜잭션들을 처리하며, 테스트를 위한 메모리 위치들의 예약, 및 테스트 트랜잭션들과 정규 메모리 트랜잭션들 사이의 중재도 처리한다. 메모리 트랜잭션들의 서비스를 재어하는 기능 로직을 재사용할 수 있기 때문에 이와 같은 접근방식은 이점이 있으며, 이와 같은 접근방식은 더 양호한 타이밍을 갖고, 메모리 제어기 기능 로직을 테스트하고, 면적, 전력 및 루팅을 줄이며, 구현하기가 더 용이하다. 그러나, 제어회로가 MBIST 인터페이스 제어회로 및 메모리 제어회로 모드의 일부분에 대응하는 경우도 있어, 예를 들어, MBIST 인터페이스 제어회로가 MBIST 요구를 검출한 후 메모리 제어회로를 기동하여 테스트하기 위한 메모리의 영역들을 예약한다. 또한, 일반적인 RAM 매크로(macro)에 로직을 추가하여 MBIST에 대한 메모리 위치들을 예약하고 메모리 트랜잭션들과 MBIST 트랜잭션들 사이를 중재함으로써 제어회로를 구현하는 것이 가능하지만, 이것은, 프로세서가 예약된 위치의 액세스를 시도할 때 프로세서를 정지시키기 위해 RAM의 기능 인터페이스에 대기 신호를 추가하는 것을 필요로 한다.
일반적으로, 테스트 절차가 수행되고 있는 동안 처리회로가 예약된 메모리 위치들을 액세스하지 못하게 하는 임의의 방식으로 테스트를 위해 메모리 위치들이 예약되어도 된다. 예를 들어, 예약된 메모리 위치를 타겟으로 하는 처리회로로부터의 메모리 트랜잭션들은 중지되거나, 다른 방법으로 서비스되는 것이 방지된다. 한편, 예약된 영역 이외의 메모리 영역을 타겟으로 하는 처리회로에 의해 발행된 메모리 트랜잭션들은 메모리에 의해 평상시와 같은 서비스될 수 있다. 다양한 이유로 인해(예를 들면, 위험요소 또는 느린 외부 메모리에 대한 액세스로 인해, 또는 필요한 데이터 값이 L1 캐시에 존재하지 않으므로 L2 메모리로부터 페치해야만 하기 때문에) 프로세서가 정지할 수 있으므로, 테스트로 인해 작은 수의 클록 사이클 동안 정지하는 것은 이상한 것이 아니며, 전체 성능에 상당히 영향을 미치지는 않는다.
전체 메모리 유닛 또는 메모리 위치들의 특정한 블록들에 대한 액세스를 디스에이블하는 제어 플래그들을 간단히 설정함으로써 제어회로가 특정한 메모리 트랜잭션들의 서비스를 금지해도 되는 경우가 있다. 또한, 재어회로가 어떤 위치들을 예약할지 않을지를 식별하는 고정 레코드(lock record)를 유지해도 되는 경우도 있다. 그후, 메모리 제어회로 내부의 중재부는 예약 메모리 위치들을 타겟으로 하는 프로세서로부터의 메모리 트랜잭션들을 중지한다.
메모리 위치들은 다양한 그래뉼래러티(granularity)에서 테스트하기 위해 예약된다. 복수의 메모리 종류를 갖는 시스템에서는, 예를 들어 데이터 캐시, 명령 캐시, 데이터 밀결합(tightly coupled) 메모리(DTCM) 또는 명령 밀결합 메모리(ITCM) 중에서 2개 이상이 설치된다. 이와 같은 경우에, 전체 메모리 내부의 한 개 이상의 위치들이 테스트되고 있는 경우에는 전체 메모리 종류를 예약하는 한편, 프로세서가 다른 종류의 메모리들을 계속해서 사용할 수 있다. 이 접근방식은 실용상 효율적으로 구현가능하다. 특정한 프로세서가 특정한 종류의 메모리를 갖거나 갖지 않는(예를 들면, DTCM이 항상 설치되는 것은 아니다) 시스템들에 대해 설계되기 때문에, 장치는 특정한 메모리 종류를 디스에이블/인에이블할 수 있는 제어 로직을 이미 갖고 있으며, 그후 이 제어 로직을 재사용하여 MBIST 요구가 수신될 때 테스트를 위한 메모리를 예약할 수 있다.
한편, 메모리 위치들은 더 작은 단위(fine-grained) 레벨에서 예약될 수도 있다. 예를 들어, 특정한 메모리 종류가 다수의 논리 메모리를 포함해도 된다(예를 들어, 명령 캐시가, 예를 들어 2개의 태그 메모리 및 2개의 데이터 메모리를 포함하는 4개의 논리 메모리를 포함해도 된다). 그후, 각각의 논리 메모리는 다수의 물리 메모리 유닛으로 형성되고, 각각의 물리 메모리 유닛은 다수의 뱅크들 또는 메모리 위치들의 다른 분할로 분할된다. 또한, 더 큰 블록의 메모리 위치들 대신에, 테스트하기 위해 개별 위치들을 예약하는 것도 가능하다. 제어회로는, 테스트하기 위해 어떤 메모리 위치들 또는 메모리 위치들의 그룹을 고정(lock)할지 표시하는 고정 정보를 유지하여, 이들 위치에 대한 메모리 트랜잭션들을 서비스할 수 없게 하여도 된다.
소프트웨어의 개입이나 처리회로의 인터럽션이 없이 테스트하기 위한 메모리 위치들의 예약이 하드웨어로 자동으로 일어나도 된다. MBIST 요구 그 자체는 처리회로에 의해 실행된 소프트웨어에 의해 기동되지만, MBIST 요구에 대한 응답은 제어회로에 의해 하드웨어로 주어지므로, 처리회로 상에서 실행되고 있는 소프트웨어에 대해 테스트가 완전히 투명하다.
테스트 절차의 완료 후에, 제어회로가 예약 메모리 위치들의 예약을 해제하여, 이들 메모리 위치들을 처리회로에 의해 발행된 메모리 트랜잭션들을 서비스하기 위해 다시 이용가능해진다. 예약 메모리 위치들의 예약이 해제되기 전에 테스트 절차를 완전히 종료하는 것이 불필요한 경우가 있다. 예를 들면, 테스트 절차의 최종 부분이 테스트된 메모리 위치들의 데이터를 변경하지 않고, 테스트 절차가 이 시점까지 이들 위치의 원래의 데이터를 이미 복원하는 경우에는, 테스트 절차의 종료 이전에 예약 위치들의 예약을 해제하여, 메모리가 더 일찍 처리회로로부터의 메모리 트랜잭션들의 서비스를 재개할 수 있으므로, MBIST의 성능상의 영향을 줄일 수 있다.
기존의 MBIST 테스트 절차는 한번의 테스트 실행으로 메모리 내부의 모든 위치를 테스트하는 경향이 있다. 그러나, 특히 테스트 절차가 다양한 검사를 행하기 위해 다수회 메모리의 모든 위치를 순환하는 일이 많기 때문에, 이것은 완료하는데 긴 시간을 필요로 한다. 이것은, 집적회로가 사용가능한지 여부를 판정하기 위해 전체 메모리 공간의 결함을 검사할 필요가 있을 때 대부분의 MBIST 테스트 절차들이 일반적으로 제조 테스트를 위해 설계되기 때문이다. 그러나, 온라인 MBIST를 행할 때에는, 이와 같은 MBIST 테스트 절차는 심각한 성능상의 영향을 일으키게 된다. 따라서, 기존의 온라인 MBIST는 프로세서가 완전히 동작하고 있지 않을 때인 파워온 및 파워오프시에만 보통 행해진다.
본 발명의 발명자들은, 제조 MBIST가 이미 제조과정 중에 행해져 왔으므로, 어느 한 위치가 결함이 생길 가능성이 비교적 없기 때문에 짧은 시간에 전체 메모리를 검사하기보다는, 장기간에 걸쳐 테스트를 분산시킬 수 있으므로, 온라인 MBIST에 대해서는, 테스트 절차가 제조 MBIST만큼 철저할 필요가 없다는 것을 인식하였다. 이것을 이용하여, 테스트 절차의 성능상의 영향이 낮도록 보장할 수 있으므로, 거의 성능상의 영향을 미치지 않고 처리회로의 정규 동작과 동시에 온라인 MBIST를 행할 수 있다.
따라서, 온라인 MBIST에 대해서는, 테스트가 비교적 짧은 버스트들의 테스트 트랜잭션들로 분할되고, 각각의 버스트가 메모리 위치들의 서브셋만을 테스트해도 된다. 예를 들어, 각각의 버스트의 트랜잭션들은 1개, 2개, 또는 그 이외의 비교적 작은 수의 메모리 위치들만을 테스트해도 된다. 버스트들이 짧을수록, 처리 성능에 대한 영향이 더 작아진다. 추가적인 위치들을 테스트할 필요가 있는 경우에는, 일정한 기간에 걸쳐 분산하여, 서로 다른 서브셋들의 위치들에 대해 복수의 버스트가 행해져도 된다. 시간이 지남에 따라, 다수의 버스트를 행함으로써, 전체 메모리를 테스트할 수 있다. 연속된 버스트들 사이의 시간은 한 개의 버스트에 대해 테스트 절차를 행하는데 걸리는 시간보다 훨씬 더 길어도 된다(예를 들어, 버스트들은 예를 들어 10,000 클록 사이클마다와 같이 비교적 드물게 발행될 수도 있지만, 한 개의 버스트에 대한 테스트 절차는 단지 20 클록 사이클 또는 그 미만이 걸려도 된다). 예를 들어 카운터에 의해 기동되어, 각각의 짧은 테스트 버스트가 규칙적으로 발생할 수 있다. 카운터가 만료되면, 카운터는 MBIST 제어기가 짧은 테스트 버스트를 행하도록 하여, 제어회로를 기동하여 데이터 처리장치를 테스트를 위해 준비되도록 구성하는 MBIST 요구를 발행한다. 이에 따라, 성능상의 영향이 최소가 된다. 또한, 버스트의 나머지를 완료하는데 긴 시간이 걸리지 않기 때문에, 이들 테스트 절차들 중에서 한 개 중에 인터럽트가 프로세서에 의해 수신되는 경우의 인터럽트 대기시간은 매우 작다.
각각의 버스트는 이전의 버스트에 대해 정확한 간격으로 일어날 필요는 없다. 중요한 소프트웨어가 막 실행되려고 하거나 현재 실행되고 있을 때 버스트가 발생하는 경우에는 버스트를 연기하거나 이 버스트를 실행하지 않는 능력을 제공하는 것이 가능하다. 또한, 소프트웨어가 유휴 상태에 있을 가능성이 크거나, 예를 들어 프로세싱 루프의 종료시에 중요하지 않은 작업을 행하고 있을 때 버스트가 발생하도록 버스트가 소프트웨어와 조정될 수도 있다.
테스트 절차의 버스트를 도중에 인터럽트할 수 있는 능력을 제공하는 것이 가능하다. 예를 들어, 프로세서가 중요한 인터럽트를 서비스할 필요가 있는 경우에, 필요한 경우에, 인터럽트가 발생하는 시기에 의존하여, 새로운 버스트에서 나중에 행해질 수도 있는 특정한 검사 단계들을 생략함으로써 버스트를 단축시킬 수도 있다. 그러나, 버스트들이 매우 짧기 때문에, 버스트를 인터럽트하는 것이 다수의 클록 사이클을 절약하지 못할 수도 있으며, 달성하는데 더 복합한 제어기를 필요로 할 수도 있다. 따라서, 버스트가 일단 개시되면, 테스트된 위치들이 버스트가 개시될 때 존재하였던 상태로 복원된 시점까지 인터럽트될 수 있도록, 테스트 절차의 각각의 버스트를 인터럽트 불가능하게 하는 것이 더 효율적일 수도 있다.
MBIST 요구는 MBIST 인터페이스를 거쳐 칩의 외부에 놓이는 MBIST 제어기로부터 수신되어도 된다. 이와 달리, 온칩 소스가 MBIST 요구를 발생하거나 MBIST 제어기 기능이 프로세서 내부에 존재할 수도 있다.
제어회로가 MBIST 요구를 검출하면, MBIST 신호 인터페이스를 거쳐 MBIST 확인응답 신호를 발생하여 MBIST 제어기를 기동하여 테스트 절차를 개시해도 된다. 장치가 테스트 절차를 행할 준비가 된 상태에 있을 때까지 제어회로가 확인응답 신호의 발생을 지연시켜도 된다. 예를 들어, 프로세서가 인터럽트되지 않아야 하는 중요한 동작을 현재 실행하고 있는 경우에는, 제어회로가 확인응답을 지연시켜도 된다. 또한, 처리회로에 의해 발행된 적어도 한 개의 인플라이트(in-flight) 메모리 트랜잭션이 완료될 때까지 확인응답을 지연시켜도 된다. 예를 들어, 메모리 트랜잭션이 캐시 부적중(cache miss)에 마주칠 수도 있으며 이것이 외부 메모리로부터 또는 또 다른 캐시로부터의 라인필(linefill)을 기동할 수도 있다. 메모리 제어기 내부의 기능 로직, 예를 들어 제어 로직 및 파이프라인 레지스터들이 MBIST 트랜잭션에 의해 사용될 수도 있기 때문이 이것이 유용하다. 또한, 인플라이트 트랜잭션이 다른 프로세서들이 외부 메모리나 캐시를 액세스하지 못하게 하는 다수의 서브트랜잭션들로 구성되기 때문에 이 인플라이트 트랜잭션을 중지시키는 것은 바람직하지 않을 수도 있는데, 그렇지 않은 경우에는 시스템에서 다른 관련되지 않은 트랜잭션들이 차단될 수도 있다.
테스트 절차의 일부로써, MBIST 인터페이스는 적어도 한 개의 타겟 메모리 위치를 테스트하는 적어도 한 개의 테스트 트랜잭션을 MBIST 제어기로부터 수신해도 된다. 일부 시스템은 인터페이스로부터 메모리로 트랜잭션들을 루팅하는 전용 MBIST 트랜잭션 경로를 갖고, 이 경로는 처리회로로부터 정규 메모리 트랜잭션들을 위해 사용되는 경로로부터 완전히 분리된다. 이 경우, 각각의 메모리는, 인터페이스를 거쳐 수신된 트랜잭션들과 프로세서에서 수신된 정규 메모리 트랜잭션들 사이에서 선택하는 멀티플렉서를 가져도 된다. 그러나, 이와 같은 접근방식은 회로의 중복을 발생하여 기능 타이밍에 악영향을 미칠 수 있으며, 메모리에 멀티플렉서들을 설치하는 것은 메모리의 일부가 테스트되고 있는 동안 정규 메모리 트랜잭션들이 계속 서비스를 받을 수 있도록 하는 것을 더 어렵게 만들 수 있다.
따라서, 처리회로에 의해 사용된 메모리 제어회로의 일부를 재사용하여 메모리 트랜잭션들을 메모리로 루팅함으로써, 테스트 트랜잭션들을 MBIST 인터페이스로부터 전달하는 것이 유용하다. 예를 들어, 각각의 메모리는 이에 대응하는 메모리 제어기를 가져도 된다. 메모리 제어기는, 정규 메모리 트랜잭션들을 처리하기 위한 처리회로의 로드/스토어(load/store) 유닛을 갖는 정규 인터페이스 이외에, (예를 들어, 제어 정보, 어드레스 및 데이터 값들을 포함하는) 테스트 트랜잭션들을 수신하고 이것들을 메모리에 루팅하는 MBIST 인터페이스 유닛을 가져도 된다. 메모리 제어회로를 재사용하여 테스트 트랜잭션들의 서비스 제공을 제어함으로써, 테스트 트랜잭션들이 정규 메모리 트랜잭션들과 유사한 대기시간을 갖고 "고속으로" 서비스될 수 있다. MBIST 테스트 트랜잭션들을 메모리 인터페이스 내부의 파이프라인 레지스터들을 거쳐 전달할 수 있고 제어 로직을 재사용할 수 있으므로, 이것이 메모리 타이밍에 거의 또는 전혀 영향을 미치지 않고, 회로 면적 및 소비전력을 줄이고, 또한 메모리 인터페이스 로직의 결함을 검출가능하기 때문에 테스트 커버리지를 향상시킨다.
투명하지 않은 MBIST 테스트 절차가 사용되어도 되지만, 테스트 절차가 투명한 것이 특히 유용한데, 이것은 테스트 절차의 종료시의 테스트된 메모리 위치들의 데이터 값들이 (메모리 결함이 검출되지 않는다면) 테스트 정차의 개시시의 데이터 값들과 동일하다는 것을 의미한다. 따라서, 투명한 테스트 절차는 타겟 메모리 위치에 대해 다수의 연산을 행하지만, 절차의 종료까지, 메모리에 원래의 데이터 값을 복원하게 된다. 이와 같은 구성은, 프로세서의 정규 처리에 대한 영향을 증가시키는, 상대 보존/보존 연산을 소프트웨어로 프로세서가 행할 필요가 없게 한다.
전술한 것과 같이, 한번에 비교적 작은 수의 메모리 위치들을 테스트하는 짧은 버스트들로 테스트 절차가 행해져도 된다. 특히, 테스트 절차는 메모리의 서로 다른 부분들(예를 들면, 메모리의 서로 다른 뱅크들, 열들 또는 행들)에 놓인 한쌍의 메모리 위치들을 테스트해도 된다. 예를 들면, 한쌍의 메모리 위치들은 일정한 상수만큼 분리된 메모리 어드레스들을 갖는 2개의 위치이어도 된다. 한번에 한쌍의 위치를 테스트하는 것은 메모리와 그것의 관련된 제어 로직에 더욱 철저히 스트레스를 주는데 유용하여, 더 강력한 테스트를 제공할 수 있다. 이것은, 먼저 이 쌍의 한 개의 위치에서 값들을 판독 또는 기록하고 그후 다른 위치에서 값들을 판독 또는 기록하는 것은 서로 다른 제어신호들(예를 들어, 워드 라인들 또는 뱅크 선택기들)이 어서트(assert)되거나 소거되도록 하고 메모리 내부의 서로 다른 회로들(예를 들면, 비트라인 조정 및 센스 증폭기들)이 사용되도록 하여, 메모리의 한 부분에 대한 액세스 후에 메모리의 다른 부분에 대한 액세스가 뒤따르는 메모리에 대한 실제 액세스와 관련된 지연을 더 정확하게 반영하게 되기 때문이다. 또한, 특정한 메모리 트랜잭션들을 전체의 기능 속도에서 백투백으로(back to back) 행하는 것이 바람직하다. 이것은, 최대 기능 속도에서 또는 최대 기능 속도에 근접한 속도에서 메모리 제어신호들 및 회로들을 전환함으로써 메모리에 더 크게 스트레스를 주게 된다.
특히, 각각의 버스트의 테스트 절차는 다음을 포함한다:
(a) 메모리 위치들의 쌍으로부터 제 1 및 제 2 데이터 값을 판독하오 제 1 및 제 2 데이터 값을 제 1 및 제 2 기억 위치에 기억하는 단계와,
(b) 상기 메모리 위치들의 쌍에 선택된 데이터 값들을 기록하는 단계와,
(c) 상기 메모리 위치들의 쌍으로부터 판독된 데이터 값들이 상기 메모리 위치들의 쌍에 기록된 상기 선택된 데이터 값들과 일치하는지 여부를 검사하는 단계와,
(d) 상기 제 1 및 제 2 기억 위치들로부터 상기 메모리 위치들의 쌍에 상기 제 1 및 제 2 데이터 값들을 기록하는 단계와,
(e) 상기 메모리 위치들의 쌍으로부터 판독된 데이터 값들이 상기 제 1 및 제 2 기억 위치들에 기억된 상기 제 1 및 제 2 데이터 값들과 일치하는지 여부를 검사하는 단계.
따라서, 이와 같은 테스트 알고리즘은, 한쌍의 위치들로부터 기존의 값들을 판독하고, 이들 값들이 확실히 테스트 종료시에 복원될 수 있도록 (레지스터 등의) 소정의 위치들에 이들 값들을 기억한다. 일부의 선택된 데이터 값들이 메모리 위치들의 쌍에 기록된 후, 다시 판독하여 이들이 기록된 값들과 여전히 동일한지 여부를 검사한다. 선택된 데이터 값들은 위치들의 쌍에 대해 동일하거나 다를 수 있으며, 제 1 및 제 2 데이터 값들 중에서 한 개에 근거하거나, 또는 그 대신에 완전히 독립된 값이 될 수도 있다. 그후, 원래의 제 1 및 제 2 값이 메모리 위치들에 복원된 후, 다시 판독되어 이들이 올바른지 검사한다. 모든 검사를 통과하면, 위치들의 쌍이 에러가 없는 것으로 판정되는 반면에, 검사들 중에서 한 개에 의해 이들 값들 중에서 한 개가 예측된 값과 일치하지 않은 것으로 밝혀지면, 에러신호가 전송된다.
데이터 값들을 기억하는데 사용된 레지스터들과 그것의 관련된 검사 로직은 MBIST 제어기의 일부이거나, 메모리, 예를 들어 각각의 메모리 제어기에 더 근접하여 프로세서 내부에 위치한다. 이와 같은 데이터 경로 로직이 프로세서 내부에 위치하는 경우에는, MBIST 제어기가 각각의 메모리 트랜잭션에 대한 어드레스 및 제어정보만을 제공하고, 데이터 값들을 수신하거나 송신하지 않는다. 메모리에 더 근접하게 이와 같은 데이터 경로 로직을 배치하는 것의 이점은, MBIST 인터페이스에서 판독 어드레스를 발행하는 것과 판독된 데이터를 다시 데이터 레지스터로 수신하는 것 사이의 대기시간을 줄일 수 있다. 이것은 추가적인 면적을 희생하여 전술한 예시적인 테스트 절차에서의 부분 (a) 및 (b) 사이에서 몇 개의 클록 사이클들을 절약할 수 있다.
메모리 위치들의 쌍에 대한 두 번째 기록이 완료하면(전술한 부분 (d)), 값들이 올바른지 여부를 검사하기 위해 부분 (e)에서 후속하는 판독이 메모리 내부의 값들에 영향을 미치지 않으므로 프로세서가 다시 이들 영역에 메모리 트랜잭션들의 발행을 개시할 수 있기 때문에, 메모리의 예약된 영역의 예약을 해제할 수 있다. 그후 부분 (e)에서 에러가 검출되면, 검사가 완료하기 전에 결함이 생긴 메모리 위치들에 이미 발행된 트랜잭션들의 결과를 처리회로가 처리하지 못하게 하는 에러 복구처리가 개시될 수 있다.
또 다른 일면에 따르면, 본 발명은,
데이터를 기억하는 적어도 한 개의 메모리수단과,
상기 적어도 한 개의 메모리수단 내부의 데이터를 액세스하기 위한 메모리 트랜잭션들을 발행하는 처리수단과,
상기 적어도 한 개의 메모리수단의 적어도 한 개의 타겟 메모리 위치를 테스트하기 위해 테스트 절차를 행해야 한다는 것을 나타내는 MBIST 요구를 수신하는 메모리 내장 자체 테스트(MBIST) 인터페이스수단과,
상기 MBIST 인터페이스수단에 의해 수신된 상기 MBIST 요구를 검출하고, 상기 MBIST 요구 검출에 응답하여, 상기 적어도 한 개의 타겟 메모리 위치를 포함하는 적어도 한 개의 예약 메모리 위치를 테스트하는 것을 예약하는 제어수단을 구비하고,
상기 테스트 절차 중에, 상기 적어도 한 개의 메모리수단은, 상기 제어수단에 의해 예약된 상기 적어도 한 개의 예약 메모리 위치 이외의 메모리 위치를 타겟으로 하는 상기 처리수단에 의해 발행된 메모리 트랜잭션들의 서비스를 계속하도록 구성된, 데이터 처리장치를 제공한다.
또 다른 일면에 따르면, 본 발명은, 적어도 한 개의 메모리와 상기 적어도 한 개의 메모리 내부의 데이터를 액세스하기 위한 메모리 트랜잭션들을 발행하도록 구성된 처리회로를 구비한 데이터 처리장치의 메모리 내장 자체 테스트(MBIST) 방법으로서,
상기 데이터 처리장치의 MBIST 인터페이스에 의해 수신되고, 상기 적어도 한 개의 메모리의 적어도 한 개의 타겟 메모리 위치를 테스트하기 위해 테스트 절차를 행해야 한다는 것을 나타내는 메모리 내장 자체 테스트(MBIST) 요구를 검출하는 단계와,
상기 MBIST 요구 검출에 응답하여, 상기 적어도 한 개의 타겟 메모리 위치를 포함하는 적어도 한 개의 예약 메모리 위치를 테스트하는 것을 예약하는 단계와,
상기 테스트 절차 중에, 상기 적어도 한 개의 메모리가, 상기 적어도 한 개의 예약 메모리 위치 이외의 메모리 위치를 타겟으로 하는 상기 처리회로에 의해 발행된 메모리 트랜잭션들을 서비스하는 단계를 포함하고,
상기 데이터 처리장치는, 상기 MBIST 요구를 검출하고, 상기 MBIST 요구의 검출에 응답하여 상기 적어도 한 개의 예약 메모리 위치를 예약하는 제어회로를 구비한 메모리 내장 자체 테스트(MBIST) 방법을 제공한다.
본 발명의 전술한 목적, 특징 및 이점은 다음의 첨부도면을 참조하여 주어지는 이하의 예시적인 실시예의 상세한 설명으로부터 명백해질 것이다.
도 1은 메모리 내장 자체 테스트 능력을 갖는 데이터 처리장치의 일례를 개략적으로 나타낸 것이다.
도 2는 MBIST 테스트 절차를 행하는 일례를 나타낸 것이다.
도 1은 예를 들어 CPU, GPU 또는 L2 캐시 제어기 등의 메모리 제어기인 처리회로(4)를 구비한 데이터 처리장치(집적회로 또는 칩)(2)의 일례를 개략적으로 나타낸 것이다. 처리회로(4)는 데이터 처리를 행하는 프로세서 코어(5)를 갖는다. 코어(5)는 처리할 데이터 값들을 기억하는 레지스터들의 세트(6)를 갖는다.
한가지 이상의 종류의 메모리가 설치되는데, 이들 중에서 일부는 온칩이고 나머지는 오프칩이다. 본 실시예에서는, 메모리가, 처리할 명령들을 기억하는 명령 캐시(7), 프로세서(4)에 의해 액세스되는 데이터 값들을 기억하는 데이터 캐시(8), 명령 밀결합 메모리(ITCM)(9) 및 한 개 이상의 데이터 밀결합 메모리들(DTCM)(10)을 포함한다. 프로세서 코어(5)가 필요한 명령이나 데이터 값이 레벨 1(L1) 명령 캐시(7)나 L1 데이터 캐시(8)에 존재하지 않는 경우에는, 레벨 2(L2) 캐시(14)에서 페치하거나 L2 캐시에 존재하지 않는 경우에는 메인 메모리(16)에서 페치한다. 본 실시예에서는, L2 캐시(14)를 명령 L1 캐시(7)와 데이터 L1 캐시(8) 사이에서 공유하지만, 명령들 및 데이터에 대한 별개의 L2 캐시들이 설치될 수도 있다는 것은 자명하다. ITCM(9) 및 DTCM(10)은, 프로세서에 대해 로컬인 메모리이지만(따라서 L2 캐시(14) 및 메인 메모리(16)에 비해 낮은 액세스 대기시간을 갖지만), 라인필 연산 및 방출(eviction)이 존재하지 않기 때문에 명령 캐시(7) 및 데이터 캐시(8)보다 더 큰 예측가능성을 갖는 메모리이다. ITCM(9) 및 DTCM(10)에 기억된 명령 및 데이터는 프로세서 코어(5)에 의해 제거될 때까지 밀결합 메모리에 유지된다. 예를 들면, 낮은 대기시간으로 항상 이용가능해야 하는 중요한 코드 또는 데이터는 ITCM(9) 또는 DTCM(10)에 배치되어야 한다. 이때, 일부 실시예는 도 1에 도시된 모든 종류의 메모리(7, 8, 9, 10)를 갖지 않을 수도 있다(예를 들어, 일부 시스템은 TCM들을 갖지 않거나 공유된 명령/데이터 캐시를 가질 수도 있다).
각각의 메모리 종류(7, 8, 9, 10)는 대응하는 메모리 제어기(17, 18, 19)를 갖는다. 예를 들면, 명령 캐시부(17)는 명령 캐시를 제어하고, 데이터 캐시부(18)는 데이터 캐시(8)를 제어하며, TCM 제어부(19)는 TCM들(9, 10)을 제어한다. 각각의 메모리 제어기는 버스(21)를 거쳐 처리 코어(5)의 로드/스토어 유닛(20)에 의해 발행된 메모리 트랜잭션들을 수신한다. 트랜잭션은 로드 또는 스토어 명령 또는 명령 페치의 결과일 수 있다. 버스(21)는 메모리(7-10) 당 한 개까지 복수의 메모리 트랜잭션들을 즉시 전달한다. 각각의 메모리 종류(7, 8, 9, 10)는 다수의 논리 메모리를 구비해도 된다(예를 들면, 캐시 7, 8은 한 개 이상의 태그 RAM 유닛들과 한 개 이상의 다양한 데이터 RAM 유닛들을 구비해도 된다), 각각의 논리 메모리는 메모리의 다수의 물리 뱅크들을 구비해도 된다.
프로세서(4)를 포함하는 칩(2)은 메모리 위치들이 결함이 있는지 여부를 테스트하는데 사용될 수 있는 내장 자체 테스트 능력(본 명세서에서는 메모리 내장 자체 테스트 또는 MBIST라고 한다)을 갖는다. MBIST 로직을 사용하여, 칩(2)이 이미 필드에 배치되고 프로세서 코어(5)가 동작상태로 유지될 때 메모리들(7-10)의 결함을 테스트할 수 있는 온라인 MBIST를 제공할 수도 있다. 이와 같은 구성은, 메모리가 완벽하게 테스트되어 제조시에 에러가 없는 것으로 판정되더라도, 나중에 다양한 이유로 인해 결함이 발생할 수도 있기 때문에 유용하다. 예를 들어, 개별적인 메모리 셀들이 경시변화된 트랜지스터들로 인해 결함이 생길 수 있고, 워드라인 타이밍 결함이 일렉트로마이그레이션으로 인해 일어날 수도 있고, 일렉트로마이그레이션으로 인해 비아들이나 접점들이 낡아 없어질 수도 있고, 트랜지스터가 경시변화함에 따라 센스 증폭기가 결함이 생길 수도 있다. 일반적으로 이들 경시변화 효과는 메모리 회로들의 성능이 열화되도록 하여 속도를 줄인다. 따라서, 백투백으로 전체의 기능 속도에서 메모리 테스트 트랜잭션들을 행하는 것이 유용하다. 올바르지 않은 값이 메모리에서 판독되거나 중요한 데이터 또는 필요한 명령을 전혀 판독할 수 없는 경우에, 메모리 위치의 결합이 프로세싱 에러를 일으킬 수 있다. 이것은 안전 필수 응용분야에 사용되는 장치(예를 들어 차량에서 잠금방지 브레이크 시스템을 제어하는 장치)에 대해서는 특히 중요하다. 온라인 MBIST 능력을 제공함으로써, 안전상의 위험을 일으키지 전에 이와 같은 에러를 검출할 수 있다.
온라인 MBIST를 지원하기 위해, 프로세서(4)는 MBIST 인터페이스(22)(예를 들면, 입출력 핀들의 집합)와 MBIST 절차중에 프로세서(4)를 설정하는 MBIST 인터페이스부(24)를 갖는다. 데이터 처리장치(2)는 MBIST 테스트 절차의 성능을 제어하는 MBIST 제어기(30)를 더 구비한다. 다른 실시예에서는, MBIST 제어기가 프로세서(4) 내부에 배치될 수도 있다.
MBIST 인터페이스(24)는 제어, 어드레스 및 데이터 정보가 MBIST 제어기(30)와 프로세서(4) 사이에서 전달될 수 있도록 한다. 이 인터페이스(24)는 (a) MBIST 진입 단계 (b) 타겟 메모리를 테스트하는데 사용되는 MBIST 판독 및 기록 트랜잭션들과 (c) MBIST 종료 단계를 포함하는 표준화된 프로토콜을 갖는다. MBIST 진입 단계는, 인터페이스(24)의 일부인 요구 및 확인응답 신호들과 어레이 버스를 사용하여 테스트하려는 논리 메모리를 선택한다. 메모리 트랜잭션들(b)은 MBIST 진입 및 종료 단계 (a) 및 (c) 사이에서 일어난다. MBIST 종료 단계는 인터페이스(24)의 일부인 요구, 확인응답 및 어레이 선택 신호들을 사용하여 진입 단계 (a)에서 선택된 논리 메모리의 선택을 해제한다. 프로토콜의 모든 단계 (a), (b) 및 (c) 중에 어레이 신호는 변하지 않는다. 이와 같은 인터페이스(24)는 프로세서(4)와 동일한 클록 주파수에서 동작하며 MBIST 트랜잭션들을 백투백으로 전달할 수 있다.
MBIST 제어기(30)는 MBIST 인터페이스(24)를 제어한다. MBIST 제어기(30)는 전술한 MBIST 테스트 절차를 자체적으로 행하는 기능을 포함한다. 이것은 도 1에 도시하지 않은 인터페이스를 거쳐 프로세서(4) 또는 도면에 도시하지 않은 테스트 제어 프로세서에 의해 프로그래밍된다. 또한, 이것은 어드레스, 데이터, 어레이(테스트할 논리 메모리), 상태 및 제어 레지스터들을 더 포함한다. 이것은 테스트 버스트를 개시하도록 기동하는 입력신호를 갖는다. 이 신호에 응답하여, MBIST 제어기(30)는 MBIST 진입 시퀀스, 버스트를 구성하는 메모리 판독 및 기록 트랜잭션들, 및 MBIST 종료 시퀀스를 행한다. 버스트의 종료시에, MBIST 제어기(30)는 다음 버스트에 대비하기 위해 어드레스 레지스터를 갱신한다. 논리 메모리 내부의 모든 위치들이 테스트되면, MBIST 제어기(30)는 레지스터 내부의 테스트 종료 상태 비트를 세트하고, 프로세서(4) 또는 도면에 도시하지 않은 테스트 제어 프로세서를 인터럽트하는데 사용되는 테스트 종료 신호를 어서트한다. 버스트 중에 메모리 결함이 검출되는 경우에는, MBIST 제어기가 레지스터 내부의 메모리 결함 상태 비트를 세트하고, 프로세서(4) 또는 테스트 제어 프로세서를 인터럽트하는데 사용되는 메모리 결함 신호를 어서트한다. 프로세서는 상태 및 어드레스 레지스터들을 판독하여 어떤 메모리 위치가 결함이 있는지를 판정할 수 있다. MBIST 제어기(30)는 프로세서(4)와 동일한 클록 주파수에서 동작하며 MBIST 트랜잭션들을 백투백으로 행할 수 있다.
MBIST 인터페이스부(24)는, 인터페이스(24)의 일부인 어레이 신호에 근거하여, MBIST 인터페이스(24)와 메모리 제어기 17, 18 또는 19 사이에서 요구, 확인응답 및 논리 메모리 선택 신호들과 메모리 트랜잭션들을 루팅한다.
MBIST 진입 단계중에 발생하고, 어레이 버스에 의해 선택된 논리 메모리에 대해 테스트 절차를 행해야 한다는 것을 표시하는, MBIST 제어기(30)로부터의 MBIST 요구에 응답하여, 동일한 메모리 종료 7-10의 일부이며 선택된 논리 메모리가 일부를 구성하는 모든 메모리들이 관련된 메모리 제어기 17-19에 의해 예약된다(고정된다(locked)). 확인응답이 다시 MBIST 제어기(30)로 되돌려지기 전에 모든 인플라이트 메모리 트랜잭션들이 완료할 때 메모리가 고정된다. 고정된 메모리들은, MBIST 종료 단계 중에서 발생하는 고정이 제거될 때까지 프로세서 코어(5)로부터 메모리 트랜잭션들을 서비스할 수 없다. 한편, 테스트 절차가 행해지는 동안 예약되지 않은 메모리들(7-10)에 의해 트랜잭션들이 여전히 처리될 수 있으므로, 프로세서에 대한 성능상의 영향은 줄어든다. 또한, MBIST 인터페이스 프로토콜, 테스트 절차 및 프로세서(4) 내부의 MBIST 로직은, 고정이 활성화되는 시간이 가능한한 짧게 유지되도록 보장하도록 설계된다.
도 2는 메모리들(7-10) 중에서 한 개의 내부에 있는 한 개 이상의 타겟 메모리 위치들을 테스트하기 위한 MBIST 테스트 절차를 행하는 처리를 나타낸 것이다. 도 2에는, MBIST 제어기(30, MBIST 인터페이스부(24), 메모리 제어기(18) 및 프로세서 코어(5) 사이의 상호작용이 도시되어 있다. 본 실시예에서는 데이터 캐시(8)에 대한 메모리 제어기(18)가 도시되어 있지만, 다른 종류의 메모리에 대해서도 동일한 동작이 적용된다.
스텝 S1에서, 프로세서는 다수의 메모리 트랜잭션들을 캐시(8)에게 발행하며, 메모리 제어기(18)는 이에 응답하도록 캐시(8)를 제어한다. 스텝 S2에서, MBIST 제어기(30)는 MBIST 인터페이스 프로토콜 진입 단계에 진입한다. 이것은, 캐시 메모리(8) 내부의 논리 메모리를 선택하는 값으로 어레이 버스를 설정하고, MBIST 인터페이스(22) 상에 MBIST 요구 신호를 어서트한다. 어레이 버스는 MBIST 인터페이스부(24)에 의해 디코드되어, 이 요구를 데이터 캐시 메모리 제어기(18)로 루팅한다. 예를 들어, MBIST 요구는 특정한 테스팅 스케줄에 응답하여 MBIST 제어기에 의해 주기적으로 기동되거나(예를 들어, 테스트 타이머 경과에 의해 기동되거나), MBIST 요구는 코어(5)에 의한 처리중에 발견된 프로세싱 에러에 의해 기동되어도 된다(예를 들면, 오류정정 코드를 사용하여 에러를 검출해도 된다).
스텝 S3에서, 테스트를 위해 선택된 논리 메모리(8)에 대한 해당 메모리 제어기(18)는, 테스트를 위해 그 자신을 준비하고, 메모리가 프로세서 코어(5)로부터 새로운 트랜잭션을 서비스할 수 없도록 메모리를 예약한다. 일단 예약이 되면, 메모리 제어기(18)는 테스트 절차가 완료할 때까지 프로세서 코어(5)로부터의 추가적인 트랜잭션들을 중지하게 된다. 스텝 S4에서, 코어(5), L2 캐시(14) 또는 메인 메모리(16)에 대한 미처리된 메모리 트랜잭션이 존재하는 경우에는, 이들 트랜잭션이 완료할 때까지 메모리 제어기(18)가 대기한다. 예를 들어, L2 캐시(14)로부터 캐시 라인필을 기동한 트랜잭션이 완료하도록 허용되고, 캐시 메모리(8)에 라인이 기록된다.
메모리(8)가 일단 테스트 준비가 되면, 스텝 S5에서 메모리 제어기는 그것의 메모리가 테스트 준비가 되었다는 것을 MBIST 인터페이스부(24)에 신호로 알린 후, 스텝 S6에서 MBIST 인터페이스부(24)는 인터페이스(22)를 거쳐 MBIST 제어기(30)에 MBIST 확인응답을 발행한다. 이것은 MBIST 제어기(30)에게 프로세서가 이제 테스트 준비가 되었다는 것을 통보하는 것으로, 이것이 MBIST 진입 단계를 종료하게 한다. 그후, MBIST 제어기(30)는 스텝 S7에서 테스트 절차를 개시한다. 테스트 절차는 타겟 위치(들)가 올바르게 동작하고 있는지 여부를 조사하기 위한 타겟 위치(들)에 대한 짧은 버스트의 MBIST 트랜잭션들로 구성된다. 테스트 절차는 이하에서 더욱 상세히 설명한다.
테스트 절차가 행해지고 있는 동안, 프로세서 코어(5)는 메모리 트랜잭션들의 발행을 계속할 수 있다. 테스트를 위해 예약하지 않은 메모리 종류를 액세스하는 메모리 트랜잭션들은 여전히 서비스될 수 있다. 예를 들면, 스텝 S8에서, 프로세서 코어(5)는 ITCM(9)에 트랜잭션을 발행하고, TCM 제어부(19)는 정상적으로 응답하도록 ITCM을 제어한다. 그러나, 스텝 S9에서 프로세서 코어(5)가 테스트를 위해 예약된 메모리(8)에 메모리 트랜잭션을 발행하도록 시도하는 경우에는, 트랜잭션이 대응하는 메모리 제어기(18)에 의해 중지된다.
테스트 절차가 완료하면, 스텝 S10에서 MBIST 제어기(30)는 MBIST 요구신호를 해제함으로써 MBIST 인터페이스 프로토콜의 종료 단계를 개시한다. 이것이 MBIST 인터페이스부(24)에 의해 검출되고, MBIST 인터페이스부는 스텝 S11에서 타겟 메모리에 대한 메모리 제어기에게 메모리의 예약을 해제하도록 지시함으로써, 프로세서 코어(5)가 다시 사용할 수 있게 된다. 따라서, 스텝 S12에서, 프로세서 코어(5)가 메모리(8)에 대한 소프트웨어 개시된 트랜잭션에 의해 중지된 경우에는, 이것이 평소와 같이 진행되고, 프로세서가 MBIST 예약에 의해 중지되는 것이 중단된다. MBIST 제어기(30)는 미처리된 MBIST 판독 트랜잭션들이 프로세서(4)로부터 되돌려지는 것을 대기하고, 이것이 MBIST 종료 단계를 끝내게 한다.
다른 실시예에서는, MBIST 인터페이스부(24)가 덜 중요한 역할을 취하고 MBIST 인터페이스(22)와 메모리 제어기(17-19) 사이에서 단순히 정보를 루팅해도 된다. 이 경우에, MBIST 요구 및 MBIST 확인응답은 MBIST 인터페이스(22) 및 MBIST 인터페이스부(24)를 거쳐 MBIST 제어기(30)와 메모리 제어기(17-19) 사이에서 직접 교환되어도 된다.
특히, 스텝 S3-S6에서, 일부 실시예에서는 다음과 같은 스텝들이 행해져도 된다: a) 데이터 캐시 메모리 제어기와 코어 사이에 미처리된 트랜잭션이 존재하는 경우에는, 이것이 완료된다. b) 코어로부터의 추가적인 트랜잭션이 데이터 캐시 메모리 제어기에 의해 개시되지 못하게 하는 메모리 예약(고정)이 적용된다. c) 데이터 캐시 메모리 제어기와 L2 캐시 또는 메인 메모리 사이에 미처리된 트랜잭션이 존재하는 경우에는, 이것이 완료된다. d) 그후 확인응답 신호가 다시 MBIST 인터페이스부로 송신된다.
스텝 S7에서의 테스트 절차는, 프로세서 코어(5)에 의해 사용하기 위해 메모리를 해제하기 전에, 주어진 논리 메모리 내부의 몇 개의 메모리 위치들을 한번에 테스트하는 (예를 들면, 20보다 적은 처리 사이클 동안 지속되는) 매우 짧은 버스트의 트랜잭션들이어도 된다. 다음의 버스트는 이전의 버스트와는 다른 위치를 테스트한다. 따라서, 시간이 흐르면 메모리 내부의 모든 위치들이 테스트된다. 각각의 버스트의 길이에 비해 버스트들 사이의 시간이 크고 각각의 버스트가 매우 짧기 때문에, 프로세서가 불이익이 없이 예약되지 않은 메모리들을 액세스할 수 있으며, 소프트웨어 개입이 없이 버스트들이 행해지는데, 이것은 프로세서의 성은에 대한 메모리 테스트의 영향을 거의 무시할 수 있게 만든다. 각각의 짧은 테스트 버스트는, 예를 들어 카운터 만료에 의해 기동되어, 정기적으로 일어날 수 있다.
스텝 S7에서의 테스트 절차 중에 행해지는 트랜잭션들의 버스트의 일례를 이하에 나타낸다. 버스트는 일정한 범위의 메모리 위치들에 대해 n의 복수의 값에 걸쳐(각각의 버스트에 대해 별개의 MBIST 요구를 사용하여) 반복됨으로써 전체 범위의 메모리를 테스트할 수 있다. 각각의 버스트는 어드레스 n과 제 1 위치의 어드레스로부터 크기 m만큼 오프셋되는 두 번째 어드레스 n+m에 의해 명시된 한쌍의 메모리 위치를 타겟으로 한다. 물리 메모리 내부의 다른 유닛이 한 쌍의 두 번째 트랜잭션에 의해 액세스되어 위치들이 일반적으로 메모리의 서로 다른 부분에 위치하도록 m의 값이 선택되는데, 이것은 테스트 중에 메모리를 더욱 철저하게 스트레스를 주는데 유용하다. 이하의 트랜잭션들에서, "X"는 위치 n에서 판독된 레지스터 X에 있는 값을 표시하고, "∼X"는 레지스터 X의 값을 반전하는 것에 대응하는 값을 표시하고, "Y"는 위치 n+m에서 판독된 레지스터 Y의 값을 표시한다.
연산 주석
1 위치 n을 판독하고 reg X에 기억 위치 n을 보존
2 위치 n+m을 판독하고 reg Y에 기억 위치 n+m을 보존하고 다음 워드라인을 활성화
3 위치 n+m에 X를 기록
4 위치 n에 ∼X를 기록 워드 라인 및 모든 비트 라인들을 전환
5 위치 n을 판독하고 이것이 ∼X와 같은지 검사 위치 n에 비트가 갇혀 있지 않은 것을 확인
6 위치 n+m을 판독하고 이것이 X와 같은지 검사 워드 라인 및 모든 비트 라인들을 전환
7 위치 n에 X를 기록 위치 n을 복원
8 위치 n+m에 Y를 기록 위치 n+m을 복원
9 위치 n을 판독하고 이것이 X와 같은지 검사 X가 올바르게 복원되었는지 검사
10 위치 n+m을 판독하고 이것이 Y와 같은지 검사 Y가 올바르게 복원되었는지 검사
테스트 절차의 종료시에 위치 n 및 n+m에 잇는 값들이 절차의 개시시와 동일하여, 프로세서 코어(5)가 테스트 절차를 가능하게 하기 전에 소프트웨어로 데이터를 보존/복원할 필요가 없기 때문에, 이 알고리즘은 투명한 MBIST 테스트 절차이다. 버스트의 스텝 8에서의 최종의 기록 트랜잭션 이후에, 스텝 9 및 10에서의 다음의 판독이 데이터의 유효성에 영향을 미치지 않기 때문에 예약된 메모리의 예약을 해제할 수 있으므로, 프로세서 코어(5)로부터 메모리의 예약 영역에의 메모리 트랜잭션들이 스텝 9 및 10과 병렬로 서비스가 개시될 수 있다.
테스트 알고리즘이 정규의 메모리 트랜잭션들과 유사하게 메모리 제어기에 의해 "고속으로" 처리되기 때문에, 이 테스트 절차는 정규의 메모리 트랜잭션들을 서비스할 때 메모리의 가동의 철저한 테스트를 제공하는데, 이것은 정규의 메모리 트랜잭션들에 사용되지 않는 메모리 내부에의 대체 루트를 사용하기 때문에 더 속도가 느려지는 다른 테스트 방법에서는 가능하지 않은 것이다. 스텝 1 및 2가 백투백으로 행해져도 되고 스텝 3-10이 백투백으로 행해져도 된다. 실제로, 스텝 3 이후의 연산들 사이에 의존성이 존재하지 않도록 이 알고리즘이 설계되었다. 일부 메모리에 대해, 액세스 대기시간은 스텝 2와 3 사이에 몇 개의 사이클의 갭이 존재한다는 것을 의미할 수도 있다. MBIST 인터페이스 프로토콜은 이전의 판독된 트랜잭션들의 그들의 판독 데이터를 반환하기 전에 트랜잭션들이 개시될 수 있도록 한다. 따라서, 이 프로토콜은 (MBIST 제어기에 의해 추적될 수 있는 미처리된 트랜잭션들의 개수까지) 임의의 개수의 미처리된 트랜잭션들이 즉시 발생할 수 있게 한다.
상기한 스텝 1 및 2에서는, 위치 n 및 n+m에서 판독된 값들이 레지스터 X, Y에 기억된다. 이들 레지스터는 프로세서의 레지스터들(6)의 일부이어도 된다. 이와 달리, 일부 레지스터들이 테스트되고 있는 메모리의 메모리 제어기(17-19) 내부에 설치되어, 레지스터들에 값을 기억하고 레지스터들로부터 값을 다시 판독하는 것과 관련된 대기시간을 줄일 수 있으므로, 테스트 절차와 관련된 전체 시간의 길이를 줄일 수 있다.
테스트 절차의 스텝들 5, 6, 9 또는 10에서의 검사들 중에서 한 개에 의해, 위치에서 판독된 값이 그것의 예측된 값과 일치하지 않는 것으로 밝혀진 경우에는, MBIST 제어기(30)에 의해 에러가 플래그로 표시된다. 에러가 검출되면, 이 에러에 응답하는 다양한 방법이 존재할 수 있다. 예를 들어, 결함이 잇는 메모리 위치를 메모리 제어기(17-19)에서 사용불가능한 것으로 설정해도 된다. 일부 시스템은 중복성(redundancy)을 가지므로, 여분의 블록의 메모리가 설치되어도 된다. 그후, 에러가 발생하면, 결함이 있는 블록 대신에 여분의 블록을 사용할 수 있다. 또한, 물리 메모리 매크로는, 결함이 있는 행이나 열들이 디스에이블될 수 잇도록 하고 저장 위치들의 중복 행들이나 열들로 교체될 수 잇도록 하는 복구 특성을 포함해도 된다. 또한, 일부 시스템은, 에러가 검출되는 경우 프로세서 코어(5)의 기능을 줄이는 림프홈(limp home) 모드를 가져도 된다. 예를 들어, L1 데이터 캐시(8)가 결함이 있으면, 이것을 디스에이블한 후 L2 캐시(14)를 사용하여 모든 처리를 행하도록 해도 되는데, 이것은 L2 캐시(14)가 훨씬 느린 대기시간을 가지므로 이상적이지는 않지만 프로세서 코어(5)가 일부의 기능을 제공할 수 있게 한다. 일부의 경우에는, 충분한 결함이 검출되면, 전체 칩(2)을 교체해야만 한다는 것을 표시하는 경고를 유저에게 제시하는 신호를 발생해도 된다. 예를 들어, 차량의 계기판에 잇는 경고등을 표시해도 된다. 따라서, 검출된 에러에 응답하는 다양한 방법이 존재한다.
도 1에서는 MBIST 인터페이스부(24)와 메모리 제어기들(17-19)이 별개인 것으로 도시되어 있지만, MBIST 인터페이스부(24)의 기능이 메모리 제어기들(17-19) 자체들에 의해 행해지는 경우도 있다. 또한, 일부 실시예에서는, 메모리 제어기들 대신에, MBIST 인터페이스부(24)가 테스트되고 잇는 메모리 위치들을 고정하는 역할을 하여도 된다. 따라서, 일반적으로, 장치(2)는 MBIST 제어기(30)에 의해 테스트되고 있는 적어도 한 개의 위치를 포함하는 메모리 영역을 예약하는 하드웨어로 구현된 일부 제어회로를 가져도 된다.
위에서 주어진 실시예에서는, 테스트 타겟 위치(들)를 포함하는 전체 메모리 종류가 테스트 절차 중에 예약되어, 프로세서로부터의 메모리 트랜잭션들을 서비스할 수 없다. 그러나, 일정한 메모리 종류 내부의 더 작은 영역을 고정 및 고정을 해제하여, 동일한 메모리 종류 내부의 다른 영역들을 코어(5)에 의해 여전히 액세스할 수 있도록 하는 것도 가능하다. 예를 들어, 개별적인 논리 메모리들, RAM 유닛들, 뱅크들, 행들, 또는 메모리 위치들의 기타 서브유닛들이 MBIST 인터페이스(24) 또는 메모리 제어기(17-19)에 의해 개별적으로 고정되거나, 메모리 위치들이 개별적으로 고정되어도 된다.
온라인 MBIST에 사용된 MIST 인터페이스(22), MBIST 인터페이스부(24) 및 메모리 제어기들(17-19)의 기능이 제조 MBIST를 행하기 위해 제조중에 사용되어도 된다. 이와 같은 구성은 2개의 별개의 MBIST 인터페이스들을 사용할 필요성을 없앤다. 그러나, 제조 MBIST에 대한 테스트 절차가 온라인 MBIST에 대한 테스트 절차와 다를 수도 있다. 따라서, 서로 다른 종류의 MBIST에 대해 서로 다른 MBIST 제어기들(30)이 설치될 수도 있다. 일부의 경우에는, MBIST 제어기는 메모리 테스트를 행하기 위한 칩(2) 내부의 일부의 프로세싱 로직이어도 된다. 이와 달리(특히 제조 MBIST에 대해), MBIST 제어기(30)는, 오프칩이고 테스트를 위해 MBIST 인터페이스(22)에 접속되는 범용 컴퓨터 또는 기타의 외부 장치이어도 된다.
도 1에 도시된 실시예에서는, 각각의 메모리들(7-10)에 근접한 메모리 제어기들(17-19)만을 재사용하여 MBIST 테스트 트랜잭션들을 메모리로 전달한다. 따라서, 프로세서 코어(5) 내부의 정규의 메모리 액세스 파이프라인들이 명령을 실행하고 정상적으로 다른 메모리를 액세스해도 된다. 또한, 메모리 제어기들(17-19) 내부의 메모리 인터페이스에서의 최종 파이프라인 스테이지 전에 MBIST 트랜잭션들이 주어진다. 이것은, 메모리 테스트의 제공으로 인해 기능 인터페이스 타이밍에 대해 거의 또는 전혀 영향이 없으며, MBIST 테스트 중에 기능 메모리 인터페이스 로직도 테스트된다는 것을 의미한다.
첨부도면을 참조하여 본 발명에서 예시적인 실시예들을 상세히 설명하였지만, 청구범위가 이들 실시예에 한정되지 않으며, 첨부된 청구범위의 보호범위 및 사상을 벗어나지 않으면서 본 발명이 속한 기술분야의 당업자에 의해 다양한 변경, 부가 및 변화가 행해질 수 있다는 것은 자명하다. 예를 들면, 종속항들의 특징들의 다양한 조합이 독립항들의 특징과 행해질 수도 있다.

Claims (20)

  1. 데이터를 기억하도록 구성된 적어도 한 개의 메모리와,
    상기 적어도 한 개의 메모리 내부의 데이터를 액세스하기 위한 메모리 트랜잭션들을 발행하도록 구성된 처리회로와,
    상기 적어도 한 개의 메모리의 적어도 한 개의 타겟 메모리 위치를 테스트하기 위해 테스트 절차를 행해야 한다는 것을 나타내는 MBIST 요구를 수신하도록 구성된 메모리 내장 자체 테스트(MBIST) 인터페이스와,
    상기 MBIST 인터페이스에 의해 수신된 상기 MBIST 요구를 검출하고, 상기 MBIST 요구 검출에 응답하여, 상기 적어도 한 개의 타겟 메모리 위치를 포함하는 적어도 한 개의 예약 메모리 위치를 테스트하는 것을 예약하도록 구성된 제어회로를 구비하고,
    상기 테스트 절차 중에, 상기 적어도 한 개의 메모리는, 상기 제어회로에 의해 예약된 상기 적어도 한 개의 예약 메모리 위치 이외의 메모리 위치를 타겟으로 하는 상기 처리회로에 의해 발행된 메모리 트랜잭션들의 서비스를 계속하도록 구성된, 데이터 처리장치.
  2. 제 1항에 있어서,
    상기 제어회로는 상기 적어도 한 개의 예약 메모리 위치 중에서 한 개를 타겟으로 하는 상기 처리회로로부터의 메모리 트랜잭션들의 서비스를 금지하도록 구성된 데이터 처리장치.
  3. 제 1항에 있어서,
    복수 종류의 메모리를 구비한 데이터 처리장치.
  4. 제 3항에 있어서,
    상기 복수 종류의 메모리는,
    데이터 캐시,
    명령 캐시,
    데이터 밀결합 메모리, 및
    명령 밀결합 메모리 중에서 2가지 이상을 포함하는 데이터 처리장치.
  5. 제 3항에 있어서,
    상기 적어도 한 개의 예약 메모리 위치는, 상기 적어도 한 개의 타겟 메모리 위치로서 동일한 종류의 메모리 내부의 메모리 위치들을 포함하는 데이터 처리장치.
  6. 제 1항에 있어서,
    상기 적어도 한 개의 예약 메모리 위치는, 상기 적어도 한 개의 타겟 메모리 위치로서 동일한 서브유닛의 메모리 내부의 메모리 위치들을 포함하는 데이터 처리장치.
  7. 제 1항에 있어서,
    상기 제어회로는, 상기 처리회로에 의해 실행된 소프트웨어의 개입이 없이 테스트하기 위해 상기 적어도 한 개의 예약 메모리 위치를 예약하도록 구성된 데이터 처리장치.
  8. 제 1항에 있어서,
    상기 테스트 절차의 적어도 일부의 완료후에, 상기 제어회로가, 상기 처리회로에 의해 발행된 메모리 트랜잭션들을 서비스하기 위해 상기 적어도 한 개의 예약 메모리 위치를 이용가능하게 하기 위해 상기 적어도 한 개의 예약 메모리 위치의 예약을 해제하도록 구성된 데이터 처리장치.
  9. 제 1항에 있어서,
    상기 테스트 절차는 상기 적어도 한 개의 메모리의 메모리 위치들의 서브셋을 테스트하기 위해 상기 적어도 한 개의 메모리에 발행된 테스트 트랜잭션들의 버스트를 포함하는 데이터 처리장치.
  10. 제 9항에 있어서,
    상기 MBIST 인터페이스는 복수의 MBIST 요구들을 수신하도록 구성되고, 각각의 MBIST 요구는 상기 적어도 한 개의 메모리의 메모리 위치들의 다른 서브셋을 테스트하기 위한 테스트 트랜잭션들의 버스트에 대응하는 데이터 처리장치.
  11. 제 1항에 있어서,
    상기 적어도 한 개의 타겟 메모리 위치를 테스트하기 위한 테스트 절차는 인터럽트 불가능한 데이터 처리장치.
  12. 제 1항에 있어서,
    상기 MBIST 요구의 검출에 응답하여, 상기 제어회로가 상기 MBIST 인터페이스를 거쳐 MBIST 확인응답 신호를 발행하여 상기 MBIST 인터페이스에 접속된 MBIST 제어기를 기동함으로써 상기 테스트 절차를 개시하도록 구성된 데이터 처리장치.
  13. 제 12항에 있어서,
    상기 데이터 처리장치가 상기 테스트 절차를 행할 준비가 될 때까지 상기 제어회로가 상기 MBIST 확인응답 신호의 발행을 지연시키도록 구성된 데이터 처리장치.
  14. 제 1항에 있어서,
    상기 테스트 절차에서, 상기 MBIST 인터페이스는 상기 적어도 한 개의 타겟 메모리 위치를 테스트하기 위한 적어도 한 개의 테스트 트랜잭션을 수신하도록 구성된 데이터 처리장치.
  15. 제 14항에 있어서,
    상기 처리회로에 의해 발행된 메모리 트랜잭션들을 상기 적어도 한 개의 메모리에 루팅하도록 구성된 메모리 제어회로를 구비하고,
    상기 메모리 제어회로의 적어도 일부를 재사용하여, 상기 MBIST 인터페이스에 의해 수신된 상기 적어도 한 개의 테스트 트랜잭션을 상기 적어도 한 개의 메모리에 루팅하는 데이터 처리장치.
  16. 제 1항에 있어서,
    상기 테스트 절차는, 상기 테스트 절차에 의해 에러가 검출되지 않은 경우에, 상기 테스트 절차의 종료시에 상기 적어도 한 개의 타겟 메모리 위치에 기억된 데이터 값이 상기 테스트 절차의 개시시에 상기 적어도 한 개의 타겟 메모리 위치에 기억된 데이터 값과 동일한 투명한 테스트 절차인 데이터 처리장치.
  17. 제 1항에 있어서,
    상기 적어도 한 개의 타겟 메모리 위치는 상기 적어도 한 개의 메모리의 서로 다른 부분에 있는 한쌍의 메모리 위치들을 포함하고, 상기 테스트 절차는,
    (a) 상기 한쌍의 메모리 위치들로부터 제 1 및 제 2 데이터 값을 판독하고 상기 제 1 및 제 2 데이터 값을 제 1 및 제 2 기억 위치에 보존하는 단계와,
    (b) 상기 한쌍의 메모리 위치들에 선택된 데이터 값들을 기록하는 단계와,
    (c) 상기 한쌍의 메모리 위치들에서 판독된 데이터 값들이 상기 한쌍의 메모리 위치들에 기록된 상기 선택된 데이터 값들과 일치하는지 여부를 검사하는 단계와,
    (d) 상기 제 1 및 제 2 기억 위치들로부터 상기 한쌍의 메모리 위치들에 상기 제 1 및 제 2 데이터 값을 기록하는 단계와,
    (e) 상기 한쌍의 메모리 위치들에서 판독된 데이터 값들이 상기 제 1 및 제 2 기억 위치에 기억된 상기 제 1 및 제 2 데이터 값들과 일치하는지 여부를 검사하는 단계를 포함하는 데이터 처리장치.
  18. 제 17항에 있어서,
    상기 제어회로는, 상기 제1 및 제 2 데이터 값이 상기 한쌍의 메모리 위치들에 기록된 후 상기 적어도 한 개의 예약 메모리 위치의 예약을 해제하도록 구성된 데이터 처리장치.
  19. 데이터를 기억하는 적어도 한 개의 메모리수단과,
    상기 적어도 한 개의 메모리수단 내부의 데이터를 액세스하기 위한 메모리 트랜잭션들을 발행하는 처리수단과,
    상기 적어도 한 개의 메모리수단의 적어도 한 개의 타겟 메모리 위치를 테스트하기 위해 테스트 절차를 행해야 한다는 것을 나타내는 MBIST 요구를 수신하는 메모리 내장 자체 테스트(MBIST) 인터페이스수단과,
    상기 MBIST 인터페이스수단에 의해 수신된 상기 MBIST 요구를 검출하고, 상기 MBIST 요구 검출에 응답하여, 상기 적어도 한 개의 타겟 메모리 위치를 포함하는 적어도 한 개의 예약 메모리 위치를 테스트하는 것을 예약하는 제어수단을 구비하고,
    상기 테스트 절차 중에, 상기 적어도 한 개의 메모리수단은, 상기 제어수단에 의해 예약된 상기 적어도 한 개의 예약 메모리 위치 이외의 메모리 위치를 타겟으로 하는 상기 처리수단에 의해 발행된 메모리 트랜잭션들의 서비스를 계속하도록 구성된, 데이터 처리장치.
  20. 적어도 한 개의 메모리와 상기 적어도 한 개의 메모리 내부의 데이터를 액세스하기 위한 메모리 트랜잭션들을 발행하도록 구성된 처리회로를 구비한 데이터 처리장치의 메모리 내장 자체 테스트(MBIST) 방법으로서,
    상기 데이터 처리장치의 MBIST 인터페이스에 의해 수신되고, 상기 적어도 한 개의 메모리의 적어도 한 개의 타겟 메모리 위치를 테스트하기 위해 테스트 절차를 행해야 한다는 것을 나타내는 메모리 내장 자체 테스트(MBIST) 요구를 검출하는 단계와,
    상기 MBIST 요구 검출에 응답하여, 상기 적어도 한 개의 타겟 메모리 위치를 포함하는 적어도 한 개의 예약 메모리 위치를 테스트하는 것을 예약하는 단계와,
    상기 테스트 절차 중에, 상기 적어도 한 개의 메모리가, 상기 적어도 한 개의 예약 메모리 위치 이외의 메모리 위치를 타겟으로 하는 상기 처리회로에 의해 발행된 메모리 트랜잭션들을 서비스하는 단계를 포함하고,
    상기 데이터 처리장치는, 상기 MBIST 요구를 검출하고, 상기 MBIST 요구의 검출에 응답하여 상기 적어도 한 개의 예약 메모리 위치를 예약하는 제어회로를 구비한 메모리 내장 자체 테스트(MBIST) 방법.
KR1020150077688A 2014-06-20 2015-06-02 데이터 처리장치의 메모리 내장 자체 테스트 KR102288558B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/310,162 US9449717B2 (en) 2014-06-20 2014-06-20 Memory built-in self-test for a data processing apparatus
US14/310,162 2014-06-20

Publications (2)

Publication Number Publication Date
KR20150145694A true KR20150145694A (ko) 2015-12-30
KR102288558B1 KR102288558B1 (ko) 2021-08-11

Family

ID=53365724

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150077688A KR102288558B1 (ko) 2014-06-20 2015-06-02 데이터 처리장치의 메모리 내장 자체 테스트

Country Status (4)

Country Link
US (1) US9449717B2 (ko)
EP (1) EP2966650B1 (ko)
JP (1) JP6535517B2 (ko)
KR (1) KR102288558B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210084333A (ko) 2019-12-27 2021-07-07 주식회사 아데나 해조류로부터 다당류를 분리하는 방법 및 이 방법에 의하여 얻어진 다당류

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9813080B1 (en) 2013-03-05 2017-11-07 Microsemi Solutions (U.S.), Inc. Layer specific LDPC decoder
US10230396B1 (en) 2013-03-05 2019-03-12 Microsemi Solutions (Us), Inc. Method and apparatus for layer-specific LDPC decoding
US10018675B1 (en) * 2014-03-14 2018-07-10 Altera Corporation Testing an integrated circuit in user mode using partial reconfiguration
US10332613B1 (en) * 2015-05-18 2019-06-25 Microsemi Solutions (Us), Inc. Nonvolatile memory system with retention monitor
US9799405B1 (en) 2015-07-29 2017-10-24 Ip Gem Group, Llc Nonvolatile memory system with read circuit for performing reads using threshold voltage shift read instruction
JP2017097633A (ja) * 2015-11-25 2017-06-01 日立オートモティブシステムズ株式会社 車両制御装置
US9886214B2 (en) 2015-12-11 2018-02-06 Ip Gem Group, Llc Nonvolatile memory system with erase suspend circuit and method for erase suspend management
US9892794B2 (en) 2016-01-04 2018-02-13 Ip Gem Group, Llc Method and apparatus with program suspend using test mode
US9899092B2 (en) 2016-01-27 2018-02-20 Ip Gem Group, Llc Nonvolatile memory system with program step manager and method for program step management
US10157677B2 (en) 2016-07-28 2018-12-18 Ip Gem Group, Llc Background reference positioning and local reference positioning using threshold voltage shift read
US10291263B2 (en) 2016-07-28 2019-05-14 Ip Gem Group, Llc Auto-learning log likelihood ratio
US10236915B2 (en) 2016-07-29 2019-03-19 Microsemi Solutions (U.S.), Inc. Variable T BCH encoding
KR20180083688A (ko) 2017-01-13 2018-07-23 삼성전자주식회사 애플리케이션 프로세서 및 집적 회로
US10438678B2 (en) * 2017-04-04 2019-10-08 Globalfoundries Inc. Zero test time memory using background built-in self-test
US10311963B2 (en) * 2017-04-19 2019-06-04 Arm Limited Data processing
CN107516546B (zh) * 2017-07-07 2020-09-22 中国航空工业集团公司西安飞行自动控制研究所 一种随机存储器的在线检测装置及方法
KR102554418B1 (ko) * 2018-10-01 2023-07-11 삼성전자주식회사 메모리 컨트롤러 및 이를 포함하는 스토리지 장치
CN111383704B (zh) * 2018-12-29 2022-07-26 深圳市海思半导体有限公司 一种存储器内建自测试电路和对存储器的测试方法
WO2023076671A1 (en) * 2021-11-01 2023-05-04 Synopsys, Inc. Embedded memory transparent in-system built-in self-test

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050283566A1 (en) * 2003-09-29 2005-12-22 Rockwell Automation Technologies, Inc. Self testing and securing ram system and method
US7293199B1 (en) * 2004-06-22 2007-11-06 Sun Microsystems, Inc. Method and apparatus for testing memories with different read/write protocols using the same programmable memory bist controller
US7304875B1 (en) * 2003-12-17 2007-12-04 Integrated Device Technology. Inc. Content addressable memory (CAM) devices that support background BIST and BISR operations and methods of operating same
US20070283104A1 (en) * 2006-05-31 2007-12-06 International Business Machines Corporation Concurrent Hardware Selftest for Central Storage
US8423841B1 (en) * 2002-12-26 2013-04-16 Marvell International Ltd. Method and systems for memory testing and test data reporting during memory testing
US20130173970A1 (en) * 2012-01-01 2013-07-04 Mosys, Inc. Memory device with background built-in self-testing and background built-in self-repair

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5105425A (en) * 1989-12-29 1992-04-14 Westinghouse Electric Corp. Adaptive or fault tolerant full wafer nonvolatile memory
US5423029A (en) * 1993-05-11 1995-06-06 Dell Usa, L.P. Circuit and method for testing direct memory access circuitry
US6966017B2 (en) 2001-06-20 2005-11-15 Broadcom Corporation Cache memory self test
DE10334801B3 (de) 2003-07-30 2005-01-27 Infineon Technologies Ag Halbleiterschaltung und Verfahren zum Testen, Überwachen und applikationsnahen Einstellen einer Halbleiterschaltung
US7251757B2 (en) * 2003-12-02 2007-07-31 International Business Machines Corporation Memory testing
US7203873B1 (en) * 2004-06-04 2007-04-10 Magma Design Automation, Inc. Asynchronous control of memory self test
US8131223B2 (en) * 2006-04-14 2012-03-06 Litepoint Corporation System for testing an embedded wireless transceiver
GB2439968B (en) 2006-07-07 2011-05-25 Advanced Risc Mach Ltd Memory testing
US7908530B2 (en) 2009-03-16 2011-03-15 Faraday Technology Corp. Memory module and on-line build-in self-test method thereof for enhancing memory system reliability
DE102010002309B4 (de) 2010-02-24 2013-04-18 Endress + Hauser Gmbh + Co. Kg Verfahren zur Überprüfung der Funktionsfähigkeit eines Speicherelements

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8423841B1 (en) * 2002-12-26 2013-04-16 Marvell International Ltd. Method and systems for memory testing and test data reporting during memory testing
US20050283566A1 (en) * 2003-09-29 2005-12-22 Rockwell Automation Technologies, Inc. Self testing and securing ram system and method
US7304875B1 (en) * 2003-12-17 2007-12-04 Integrated Device Technology. Inc. Content addressable memory (CAM) devices that support background BIST and BISR operations and methods of operating same
US7293199B1 (en) * 2004-06-22 2007-11-06 Sun Microsystems, Inc. Method and apparatus for testing memories with different read/write protocols using the same programmable memory bist controller
US20070283104A1 (en) * 2006-05-31 2007-12-06 International Business Machines Corporation Concurrent Hardware Selftest for Central Storage
US20130173970A1 (en) * 2012-01-01 2013-07-04 Mosys, Inc. Memory device with background built-in self-testing and background built-in self-repair

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210084333A (ko) 2019-12-27 2021-07-07 주식회사 아데나 해조류로부터 다당류를 분리하는 방법 및 이 방법에 의하여 얻어진 다당류

Also Published As

Publication number Publication date
JP2016009489A (ja) 2016-01-18
JP6535517B2 (ja) 2019-06-26
EP2966650B1 (en) 2019-09-18
EP2966650A2 (en) 2016-01-13
US9449717B2 (en) 2016-09-20
US20150371718A1 (en) 2015-12-24
EP2966650A3 (en) 2016-04-20
KR102288558B1 (ko) 2021-08-11

Similar Documents

Publication Publication Date Title
KR102288558B1 (ko) 데이터 처리장치의 메모리 내장 자체 테스트
US10042700B2 (en) Integral post package repair
US7321989B2 (en) Simultaneously multithreaded processing and single event failure detection method
CN107544923B (zh) 用于控制对存储器设备的访问的装置以及相关方法
JP2006510117A (ja) 高信頼性プロセッサ用オンダイ機構
US11113164B2 (en) Handling errors in buffers
US20100332800A1 (en) Instruction control device, instruction control method, and processor
US11625316B2 (en) Checksum generation
US7607038B2 (en) Systems and methods for CPU repair
US9984766B1 (en) Memory protection circuitry testing and memory scrubbing using memory built-in self-test
US10311963B2 (en) Data processing
US7694175B2 (en) Methods and systems for conducting processor health-checks
US6574752B1 (en) Method and system for error isolation during PCI bus configuration cycles
US7607040B2 (en) Methods and systems for conducting processor health-checks
Becker Short burst software transparent on-line MBIST
US7533293B2 (en) Systems and methods for CPU repair
CN103871476B (zh) 嵌入式存储器测试系统
JPH08272756A (ja) マルチプロセッサシステムの起動方法
CN112912958A (zh) 使用内置自测控制器测试只读存储器
US8661289B2 (en) Systems and methods for CPU repair
EP3553662A1 (en) Intergral post package repair
US7702956B2 (en) Circuit for transferring test flag signals among multiple processors, the test flag signals being used by a test controller to generate test signals
US7765383B2 (en) Data processing unit and data processing apparatus using data processing unit
JP2005010995A (ja) マルチプロセッサシステム及びそのライトバックの障害処理方法

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant