KR102584651B1 - 데이터 처리 - Google Patents

데이터 처리 Download PDF

Info

Publication number
KR102584651B1
KR102584651B1 KR1020180042465A KR20180042465A KR102584651B1 KR 102584651 B1 KR102584651 B1 KR 102584651B1 KR 1020180042465 A KR1020180042465 A KR 1020180042465A KR 20180042465 A KR20180042465 A KR 20180042465A KR 102584651 B1 KR102584651 B1 KR 102584651B1
Authority
KR
South Korea
Prior art keywords
memory
data
cache
diagnostic
circuit
Prior art date
Application number
KR1020180042465A
Other languages
English (en)
Other versions
KR20180117539A (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 KR20180117539A publication Critical patent/KR20180117539A/ko
Application granted granted Critical
Publication of KR102584651B1 publication Critical patent/KR102584651B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/27Built-in tests
    • GPHYSICS
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2268Logging of test results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • 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/38Response verification devices
    • 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/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/06Address interface arrangements, e.g. address buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders
    • 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
    • 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/0411Online error correction
    • 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
    • G11C2029/1208Error catch memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

데이터 처리장치는, 데이터를 기억하도록 구성된 적어도 하나의 메모리; 상기 적어도 하나의 메모리에서 데이터를 액세스하는 처리회로; 상기 적어도 하나의 메모리에 액세스하는 인터페이스를 갖고, 상기 적어도 하나의 메모리의 적어도 하나의 목표 메모리 장소를 테스트하며 상기 목표 메모리 장소에 적어도 테스트 데이터를 기록하는 것을 포함하는 테스트 과정을 행하도록 구성된, 메모리 내장 자체 테스트(MBIST) 회로; 및 상기 처리회로에서 실시한 처리 연산들에 응답하여 진단 과정을 실행하여 진단 데이터를 생성하는 진단회로를 구비하고, 상기 MBIST 회로는, 상기 진단회로에서 생성한 상기 진단 데이터를, 상기 적어도 하나의 메모리의 적어도 일부를 포함하는 일시적으로 예약된 메모리 영역에서의 메모리 장소들에 기록하는 것을 제어하도록 구성된다.

Description

데이터 처리{DATA PROCESSING}
본 발명은 데이터 처리에 관한 것이다.
처리회로의 하나 이상의 인스턴스와, 조작되는 데이터 값들과 행해지는 데이터 처리 연산들을 지정하는 프로그램 명령어들을 기억하는 다양한 상이한 형태의 하나 이상의 메모리를, 데이터 처리장치에 제공하는 것이 알려져 있다. 상기 메모리의 형태들로서는, 예를 들면, 메인 메모리들, 캐시 메모리들, 가상 대 물리 메모리 어드레스 변환을 지정하는 데이터 및/또는 메모리 허가 데이터를 기억하는 변환 색인 버퍼들, 및 데이터 처리 시스템내에서 그 밖의 용도를 위한 데이터, 이를테면 분기 예측을 위해 사용된 분기 이력 데이터를 기억하는 메모리들이 있다.
데이터 처리 시스템들내의 메모리들에 관해 메모리 테스트 연산들을 행하는 데이터 처리 시스템들내에 메모리 내장 자체 테스트 회로를 제공하는 것도 알려져 있다. 이러한 메모리 내장 자체 테스트 회로는, 데이터 처리 시스템의 초기 제조시의 초기의 테스팅 및/또는 그 데이터 처리 시스템의 수명동안에 상기 분야에서 계속 진행중인 테스팅을 행하는데 사용되어도 된다. 메모리의 연산에서의 결함을 식별하는 것은, 적절한 응답, 이를테면, 상기 시스템 전체의 연산의 오류를 초래하거나 느리게 할 수 없도록 상기 메모리의 관련 부분을 용도에서 제거하는 것을, 기동하는데 사용될 수 있다. 검출된 오류에 대한 다수의 그 밖의 상이한 형태의 응답도 가능하다.
메모리나 그 메모리의 일부를, 상기 메모리에 액세스하는 프로세서가 메모리 없이 또는, 메모리의 전부의 이용없이, 계속 연산할 수 있도록, 사용 불가능하게 하는 것도 알려져 있다.
상기 처리회로에 의한 처리에 응답하여 진단과정을 실행하여 진단 데이터를 생성하는 내장 진단회로를 제공하는 것도 알려져 있다. 상기 진단 데이터는, 상기 진단회로 사용 전용의 또 다른 메모리에 기억된다.
일 구성예에서의 데이터 처리장치는,
데이터를 기억하도록 구성된 적어도 하나의 메모리-상기 적어도 하나의 메모리는 캐시 메모리를 구비함-;
상기 적어도 하나의 메모리에서 데이터를 액세스하는 처리회로;
상기 적어도 하나의 메모리에 액세스하는 인터페이스를 갖고, 상기 적어도 하나의 메모리의 적어도 하나의 목표 메모리 장소를 테스트하며 상기 목표 메모리 장소에 적어도 테스트 데이터를 기록하는 것을 포함하는 테스트 과정을 행하도록 구성된, 메모리 내장 자체 테스트(MBIST) 회로;
상기 처리회로에서 실시한 처리 연산들에 응답하여 진단 과정을 실행하여 진단 데이터를 생성하는 진단회로;
상기 캐시 메모리에 데이터의 기억과 상기 캐시 메모리로부터 데이터의 검색을 제어하는 캐시 제어기; 및
상기 진단 과정을 실행하는 상기 진단회로에서 생성한 상기 진단 데이터를 기억하기 위해서, 상기 적어도 하나의 메모리의 적어도 일부를 포함하는 메모리 영역을 예약하는 제어회로를 구비하고,
상기 MBIST 회로는, 상기 진단회로에서 생성한 상기 진단 데이터를, 상기 적어도 하나의 메모리의 적어도 일부를 포함하는 일시적으로 예약된(reserved) 메모리 영역에서의 메모리 장소들에 기록하는 것을 제어하도록 구성되고,
상기 캐시 제어기는, 상위 메모리에서 어드레스들에 대응한 데이터의 일시적 기억을 위한 상기 캐시 메모리의 부분들을 할당하도록 구성되고;
상기 제어회로는, 상기 예약된 메모리 영역이 상기 캐시 제어기에 의한 할당에 이용 가능하지 않도록 상기 캐시 제어기에 가리킴으로써 상기 캐시 메모리의 메모리 영역을 예약하도록 구성된다.
다른 구성 예에서의 데이터 처리장치는,
데이터를 기억하는 적어도 하나의 메모리 수단-상기 적어도 하나의 메모리 수단은 캐시 메모리 수단을 구비함-;
상기 적어도 하나의 메모리 수단에서 데이터를 액세스하는 처리수단;
상기 적어도 하나의 메모리 수단에 액세스하는 인터페이스 수단을 갖고, 상기 적어도 하나의 메모리 수단의 적어도 하나의 목표 메모리 장소를 테스트하며 상기 목표 메모리 장소에 적어도 테스트 데이터를 기록하는 것을 포함하는 테스트 과정을 행하도록 구성된, 메모리 내장 자체 테스트(MBIST)수단;
상기 처리수단에서 실시한 처리 연산들에 응답하여 진단 과정을 실행하여 진단 데이터를 생성하는 진단수단을 진단수단;
상기 캐시 메모리 수단에 데이터의 기억과 상기 캐시 메모리 수단으로부터 데이터의 검색을 제어하는 캐시 제어기 수단; 및
상기 진단 과정을 실행하는 상기 진단수단에서 생성한 상기 진단 데이터를 기억하기 위해서, 상기 적어도 하나의 메모리 수단의 적어도 일부를 포함하는 메모리 영역을 예약하는 제어수단을 구비하고,
상기 MBIST 수단은, 상기 진단수단에서 생성한 상기 진단 데이터를, 상기 적어도 하나의 메모리 수단의 적어도 일부를 포함하는 일시적으로 예약된 메모리 영역에서의 메모리 장소들에 기록하는 것을 제어하도록 구성되고,
상기 캐시 제어기 수단은, 상위 메모리에서 어드레스들에 대응한 데이터의 일시적 기억을 위한 상기 캐시 메모리 수단의 부분들을 할당하도록 동작가능하고;
상기 제어수단은, 상기 예약된 메모리 영역이 상기 캐시 제어기 수단에 의한 할당에 이용 가능하지 않도록 상기 캐시 제어기 수단에 가리킴으로써 상기 캐시 메모리 수단의 메모리 영역을 예약하도록 동작가능하다.
다른 구성 예에서의 데이터 처리방법은,
캐시 메모리에 대한 인터페이스를 갖고서 상기 캐시 메모리의 적어도 하나의 목표 메모리 장소를 테스트하는 테스트 과정을 실행하는, 메모리 내장 자체 테스트(MBIST) 회로를 제공하는 단계-상기 테스트 과정은 상기 목표 메모리 장소에 적어도 테스트 데이터를 기록하는 것을 포함함-;
캐시 제어기를 사용하여, 상기 캐시 메모리에 데이터의 기억과 상기 캐시 메모리로부터 데이터의 검색을 제어하는 단계;
상기 캐시 제어기에 의해, 상위 메모리에서 어드레스들에 대응한 데이터의 일시적 기억을 위한 상기 캐시 메모리의 부분들을 할당하는 단계;
상기 캐시 메모리의 적어도 일부를 포함하는 메모리 영역을 일시적으로 예약하는 단계;
처리 연산들에 응답하여 진단 과정을 실행하여 진단 데이터를 생성하는 단계; 및
상기 MBIST회로에 의해, 상기 진단 데이터를 생성하는 단계에서 생성한 상기 진단 데이터를, 상기 예약하는 단계에서 예약된 메모리 영역에서의 메모리 장소들에 기록하는 것을 제어하는 단계를 포함하고,
상기 예약하는 단계는 상기 예약된 메모리 영역이 상기 캐시 제어기에 의한 할당에 이용 가능하지 않도록 상기 캐시 제어기에 가리킴으로써 상기 캐시 메모리의 메모리 영역을 예약한다.
본 기술의 또 다른 각 측면 및 특징들은 첨부된 청구항에 의해 기재되어 있다.
본 기술을, 아래의 첨부도면에 도시된 것과 같은 실시예들을 참조하여 예로만 한층 더 설명한다:
도 1은 데이터 처리 시스템을 개략적으로 도시한 것이고,
도 2a, 2b는 도 1의 데이터 처리 시스템의 부품을 보다 상세히 개략적으로 도시한 것이고,
도 3은 방법을 도시한 개략적 흐름도이고,
도 4는 캐시 제어기를 개략적으로 도시한 것이고,
도 5는 메모리 예약을 도시하는 개략적인 흐름도이고,
도 6은 메모리 해제를 도시하는 개략적인 흐름도이고,
도 7은 예약된 메모리 부분을 개략적으로 도시한 것이고,
도 8 및 도 9는 MBIST 제어기를 거쳐 (각각) 데이터 기록 및 판독을 개략적으로 도시한 것이고,
도 10 및 도 11은 각각의 방법을 도시하는 개략적인 흐름도다.
첨부도면들을 참조하여 실시예들을 설명하기 전에, 이하의 실시예들을 설명한다.
일 실시예의 데이터 처리장치는,
데이터를 기억하도록 구성된 적어도 하나의 메모리;
상기 적어도 하나의 메모리에서 데이터를 액세스하는 처리회로;
상기 적어도 하나의 메모리에 액세스하는 인터페이스를 갖고, 상기 적어도 하나의 메모리의 적어도 하나의 목표 메모리 장소를 테스트하며 상기 목표 메모리 장소에 적어도 테스트 데이터를 기록하는 것을 포함하는 테스트 과정을 행하도록 구성된, 메모리 내장 자체 테스트(MBIST) 회로; 및
상기 처리회로에서 실시한 처리 연산들에 응답하여 진단 과정을 실행하여 진단 데이터를 생성하는 진단회로를 구비하고,
상기 MBIST 회로는, 상기 진단회로에서 생성한 상기 진단 데이터를, 상기 적어도 하나의 메모리의 적어도 일부(예를 들면, 보통, 상기 데이터 처리회로에서 사용하는 메모리나 메모리 일부)를 포함하는 일시적으로 예약된 메모리 영역에서의 메모리 장소들에 기록하는 것을 제어하도록 구성된다.
실시예들에 의해 진단회로를 사용할 수 있어 데이터를 처리할 때 처리회로의 연산을 테스트하지만, 전용 메모리 필요없이 그 결과로 얻어진 진단 데이터를 기억한다. 대신에, MBIST 회로는, 그 진단 데이터를 일시적으로 예약된 메모리 영역에 기록하는데 사용될 수 있다. 예들에 있어서, 상기 MBIST 회로는, 진단 프로세스를 완료한 후(예를 들면, 전적으로는 아니지만, 상기 기억된 데이터를 예를 들면 외부 디버거에 의해 판독된 후) 비진단(정상) 용도로 복귀될 수 있는 일시적으로 예약된 메모리 영역에 상기 진단 데이터를 기억하기 위해 상기 MBIST 테스트 과정에 상기와는 달리 사용된 상기 메모리에 대한 자신의 데이터 인터페이스를 사용할 수 있다. 이들 구성은, 전용 진단 데이터 메모리들에 대한 필요성을 피할 수 있고, 또 보다 큰 양의 진단 데이터를 기억시킬 가능성이 있을 수 있다.
예들에 있어서, 상기 MBIST 회로는, 메모리 판독 과정을 실행하여, 상기 예약된 메모리 영역에 기억된 데이터를 검색하고 그 검색된 데이터를 외부 인터페이스에 제공하도록 구성된다. 이에 따라, 상기 MBIST 회로는 상기 진단 데이터를 (기억할 뿐만 아니라) 판독도 할 수 있다.
본 장치의 나머지 처리 활동성에 어떠한 영향도 완화시키기 위해서, 예들에 있어서 상기 적어도 하나의 메모리는, 상기 예약된 메모리 영역에서의 메모리 장소들 이외의 메모리 장소들에, 상기 처리회로에 의한 액세스를 계속 허용하도록 구성된다.
본 장치는, 상기 진단 과정을 실행하는 상기 진단회로에서 생성한 상기 진단 데이터를 기억하기 위해서, 상기 적어도 하나의 메모리의 적어도 일부를 포함하는 메모리 영역을 예약하는 제어회로를 구비하여도 된다. 예를 들면, 이것은, 외부 디버거에 의해, 또는, 본 장치의 일부인 CPU상에서 동작하는 디버그 소프트웨어에 의해, 제공될 수 있었다.
예들에 있어서, 진단 데이터를 기억하기 위한 상기 MBIST 회로에 의한 상기 메모리 영역의 사용은 일시적일뿐이어서, 상기 제어회로는 상기 예약된 메모리 영역에 관하여 상기 메모리 판독 과정의 완료 후에 상기 예약된 메모리 영역을 해제(release)하도록 구성된다.
이들 기술은, 각종 타입의 메모리에 적용 가능하지만, 예들에 있어서 상기 적어도 하나의 메모리는 캐시 메모리를 구비하고; 본 장치는, 상기 캐시 메모리에 데이터의 기억과 상기 캐시 메모리로부터 데이터의 검색을 제어하는 캐시 제어기를 구비한다. 예들에 있어서, 상기 캐시 제어기는, 상위 메모리에서 어드레스들에 대응한 데이터의 일시적 기억을 위한 상기 캐시 메모리의 부분들을 할당하도록 구성되고; 상기 제어회로는, 상기 예약된 메모리 영역이 상기 캐시 제어기에 의한 할당에 이용 가능하지 않도록 상기 캐시 제어기에 가리킴으로써 상기 캐시 메모리의 메모리 영역을 예약하도록 구성된다. 예들에 있어서, 상기 캐시 메모리의 상기 부분들은, 상기 상위 메모리에서 어드레스들의 인접한 범위에 대응한 데이터를 각각 기억하는 캐시 라인들이나 캐시 웨이(cache way)들을 포함하고; 상기 제어회로는, 하나 이상의 캐시 라인이나 캐시 웨이를 예약하도록 구성된다.
일부의 예들에 있어서, 복수의 메모리를 구비하고, 여기서 상기 제어회로는 메모리 영역을 예약할 상기 복수의 메모리 중 하나의 메모리를 선택하도록 구성된다. 상기 하나의 메모리의 선택은, 상기 진단 데이터의 특징에 좌우될 수 있다. 예를 들면, 상기 복수의 메모리의 서브세트에 관한 연산들을 처리하는 것에 따라 진단 데이터를 기억하기 위해서, 상기 제어회로는, 상기 복수의 메모리의 상기 서브세트이외의 상기 복수의 메모리 중 하나 이상의 메모리를 선택하도록 구성되어도 된다.
상기 복수의 메모리는, 복수의 타입의 메모리를 구비하여도 된다. 예들에 있어서, 상기 복수의 타입의 메모리는,
데이터 캐시;
스눕 필터 메모리;
레벨2 캐시 메모리;
레벨3 캐시 메모리;
명령어 캐시;
그래픽 데이터 메모리;
데이터 밀결합 메모리;
분기 예측용 버퍼;
분기 타겟들용 버퍼;
어드레스 변환용 버퍼; 및
명령어 밀결합 메모리 중, 2개 이상을 포함한다.
상기 다수의 메모리 전부에 관하여 MBIST회로의 하나의 인스턴스를 사용할 수 있긴 하였지만, 구성들의 예는 복수의 MBIST회로를 구비하고, 상기 진단회로는 버스회로에 의해 상기 복수의 MBIST회로에 접속된다. 상기 MBIST회로가 적절하게 제어되어 상기 진단 데이터를 기억하도록, 예들에 있어서, 상기 제어회로는, 상기 예약된 메모리 영역에서의 하나 이상의 메모리 장소를 가리키는 장소 정보를 상기 MBIST회로에 제공하도록 구성된다. 상기 진단 데이터가 상기 예약된 메모리 용량을 초과하는(또는 초과할 가능성이 있을 수도 있는) 상황을 고려하기 위해서, 상기 MBIST회로가 메모리 어드레스들의 순서(order)에 따라 상기 진단 데이터를 상기 예약된 메모리 영역에 기록하는 것을 제어하도록 구성된 순환 구성을 사용하여도 되고, 상기 메모리 어드레스들의 순서는 상기 진단 데이터로 가득찬 상기 예약된 메모리 영역에 응답하여 재시작한다.
그것의 메모리 테스팅 기능을 실시할 때, 예들에 있어서, 상기 MBIST회로에서 행한 상기 테스트 과정은, 상기 데이터 처리회로의 기능적 연산과 병렬로 실시될 수 있다. 이에 따라, 그것의 기능적 연산에 영향을 주지 않고 상기 데이터 처리회로내의 상기 메모리의 일부는 진단 데이터 기억을 위해 오프라인으로 시행될 수 있지만, 그것의 성능은 저하될 수도 있다. 그렇지만, 이때, 이것은 (예를 들면) 전체 CPU가 오프라인으로 시행될 수 있고 또 다른 CPU나 IP 코어(GPU, SCU 등)로부터의 상기 진단 데이터가 상기 오프라인 CPU의 상기 메모리에 기억될 수 있기 때문에 필수적이지는 않다.
구성들의 예로서는, 상기 검색된 진단 데이터를 수신하기 위해 상기 외부 인터페이스에 접속된 디버그 장치가 있다.
다른 실시예의 데이터 처리장치는,
데이터를 기억하는 적어도 하나의 메모리 수단;
상기 적어도 하나의 메모리 수단에서 데이터를 액세스하는 처리수단;
상기 적어도 하나의 메모리 수단에 액세스하는 인터페이스 수단을 갖고, 상기 적어도 하나의 메모리 수단의 적어도 하나의 목표 메모리 장소를 테스트하며 상기 목표 메모리 장소에 적어도 테스트 데이터를 기록하는 것을 포함하는 테스트 과정을 행하도록 구성된, 메모리 내장 자체 테스트(MBIST)수단; 및
상기 처리수단에서 실시한 처리 연산들에 응답하여 진단 과정을 실행하여 진단 데이터를 생성하는 진단수단을 구비하고,
상기 MBIST 수단은, 상기 진단수단에서 생성한 상기 진단 데이터를, 상기 적어도 하나의 메모리 수단의 적어도 일부를 포함하는 일시적으로 예약된 메모리 영역에서의 메모리 장소들에 기록하는 것을 제어하도록 구성된다.
다른 실시예의 데이터 처리방법은,
적어도 하나의 메모리에 대한 인터페이스를 갖고서 상기 적어도 하나의 메모리의 적어도 하나의 목표 메모리 장소를 테스트하는 테스트 과정을 실행하는, 메모리 내장 자체 테스트(MBIST) 회로를 제공하는 단계-상기 MBIST테스트 과정이 상기 목표 메모리 장소에 적어도 테스트 데이터를 기록하는 것을 포함함-;
상기 적어도 하나의 메모리의 적어도 일부를 포함하는 메모리 영역을 일시적으로 예약하는 단계;
처리 연산들에 응답하여 진단 과정을 실행하여 진단 데이터를 생성하는 단계; 및
상기 MBIST회로에 의해, 상기 진단수단에서 생성한 상기 진단 데이터를, 상기 예약된 메모리 영역에서의 메모리 장소들에 기록하는 것을 제어하는 단계를 포함한다.
상기 도면들 및 실시예들을 상세히 설명하기 전에, 일부의 또 다른 배경정보를 제공하겠다.
본 발명의 예들에 있어서, 진단 데이터 기억은 이미 IP 코어(집적회로 디바이스로서 또는 집적회로 디바이스의 일부로서 구현되어도 되는 처리의 블록)에 제시되어 있지만 적은 양은 추가의 기능성도 사용되어도 되는 통상의 기능성과 온라인 MBIST 로직을 재사용한다. 추가의 기능성은, 상기 MBIST 제어기에 구비되어도 된다. 일반적으로, CPU들 및 그 밖의 IP 코어 타입들(이를테면, 스눕 제어유닛(SCU) 또는 레벨3 캐시 메모리(L3))은, 절전이나 그 밖의 이유로 메모리의 전부 또는 일부를 사용 불가능하게 하는 기능성을 갖고, 그럼에도 불구하고 이 모드에서 정상적으로 기능할 수 있다.
풀(Full) 온라인 MBIST는, 온라인 MBIST가 짧은 버스트 메모리 테스팅을 하기 위한 것이기 때문에 진단 데이터 기억을 위해 필요하지 않다. 이러한 사용의 경우에, 상기 메모리는, 상기 CPU상에서 동작하는 SW에 대해 투명하게 테스트되고, 보다 적은 수의 클록 사이클동안 상기 MBIST 제어기에 의해 자동으로 잠긴다. 상기 메모리 콘텐츠는 이러한 테스팅에 의해 오류가 초래되지 않는다. 이것은, 적은 수의 RAM 엔트리들만이 각 버스트에 의해 액세스되고 그래서 그들의 콘텐츠가 상기 MBIST 제어기에 의해 보존 및 회복될 수 있기 때문에 저렴하게 이루어질 수 있다.
진단 데이터 기억의 사용 예는, 상대적으로 긴 시간동안 비교적 대량의 메모리에 액세스 가능하게 하는 것이다. 따라서, 이것은, 통상, 소프트웨어가, 상기 메모리 오프라인으로 시행하고, 필요한 경우 다음 레벨의 메모리에 임의의 더티 데이터를 보존하는 것을 필요로 할 것이다. 이러한 데이터 플러싱(flushing) 연산은, 일부의 IP 코어들(L3)에서 하드웨어에 의해 자동으로 행해진다.
본 기술들에서는, 상기 MBIST 제어기가, 반드시 상기 메모리를 예약하거나 그 메모리의 콘텐츠를 기억하지 않는다. 상기 MBIST 제어기는, 그 진단 데이터를 버스(이를테면, 개선된 추적 버스 즉, ATB, 예를 들면 아래에 설명된 ATBs 230a, 230b, 230c)로부터 수신하여, IP코어상의 MBIST 인터페이스를 거쳐 상기 메모리에 기록한다. 또한, 상기 MBIST 제어기는, 외부 디버거에 대해, 디버그 주변 버스(APB - 이미 MBIST 제어기 프로그래밍을 위해 제시됨)를 거쳐 메모리에 기억된 상기 진단 데이터에 액세스시킨다. 메모리 테스팅을 위해 필요한 상기 MBIST 제어기에서의 일부의 특징들, 이를테면, 메모리에 어떤 값을 기록할 때 증분 또는 감분하는 어드레스 카운터가 재사용된다. 본 기술의 일부의 예들에서 사용한 메인 추가의 MBIST 제어기 특징들은,
- 진단 데이터 버스 인터페이스(예를 들면, ATB)
- 세션동안 메모리 어레이를 자동으로 변경하는 능력이다. 이에 따라, 하나보다 많은 RAM가 데이터를 기억하는데 사용될 수 있다.
상기 메모리 콘텐츠는, 상기 진단 데이터에 의해 오류가 초래되고, 그래서 상기 메모리를 온라인으로 다시 도입할 때, 초기화되어 그것의 콘텐츠가 회복되는 것이 일반적으로 필요할 것이다. 이렇게 하기 위한 회로는, 이미 파워 업 등에서 기능적 이용을 위해 IP코어들에 이미 제시되어 있다.
또한, 온라인 MBIST에 의해 메모리들은 오프라인 이용 모델에서 액세스될 수 있고, 온라인 MBIST의 기능성의 서브세트만이 이 모델에서 사용된다. 이 모델은 메모리 테스팅에도 유용한데, 그 이유는, 상기 메모리 콘텐츠를 동작시키고 오류를 초래하는데 비교적 긴 시간이 걸리는 생성(production) 테스트 알고리즘이 사용될 수 있기 때문이다. 이 모델에서, CPU들 파이프라인은, 그 파이프라인이 소프트웨어로 사용 불가능한 메모리에 액세스하지 못하기 때문에 상기 MBIST 액세스들로 인해 일시 중지되지 않는다. 액세스들은 대신에 다음 메모리 레벨로 진행한다. 그래서, L1 d-캐시가 사용 불가능할 경우(오프라인), 그것의 액세스들은 상기 L2 캐시에 건네지고, 상기 MBIST 제어기는 상기 CPU 파이프라인의 연산에 영향을 미치지 않고 상기 L1 d-캐시에 액세스할 수 있다.
캐시 웨이들이나 전체 캐시는, 오프라인으로 시행될 수 있고 진단 데이터 기억을 위해 사용될 수 있다. 본 발명의 실제의 구현은, 기억용 캐시의 데이터 RAM들의 메모리가 크고 데이터 폭이 크기 때문에 상기 데이터 RAM들을 사용하여, 큰 대역폭을 나타낼 것이다. 일부의 현재의 캐시들에서 데이터 RAM들은, 기록당 데이터의 256비트를 기억할 수 있다. 이것은, 현재 연속적으로 클럭 사이클당 128비트를 생성할 수 있는, ELA에서 생성한 상기 데이터에 맞추어 가는데 유용하다.
일부의 예들에서, 상기 L2 및 L3 캐시는, 사용할 유용한 후보 메모리일 것이다. 또한, L1 캐시들이 사용될 수 있지만, 보다 작고, 오프라인으로 시행될 수 없을 수도 있다. 일반적으로, L2 및 L3 캐시는, 오프라인으로 시행될 수 있다. 또한, L2 캐시들이 CPU에 국한되는 추세이어서, 상기 진단 데이터를 또 다른 CPU로부터 기억하는 L2 캐시를 사용하기 위해 전체 CPU를 오프라인으로 시행하는 것이 가장 좋을 수도 있다. 일부의 현재의 L3 캐시 설계들은, 그들의 웨이의 절반에 의해 전력을 다운시키는 절전의 특징이 있다. 또한, 이 캐시 설계들은, 2개의 독립된 절반으로 분할되어서, 양쪽의 절반에 관해 병렬로 상이한 액세스들이 실시될 수 있다. 이것은, 진단 데이터 기억을 위해 사용하는데 이상적으로 만든다.
도 1은, 인터커넥트(70)를 거쳐 모두 접속된, 제1 프로세서 코어(20), 제2 프로세서 코어(30), 그래픽 처리 유닛(40), 메인 메모리(50) 및 하나 이상의 주변기기(60)를 구비하는, 시스템 온 칩 집적회로와 같은 데이터 처리 시스템(10)을 개략적으로 도시한 것이다.
제1 프로세서 코어(10)와 제2 프로세서 코어(20) 각각은, 레벨 1 명령어 캐시(L1 I$)(22, 32); 레벨 1 데이터 캐시(L1 D$)(23, 33); 변환색인 버퍼(TLB)(24, 34); TCM(25, 35)으로서 총칭하여 도시된 명령어 밀결합 메모리(TCM) 및 데이터TCM; 분기 예측용 버퍼와 분기 타겟들용 버퍼의 한쪽 또는 양쪽 등의 버퍼(26, 36), 및 내장형 로직 애널라이저(ELA)나 그 밖의 진단회로와 같은 진단회로(27, 37)를, 각각 갖는다. 이들 부품 전부를, 각 프로세서 코어와 연관시킬 필요는 없지만, 완전을 기하기 위해 도 1에 전부 도시하였다. 상기 제1 프로세서 코어(20)내의 상기 데이터 캐시(23)와 상기 제2 프로세서 코어(30)내의 상기 데이터 캐시(33)간의 일관성을 유지하기 위해서, 스눕 제어유닛(80)은, 그 밖의 회로들 중에서 스눕 필터(82)를 활용하여 스눕 연산들과 일관성 제어를 개시하는 역할을 한다. 상기 스눕 제어유닛(80)은, 상기 제1 프로세서 코어(20)와 상기 제2 프로세서 코어(30)가 공유하는 레벨 2 캐시(L2$)(84)도 구비한다.
DRAM 제어기(90)는, 상기 인터커넥트(70)와 상기 메인 메모리(DRAM)(50)과의 사이에 배치된다. DRAM 제어기(90)는, 메인 메모리(50)내에서 액세스된 데이터를 버퍼링하는, 이를테면 상기 메인 메모리(50)내에서 가장 최근에 액세스된 데이터의 다수의 라인을 위한 버퍼 기억을 제공하는, 데이터 버퍼(92)가 관련되어 있다.
상기 그래픽 처리 유닛(40)은, 본 그래픽 처리 유닛(40)에서 행한 그래픽 처리 연산들에 사용된 GPU 로직(42)과 랜덤 액세스 메모리(GPU RAM)(44)를 구비한다.
도 1에 도시된 메모리(22, 23, 24, 25, 26, 32, 33, 34, 35, 36, 44, 50, 82, 84, 92) 각각은, 관리자 프로세서(110)의 제어하에 그들 각각의 메모리들상에서 메모리 내장 자체 테스트 연산들을 행하는 역할을 하는 메모리 내장 자체 테스트 회로(100)가 관련되어 있다. 개개의 메모리 내장 자체 테스트 회로(100)는, (예를 들면, 그래픽 처리 유닛(40)내의 상기 GPU RAM 메모리(44)일 경우에) 개개의 메모리상에서 내장 자체 테스트 연산들을 행하기 위한 전용이어도 되거나, (예를 들면, 상기 제1 프로세서 코어(20)내의 상기 레벨 1 명령어 캐시(22), 레벨 1 데이터 캐시(23), 변환 색인 버퍼(24), 밀결합 메모리(25) 및 버퍼 메모리(26)일 경우에) 다수의 메모리끼리 공유되어도 된다.
온라인 테스팅 구성에서의 배경으로서, 상기 관리자 프로세서(110)가, 상기 메모리 내장 자체 테스트 회로(100)의 인스턴스들 중 하나에, 각각의 관련된 메모리들 중 하나의 메모리 상에 내장 자체 테스트 연산을 행하도록 지시하는 경우, 메모리 내장 자체 테스트 회로(100)는, 하나 이상의 엔트리를 테스트되는 상기 메모리내에 예약하도록 작동한다. 이 엔트리들은, 적은 수의 클록 사이클들만 걸리는 짧은 버스트 메모리 테스트 알고리즘을 사용하여 상기 메모리 내장 자체 테스트 회로(100)에 의해 테스트된다. 상기 예약된 메모리 엔트리들은, 각 버스트의 끝에서 메모리 내장 자체 테스트 회로(100)에 의해 해제된다. 각 버스트 후, 상기 메모리 내장 자체 테스트 회로(100)는, 다음 메모리 엔트리들이 테스트될 준비가 된 어드레스 카운터를 증분 또는 감분한다. 각 테스트 버스트는, 하드웨어 펄스에 의해 또는 소프트웨어에 의해 기동된다. 따라서, 메모리는 일련의 짧은 버스트를 사용하여 테스트되고, 각 버스트간의 간극은 각 테스트 버스트의 길이와 비교하여 크다. 상기 관련된 처리회로가 그 메모리 장소들을 이용하고 싶고 이 장소들이 예약되는 경우, 상기 처리회로는, 상기 내장 자체 테스트 연산이 완료되고 그 메모리 장소들이 해제될 때까지 일시 중지된다. 한 번에 메모리의 작은 부분상에서 내장 셀프 테스트 연산들을 행함으로써, 각 테스트 버스트의 길이는 짧게 유지될 수 있어서, 그 메모리를 사용하고 싶은 기능적 처리회로의 연산을 일시 중지시킬 가능성이 낮게 유지되므로, 상기 내장 셀프 테스트 연산들의 방해가 감소될 수도 있다. 연장된 기간상에서, 상기 내장 자체 테스트 회로(100)는, 일 메모리내의 엔트리들 전부를 테스트할 것이다. 상기 내장 자체 테스트 회로(100)는, 메모리의 테스팅을 완료하였을 때와 테스트를 통과하거나 실패하였을 경우 상기 관리자 프로세서(110)에 알린다. 그리고, 상기 관리자 프로세서(110)는, 다음 메모리의 테스트를 상기 내장 자체 테스트 회로(100)에 지시할 것이다. 따라서, 상기 온라인 테스팅 모델에서는, 상기 내장 자체 테스트 회로(100)와 관련된 메모리들 전부를, 상기 관련된 데이터 처리회로(10)의 기능적 연산시에 계속해서 테스트할 수 있다. 오프라인 테스팅 모델에서는, 메모리 부분들을 테스팅을 위해 오프라인으로 시행하고(일시적으로 이용 중단하고) 나서, 테스팅 후 이용으로 복귀한다.
상기 진단회로(27, 37)는, 상기 프로세서 코어들에 대해 진단 연산들을 실시하도록 구성된다. (도 1에 미도시된) 그 밖의 진단회로들은, 그 밖의 연산들을 추적하는 것에 대해서도 구성되어도 된다. 진단회로는, 프로세서 코어들에 대해서만 아닌 그 밖의 유닛들이나 IP코어들을 위해서도 구성될 수 있다. 이러한 진단회로의 일례를, 소위 내장형 로직 애널라이저라고 한다. 이것은, 상기 프로세서 코어내의 신호들의 상태를 검출할 수 있고, 그 검출들을 나타내는 진단 데이터를 생성한다. 이러한 회로에 의한 신호 "추적들(traces)" 또는 검출들은, 인터페이스나 트랜잭션 시퀀스들의 진단 목적을 위한 가시성을 제공할 수 있으므로, 버그들을 진단할 때, 구체적으로는 버그들을 특별한 프로세서 코어나 프로세서 코어의 영역과 격리할 때, 유용할 수 있다. 진단회로의 또 다른 예로는, 내장형 추적 매크로(ETM)가 있다. 이에 따라, CPU상에 동작하는 SW의 실행이 비침입성 방식으로 추적될 수 있다. ETM에서는, 추적 데이터를, 전용 SRAM에 기억시키고 외부 디버거에 의해 액세스할 수 있거나, 외부 추적 인터페이스에 보내고 외부 추적 캡쳐 유닛에 기억시킨다. 고주파들에서 작동하는 프로세서 코어들이나 그 밖의 회로(이를테면, 인터커넥트들이나 네트워크 인터페이스)에서의 신호 추적들은, 대량의 고주파 진단 데이터를 생성할 수 있다. 실시예들에 있어서, 전용 메모리(이를테면, SRAM)를 제공하여 그 진단 데이터를 기억시키는 대신에, 도 1내의 기존의 메모리들이, 상기 MBIST 제어기들의 제어하에 그 진단 데이터를 기억시키는데 선택적으로 사용된다.
상기 진단회로들은, 디버그 액세스 포트(120)에 의해 도 1의 본 장치에 접속 가능한 (도 1에 도시되어 있지만 - 적어도 일부의 예들에 있어서- 도 1의 본 장치의 외부에 있는 것으로 한) 외부 디버거(122)의 제어하에 연산한다. 상기 디버그 액세스 포트, 진단 회로들, MBIST 제어기들 및 관리자 CPU는 버스(130)에 의해 접속된다.
그러므로, 도 1의 본 장치는, 데이터를 기억하도록 구성된 적어도 하나의 메모리(22, 23, 24, 25, 26, 32, 33, 34, 35, 36, 44, 50, 82, 84 및/또는 92); 상기 적어도 하나의 메모리에서의 데이터에 액세스하는 처리회로(20, 30, 42, 82, 90); 상기 적어도 하나의 메모리에 액세스하는 인터페이스를 갖고, 상기 적어도 하나의 메모리의 적어도 하나의 목표 메모리 장소를 테스트하며 상기 목표 메모리 장소에 적어도 테스트 데이터를 기록하는 것을 포함하는 테스트 과정을 행하도록 구성된, 메모리 내장 자체 테스트(MBIST) 회로(100); 및 상기 처리회로에서 실시한 처리 연산들에 응답하여 진단 과정을 실행하여 진단 데이터를 생성하는 진단회로(27, 37)를 구비하는, 데이터 처리장치(10)의 일례를 제공한다. 도 1은 2개 이상의 메모리가 구비되는 일례와, 복수의 타입의 메모리가 구비되는 일례를 제공한다. 도 1의 상기 예에서, 상기 복수의 타입의 메모리는, 데이터 캐시; 명령어 캐시; 그래픽 데이터 메모리; 데이터 밀결합 메모리; 분기 예측용 버퍼; 분기 타겟들용 버퍼; 어드레스 변환용 버퍼; 명령어 밀결합 메모리; 스눕 필터 메모리; 레벨2 캐시 메모리; 및 레벨3 캐시 메모리 중, 2개 이상을 포함한다.
도 2는 도 1의 데이터 처리 시스템의 부품을 보다 상세히 개략적으로 도시한 것이다. 도 2에는, 도 1의 그 2개의 프로세서 코어들(CPU들)이, 그들 각각의 ELA디바이스들(27, 37)과 함께 도시되어 있다. 그렇지만, 다른 예로서, MBIST 제어기(102)는, 그 2개의 프로세서 코어끼리 공유되어 있다. 일반적으로, 각 프로세서 코어는, 자신의 MBIST 제어기 또는 하나보다 많은 MBIST 제어기를 가질 수 있었거나, 또는 다수의 프로세서 코어는, 보다 적은 수의 MBIST 제어기들을 공유할 수 있었다. 도 1 및 도 2의 예들은 복수의 MBIST 회로를 구비하고, 상기 진단회로는 상기 복수의 MBIST 회로에 버스회로(130)에 의해 접속된다.
각 프로세서 코어는, 그 프로세서 코어와 관련된 도 1의 상기 메모리, 이를테면 상기 레벨1 명령어 캐시, 레벨 1 데이터 캐시, TLB, TCM 또는 상기 버퍼 중 어느 하나를 나타내는 캐시 메모리(200, 210)가 관련되어 있다. 아래의 설명은, 그 메모리(200, 210)가 상기 캐시 메모리들 중 하나이지만 상술한 메모리들 중 어느 하나일 수 있다고 가정한다.
상기 ELA 회로(27, 37)는, 연산을 위해 사용 가능할 때, 디버그 신호 버스들(220)을 거쳐 각각의 프로세서 코어에서 실시한 처리 연산들과 관련된 신호드를 검출한다. 상기 처리 연산들은, 명령어 실행 연산들이나 그 밖의 연산들, 이를테면 버스 액세스나 데이터 전송 연산들이어도 된다. 상기 ELA 회로는, 그 처리 연산들의 특징을 나타내는(예를 들면, 버스 천이들, 또는 일 명령어의 실행의 그 밖의 측면들을 나타내는) 소위 추적 데이터를 생성하여, ELA 추적 기록 버스들(230a, 230b, 230c)상에서 제공한다.
이전에 제안된 구성들에 있어서, 전용 온칩 메모리 이를테면, SRAM은, 상기 추적 데이터를 기억하도록 제공될 수 있었다. 그렇지만, 본 예들에서는, MBIST 제어기의 제어하에 기존의 시스템 메모리들의 하나 이상의 적어도 일부를 사용하여 상기 추적 데이터를 기억한다.
상술한 것처럼, MBIST 제어기는, 메모리의 일부를 제어하고(또는 예약하고) 테스트 값들을 기록하고 나서, 테스트 중에 그 테스트 값들을 상기 메모리로부터 판독하도록 배치된다. 본 구성들에서는, 동일한 데이터 기록 및 데이터 판독 메카니즘을 사용하지만, 테스트 데이터를 메모리의 일부에 기록하는 대신에, 상기 ELA 추적 데이터를 기록하고 나서, 상기 외부 디버거(122)에 의해 (예를 들면) 외부 분석을 위해 검색한다. 이에 관하여, 상기 외부 디버거는, 상기 외부 인터페이스에 접속되어 상기 검색된 진단 데이터를 수신하는 디버그 장치의 전부 또는 일부의 일례를 제공한다.
이를 달성하기 위해서, 메모리는 진단 데이터의 일시적 기억을 위해 (예를 들면, CPU나 상기 외부 디버거(122) 상에서 작동하는 소프트웨어에 의해) 오프라인으로 시행된다. 그리고, 그것은 그 진단 데이터를 MBIST 인터페이스(103, 105)를 거쳐 상기 메모리의 그 일부에 기록한다. 이후, 상기 MBIST 제어기는, 그 데이터를 상기 MBIST 제어기(103, 105)를 거쳐 그 메모리의 예약된 부분으로부터 판독하여 상기 디버그 액세스 포트(120)를 거쳐 상기(또는 특정한) 외부 디버거(122)에 제공할 수 있다. 그리고, 상기 메모리의 예약된 부분은 해제될 수 있다.
도 2의 예는, (임의의 메모리 레벨에 본 기술을 적용 가능한 것을 나타내는 레벨 n(Ln) 캐시 제어기로서 개략적으로 도시된) 캐시 제어기와 관련된 하나의 ELA 회로(240)를 구비하는 3개의 ELA 회로를 구비한다. 상기 ELA회로들로부터의 데이터는, 그들이 진단 연산을 위해 사용 가능해질 때, 상기 MBIST 제어기들의 제어하에, 도 2에 도시된 상기 메모리들 중 어느 하나, 또는 실제로 도 1에 도시된 메모리들의 폭넓은 선택 중 어느 하나에, 기억될 수 있다. 이렇게 진단 데이터를 기억하기 위해 일시적으로 예약되는 그 메모리들의 부분들의 예는, 음영 부분처럼 도 2에 도시되어 있다. 예들에서, 또한 한층 더 후술되는 것처럼, 상기 데이터 처리장치내의 특별한 디바이스의 연산에 관한 진단 데이터(예를 들면, 특별한 CPU 또는 캐시 제어기의 연산에 관한 진단 데이터)는, 도 1의 본 장치의 연산의 상이한 부분과 통상 관련된 메모리에 기억되어도 된다. 이것은, 그것이 본 장치의 잠재적 버기(buggy) 부분에 관한 진단 데이터를 본 장치의 또 다른 부분에 기억하는데 유용할 수 있기 때문에, 그 진단 데이터의 기억이 의심스런 버그에 의해 (잠재적으로) 영향을 받지 않는 그 자체가 되는 것을 피하기 위한 것이다. 이러한 방법에 의해, 상기 설계 스테이지에서 도입된 시스템적 하드웨어 및 소프트웨어 버그들이 물리적 집적회로에서 진단될 수 있다.
도 2에서, 상기 디버그 액세스 포트(120)는, 상기 ELA 회로들과 통신하여, 예를 들면 테스팅 프로토콜이나 구성을 확립하기 위해 제어 데이터를 제공할 수 있고, 또한 소위 개선된 주변 버스(APB) 인터커넥션(250)에 의해 상기 MBIST 제어기들과 상기 관리자 CPU와 통신할 수 있다.
도 3은 진단 데이터의 기능적 메모리에의 기억을 위해 다른 목적에 맞게 고쳐진 메모리 내장 자체 테스트(MBIST) 회로를 구비하고 있는 도 1 및 도 2의 구성을, 콘택스트로서 갖는 방법을 나타내는 개략적 흐름도다. 단계 300에서, 도 1의 본 장치내의 적어도 하나의 메모리의 적어도 일부가, 진단 데이터의 기억을 위해 예약되고 오프라인으로 시행된다. 이하, 그 예약 프로세스를 보다 상세히 설명하겠다.
본 장치는, 제어회로를 제공하여, 상기 진단 과정을 실행하는 상기 진단회로에서 생성한 상기 진단 데이터를 기억하기 위해서, 상기 적어도 하나의 메모리의 적어도 일부를 포함하는 메모리 영역을 예약한다. 상기 제어회로는, 메모리 또는 메모리의 일부를 직접 사용 불가능하게 작동할 수 있는 상기 외부 디버거(122)를 구비할 수 있다. 그렇지만, 그 밖의 예들에서, 상기 제어회로는, 선택사항으로 상기 프로세서 코어들(20, 30)의 하나 이상을 구비하여, 그 외부 디버거는 그 프로세서 코어상에서 동작하는 소프트웨어와 통신함으로써 간접적으로 상기 메모리나 일부 메모리의 예약의 원인이 될 수 있다. 어떤 경우에도, 상기 외부 디버거는, 프로세서 코어에게, 적어도 그 프로세서 코어가 메모리나 메모리의 일부를 재사용 가능하려고 하지 않는 이유로, 그 프로세서 코어와 상호작용하는 상기 메모리나 일부 메모리를 사용 불가능하게 하였다는 것을 알리는 것이 적절할 수도 있다.
또한, 2개 이상의 메모리의 일부들은, 상기 MBIST 제어기에 의해(또는, 하나보다 많은 MBIST 제어기에 의해), 본 기술들에 의해 진단 데이터를 기억하기 위한 단일의 결합 버퍼로서, 예약되어도 되고 취급되어도 된다.
예들에 있어서, 상기 제어회로는, 상기 예약된 메모리 영역에서의 하나 이상의 메모리 장소를 가리키는 상기 MBIST 회로에 장소 정보를 제공하도록 구성될 수 있다.
또한, 상기 예약된 영역은, 메모리의 전부 또는 메모리의 일부를 포함할 수 있었고, 2개 이상의 메모리에 걸칠 수 있다(즉, 하나의 메모리의 일부 또는 전부와 다른 메모리의 일부 또는 전부, 동일한 프로세서 코어나 다른 디바이스에서 통상의 용도로 상기 메모리들을 액세스하는지의 여부, 및 그 2개의 메모리의 어드레스 공간들이 인접한지의 여부).
외부 디버거는, 상기 ELA들과 MBIST 제어기들을 제어하여, 유저가 요구하는 대로 구성하고 사용 가능하게 한다. 이러한 연산의 일부는, 단계 305에서 도 1의 다른 장치 특징을 설정하고 사용 가능하게 하는 것을 포함할 수 있다.
단계 310에서는, 조사중에 상기 버그(들)를 포함하는 상기 적절한 프로세서 코어에 의해 소프트웨어를 실행한다. 상기 단계 310의 제1 인스턴스에서는, 이러한 소프트웨어의 실행을 개시한다. (아래에 설명된 단계 325로부터 개략적으로 복귀 화살표로 나타낸 것처럼) 상기 단계의 이후의 인스턴스들에서는, 그 실행을 계속한다. 그렇지만, 이때, 실제의 시스템에서 상기 단계 310은, 후술하는 단계 315, 320, 325와 병렬로 제대로 동작할 수도 있다.
단계 315에서는, 상기 ELA회로들 중 하나 이상 등의 상기 진단회로가, 진단 프로세스를 실행하고, 상기 프로세서 코어들로부터 수신된 정보, 또는 그들이 감시하고 있는 그 밖의 장치 특징들로부터 진단 데이터를 생성한다.
단계 320에서는, 상기 MBIST 제어기들 중 적절한 하나에 의해 상기 예약된 메모리 부분에 상기 진단 데이터를 기록한다.
또한, 상술한 것처럼, 상기 단계 310...325는, 반복적으로 또한 거의 동시에(예를 들면, 병렬로) 일어날 수도 있어, 진단 데이터의 각 항목이 생성되어 상기 MBIST 제어기에 보내지면, 상기 예약된 메모리에 기록될 수 있다. 이 단계 320에서는, 상기 MBIST 회로가, 상기 진단회로에서 생성한 상기 진단 데이터를 상기 예약된 메모리 영역에서의 메모리 장소들에 기록하는 것을 제어하도록 구성되는 일례를 제공한다.
상기 MBIST 회로는, 선택사항으로, 메모리 어드레스들의 순서에 따르는 것이라고 하는 순환방식으로 상기 진단 데이터를 상기 예약된 메모리 영역에 기록하는 것을 제어하도록 구성되어도 되고, 이때의 메모리의 순서는, 상기 예약된 메모리 영역이 상기 진단 데이터로 가득찬 것에 응답하여 재시작한다. 이렇게 하여, 상기 연산들(310, 315, 320, 325)은, 단계 325에서 오류 작용이 검출되거나 상기 진단 프로세스가 임의의 다른 이유로 (예를 들면, 상기 외부 디버거(122)의 제어하에) 정지될 때까지, 계속될 수 있다.
단계 325에서 "예"의 검출에 응답하여, 상기 진단 연산과 상기 진단 데이터의 기록은 단계 330에서 정지된다, 예를 들면, 사용 불가, 중지 이와는 달리 종료된다.
이후에 또한 선택사항으로, 단계 335에서는, 분석을 위해 (상기 디버그 액세스 포트(DAP)를 사용하여) 상기 MBIST 제어기를 거쳐 외부 디버거(122)에 의해 상기 예약된 메모리의 콘텐츠를 판독할 수 있다. 이것은, 메모리 판독 과정을 실행하여 상기 예약된 메모리 영역에 기억된 데이터를 검색하고 그 검색된 데이터를 외부 인터페이스에 제공하도록 구성되는 상기 MBIST 회로의 일례를 제공한다.
도 4는, 캐시 제어기를 개략적으로 도시한 것이다.
캐시 제어기(이를테면, 도 4의 상기 캐시 제어기(400))는, 도 4의 메모리(410) 등의 캐시 메모리에 및 캐시 메모리로부터 데이터의 기억 및 검색을 감독한다. 그러므로, 이것은, 캐시 메모리를 포함하는 상기 적어도 하나의 메모리; 및 상기 캐시 메모리에 데이터의 기억 및 상기 캐시 메모리로부터 데이터의 검색을 제어하는 캐시 제어기를 포함하는 본 장치의 일례다.
캐시 메모리의 각종 연산 모드들을 제안하였지만, 일반적으로 공통 특징은, 캐시 메모리가, 지원하는 상기 메인 메모리나 상위 메모리보다 적지만, 적어도 일부의 상황에서는, 상기 메인 메모리나 상위 메모리보다 빠를 수 있다는 것이다. 상기 캐시 메모리가 지원하는 상기 메인 메모리나 상위 메모리보다 적기 때문에, 상기 캐시 제어기(400)는, 상기 메인 메모리나 상위 메모리가 보유한 데이터의 폭넓은 선택으로부터 상기 캐시 메모리에 어느 데이터가 기억되는지를 감독한다.
예들에 있어서, 상기 캐시 메모리(410)는, 다수의 영역들 또는 "라인들"(412)로서 배치되고, 각 라인은 하나 이상의 데이터 항목(전형적으로, 8개의 4바이트 워드와 같은 데이터 항목들의 그룹)을 기억하고, 각 라인은 대응한 라인이 관련되는 상기 메인 메모리나 상위 메모리에서의 어떠한 어드레스를 가리키는 소위 태그 데이터와 같은 관련 데이터(414)를 갖는다. 상기 캐시 제어기(400)는, 상기 캐시 메모리(410)에 있어서, 상기 캐시 메모리를 사용하여 어떠한 디바이스에 의해 다음에 요구될 가능성이 아주 높은 데이터를 제공하려는 시도로 상기 메인 메모리나 상위 메모리내의 어드레스 영역들에의 캐시 라인들이나 캐시 웨이들(412)의 할당을 제어한다. 그러므로, 예들에 있어서, 상기 캐시 제어기는, 상위 메모리에서의 어드레스들에 대응한 데이터의 일시적 기억을 위해 상기 캐시 메모리의 부분들을 할당하도록 구성된다. 상기 캐시 메모리의 부분들은, 어드레스들의 인접한 범위에 해당하는 데이터를 상기 상위 메모리에 각각 기억하는 캐시 라인들 또는 캐시 웨이들을 포함할 수 있다.
도 5를 참조하여, 진단 데이터를 기억할 때 일시적으로 사용하기 위한 상기 캐시 메모리(410)의 일부를 예약하기 위해서, 상기 제어회로(그 예들은 위에서 설명되었고, 프로세서 코어상에서 동작하는 소프트웨어와 연계하여 연산할 가능성이 있는 상기 외부 디버거를 포함하여도 된다)는, 상기 캐시 제어기(400)와 통신하여, 상기 캐시 제어기(400)에 대해 상기 캐시 메모리(410)의 상기 라인들의 하나 이상을 출력시키고(flush)(즉, 상기 메인 메모리나 상위 메모리에 역으로 기록시키고), 그 라인들을 이용 불가로서 표시시키지만, 전력이나 클록신호들을 그 라인들로부터 제거하지 않고 행하게 한다. 이것은, 상기 캐시 제어기에 의한 할당을 위해 상기 예약된 메모리 영역이 이용 불가하다는 것을 상기 캐시 제어기에 나타냄으로써 상기 캐시 메모리의 메모리 영역을 예약하도록 상기 제어회로를 구성하는, 일례를 제공한다. 이는 도 5의 단계 500에서 실시된다. 상기 캐시 제어기(400)는, 일시적으로 보다 적은 캐시 메모리(410)에 근거하여 연산들을 계속 실시한다, 즉, 상기 캐시 제어기는, 단계 510에서 이용 불가로서 표시되지 않은 나머지 캐시 라인들이나 캐시 웨이들을 계속 사용한다. 이것은, 상기 예약된 메모리 영역에서의 메모리 장소들이외의 메모리 장소들에 상기 처리회로에 의해 계속 액세스를 허용하도록 상기 적어도 하나의 메모리를 구성하는 일례를 제공한다.
도 7에서는, 일시적으로 "이용 불가로서 표시된" 캐시 라인들(712)의 일 세트를, 상기 캐시 메모리(410)의 음영부분으로 나타내었다. 이는, 하나 이상의 캐시 라인들이나 캐시 웨이들을 예약하도록 구성되는 상기 제어회로의 일례다. 상기 캐시 제어기는 상기 캐시 메모리(410)의 나머지 부분(714)에 대해 연산하지만, 상기 MBIST 제어기는 상기 캐시 라인들이나 캐시 웨이들(712)을 사용하여 상기 ELA회로들 중 하나로부터 수신된 진단 데이터를 기억한다. 그 후, 상술한 것처럼, 상기 MBIST 제어기는, 상기 캐시 라인들이나 캐시 웨이들(712)로부터 진단 데이터를 판독할 수 있다. 이때, 상기 캐시 라인들이나 캐시 웨이들(712)을 해제하는 프로세스는, 단계 600에서, (상기 외부 디버거의 직접 또는 간접 제어하에 연산하는) 상기 캐시 메모리가 상기 예약된 캐시 라인들이나 캐시 웨이들(712)의 콘텐츠를 클리어하거나 무효화하는 도 6의 흐름도로 나타낸 것처럼 실시된다. 단계 610에서는, 상기 캐시 제어기가, 단지 상기 부분(714) 대신에 상기 캐시 메모리(410)의 전부를 사용한다. 도 6의 흐름도에서는, 상기 예약된 메모리 영역에 관해 상기 메모리 판독 과정의 완료 후 상기 예약된 메모리 영역을 해제하도록 구성되는 상기 제어회로의 일례를 제공한다.
도 8 및 도 9는, 본 예들에 따른 MBIST 제어기를 거쳐 데이터를 각각 기록 및 판독하는 것을 개략적으로 도시한 것이다.
도 8에서는, 상기 ELA회로들 중 하나에서 생성한 진단 데이터(800)를, 상기 메모리들(810) 중 하나의 일시적으로 예약된 부분에 기억하기 위해 MBIST 제어기에 제공하는 데이터 기록 프로세스를 개략적으로 나타낸다. 프로세서 코어나 그 밖의 제어기를 거쳐 상기 데이터를 기록하는 대신에, 상기 MBIST 제어기는, (예를 들면, 당해 상기 MBIST 제어기에서 생성한) 제어신호(830)의 제어하에, 상기 MBIST 제어기로부터의 데이터나, 상기 프로세서 코어나 다른 디바이스로부터 "종래의" 기록 데이터를 통과시키는 다중화기(820)를 거쳐 상기 메모리(810)에 데이터를 직접 기록한다.
도 9는, 예를 들면, 상기 메모리(810)로부터의 판독 데이터(920)를, 종래의 판독 데이터(930)로서 상기 프로세서 코어나 다른 디바이스에 제공하거나, 또는 외부기기에 출력하기 위한 데이터(940)로서 상기 MBIST 제어기에 제공하기 위해, 상기 MBIST 제어기에서 생성한 제어신호(910)의 제어하에 다시 한번 역다중화기(900)에 의해 연산하는 데이터 판독 프로세스를 개략적으로 도시한 것이다.
도 10은 방법을 나타내는 개략적 흐름도다.
단계 1000에서는, 진단 데이터를 생성, 기억 및 검색하는 프로세스가 시작하여, 추적 기억을 위해 메모리를 선택하고, 상술한 것처럼, 적어도 그 메모리의 일부를 추적 데이터의 기억을 위해 일시적으로 오프라인으로 시행한다. 이것은, 복수의 메모리 중, 메모리 영역을 예약할 하나의 메모리를 선택하도록 상기 제어회로를 구성하는 일례를 제공한다. 설명된 것처럼, 상기 데이터 처리장치의 기능적 연산이나 의심스런 버그와 적어도 부분적으로 독립적인 메모리가 선택될 수 있고, 이 경우에, 상기 복수의 메모리의 서브세트에 관한 처리 연산들에 따른 진단 데이터의 기억을 위해, 상기 제어회로는 상기 복수의 메모리의 상기 서브세트이외의 상기 복수의 메모리 중 하나 이상의 메모리를 선택하도록 구성된다. 그래서, 예를 들면, 하나의 프로세서 코어의 연산들에 관한 추적 데이터는, 다른 프로세서 코어에 관한 메모리나 메모리들에 기억될 수 있다.
단계 1010에서는, 상기 외부 디버거(122)는, 상기 ELA 및 MBIST 제어기를 설정한다. 상기 ELA의 설정은, (예를 들면) 특별한 데이터, 어드레스나 그 밖의 신호들 등을 처리하는 특별한 측면들의 감시를 상기 ELA에 지시하는 것과, -검출되었을 때- 상기 ELA가 추적 활동을 그만두게 하는 트리거 조건을 확립하는 것을 포함할 수 있다. 예를 들면, 상기 트리거 조건은, 버그를 나타내는 조건일지도 모른다.
단계 1020에서는, 상기 시스템은, 기능 코드를 동작시켜, 그 코드의 동작동안에 그 버그에 대한 감시를 실행할 수 있다. 이것은, 운영체계(이를테면, LinuxTM 운영체계)를 개시하는 것과, 그 운영체계하에 코드를 동작하게 하는 것을 포함할 수 있다. 또는 상기 운영체계는, 상기 단계 1020에 도달할 때까지는 이미 개시되어 있을 수 있다. 상기 단계 1020은, 단계 1000에서 확립된 메모리 부분이나 상기 메모리에서의 상기 ELA에서 생성한 추적 데이터의 상기 MBIST 제어기에 의한 기억도 포함한다.
단계 1030에서는, 상기 ELA가 상기 트리거 조건을 검출하고 추적 활동을 정지시킨다. 상기 ELA는 추적 데이터의 생성을 정지시키고, -응답시- 상기 MBIST 제어기는 상기 추적 데이터의 상기 메모리나 메모리 부분에의 기록을 정지시킨다(그래도 상기 ELA에서 제공한 임의의 최종 추적 데이터가 기억되기는 한다).
단계 1040에서는, 상기 기억된 추적 데이터를, 상기 MBIST 제어기에 의해 상기 메모리나 메모리 부분으로부터 상기 외부 디버거에 독출하거나 "덤프한다(dump)".
끝으로, 단계 1050에서는, 상기 덤프가 완료할 때, 상기 외부 디버거는, 통상의 운영모드로 복귀하는 상기 메모리를 해제한다.
상술한 실시예들의 각종 특징은 다음과 같다.
SRAM과 같은 전용 메모리라기 보다는 기존의 기능적 메모리 회로를 사용하면 집적회로 실시예에서 보다 효율적으로 공간을 사용할 수 있다. 검출된 메모리는, 기존의 메모리의 일부의 일시적 사용이 상기 전용 메모리를 필요로 하지 않도록, 항상 요구되지 않는 공간을 차지할 수 있다. 이와는 달리 전용 메모리와 관련될 수도 있는 누설 문제들을 완화시킬 수 있다.
전형적으로, 진단 데이터용 전용 메모리는, 아주 작을지도 모른다(일례는, 128개의 신호비트의 64개의 추적 엔트리를 지원하는 1kbyte 메모리다). 이와 대조적으로, 2Mbyte 레벨 2 캐시는, 128개의 신호비트의 16384개의 추적 엔트리를 2개의 사용 불가 방식으로 기억할 수 있다. 심지어 512kbyte 레벨 2 캐시는, 128개의 디버그 신호 비트의 4096개의 추적 엔트리도 지원할 것이다. 이때, 메모리나 메모리 오프라인의 일부를 취하고 상기 프로세서나 다른 디바이스가 그것 없이 계속 연산할 능력 자체는 공지되어 있다.
상기 예들은, 상기 MBIST 회로에 대해 변경의 관점에서 우아하게 간단한 구현을 제공한다. 상기 MBIST 제어기는, 상기 ELA로부터 기록 데이터 값과 유효 신호만이 필요하다. 상기 MBIST 제어기는, 상기 어드레스를 생성하여 상기 데이터를 그 사용 불가 메모리 영역에 기록할 수 있다. 또한, 상기 MBIST 제어기는, 상기 어드레스를 포장하여(wrap), 순환 버퍼를 작성하거나 또는, 그 순환 버퍼가 가득찰 때 정지시킬 수 있다. 전용 SRAM과 관련된 전용 ELA 메모리 판독/기록 제어가 필요하지 않다.
상기 ELA 및 MBIST 제어기는, 외부 디버거에 의해 프로그래밍될 수 있다. 예들에 있어서, 상기 디버그 제어기에서 지시할 때, 상기 목표 메모리는, 상기 MBIST 제어기에 의해 선택되고, 그 추적 세션 전체에 걸쳐 선택된 채로 있다. 예들에 있어서, 하나보다 많은 메모리는, 상기 추적 데이터 또는 진단 데이터를 기억하는데 사용될 수 있다(그 경우에, 그 값들은 추적시에 변경하여도 된다).
추적 데이터를 기억하는데 사용되지 않는 중인 그 밖의 메모리들은, 통상의 기능적 이용을 위해 사용 가능하게 될 수 있다. 상기 그 밖의 메모리들은, 상기 추적 액세스들에 의해 상기 기능적 사용 불가 메모리들에 영향을 받지 않고, 또한 영향을 받지 않을 것이므로, 액세스될 것이다.
그리고, 추적이 완료될 때, 상기 추적 데이터는, 상기 MBIST 제어기를 거쳐 상기 사용 불가 메모리로부터 디버거에 의해 판독될 수 있다. 이것은 상기 ELA회로와 관련된 판독 경로 로직의 필요성을 없앤다.
도 11은, (단계 1100에서) 적어도 하나의 메모리에 대한 인터페이스를 갖고서 상기 적어도 하나의 메모리의 적어도 하나의 목표 메모리 장소를 테스트하는 테스트 과정을 실행하는, 메모리 내장 자체 테스트(MBIST) 회로를 제공하는 단계-상기 MBIST테스트 과정이 상기 목표 메모리 장소에 적어도 테스트 데이터를 기록하는 것을 포함함-;
(단계 1110에서) 상기 적어도 하나의 메모리의 적어도 일부를 포함하는 메모리 영역을 일시적으로 예약하는 단계;
(단계 1120에서) 처리 연산들에 응답하여 진단 과정을 실행하여 진단 데이터를 생성하는 단계; 및
(단계 1130에서) 상기 MBIST회로에 의해, 상기 진단수단에서 생성한 상기 진단 데이터를, 상기 예약된 메모리 영역에서의 메모리 장소들에 기록하는 것을 제어하는 단계를 포함하는, 데이터 처리방법을 도시하는 개략적 흐름도다.
본 출원에서, "...하도록 구성된"의 단어는, 장치의 요소가 상기 규정된 연산을 실시할 수 있는 구성을 갖는다는 것을 의미하는데 사용된다. 본 문맥에서, "구성"은, 하드웨어 또는 소프트웨어의 상호연결의 배치 또는 방식을 의미한다. 예를 들면, 상기 장치는 상기 규정된 연산을 제공하는 전용 하드웨어를 가져도 되거나, 프로세서 또는 다른 처리 디바이스(이를테면, 상술한 것과 같은 처리요소)는 그 기능을 행하도록 프로그래밍되어도 된다. "하도록 구성된"은, 상기 장치 요소가 임의의 방식으로 상기 규정된 연산을 제공하기 위해서 변경될 필요가 있다는 것을 암시하지는 않는다.
여기서는 본 발명들의 실시예들을 첨부도면을 참조하여 상세히 설명하였지만, 본 발명은 구체적인 실시예들에 한정되지 않고, 첨부된 청구항에서 기재된 것과 같은 본 발명의 범위 및 사상으로부터 벗어나지 않고 당업자가 변경, 부가 및 변형을 여러 가지로 실시할 수 있다는 것을 알 수 있다. 예를 들면, 본 발명의 범위로부터 벗어나지 않고 종속항의 특징들과 독립항의 특징들을 여러 가지로 조합할 수 있다.

Claims (18)

  1. 데이터를 기억하도록 구성된 적어도 하나의 메모리-상기 적어도 하나의 메모리는 캐시 메모리를 구비함-;
    상기 적어도 하나의 메모리에서 데이터를 액세스하는 처리회로;
    상기 적어도 하나의 메모리에 액세스하는 인터페이스를 갖고, 상기 적어도 하나의 메모리의 적어도 하나의 목표 메모리 장소를 테스트하며 상기 목표 메모리 장소에 적어도 테스트 데이터를 기록하는 것을 포함하는 테스트 과정을 행하도록 구성된, 메모리 내장 자체 테스트(MBIST) 회로;
    상기 처리회로에서 실시한 처리 연산들에 응답하여 진단 과정을 실행하여 진단 데이터를 생성하는 진단회로;
    상기 캐시 메모리에 데이터의 기억과 상기 캐시 메모리로부터 데이터의 검색을 제어하는 캐시 제어기; 및
    상기 진단 과정을 실행하는 상기 진단회로에서 생성한 상기 진단 데이터를 기억하기 위해서, 상기 적어도 하나의 메모리의 적어도 일부를 포함하는 메모리 영역을 예약하는 제어회로를 구비하고,
    상기 MBIST 회로는, 상기 진단회로에서 생성한 상기 진단 데이터를, 상기 적어도 하나의 메모리의 적어도 일부를 포함하는 일시적으로 예약된 메모리 영역에서의 메모리 장소들에 기록하는 것을 제어하도록 구성되고,
    상기 캐시 제어기는, 상위 메모리에서 어드레스들에 대응한 데이터의 일시적 기억을 위한 상기 캐시 메모리의 부분들을 할당하도록 구성되고;
    상기 제어회로는, 상기 예약된 메모리 영역이 상기 캐시 제어기에 의한 할당에 이용 가능하지 않도록 상기 캐시 제어기에 가리킴으로써 상기 캐시 메모리의 메모리 영역을 예약하도록 구성된, 데이터 처리장치.
  2. 제 1 항에 있어서,
    상기 MBIST 회로는, 메모리 판독 과정을 실행하여, 상기 예약된 메모리 영역에 기억된 데이터를 검색하고 그 검색된 데이터를 외부 인터페이스에 제공하도록 구성된, 데이터 처리장치.
  3. 제 2 항에 있어서,
    상기 적어도 하나의 메모리는, 상기 예약된 메모리 영역에서의 메모리 장소들 이외의 메모리 장소들에, 상기 처리회로에 의한 액세스를 계속 허용하도록 구성된, 데이터 처리장치.
  4. 삭제
  5. 제 2 항에 있어서,
    상기 제어회로는, 상기 예약된 메모리 영역에 관하여 상기 메모리 판독 과정의 완료 후에 상기 예약된 메모리 영역을 해제하도록 구성된, 데이터 처리장치.
  6. 삭제
  7. 삭제
  8. 제 1 항에 있어서,
    상기 캐시 메모리의 상기 부분들은, 상기 상위 메모리에서 어드레스들의 인접한 범위에 대응한 데이터를 각각 기억하는 캐시 라인들이나 캐시 웨이들을 포함하고;
    상기 제어회로는, 하나 이상의 캐시 라인이나 캐시 웨이를 예약하도록 구성된, 데이터 처리장치.
  9. 제 1 항에 있어서,
    복수의 메모리를 구비하고, 여기서 상기 제어회로는 메모리 영역을 예약할 상기 복수의 메모리 중 하나의 메모리를 선택하도록 구성된, 데이터 처리장치.
  10. 제 9 항에 있어서,
    상기 복수의 메모리의 서브세트에 관한 연산들을 처리하는 것에 따라 진단 데이터를 기억하기 위해서, 상기 제어회로는, 상기 복수의 메모리의 상기 서브세트이외의 상기 복수의 메모리 중 하나 이상의 메모리를 선택하도록 구성된, 데이터 처리장치.
  11. 제 10 항에 있어서,
    복수의 타입의 메모리를 구비하는, 데이터 처리장치.
  12. 제 11 항에 있어서,
    상기 복수의 타입의 메모리는,
    데이터 캐시;
    스눕 필터 메모리;
    레벨2 캐시 메모리;
    레벨3 캐시 메모리;
    명령어 캐시;
    그래픽 데이터 메모리;
    데이터 밀결합 메모리;
    분기 예측용 버퍼;
    분기 타겟들용 버퍼;
    어드레스 변환용 버퍼; 및
    명령어 밀결합 메모리 중, 2개 이상을 포함하는, 데이터 처리장치.
  13. 제 9 항에 있어서,
    복수의 MBIST회로를 구비하고, 상기 진단회로는 버스회로에 의해 상기 복수의 MBIST회로에 접속되는, 데이터 처리장치.
  14. 제 1 항에 있어서,
    상기 제어회로는, 상기 예약된 메모리 영역에서의 하나 이상의 메모리 장소를 가리키는 장소 정보를 상기 MBIST회로에 제공하도록 구성된, 데이터 처리장치.
  15. 제 1 항에 있어서,
    상기 MBIST회로는 메모리 어드레스들의 순서에 따라 상기 진단 데이터를 상기 예약된 메모리 영역에 기록하는 것을 제어하도록 구성되되, 상기 메모리 어드레스들의 순서는 상기 진단 데이터로 가득찬 상기 예약된 메모리 영역에 응답하여 재시작하는, 데이터 처리장치.
  16. 제 2 항에 있어서,
    상기 검색된 데이터를 수신하기 위해 상기 외부 인터페이스에 접속된 디버그 장치를 구비하는, 데이터 처리장치.
  17. 데이터를 기억하는 적어도 하나의 메모리 수단-상기 적어도 하나의 메모리 수단은 캐시 메모리 수단을 구비함-;
    상기 적어도 하나의 메모리 수단에서 데이터를 액세스하는 처리수단;
    상기 적어도 하나의 메모리 수단에 액세스하는 인터페이스 수단을 갖고, 상기 적어도 하나의 메모리 수단의 적어도 하나의 목표 메모리 장소를 테스트하며 상기 목표 메모리 장소에 적어도 테스트 데이터를 기록하는 것을 포함하는 테스트 과정을 행하도록 구성된, 메모리 내장 자체 테스트(MBIST)수단;
    상기 처리수단에서 실시한 처리 연산들에 응답하여 진단 과정을 실행하여 진단 데이터를 생성하는 진단수단;
    상기 캐시 메모리 수단에 데이터의 기억과 상기 캐시 메모리 수단으로부터 데이터의 검색을 제어하는 캐시 제어기 수단; 및
    상기 진단 과정을 실행하는 상기 진단수단에서 생성한 상기 진단 데이터를 기억하기 위해서, 상기 적어도 하나의 메모리 수단의 적어도 일부를 포함하는 메모리 영역을 예약하는 제어수단을 구비하고,
    상기 MBIST 수단은, 상기 진단수단에서 생성한 상기 진단 데이터를, 상기 적어도 하나의 메모리 수단의 적어도 일부를 포함하는 일시적으로 예약된 메모리 영역에서의 메모리 장소들에 기록하는 것을 제어하도록 구성되고,
    상기 캐시 제어기 수단은, 상위 메모리에서 어드레스들에 대응한 데이터의 일시적 기억을 위한 상기 캐시 메모리 수단의 부분들을 할당하도록 동작가능하고;
    상기 제어수단은, 상기 예약된 메모리 영역이 상기 캐시 제어기 수단에 의한 할당에 이용 가능하지 않도록 상기 캐시 제어기 수단에 가리킴으로써 상기 캐시 메모리 수단의 메모리 영역을 예약하도록 동작가능한, 데이터 처리장치.
  18. 캐시 메모리에 대한 인터페이스를 갖고서 상기 캐시 메모리의 적어도 하나의 목표 메모리 장소를 테스트하는 테스트 과정을 실행하는, 메모리 내장 자체 테스트(MBIST) 회로를 제공하는 단계-상기 테스트 과정은 상기 목표 메모리 장소에 적어도 테스트 데이터를 기록하는 것을 포함함-;
    캐시 제어기를 사용하여, 상기 캐시 메모리에 데이터의 기억과 상기 캐시 메모리로부터 데이터의 검색을 제어하는 단계;
    상기 캐시 제어기에 의해, 상위 메모리에서 어드레스들에 대응한 데이터의 일시적 기억을 위한 상기 캐시 메모리의 부분들을 할당하는 단계;
    상기 캐시 메모리의 적어도 일부를 포함하는 메모리 영역을 일시적으로 예약하는 단계;
    처리 연산들에 응답하여 진단 과정을 실행하여 진단 데이터를 생성하는 단계; 및
    상기 MBIST회로에 의해, 상기 진단 데이터를 생성하는 단계에서 생성한 상기 진단 데이터를, 상기 예약하는 단계에서 예약된 메모리 영역에서의 메모리 장소들에 기록하는 것을 제어하는 단계를 포함하고,
    상기 예약하는 단계는 상기 예약된 메모리 영역이 상기 캐시 제어기에 의한 할당에 이용 가능하지 않도록 상기 캐시 제어기에 가리킴으로써 상기 캐시 메모리의 메모리 영역을 예약하는, 데이터 처리방법.
KR1020180042465A 2017-04-19 2018-04-12 데이터 처리 KR102584651B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/491,239 US10311963B2 (en) 2017-04-19 2017-04-19 Data processing
US15/491,239 2017-04-19

Publications (2)

Publication Number Publication Date
KR20180117539A KR20180117539A (ko) 2018-10-29
KR102584651B1 true KR102584651B1 (ko) 2023-10-05

Family

ID=62142111

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180042465A KR102584651B1 (ko) 2017-04-19 2018-04-12 데이터 처리

Country Status (4)

Country Link
US (1) US10311963B2 (ko)
KR (1) KR102584651B1 (ko)
CN (1) CN108735267B (ko)
GB (1) GB2563970B (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2580127B (en) * 2018-12-21 2021-04-21 Advanced Risc Mach Ltd Circuitry and method
WO2023102779A1 (zh) * 2021-12-08 2023-06-15 华为技术有限公司 存储器、存储器测试方法和电子设备
KR20230166555A (ko) 2022-05-31 2023-12-07 유상현 노면 및 벽면 점착식 안내표시용 스티커 제조방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070136626A1 (en) 2005-12-09 2007-06-14 Taiwan Semiconductor Manufacturing Co., Ltd. Storage efficient memory system with integrated BIST function
US20120173837A1 (en) * 2009-11-09 2012-07-05 Klaus Schneider Memory system
US20150371718A1 (en) * 2014-06-20 2015-12-24 Arm Limited Memory built-in self-test for a data processing apparatus
US20160224450A1 (en) 2015-02-03 2016-08-04 Invecas, Inc. Memory Built-In Self Test System

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US7260759B1 (en) * 2004-06-16 2007-08-21 Sun Microsystems, Inc. Method and apparatus for an efficient memory built-in self test architecture for high performance microprocessors
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
DE102006009224B4 (de) * 2006-02-28 2017-04-06 Advanced Micro Devices, Inc. Auswahl eines Testalgorithmus in einer Steuerung für eingebauten Speicherselbsttest
US7895482B2 (en) * 2007-04-26 2011-02-22 Agere Systems Inc. Embedded memory repair
US7757133B1 (en) * 2007-07-05 2010-07-13 Oracle America, Inc. Built-in self-test hardware and method for generating memory tests with arbitrary address sequences
US8527825B2 (en) 2010-09-21 2013-09-03 Qualcomm Incorporated Debugger based memory dump using built in self test
US10490296B2 (en) * 2016-02-09 2019-11-26 Globalfoundries U.S. Inc. Memory built-in self-test (MBIST) test time reduction

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070136626A1 (en) 2005-12-09 2007-06-14 Taiwan Semiconductor Manufacturing Co., Ltd. Storage efficient memory system with integrated BIST function
US20120173837A1 (en) * 2009-11-09 2012-07-05 Klaus Schneider Memory system
US20150371718A1 (en) * 2014-06-20 2015-12-24 Arm Limited Memory built-in self-test for a data processing apparatus
US20160224450A1 (en) 2015-02-03 2016-08-04 Invecas, Inc. Memory Built-In Self Test System

Also Published As

Publication number Publication date
KR20180117539A (ko) 2018-10-29
US10311963B2 (en) 2019-06-04
GB2563970B (en) 2021-02-10
CN108735267B (zh) 2024-08-13
GB201805437D0 (en) 2018-05-16
US20180308560A1 (en) 2018-10-25
GB2563970A (en) 2019-01-02
CN108735267A (zh) 2018-11-02

Similar Documents

Publication Publication Date Title
JP6535517B2 (ja) データ処理装置用のメモリ・ビルトイン・セルフテスト
US20170004063A1 (en) Flash memory controller, data processing system with flash memory controller and method of operating a flash memory controller
US9436611B2 (en) Processor, cache memory of the processor and control method of the processor
KR102584651B1 (ko) 데이터 처리
US7523346B2 (en) Systems and methods for CPU repair
US20090276665A1 (en) Apparatus, system, and method of efficiently utilizing hardware resources for a software test
JP2012003644A (ja) メモリエラー箇所検出装置、及びメモリエラー箇所検出方法。
US7607038B2 (en) Systems and methods for CPU repair
US8510611B2 (en) Computer apparatus
US7206979B1 (en) Method and apparatus for at-speed diagnostics of embedded memories
KR20200088760A (ko) 체크섬 생성
US7694175B2 (en) Methods and systems for conducting processor health-checks
US8516310B2 (en) Information processing device equipped with write-back cache and diagnosis method for main memory of the same
US10754743B2 (en) Apparatus and method using debug status storage element
US7607040B2 (en) Methods and systems for conducting processor health-checks
US7603582B2 (en) Systems and methods for CPU repair
US7673171B2 (en) Systems and methods for CPU repair
JPH03226852A (ja) データ処理装置
US20060248313A1 (en) Systems and methods for CPU repair
US8661289B2 (en) Systems and methods for CPU repair
JP2006039843A (ja) Ramテスト回路、情報処理装置、及びramテスト方法
JP3655768B2 (ja) 2次キャッシュ診断機能を有する情報処理装置
JP2821326B2 (ja) キャッシュメモリの故障検出装置
JPH08123726A (ja) キャッシュメモリの制御方式
JP2002091795A (ja) キャッシュ制御装置

Legal Events

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