KR20080113052A - 추적 데이터 생성 장치, 방법 및 컴퓨터 프로그램 제품 - Google Patents

추적 데이터 생성 장치, 방법 및 컴퓨터 프로그램 제품 Download PDF

Info

Publication number
KR20080113052A
KR20080113052A KR1020087024699A KR20087024699A KR20080113052A KR 20080113052 A KR20080113052 A KR 20080113052A KR 1020087024699 A KR1020087024699 A KR 1020087024699A KR 20087024699 A KR20087024699 A KR 20087024699A KR 20080113052 A KR20080113052 A KR 20080113052A
Authority
KR
South Korea
Prior art keywords
item
data
tracking
tag
tagged
Prior art date
Application number
KR1020087024699A
Other languages
English (en)
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 에이알엠 리미티드
Priority to KR1020087024699A priority Critical patent/KR20080113052A/ko
Publication of KR20080113052A publication Critical patent/KR20080113052A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

데이터 처리 장치가 개시된다. 상기 데이터 처리 장치는 복수의 소자와, 상기 복수의 소자 중 적어도 하나와 관련된 추적 로직과, 상기 복수의 소자 중 적어도 하나와 관련된 태그화 로직을 포함하며, 상기 태그화 로직은: 모니터할 대상의 활동을 포함하는 적어도 하나의 항목을 선택하고; 상기 적어도 하나의 항목을 모니터링 대상 항목으로서 식별하는 태그 데이터를 적어도 하나의 선택된 항목에 제공하도록 동작하며; 상기 추적 로직은: 상기 추적 로직과 관련된 상기 적어도 하나의 소자에 의해 처리되는 태그화 항목을 검출하고; 상기 검출된 태그화 항목 중 적어도 일부에 관한 추적 정보를 출력하도록 동작하는 것을 특징으로 한다.
Figure P1020087024699
추적 데이터 생성, 추적 로직, 태그화 로직

Description

