KR102346253B1 - 처리 활동 추적 - Google Patents

처리 활동 추적 Download PDF

Info

Publication number
KR102346253B1
KR102346253B1 KR1020187029294A KR20187029294A KR102346253B1 KR 102346253 B1 KR102346253 B1 KR 102346253B1 KR 1020187029294 A KR1020187029294 A KR 1020187029294A KR 20187029294 A KR20187029294 A KR 20187029294A KR 102346253 B1 KR102346253 B1 KR 102346253B1
Authority
KR
South Korea
Prior art keywords
tracking data
processing activity
items
tracking
data
Prior art date
Application number
KR1020187029294A
Other languages
English (en)
Other versions
KR20180122409A (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 KR20180122409A publication Critical patent/KR20180122409A/ko
Application granted granted Critical
Publication of KR102346253B1 publication Critical patent/KR102346253B1/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
    • G06F11/3466Performance evaluation by tracing or monitoring
    • 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/348Circuit details, i.e. tracer hardware
    • 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/273Tester hardware, i.e. output processing circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • G06F11/3082Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting the data filtering being achieved by aggregating or compressing the monitored data
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks

Abstract

데이터 처리회로는, 처리 활동을 행하도록 구성된 처리 소자와, 추적 데이터 기억장치와, 상기 처리 소자의 처리 활동을 나타내는 추적 데이터의 항목들을 생성하고 추적 데이터의 항목들을 상기 추적 데이터 기억장치에 기억하는 추적회로를 구비하고, 상기 추적회로는, 추적 데이터의 항목들이 상기 추적 데이터 기억장치에 기억된 특정한 처리 활동의 결과에 관한 조건을 검출하고 검출된 상기 조건에 따라 상기 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들의 적어도 일부를 선택적으로 폐기하는 검출회로를 구비한다.

Description

처리 활동 추적
본 발명은 처리 활동의 추적에 관한 것이다.
중앙처리장치(CPU) 등의 처리 소자에 의해 행해지고 있는 처리 활동을 파악하고 있는 것이 바람직한 경우가 많다. 예를 들어, 이와 같은 정보는 데이터 처리장치의 개발시에 유용하다. 이와 같은 처리에 도움을 주는데 사용되는 도구의 예로는 추적 도구를 들 수 있다.
따라서, 시스템 내부의 단계적인 활동을 표시하는 데이터를 포함하는 추적 스트림을 발생하게 하는 처리 소자의 활동을 추적하는 것은 시스템 개발에 있어서 매우 유용한 도구이다. 이와 같은 추적 도구는, 처리가 감시되고 있는 칩 위에 존재하는 내장 추적 매크로셀(embedded trace macrocell)(ETM, ARM 리미티드의 상표명)을 포함하는 프로그램 흐름을 추적하는 다양한 수단을 이용한다. 어떤 경우에는 추적 데이터를 취득하고 타임스탬프와 함께 기억한다. 이들 처리의 예로는, ETM 추적, 통계적 프로파일링과 내장 논리 분석을 들 수 있다.
이들 추적 도구를 사용하여 명령 스트림의 실행중의 특정한 시점에서 장치의 조건을 재구성할 수 있다. 이들 추적 도구는 명령 스트림의 실행 중에 문제점 또는 다른 비정상적인 장치 거동을 검출하거나 진단하는데 적합하다.
일 구성예에서는, 처리 활동을 행하도록 구성된 처리 소자와, 추적 데이터 기억장치와, 상기 처리 소자의 처리 활동을 나타내는 추적 데이터의 항목들을 생성하고 추적 데이터의 항목들을 상기 추적 데이터 기억장치에 기억하는 추적회로를 구비하고, 상기 추적회로는, 추적 데이터의 항목들이 상기 추적 데이터 기억장치에 기억된 특정한 처리 활동의 결과에 관한 조건을 검출하고 검출된 상기 조건에 따라 상기 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들의 적어도 일부를 선택적으로 폐기하는 검출회로를 구비하고, 상기 검출회로는 특정한 처리 활동의 개시 이후의 기간을 조건으로서 검출하도록 구성되고, 상기 검출회로는, 특정한 처리 활동의 개시 이후의 기간이 특정한 처리 활동이 소정의 스테이지에 도달하는 임계 기간보다 작을 때, 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들을 폐기하도록 구성된 데이터 처리회로가 제공된다.
또 다른 구성예에서는, 처리 소자의 처리 활동을 나타내는 추적 데이터의 항목들을 생성하고 추적 데이터의 항목들을 추적 데이터 기억장치에 기억하는 추적회로를 구비하고, 상기 추적회로는, 추적 데이터의 항목들이 상기 추적 데이터 기억장치에 기억된 특정한 처리 활동의 결과에 관한 조건을 검출하고 검출된 상기 조건에 따라 상기 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들의 적어도 일부를 선택적으로 폐기하는 검출회로를 구비하고, 상기 검출회로는 특정한 처리 활동의 개시 이후의 기간을 조건으로서 검출하도록 구성되고, 상기 검출회로는, 특정한 처리 활동의 개시 이후의 기간이 특정한 처리 활동이 소정의 스테이지에 도달하는 임계 기간보다 작을 때, 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들을 폐기하도록 구성된 추적장치가 제공된다.
또 다른 구성예에서는, 처리 활동을 행하는 처리수단과, 추적 데이터 기억수단과, 상기 처리수단의 처리 활동을 나타내는 추적 데이터의 항목들을 생성하고 추적 데이터의 항목들을 상기 기억수단에 기억하는 추적수단을 구비하고, 상기 추적수단은, 추적 데이터의 항목들이 상기 기억수단에 기억된 특정한 처리 활동의 결과에 관한 조건을 검출하고 검출된 상기 조건에 따라 상기 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들의 적어도 일부를 선택적으로 폐기하는 검출수단을 구비하고, 상기 검출수단은 특정한 처리 활동의 개시 이후의 기간을 조건으로서 검출하도록 구성되고, 상기 검출수단은, 특정한 처리 활동의 개시 이후의 기간이 특정한 처리 활동이 소정의 스테이지에 도달하는 임계 기간보다 작을 때, 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들을 폐기하도록 구성된 데이터 처리회로가 제공된다.
또 다른 구성예에서는, 처리수단의 처리 활동을 나타내는 추적 데이터의 항목들을 생성하고 추적 데이터의 항목들을 기억수단에 기억하는 추적수단을 구비하고, 상기 추적수단은, 추적 데이터의 항목들이 상기 기억수단에 기억된 특정한 처리 활동의 결과에 관한 조건을 검출하고 검출된 상기 조건에 따라 상기 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들의 적어도 일부를 선택적으로 폐기하는 검출수단을 구비하고, 상기 검출수단은 특정한 처리 활동의 개시 이후의 기간을 조건으로서 검출하도록 구성되고, 상기 검출수단은, 특정한 처리 활동의 개시 이후의 기간이 특정한 처리 활동이 소정의 스테이지에 도달하는 임계 기간보다 작을 때, 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들을 폐기하도록 구성된 추적장치가 제공된다.
또 다른 구성예에서는, 처리 소자의 처리 활동을 나타내는 추적 데이터의 항목들을 생성하는 단계와, 추적 데이터의 항목들을 추적 데이터 기억장치에 기억하는 단계와, 추적 데이터의 항목들이 상기 추적 데이터 기억장치에 기억된 특정한 처리 활동의 결과에 관한 조건을 검출하는 단계와, 검출된 상기 조건에 따라 상기 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들의 적어도 일부를 선택적으로 폐기하는 단계를 포함하고, 상기 폐기하는 단계는 특정한 처리 활동의 개시 이후의 기간을 조건으로서 검출하고, 상기 폐기하는 단계는, 특정한 처리 활동의 개시 이후의 기간이 특정한 처리 활동이 소정의 스테이지에 도달하는 임계 기간보다 작을 때, 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들을 폐기하는 방법이 제공된다.
본 발명의 또 다른 발명내용 및 특징은 첨부된 청구범위에 기재되어 있다.
이하, 다음의 첨부도면을 참조하여 본 발명을 더욱 상세히 설명한다.
도 1은 데이터 처리장치를 개략적으로 나타낸 것이다.
도 2는 프레이밍(framing) 동작을 개략적으로 나타낸 것이다.
도 3은 추적 데이터 버퍼를 개략적으로 나타낸 것이다.
도 4는 원형 추적 데이터 버퍼를 개략적으로 나타낸 것이다.
도 5는 데이터 처리방법을 나타낸 개략적인 흐름도이다.
도 6 및 도 7은 도 5의 선택된 단계들의 각각의 예를 개략적으로 나타낸 것이다.
도 8은 인터럽트 처리의 실행과 관련된 예시적인 단계들을 개략적으로 나타낸 것이다.
도 9는 기억된 추적 데이터의 기억 및 폐기를 개략적으로 나타낸 것이다.
도 10 및 도 11은 추적 데이터와 관련된 원형 버퍼 기술을 개략적으로 나타낸 것이다.
도 12 및 도 13은 다른 데이터 처리장치의 개략적인 예를 제공한다.
도 14는 데이터 전송 동작의 실행과 관련된 예시적인 단계를 개략적으로 나타낸 것이다.
첨부도면을 참조하여 실시예를 설명하기 전에, 다음의 실시예의 설명이 주어진다.
예시적인 실시예는, 처리 활동을 행하도록 구성된 처리 소자와, 추적 데이터 기억장치와, 상기 처리 소자의 처리 활동을 나타내는 추적 데이터의 항목들을 생성하고 추적 데이터의 항목들을 상기 추적 데이터 기억장치에 기억하는 추적회로를 구비하고, 상기 추적회로는, 추적 데이터의 항목들이 상기 추적 데이터 기억장치에 기억된 특정한 처리 활동의 결과에 관한 조건을 검출하고 검출된 상기 조건에 따라 상기 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들의 적어도 일부를 선택적으로 폐기하는 검출회로를 구비한 데이터 처리회로를 제공한다.
본 발명은, 추적 데이터가 수집되고 기억되는 시스템에서, 포함된 데이터의 볼륨이 매우 클 수 있다는 것을 인식하고 있다. 이것은, 데이터에 의해 점유된 기억 공간과 데이터를 검색하고 처리하는데 필요한 처리와 관련된 문제를 일으킬 수 있다. 본 발명은, 때때로, 추적 데이터가 취득되어 기억된 후까지, 추적 데이터가 유용한지 아닌지를 알지 못한다는 것을 더 인식하고 있다. 이때, 용어 "유용한"은 (예를 들어) 추적 데이터가 결함 또는 이상 동작 상태에 관련된다는 것을 표시할 수 있다. 이들 상황에서, 본 발명은, 특정한 처리 활동에 대한 추적 데이터가 기억되지만, 이때에는 특정한 처리 활동과 관련된 추적 데이터를 그후에 폐기할 것인지 아닌지가 예측되거나 특정한 처리 활동의 결과에 관한 조건의 검출에 의존하는 구성을 제공한다. 예를 들어, 특정한 처리 활동이 그것의 동작을 성공적으로 및/또는 시기적절하게 완료한 경우에, 이 특정한 처리 활동과 관련된 추적 데이터의 적어도 일부가 폐기될 수도 있다. 검출 결과가 특정한 처리 활동이 그것의 동작을 성공적으로 및/또는 시기적절하게 완료하지 않았다고 표시하는 경우에, 추적 데이터가 유지될 수(폐기되지 않을 수) 있다. 이에 따라, 예를 들어, 처리 활동이 비정상적으로 동작하는 경우에 추적 데이터가 기록될 수 있지만, 그후의 검출이 이와 같은 이상 거동을 나타내는 경우에만 추적 데이터가 유지될 수 있다.
따라서, 본 발명의 실시예는, 한 개 이상의 특정한 조건을 만족하는 결과를 갖는 처리 활동에 관련되는 추적 데이터를 기억하지만, 다른 추적 데이터를 폐기하는 것을 제공할 수 있다. 이들 조치는 전술한 문제를 해소할 수 있다.
실시예에서, 추적 데이터 기억장치는, 데이터 항목 기억의 관련된 순서를 갖고 데이터 항목 기억 순서에서, 다음의 이용가능한 기억 위치를 표시하는 표시자를 갖는 버퍼이고, 검출회로는, 특정한 처리 활동에 관한 추적 데이터의 항목이 기억되는 추적 데이터 기억 장치 내부의 기억 위치를 다음의 이용가능한 기억 위치로서 표시하도록 표시자를 설정함으로써 특정한 처리 활동에 관한 기억된 추적 데이터의 항목들을 폐기하도록 구성된다. 따라서, 예를 들어, 표시자(예를 들어, 기록 포인터)를 다시 기억된 추적 데이터 내부의 위치로 이동함으로써 기억된 추적 데이터를 폐기할 수 있다. 이것이 즉시 폐기된 추적 데이터를 오버라이트하지 않을 수도 있지만, 이것은 폐기된 추적 데이터가 다음에 기억된 추적 데이터에 의해 오버라이트된다는 것을 의미한다.
"폐기" 결과가 검출된 처리 활동에 관한 추적 데이터의 일부를 유지할 수 있다. 예를 들어, 차후의 분석에게 특정한 처리 활동이 성공적으로 완료했다는 것을 표시하여 추가적인 추적 데이터가 유지되지 않도록 하기 위해, 추적 데이터의 첫 번째 즉 헤더 부분이 유지될 수도 있다. 이것을 달성하기 위해, 표시자 또는 기록 포인터가, (데이터 항목 기억 순서에서) 첫 번째 위치 이외의, 특정한 활동에 대한 기억된 추적 데이터 내부의 위치로 (폐기처리의 일부로서) 반환될 수도 있다. 그러나, 다른 실시예에서는, 검출회로는, 특정한 처리 활동에 관한 추적 데이터의 항목이 기억된 데이터 항목 기억 순서로 첫 번째 기억 위치를 다음의 이용가능한 기억 위치로 표시하도록 표시자를 설정함으로써, 특정한 처리 활동에 관한 기억된 추적 데이터의 항목들 전체를 폐기하도록 구성된다.
실시예에서, 검출회로는, 처리 활동의 개시에 응답하여, 표시자의 현재 상태를 기억하도록 구성된다. 이것은, 검출회로가 특정한 처리 활동에 대한 기억된 추적 데이터를 폐기한 것에 응답하여 표시자가 이 기억된 상태로 복귀할 수 있도록(다음의 처리 활동을 위해 추적 데이터의 기억을 대비하도록) 할 수 있다. 일부 실시예에서, 검출회로는, 특정한 처리 활동의 개시에 응답하여 기억된 표시자 값을 다음의 이용가능한 기억 위치로서 표시하도록 표시자를 설정함으로써, 특정한 처리 활동에 관한 모든 기억된 데이터 추적 항목들을 폐기하도록 구성된다.
추적 데이터 기억장치는, 표시자가 데이터 항목 기억 순서로 제한 위치에 도달할 때, 다음의 이용가능한 기억 위치가 데이터 항목 기억 순서로 이전 위치가 되도록 표시자가 조정되는 원형 버퍼이다. 일부 실시예에서, 제한 위치는, 원형 버퍼가 이전 위치로 감싸기 전에 처리 활동에 관한 추적 데이터가 버퍼의 말단까지 공간을 점유할 수 잇도록 추적 데이터 기억장치 내부의 최종 기억 위치이다. 그러나, 다른 실시예에서는, 제한 위치는, 데이터 항목 기억 순서로, 특정한 처리 활동에 관한 추적 데이터의 항목이 기억되는 첫 번째 위치로부터, 기억 위치들의 제한된 수이다. 이들 실시예에서는, 개별적인 처리 활동에 관한 추적 데이터에 의해 점유될 수 있는 버퍼 공간의 양이 제한된 수의 기억 위치들에서 마무리된다(capped).
이와 같은 원형 버퍼의 감싸는 동작에 관해서, 일부 실시예에서는, (표시자가 제한 위치의 도달에 응답하여 복귀하는) 이전 위치는 데이터 항목 기억 순서로 버퍼의 시작 위치일 수 있다. 그러나, 다른 실시예에서는, (표시자가 제한 위치의 도달에 응답하여 복귀하는) 이전 위치는, 데이터 항목 기억 순서로, 검출회로에 의해 폐기되지 않았던 기억된 추적 데이터의 항목들 다음의 첫 번째 이용가능한 기억 위치이다. 이에 따르면, 원형 버퍼로서의 동작을 여전히 허용하면서 이전에 기억된 폐기되지 않은 추적 데이터가 유지된다. 실시예에서, 추적 데이터가 더 많이 유지될수록(폐기되지 않을수록) 원형 버퍼가 단순히 더 작아진다.
특정한 데이터 처리 동작의 결과에 관한 다양한 조건이 검출될 수 있다. 실시예에서, 검출회로는 특정한 처리 활동의 개시 이후의 기간을 조건으로서 검출하도록 구성된다. 예를 들어, 검출회로는, 특정한 처리 활동의 개시 이후의 기간이 특정한 처리 활동이 소정의 스테이지에 도달하는 임계 기간보다 작을 때. 특정한 처리 활동에 관한 기억된 추적 데이터의 항목들을 폐기하도록 구성된다. 이때, 임계 기간보다 길게 걸리는 처리 활동은 그것의 추적 데이터가 폐기되지 않는 반면에, 임계 기간보다 적게 걸리는 처리 활동은 그것의 추적 데이터가 폐기된다. 이에 따르면, 예를 들어, 특정한 처리 활동에 대한 통상의 처리 시간에(또는 바로 위로) 임계 기간을 설정함으로써, 비정상적으로 느린 처리 활동을 그것의 추적 데이터가 유지되도록 하여, 예를 들어, 느린 동작의 원인을 조사할 수 있다. "기간"은 시간, 처리 클록 사이클 또는 다른 측정값으로 표시될 수 있다. 소정의 스테이지는 특정한 처리 활동의 완료이어도 된다. 이와 같은 구성이 적합한 이와 같은 처리 활동의 일례는 프로세서 인터럽트의 처리이다.
다른 실시예에서, 검출회로는, 특정한 처리 활동의 성공적인 완료의 검출에 응답하여 특정한 처리 활동에 관한 기억된 추적 데이터 항목들을 폐기하도록 구성된다. 이것은 성공적으로 완료되지 않은 처리 활동에 관한 추적 데이터의 유지를 제공한다.
일부 실시예에서, 처리 소자는 프로그램 명령들을 실행하도록 구성되고, 처리 활동은 프로그램 명령들의 그룹들의 실행과 관련된다. 그러나, 추적 데이터의 생성 및 기억 기술이 반드시 데이터 처리 명령들의 실행에만 적용되는 것은 아니다. 일부 다른 실시예에서, 처리 소자는 논리 연산을 실행하는 논리회로를 구비하고, 처리 활동은 한 개 이상의 논리 연산의 실행과 관련된다. 일부 다른 실시예에서는, 처리 소자가 데이터를 소스로부터 목적지로 전송하는 회로를 구비하고, 처리 활동은 데이터 전송 동작과 관련된다.
다른 실시예는, 처리 소자의 처리 활동을 나타내는 추적 데이터의 항목들을 생성하고 추적 데이터의 항목들을 추적 데이터 기억장치에 기억하는 추적회로를 구비하고, 상기 추적회로는, 추적 데이터의 항목들이 상기 추적 데이터 기억장치에 기억된 특정한 처리 활동의 결과에 관한 조건을 검출하고 검출된 상기 조건에 따라 상기 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들의 적어도 일부를 선택적으로 폐기하는 검출회로를 구비한 추적장치를 제공한다.
또 다른 실시예는, 처리 활동을 행하는 처리수단과, 추적 데이터 기억수단과, 상기 처리수단의 처리 활동을 나타내는 추적 데이터의 항목들을 생성하고 추적 데이터의 항목들을 상기 기억수단에 기억하는 추적수단을 구비하고, 상기 추적수단은, 추적 데이터의 항목들이 상기 기억수단에 기억된 특정한 처리 활동의 결과에 관한 조건을 검출하고 검출된 상기 조건에 따라 상기 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들의 적어도 일부를 선택적으로 폐기하는 검출수단을 구비한 데이터 처리회로를 제공한다.
또 다른 실시예는, 처리수단의 처리 활동을 나타내는 추적 데이터의 항목들을 생성하고 추적 데이터의 항목들을 기억수단에 기억하는 추적수단을 구비하고, 상기 추적수단은, 추적 데이터의 항목들이 상기 기억수단에 기억된 특정한 처리 활동의 결과에 관한 조건을 검출하고 검출된 상기 조건에 따라 상기 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들의 적어도 일부를 선택적으로 폐기하는 검출수단을 구비한 추적장치를 제공한다.
또 다른 실시예는, 처리 소자의 처리 활동을 나타내는 추적 데이터의 항목들을 생성하는 단계와, 추적 데이터의 항목들을 추적 데이터 기억장치에 기억하는 단계와, 추적 데이터의 항목들이 상기 추적 데이터 기억장치에 기억된 특정한 처리 활동의 결과에 관한 조건을 검출하는 단계와, 검출된 상기 조건에 따라 상기 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들의 적어도 일부를 선택적으로 폐기하는 단계를 포함하는 방법을 제공한다.
이제 도면을 참조하면, 도 1은 메모리(30)에 접속된 프로세서(20)를 구비한 데이터 처리 장치 또는 회로(10)를 개략적으로 나타낸 것이다. 도 1의 구성(또는 적어도 프로세서(20))은 단일 집적회로 또는 단일 집적회로의 일부로서 구현된다.
프로세서(20)는, (예를 들어, 미도시된 캐시 메모리에 의해) 메모리(30)를 액세스할 수 있는 처리 소자(중앙처리장치 즉 CPU 등)(30)와, 내장 추적 매크로셀(ETM)(60) 및 프레이밍 회로(70)의 형태를 갖는 추적장치(50)를 구비한다. 옵션으로, 추적회로(42)가 처리 소자(40) 내부에 설치되어, 추적장치(50)와 협력하여 추적장치의 기능을 행할 수 있다. 추적장치는 처리 소자의 처리 활동을 나타내는 추적 데이터의 항목들을 생성 및 기억하도록 구성된다.
처리 소자(40)는, 처리 활동을 행하도록 구성된 처리 소자의 일례로서, 명령들의 스트림을 실행한다.
추적장치는, 처리 소자의 처리 활동을 나타내는 추적 데이터의 항목들을 생성하고 추적 데이터의 항목들을 추적 데이터 기억장치에 기억하는 추적회로를 구비한다. 예를 들어, 추적 데이터는, 처리 소자에 의해 실행된 명령들의 속성 또는 아이덴티티, 이들 명령의 실행에 의해 영향을 받거나 및/또는 생성된 데이터 값, 한 개 이상의 프로세서 레지스터들의 상태, 데이터 전송의 상태 및 진행 등을 나타낸다. 이들 추적 데이터 항목들은, 처리 소자의 활동에 응답하여, 즉 처리 활동과 동시에 발생된다.
ETM(60)은 그 자신의 추적 데이터 기억장치를 구비할 수도 있지만, 본 실시예에서는, 메모리(30)가 추적 데이터 기억장치로서 동작한다. ETM(60)에 의해 발생된 추적 데이터의 항목들은, 개별 바이트들 또는 워드들의 형태를 가지며, 메모리(30)에 기록되기 전에, 예를 들면, 프레이밍 회로(70)에 의해 16바이트의 그룹들 또는 프레임들로 순서가 맞추어진다(collated). 따라서, 메모리(30)는 추적 데이터 기억장치의 일례를 제공한다.
이하에서 더욱 상세히 설명하는 기술을 이용하여, 추적회로는, 추적 데이터의 항목들이 추적 데이터 기억장치에 기억된 특정한 처리 활동의 결과에 관한 조건을 검출하고 검출된 조건에 따라 특정한 처리 활동에 관한 기억된 추적 데이터의 항목들의 적어도 일부를 선택적으로 폐기하는 검출회로(62)를 구비한다.
옵션으로, 추적 데이터 분석기(80)는, 기억된 추적 데이터를 분석하기 위해, 예를 들면, 추적 데이터가 발생 및 기억된 처리 활동 후에 적용되는 후처리로서, 메모리(30) 내부의 기억된 추적 데이터를 액세스할 수 있다.
도 2는 프레이밍 동작을 개략적으로 나타낸 것이다. 전술한 것과 같이, 실시예에서, 프레이밍 회로는 특정한 수의 바이트 또는 워드, 예를 들어 16 바이트의 추적 데이터의 그룹들, 프레임들 또는 패킷들을 수집한다. 각 추적 데이터 항목이 ETM(60)에 의해 생성될 때, 버퍼(72)(16바이트 버퍼, 또는 다른 실시예에서는 15바이트 크기+추적 데이터 항목의 최대의 바이트 단위의 가능한 크기와 동일한 버퍼 등)에 추가된다.
도 2를 참조하면, 상단 행은 버퍼(72) 내부에 이미 수집된 추적 데이터의 3 바이트(74)를 개략적으로 나타낸다. 중간 행은, 16바이트의 추적 데이터가 버퍼(72)에 수집된 나중의 상태를 개략적으로 나타낸 것으로, 이에 응답하여 프레이밍 회로는 16바이트 패킷 또는 프레임(76)을 메모리(30)에 출력한다. 추적 데이터 기억장치로 사용하기 위해 메모리(30)의 영역이 예약되거나 다른 방식으로 할당될 수 있다.
이때, 다른 패킷 또는 프레임 사이즈가 사용될 수도 있다는 것은 자명하다.
도 3은 메모리(30)의 지역 또는 영역(300)으로서 구현된 추적 데이터 기억장치를 개략적으로 나타낸 것이다. 추적 데이터 기억장치는, 통상 동작시에, 추적 데이터 항목들이 추적회로(50)에 의해 추적 데이터 버퍼에 기록되고 분석기(80)에 의해 추적 데이터 버퍼로부터 판독되는 방식으로 인해, 버퍼로 불린다.
전술한 것과 같이, 데이터 항목들은 프레이밍 회로(70)에 의해 프레임들로 추적 데이터 기억장치에 기억된다. 데이터 항목들은 데이터 항목 기억 순서에 대응하는 프레임 단위의 순서로 기록된다. 그러나, 메모리(30)와 버퍼(72)에 의해 제공된 추적 데이터 장치의 조합을 고려하면, 메모리(30) 내부의 추적 데이터 기억장치는 프레임 단위 기록 순서와 "기록할 다음 프레임" 위치 또는 포인터를 제공하고 버퍼(72)는 바이트 단위의 기록 순서와 "기록할 다음 바이트" 포인터(78)를 제공한다는 점에서, 이 두 개는 협동하여 데이터 항목 기억의 데이터 항목 단위의 순서를 제공한다. 이들 2가지 포인터의 조합은 데이터 항목 기억 순서로 다음 데이터 항목 위치를 나타내는 표시자 또는 기록 포인터의 구현을 제공할 수 있다.
이들 2개의 버퍼들의 조합은, (화살표(310)로 개략적으로 나타낸) 데이터 항목 기억의 관련된 순서를 갖는 버퍼와, 데이터 항목 기억 순서로, 다음의 이용가능한 기억 위치를 표시하는 표시자 또는 기록 포인터(320)로서 구성된 추적 데이터 기억장치의 일례를 제공한다. 이들 기술을 이용하여, 새롭게 생성된 추적 데이터 항목이 프레임이 완료할 때까지 버퍼(72) 내부의 다음 위치에 기억되고, 이 시점에서 프레임이 메모리(30) 내부의 다음 프레임 위치에 기록된다. 따라서, 버퍼(72)가 사용된다는 사실은, 메모리(30)에 대한 액세스 횟수가 줄어든다는 점에서 편리성을 제공하지만, 다른 점에서는, 버퍼(72)와 메모리(30) 내부의 추적 데이터 기억장치(300)가 함께 협력하여 기록 순서를 갖는 바이트 단위의 버퍼와 다음 기록 위치를 표시하는 기록 포인터 또는 표시자의 기능을 제공한다.
실시예에서, 이하에서 설명하는 기술을 이용하여, 검출회로는, 특정한 처리 활동에 관한 추적 데이터의 항목이 기억되는 추적 데이터 기억장치 내부의 기억 위치를 다음의 이용가능한 기억 위치로서 표시하도록 표시자(320)를 설정함으로써 특정한 처리 활동에 관한 기억된 추적 데이터 항목들을 폐기하도록 구성된다. 이에 따르면, 폐기할 추적 데이터가 반드시 추적 데이터 기억장치로서 삭제될 필요는 없지만, 다음 발생된 추적 데이터가 추적 데이터 기억장치에 기록될 때, 폐기할 추적 데이터가 오버라이트되도록 기록 포인터가 설정된다.
도 4는, 표시자 또는 기록 포인터(320)가 데이터 항목 기억 순서로 제한 위치에 도달할 때, 다음의 이용가능한 기억 위치가 데이터 항목 기억 순서로 이전 위치가 되도록 표시자가 조정되는 원형 추적 데이터 버퍼를 개략적으로 나타낸 것이다. 예를 들어, 제한 위치는 추적 데이터 기억장치 내부의 최종 기억 위치(330)이고, 이전 위치는 (데이터 항목 기억 순서에 대해) 추적 데이터 기억장치 내부의 첫 번째 기억 위치이다. 이에 따르면, 추적 데이터 기억장치가 채워지면, 기록이 추적 데이터 기억장치 내부의 이전 위치로 복귀하여, 이전에 기억된 추적 데이터를 오버라이트한다.
양 실시예(도 3 또는 도 4)에서, 프레이밍 회로(30) 또는 추적회로(50)의 다른 부분은, 분석기(80)에게 추적 데이터 기억장치로부터 기억된 추적 데이터를 검색하도록 하는 메시지 또는 명령을 내림으로써, 표시자 또는 기록 포인터가 최종 위치(330)에 도달하는 것에 응답하도록 구성될 수 있다.
도 5는 데이터 처리방법을 나타낸 개략적인 흐름도이다.
스텝 500에서, 처리 소자(40)는 처리 활동, 예를 들어, 특정한 현재의(또는 "특정한") 처리 활동을 행한다.
스텝 510은, 처리 소자의 처리 활동을 나타내는 추적 데이터의 항목들을 생성하고 추적 데이터 기억장치(전술한 것과 같이 함께 협력하는 버퍼(72) 및 메모리 영역(300)에 추적 데이터 항목들을 기억하는 회로(50)를 포함한다.
실시예에서, 스텝 500, 510은, 추적 데이터가 연속으로 기억되지 않고, 처리 활동에 대한 추적 데이터의 기억이 이 처리 활동의 개시에 응답하여 개시하도록 동작한다. 따라서, 처리 활동은, 실시예에서는, 시작과 (적어도 통상 환경 하에서) 종료를 갖는 수행해야 할 작업 또는 항목으로 생각할 수 있다. 처리 활동의 시작은 추적 데이터의 보존을 개시하는 트리거를 제공한다. 예시적인 처리 활동으로는 프로세서 인터럽트 처리를 들 수 있다. 이때, 인터럽트는 처리 활동의 개시와 (추적 데이터의 보존을 트리거하는) 트리거 이벤트 모두로서 동작할 수 있다. 또는, 인터럽트(또는 특정한 종류의 인터럽트)를 처리하는 소자(40)의 ETM(60)에 의한 검출이 트리거 이벤트를 구성할 수 있다. 따라서, 추적 데이터의 생성이 연속적인 처리이거나 트리거에 응답하여 시작될 수 있지만, 추적 데이터의 보존은, 실시예에서는, 특정한 처리 활동의 개시일 수 있는 트리거 이벤트에 의해 개시된다. ETM(60)은, 개시될 때, 추적 데이터의 보존을 트리거하는 처리 활동들의 스케줄 또는 종류의 목록을 유지한다. 처리 활동 그 자체가 추적 데이터의 보존을 트리거하거나, 처리 활동의 개시의 ETM(60)에 의한 검출이 추적 데이터의 보존을 트리거할 수 있다.
스텝 520은 추적 데이터의 항목들이 추적 데이터 기억장치에 기억된 특정한 처리 활동의 결과에 관한 조건을 검출하는 것을 포함한다. 이와 같은 검출의 예는 이하에서 설명한다.
스텝 530은 검출된 조건에 따라 특정한 처리 활동에 관한 기억된 추적 데이터의 항목들의 적어도 일부를 선택적으로 폐기하는 것(540)(또는 폐기하지 않는 것(550)을 포함한다.
도 6 및 도 7은 도 5의 선택된 단계들의 각각의 예를 개략적으로 나타낸 r서이다. 각 경우에, 스텝 520의 예시적인 버전(520', 520")이 도시되어 있으며, 각 경우에 스텝 530의 예시적인 버전(530', 530")이 도시되어 있다.
도 6에서, 검출회로는, 스텝 520'로서, 특정한 처리 활동의 개시 이후의 기간을 조건으로서 검출하도록 구성된다. 예를 들어, 이것은, 개시 시간(예를 들어 시간 단위 또는 클록 사이클 단위. 개시 시간은 스텝 510의 각 인스턴스에서 "제로"로 정의된 후, 여기에서부터 경과 시간을 계수할 수도 있다)을 검출(521)함으로써 행해질 수 있다. 스텝 522는 현재 또는 종료 시간의 검출을 포함한다. 예를 들어, 현재 시간이 검출될 수도 있으며, (후술하는 것과 같이) 이것이 개시 시간 이후의 임계 기간을 벗어나면, 이상 거동(그리고, 보존된 추적 데이터를 폐기하지 않는 이유)이 검출될 수도 있다. 처리 활동이 종료하였는지 여부에 무관하게 이것이 행해질 수도 있다. 대안으로서, 처리 활동의 종료 또는 완료시 또는 처리 활동의 소정의 스테이지의 시간이 검출되고, 개시 시간 이후의 기간이 검출된다. 마찬가지로, 이것이 임계 기간을 초과하면, 이상 거동(그리고 보존된 추적 데이터를 폐기하지 않는 이유)이 결과로서 검출될 수도 있다. 스텝 530'에서는, 어느 한 종류의 검출이 활동이 (활동이 완료한 것에 무관하게) 임계 기간보다 길게 걸렸다는 결론을 발생하는 경우에는, 보존된 추적 데이터가 폐기되지 않는다. 그렇지 않고, 활동이 완료하였고 임계 식단보다 덜 걸렸다면, 보존된 추적 데이터가 폐기된다. 이것은, 특정한 처리 활동이 소정의 스테이지에 도달하는 임계 기간보다 특정한 처리 활동의 개시 이후의 기간이 적을 때, 특정한 처리 활동에 관한 기억된 추적 데이터 항목들을 폐기하는 검출회로의 일례를 제공한다.
도 7은 활동이 완료하였는지의 검출에 관한 것이다. 스텝 520"은 스텝 523과 524에 의해 주어진다. 스텝 523에서는, 활동의 시작이 검출된다(도 5에서 추적 데이터가 처리 활동, 즉 개시한 활동에 대해 생성 및 기억되는 것을 고려할 때, 이것이 전체 처리에 내포될 수도 있다). 스텝 524에서 활동 완료가 검출된다. 스텝 530"에서는, 성공적인 완료의 검출은 기억된 추적 데이터가 폐기되어야 한다는 것을 표시하고, 성공적인 완료의 결여는 추적 데이터가 폐기되지 않아야 한다는 것을 표시한다. 이것은, 특정한 처리 활동의 성공적인 완료의 검출에 응답하여 특정한 처리 활동에 관한 기억된 추적 데이터의 항목들을 폐기하는 검출회로의 일례를 제공한다.
도 6의 특정한 에로서, 스텝 521', 522'은 스텝 521, 522를 대체한다. 스텝 521'에서는 프로세서 인터럽트가 개시되는 시간을 검출한다. 스텝 522'에서는, 인터럽트 처리의 완료하기 위한 기간을 검출한다. 임계값보다 긴 완료 시간은 인터럽트의 처리에 관한 추적 데이터가 폐기되지 않아야 한다는 것을 나타낸다.
도 9는 기억된 추적 데이터의 기억 및 폐기를 개략적으로 나타낸 것이다. 도 9의 4개의 처리 스텝 900, …, 930 옆에, 추적 데이터 기억장치의 각각의 개략적인 점유 표시가 주어진다.
도 9에서, 스텝 900, 910은 도 5의 스텝 510의 기능의 적어도 일부에 해당한다. 스텝 900에서, 표시자 또는 기록 포인터(WP)(940)의 현재 상태가 기억되어, 처리 활동의 개시에 응답하여, 표시자의 현재 상태를 기억하도록 구성된 검출회로의 일례를 제공한다. 예를 들면, 기억장치 64를 사용하여 WP 값을 기억할 수 있다. 이때, 전술한 것과 같이, WP는, 버퍼(72)에 관한 바이트 포인터(78)와 메모리(30)에 관한 프레임 포인터의 합성으로 제공될 수 있다. 이것들은 도 9에는 단일 바이트 특유의 포인터(940)로서 도시되고, 기억된 현재 값은 점선 박스(950)에 도시되어 있다.
그후, 스텝 910에서, 데이터 항목 기억 순서(310)로, 초기 WP 위치에서 시작하여, 추적 데이터가 기억된다. 현재 처리 활동에 관한 기억된 추적 데이터를 음영 박스(960)로 개략적으로 나타낸다. 이때, WP는 기억된 추적 데이터(960) 후의 다음 데이터 항목 위치에 있다.
스텝 920은 도 5의 스텝 550에 해당한다. 활동에 대응하는 기억된 추적 데이터를 보유하기(폐기하지 않기) 위해, 기억된 WP 값(950)을 삭제하고 WP는 그 자신의 최근 위치에 유지된다.
스텝 930은 도 5의 스텝 540에 해당한다. 기억된 추적 데이터를 폐기하기 위해, WP(940)이 기억된 WP 값 950으로 오버라이트된다. 이것은, 최근에 기억된 추적 데이터(960)를 여전히 추적 데이터 기억장치에, 다음 기억된 추적 데이터에 의해 오버라이트되도록 WP(940)에 대한 위치에 남길 수 있다. 스텝 930은, 특정한 처리 활동에 관한 추적 데이터 항목이 기억되는 데이터 항목 기억 순서로 첫 번째 기억 위치를 다음의 이용가능한 기억 위치로 표시하도록 표시자를 설정함으로써 특정한 처리 활동에 관한 기억된 추적 데이터 항목 전체를 폐기하도록 구성된 검출회로의 일례를 제공한다. 더욱 구체적으로는, 스텝 930은, 특정한 처리 활동의 개시에 응답하여 기억된 표시자 값을 다음의 이용가능한 기억 위치로서 표시하도록 표시자를 설정함으로써 특정한 처리 활동에 관한 모든 기억된 데이터 추적의 항목들을 폐기하도록 구성된 검출회로의 일례를 제공한다.
또 다른 구성예서는, 특정한 처리 활동에 대해 기억된 모든 추적 데이터가 사실상 폐기되지는 않을 수도 있다. 예를 들면, 추적 데이터는, ("뒤따르는 추적 데이터가 종류 "X"의 인터럽트 처리에 관한 것이라는 것과 같이) 처리 활동의 특성을 표시하는 초기 데이터 항목 또는 헤더와, 기억 순서로 그후에 뒤따르는 이 인터럽트의 처리에 관한 추적 데이터를 포함하는 포맷을 가져도 된다. 추적 데이터가 폐기되는 경우에는, 초기 또는 헤드 부분을 포함하는 모든 추적 데이터를 폐기하는 것이 물론 가능하다. 그러나, 다른 실시예에서는, 초기 또는 헤더 부분을 유지하고 나머지 추적 데이터를 폐기하는 것이 유용할 수 있다. 이것은, 조건 검출의 결과가 표시하였으므로, 대응하는 뒤따르는 추적 데이터를 갖지 않는 초기 또는 헤더 부분의 존재가 후속하는 추적 데이터가 폐기되었다는 것을 암시하거나 표시하기 때문에, 종류 "X"의 인터럽트가 (예를 들어) 성공적으로 및/또는 시기적절하게 처리되었다는 것을 분석기(80)에 표시할 수 있다. 대체로, 이것은 추적 데이터가 유지되었던 "이상" 발생 중에서 성공적인 및/또는 시기적절한 처리된 발생의 수 또는 볼륨을 분석기(80)에 표시하는 것을 제공할 수 있다. 가능한 구현예에 관해, 기억된 값(950)(도 9의 스텝 900)으로서 WP(940)을 기억하는 것이 추적 데이터의 초기 또는 헤더 부분의 기록 후에 발생하도록 구성될 수 있으며, 그후 이것은 도 9의 처리의 나머지 부분이 전술한 것과 같이 진행되도록 허용한다. 이와 달리, 스텝 930에서의 WP의 후기록(writing back)은 사실상 "기억된 WP+1"(또는 더욱 일반적으로는, "기억된 WP+ 헤더 부분의 사이즈")를 후기록할 수도 있다.
도 10 및 도 11은 추적 데이터에 관한 예시적인 원형 버퍼 기술을 개략적으로 나타낸 것이다. 이것들은 상기한 도 4를 참조하여 설명한 원형 버퍼의 변형예이다.
도 10 및 도 11 모두에서, 원형 버퍼가 감싸는 "이전 위치"는 사실상, 이전 처리 활동에 대한 최종 기억된 폐기되지 않은 추적 데이터 항목 다음의 (순서 310으로) 첫 번째 데이터 항목 위치(1030)에 대응하는 위치이다. 따라서, 버퍼는, 처리 활동 추적 데이터의 각각의 폐기되지 않은 세트가 기억 및 유지될 때 사이즈가 효율적으로 감소하는 원형 버퍼이다. 따라서, 이들 실시예에서는, 이전 위치는, 데이터 항목 기억 순서로, 검출회로에 의해 폐기되지 않았던 기억된 추적 데이터의 항목들 다음의 첫 번째 이용가능한 기억 위치이다.
도 10에서, 버퍼가 감싸는 "제한 위치"는 (순서 310으로) 전체 추적 데이터 기억장치 내부의 최종 위치로서 정의되지 않고, 단지 위치 1030으로부터의 제한된 수의 기억 위치들(1040)이 되도록 설정된다. 따라서, 추적 데이터(1010)가 기억되고 재한 수(또는 더 이른 경우에는 버퍼의 끝)에 대응하는 데이터 항목 위치에 도달할 때, 버퍼가 다시 위치 1030으로 감싸진다. 이것은 모든 개별적인 처리 활동에 관한 추적 데이터가 차지하는 버퍼 점유 량을 제한한다. 따라서, 본 실시예에서는, 제한 위치는 단지, 데이터 항목 기억 순서로, 특정한 처리 활동에 관한 추적 데이터의 항목이 기억되는 첫 번째 기억 위치로부터의 제한된 수의 기억 위치이다.
도 11에 도시된 또 다른 구성예서는, 제한 위치가 버퍼의 끝(순서 310으로 최종 기억 위치(330))이다.
전술한 것과 같이, 도 1의 실시예에서는, 처리 소자가 프로그램 명령들을 실행하도록 구성되고, 처리 활동이 프로그램 명령들의 그룹들의 실행과 관련된다. 그러나, 본 발명은 다른 에에 적용가능하며, 도 12 및 도 13은 다른 데이터 처리장치의 개략적인 예를 제공한다. 도 1을 참조하여 이미 설명한 부분은 다시 도시하지 않았다. 도 12 및 도 13의 각각의 구성은 단일의 집적회로 또는 단일 집적회로의 일부로 구현될 수도 있다.
도 12의 실시예에서는, 처리 소자가 논리 연산을 실행하는 논리회로(1200)를 구비하고, ETM이 관련된 메모리(미도시)를 갖는 논리 분석회로(예를 들어 온칩 논리 분석기)(120)로 교체되고, 처리 활동이 한 개 이상의 논리 연산의 실행과 관련된다.
도 13의 실시예에서는, 처리 소자가 소스로부터 목적지(이것들 중에서 한 개는 회로 1300이거나, 두 개 모두가 미도시된 다른 노드일 수도 있다)로 (1320으로 개략적으로 나타낸 데이터 링크를 거쳐) 데이터를 전송하는 통신회로(1300)를 구비하고, 처리 활동은 데이터 전송 동작과 관련된다. ETM은 관련된 메모리를 갖는 추적 발생기(1310)로 교체된다.
도 14는 도 13의 실시예에서의 데이터 전송 동작의 실행에 관한 예시적인 단계를 개략적으로 나타낸 것이다. 스텝 521", 522"은 도 6의 스텝 521, 522를 대체한다. 스텝 521"에서는, 이와 같은 버스 전송의 데이터 전송이 개시된 시간이 검출된다. 스텝 522"에서는, 데이터 전송 처리의 완료하는 기간이 검출된다. 임계 기간보다 긴 완료 시간은 이 인터럽트의 처리에 관한 추적 데이터가 폐기되지 않아야 한다는 것을 나타낸다.
본 발명에서, 단어 "하도록 구성된"은 장치의 구성요소가 정의된 동작을 행할 수 있는 구성을 갖는다는 것을 의미하기 위해 사용된다. 이와 관련하여, "구성"은 하드웨어 또는 소프트웨어의 배치 또는 상호접속 방식을 의미한다. 예를 들어, 장치는 정의된 동작을 제공하는 전용 하드웨어를 갖거나, 프로세서 또는 기타의 처리장치가 기능을 행하도록 프로그래밍되어도 된다."하도록 구성된"은 이 장치의 구성요소가 정의된 동작을 제공하기 위해 어떤 식으로 변경될 필요가 있는 것을 시사하는 것은 아니다.
첨부도면을 참조하여 본 발명의 예시적인 실시예들을 상세히 설명하였지만, 본 발명은 이들 실시예에 한정되지 않으며, 첨부된 청구범위의 보호범위 및 사상을 벗어나지 않으면서 본 발명이 속한 기술분야의 당업자에 의해 다양한 변경, 부가 및 변화가 행해질 수 있다는 것은 자명하다. 예를 들면, 종속항들의 특징들의 다양한 조합이 독립항들의 특징과 행해질 수도 있다.

Claims (20)

  1. 처리 활동을 행하도록 구성된 처리 소자와,
    추적 데이터 기억장치와,
    상기 처리 소자의 처리 활동을 나타내는 추적 데이터의 항목들을 생성하고 추적 데이터의 항목들을 상기 추적 데이터 기억장치에 기억하는 추적회로를 구비하고,
    상기 추적회로는, 추적 데이터의 항목들이 상기 추적 데이터 기억장치에 기억된 특정한 처리 활동의 결과에 관한 조건을 검출하고 상기 검출된 조건에 따라 상기 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들의 적어도 일부를 선택적으로 폐기하는 검출회로를 구비하고,
    상기 검출회로는 특정한 처리 활동의 개시 이후의 기간을 조건으로서 검출하도록 구성되고,
    상기 검출회로는, 특정한 처리 활동의 개시 이후의 기간이 특정한 처리 활동이 소정의 스테이지에 도달하는 임계 기간보다 작을 때, 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들을 폐기하도록 구성된 데이터 처리회로.
  2. 제 1항에 있어서,
    상기 추적 데이터 기억장치는, 데이터 항목 기억의 관련된 순서를 갖고, 데이터 항목 기억 순서에서, 다음의 이용가능한 기억 위치를 표시하는 표시자를 갖는 버퍼이고,
    상기 검출회로는, 특정한 처리 활동에 관한 추적 데이터의 항목이 기억되는 상기 추적 데이터 기억 장치 내부의 기억 위치를 다음의 이용가능한 기억 위치로서 표시하도록 상기 표시자를 설정함으로써 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들을 폐기하도록 구성된 데이터 처리회로.
  3. 제 2항에 있어서,
    상기 검출회로는, 특정한 처리 활동에 관한 추적 데이터의 항목이 기억된 데이터 항목 기억 순서로 첫 번째 기억 위치를 다음의 이용가능한 기억 위치로 표시하도록 상기 표시자를 설정함으로써, 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들 전체를 폐기하도록 구성된 데이터 처리회로.
  4. 제 2항 또는 제 3항에 있어서,
    상기 검출회로는, 처리 활동의 개시에 응답하여, 상기 표시자의 현재 상태를 기억하도록 구성된 데이터 처리회로.
  5. 제 4항에 있어서,
    상기 검출회로는, 특정한 처리 활동의 개시에 응답하여 기억된 표시자 값을 다음의 이용가능한 기억 위치로서 표시하도록 상기 표시자를 설정함으로써, 특정한 처리 활동에 관한 추적 데이터의 모든 기억된 항목들을 폐기하도록 구성된 데이터 처리회로.
  6. 제 2항 또는 제 3항에 있어서,
    상기 추적 데이터 기억장치는, 상기 표시자가 데이터 항목 기억 순서로 제한 위치에 도달할 때, 다음의 이용가능한 기억 위치가 데이터 항목 기억 순서로 이전 위치가 되도록 상기 표시자가 조정되는 원형 버퍼인 데이터 처리회로.
  7. 제 6항에 있어서,
    상기 제한 위치는 상기 추적 데이터 기억장치 내부의 최종 기억 위치인 데이터 처리회로.
  8. 제 6항에 있어서,
    제한 위치는, 데이터 항목 기억 순서로, 특정한 처리 활동에 관한 추적 데이터의 항목이 기억되는 첫 번째 기억 위치로부터, 기억 위치들의 제한된 수인 데이터 처리회로.
  9. 제 6항에 있어서,
    상기 이전 위치는, 데이터 항목 기억 순서로, 상기 검출회로에 의해 폐기되지 않았던 추적 데이터의 기억된 항목들 다음의 첫 번째 이용가능한 기억 위치인 데이터 처리회로.
  10. 삭제
  11. 삭제
  12. 제 1항에 있어서,
    상기 소정의 스테이지는 특정한 처리 활동의 완료인 데이터 처리회로.
  13. 제 1항 내지 제 3항 중 어느 한 항에 있어서,
    상기 검출회로는, 특정한 처리 활동의 성공적인 완료의 검출에 응답하여 특정한 처리 활동에 관한 추적 데이터 기억된 항목들을 폐기하도록 구성된 데이터 처리회로.
  14. 제 1항 내지 제 3항 중 어느 한 항에 있어서,
    상기 처리 소자는 프로그램 명령들을 실행하도록 구성되고,
    처리 활동은 프로그램 명령들의 그룹들의 실행과 관련되는 데이터 처리회로.
  15. 제 1항 내지 제 3항 중 어느 한 항에 있어서,
    상기 처리 소자는 논리 연산을 실행하는 논리회로를 구비하고,
    처리 활동은 한 개 이상의 논리 연산의 실행과 관련되는 데이터 처리회로.
  16. 제 1항 내지 제 3항 중 어느 한 항에 있어서,
    상기 처리 소자는 데이터를 소스로부터 목적지로 전송하는 회로를 구비하고,
    처리 활동은 데이터 전송 동작과 관련되는 데이터 처리회로.
  17. 처리 소자의 처리 활동을 나타내는 추적 데이터의 항목들을 생성하고 추적 데이터의 항목들을 추적 데이터 기억장치에 기억하는 추적회로를 구비하고,
    상기 추적회로는, 추적 데이터의 항목들이 상기 추적 데이터 기억장치에 기억된 특정한 처리 활동의 결과에 관한 조건을 검출하고 검출된 상기 조건에 따라 상기 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들의 적어도 일부를 선택적으로 폐기하는 검출회로를 구비하고,
    상기 검출회로는 특정한 처리 활동의 개시 이후의 기간을 조건으로서 검출하도록 구성되고,
    상기 검출회로는, 특정한 처리 활동의 개시 이후의 기간이 특정한 처리 활동이 소정의 스테이지에 도달하는 임계 기간보다 작을 때, 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들을 폐기하도록 구성된 추적장치.
  18. 처리 활동을 행하는 처리수단과,
    추적 데이터 기억수단과,
    상기 처리수단의 처리 활동을 나타내는 추적 데이터의 항목들을 생성하고 추적 데이터의 항목들을 상기 기억수단에 기억하는 추적수단을 구비하고,
    상기 추적수단은, 추적 데이터의 항목들이 상기 기억수단에 기억된 특정한 처리 활동의 결과에 관한 조건을 검출하고 상기 검출된 조건에 따라 상기 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들의 적어도 일부를 선택적으로 폐기하는 검출수단을 구비하고,
    상기 검출수단은 특정한 처리 활동의 개시 이후의 기간을 조건으로서 검출하도록 구성되고,
    상기 검출수단은, 특정한 처리 활동의 개시 이후의 기간이 특정한 처리 활동이 소정의 스테이지에 도달하는 임계 기간보다 작을 때, 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들을 폐기하도록 구성된 데이터 처리회로.
  19. 처리수단의 처리 활동을 나타내는 추적 데이터의 항목들을 생성하고 추적 데이터의 항목들을 기억수단에 기억하는 추적수단을 구비하고,
    상기 추적수단은, 추적 데이터의 항목들이 상기 기억수단에 기억된 특정한 처리 활동의 결과에 관한 조건을 검출하고 상기 검출된 조건에 따라 상기 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들의 적어도 일부를 선택적으로 폐기하는 검출수단을 구비하고,
    상기 검출수단은 특정한 처리 활동의 개시 이후의 기간을 조건으로서 검출하도록 구성되고,
    상기 검출수단은, 특정한 처리 활동의 개시 이후의 기간이 특정한 처리 활동이 소정의 스테이지에 도달하는 임계 기간보다 작을 때, 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들을 폐기하도록 구성된 추적장치.
  20. 처리 소자의 처리 활동을 나타내는 추적 데이터의 항목들을 생성하는 단계와,
    추적 데이터의 항목들을 추적 데이터 기억장치에 기억하는 단계와,
    추적 데이터의 항목들이 상기 추적 데이터 기억장치에 기억된 특정한 처리 활동의 결과에 관한 조건을 검출하는 단계와,
    검출된 상기 조건에 따라 상기 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들의 적어도 일부를 선택적으로 폐기하는 단계를 포함하고,
    상기 폐기하는 단계는 특정한 처리 활동의 개시 이후의 기간을 조건으로서 검출하고,
    상기 폐기하는 단계는, 특정한 처리 활동의 개시 이후의 기간이 특정한 처리 활동이 소정의 스테이지에 도달하는 임계 기간보다 작을 때, 특정한 처리 활동에 관한 추적 데이터의 기억된 항목들을 폐기하는 방법.
KR1020187029294A 2016-03-18 2017-03-17 처리 활동 추적 KR102346253B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1604606.2A GB2548398B (en) 2016-03-18 2016-03-18 Tracing processing activity
GB1604606.2 2016-03-18
PCT/GB2017/050750 WO2017158377A1 (en) 2016-03-18 2017-03-17 Tracing processing activity

Publications (2)

Publication Number Publication Date
KR20180122409A KR20180122409A (ko) 2018-11-12
KR102346253B1 true KR102346253B1 (ko) 2022-01-03

Family

ID=55968518

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187029294A KR102346253B1 (ko) 2016-03-18 2017-03-17 처리 활동 추적

Country Status (5)

Country Link
US (1) US10909020B2 (ko)
KR (1) KR102346253B1 (ko)
CN (1) CN108885577A (ko)
GB (1) GB2548398B (ko)
WO (1) WO2017158377A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2548398B (en) * 2016-03-18 2019-12-11 Advanced Risc Mach Ltd Tracing processing activity

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012058782A (ja) * 2010-09-03 2012-03-22 Hagiwara Electric Co Ltd コンピュータ装置の異常検査方法及びそれを用いたコンピュータ装置
US20120246518A1 (en) * 2011-03-24 2012-09-27 International Business Machines Corporation Operating a computer system
US20160011922A1 (en) * 2014-07-10 2016-01-14 Fujitsu Limited Information processing apparatus, information processing method, and information processing program

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7058928B2 (en) * 1999-12-23 2006-06-06 Identify Software Ltd. System and method for conditional tracing of computer programs
US7870431B2 (en) * 2002-10-18 2011-01-11 Computer Associates Think, Inc. Transaction tracer
CN100571201C (zh) * 2004-03-11 2009-12-16 松下电器产业株式会社 控制站装置、基站装置、终端装置、分组通信系统以及分组通信方法
CN100484037C (zh) * 2007-03-14 2009-04-29 华为技术有限公司 设备跟踪系统、装置及方法
GB2473850A (en) * 2009-09-25 2011-03-30 St Microelectronics Cache configured to operate in cache or trace modes
US20130132780A1 (en) * 2010-03-26 2013-05-23 Software Diagnostics Technology Gmbh Method for Automatically Detecting and Excluding a Tracing Instruction from Further Trace Data Generation for a Software System, a Computer System, and a Computer Program Product
JP5500272B2 (ja) * 2011-02-09 2014-05-21 富士通株式会社 中継装置、中継履歴記録方法、及びデータ処理装置
US8943369B2 (en) * 2011-02-21 2015-01-27 Texas Instruments Incorporated Prioritizing stall/reason data into priority information stream over PC/data trace
US8776029B2 (en) * 2011-03-23 2014-07-08 Zerodee, Inc. System and method of software execution path identification
JP5756059B2 (ja) * 2012-06-29 2015-07-29 日本電信電話株式会社 通信システム及び異常検出方法
US9069896B2 (en) * 2012-08-29 2015-06-30 Freescale Semiconductor, Inc. Data processor device for handling a watchpoint and method thereof
US20170187587A1 (en) * 2015-12-26 2017-06-29 David Keppel Technologies for inline network traffic performance tracing
GB2548398B (en) * 2016-03-18 2019-12-11 Advanced Risc Mach Ltd Tracing processing activity

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012058782A (ja) * 2010-09-03 2012-03-22 Hagiwara Electric Co Ltd コンピュータ装置の異常検査方法及びそれを用いたコンピュータ装置
US20120246518A1 (en) * 2011-03-24 2012-09-27 International Business Machines Corporation Operating a computer system
US20160011922A1 (en) * 2014-07-10 2016-01-14 Fujitsu Limited Information processing apparatus, information processing method, and information processing program

Also Published As

Publication number Publication date
GB2548398B (en) 2019-12-11
WO2017158377A1 (en) 2017-09-21
GB201604606D0 (en) 2016-05-04
KR20180122409A (ko) 2018-11-12
US20190065335A1 (en) 2019-02-28
US10909020B2 (en) 2021-02-02
GB2548398A (en) 2017-09-20
CN108885577A (zh) 2018-11-23

Similar Documents

Publication Publication Date Title
US8370687B2 (en) Mechanism for storing and extracting trace information using internal memory in micro controllers
US7200776B2 (en) System and method for generating trace data in a computing system
CN102521098B (zh) Cpu死机监控的处理方法和装置
JP4225851B2 (ja) データ処理装置用トレース要素生成システム
EP0465765A2 (en) Instruction sampling instrumentation
US20070220361A1 (en) Method and apparatus for guaranteeing memory bandwidth for trace data
US8099635B2 (en) Techniques for generating a trace stream for a data processing apparatus
US6912673B1 (en) Bus analyzer unit with programmable trace buffers
KR102346253B1 (ko) 처리 활동 추적
US8484517B2 (en) High compression program flow trace
JP2010009296A (ja) ソフトウェア動作監視装置およびソフトウェア動作監視方法
US9361204B2 (en) Generating trace data including a lockup identifier indicating occurrence of a lockup state
CN116126832A (zh) 数据库切换方法、切换装置、电子设备及存储介质
JP2009043061A (ja) デバッグ装置及びデバッグ方法
JP2004185345A (ja) デバッグ方法およびシステム
JP4806577B2 (ja) トレースデータ記録装置
CN112579334B (zh) 基于以太网的面向处理器的信号记录方法及装置
US20050010909A1 (en) Non-intrusive testing method for real-time software
JP4406119B2 (ja) インサーキットエミュレータ
CN108415788B (zh) 用于对无响应处理电路作出响应的数据处理设备和方法
CN117111838A (zh) 读写io监测方法、装置、设备及存储介质
JP2002251299A (ja) プログラムトレース装置
JPH0213334B2 (ko)
JP2002055846A (ja) 障害検出システムおよび障害検出方法
JPH02226452A (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