KR100954568B1 - 집적 회로 내에서의 진단 데이터 수집 장치 및 방법 - Google Patents

집적 회로 내에서의 진단 데이터 수집 장치 및 방법 Download PDF

Info

Publication number
KR100954568B1
KR100954568B1 KR1020057019748A KR20057019748A KR100954568B1 KR 100954568 B1 KR100954568 B1 KR 100954568B1 KR 1020057019748 A KR1020057019748 A KR 1020057019748A KR 20057019748 A KR20057019748 A KR 20057019748A KR 100954568 B1 KR100954568 B1 KR 100954568B1
Authority
KR
South Korea
Prior art keywords
data
diagnostic data
diagnostic
bus
word
Prior art date
Application number
KR1020057019748A
Other languages
English (en)
Other versions
KR20060004946A (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 KR20060004946A publication Critical patent/KR20060004946A/ko
Application granted granted Critical
Publication of KR100954568B1 publication Critical patent/KR100954568B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31705Debugging aspects, e.g. using test circuits for debugging, using dedicated debugging test circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

집적 회로는 진단 데이터 수집 회로 형태의 진단 데이터 수집 및 출력 시스템을 구비하며, 진단 데이터 수집 회로는 버스로부터 데이터 워드와 콘텍스트 워드를 수집한다. 버스는 집적 회로 내의 기능 회로를 접속하는 기능 버스, 또는 하나 이상의 기능 회로를 상기 진단 데이터 수집 회로에 직접 링크하는 전용 버스일 수 있다. 수집된 진단 데이터는 선입선출 버퍼 내에서 버퍼링되고, 출력을 위해 직렬 변환된다. 진단 데이터 필드는 관련 진단 데이터 필드가 수집된 시간 및 진단 데이터 필드의 수집 실패 여부를 나타내는 시간 값을 또한 포함한다.
집적 회로, 진단 데이터, 데이터 워드, 콘텍스트 워드

Description

집적 회로 내에서의 진단 데이터 수집 장치 및 방법{DIAGNOSTIC DATA CAPTURE WITHIN AN INTEGRATED CIRCUIT}
본 발명은 집적 회로 분야에 관한 것이다. 보다 상세하게, 본 발명은 디버깅, 성능 감시, 설계 및 기타 처리에 사용되는 것과 같이, 집적 회로 내에서의 진단 데이터 수집에 관한 것이다.
진단 데이터를 수집하고 출력하는 시스템 탑재 집적 회로가 공지되어 있다. 이러한 집적 회로의 예로서, 영국, 캠브릿지에 소재한 ARM Limited의 제품인 임베디드 추적 매크로셀(embedded trace macrocell; ETM)이 있다. 상기 ETM 시스템은 실행된 프로그램 명령을 식별하는 데이터, 처리된 데이터 값 등과 같은 추적 데이터를 외부 진단 장치로의 후 출력을 위한 온칩(on-chip) 추적 버퍼로 수집하도록 동작한다. ETM 방식 시스템의 문제점은 비교적 대량의 회로 자원을 소비한다는 점이다. 진단 용도에 할당된 회로 영역은 ETM 회로를 사용하는 설계 및 개발 작업 완료시 집적 회로의 생산에 대한 실질적 용도를 갖지 않는다.
또한, 개발 시스템의 프로그램 코드 내에 UART 또는 기타 공용 자원을 이용하여 집적 회로로부터 진단 데이터를 출력하도록 의도된 프로그램 명령을 삽입하는 것이 알려져 있다. 이 프로그램 구동 방식의 접근법의 단점은 관련 프로그램에 심각한 부하를 가져와서 진단 데이터의 유용성을 떨어뜨리는 방식으로 그 동작이 왜 곡될 수 있다는 점이다. 이는 장치 인터페이스들이 직접 액세스되도록 설계되지 않기 때문에 특별한 문제가 된다. 더욱이, 공용 장치가 풀(full) 상태(더 이상 데이터를 취할 수 없음)이면, 어플리케이션은 교착 상태가 되거나 데이터가 기록되지 않고 손실될 수 있다. 반대로, 프로그램 코드 요소가 충분히 낮은 우선 순위로 되어 있고 성능에 영향을 주지 않고 작동하는 것이 매우 드물다면, 복구될 수 있는 정보의 양은 제한될 수 있고 불리하게도 그 정보의 타이밍은 지연될 수 있다.
본 발명의 일측면에 따르면, 본 발명은 집적 회로를 제공하며, 이 집적 회로는:
데이터 처리 동작을 수행하도록 작동 가능한 하나 이상의 기능 회로;
상기 하나 이상의 기능 회로에 의해 생성된 데이터 워드와 이 데이터 워드와 관련된 상기 하나 이상의 기능 회로의 콘텍스트를 나타내는 콘텍스트 워드로 구성된 값의 진단 데이터 필드를 버스로부터 수집하도록 작동 가능한 진단 데이터 수집 회로; 및
상기 진단 데이터 필드를 직렬 변환하고 상기 집적 회로로부터 외부 진단 장치로 출력하도록 작동 가능한 진단 데이터 직렬 출력 회로를 포함하며,
상기 기능 회로중 적어도 하나에 대해 실행하는 프로그램 명령은 상기 진단 데이터 필드를 생성하며, 상기 프로그램 명령은 상기 데이터 워드와 상기 콘텍스트 워드가 수집되는 상기 버스에 버스 트랜스액션을 생성하는 것을 특징으로 한다.
삭제
본 기술은 진단 데이터를 버스로부터 수집하는 진단 데이터 수집 회로를 제공한다. 이것은 하드웨어 수집 메카니즘이라서 그 자체적으로는 임의의 실행 프로그램 코드에 처리 부하를 부여하지 않는다. 버스로부터 수집된 진단 데이터 필드는 데이터 워드와 콘텍스트 워드(context word)를 포함한다. 콘텍스트 워드를 또 한 수집하는 진단 데이터 수집 회로의 정렬은 수집된 데이터 워드를 보다 쉽게 해석될 수 있게 하여, 진단 데이터의 해석을 위한 정보를 알려주는 콘텍스트를 제공하는 프로그램 코드 또는 기타 메카니즘에 대한 필요성이 없다. 진단 데이터 수집 회로에 의해 일단 수집된 상태에서, 진단 데이터 필드는 그 자체의 진단 데이터 직렬 출력 회로에 의해 집적 회로로부터 여타의 개소로 다시 부하를 부여하지 않는 방식으로 출력될 수 있다. 본 기술은 유리한 저레벨의 자체 회로 오버헤드(circuit overhead)를 필요로 하면서도 집적 회로의 다른 요소에 대해 유익하게 침입 레벨이 낮은 진단 데이터 출력 능력을 제공한다.
진단 데이터 수집 회로가 진단 필드를 수집하는 버스는 다양한 다른 형태를 취할 수 있으나, 바람직한 실시예에 따르면, 진단 데이터 수집 회로가 둘 이상의 기능 회로를 링크하는 집적 회로의 기능 버스로부터 진단 데이터를 수집하는 것이 편리함을 이해할 것이다.
기능 버스와 관련하여, 데이터 워드는 그 기능 버스의 데이터 부분으로부터 수집될 수 있으며, 콘텍스트 워드는 기능 버스의 어드레스 부분으로부터 수집될 수 있다. 기능 버스 상의 전체 어드레스는 콘텍스트 워드로서 사용될 수 있지만, 바람직한 실시예에서 집적 회로에서 출력되는 것이 필요한 데이터 양을 줄이는 한편 상당량의 콘텍스트 정보를 제공하는데 어드레스중 일부만을 사용하는 것이 필요할 수 있다.
대안으로서 또는 기능 버스로부터의 진단 데이터의 수집 이외에, 하나 이상의 기능 버스로부터 진단 데이터 수집 회로로 데이터를 직접 전달하는 전용 진단 버스를 사용하는 것도 가능하다. 이와 관련하여, 데이터 워드와 콘텍스트 워드는 기능 버스 프로토콜에 의해 구속되지 않기 때문에 수집될 수 있는 데이터 워드와 콘텍스트 워드의 특성에 있어 유연성(flexbility)의 정도의 향상이 있다.
진단 데이터의 직렬 출력은 본 발명의 바람직한 실시예에서 직접적이면서 버퍼링되지 않을 수 있으나(direct and unbuffered), 진단 데이터 필드가 직렬 변환되어 출력되기 이전에 저장되는 선입선출 버퍼(first-in-first-out buffer)가 제공된다. 이러한 선입 선출 버퍼는 과잉의 진단 데이터 능력에 대해 적절한 저항성을 제공한다. 관심있는 진단 사건이 매우 가까운 시간 간격으로 소정의 버퍼링없이 일어나는 경우, 이들 사건은 동시에 검사되지 않을 것이다.
본 발명의 바람직한 실시예에 따르면, 진단 데이터 필드는 데이터 워드와 관계된 시간값을 나타내는 타이밍 워드를 포함한다. 상기 시간값은 여러가지 다른 형태를 가질 수 있다. 예를 들면, 가능하게는 주기 카운트 또는 실시간 값의 여러 형태일 수 있으나, 바람직한 실시예에서 집적 회로로부터 출력되는 것이 필요한 데이터 양은, 카운트값이 진단 데이터 직렬 출력 회로에 의해 여전히 출력되고 있는 소정의 기 수집된 진단 데이터의 수집 이후의 시간 지속을 나타내도록 배열하는 것에 의해, 충분한 정도의 시간 해상도를 허용하면서 감소될 수 있다.
바람직한 실시예에서, 상기 시간값은 하나 이상의 진단 데이터 필드가 예컨대, 진단 데이터 필드의 오버플로의 결과로서 수집에 실패하거나 다른 형태의 수집 실패를 나타내는데 사용될 수 있다.
직렬 형태의 진단 데이터의 출력은 여러가지 다른 방식으로 또는 여러가지 다른 인코딩을 이용하여 얻어질 수 있다. 예를 들면, 진단 데이터 필드가 보다 작은 멀티-바이트 세그먼트로 분할되고 그 세그먼트들이 연속으로 출력되는 것이 가능하다. 그러나, 바람직한 실시예에서, 단일 시리얼 데이터 출력선, 또는 집적 회로 자체 또는 다른 회로에 의해 발생되어 그 집적 회로에 사용될 수 있는 클록 신호에 관련된 단일 시리얼 데이터 출력선을 사용하는 것에 의해, 진단 시스템에 관련된 외부 핀 카운트 형태의 오버헤드가 감소될 수 있다. 클록 신호와 조합된 출력은 관련 클록 신호선이 이미 외부 출력으로서 존재하는 경우 적어도 어느 정도의 복잡성 또는 여분의 신호선을 희생하여 보다 빠른 데이터 전송률을 허용한다.
본 기술의 특히 바람직한 특징은 기능 회로중 하나에 실행되는 프로그램 명령이 진단 데이터 필드를 생성할 수 있다는 것이다. 따라서, 프로그램은 적절한 실행 시점에서 진단 데이터를 생성하는 프로그램 명령으로 이식/설치될 수 있다. 이는 진단 데이터의 생성과 그것이 나타내는 바에 있어서 상당한 유연성과 파워를 허용한다. 더욱이, 하드웨어 진단 데이터 수집 회로와 시리얼 출력 회로는 프로그램 코드가 진단 데이터의 수집 또는 출력이 아닌, 단지 그 생성만을 책임진다는 효과가 있다. 이는 유익하게도 프로그램 코드상의 오버헤드를 감소시킨다. 또한, 이 데이터의 생성후에 프로그램이 "충돌"하더라도 데이터는 여전히 수집될 것이다.
진단 데이터를 생성하는 프로그램 명령은 데이터 워드와 콘텍스트 워드가 후에 수집될 버스에 버스 트랜스액션(bus transaction)을 생성하는 것에 의해 이 동작을 바람직하게 수행한다. 버스 트랜스액션을 생성하는 프로그램 명령은 버스 구조를 사용하는 집적 회로 내에 정상적으로 존재하며, 따라서 이 진단 기능에 바로 활용될 수 있다.
본 기술의 매우 바람직한 특징은 진단 데이터 수집 회로가 선정된 어드레스 특징에 매칭하는 어드레스와 관련된 버스 트랜스액션을 수집하도록 작동 가능하다는 것이다. 이 방식으로, 진단 데이터 수집 회로는 버스 종속으로 만들어질 수 있으며, 이 버스 종속은 그 고유의 관련 어드레스 영역과 수집 및 출력 대상의 진단 데이터를 생성하고자 하는 경우 상기 어드레스 영역 내의 어드레스를 활용하여 버스 트랜스액션을 생성하도록 배열된 기능 회로를 구비한다.
진단 데이터 수집 회로와 연관된 어드레스 범위의 사용으로, 데이터 워드와 연관될 콘텍스트 워드가 버스 트랜스액션이 진행되는 어드레스 범위 내의 특정 어드레스로부터 파생될 수 있는 매우 유익한 특징이 얻어진다. 따라서, 기능 회로는 버스 트랜스액션을 특정 어드레스 위치로 진행하도록 배열하는 것에 의해 데이터 필드와 연관될 콘텍스트 정보를 제공하며, 이는 프로그램 명령에 의해 진단 데이터가 생성될 때 특히 용이하게 달성된다.
상기 콘텍스트 워드는 선정된 어드레스 범위 내에 사용되는 어드레스 부분을 나타내는 지수를 이용함으로써 버스 트랜스액션의 어드레스를 효과적으로 나타낼 수 있다.
본 발명의 바람직한 실시예는 진단 사건에 프로그램 가능 감도를 제공하며, 이는 그렇지 않은 경우에 진단 데이터 필드에 적용된 프로그램 가능 마스크값을 사용하는 것을 통해 사용자에 의해 쉽게 조정될 수 없는 방식으로 본 시스템의 동작에 관여될 수 있다. 이 프로그램 가능 마스크값은 진단 데이터 수집 회로에 의해 사용자가 관심없는 것으로 결정한 진단 데이터를 마스크 아웃(mask out)하거나 관심있는 데이터를 마스크 인(mask in)하는데 사용된다.
본 발명의 다른 측면에 따르면, 본 발명은 집적 회로로부터 진단 데이터를 수신하기 위한 진단 장치를 제공하며, 이 진단 장치는:
상기 집적 회로 내의 버스로부터 수집된 값의 진단 필드를 나타내는 직렬 데이터를 수신하도록 작동 가능한 진단 데이터 직렬 데이터 수신기; 및
상기 집적 회로 내의 하나 이상의 기능 회로에 의해 생성되는 데이터 워드와 이 데이터 워드와 관련된 상기 하나 이상의 기능 회로의 콘텍스트를 나타내는 콘텍스트 워드를 내부 식별하기 위해 상기 진단 필드를 디코딩하도록 작동 가능한 진단 데이터 디코더를 포함하며,
상기 진단 데이터 워드는 상기 집적 회로의 적어도 하나의 기능 회로에 대해 실행하는 프로그램 명령에 응답하여 생성되며, 상기 프로그램 명령은 상기 데이터 워드와 상기 콘텍스트 워드가 수집되는 상기 버스에 버스 트랜스액션을 생성하는 것을 특징으로 한다.
삭제
본 발명의 또 다른 측면에 따르면, 본 발명은 집적 회로의 하나 이상의 기능 회로에 의해 수행된 하나 이상의 데이터 처리 동작을 나타내는 진단 데이터를 생성하기 위한 방법을 제공하며, 이 방법은:
상기 하나 이상의 기능 회로에 의해 생성된 데이터 워드와 이 데이터 워드와 관련된 상기 하나 이상의 기능 회로의 콘텍스트를 나타내는 콘텍스트 워드로 구성된 값의 진단 데이터 필드를 버스로부터 수집하는 단계;
상기 진단 데이터 필드를 직렬 변환하는 단계; 및
상기 진단 데이터 필드를 상기 집적 회로로부터 외부 진단 장치로 출력하는 단계를 포함하며,
상기 기능 회로중 적어도 하나에 대해 실행하는 프로그램 명령은 상기 진단 데이터 필드를 생성하며, 상기 프로그램 명령은 상기 데이터 워드와 상기 콘텍스트 워드가 수집되는 상기 버스에 버스 트랜스액션을 생성하는 것을 특징으로 한다.
삭제
이하, 첨부 도면을 참조로 하여 본 발명의 실시예를 단지 예시의 목적으로 설명한다.
도 1은 본 발명의 실시예에 따른 진단 데이터 수집 회로를 구비한 집적 회로를 도시한 개략도;
도 2는 본 발명의 실시예에 따라 카운트 데이터 입력 및 하드웨어 출력을 갖는 진단 데이터 수집 회로를 구비한 집적 회로를 도시한 개략도;
도 3은 본 발명의 실시예에 따라 단일 배선 출력을 갖는 진단 수집 장치에 의해 데이터 출력을 수신하는 장치를 도시한 도면;
도 4는 본 발명의 실시예에 따른 단일 배선 출력 인터페이스의 논리 모델을 도시한 도면; 및
도 5는 진단 데이터 수집 장치를 도시한 개략도이다.
도 1을 참조하면, 집적 회로(10)는 2개의 기능 회로(20)를 접속하는 시스템 버스(25) 상에서 전송되는 진단 데이터를 수집하도록 작동 가능한 진단 데이터 수집 회로(15)를 포함한다. 상기 진단 데이터 수집 회로(15)는 데이터 처리 시스템에 의해 처리되는 데이터와 단일 배선 출력 사이에 인터페이스를 제공하며, 단일 배선 출력(single wire output: SWO) 소자로 지칭되기도 한다.
도 1의 소자에서, 진단 데이터 수집 회로는 기능 회로 사이의 버스를 경유 전송되는 데이터를 액세스하도록 배열된다. 상기 소자는 상기 데이터를 액세스하는 것과 별개로 본질적으로 시스템에 충격을 가하지 않거나 데이터에 어떤 방식으 로도 영향을 미치지 않는 수동 소자(passive device)이다.
진단 데이터 수집 장치는 어드레스 디코더, 선입선출(FIFO) 저장 장치, 및 직렬 변환기를 포함한다. 진단 데이터 수집 장치는 버스의 데이터 부분을 경유 전송되는 데이터 워드와 버스의 어드레스 부분을 경유 전송되는 데이터가 기록될 어드레스를 액세스하도록 작동 가능하다. 인터셉트된 데이터 워드는 진단 목적으로 관심 대상인 그 자체의 기록 데이터이다. 데이터 워드에 액세스되면, 어드레스 디코더가 "콘텍스트 데이터"의 선택된 비트를 데이터 워드에 가산하는 것에 의해 처리를 수행한다. 이 콘텍스트 데이터는 어드레스 데이터로부터 파생되며 실제 콘텍스트에 데이터 워드를 집어 넣는 역할을 한다. 확장된 길이 데이터 워드가 FIFO로 전송된다.
대부분 실시예에서, 액세스된 데이터 워드는 32-비트 워드이며, 바람직한 실시예에서는 이 워드에 5비트의 콘텍스트를 가산하도록 선택된다. 콘텍스트 데이터는 통상 어드레스 버스 상의 어드레스 데이터에서 취한 어드레스의 일부분이다.
데이터 수집은 특정 어드레스에 기록될 데이터에 응답하는 것을 포함하여, 여러가지 방법으로 행해질 수 있다. 일반적으로, 데이터 처리 시스템에서, 진단 데이터는 프로세서의 어드레스 공간 내 특정 영역에 기록되며, 따라서 이 특정 영역에 기록된 어떤 데이터도 진단 수집 장치에 관심의 대상이 될 것이다. 상기 시스템은 이 영역 내의 어드레스로의 데이터 기록 명령이 데이터 수집 장치를 시동할 수 있도록 셋업될 수 있다. 이를 행하기 위한 하나의 방법은 진단 데이터 수집 회로에, 수집될 진단 데이터 필드를 선택하기 위해 프로그램 가능 마스크 값을 사용 하도록 작동 가능한 마스크 회로를 제공하는 것이다.
일단 데이터 수집 회로가 시동되면, 어드레스 디코더는 데이터 워드에 콘텍스트 데이터를 가산하도록 동작한다. 여러 실시예에서, 데이터 영역 내의 개별 어드레스들은 특정 기능에만 유효하며, 따라서 5 비트의 콘텍스트 데이터로서 데이터 워드에 가산될 수 있는 개별 데이터의 상세는 인터셉트된 데이터 워드의 특정 기능에 관한 정보를 제공한다. 일부 실시예에서, 콘텍스트 필드는 어드레스의 선정된 범위 내의 어드레스의 위치를 나타내는 오프셋 값이 될 수 있다. 이와 관련하여, RTOS의 전형적인 모델에서, 예컨대, 지수 0은 스레드-인(thread-in)에, 지수 1은 스레드-아웃에, 지수 2는 뮤텍스 펜드(mutex pend)에, 지수 3은 큐 펜드(queue pend) 등에 사용될 수 있다. 이는 예컨대, RTOS가 지수 0에 스레드 ID(TCB 어드레스 또는 기타 32-비트 정보)를 단지 기록하여 특정 스레드가 실행되었음을 나타내는 것을 의미한다. 따라서, 하나의 저장 명령에서, RTOS는 발생된 액션/이벤트 및 그 액션/이벤트의 콘텍스트를 전달할 수 있다.
어드레스 디코더로부터 출력된 37-비트 데이터는 FIFO로 출력되며, FIFO는 단지 1-스테이지 FIFO일 수 있지만, 바람직하게는 여러 스테이지를 포함한다. 실제, FIFO는 전체 속도가 대역폭 미만인 한 데이터의 멀티 워드가 공히 근접 전송되도록 한다. 전형적인 FIFO 심도(depth)는 3이지만, 기능 회로의 최대 속도, 데이터 수신 코어의 클록 속도 및 SWO의 출력 속도에 따라 다른 심도로 선택 가능하다.
직렬 변환기는 FIFO로부터 출력된 데이터를 직렬 데이터로서 단일 배선 출력(SWO)를 경유하여 출력하는 역할을 한다. 직렬 변환기에 의해 출력된 데이터 속도 는 실시예에 따른다. 저속 및 고속 실시예가 존재하며, 이들은 후술된다. 본질적으로, 고속 실시예는 클록화될 직렬 변환기 출력을 필요로 하며(도 2 참조), 따라서, 단일 진단 데이터 시리얼 출력(SWO) 이외에, 클록 신호 입력선이 존재한다. 일반적으로, 고속 실시예는 100MHz를 지지할 수 있지만 약 48MHz에서 동작한다.
저속 실시예는 클록 입력을 필요로 하지 않으며, 단일 핀 인터페이스 상에서 12MHz까지 유지 가능하다.
단일 배선 출력 인터페이스 장치는 복수개의 37-비트 데이터 워드를 연속 출력할 것이며, 어떤 수신 장치도 출력 데이터를 다른 스트림으로 역다중화(de-multiplex)하기 위해 32-비트 데이터 워드와 관련된 5-비트 콘텍스트 데이터를 이용할 수 있다.
도 2는 본 발명의 일 실시예에 따른 집적 회로에 사용되는 데이터 수집 장치를 도시하고 있다. 데이터 수집 장치는 도 1에 도시된 것과 유사하지만, 추가로, "카운트" 입력과, 진단 데이터를 기능 회로로부터 전송하기 위한 관련 전용 진단 버스를 갖는 추가 FIFO를 포함한다.
카운트 입력은 37-비트 워드에 부가될 수 있는 콘텍스트 데이터와 관련된 시간값을 나타내는 타이밍 필드를 입력하도록 작동 가능하다. 카운트 값은 시스템 버스로부터 수집되는 데이터 워드 사이의 시간 길이, 다시 말해, 다음 워드의 도달 이전에 FIFO에서 소비되는 워드의 시간 길이를 나타낸다.
하나의 실행예는 데이터 조각의 수집에 의해 개시되고 다음 조각의 수집에 의해 종료된 후 재개시되는 카운터의 제공이다. 수집 타이머가 범람하여 이런 의 미로 데이터 조각을 SWO로 전송하면, 이는 실제 출력되는 패킷 트레인에 중지(pause)가 있을 때만 여분의 패킷이 필요하기 때문에 대역폭에 영향을 미치지 않는다.
카운터로부터의 정보는 패킷에 관련된 지연 마커(delay marker)로서 데이터 패킷을 생성하는 직렬 변환기에서 37-비트 워드에 부가된다. 바람직한 실시예에서, 이는 3-비트 워드이다. 카운트 데이터는 프로세서에 의해 수행되는 기록 명령 사이의 시간을 나타내며, 따라서, 유용한 부가 진단 데이터이다. 또한, 카운트 데이터는 특정 데이터 필드의 데이터 필드를 놓친 경우를 나타낼 수 있다.
도 2는 시스템 버스를 통해 전송되는 데이터 없이 기능 회로로부터 진단 수집 회로 출력으로의 통신을 제공하는 전용 진단 버스(40)를 나타낸다. 이는 하드웨어 실행으로서, 실제 특정 기능 회로의 동작의 "추적"을 제공할 수 있다. 여기에는 어드레스 디코드가 없으며, 하드웨어는 FIFO에 데이터 비트를 직접 기록하도록 셋업된다. 전용 진단 버스는 자체 FIFO를 경유하여 데이터 수집 회로에 결합되며, 이는 시스템 버스로부터 데이터가 수집되더라도 데이터가 출력선에 부가되도록 한다.
도 3은 단일 배선 출력을 갖는 진단 수집 장치에 의해 출력된 직렬 데이터를 수신하기 위한 장치를 도시한다. 상기 장치는 직렬 데이터 수신기와 직렬 데이터 디코더를 포함한다. 상기 수신기는 직렬 신호를 수신하도록 작동 가능하며, 상기 디코더는 상기 신호를 디코딩하고 그 신호 범위 내로부터 기능 회로에 의해 생성된 데이터 워드 및 그 관련 콘텍스트 데이터를 식별하도록 작동 가능하다. 상기 콘텍 스트 데이터는 데이터 워드를 분류하고 단일 스트림을 멀티 스트림으로 역다중화하는데 이용된다.
소정 실시예에서, 상기 수신기는 호스트 상의 디버거(debugger)일 수 있으며, 디코더는 데이터 워드를 그 콘텍스트 워드에 따라 분류하여 적정 데이터를 디버거로 포워드하도록 동작하며, 반면 다른 데이터를 커스텀 DLL로 전송하고 또 다른 데이터는 저장한다.
디버깅 또는 추적의 목적을 위한 용도 이외에, 다른 진단 데이터는 이 단일 배선 출력 장치를 사용하여 수집될 수 있다. 예를 들면, 이 시스템이 자동차의 집적 회로에 존재하는 경우, 자동차 시스템의 여러 부품의 상태 정보를 제공하는 진단 데이터를 이 핀으로부터 추출 가능하다.
본 발명의 실시예에 대한 추가 정보가 아래에 제공된다. 이와 관련하여, 하기의 용어 및 약어가 사용된다.
용어 의미
SWJ 단일 배선 JTAG. 이는 런-제어(run-control) 에뮬레이터가 칩에 탑재되고 단일 핀 방식을 이용하여 통신케 하는 모델이다(대비; JTAG 4 또는 5). 이는 핀수를 줄이고 통상 JTAG 보다 매우 빠르다. 또한, 추가 액세스 및 고유 ID를 제공한다. 이 MemTAP 모델의 사용은 이 방식이 매우 빠른 다운로드로 구동되도록 한다.
DBT/Mem 이는 AMBA (AHB 또는 AHB-Lite)로서 기능하는 TAP 블록이다.
TAP 시스템 버스의 액세스용 마스터
AMBA 칩내의 ARM 버스 표준
AHB 정상 메모리 액세스를 위한 AMBA 고속 인터페이스 (대비; APB).
AHB 종속 어드레스 영역에서 액세스에 능동적으로 응답하는 AMBA 소자. SWO는 AHB 종속 소자이다.
AHB Lite 멀티-마스터, 풀 버스트 모드 및 그 관련 시그널링 없는 AMBA AHB의 스트립 다운 버전.
UART 비동기 시리얼 디바이스(비트는 한번에 하나가 전송). SWO는 UART 개념에 기초한다. SWO는 또한 디버그 트레이스 툴로서 UART를 대체하도록 의도된다.
ETM 임베디드 트레이스 마크로셀은 트리거 이벤트에 응답하고 명령 및/또는 데이터 트레이스 정보를 저장하는 온칩 트레이스 블록을 말한다.
이하, 본 발명의 실시예에 따른 초미소 단일 배선 출력 "트레이스" 성분에 대해 설명한다. 이 성분은 ETM과는 무척 다르며, 실제 ETM과는 상보적일 수 있다(어플리케이션 및 HW에 따라). SWO용 모델은 어플리케이션 구동 추적 방식인 반면, ETM은 프로세서 구동 추적 방식이다. ETM이 추적 대상을 제어하기 위해 트리거 및 범위를 사용하는 경우, SWO는 수동적이며, 어플리케이션, RTOS 또는 시스템 HW에 의해 명백히 전송받은 것을 단지 출력할 뿐이다.
SWO는 아래의 4가지 주목적용 어플리케이션에 의해 사용되도록 설계된다:
ο 'printf' 디버깅 수행. 이는 어플리케이션으로 하여금 일부 채널로 데이터를 전송케 하여 호스트 상에서 사후 처리를 수행할 수 있는 것을 원한다는 의미이다. 전통적으로, 시리얼 채널이 사용되지만, 이는 어플리케이션 자체 자원중 하나를(통상) 필요로 한다. 이는 또한 드레인을 위한 ISR을 의미한다(또는 HW 오토 버퍼링). 또한, 전통적인 시리얼 장치의 매우 느린 속도는 데이터 속도를 제한한다.
ο RTOS 이벤트 트레이싱 수행. 이는 RTOS의 약간의 변형으로, 특정 위치에 ID를 기록하는 것을 의미하며, 이는 발생 이벤트를 나타낸다. 기록 동작이 저가인 한, 배치 버전에 기록을 남길 수 있다(대비; 별도의 디버그 이미지를 가짐). 이는 프로브 효과의 발생을 억제하도록 고정의 낮은 침입성을 보장한다. 전통적으로, 이는 시리얼 라인 외로 강제하는 낮은 우선 순위의 스레드로 전달된다. 그렇지 않은 경우, 사후 검토 분석을 위한 링 버퍼에 덤핑된다. 그러나, 대부분의 RTOS는 단지 특별 버전에 이를 포함하고, 스레드와 시리얼 라인의 지연은 결정적인 정보가 소실되거나 왜곡될 수 있음을 의미한다. 또한, 스레드의 오버헤드와 정보 전송의 보다 높은 오버헤드는 테스트시 거동을 변화시킬 수 있는 프로브 효과(probe effect)를 가진다.
ο 어플리케이션 또는 '버스' 트레이싱 수행. 이는 특정 트랜스액션 또는 실 데이터를 관찰함을 의미한다. 이는 그 해석이 데이터 자체로부터 분리되어져야 한다(예, 선험적 지식)는 점에서 printf 디버깅과 구별된다. 이는 또한 시스템 내 다른 코어가 동일 서비스(DSP 등)를 이용할 수 있음을 의미한다.
ο 시스템 레벨 HW가 수집 정보를 내도록 함. 이는 시스템 설계자가 호스트의 제어하에서 소 블록 정보 피드(feed)를 쉽게 추가할 수 있게 한다. 이는 경합 분석(contention analysis)(버스 사용 밸런싱, DMA 분석, PC 샘플링( 캐쉬리스(cache-less) 코어 내 또는 코어 서포트로), 이벤트 카운팅, 타임 트리거 이벤트(ETM으로부터와 같은), 에러 상태 등)을 포함할 수 있다.
SWO 및 ETM 혼재 시스템에서, ETM은 명령 스트림, 특별 트리거링 이벤트 및 대역폭이 훼손되지 않는 다른 영역에 촛점을 맞출 수 있다. 이 밸런싱은 핀과 게이트에 구속된 설계자에게 양호한 솔루션을 제공한다.
SWO 모델은 변형 어플리케이션 코드를 남기고, 비사용중인 SWO 성분을 간단히 셧오프한다. 이는 시간 소비가 디버그와 생성 용도 사이에서 변화하지 않음을 의미한다. 따라서, 이는 고정된 침입성이다(고속 메모리에 기록할 뿐이므로 통상 낮은 값이다.). 그러나, 셧오프될 수 있다는 점 때문에 비 사용시 파워를 끌어오지 않는다.
SWO 아키텍쳐는 하기의 3개의 가이드 원리에 기초한다:
1. 디버그-UART (RS232 등) 방식 프로그래밍 솔루션을 대체.
2. 단일 핀으로 12Mbit/s까지의 속도로, 2-핀으로 100Mbit/s까지의 속도로 작동 가능.
3. 어플리케이션 침입 최소화.
SWO 인터페이스는 32 메모리 매핑 워드 "레지스터" 세트로서 노출되어 있다. 각 워드 레지스터는 어플리케이션에 의미있는 32-비트 값과 함께 기록될 수 있다. 레지스터의 지수(0-31)는 메시지의 일부이다. 다시 말해, 실제 32 레지스터가 존재하는 것이 아니라 37 비트 크기를 갖는 하나의 레지스터이다. 이 37-비트 레지스터는 어플리케이션에 의해 기록된 32-비트 데이터와 어드레스된 레지스터에 의해 선택된 5-비트 지수(어드레스의 말단 5비트)를 포함한다. 이는 어플리케이션이 선택된 위치에 의해 단지 의미를 부가할 수 있음을 의미한다.
RTOS의 전형적인 모델에서, 예를 들면, 지수 0은 스레드-인에, 지수 1은 스레드-아웃에, 지수 2는 뮤텍스 펜드에, 지수 3은 큐 펜드 등에 사용될 수 있다. 이는 예컨대, RTOS가 지수 0에 스레드 ID(TCB 어드레스 또는 기타 32-비트 정보)를 단지 기록하여, 특정 스레드가 실행되었음을 나타내는 것을 의미한다. 따라서, 하나의 저장 명령에서, RTOS는 발생된 액션/이벤트 및 그 액션/이벤트의 콘텍스트 모두를 전달할 수 있다.
지수는 밴드 내에 할당될 수 있다. 따라서, 0-17은 RTOS(18 지수)에, 18 및 19는 "printf" 로깅(logging)에, 20 및 21은 기능 입력/출구(컴파일러 생성식 또는 핸드 생성식(hand generated))에, 22 및 23은 ISR 입력/출구에 주어질 수 있다. 호스트 역시 "어드레스"(5-비트) 및 "데이터"(32-비트)로서 37 비트를 참조할 수 있으나, 이를 다른 스트림으로 역다중화할 수 있다. 따라서, 호스트 상에서, 디버거는 RTOS 이벤트로서의 모든 어드레스(0-17)와 printf 로깅용 어드레스(18 및 19)를 처리할 수 있다. 이 역다중화는 단지 디버거에 제공된 구성의 결정과 타겟에 사용된 규약이다. 이는 디버거에 의해 메시지 스트림 일부가 커스텀 DLL에 들어가고, 일부가 파일에 저장되며, 일부가 라이브 처리되도록 한다. 어떤 조합도 허용 된다.
데이터용 32 레지스터와 함께, SWO 성분은 키-로크(key-locked) 제어 레지스터, 상태 레지스터 및 ID를 제공한다. 또한, 특정 어드레스(0-31)의 선택적 디스에이블을 허용하는 마스크-인에이블 레지스터가 존재한다.
SWO는 2가지 기본 형태를 갖도록 정의된다: 저속 및 고속. 저속 성분은 단일 핀 인터페이스 상에서 12Mbit/s 까지 유지하도록 의도된 것이다. 고속 성분은 2 배선(클록+데이터) 상에 100Mbit/s까지 유지하도록 의도된 것이다. 고속 성분은 단일 데이터 핀도 사용할 수 있기 때문에 "단일 배선"으로도 지칭된다. 고속 성분은 USB2 수집 장치와 함께 양호하게 동작하는데 48MHz 이하로 정상 구동하도록 예정되어 있음에 주의하여야 한다. 더 이상의 핀수를 사용 가능하지만, 수집 장치의 유용성에 문제가 생기는 것을 피하기 위해 매우 적은 수로 구성되도록 의도하고 있음을 주목하여야 한다.
프로토콜과 관련하여, SWO 성분은 모든 문제점을 4계층 통신으로 나눈다:
1. 배선 프로토콜. 이는 정상 단일 배선 모델(저속)의 경우 42-비트 프로토콜로서 정의되지만, Manchester 인코딩을 이용하여 더블 클록화된다(즉, 10MHz 비트 속도는 20MHz 클록 속도를 이용한다.). 핀 자원을 공유하는 경우 랩트(wrapped) ETM v3 패킷일 수 있다. 고속의 경우, 별도 클록 소스(SWO 용도로의 의도에 무관하며, 칩으로 들어가거나 나오는 클록일 수 있다.)를 갖는 42-비트 프로토콜일 수 있다.
2. 타겟 프로토콜. 이는 3-비트 헤더, 5-비트 어드레스 및 32-비트 데이터 블록을 포함하는 40-비트 프로토콜로서 정의된다. 3-비트 헤더는 지연 정보, 오버런 상태 및 확장 포맷팅에 사용된다.
3. 데이터 프로토콜. 데이터 프로토콜은 호스 및 타겟 어플리케이션 간 규약이다. 즉, 32-비트 데이터에 대해 정의된 의미는 없다. 그 의미는 전송기에 의해 할당되고, 그것을 이해하도록 구성된 호스트 SW에 의해 디코딩된다. 이로부터 광범위한 어플리케이션 및 시스템에 걸쳐 무정형(free-form)의 사용이 가능하다.
4. 수집 장치 프로토콜. 이는 타겟 프로토콜의 확장이며, 수집 장치가 추가 정보를 제공하도록 한다. 특히, 수집 장치는 패킷 시작의 시간 측정치를 제공한다(1 마이크로 초 입도(granularity) 내). 시간 측정치는 합당한 정확도로 수행될 상대적 및 절대적 시간 측정치를 허용한다. 타겟 프로토콜에서의 내부 지연은 패킷 "트레인"(패킷이 배면 결합 방식으로 스트림화될 때)의 경우인 반면, 수집 장치 시간은 고정 측정치이다(그리고, 새로운 패킷 또는 패킷 트레인의 시작에서의 측정은 정정을 허용하기 때문에).
단일 배선 저속 HW 인터페이스는 저가 장치에 의한 자동 보오잉(auto-bauing)을 허용하도록 설계된다. 12Mbit/s 이하로 지속하고, Manchester 인코딩(1=HIGH-LOW, 0=LOW-HIGH)을 이용하는 것에 의해, 저가 장치가 자동-보오잉하고 USB 1.1로 잘 작동되도록 하는 것이 용이하다. 또한, 24MHz 이하에서, 국소 변형이 칩에 가해져서 신호를 구동하거나 보드 설계자가 트레이스를 레이아웃하게 한다. 이는 이 디버그 요소가 거의 부동산을 필요로 하지 않는 분야 내에 사용될 수 있음을 보장하는데 도움이 된다. 실제, 바람직한 실시예에서, 단일 배선은 외부 HW 인터페이스가 존재하지 않으므로 칩(리셋 시간으로 제어된) 내의 테스트 핀으로 다중화될 것이다(예컨대, LED에 결속된 GPIO를 공유함에 있어 공통적일 수 있는 것 처럼). 이는 테스트 핀 커넥터가 SWO에도 사용될 수 있음을 의미한다.
고속 사용시, 별개 클록 핀이 사용될 것이다(단일 데이터 배선+클록). 이 클록은 상기 속도를 위해 사용될 것이며, 따라서 자동-보오잉이 필요하다(패킷의 인식에 시작 비트와 패러티가 여전히 사용될 것이다.). 상기 클록은 칩을 출입하는 소정의 클록 신호일 수 있음에 주목하여야 한다. 또한, 보다 고속의 SWJ는 매우 빠른 단일 배선 디버그 제어를 허용하도록 동일 클록을 사용함에 주목하라. 이는 3-핀이 보다 큰 장치의 고속의 SWJ+SWO에 사용될 수 있음을 의미한다. MemTAP을 갖는 고속 SWJ는 현재 4-6 배선 JTAG 보다 빨리 동작할 수 있다.
대부분의 어플리케이션에 12Mbit/s의 유지 속도면 충분하지만, 버스트 속도는 고속일 필요가 있다. SWO 성분은 보다 고속의 버스트 속도를 허용하도록 FIFO를 사용한다. 시스템 설계자는 FIFO의 심도를 선택할 수 있다(1 이상). FIFO는 전체 속도가 대역폭 미만인 한, 어플리케이션으로 하여금 상호 근접한 데이터의 멀티 워드를 전송하도록 한다. 이는 예컨대, 희박 이벤트 로그(rare event log)의 콘텍스트의 3 워드 덤핑을 허용할 수 있다. 3의 FIFO 심도가 최적일 것이라는 것과 유사하다.
어플리케이션은 특정 프로세서에 대한 최대 속도를 여전히 인식할 필요가 있다는 점에 주의하여야 한다. 이는 FIFO 심도, 코어의 클록 속도, SWO 속도에 의해 영향을 받을 것이다. SWO가 오버런이 발생하였음(데이터 탈락)을 기록하기 때문 에, 이는 특정 어플리케이션 및 칩 조합을 위해 오버런의 튜닝을 허용한다.
printf 디버깅의 전통적 모델은 어플리케이션의 전략적 포인트에 프린트 스테이트먼트를 삽입하는 것이다. 이는 프로세서의 중지없이 정보의 어플리케이션 중심 덤프(centric dump)를 허용한다. 이 기법은 4가지 이유로 널리 이용된다:
1. 디버거에서 각 포인트 마다 정지하는 것은 시간 소모의 것으로, 찾고 있는 대상을 인식하지 못할 때 매우 시간 소모적이다. printf 모델은 중요 데이터를 표시하고 문제의 신호를 찾도록 한다. printf 디버깅은 구동-정지 디버깅과 관련되어 사용되며, 문제 영역이 협소화되기 때문에 사용자가 디버거를 사용하여 문제 영역을 통해 스텝을 실행할 수 있다.
2. 코드 플로우의 분석. 로그는 실행 명령의 관찰에 사용될 수 있다. 이는 실행 명령이 대부분의 경우 결정적이지 않기 때문에 인터럽트 베이스 SW에 매우 유용하다.
3. 데이터 로깅. 구동중 수치 덤핑 능력은 사건 이후의 분석을 가능케 한다. 중지점(breakpoint)을 이용하여 이를 행한다면, 중지에 의해 외부 시스템이 충격을 받을 것이므로, 시간 소모적일 뿐 아니라 거동을 변화시킬 것이다. 전형적인 사용은 예정된 것(발생된 이전 어플리케이션, 지정(specification) 등)에 대하여 그리고 튜닝을 위해 실제 데이터를 비교하는 것이다.
4. 희귀 이벤트 모니터링. printf 모델은 장애가 매우 드믄(예, 2주 구동 후) 시스템에 사용되는 경우가 있다. 이는 검지된 장애의 포인트에서 콘텍스트에 대한 많은 정보를 수집하는데 사용된다.
전통적 printf 디버깅의 문제점은 느린 채널에 걸쳐 때로 내부에 포맷팅 데이터를 가지는 전송 바이트 스트림을 포함한다는 점이다. 또한, 그 결과 처리가 어려운 경우가 있다. 스트링을 사용하는 것은 다음과 같은 문제가 있다:
■스트링이 길수록 전송 거리가 길다. 이는 스트링이 간결하여야 함을 의미하며, 이는 결과 판독 능력에 영향을 미친다.
■ 스트링은 타겟 메모리에 저장되어야 하며, 따라서 공간을 차지한다.
■ 스트링은 그 안에 포매팅된 데이터(국부적 정보)를 가질 필요가 있는 경우가 있다. 이는 시간 소모적일 뿐 아니라 버퍼 관리를 의미한다(포맷화된 결과 스트링이 나올 때까지).
전통적인 것에 대한 대안은 스트링을 사용하지 않고, 생 데이터(raw data)를 전송하는 것이다. 이는 유용한 정보로의 전환을 어렵게 하며, 데이터 수집 방법에 대한 이슈를 생성한다.
본 발명의 실시예에 따른 SWO는 효과적이고 쉬운 사용 방식으로 강력한 종류의 printf 디버깅을 지원한다. 그 모델은 2가지 부분에 기초한다:
■ 스트링 테이블 모델. 이는 사용자가 사용을 원하는 각 스트링, 개수 및 산출 이름 사이를 매핑한 파일을 생성함을 의미한다. 예를 들면:
0X10: DBG_CHANGE_VALVE: 밸브 위치가 %d로 변화됨
0X11: DBG_MOTOR_SENSOR: 모터 센서 판독: %u 속도 %u 온도, %u 전류
상기 두행에서, 파일은 각 printf 로그가 32-비트로 전송되도록 충분한 정보를 제공하였다. 32-비트값은 테이블 내로 8-비트 지수(0X10 및 0X11은 8비트 위치 에 있음)와 24-비트 데이터값으로 "분할"된다. 제1 스트링에서, 24-비트값은 %d에사용된다. 제2 예에서, 24-비트값은 3개의 8비트 양으로 분할되고, %u 제어에 사용된다. 스트링은 또한 %c 및 고정 포인트값을 이용할 수 있다. 상기 파일은 데이터 팩업(pack up)을 위해 일부 매크로에 따라 각각의 산출을 형성하는 C/C++ 헤더 파일을 생성하는 유틸리티에 의해 소비된다. 이는 DBG_STR_1(DBG_CHANGE_VALVE, valve_position)과 같이 프로그램 내에 매우 단순한 라인을 허용한다.
매크로는 산출 이전된 24-비트를 간단히 기록하거나(컴파일러에 의해 계산된 상수) 제공된 수치를 갖는다. 이는 매우 적은 프로세서 오버헤드를 사용한다.
■ 디버거는 스트링 테이블에서 8-비트 지수를 조사함으로써 입력되는 값을 해석하고 그 값을 로그 윈도우 및/또는 파일 내에 나타낸다. 로그 윈도우는 산출 및 분류를 통해 필터링을 허용한다. 로그 윈도우 및 파일 모두는 (수집 장치로부터) 시간 스탬프를 기록한다. 이는 이벤트 사이의 상대적 시간 측정을 허용한다.
종래에는 이들 동일 어플리케이션을 위해 DCC의 사용을 시도하였다. 그러나, 이는 3가지 문제점을 도출한다:
■ 이는 성능에 있어서 매우 비결정적이다. 이는 JTAG 에뮬레이터와 SW가 선택하는 것 처럼 빠르게 드레인되고 만다. 호스트 기반 에뮬레이터의 구동시, 이는 매우 비예측적이다. 이는 어플리케이션이 데이터를 소실하여야 하거나(이에 대한 기록도 없다.) 대기하여야 함(어플리케이션 봉쇄)을 의미한다. 이는 스레드로 하역 이 동작을 수행케 하고(따라서 스레드만 차단됨) 및/또는 비어 있는 인터럽트 를 사용케 하는 것으로 어느 정도 극복될 수 있다. 양자의 솔루션은 여전히 상당량의 개입을 필요로 한다.
■ CP14 인터페이스를 필요로 하고, 상기 한정된 단일 워드 문제점 때문에, 합당한 인라인 기록이 불가능하다. 이는 어플리케이션이 루틴에 필요한 액션을 수행하도록 호출하여야 함을 의미하며-이는 상당한 오버헤드를 부가한다.
■ 스피킹 지원 툴이 존재하지 않는다(DCC 채널 뷰어는 '비-차단성' 지원을 위한 유일한 리얼 옵션이다.).
따라서, DCC는 UART를 사용하는 것과 대략 등가이지만, 결정적 성능이 약하다. 또한, 최대 DCC 속도는 사용된 에뮬레이터 및 이와 함께 사용된 SW에 의해 크게 영향을 받는다.
수집 장치는 시간 측정을 행한다. 새로운 패킷으로부터 제1 비트의 시간을 결정하는 것으로부터 측정이 행해진다. 수집 장치는 바로 직전에 (호스트에) 패킷을 전송하며, 이는 이 패킷 이전(최종 시간 패킷으로부터)의 지연 정도를 나타낸다. 일단 패킷 트레인이 도달하면(패킷 트레인은 다음 패킷의 시작 비트가 이전 패킷의 정지 직후임을 의미한다-이는 통상 FIFO 언로딩으로부터), 패킷에서 지연 마커가 사용된다. 지연값은 대략 새로운 패킷 도달시 이전값이 FIFO에 있었던 시간을 나타낸다. 지연은 시간의 2지수 파워(0=0-7, 1=8-15, 2=16-31 등)이며, 따라서 적절히 측정이 이루어지도록 보정될 수 있다.
추가로, 마커는 상관 관계 분석을 위해 ETM으로부터 SWO로 전달된다. 이는 사용자 셋-업의 트레이스 이벤트에 상관될 수 있다(트레이스 블록의 시작에 값을 기록하여 시간 상관도를 얻고 모든 후속 출력을 스탬프한다.). 이는 주기-시간 관계가 저장되도록 한다. ETM에 커플링된 적절한 해상도 시간(1 마이크 초)의 사용은 어플리케이션 콘텍스트를 보다 잘 이해할 수 있도록 할 것이다. 이는 ETM이 시간 스탬핑을 제공(시간 관련성이 없고 그 의미가 하시라도 변화할 수 있는 주기가 아닌)하는 그 능력을 상실할 때 보다 분명해질 것이다.
시간 스탬핑은 시뮬레이션/응답, 어플리케이션 내의 포인트-포인트, SW 응답(ISR 등)에 대한 HW 이벤트, ISR 타이밍, 인터럽트 지연 시간, 및 코드 프로파일링의 측정을 허용한다. 정상 시간 측정은 수집 타이머가 오버플로우시 수집 장치로 하여금 다시 호스트로 패킷을 삽입토록 하는 것에 의해 행해진다. 이는 호스트가 절대 시간을 갖도록 한다. 이들 여분의 패킷이 패킷 트레인 부재시만 사용되기 때문에, 대역폭의 희생은 없다(수집-호스트 통신 링크에 대한 부동 시간(dead time) 때문에).
본 발명의 실시예에 따른 4종류의 수집 장치가 하기에 요약된다:
1. 저속 SWO용 저비용 직접-USB 직병렬 변환기. 이 장치는 메모리를 갖지 않으나, (시간 스탬프를 제외하고) 패킷을 복귀 전송하는 EPLD 및 USB 장치를 사용한다. 이 장치는 타겟에 대해 2개의 커넥터를 필요로 할 따름이다(SWO와 Ground). 마이크로-제어기에 특히 적합하다.
2. 고속 SWO용 고속 수집 장치. 이 장치는 100MHz 까지 데이터 수집을 위해 추가의 별도 클록 핀을 사용한다. 이 장치는 USB2 또는 100Base10과 같이 호스트로의 고속 통신 채널을 사용하거나, 필요한 경우 온보드 버퍼링을 사용한다.
3. ETM 트레이스 수집 박스. 이는 ETM v3 데이터 스트림에 있거나 패킷화된 고속 SWO 신호를 수집한다.
4. RVI와 같은 지능형 에뮬레이터는 여분의 핀을 사용하여 저속 SWO를 수집하는데 사용될 수 있다. 이는 국부 메모리 내로의 수집을 가능케 하며, RV-msg를 통해 호스트로 언로드를 가능케 한다. RVI 박스는 데이터(시간 스탬프가 아닌)의 예비-처리를 필요로 하지 않을 것이다.
도 4에 보여지는 바와 같이, 논리적 설계는 코어가 내부 "메모리"에 32 워드를 참조한다는 점이다. 이들은 0이거나 낮은 대기 상태(기록 버퍼 유효치 0)이여야 한다. 이는 어플리케이션으로 하여금 32-비트 데이터 워드로 매핑된 영역 내의 오프셋(0-31)에 기록하는 것을 가능케 한다. 이 장치는 32-비트 워드에 부가하여 '모듈로(modulo)' 어드레스[((addr-base)>>2) & 0X1F 로서]를 기록할 것이다. 여분의 매핑된 레지스터는 제어 및 상태용이다.
SWO 성분은 전력 낭비를 피하기 위해 파워 업 상태에서 디스에이블된다(그러나, 여전히 기록 가능하며, 단순히 무효한 상태일 것이다.). 수동적 사용시(구동 제어 박스 없음), 어플리케이션은 부트 코드로 또는 소정의 검출 기구(스트랩 핀 또는 부트 EEPROM/플래시 세팅)에 기초하여 요소를 인에이블함에 주의 하여야 한다. 이는 SWO가 구동 제어 에뮬레이터에 의해 인에이블되거나(코어 또는 MemTAP을 통해), 어플리케이션 스스로 인에이블하는 것을 의미한다.
도 5는 집적 회로에 접속될 수 있는 진단 데이터 수집 장치를 개략적으로 나타낸 도면이다. 이 장치의 외부 형태는 일단부에 PCB 커넥터로 플러그된 케이블과 타단부에 USB 플러그와 같은 컴퓨터 접속부를 갖는 회로를 포함하는 원통형의 것으로 보여진다. 데이터 수집 회로(50) 내에서, 직병렬 변환기가 집적 회로로부터 직렬 진단 데이터 스트림을 수신한다. 패킷타이저는 직병렬 변환기(52)로부터 바이트 스트림을 취하여 그 고유 클록킹을 부가한 후 소정 기간 동안 데이터가 없을 때 하트비트를 전송한다. 패킷타이저는 또한 오버플로우의 경우를 나타내기 위해 패킷을 내보낸다(통신 보다 빨리 도달한 데이터에 의해 드레인될 수 있다.). 바람직한 실시예에서 하트비트는 여하간에 매 고정 기간 마다 항상 전송됨을 주의하여야 한다. 이는 긴 데이터 트레인 도달시 시간에 대해 왜곡되지 않도록 하는 것을 보장한다(하트비트로 패킷에 대한 시간을 재설정함). 통신 장치(56)(USB)는 패킷타이저(54)로부터 진단 데이터를 취하고, 이를 추가 분석을 위해 범용 컴퓨터(예, PC)로 전송한다.

Claims (52)

  1. 집적 회로로서,
    데이터 처리 동작을 수행하도록 작동 가능한 하나 이상의 기능 회로;
    상기 하나 이상의 기능 회로에 의해 생성된 데이터 워드와 이 데이터 워드와 관련된 상기 하나 이상의 기능 회로의 콘텍스트를 나타내는 콘텍스트 워드로 구성된 값의 진단 데이터 필드를 버스로부터 수집하도록 작동 가능한 진단 데이터 수집 회로; 및
    상기 진단 데이터 필드를 직렬 변환하고 상기 집적 회로로부터 외부 진단 장치로 출력하도록 작동 가능한 진단 데이터 직렬 출력 회로를 포함하며,
    상기 기능 회로중 적어도 하나에 대해 실행하는 프로그램 명령은 상기 진단 데이터 필드를 생성하며, 상기 프로그램 명령은 상기 데이터 워드와 상기 콘텍스트 워드가 수집되는 상기 버스에 버스 트랜스액션을 생성하는 것을 특징으로 하는 집적 회로.
  2. 제1항에 있어서,
    복수개의 기능 회로를 포함하며, 상기 버스는 상기 복수개의 기능 회로를 상호 접속하는 기능 버스인 것을 특징으로 하는 집적 회로.
  3. 제2항에 있어서,
    상기 기능 버스는 데이터부와 어드레스부를 포함하며, 상기 데이터 워드는 상기 데이터로부터 수집되며, 상기 콘텍스트 워드는 상기 어드레스부로부터 수집되는 것을 특징으로 하는 집적 회로.
  4. 제3항에 있어서,
    상기 콘텍스트 워드는 상기 버스의 상기 어드레스부 상의 어드레스의 일부인 것을 특징으로 하는 집적 회로.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 버스는 적어도 하나의 기능 회로로부터 상기 진단 데이터 수집 회로로 상기 데이터 워드 및 상기 콘텍스트 워드용 신호를 전달하는 전용 진단 버스인 것을 특징으로 하는 집적 회로.
  6. 제3항 또는 제4항에 있어서,
    복수개의 버스를 포함하며, 적어도 하나의 버스는 적어도 하나의 기능 회로로부터 상기 진단 데이터 수집 회로로 상기 데이터 워드 및 상기 콘텍스트 워드용 신호를 전달하는 전용 진단 버스인 것을 특징으로 하는 집적 회로.
  7. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 진단 데이터 수집 회로는 상기 진단 데이터 직렬 출력 회로에 의해 출력되도록 직렬 변환되기 이전에 진단 데이터 필드가 저장되는 선입선출 버퍼를 포함하는 것을 특징으로 하는 집적 회로.
  8. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 진단 데이터 필드는 상기 진단 데이터 워드와 관련된 시간값을 나타내는 타이밍 워드를 포함하는 것을 특징으로 하는 집적 회로.
  9. 제8항에 있어서,
    상기 시간값은 상기 진단 데이터 직렬 출력 회로에 의해 여전히 출력되는 소정의 기 수집된 진단 데이터 필드의 수집 이후의 시간 지속을 나타내는 카운트 값인 것을 특징으로 하는 집적 회로.
  10. 제9항에 있어서,
    상기 시간값은 하나 이상의 진단 데이터 필드가 상기 진단 데이터 수집 회로 에 의해 수집되지 못했음을 나타내도록 기능하는 것을 특징으로 하는 집적 회로.
  11. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 진단 데이터 직렬 출력 회로는 단일 진단 데이터 직렬 출력 신호선 상에 상기 진단 워드를 출력하는 것을 특징으로 하는 집적 회로.
  12. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 진단 데이터 직렬 출력 회로는 클록 신호선 상의 클록 신호와 연합하여 단일 진단 데이터 직렬 출력 신호선 상에 상기 진단 워드를 출력하는 것을 특징으로 하는 집적 회로.
  13. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 진단 데이터 수집 회로는 선정된 어드레스 특징에 매칭하는 어드레스와 관련된 상기 버스에 대한 버스 트랜스액션을 수집하도록 작동 가능한 것을 특징으로 하는 집적 회로.
  14. 제13항에 있어서,
    상기 선정된 특징은 상기 어드레스가 선정된 어드레스 범위 내에 있는 것인 것을 특징으로 하는 집적 회로.
  15. 제14항에 있어서,
    상기 콘텍스트 워드는 상기 어드레스 범위 내의 상기 어드레스의 위치를 나타내는 지수값인 것을 특징으로 하는 집적 회로.
  16. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 진단 데이터 수집 회로는 수집될 진단 데이터 필드를 선택하기 위해 프로그램 가능 마스크 값을 사용하도록 작동 가능한 마스크 회로를 포함하는 것을 특징으로 하는 집적 회로.
  17. 집적 회로로부터 진단 데이터를 수신하기 위한 진단 장치로서,
    상기 집적 회로 내의 버스로부터 수집된 값의 진단 필드를 나타내는 직렬 데이터를 수신하도록 작동 가능한 진단 데이터 직렬 데이터 수신기; 및
    상기 집적 회로 내의 하나 이상의 기능 회로에 의해 생성되는 데이터 워드와 이 데이터 워드와 관련된 상기 하나 이상의 기능 회로의 콘텍스트를 나타내는 콘텍스트 워드를 내부 식별하기 위해 상기 진단 필드를 디코딩하도록 작동 가능한 진단 데이터 디코더를 포함하며,
    상기 진단 데이터 워드는 상기 집적 회로의 적어도 하나의 기능 회로에 대해 실행하는 프로그램 명령에 응답하여 생성되며, 상기 프로그램 명령은 상기 데이터 워드와 상기 콘텍스트 워드가 수집되는 상기 버스에 버스 트랜스액션을 생성하는 것을 특징으로 하는 진단 장치.
  18. 제17항에 있어서,
    상기 버스는 복수개의 기능 회로를 접속하는 기능 버스이며, 상기 기능 버스는 데이터부와 어드레스부를 포함하며, 상기 데이터 워드는 상기 데이터로부터 수집되며, 상기 콘텍스트 워드는 상기 어드레스부로부터 수집되는 것을 특징으로 하는 진단 장치.
  19. 제18항에 있어서,
    상기 콘텍스트 워드는 상기 버스의 상기 어드레스부 상의 어드레스의 일부인 것을 특징으로 하는 진단 장치.
  20. 제17항, 제18항 또는 제19항 중 어느 한 항에 있어서,
    상기 버스는 상기 데이터 워드 및 상기 콘텍스트 워드용 신호를 전달하는 전용 진단 버스인 것을 특징으로 하는 진단 장치.
  21. 제18항 또는 제19항에 있어서,
    복수개의 상기 버스로부터 진단 데이터 필드가 수집되며, 적어도 하나의 버스는 상기 데이터 워드 및 상기 콘텍스트 워드용 신호를 전달하는 전용 진단 버스인 것을 특징으로 하는 진단 장치.
  22. 제17항 내지 제19항 중 어느 한 항에 있어서,
    상기 진단 데이터 필드는 상기 진단 데이터 워드와 관련된 시간값을 나타내는 타이밍 워드를 포함하는 것을 특징으로 하는 진단 장치.
  23. 제22항에 있어서,
    상기 시간값은 상기 집적 회로로부터 여전히 출력되는 소정의 기 수집된 진단 데이터 필드의 수집 이후의 시간 지속을 나타내는 카운트 값인 것을 특징으로 하는 진단 장치.
  24. 제23항에 있어서,
    상기 시간값은 하나 이상의 진단 데이터 필드가 상기 집적 회로 내에 수집되지 못했음을 나타내도록 기능하는 것을 특징으로 하는 진단 장치.
  25. 제17항 내지 제19항 중 어느 한 항에 있어서,
    상기 진단 데이터 직렬 데이터 수신기는 단일 진단 데이터 직렬 입력 신호선 상에 상기 진단 워드를 수신하는 것을 특징으로 하는 진단 장치.
  26. 제17항 내지 제19항 중 어느 한 항에 있어서,
    상기 진단 데이터 직렬 데이터 수신기는 클록 신호선 상의 클록 신호와 연합하여 단일 진단 데이터 직렬 출력 신호선 상에 상기 진단 워드를 수신하는 것을 특징으로 하는 진단 장치.
  27. 제17항 내지 제19항 중 어느 한 항에 있어서,
    진단 데이터 필드는 선정된 어드레스 특징에 매칭하는 어드레스와 관련된 상기 버스에 대한 버스 트랜스액션에 대응하는 것을 특징으로 하는 진단 장치.
  28. 제27항에 있어서,
    상기 선정된 특징은 상기 어드레스가 선정된 어드레스 범위 내에 있는 것인 것을 특징으로 하는 진단 장치.
  29. 제28항에 있어서,
    상기 콘텍스트 워드는 상기 어드레스 범위 내의 상기 어드레스의 위치를 나타내는 지수값인 것을 특징으로 하는 진단 장치.
  30. 제17항 내지 제19항 중 어느 한 항에 있어서,
    상기 진단 데이터 필드는 프로그램 가능 마스크 값에 의해 수집되도록 선택되는 것을 특징으로 하는 진단 장치.
  31. 집적 회로의 하나 이상의 기능 회로에 의해 수행된 하나 이상의 데이터 처리 동작을 나타내는 진단 데이터를 생성하기 위한 방법으로서,
    상기 하나 이상의 기능 회로에 의해 생성된 데이터 워드와 이 데이터 워드와 관련된 상기 하나 이상의 기능 회로의 콘텍스트를 나타내는 콘텍스트 워드로 구성된 값의 진단 데이터 필드를 버스로부터 수집하는 단계;
    상기 진단 데이터 필드를 직렬 변환하는 단계; 및
    상기 진단 데이터 필드를 상기 집적 회로로부터 외부 진단 장치로 출력하는 단계를 포함하며,
    상기 기능 회로중 적어도 하나에 대해 실행하는 프로그램 명령은 상기 진단 데이터 필드를 생성하며, 상기 프로그램 명령은 상기 데이터 워드와 상기 콘텍스트 워드가 수집되는 상기 버스에 버스 트랜스액션을 생성하는 것을 특징으로 하는 진단 데이터 생성 방법.
  32. 제31항에 있어서,
    상기 집적 회로는 복수개의 기능 회로를 포함하며, 상기 버스는 상기 복수개의 기능 회로를 상호 접속하는 기능 버스인 것을 특징으로 하는 진단 데이터 생성 방법.
  33. 제32항에 있어서,
    상기 기능 버스는 데이터부와 어드레스부를 포함하며, 상기 데이터 워드는 상기 데이터로부터 수집되며, 상기 콘텍스트 워드는 상기 어드레스부로부터 수집되는 것을 특징으로 하는 진단 데이터 생성 방법.
  34. 제33항에 있어서,
    상기 콘텍스트 워드는 상기 버스의 상기 어드레스부 상의 어드레스의 일부인 것을 특징으로 하는 진단 데이터 생성 방법.
  35. 제31항 내지 제34항 중 어느 한 항에 있어서,
    상기 버스는 적어도 하나의 기능 회로로부터 상기 진단 데이터 수집 회로로 상기 데이터 워드 및 상기 콘텍스트 워드용 신호를 전달하는 전용 진단 버스인 것을 특징으로 하는 진단 데이터 생성 방법.
  36. 제33항 또는 제34항에 있어서,
    상기 집적 회로는 복수개의 버스를 포함하며, 적어도 하나의 버스는 적어도 하나의 기능 회로로부터 상기 진단 데이터 수집 회로로 상기 데이터 워드 및 상기 콘텍스트 워드용 신호를 전달하는 전용 진단 버스인 것을 특징으로 하는 진단 데이터 생성 방법.
  37. 제31항 내지 제34항 중 어느 한 항에 있어서,
    상기 직렬 데이터 필드를 직렬 변환하기 이전에 선입선출 버퍼 내에 진단 데이터 필드를 버퍼링하는 단계를 포함하는 것을 특징으로 하는 진단 데이터 생성 방법.
  38. 제31항 내지 제34항 중 어느 한 항에 있어서,
    상기 진단 데이터 필드는 상기 진단 데이터 워드와 관련된 시간값을 나타내는 타이밍 워드를 포함하는 것을 특징으로 하는 진단 데이터 생성 방법.
  39. 제38항에 있어서,
    상기 시간값은 상기 진단 데이터 수집 회로에 의해 여전히 출력되는 소정의 기 수집된 진단 데이터 필드의 수집 이후의 시간 지속을 나타내는 카운트 값인 것을 특징으로 하는 진단 데이터 생성 방법.
  40. 제39항에 있어서,
    상기 시간값은 하나 이상의 진단 데이터 필드가 상기 진단 데이터 수집 회로에 의해 수집되지 못했음을 나타내도록 기능하는 것을 특징으로 하는 진단 데이터 생성 방법.
  41. 제31항 내지 제34항 중 어느 한 항에 있어서,
    상기 진단 데이터 필드는 단일 진단 데이터 직렬 출력 신호선 상에서 출력되는 것을 특징으로 하는 진단 데이터 생성 방법.
  42. 제31항 내지 제34항 중 어느 한 항에 있어서,
    상기 진단 데이터 필드는 클록 신호선과 연합하여 단일 진단 데이터 직렬 출력 신호선 상에 출력되는 것을 특징으로 하는 진단 데이터 생성 방법.
  43. 제31항 내지 제34항 중 어느 한 항에 있어서,
    선정된 어드레스 특징에 매칭하는 어드레스와 관련된 상기 버스에 대한 버스 트랜스액션이 수집되는 것을 특징으로 하는 진단 데이터 생성 방법.
  44. 제43항에 있어서,
    상기 선정된 특징은 상기 어드레스가 선정된 어드레스 범위 내에 있는 것인 것을 특징으로 하는 진단 데이터 생성 방법.
  45. 제44항에 있어서,
    상기 콘텍스트 워드는 상기 어드레스 범위 내의 상기 어드레스의 위치를 나타내는 지수값인 것을 특징으로 하는 진단 데이터 생성 방법.
  46. 제31항 내지 제34항 중 어느 한 항에 있어서,
    수집될 진단 데이터 필드를 선택하기 위해 프로그램 가능 마스크 값이 사용되는 것을 특징으로 하는 진단 데이터 생성 방법.
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
KR1020057019748A 2003-04-17 2003-09-17 집적 회로 내에서의 진단 데이터 수집 장치 및 방법 KR100954568B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/417,329 US7278073B2 (en) 2003-04-17 2003-04-17 Diagnostic data capture within an integrated circuit
US10/417,329 2003-04-17

Publications (2)

Publication Number Publication Date
KR20060004946A KR20060004946A (ko) 2006-01-16
KR100954568B1 true KR100954568B1 (ko) 2010-04-23

Family

ID=33158876

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057019748A KR100954568B1 (ko) 2003-04-17 2003-09-17 집적 회로 내에서의 진단 데이터 수집 장치 및 방법

Country Status (10)

Country Link
US (1) US7278073B2 (ko)
EP (1) EP1614043B1 (ko)
JP (2) JP4633474B2 (ko)
KR (1) KR100954568B1 (ko)
CN (1) CN100409199C (ko)
AU (1) AU2003267576A1 (ko)
MY (1) MY135189A (ko)
RU (1) RU2005131947A (ko)
TW (1) TWI278636B (ko)
WO (1) WO2004095280A2 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7571364B2 (en) 2005-08-09 2009-08-04 Texas Instruments Incorporated Selectable JTAG or trace access with data store and output
US7496818B1 (en) 2003-02-27 2009-02-24 Marvell International Ltd. Apparatus and method for testing and debugging an integrated circuit
US7444571B1 (en) * 2003-02-27 2008-10-28 Marvell International Ltd. Apparatus and method for testing and debugging an integrated circuit
US7216276B1 (en) 2003-02-27 2007-05-08 Marvell International Ltd. Apparatus and method for testing and debugging an integrated circuit
US7278073B2 (en) * 2003-04-17 2007-10-02 Arm Limited Diagnostic data capture within an integrated circuit
US7328375B2 (en) * 2003-12-30 2008-02-05 Intel Corporation Pass through debug port on a high speed asynchronous link
KR100731982B1 (ko) * 2005-12-26 2007-06-25 전자부품연구원 Amba 인터페이스를 사용한 시스템의 장애 복구 장치 및복구 방법
US8468394B2 (en) * 2006-03-09 2013-06-18 Arm Limited Method of tracing selected activities within a data processing system by tagging selected items and tracing the tagged items
KR100869953B1 (ko) * 2007-05-30 2008-11-24 경북대학교 산학협력단 Etm 인터페이스를 이용한 전력 측정 시스템 및 그 방법
US20090222797A1 (en) * 2008-02-29 2009-09-03 Infineon Technologies Ag Apparatus and method for providing a trigger
TWI405969B (zh) * 2009-05-08 2013-08-21 Accton Wireless Broadband Corp 管線式元件測試系統及其方法
US8250243B2 (en) * 2010-06-24 2012-08-21 International Business Machines Corporation Diagnostic data collection and storage put-away station in a multiprocessor system
US8954809B2 (en) * 2012-07-25 2015-02-10 Texas Instruments Incorporated Method for generating descriptive trace gaps
CN103412810B (zh) * 2013-07-24 2016-05-04 中国航天科工集团第三研究院第八三五七研究所 一种可测试内部信号的系统封装芯片及测试方法
US9396089B2 (en) * 2014-05-30 2016-07-19 Apple Inc. Activity tracing diagnostic systems and methods
US11475191B2 (en) 2019-05-15 2022-10-18 International Business Machines Corporation Generating and adding additional control information to logic under test to facilitate debugging and comprehension of a simulation
CN114200284A (zh) * 2021-10-28 2022-03-18 成绎半导体(苏州)有限公司 一种集成电路的测试校准方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5771240A (en) 1996-11-14 1998-06-23 Hewlett-Packard Company Test systems for obtaining a sample-on-the-fly event trace for an integrated circuit with an integrated debug trigger apparatus and an external pulse pin
EP0862115A1 (en) * 1997-02-27 1998-09-02 STMicroelectronics Limited Trigger sequencing controller
EP0897151A1 (en) * 1997-08-12 1999-02-17 Telrad Communication and Electronic Industries Limited Device and method for debugging systems controlled by microprocessors

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02161537A (ja) * 1988-05-23 1990-06-21 Nec Corp I/oアクセスインターバルトレース回路
JPH0433137A (ja) * 1990-05-29 1992-02-04 Mitsubishi Electric Corp データ処理装置
JPH05241880A (ja) * 1992-02-26 1993-09-21 Hitachi Ltd マイクロプロセッサ、及びエミュレータ
JPH06174802A (ja) * 1992-12-03 1994-06-24 Kawasaki Steel Corp Cpu搭載集積回路及びデバッガ
JPH07230432A (ja) 1994-02-16 1995-08-29 Mitsubishi Electric Corp 計算装置
US5488688A (en) * 1994-03-30 1996-01-30 Motorola, Inc. Data processor with real-time diagnostic capability
JP3396107B2 (ja) 1995-04-24 2003-04-14 株式会社リコー マイクロコンピュータ及びデバック装置
JPH09305444A (ja) * 1996-05-15 1997-11-28 Oki Electric Ind Co Ltd カバレッジメモリ
JPH10214201A (ja) 1997-01-29 1998-08-11 Mitsubishi Electric Corp マイクロコンピュータ
EP0924619A3 (de) * 1997-12-19 2004-01-07 Infineon Technologies AG Programmgesteuerte Einheit
US6820051B1 (en) * 1999-02-19 2004-11-16 Texas Instruments Incorporated Software emulation monitor employed with hardware suspend mode
US6779145B1 (en) 1999-10-01 2004-08-17 Stmicroelectronics Limited System and method for communicating with an integrated circuit
JP4212224B2 (ja) * 2000-07-10 2009-01-21 株式会社東芝 半導体集積回路
JP2002202900A (ja) * 2000-12-28 2002-07-19 Seiko Epson Corp デバッグ装置
US7093108B2 (en) * 2001-02-01 2006-08-15 Arm Limited Apparatus and method for efficiently incorporating instruction set information with instruction addresses
US7099818B1 (en) * 2002-03-29 2006-08-29 Cypress Semiconductor Corporation System and method for automatically matching components in a debugging system
US7278073B2 (en) * 2003-04-17 2007-10-02 Arm Limited Diagnostic data capture within an integrated circuit

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5771240A (en) 1996-11-14 1998-06-23 Hewlett-Packard Company Test systems for obtaining a sample-on-the-fly event trace for an integrated circuit with an integrated debug trigger apparatus and an external pulse pin
EP0862115A1 (en) * 1997-02-27 1998-09-02 STMicroelectronics Limited Trigger sequencing controller
EP0897151A1 (en) * 1997-08-12 1999-02-17 Telrad Communication and Electronic Industries Limited Device and method for debugging systems controlled by microprocessors

Also Published As

Publication number Publication date
EP1614043A2 (en) 2006-01-11
US20040210804A1 (en) 2004-10-21
CN100409199C (zh) 2008-08-06
JP2006514376A (ja) 2006-04-27
TWI278636B (en) 2007-04-11
WO2004095280A3 (en) 2005-02-24
CN1764903A (zh) 2006-04-26
TW200422625A (en) 2004-11-01
EP1614043B1 (en) 2016-06-08
JP2007066336A (ja) 2007-03-15
WO2004095280A2 (en) 2004-11-04
KR20060004946A (ko) 2006-01-16
JP4633474B2 (ja) 2011-02-16
US7278073B2 (en) 2007-10-02
AU2003267576A8 (en) 2004-11-19
MY135189A (en) 2008-02-29
AU2003267576A1 (en) 2004-11-19
RU2005131947A (ru) 2006-03-20

Similar Documents

Publication Publication Date Title
KR100954568B1 (ko) 집적 회로 내에서의 진단 데이터 수집 장치 및 방법
US9798645B2 (en) Embedding stall and event trace profiling data in the timing stream
US6145122A (en) Development interface for a data processor
US8527812B2 (en) Information processing device
US9639447B2 (en) Trace data export to remote memory using remotely generated reads
US8347158B2 (en) System-on-chip with master/slave debug interface
US9684583B2 (en) Trace data export to remote memory using memory mapped write transactions
US8074131B2 (en) Generic debug external connection (GDXC) for high integration integrated circuits
CN107992390B (zh) 一种基于片上总线的芯片调试方法
US7930165B2 (en) Procedure and device for emulating a programmable unit providing system integrity control
EP2847683B1 (en) Processor device with instruction trace capabilities
CN111078492B (zh) 一种SoC内部总线的状态监控系统及方法
US10078113B1 (en) Methods and circuits for debugging data bus communications
US20170115348A1 (en) Methods and circuits for debugging circuit designs
US6484273B1 (en) Integrated EJTAG external bus interface
US20070038790A1 (en) Integrated circuit devices, methods, and computer program products for monitoring a bus
CN101529404A (zh) 用于时间戳消息的方法
TWI604303B (zh) 輸入輸出擴展晶片以及其驗證方法
EP1125200B1 (en) Maintaining object size information concurrent with data optimization for debugging
US11789739B2 (en) Control system for process data and method for controlling process data
US20060282719A1 (en) Unique Addressable Memory Data Path
US20060268714A1 (en) Rapid I/O Compliant Congestion Control
Hochberger et al. Acquiring an exhaustive, continuous and real-time trace from SoCs
CN114003352A (zh) 抓取处理器内部信号的系统及方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130321

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140320

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160318

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170317

Year of fee payment: 8