추적 데이터 생성 장치, 방법 및 컴퓨터 프로그램 제품{An Apparatus, Method and Computer Program Product for Generting Trace Data}
본 발명은 데이터 처리에 관한 것으로, 보다 상세하게는 데이터 처리 연산을 모니터링하는 진단 메카니즘에 관한 것이다.
데이터 처리기로 수행되는 처리를 추적하는 것이 바람직한 경우가 많다. 예를 들면, 처리 회로의 활동을 추적하는 것이 바람직한 경우 그러한 정보는 데이터 처리 시스템의 전개 중 유용하다. 그러한 처리를 보조하는데 사용될 수 있는 추적 체계의 예가 추적 툴(tracing tool)이다.
데이터 처리 시스템의 동작을 추적함으로써 시스템 내에서의 단계적 동작을 표현하는 데이터를 포함하는 추적(트레이스) 스트림을 생성하는 것은 시스템과 소프트웨어 개발에 매우 유용한 도구이다. 이러한 추적 툴은 그 처리가 모니터링되는 칩 상에 존재하는 내장형 추적 매크로 셀(Embedded Trace Macrocells: ETMTM)을 포함하는 프로그램 흐름을 추적하는 다양한 수단을 이용한다.
새로운 소자의 복잡성이 증가할수록, 지원 체계와 툴도 역시 복잡성 증가가 필요하다. 기존의 추적 소스(예, ETMs)는 효율적으로 사용시 트레이스 데이터(추적 데이터)의 생성을 정밀하게 제어 및 관리하도록 함과 함께 그 데이터의 수집이 관심 영역에 국한되도록 하는 넓은 범위의 프로그래밍 및 구성 능력을 지원한다. 이것은 데이터 처리 장치로부터의 다운로드를 어렵게 하고 또한 분석을 어렵게 할 수 있는 과도한 추적 데이터의 생성을 회피하는데 도움이 된다.
단일 CPU를 넘어 다중 성분으로까지 확장되는 추적 체계의 발전에 기인하여, 사용자가 필요로 하는 복잡성과 구성은 더더욱 증가되기조차 한다. 칩에 대한 정보의 흐름을 이해하는 것은 각 추적 소스를 어떻게 다른 추적 소스가 관련되는 지를 인식하는 것으로 구성하는 것이 필요하다. 더욱이, 추적이 개시될 수 있기 이전에 다중 추적 소스를 구성할 필요가 있을 수 있다.
도 1은 칩 상의 다른 소자의 연산을 추적하도록 동작 가능한 다수의 추적 소스(21, 22, 23, 24)를 갖는 종래 기술에 따른 칩(10)을 도시한다. 따라서, 디지털 신호 처리기의 활동을 추적하는 DSP 추적 하드웨어(24), 2개의 다른 CPU를 추적하는 ETMS(21, 23), 버스(30)의 활동을 모니터링하는 버스 추적 매크로 셀(22)이 존재한다. 따라서, 추적 데이터의 4개의 다른 스트림이 생성된다. 이들은 퍼넬(funnel)(40)에서 결합된 후 출력 포트(50)를 통해 출력된다.
이러한 시스템에서, 추적 데이터의 4개의 다른 스트림이 생성됨은 물론 4개의 다른 추적 소스가 구성되는 것이 필요하다. 어드레스와 데이터 값과 같은 특정의 상세한 추적 정보가 필요하다면, 추적 포트(50)와 같은 추적 포트에 대한 대역 폭 제한이 충족되도록 생성되는 데이터의 양을 제한하기 위해 추적 영역을 정밀하게 제어하는데 복잡한 SoC 체계의 복잡한 구성 및 상세한 지식이 필요하다.
본 발명은 전술한 문제점 일부를 대처하는 것을 목적으로 한다.
본 발명의 제1 측면에 따라 데이터 처리 장치가 제공되며, 이 데이터 처리 장치는 복수의 소자와, 상기 복수의 소자 중 적어도 하나와 관련된 추적 로직과, 상기 복수의 소자 중 적어도 하나와 관련된 태그화 로직(tagging logic)을 포함하며, 상기 태그화 로직은: 모니터할 대상의 활동을 포함하는 적어도 하나의 항목을 선택하고; 상기 적어도 하나의 항목을 모니터링 대상 항목으로서 식별하는 태그 데이터를 적어도 하나의 선택된 항목에 제공하도록 동작하며; 상기 추적 로직은: 상기 추적 로직과 관련된 상기 적어도 하나의 소자에 의해 처리되는 태그화 항목을 검출하고; 상기 검출된 태그화 항목 중 적어도 일부에 관한 추적 정보를 출력하도록 동작하는 것을 특징으로 한다.
본 발명은 모니터링될 특별한 활동을 포함하는 항목을 선택한 후 태그화하도록 하는 것에 의해 종래의 추적과는 다르다. 이 활동은 데이터 항목 또는 체계에 관한 것일 수 있거나, 크로스 트리거(cross trigger)와 같은 이벤트일 수 있다. 항목의 태그화는 가능한 다른 추적 로직이 상기 활동을 검출하고 소정의 검출된 태그화 항목에 관한 정보를 출력하도록 한다. 이것은 다른 방식의 추적으로서 특별한 활동에 응답하여 데이터 처리 장치의 거동이 모니터링될 수 있게 한다. 이것은 선택된 활동의 모니터링을 추적함으로써 그에 관한 추적 데이터를 줄이는 것을 목적으로 할 뿐 아니라, 소자의 구성을 극히 단순화한다. 특히, 구성은 특별한 항목을 태그화하는 태그화 로직의 구성을 단지 필요로 하며, 그에 따라 데이터 처리 장치가 작동될 수 있으며, 소자와 추적 로직은 상기 태그화된 항목에 자동으로 반응할 수 있다. 다른 소자에 의해 처리되는 항목을 언급할 때, 이것은 예컨대 버스에 의해 전송되는 항목을 포함하는 것에 유의하여야 한다. 더욱이, 항목의 태그화는 항목과 관련하여 항목이 모니터링되는 인디케이터를 포함한다. 이것은 다양한 방법으로 확실히 행해질 수 있으며, 그 중 일부의 방법을 아래에 요약한다.
유리하게는, 상기 복수의 소자 중 적어도 일부는 태그화 항목의 수신에 응답하여 동작하여 상기 수신된 태그화 항목의 처리로부터 생성되는 소정의 항목을 태그화한다.
상기 태그화 항목에 응답하는 데이터 처리 장치의 동작은 상기 소자 중 적어도 일부가 상기 수신된 태그화 항목의 처리로부터 생성되는 소정의 항목을 자동 태그하는 경우 효과적으로 모니터링될 수 있다. 따라서, 처리 장치의 동작 흐름은 태그화 항목이 다른 태그화 항목을 처리하는 소자에 의해 생성될 때 자동으로 모니터링될 수 있다. 이것은 태그화 항목에 응답하는 장치의 동작을 모니터링할 수 있도록 하고, 추적을 개시하기 전에 개별 소자와 관련된 개별 추적 로직을 별도로 구성할 필요성을 없앤다.
일부 실시예에서, 상기 데이터 처리 장치는, 각기 대응하는 소자와 관련되며, 각기 태그화 항목을 검출하고 상기 검출된 태그화 항목 중 적어도 일부에 관한 추적 정보를 출력하도록 동작 가능한 복수의 추적 소스를 포함한다.
데이터 처리 장치는 상기 복수의 소자 중 하나와 관련된 단일 추적 로직을 포함하거나, 서브 세트의 소자들과 관련된 다수의 추적 로직을 포함할 수 있거나, 실제, 각각의 소자에 관련된 추적 로직을 포함할 수 있다. 이들 추적 로직은 태그화 항목을 자동 검출하고 태그 정보에 따라 응답하기 때문에 추적 로직의 개별 구성을 필요로 하지 않는다는 장점이 있다. 단지 기본적인 인에이블/디스에이블 추적만이 필요할 뿐이다.
태그 데이터는 단순히 선택되는 항목에 관련된 정보이다. 상기 정보는 여러 가지 형태를 취할 수 있는데, 예를 들면 측파대 신호로서 상기 항목과 관련될 수 있거나, 또는 대안적으로 다른 실시예에서는 분리된 통신 채널 상으로 전송될 수 있다.
일부 실시예에서, 상기 태그 데이터는 관련 항목이 추적되어야 하는지 여부를 나타내는 비트를 구비한다.
상기 태그화 데이터는 여러 가지 형태를 가질 수 있지만, 일부 실시예에서는 상기 관련 항목을 추적하여야 하는지 여부를 지시하는 단일 비트를 구비한다. 이것이 갖는 장점은 실행이 간단하고 정보 전송에 큰 대역폭을 요하지 않는다는 것이다.
일부 실시예에서, 상기 태그 데이터는 관련 항목의 보안 정보를 포함하는데, 상기 추적 소스는 상기 태그화 항목에 관한 추적 정보의 출력을 제한하여 상기 태그화 항목의 추적을 방해하는 상기 보안 정보에 응답하는 한편, 상기 추적 정보의 출력을 허용하여 상기 태그화 항목의 추적을 허용하는 상기 보안 정보에 응답하여 동작 가능하다.
본 발명의 실시예들은 안전한 시스템을 추적할 수 있다. 이러한 시스템에서, 태그는 안전한 계로부터 정보의 출력을 방해하는데 사용되어 간단하고 보다 더 효과적인 방식으로 시스템의 보안을 향상시키고 안전한 데이터가 그 특정의 안전한 데이터의 추적을 허용하지 않는 곳으로 추적 정보로서 출력되는 것을 방해할 수 있다.
일부 실시예에서, 상기 태그 데이터는 관련 데이터의 모니터링을 위한 우선 순위 레벨을 지시하는 우선 순위 정보를 구비할 수 있는데, 상기 추적 소스는 높은 우선 순위를 가지는 상기 항목을 지시하여 상기 항목에 관한 추적 정보를 출력하는 상기 우선 순위 정보에 응답하는 한편, 낮은 우선 순위를 갖는 상기 항목을 지시하여 상기 항목에 관한 추적 정보를 출력하지 않는 상기 우선 순위 정보에 응답하여 동작 가능하다.
상기 태그화 데이터는 또한 상기 관련 항목의 모니터링의 중요성을 지시하는 우선 순위 정보를 구비할 수 있다. 이 정보는 추적되는 데이터의 양이 급증하거나 과대해지는 것을 멈추게 하는데 사용될 수 있다. 관련 항목의 추적이 얼마나 중요한지를 지시하는 태그를 사용하는 것에 의해, 추적된 데이터가 너무 과대해져서 취급할 수 없는 경우 높은 우선 순위의 데이터만을 추적하도록 하는 선택을 행할 수 있다.
유리하게는, 상기 복수의 소자 중 적어도 일부는 상기 항목의 처리시 상기 항목에 관련된 상기 태그의 상기 우선 순위 정보를 변경하여 낮은 우선 순위 정보를 지시하고, 상기 낮은 우선 순위 레벨을 지시하는 태그를 갖는 상기 항목의 처리에 응답하여 상기 일부 소자가 생성하는 소정의 항목을 태그하도록 동작 가능하다.
태그화 항목의 처리시, 이 처리에 의해 생성되는 소정의 항목도 역시 태그화된다. 일부의 경우, 태그화 데이터 항목은 다수의 다른 항목을 생성할 수 있다. 이는 급증할 수 있으며 결국 대량의 추적 데이터로 될 수 있다. 따라서, 이 문제를 대처하는 한 가지 방법은 데이터 항목의 처리시마다 그 우선 순위 레벨을 낮추는 것일 수 있다. 따라서, 사용자가 항목과 중요 관심점에서 멀어짐에 따라 처리될 항목의 우선 순위가 낮아지고, 사용자는 사용자가 더 이상 이들 항목에 대해 관심이 없는 소정의 포인트를 선택할 수 있고 그에 따라 이들 항목은 추적될 수 없다.
일부 실시예에서, 상기 태그 데이터는 기한 표시를 포함하며, 소자에 의한 태그화 항목의 처리시마다 상기 기한 표시는 감소되고, 상기 태그는 상기 기한이 기한의 만료를 지시하는 값으로 감소되었을 때 삭제된다.
추적 데이터의 양을 제어하는 다른 방법은 사용자 태그 데이터로서 기간 표시가를 사용하는 것이다. 태그화 항목이 처리시마다, 기한 표시기는 감소되고, 이것은 소정 회수의 처리 후 기한이 만료되고 항목이 더 이상 추적의 관심 대상이 안되도록 설정될 수 있다.
일부 실시예에서, 상기 복수의 소자 중 상기 적어도 하나는 계수기를 포함하며, 상기 복수의 소자 중 상기 적어도 하나는 상기 태그 데이터로서 현재 계수기 값을 제공하도록 동작될 수 있고, 상기 추적 소스는 상기 항목과 관련된 추적 정보를 출력시 상기 데이터 항목의 태그화 포인트에서 상기 계수기 값을 지시하는 상기 태그 데이터를 출력하고, 상기 복수의 소자 중 다른 적어도 하나의 소자에 의한 처리에 후속하는 상기 복수의 소자 중 상기 적어도 하나에서 상기 태그화 항목의 접수 포인트에서의 상기 계수기의 계수기 값을 출력하도록 동작될 수 있다.
본 소자의 실시예는 데이터 처리 장치의 성능을 모니터링하는데 사용될 수 있다. 이것은 소자 중 하나에 계수기를 제공하고 그 계수기 값을 태그 값으로서 사용하는 것에 의해 행해질 수 있다. 따라서, 태그화되는 데이터 항목과 소자에 의해 해석되는 그것과의 사이의 시간 크기는 태그 데이터가 태그화시 계수기 값으로 설정되는지 여부가 모니터링될 수 있다. 이것은 데이터 처리 장치의 성능을 모니터링하는 매우 효과적인 방법일 수 있다.
일부 실시예에서, 상기 태그 데이터는 예상 목적 소자를 지시하는 정보를 포함하며, 상기 복수의 소자 중 적어도 일부는 상기 항목의 처리시 상기 태그를 검출하고, 상기 태그가 상기 일부 소자를 상기 예상 목적 소자로서 지시하지 않으면, 상기 항목이 모니터링될 것임을 상기 태그 데이터가 지시하도록 수정을 행하는 동작이 가능하다.
예상 목적 소자 지시기를 태그 데이터로서 사용하는 것에 의해 그 데이터를 수신하는 소자가 상기 데이터를 수신하지 말았어야 하는지를 태그화 데이터로부터 검출할 수 있다. 이것이 그러한 경우라면, 소자는 이 항목이 그에 따라 모니터링되어야 함을 지시하도록 태그 데이터를 수정한다. 종래의 추적 시스템에서, 항목이 실제 잘못된 목적지로 보내진 경우, 문제가 생긴 부분을 추적하기가 곤란할 수 있다. 문제의 발생을 알고 있으면, 이 항목이 예상되는 목적지가 추적되지만, 각 소자가 별도의 추적 소스나 로직에 의해 별도로 추적됨에 따라 항목의 실제 목적지는 쉽게 위치 지정되지 않는다. 본 실시예에서, 태그 데이터의 사용에 의해 잘못된 목적지로의 도달이 쉽게 식별될 수 있다. 이것은 상당한 관련성의 추적 데이터를 생성하는 효과적인 방법이며, 관련성이 없는 추적 데이터가 상당량 생성되는 것을 방지하거나 적어도 감소시킨다.
일부 실시예에서, 상기 태그 데이터는 모든 연속 항목을 모니터링하여야 함을 지시하거나 항목의 모니터링을 중지하여야 함을 지시하는 정보를 포함하며, 상기 추적 로직은 상기 태그 데이터에 응답하여 상기 적어도 하나의 소자의 활동의 추적을 개시 및 중지하도록 동작 가능하다.
태그 데이터는 추적 정보의 모니터링이 개시되어야 하고 중지되어야 하는 정보를 단순히 포함할 수 있다. 따라서, 추적은 이러한 형태의 특별한 태그 데이터의 수신에 응답하여 수행 및 수행 중지될 수 있다.
유리하게는, 태그화 로직은 모니터링을 위해 선택되는 상기 항목 관련 정보를 저장하도록 동작 가능한 태그화 리소스를 포함하고, 상기 태그화 리소스는 프로그램화 가능하다.
모니터링될 특별한 항목(들)은 사용자 정의되고, 소자 내에 프로그램화 된다. 이것은 적어도 일부의 소자에 태그화 리소스를 포함하는 태그화 로직을 제공하는 것에 의해 행해진다. 이들 소자는 어떤 항목이 선택되고 그에 따라 모니터링을 위해 태그화되는지를 지시하는 사용자 입력 정보를 저장할 수 있다.
일부 실시예에서, 상기 태그화 리소스는 어드레스 비교기, 데이터 값 비교기, 어드레스 저장을 위한 레지스터, 데이터 값 저장을 위한 레지스터 및 예외(exception), 끼어들기(interruption), 또는 동작(performance)의 모니터링 로직 이벤트와 같은 이벤트의 발생을 모니터링 하기 위한 이벤트 모니터링 로직 중 적어도 하나를 포함한다.
어드레스 비교기, 데이터 값 비교기 및 필요한 어드레스와 데이터 값의 저장을 위한 레지스터를 사용하는 것에 의해 사용자는 관심 항목을 식별하는데 필요한 데이터 값 또는 명령 어드레스를 입력할 수 있다. 이후, 소자는 저장된 값을 처리되는 실제 항목과 비교할 수 있고, 일치함을 검출하면 항목을 식별할 수 있다. 부가적으로, 또는 대안적으로, 이벤트 모니터링 로직은 이벤트를 검출하고 그 검출된 이벤트에 응답하여 항목을 태그하는데 사용될 수 있다. 상기 이벤트는 끼어들기 또는 예외일 수 있거나, 프로세서의 동작과 관련된 소정의 이벤트일 수 있다.
바람직하게는, 데이터 처리 장치는 상기 복수의 소자 중 적어도 2개를 연결하는 적어도 하나의 버스를 포함하며, 상기 적어도 하나의 버스는 태그 데이터를 전송하는 적어도 하나의 전용선을 포함한다.
태그 데이터의 전송을 위한 하나의 방법은 각 버스에 적어도 하나의 부가적인 태그 데이터 전송 전용선을 제공하는 것이다. 일반적으로, 2개의 전용선이 존재하는데, 그 중 하나는 태그 데이터를 일 방향으로 전송하기 위한 것이고 다른 하나는 다른 방향으로 전송하기 위한 것이다. 이들 전용선은 이러한 경우의 실시예에서 단일 비트로서 태그화 데이터를 전송하거나, 태그 데이터가 복수의 비트인 경우의 다른 실시예에서 태그 데이터는 특별한 프로토콜에 따라 전송되는 복수의 직렬 비트로서 전송될 수 있다.
일부 실시예에서, 상기 추적 소스는 상기 태그화 데이터에 응답하여 동작을 수행하도록 동작 가능하고, 상기 동작은 추적 정보를 수집하고 출력하기 이전에 상기 태그화 데이터에 의해 특정된 여러 단계를 수행하는 것을 포함한다.
추적 소스가 여러 태그 데이터에 응답하여 추적 정보를 출력하도록 동작 가능하지만, 다른 태그 데이터에 응답하여, 소자를 모니터링한 후 소자가 추적 정보의 출력에 앞서 복수의 단계를 수행하는 것을 기다리는 것과 같은 다른 동작을 수행할 수 있다.
본 발명의 다른 측면에 따르면, 소정의 활동에 응답하여 데이터 처리 장치의 동작을 모니터링하는 방법이 제공되는데, 상기 데이터 처리 장치는 복수의 소자와, 상기 복수의 소자 중 적어도 하나와 관련된 추적 로직을 포함하고, 상기 방법은: 모니터할 대상의 활동을 포함하는 적어도 하나의 항목을 선택하고; 상기 적어도 하나의 항목을 모니터링 대상 항목으로서 식별하는 태그 데이터를 적어도 하나의 선택된 항목에 제공하며; 상기 적어도 하나의 소자에 의해 처리되는 태그화 항목을 검출하고; 상기 검출된 태그화 항목 중 적어도 일부에 관한 추적 정보를 출력하는 단계를 포함한다.
본 발명의 또 다른 측면에 따르면, 데이터 프로세서에서 구동시 데이터 프로세서로 하여금 본 발명의 다른 측면에 따른 상기 방법의 단계들을 수행하도록 제어하는 동작 가능한 컴퓨터 프로그램 제품이 제공된다.
전술하거나 그 이외의 본 발명의 목적, 특징 및 장점들은 첨부 도면과 관련하여 설명되는 예시적 실시예에 대한 하기의 상세한 설명으로부터 분명해질 것이다.
도 1은 종래 기술에 따른 소자 및 추적 소스를 포함하는 칩을 도시하며;
도 2는 본 발명의 실시예에 따른 데이터 처리 장치를 도시하며;
도 3은 본 발명의 실시예에 따른 태그화 로직을 도시하며;
도 4는 본 발명의 실시예에 따른 버스의 채널을 개략적으로 도시하며;
도 5는 AXI 버스에 의해 링크된 소자를 포함하는 데이터 처리 장치를 도시하며;
도 6a는 소자간 처리를 개략적으로 도시하며;
도 6b는 도 6a에 도시된 처리 중 2개 사이에 생긴 추가 처리를 포함하는 동일한 처리를 개략적으로 도시하며;
도 7은 소자 사이의 처리와 선택된 처리의 추적을 개략적으로 도시한다.
도 2는 본 발명의 실시예에 따른 데이터 처리 장치(60)를 도시한다. 데이터 처리 장치(60)는 2개의 추적 로직 블록 또는 추적 소스(68, 70)를 포함한다. 이들 은 CPU(80)를 추적하도록 구성된 ETM(70)과, 버스 매트릭스(90)를 추적하도록 구성된 버스 추적 매크로 셀(Bus Trace Macrocell)(68)을 포함한다. 이 데이터 처리 장치(60)는 제2 CPU(100), 메모리 관리 유닛(Memory Management Units: MMU)(110, 92), 다이렉트 메모리 액세스 컨트롤러(Direct Memory Access Controller: DMA)(95), 슬레이브(또는 종속) 소자(120)를 더 포함한다. 2개의 CPU(80, 100), MMU(92, 110), DMA(95)는 각각 태그화 로직(82, 102, 93, 112, 97)을 포함한다. 이들 태그화 로직(82, 102, 93, 112, 97)은 프로그램화 가능하며, 소자 사용자에 의해 상기 장치가 특별한 추적을 수행하도록 상기 장치를 구성하는데 사용된다. 사용자는 모니터링될 특별한 활동을 선택한 후 이 활동의 지시를 태그화 로직 블록 내에 저장하는 것에 의해 이를 수행한다. 이것은 명령 어드레스의 형태일 수 있거나, 데이터 값일 수 있다. 태그화 로직(82)은 후술되는 도 3에 보다 구체적으로 도시되어 있다.
각 소자 내의 추적 로직(82, 102, 93, 112, 97)은 태그화 대상 데이터를 선택하도록 사용자 구성될 수 있다. 이들은 이 방식으로 구성될 수 있는 유일한 소자일지라도, 슬레이브 소자(20)를 포함하여 데이터 처리 장치(60) 상의 모든 소자는 여러 가지 방법으로 데이터를 태그화하도록 동작 가능하다. 다시 말해, 모든 소자는 수신된 태그화 항목의 처리에 응답하여 소자가 생성하는 소정의 항목을 태그할 것이다. 이것은 태그화 항목의 처리에 의해 생성되는 단일 항목의 생성 및 태그화를 의미하거나, 태그화 항목의 처리에 의해 생성되는 다수의 항목의 태그화를 의미할 수 있다.
도 2의 장치에서, 추적 로직은 소자 중 2개의 소자, 즉 CPU(80)와 매트릭스(90)와 관련되어 있다. 따라서, 이들 소자에 의해 처리되는 태그화 데이터는 추적 로직(70, 68)에 의해 검출될 수 있고, 태그의 속성에 따라 이 태그 데이터의 검출은 추적 데이터의 출력을 개시할 수 있다. 또한, 이를 개시하지 않고, 오히려 추적 데이터의 출력 이전에 복수의 단계의 수행과 같은 추적 로직 내에서 다른 이벤트를 개시하거나, 특별한 태그에 응답하여 단순히 추적 데이터를 출력하지 않을 수 있다. 이것은 항목이 추적되어 출력됨을 지시하는 단순 데이터이거나 추가의 제어 정보를 포함할 수 있는 태그 데이터의 속성에 의존한다.
도 3은 태그화 로직(82)을 보다 상세히 도시한다. 태그화 로직(82)은 레지스터(83, 84, 85)를 포함한다. 레지스터(83)는 이벤트의 존재를 저장하도록 동작 가능하다. 레지스터(84)는 사용자에 의해 입력되는 명령 어드레스를 저장하도록 동작 가능한 반면, 레지스터(85)는 사용자에 의해 입력되는 데이터 값을 저장하도록 동작 가능하다. 비교기(86, 87, 88)는 처리될 데이터와 명령의 값과 어드레스와, CPU(80) 내에서 생기는 이벤트를 비교하도록 동작 가능하고, 비교기가 상기 값이 동일한 것으로 나타내는 경우, 처리될 항목은 인커밍 태그(71)가 태그(73)를 형성하도록 변형되고 정보(72)와의 관련성을 유지하도록 로직(89)에 의해 태그화된다. 인커밍 태그(71)는 항목이 아직 태그화되지 않을 수 있고 로직(89)이 태그화 정보가 제공되어 태그(89)를 생성하는 최초의 경우일 수 있다는 점에서 선택적이다. 이 단일 항목의 태그화는 이 태그화 항목을 처리하는 모든 소자 내에서 제로 또는 그보다 많은 이벤트를 개시하고, 추적될 수 있는 이 항목에 응답하는 데이터 처리 장치의 동작을 가져온다. 이것은 모든 소자가 태그화 데이터를 검출하고 그에 응답하도록 동작 가능하기 때문이다. 상기 응답은 정보를 변경없이 그대로 통과시키는 것일 수 있다.
도 4는 본 발명의 실시예에 따른 버스의 단순화된 표현을 나타낸다. 이 버스는 어드레스를 전송하도록 동작 가능한 어드레스 채널과, 제어 데이터를 전송하도록 동작 가능한 제어 채널과, 판독 데이터를 전송하도록 동작 가능한 판독 데이터 채널과, 기록 데이터를 전송하도록 동작 가능한 기록 데이터 채널과, 태그 데이터를 송수신하도록 동작 가능한 2개의 태그 데이터 채널을 포함한다. 따라서, 본 실시예에서 버스에는 추가의 태그 채널이 제공되어, 소정의 항목과 관련된 태그 데이터가 데이터 처리 장치에 대해 전송될 수 있도록 한다.
도 5는 2개의 CPU(130, 140)와 버스 매트릭스(150)를 연결하는데 AXI 버스를 사용하는 본 발명의 다른 실시예를 도시한다. 추가의 AXI 버스는 슬레이브(160)를 버스 매트릭스(150)에 연결하는데 사용된다. AXI 버스의 추적은 전통적인 기법을 사용시 처리의 속성에 혼란이 있어 문제가 있는 것으로 판명될 수 있다. 본 발명의 실시예는 AXI 버스의 추적과 관련된 많은 문제를 대처한다.
특히, AXI 버스는 어드레스 기록 제어 채널(AW), 어드레스 판독 제어 채널(AR), 기록 데이터 채널(W), 판독 데이터 채널(R), 필요한 만큼 기록이 완료됨을 지시하는 제어 채널인 B 채널을 포함한다. AXI 버스 상의 채널들은 독립적으로 동작하며, 추적시 특별한 채널 아래로 기록 데이터와 관련된 제어 데이터로 보내지는 기록 데이터를 대조 확인하기 어려울 수 있다. 태그화 항목에 의해 생성되는 소정 항목의 태그 및 태그화의 사용은 AW, W, B에 대하여 어떤 항목이 서로 관련이 있는지 인지하는 것을 용이하게 한다.
도 6a 및 도 6b는 본 발명의 실시예의 세부적인 동작을 도시한다. 본 실시예에서, 화살표 1은 DMA 컨트롤러가 데이터를 UART(Universal Asynchronous Receiver Transmitter: 범용 비동기화 송수신기)로부터 메모리로 전송하도록 프로그래밍 된 CPU를 나타낸다. 화살표 2는 UART에 액세스하는 DMA 컨트롤러를 나타낸다. 화살표 3은 데이터를 DMA 컨트롤러로 반송하는 UART를 나타내고, 화살표 4는 데이터를 메모리에 저장하는 DMA 컨트롤러를 나타내고, 화살표 5는 메모리를 판독하는 CPU를 나타낸다.
본 발명의 실시예에 의한 구성을 사용하여, CPU에 의해 (UART 코드 실행시) DMA로 개시되는 처리는 태그화될 것이다. 이후, DMA에 의한 소정의 후속 처리가 태그화된다. UART는 이들 태그화 전송물을 수신하고 반송되는 소정의 데이터를 태그화한다. 이 데이터는 DMA, 메모리, 그리고 최종적으로 CPU로 반송된다. 이것은 도 6A에 도시된 데이터 흐름을 가져온다.
도 6b는 도 6a의 시스템의 데이터 흐름에서 생기는 문제를 나타낸다. 이 경우, 메모리 판독시, CPU는 일부 유해한 UART 데이터를 발견한다. 이것은 DMA(다이렉트 메모리 액세스 컨트롤러)가 결정적으로 상기 도식의 2단계와 3단계 사이에서 UART로부터 데이터를 전송하는 동안 UART(Universal Asynchronous Receiver Transmitter)에 액세스하는 제2 CPU에 의해 행해진다. 본 발명의 실시예는 UART가 DMA에 의해 액세스되는 동안 상기 처리와 UART로의 주요한 액세스를 추적하여 3a 단계로서 제2 CPU에 대한 추적을 개시하도록 이용될 수 있다. 종래의 추적 구성에서, 사용자는 CPU 2에 대한 추적을 프로그램화 할 수 없는데, 이는 종래의 구성이 제1 CPU에 생긴 사건에만 관심이 있었고 CPU 2가 UART에 영향을 미칠 수 있는지를 알지 못했기 때문이다. 본 발명의 실시예는 관심 대상의 이벤트가 생길 때에만, 즉 태그화 데이터가 CPU에 의해 수신될 때에만 추적 생성을 개시하도록 사용될 수 있다. 따라서, UART에 액세스시 CPU 2는 태그화 데이터를 수신할 것이고, 그에 따라 이 처리에 대한 추적 정보를 출력할 것이다. 종래의 추적 해법은 전체 시스템을 반복 추적하도록 프로그램화될 수 있었지만, 이는 시스템 대역폭이 제한되면 실현 가능하지 않을 수 있다. 따라서, 도 6A 및 도 6B는 본 발명의 실시예에 따른 추적이 특히 유리한 경우의 시스템에 생기는 문제점을 나타낸다.
도 7은 추적될 시스템의 다른 예를 도시한다. 본 시스템에서, 소자(160, 162)는 이들과 관련된 추적 로직 블록 또는 추적 소스(170, 172)를 갖는다. 항목 1은 태그화되어 160에서 162로 통과된다. 그러나, 태그는 자체가 추적됨을 지시하지 않아서 어떤 추적 데이터도 출력되지 않는다. 또한, 태그화 활동은 화살표 5가 태그화 항목이 프로세서(162)에서 수신됨을 지시할 때까지 블록에서 블록으로 통과된다. 이 항목에 대한 태그는 항목이 추적되어야 함을 지시하고 추적 데이터는 추적 로직(172)에 의해 출력된다.
이 도면은 태그 데이터가 단순히 태그화 항목이 추적되어야 하는 것에 비해 많은 정보를 포함할 수 있음을 나타낸다. 태그가 포함할 수 있는 제어 데이터의 예로는 추적 소스가 그 포인트로부터의 추적을 시작하거나 중지하는 것을 알리는 정보, 또는 항목의 추적이 얼마나 중요한지를 지시하는 정보가 있으며, 우선 순위 레벨에 따라 추적 소스의 세팅은 추적되거나 추적되지 않을 수 있다. 항목은 안전한 계로부터의 항목인 경우 그 추적을 방해하는 보안 데이터를 포함할 수도 있다.
일부 실시예에서, 예컨대 전용 로드와 기억 장치의 경우 어떤 소자가 액세스되어야 하는지를 알고 있는 처리가 존재할 수 있다. 따라서, 일부 실시예에서, 이 정보는 태그 데이터에 포함된다. 이러한 경우, 태그 데이터에 의해 특정화된 소자가 아닌 소자가 이 태그를 갖는 항목에 의해 액세스될 때, 상기 소자는 태그화 항목이 추적되어야 함을 알리도록 태그를 수정한다.
다른 실시예에서, 태그화 로직은 계수기를 포함할 수 있다. 태그화 시점에서 계수기의 값은 태그에 포함될 수 있다. 이후, 이 계수기 값을 갖는 태그를 가지는 소정의 항목이 상기 태그화 로직을 갖는 소자에 다시 수신될 때, 전송되는 태그와 도달하는 결과적인 항목 사이에서 취한 시간은 이 항목의 수신시 계수기 값과 태그화 계수기 값으로부터 계산될 수 있다. 이것은 데이터 처리 장치의 동작을 액세스하는데 사용될 수 있는 매우 유용한 툴일 수 있다.
첨부 도면을 참조로 본 발명의 예시적인 실시예를 상세하게 설명하였지만, 본 발명은 구체적 실시예에 한정되지 않으며, 첨부된 특허청구범위에 정의된 본 발명의 범위로부터 벗어나지 않고 당업자에 의해 다양한 변경 및 변형이 가능함을 이해하여야 한다.

Claims (20)

  1. 데이터 처리 장치로서, 이 데이터 처리 장치는 복수의 소자와, 상기 복수의 소자 중 적어도 하나와 관련된 추적 로직과, 상기 복수의 소자 중 적어도 하나와 관련된 태그화 로직(tagging logic)을 포함하며,
    상기 태그화 로직은:
    모니터할 대상의 활동을 포함하는 적어도 하나의 항목을 선택하고;
    상기 적어도 하나의 항목을 모니터링 대상 항목으로서 식별하는 태그 데이터를 적어도 하나의 선택된 항목에 제공하도록 동작하며;
    상기 추적 로직은:
    상기 추적 로직과 관련된 상기 적어도 하나의 소자에 의해 처리되는 태그화 항목을 검출하고;
    상기 검출된 태그화 항목 중 적어도 일부에 관한 추적 정보를 출력하도록 동작하는 것을 특징으로 하는 데이터 처리 장치.
  2. 제1항에 있어서,
    상기 복수의 소자 중 적어도 일부는 태그화 항목의 수신에 응답하여 동작하여 상기 수신된 태그화 항목의 처리로부터 생성되는 소정의 항목을 태그화하는 것을 특징으로 하는 데이터 처리 장치.
  3. 제 1항 또는 제 2항에 잇어서,
    상기 데이터 처리 장치는, 각기 대응하는 소자와 관련되며, 각기 태그화 항목을 검출하고 상기 검출된 태그화 항목 중 적어도 일부에 관한 추적 정보를 출력하도록 동작 가능한 복수의 추적 소스를 포함하는 것을 특징으로 하는 데이터 처리 장치.
  4. 제 1항 내지 제 3항 중 어느 한 항에 있어서,
    상기 태그 데이터는 측파대 신호로서 상기 항목과 관련된 것을 특징으로 하는 데이터 처리 장치.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 태그 데이터는 분리된 통신 채널 상으로 전송되는 것을 특징으로 하는 데이터 처리 장치.
  6. 제 1항 내지 제 5항 중 어느 한 항에 있어서,
    상기 태그 데이터는 관련 항목이 추적되어야 하는지 여부를 나타내는 비트를 구비하는 것을 특징으로 하는 데이터 처리 장치.
  7. 제 1항 내지 제 6항 중 어느 한 항에 있어서,
    상기 태그 데이터는 관련 항목의 보안 정보를 포함하며, 상기 추적 소스는 추적 정보의 출력을 제한하여 상기 태그화 항목에 관한 추적 정보 출력을 방해하는 상기 보안 정보에 응답하는 한편, 상기 추적 정보의 출력을 허용하여 상기 추적 정보의 추적을 허용하는 상기 보안 정보에 응답하여 동작 가능한 것을 특징으로 하는 데이터 처리 장치.
  8. 제 1항 내지 제 7항 중 어느 한 항에 있어서,
    상기 태그 데이터는 관련 데이터의 모니터링을 위한 우선 순위 레벨을 지시하는 우선 순위 정보를 포함하며, 상기 추적 소스는 높은 우선 순위를 가지는 상기 항목을 지시하여 상기 항목에 관한 추적 정보를 출력하는 상기 우선 순위 정보에 응답하는 한편, 낮은 우선 순위를 갖는 상기 항목을 지시하여 상기 항목에 관한 추적 정보를 출력하지 않는 상기 우선 순위 정보에 응답하여 동작 가능한 것을 특징으로 하는 데이터 처리 장치.
  9. 제7항에 있어서,
    상기 복수의 소자 중 적어도 일부는 상기 항목의 처리시 상기 항목에 관련된 상기 태그의 상기 우선 순위 정보를 변경하여 낮은 우선 순위를 지시하고, 상기 낮은 우선 순위 레벨을 지시하는 태그를 갖는 상기 항목의 처리에 응답하여 상기 일부 소자가 생성하는 소정의 항목을 태그하도록 동작 가능한 것을 특징으로 하는 데이터 처리 장치.
  10. 제 1항 내지 제 9항 중 어느 한 항에 있어서,
    상기 태그 데이터는 기한 표시를 포함하며, 소자에 의한 태그화 항목의 처리시마다 상기 기한 표시는 감소되고, 상기 태그는 상기 기한이 기한의 만료를 지시하는 값으로 감소되었을 때 삭제되는 것을 특징으로 하는 데이터 처리 장치.
  11. 제 1항 내지 제 10항 중 어느 한 항에 있어서,
    상기 복수의 소자 중 상기 적어도 하나는 계수기를 포함하며, 상기 복수의 소자 중 상기 적어도 하나는 상기 태그 데이터로서 현재 계수기 값을 제공하도록 동작될 수 있고, 상기 추적 소스는 상기 항목과 관련된 추적 정보를 출력시 상기 데이터 항목의 태그화 포인트에서 상기 계수기 값을 지시하는 상기 태그 데이터를 출력하고, 상기 복수의 소자 중 다른 적어도 하나의 소자에 의한 처리에 후속하는 상기 복수의 소자 중 상기 적어도 하나에서 상기 태그화 항목의 접수 포인트에서의 상기 계수기의 계수기 값을 출력하도록 동작 가능한 것을 특징으로 하는 데이터 처리 장치.
  12. 제 1항 내지 제 11항 중 어느 한 항에 있어서,
    상기 태그 데이터는 예상 목적 소자를 지시하는 정보를 포함하며, 상기 복수의 소자 중 적어도 일부는 상기 항목의 처리시 상기 태그를 검출하고, 상기 태그가 상기 일부 소자를 상기 예상 목적 소자로서 지시하지 않으면, 상기 항목이 모니터링될 것임을 상기 태그 데이터가 지시하도록 수정을 행하는 동작이 가능한 것을 특징으로 하는 데이터 처리 장치.
  13. 제 1항 내지 제 12항 중 어느 한 항에 있어서,
    상기 태그 데이터는 모든 연속 항목을 모니터링하여야 함을 지시하거나 항목의 모니터링을 중지하여야 함을 지시하는 정보를 포함하며, 상기 추적 로직은 상기 태그 데이터에 응답하여 상기 적어도 하나의 소자의 활동의 추적을 개시 및 중지하도록 동작 가능한 것을 특징으로 하는 데이터 처리 장치.
  14. 제 1항 내지 제 13항 중 어느 한 항에 있어서,
    상기 태그화 로직은 모니터링을 위해 선택되는 상기 항목 관련 정보를 저장하도록 동작 가능한 태그화 리소스를 포함하고, 상기 태그화 리소스는 프로그램화 가능한 것을 특징으로 하는 데이터 처리 장치.
  15. 제14항에 있어서,
    상기 태그화 리소스는 어드레스 비교기, 데이터 값 비교기, 어드레스 저장을 위한 레지스터, 데이터 값 저장을 위한 레지스터 및 예외(exception), 끼어들기(interruption), 또는 동작(performance)의 모니터링 로직 이벤트와 같은 이벤트의 발생을 모니터링 하기 위한 이벤트 모니터링 로직 중 적어도 하나를 포함하는 것을 특징으로 하는 데이터 처리 장치.
  16. 제 1항 내지 제 15항 중 어느 한 항에 있어서,
    상기 데이터 처리 장치는 상기 복수의 소자 중 적어도 2개를 연결하는 적어도 하나의 버스를 포함하며, 상기 적어도 하나의 버스는 태그 데이터를 전송하는 적어도 하나의 전용선을 포함하는 것을 특징으로 하는 데이터 처리 장치.
  17. 제 1항 내지 제 16항 중 어느 한 항에 있어서,
    상기 추적 소스는 상기 태그화 데이터에 응답하여 동작을 수행하도록 동작 가능하고, 상기 동작은 추적 정보를 수집하고 출력하기 이전에 상기 태그화 데이터로부터 기인하는 여러 단계를 수행하는 것을 포함하는 것을 특징으로 하는 데이터 처리 장치.
  18. 소정의 활동에 응답하여 데이터 처리 장치의 동작을 모니터링하는 방법으로서, 상기 데이터 처리 장치는 복수의 소자와, 상기 복수의 소자 중 적어도 하나와 관련된 추적 로직을 포함하고, 상기 방법은:
    모니터할 대상의 활동을 포함하는 적어도 하나의 항목을 선택하고;
    상기 적어도 하나의 항목을 모니터링 대상 항목으로서 식별하는 태그 데이터를 적어도 하나의 선택된 항목에 제공하며;
    상기 적어도 하나의 소자에 의해 처리되는 태그화 항목을 검출하고;
    상기 검출된 태그화 항목 중 적어도 일부에 관한 추적 정보를 출력하는 단계를 포함하는 것을 특징으로 하는 데이터 처리 장치의 동작 모니터링 방법.
  19. 제18항에 있어서,
    상기 복수의 소자 중 다른 소자 중 하나에서 태그화 항목의 수신에 응답하여, 상기 수신된 태그화 항목의 처리로부터 생성되는 소정의 항목을 태그화하는 단계를 더 포함하는 것을 특징으로 하는 데이터 처리 장치의 동작 모니터링 방법.
  20. 데이터 프로세서 상에서 구동시 데이터 프로세서로 하여금 제18항 또는 제19항에 따른 상기 방법의 단계들을 수행하도록 제어를 행할 수 있는 것을 특징으로 하는 컴퓨터 프로그램 제품.
KR1020087024699A 2008-10-09 2006-03-09 추적 데이터 생성 장치, 방법 및 컴퓨터 프로그램 제품 KR20080113052A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020087024699A KR20080113052A (ko) 2008-10-09 2006-03-09 추적 데이터 생성 장치, 방법 및 컴퓨터 프로그램 제품

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020087024699A KR20080113052A (ko) 2008-10-09 2006-03-09 추적 데이터 생성 장치, 방법 및 컴퓨터 프로그램 제품

Publications (1)

Publication Number Publication Date
KR20080113052A true KR20080113052A (ko) 2008-12-26

Family

ID=40370586

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087024699A KR20080113052A (ko) 2008-10-09 2006-03-09 추적 데이터 생성 장치, 방법 및 컴퓨터 프로그램 제품

Country Status (1)

Country Link
KR (1) KR20080113052A (ko)

Similar Documents

Publication Publication Date Title
CN102193778B (zh) 用于生成时间戳的方法、设备和跟踪模块
US9021311B2 (en) Method and apparatus for filtering trace information
CN102736956B (zh) 线程通信和同步技术
US8935577B2 (en) Method and apparatus for filtering trace information
US20060150023A1 (en) Debugging apparatus
CN105183575A (zh) 处理器故障的诊断方法、装置及系统
EP2435918B1 (en) Integrated circuit comprising trace logic and method for providing trace information
US8966323B2 (en) Monitoring multiple data transfers
US8468394B2 (en) Method of tracing selected activities within a data processing system by tagging selected items and tracing the tagged items
CN103186447B (zh) 一种总线读写检测装置
EP1125200B1 (en) Maintaining object size information concurrent with data optimization for debugging
EP2942714B1 (en) Monitoring method, monitoring apparatus, and electronic device
US7603489B2 (en) Direct memory access controller including first and second transfer setting registers
US7404106B2 (en) Apparatus and method for reporting program halts in an unprotected pipeline at non-interruptible points in code execution
US20060117226A1 (en) Data communication system and data communication method
KR20080113052A (ko) 추적 데이터 생성 장치, 방법 및 컴퓨터 프로그램 제품
CN112445734B (zh) 通信控制方法和通讯电路
CN104572515A (zh) 跟踪模块、方法、系统和片上系统芯片
CN104679687B (zh) 一种识别中断源的方法及装置
CN106610878A (zh) 双控制器系统的故障调试方法
US7000148B2 (en) Program-controlled unit
US20030018842A1 (en) Interrupt controller
US7222202B2 (en) Method for monitoring a set of semaphore registers using a limited-width test bus
JP2006079485A (ja) 電子計算機における障害解析用情報収集方式
CN112905602B (zh) 数据比对方法、计算设备及计算机存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application