KR101020011B1 - 데이터 처리 시스템에서 성능 이벤트를 검출하고 기록하기 위한 장치 및 방법 - Google Patents

데이터 처리 시스템에서 성능 이벤트를 검출하고 기록하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR101020011B1
KR101020011B1 KR1020097006336A KR20097006336A KR101020011B1 KR 101020011 B1 KR101020011 B1 KR 101020011B1 KR 1020097006336 A KR1020097006336 A KR 1020097006336A KR 20097006336 A KR20097006336 A KR 20097006336A KR 101020011 B1 KR101020011 B1 KR 101020011B1
Authority
KR
South Korea
Prior art keywords
performance event
performance
data processing
signal
processing system
Prior art date
Application number
KR1020097006336A
Other languages
English (en)
Other versions
KR20090068220A (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 KR20090068220A publication Critical patent/KR20090068220A/ko
Application granted granted Critical
Publication of KR101020011B1 publication Critical patent/KR101020011B1/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
    • 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/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
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring

Landscapes

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

Abstract

데이터 처리 시스템에서 성능 이벤트 검출 및 기록 장치가 개시된다. 데이터 처리 시스템 내의 성능 이벤트 기록 장치는, 상기 데이터 처리 시스템에서 모니터링된 성능 이벤트에 대한 시스템 클럭에 따라 성능 이벤트 레코드를 발생하기 위한 성능 이벤트 레코드 발생 컴포넌트; 상기 성능 이벤트 레코드 발생 컴포넌트에 의해 발생된 성능 이벤트 레코드를 저장하기 위한 성능 이벤트 레코드 저장 컴포넌트를 포함한다. 본 발명의 성능 이벤트 기록 장치는, 성능 이벤트의 기록과 동시에, 성능 분석에 있어서 매우 중요한 정보인 성능 이벤트의 발생 시간을 반영하는 시스템 클럭의 정보를 기록한다.
데이터 처리 시스템, 이벤트 레코드, 성능 이벤트

Description

데이터 처리 시스템에서 성능 이벤트를 검출하고 기록하기 위한 장치 및 방법{DETECTING AND RECORDING PERFORMANCE EVENTS IN A DATA PROCESSING SYSTEM}
본 발명은 데이터 처리 시스템에 관한 것으로, 더 구체적으로는, 데이터 처리 시스템에서 성능 이벤트를 검출하고 기록하기 위한 장치 및 방법에 관한 것이다.
종래 기술의 프로세서 내에서, 프로세서로하여금 데이터 처리 시스템 내에서의 성능 이벤트의 발생을 계수(count)하고 데이터 처리 시스템 내에서의 프로세스들의 실행을 시간조절할 수 있도록 하는 기능이 제공된다. 이와 같은 기능은 프로세서의 성능 모니터링이라 알려져 있으며, 프로세서 내의 성능 모니터링 시스템에 의해 구현된다.
이와 같은 프로세서를 포함하는 데이터 처리 시스템에서, 발생하는 성능 이벤트들 대부분은 프로세서의 성능 모니터링 시스템 내의 하나 이상의 카운터에 의해 계수될 수 있다. 이와 같은 카운터는 복수의 비트 필드를 포함하며, 그 동작은 프로세서 내의 제어 레지스터에 의해 관리된다. 일반적으로, 이와 같은 제어 레지스터 및 카운터 양자 모두는 데이터 처리 시스템 내의 소프트웨어에 의해 판독 및 기록될 수 있다. 따라서, 대응하는 값을 제어 레지스터 내에 기록하는 소프트웨어 를 이용함으로써, 사용자는 데이터 처리 시스템 내에서 모니터링될 성능 이벤트의 유형을 선택하고, 이러한 유형의 성능 이벤트들을 계수하기 위한 카운터에 대한 활성화 조건을 명시할 수 있다.
발명의 명칭이 "Method and system for performance monitoring within a data processing system"인 미국 특허번호 제5,555,748호에는, 도 1에 도시된 개략적 구조의 성능 모니터링 시스템이 공개되어 있다. 도시된 바와 같이, 이 성능 모니터링 시스템은 멀티플렉서(14)와 성능 이벤트 증분기(10)를 포함한다. 멀티플렉서(14)는, 데이터 처리 시스템에서 모니터링될 회로의 다양한 위치들로부터 복수의 성능 이벤트 신호를 라인(16) 상에서 수신하도록 구성되어 있다. 또한, 라인(15) 상의 모드_선택 신호는, 복수의 성능 이벤트 신호들 중 어느 것이 멀티플렉서(14)를 통해 성능 이벤트 증분기(10)에 전송될 것인지를 결정하도록 구성된다. 성능 이벤트 증분기(10)는, 선택된 성능 이벤트 신호에 의해 트리거링될 때, 성능 이벤트 신호에 대응하는 성능 이벤트의 발생을 계수하도록 구성된다. 즉, 성능 이벤트 신호는, 성능 이벤트 증분기(10)가 성능 이벤트 신호에 대응하는 성능 이벤트의 발생을 계수할 수 있도록, 제어 라인(20) 상에서 멀티플렉서(14)를 통해 전송된다.
특히, 성능 이벤트 증분기(10)에서, 멀티플렉서(12)는, 라인(18) 상의 레지스터(11)의 값과, 라인(17) 상의 증분기 논리(13)에 의해 증분된 값을 입력으로서 수신한다. 따라서, 라인(20) 상의 선택된 성능 이벤트 신호가 하이(논리 "1")일 때, 멀티플렉서(12)는 라인(17) 상의 신호를 레지스터(11)에 전송한다. 이 시점에서, 라인(17) 상의 입력은, 증분기 논리(13)을 통해 1만큼 증분된 레지스터(11)의 출력의 값과 같다. 따라서, 라인(19) 상의 레지스터(11)의 최종 출력은 성능 증분기(10)의 최종 계수값을 나타낸다. 이 값은 데이터 처리 시스템에서 모니터링된 성능 이벤트의 총 발생수와 같다.
요약하면, 도 1에 도시된 성능 모니터링 시스템에서, 지정된 시간 슬라이스 동안에, 모니터링된 성능 이벤트 신호에 의해 오직 성능 이벤트 계수 증분만이 트리거링되고, 따라서, 데이터 처리 시스템 내의 성능 분석 툴에 의한 시스템의 행동 분석에서의 사용을 위해 성능 이벤트의 통계적 데이터만이 제공된다. 그러나, 성능 분석 툴이 멀티쓰레드 애플리케이션에 대한 성능 분석 및 디버깅을 수행하는 시나리오에서, 예를 들어, 각각의 시간-관련 성능 이벤트의 타임스탬프도 역시 매우 중요한 정보이다. 따라서, 특정한 시간 슬라이스 내에서 특정한 성능 이벤트를 추적하기 위해, 성능 이벤트들 그 자체뿐만 아니라, 성능 이벤트들의 타임스탬프도 역시 이벤트 분석시에 성능 분석 툴에 의해 사용되기 위해 기록되어야 한다. 또한, 대부분의 데이터 처리 시스템에서, 이벤트 분석을 위해 의도된 기간 내에서 일반적으로 수천개의 이벤트들이 발생한다. 그리고, 만일 도 1에 도시된 바와 같은 성능 모니터링 시스템이 이용된다면, 모든 이벤트들을 추적하기 위해서는 충분한 이벤트 카운터들이 필요할 것이며, 이것은 명백히 가능할 것 같지 않다.
또한, 발명의 명칭이 "Performance adder for tracking occurrence of events within a circuit"인 미국 특허번호 제6,775,640호에는, 성능 모니터링 시스템이 공개되어 있다. 이 시스템은, 모니터링될 회로에서 다양한 유형의 성능 이벤트 신호를 추적하기 위한 신호 검출 논리 회로를 포함한다. 도 2는 이와 같은 신호 검출 논리 회로의 개략적 구조를 도시한다. 도시된 바와 같이, 신호 검출 논리 회로(50)는, 아토믹 논리 블럭(45), 에지 논리 블럭(46) 및 토글 또는 온/오프 논리 블럭(47)과 같은 이벤트 유형 논리 블럭들을 포함한다. 예를 들어, 라인(51) 상의 신호 0는 아토믹 신호 검출을 위한 아토믹 논리(45)에, 에지 신호 검출을 위한 에지 논리 블럭(46)에, 및 토글 또는 온/오프 검출을 위한 토글 또는 온/오프 논리 블럭(47)에 전송된다. 그 다음, 아토믹 논리, 에지 논리, 및 토글 또는 온/오프 논리 각각에 의해 발생된 성능 이벤트 신호는 멀티플렉서(43)에 전송된다. 멀티플렉서(43)는, 멀티플렉서(37)에 전송될 성능 이벤트 신호의 유형(아토믹, 에지 또는 토글)을 선택하기 위한 라인(44) 상의 유형_선택 신호에 의해 제어된다. 그 다음, 이 멀티플렉서는, 도시되지 않은 다음 단에서, 선택된 성능 이벤트 신호를 성능 이벤트 증분기(10)에 선택적으로 전송할 수 있다.
만일 모니터링될 회로 내의 각각의 신호 라인에 대해, 도 2에 도시된 바와 같은 신호 검출 논리 회로가 채용된다면, 멀티플렉서를 제어하기 위한 이와 같은 특정한 신호 검출 논리 및 유형 선택 레지스터가 제공될 필요가 있을 것이다. 그러나, 이들 신호 검출 논리 회로들 중에서, 멀티플렉서(37)에 의해 선택된 신호 라인에 대한 신호 검출 논리 회로만이 동시에 동작하기 때문에, 막대한 자원 낭비를 초래한다. 나아가, 신호 검출 논리 회로는, 프로세서의 상태를 나타내는 비트와 같은, 연관된 복수 비트 신호를 더 이상 추적할 수가 없어서, 복수 비트 신호의 조합에 의해 발생된 성능 이벤트의 검출은 실현될 수 없다.
종래 기술에서의 상기 문제점에 비추어, 본 발명은 전술된 하나 이상의 문제점을 해결하는, 데이터 처리 시스템에서 성능 이벤트를 검출 및 기록하기 위한 장치 및 방법을 제공하는 것을 그 목적으로 한다.
본 발명의 한 양태에 따르면, 데이터 처리 시스템에는 성능 이벤트 기록 장치가 제공된다. 이 장치는, 상기 데이터 처리 시스템에서 모니터링된 성능 이벤트에 대한 시스템 클럭에 따라 성능 이벤트 레코드를 발생하기 위한 성능 이벤트 레코드 발생 컴포넌트; 상기 성능 이벤트 레코드 발생 컴포넌트에 의해 발생된 성능 이벤트 레코드를 저장하기 위한 성능 이벤트 레코드 저장 컴포넌트를 포함하는, 데이터 처리 시스템이 제공된다. 이 장치는, 복수의 성능 이벤트 레코드 발생 컴포넌트가 그들의 발생된 성능 이벤트 레코드를 성능 이벤트 레코드 저장 컴포넌트에 동시에 저장할 때 저장 충돌을 중재하기 위한 충돌 중재 컴포넌트를 더 포함한다. 이로써, 이들 성능 이벤트 발생 컴포넌트의 성능 이벤트 레코드의 저장 순서를 결정할 수 있다.
본 발명의 또 다른 양태에 따르면, 데이터 처리 시스템에는 성능 이벤트 검출 장치가 제공된다. 이 장치는, 데이터 처리 시스템에서 검출될 신호 라인을 선택하기 위한 신호 라인 선택 컴포넌트; 및 상기 선택된 신호 라인 상의 성능 이벤트를 검출하고, 성능 이벤트의 검출시에 데이터 처리 시스템 내의 성능 이벤트 기록 장치에 통보하기 위해 대응하는 성능 이벤트 신호를 활성화하기 위한 성능 이벤트 검출 컴포넌트를 포함한다.
본 발명의 또 다른 양태에 따르면, 데이터 처리 시스템에는 복수 비트의 성능 신호 조합 장치가 제공된다. 이 장치는, 그 구성가능한 값을 통해 복수 비트 성능 신호 내의 성능 이벤트의 검출에 대해 유효한 성능 신호 비트를 결정하기 위한 마스크 레지스터; 그 구성가능한 값을 통해 복수 비트 성능 신호에 대한 조합 모드를 결정하기 위한 모드 레지스터; 마스크 레지스터의 값과 복수 비트 성능 신호의 값에 관한 논리 AND 연산을 수행하고, 마스크 레지스터의 값과 모드 레지스터의 값에 관해 논리 AND 연산을 수행하기 위한 논리 AND 컴포넌트; 및 마스크 레지스터의 값과 복수 비트 성능 신호의 값의 논리 AND의 결과와, 마스크 레지스터의 값과 모드 레지스터의 값의 논리 AND의 결과를 비교하여 이들이 같은지를 판정하고, 그 비교 결과에 기초하여 대응하는 단일 비트 신호를 출력하기 위한 비교 논리 컴포넌트를 포함한다.
본 발명의 또 다른 양태에 따르면, 데이터 처리 시스템에는 성능 이벤트 모니터링 시스템이 제공된다. 이 모니터링 시스템은, 모니터링될 선택된 신호 라인 상에서 성능 이벤트를 검출하고, 성능 이벤트 기록 장치에게 통보하기 위해 성능 이벤트의 발생시에 대응하는 성능 이벤트 신호를 활성화하기 위한 데이터 처리 시스템 내의 성능 이벤트 검출 장치; 및 상기 성능 이벤트 검출 장치에 의해 검출된 성능 이벤트에 대한 성능 이벤트 레코드를 발생하기 위한 데이터 처리 시스템 내의 성능 이벤트 기록 장치를 포함한다.
본 발명의 또 다른 양태에 따르면, 데이터 처리 시스템에는 성능 이벤트 기록 방법이 제공된다. 이 방법은, 데이터 처리 시스템에서 모니터링되는 성능 이벤트에 대한 시스템 클럭에 따라 성능 이벤트 레코드를 발생하는 단계와; 발생된 성능 이벤트 레코드를 저장하는 단계를 포함한다.
본 발명의 또 다른 양태에 따르면, 데이터 처리 시스템에는 성능 이벤트 검출 방법이 제공된다. 이 방법은, 데이터 처리 시스템에서 검출될 신호 라인을 선택하는 단계와; 선택된 신호 라인 상에서 성능 이벤트들을 검출하는 단계와; 성능 이벤트를 기록하기 위해 성능 이벤트의 검출시에 대응하는 성능 이벤트 신호를 활성화하는 단계를 포함한다.
본 발명의 또 다른 실시예에 따르면, 데이터 처리 시스템에서의 복수 비트 성능 신호 조합 방법이 제공된다. 이 방법은, 그 구성가능한 값을 통해 복수 비트 성능 신호 내의 성능 이벤트의 검출에 대해 유효한 성능 신호 비트와, 복수 비트 성능 신호에 대한 조합 모드를 결정하기 위한 마스크를 구성하는 단계; 마스크 값과 복수 비트 성능 신호의 값에 관한 논리 AND 연산을 수행하는 단계; 마스크 값과 모드 값에 관해 논리 AND 연산을 수행하는 단계; 및 마스크 값과 복수 비트 성능 신호의 값의 논리 AND의 결과와, 마스크 값과 모드 값의 논리 AND의 결과를 비교하여 이들 결과가 동일한지의 여부를 판정하고, 그 비교 결과에 기초하여 대응하는 단일 비트 신호를 출력하는 단계를 포함한다.
본 발명의 또 다른 양태에 따르면, 데이터 처리 시스템에는 성능 이벤트 모니터링 방법이 제공된다. 이 방법은, 데이터 처리 시스템에서 상기 성능 이벤트 검출 방법을 이용함으로써 모니터링될 선택될 신호 라인 상에서 성능 이벤트를 검출하는 단계; 성능 이벤트의 발생의 검출시에 대응하는 성능 이벤트 신호를 활성화하는 단계; 및 데이터 처리 시스템에서 상기 성능 이벤트 기록 방법을 이용함으로써 검출된 성능 이벤트에 대해 성능 이벤트 레코드를 발생하는 단계를 포함한다.
본 발명의 실시예들이 첨부된 도면들을 참조하여 예로서 기술될 것이다.
도 1은 데이터 처리 시스템에서 종래 기술의 성능 모니터링 시스템의 개략적 블럭도이다.
도 2는 데이터 처리 시스템에서 종래 기술의 신호 검출 논리 회로의 개략적 블럭도이다.
도 3은 본 발명의 실시예에 따른 데이터 처리 시스템에서 성능 이벤트 모니터링 시스템의 개략적 블럭도이다.
도 4는 본 발명의 실시예에 따른 데이터 처리 시스템에서 성능 이벤트 검출 장치의 개략적 블럭도이다.
도 5는 본 발명의 실시예에 따른 데이터 처리 시스템에서 복수 비트 성능 신호 조합의 개략적 블럭도이다.
도 6은 본 발명의 실시예에 따른 데이터 처리 시스템에서 성능 이벤트 기록 장치의 개략적 블럭도이다.
도 7은 본 발명의 또 다른 실시예에 따른 데이터 처리 시스템에서 성능 이벤트 기록 장치의 개략적 블럭도이다.
도 8은 본 발명의 또 다른 실시예에 따른 데이터 처리 시스템에서 성능 이벤트 모니터링 방법의 흐름도이다
도 9는 본 발명의 또 다른 실시예에 따른 데이터 처리 시스템에서 복수 비트 성능 신호 조합 방법의 흐름도이다.
도 10은 본 발명의 또 다른 실시예에 따른 데이터 처리 시스템에서 성능 이벤트 검출 방법의 흐름도이다.
도 11은 본 발명의 또 다른 실시예에 따른 데이터 처리 시스템에서 성능 이벤트 기록 방법의 흐름도이다.
도 12는 본 발명의 또 다른 실시예에 따른 데이터 처리 시스템에서 성능 이벤트 기록 방법의 흐름도이다.
먼저, 본 발명의 데이터 처리 시스템 내의 성능 이벤트 모니터링 시스템 및 그 다양한 컴포넌트들이 상세히 기술될 것이다.
도 3은 본 발명의 실시예에 따른 데이터 처리 시스템 내의 성능 이벤트 모니터링 시스템의 개략적 블럭도이다. 도 3에 도시된 바와 같이, 본 실시예의 데이터 처리 시스템 내의 성능 이벤트 모니터링 시스템은 적어도 성능 이벤트 검출 장치(31) 및 성능 이벤트 기록 장치(32)를 포함한다.
성능 이벤트 검출 장치(31)는 데이터 처리 시스템 내에서 모니터링될 회로 내의 다양한 유형의 성능 이벤트들을 추적하고, 이를 성능 이벤트 기록 장치(32)에 통보하도록 구성된다. 성능 이벤트 검출 장치(31)는 도 4에 도시된 구조를 가질 수 있으며, 그 세부 사항은 이하에서 더 상세히 기술될 것이다.
성능 이벤트 기록 장치(32)는 데이터 처리 시스템 내에서 모니터링되는 성능 이벤트들을 기록하도록 구성된다. 이 성능 이벤트 기록 장치(32)는 도 6 또는 도 7에 도시된 구조를 가질 것이다. 도 6 또는 도 7에 도시된 구조를 갖는 성능 이벤트 기록 장치(32)는 모니터링될 상이한 데이터 처리 시스템 또는 회로에 따라 이용되도록 대응적으로 선택될 수 있다. 성능 이벤트 기록 장치의 세부 사항은 이하에서 더 상세히 기술될 것이다.
추가적으로, 도 3에 도시된 바와 같이, 실시예의 성능 이벤트 모니터링 시스템(30)은 복수 비트 성능 신호 조합 장치(33)를 선택사항으로서 포함한다. 복수 비트 성능 신호 조합 장치(33)는, 데이터 처리 시스템 내에서 모니터링될 회로의 복수 비트 성능 신호를 결합하여 단일 비트 성능 신호화하도록 구성된다. 모니터링될 회로 내의 복수 비트 성능 신호는 서로 연관되어 하나의 성능 이벤트를 나타낼 수 있을 때, 복수 비트 성능 신호 조합 장치(33)는 이들을 결합하여 단일 비트 성능 신호화하는데 이용될 수 있다. 그 다음, 이 단일 비트 성능 신호는 성능 이벤트의 검출을 위해 성능 이벤트 검출 장치(31)에 전송된다. 복수 비트 성능 신호 조합 장치(33)는 도 5에 도시된 바와 같은 구조를 가지며, 그 세부 구조는 이하에서 상세히 기술될 것이다.
또한, 도 3에 도시된 바와 같이, 실시예의 성능 이벤트 모니터링 시스템(30)에 의해 발생된 성능 이벤트 레코드는, 데이터 처리 시스템의 성능 분석시에 시스템 내의 성능 분석 애플리케이션에 의해 사용되기 위해 성능 이벤트 로그 데이터베이스(34)에 저장된다.
또한, 도 4에 도시된 성능 이벤트 검출 장치가 채용될 때, 본 실시예의 성능 이벤트 모니터링 시스템의 성능 이벤트 기록 장치는, 성능 이벤트 기록을 구현할 수 있는 임의의 공지된 구조를 갖는 장치일 수도 있다.
유사하게, 도 6 또는 도 7에 도시된 성능 이벤트 기록 장치가 채용될 때, 본 실시예의 성능 이벤트 모니터링 시스템의 성능 이벤트 검출 장치는, 성능 이벤트의 검출을 구현할 수 있는 임의의 공지된 구조를 갖는 장치일 수도 있다.
또한, 설명의 간결성을 위해, 도 3에 도시된 바와 같은 본 실시예의 성능 이벤트 모니터링 시스템(30)은, 하나의 성능 이벤트 검출 장치(31), 하나의 성능 이벤트 기록 장치(32), 및 하나의 다중 비트 성능 신호 조합 장치(33)만을 포함하지만, 그러나, 실제적 구현에 있어서, 데이터 처리 시스템 내의 회로는 매우 복잡하기 때문에, 성능 이벤트를 모니터링하기 위한 타임 슬라이스 내에는 수천개의 성능 이벤트가 발생할 수 있고, 이와 같이 많은 성능 이벤트들의 모니터링을 달성하기 위해, 일반적으로 복수의 이와 같은 성능 이벤트 검출 장치, 성능 이벤트 기록 장치, 복수 비트 성능 신호 조합 장치가 필요할 것이다.
이하에서, 도 3의 성능 이벤트 모니터링 시스템 내의 성능 이벤트 검출 장치(31)는 도 4와 연계하여 상세히 기술될 것이다.
도 4는 본 발명의 실시예에 따른 데이터 처리 시스템 내의 성능 이벤트 검출 장치의 개략적 블럭도이다. 도시된 바와 같이, 본 실시예의 성능 이벤트 검출 장치(31)는, 신호 라인 선택 컴포넌트(310), 및 성능 신호 검출 검포넌트(311)를 포함한다.
신호 라인 선택 컴포넌트(310)는, 성능 신호 검출 컴포넌트(311)가 성능 이벤트를 검출하기 위하여 데이터 처리 시스템 내에서 모니터링될 신호 라인을 선택 하도록 구성된다.
특히, 도 4에 도시된 바와 같이, 신호 라인 선택 컴포넌트(310)는 모드 선택 레지스터(3101) 및 멀티플렉서(3102)를 더 포함한다.
여기서, 모드 선택 레지스터(3101)는, 모니터링될 회로로부터의 복수의 신호 라인들 중 어떤 것이 멀티플렉서(3102)를 통해 성능 신호 검출 컴포넌트(311)에 전송될 것인지를 그 구성가능한 값을 통해 결정하도록 구성된다. 모드 선택 레지스터(3101)는 데이터 처리 시스템 내의 소프트웨어에 의해 판독 및 기록될 수 있다는 사실에 주목해야 한다.
멀티플렉서(3102)는, 모드 선택 레지스터(3101)의 구성에 따라 모니터링될 회로로부터의 복수의 신호 라인들 중 대응하는 한 라인을, 성능 이벤트에 대해 모니터링되는 라인으로서 선택한다.
본 실시예의 신호 라인 선택 컴포넌트(310)는 전술된 구조만으로 제한되지 않고, 오히려, 복수의 접속된 라인들로부터 한 라인의 선택을 구현할 수 있는 임의의 구조라면 적절할 것이다. 예를 들어, 대응하는 논리 스위치 회로가 신호 라인의 선택을 구현하기 위해 사용될 수도 있다. 즉, 각각의 신호 라인은 논리 스위치 회로에 각각 접속될 수 있으며, 모니터링 동안에 대응하는 논리 스위치 회로는 모니터링될 신호 라인의 선택을 구현하기 위해 사용될 수 있다.
그 다음, 성능 신호 검출 컴포넌트(311)는 신호 라인 선택 컴포넌트(310)에 의해 선택된 신호 라인 상의 신호들을 검출하도록 구성되고, 성능 이벤트의 검출시, 데이터 처리 시스템 내의 성능 이벤트 기록 장치에게 통보하기 위해 대응하는 성능 이벤트 신호를 활성화한다.
특히, 도 4에 도시된 바와 같이, 성능 신호 검출 컴포넌트(311)는, 아토믹 논리 컴포넌트(3111), 에지 논리 컴포넌트(3112), 토글 또는 온/오프 컴포넌트(3113), 유형 선택 레지스터(3114), 및 멀티플렉서(3115)를 더 포함한다.
여기서, 아토믹 논리 컴포넌트(3111)는 신호 라인 선택 컴포넌트(310)에 의해 선택된 신호 라인 상에서 아토믹 신호 검출을 수행하도록 구성되며, 여기서, 아토믹 신호 검출은 각각의 싸이클에서 선택된 신호의 하이(논리 "1")를 검출하고, 선택된 신호의 하이가 검출되면, 아토믹 성능 이벤트가 발생했다고 판정하는 것이다. 이로써, 아토믹 성능 이벤트의 발생을 나타내는 아토믹 성능 이벤트 신호에 대한 신호 검출 논리를 활성화한다.
에지 논리 컴포넌트(3112)는 신호 라인 선택 컴포넌트(310)에 의해 선택된 신호 라인 상의 에지 신호 검출을 수행하도록 구성된다. 여기서, 에지 신호 검출은 선택된 신호의 상승 에지 및 하강 에지를 검출하고, 이와 같은 상승 에지 및 하강 에지가 검출될 때, 에지 성능 이벤트가 발생했다고 판정하는 것이다. 이로써, 에지 성능 이벤트의 발생을 나타내는 에지 성능 이벤트 신호에 대한 신호 검출 논리를 활성화한다.
토글 또는 온/오프 논리 컴포넌트(3113)는, 신호 라인 선택 컴포넌트(310)에 의해 선택된 신호 라인 상의 신호 검출에 대한 토글 또는 온/오프를 수행하도록 구성된다. 여기서, 토글 또는 온/오프 신호 검출은, 선택된 신호의 토글 또는 온/오프를 검출하고, 이와 같은 토글 또는 온/오프가 검출될 때, 토글 또는 온/오프 성 능 이벤트가 발생했다고 판정하는 것이다. 이로써, 토글 또는 온/오프 성능 이벤트의 발생을 나타내는 토글 또는 온/오프 성능 이벤트 신호에 대한 신호 검출 논리를 활성화한다.
유형 선택 레지스터(3114)는 어떤 유형의 성능 이벤트 신호를 선택할 것인지를 그 구성가능한 값을 통해 결정하는 것이다. 즉, 아토믹 논리 컴포넌트(3111), 에지 논리 컴포넌트(3112), 및 토글 또는 온/오프 논리 컴포넌트(3113) 중 어느 것에 의해 발생된 성능 이벤트 신호가 멀티플렉서(3115)를 통해 데이터 처리 시스템 내의 성능 이벤트 기록 장치에 전송될 것인지를 결정하는 것이다. 유형 선택 레지스터(3114)는 데이터 처리 시스템 내의 소프트웨어에 의해 판독 및 기록될 수 있다는 것에 주목해야 한다.
멀티플렉서(3115)는, 아토믹 논리 컴포넌트(3111), 에지 논리 컴포넌트(3112), 및 토글 또는 온/오프 논리 컴포넌트(3113)에 의해 발생된 성능 이벤트 신호를, 유형 선택 레지스터(3114)의 구성에 따라 선택하고, 이를 데이터 처리 시스템 내의 성능 이벤트 기록 장치에 통보하도록 구성된다.
현 실시예에서, 아토믹 논리 컴포넌트(3111), 에지 논리 컴포넌트(3112), 및 토글 또는 온/오프 논리 컴포넌트(3113)는 신호에 대한 대응하는 신호 검출(아토믹, 에지, 토글 또는 온/오프)을 구현할 수 있는 공지된 구조를 이용할 수 있다.
전술된 내용은 본 실시예의 데이터 처리 시스템 내의 성능 이벤트 검출 장치의 설명이다. 전술된 바와 같이, 본 실시예의 성능 이벤트 검출 장치(31)는 먼저, 검출될 신호 라인을 선택하기 위해 신호 라인 선택 컴포넌트(310)를 이용한다. 그 다음, 대응하는 성능 이벤트 신호를 발생하기 위해 검출될 선택된 신호 라인 상에서 특정한 유형의 신호 검출을 수행하기 위해 성능 신호 검출 컴포넌트(311)를 이용한다.
현재의 실시예에서, 신호 라인을 선택하기 위해 복수의 신호 라인에 대하여 단일 신호 라인 선택 컴포넌트를 제공함으로써, 그리고, 선택된 신호 라인 상에서 성능 이벤트를 검출하기 위해 성능 신호 검출 컴포넌트를 제공함으로써, 필요한 성능 신호 검출 컴포넌트의 갯수는, 성능 이벤트를 검출하기 위해 각각의 신호 라인에 대하여 각각 성능 신호 검출 컴포넌트가 제공되고, 성능 이벤트가 기록될 신호 라인을 선택하기 위해 복수의 신호 라인들에 대하여 하나의 신호 라인 선택 컴포넌트가 제공되는 종래 기술에 비하여 극적으로 저감됨으로써, 시스템 자원의 막대한 낭비를 피하고 설계 비용을 낮춘다.
또한, 본 발명의 성능 신호 검출 컴포넌트(311)는 전술된 구조만으로 제한되는 것은 아니다. 대신에, 선택된 신호 라인에 대한 다양한 유형의 성능 이벤트의 검출을 구현할 수 있는 임의의 구조라면 적절할 것이다.
그 다음, 도 3에 도시된 성능 이벤트 모니터링 시스템에서 복수 비트 성능 신호 조합 장치(33)가 도 5와 조합하여 상세히 기술될 것이다.
도 5는 본 발명의 실시예에 따른 데이터 처리 시스템 내의 복수 비트 성능 신호 조합 장치의 개략도이다. 도시된 바와 같이, 본 실시예의 복수 비트 성능 신호 조합 장치(33)는 적어도 마스크 레지스터(331), 모드 레지스터(332), 논리 AND 컴포넌트(333), 논리 AND 컴포넌트(334), 및 논리 비교 컴포넌트(335)를 포함한다.
여기서, 마스크 레지스터(331)는, 모니터링될 회로로부터의 복수 비트 성능 신호 내의 어떤 비트 신호가 성능 이벤트의 검출을 위한 유효 비트로서 사용될 것인지를 결정하도록 구성된다. 마스크 레지스터(331) 내의 구성된 값은 복수 비트 성능 신호가 모니터링될 검출 요건에 기초하여 프리셋되며, 데이터 처리 시스템 내의 소프트웨어에 의해 판독 및 기록될 수 있다.
모드 레지스터(312)는 모니터링될 복수 비트 성능 신호에 대한 조합 모드를 결정하도록 구성된다. 그 구성된 값은, 모니터링될 복수 비트 성능 신호에 대한 검출 요건에 기초하여 프리셋되며, 데이터 처리 시스템 내의 소프트웨어에 의해 판독 및 기록될 수 있다.
논리 AND 컴포넌트(333)는, 모니터링될 회로로부터의 복수 비트 성능 신호와, 마스크 레지스터(331)의 콘텐츠에 대해 논리 AND 연산을 수행하도록 구성된다.
논리 AND 컴포넌트(334)는, 마스크 레지스터(331)의 내용 및 모드 레지스터(332)의 콘텐츠에 관해 논리 AND 연산을 수행하도록 구성된다.
논리 비교 컴포넌트(335)는, 논리 AND 컴포넌트(333) 및 논리 AND 컴포넌트(334)의 출력 값들이 동일한지의 여부를 판정하도록 구성된다. 특히, 논리 비교 컴포넌트(335)는 논리 AND 컴포넌트(333) 및 논리 AND 컴포넌트(334)의 출력 값들을 비교하고, 그 비교 결과에 따라 대응하는 단일 비트 신호를 출력한다. 예를 들어, 논리 AND 컴포넌트(333) 및 논리 AND 컴포넌트(334)의 출력 값들이 동일할 때, 논리 비교 컴포넌트(335)는 논리 "하이" 신호를 출력하고, 그렇지 않다면, 논리 "로우" 신호를 출력한다. 또한, 논리 비교 컴포넌트(335)의 출력 신호는, 성능 이 벤트를 모니터링하기 위한 성능 신호로서 전술된 성능 이벤트 검출 장치에 입력될 수 있다.
전술된 내용에서, 본 실시예의 데이터 처리 시스템에서 복수 비트 성능 신호 조합 장치가 기술되었다. 본 실시예의 복수 비트 성능 신호 조합 장치는, 소정의 특정 성능 신호에 대한 특별한 처리를 수행하며, 복수의 신호 라인들이 서로 연관되고 함께 성능 이벤트를 반영할 수 있는 시나리오에 대해 적절하다. 데이터 처리 시스템의 일부 회로에서, 많은 경우 복수의 신호 라인들은 서로 연관되고, 전체로서 결합될 때에만 이들이 성능 이벤트를 진정으로 반영할 수 있다. 예를 들어, 프로세서의 상태 레지스터로부터의 복수 신호 라인의 경우, 조합된 복수 신호 라인의 변화만이 프로세서의 상태의 변경을 반영할 수 있다. 그러나, 종래 기술의 성능 이벤트 검출 장치 및 성능 이벤트 기록 장치는 단일 신호 라인의 처리만 구현할 수 있고, 그에 따라, 그들의 처리 방법은 복수 비트 모니터링된 신호가 서로 연관된 경우에 그렇게 적절하지 않을 것이다. 따라서, 복수 비트 성능 신호 조합 장치를 이용하면, 복수 비트 성능 신호가 먼저 처리되고 결합되어 단일 비트 신호화된다. 그 다음, 이 신호는 성능 이벤트의 검출을 위해 성능 이벤트 검출 장치에 전달된다. 따라서, 더 나은 성능 이벤트 검출 결과가 달성될 수 있다.
본 실시예의 복수 비트 성능 신호 조합 장치(33)는 전술된 구조만으로 제한되는 것은 아니며, 복수 비트 신호 라인 상의 신호들을 결합하여 단일 비트 신호화할 수 있는 임의의 구조라면 적용가능하다는 점에 주목해야 한다. 예를 들어, 이 구조는 단 하나의 논리 AND 컴포넌트만을 채택할 수도 있다. 즉, 예를 들어, 마스 크 레지스터(331)와 복수 비트 성능 신호의 입력 사이에 논리 AND 컴포넌트(333)를 유지하고 마스크 레지스터(331)와 모드 레지스터(332) 사이의 논리 AND 컴포넌트(334)를 삭제하는 것이다. 이 경우, 성능 이벤트 검출 장치(31)에 의해 전송된 활성화된 성능 이벤트 신호는, 모드 선택 레지스터(3101)와 유형 선택 레지스터(3114)의 제어하에 발생된 반면, 2개의 레지스터는 데이터 처리 시스템 내의 소프트웨어에 의해 판독 및 기록될 수 있다. 따라서, 성능 이벤트 검출 장치(31)의 모드 선택 레지스터(3101) 및 유형 선택 레지스터(3114)가 소프트웨어에 의해 특정한 값으로 이미 구성되었을 때, 성능 이벤트 검출 장치(31)와 연관된 성능 이벤트 레코드 기록기(321)의 식별자를 통하여, 성능 이벤트 신호의 유형 뿐만 아니라, 모니터링될 회로의 복수 신호 라인들 중 어느 라인으로부터 성능 이벤트 신호가 나왔는지를 판정할 수 있다. 따라서, 성능 이벤트 레코드 내의 성능 이벤트 레코드 기록기의 식별자는 성능 이벤트의 소스와 유형을 가리킬 수 있다.
성능 이벤트 레코드 기록 큐(322)는 성능 이벤트 레코드 기록기(321)에 의해 발생된 성능 이벤트 레코드들을 버퍼링하고, 그 큐 내의 성능 이벤트 레코드를 성능 이벤트 레코드 저장 컴포넌트(324)에 기록할 것을 요청하도록 구성된다.
충돌 중재 컴포넌트(323)는, 복수의 성능 이벤트 기록 큐(322)들이 성능 이벤트 레코드 저장 컴포넌트(324) 내에 성능 이벤트를 기록할 것을 동시에 요구할 때 기록 충돌을 중재하고, 성능 이벤트들 내의 어떤 성능 이벤트 레코드가 기록되는 것이 허용되는지를 결정하도록 구성된다. 전술된 바와 같이, 데이터 처리 시스템에서, 일반적으로 복수의 성능 이벤트 레코드 기록기(321) 및 성능 이벤트 레코 드 기록 큐들이 제공될 필요가 있다. 따라서, 다양한 성능 이벤트 레코드 기록 큐들 사이의 잠재적 저장 충돌을 해결하기 위하여 충돌 중재 컴포넌트(323)가 필요하다.
성능 이벤트 레코드 저장 컴포넌트(324)는, 충돌 중재 컴포넌트(323)에 의해 허용되고 성능 이벤트 레코드 기록 큐에 의해 기록요청된 성능 이벤트 레코드를 저장한다. 현재의 실시예에서, 성능 이벤트 레코드 저장 컴포넌트(324)는, 프로세서의 캐쉬 또는 메모리의 일부일 수 있는 FIFO(선입 선출) 버퍼에 의해 구현된다. 물론, 특정한 상황에 따라 기타의 스토리지를 이용하여 다른 방식으로 구현될 수도 있다.
성능 이벤트 레코드 판독기(325)는 데이터 처리 시스템에서의 성능 분석의 필요성에 따라 성능 이벤트 레코드 저장 컴포넌트(324)로부터 성능 이벤트 레코드를 판독하도록 구성된다.
전술된 내용에서, 현 실시예의 데이터 처리 시스템 내의 성능 이벤트 기록 장치(32)가 기술되었다. 현 실시예에서, 데이터 처리 시스템 내의 성능 분석 애플리케이션이 성능 이벤트 레코드에 기초하여 시스템 성능 분석을 수행하도록 사용될 때, 성능 이벤트 레코드 기록기의 식별자는 사용자가 성능 이벤트 레코드에 대응하는 모니터링된 회로를 편리하게 찾아낼 수 있도록 한다. 그리고, 성능 이벤트 레코드 내의 시스템 클럭 정보는, 성능 분석을 위한 매우 중요한 정보인 모니터링된 회로 내의 성능 이벤트의 발생 시간을 정확하게 반영한다. 본 실시예의 성능 이벤트 레코드는, 시스템의 성능 로그로서 사용될 때, 성능 이벤트들을 광범위하고 정 확하게 반영할 수 있다. 따라서, 시스템의 성능 분석을 용이하게 한다.
현 실시예의 성능 이벤트 기록 장치(32)는 전술된 구조만으로 제한되는 것은 아니며, 시스템 클럭에 기초하여 성능 이벤트의 기록을 구현할 수 있는 임의의 구조라면 적절할 것이다. 예를 들어, 다른 실시예에서, 성능 이벤트 기록 큐들은 배제될 수도 있다.
도 7은 본 발명의 또 다른 실시예에 따른 데이터 처리 시스템 내의 성능 이벤트 기록 장치의 개략적 블럭도이다. 도시된 바와 같이, 본 실시예의 성능 이벤트 기록 장치(32)는 비트 마스크 레지스터(326), 성능 이벤트 레코드 기록기(321), 성능 이벤트 레코드 저장 컴포넌트(324), 및 성능 이벤트 레코드 판독기(325)를 포함한다.
여기서, 비트 마스크 레지스터(326)는 데이터 처리 시스템 내에서 모니터링되는 성능 이벤트의 발생 여부를 기록하도록 구성된다. 여기서, 비트 마스크 레지스터(326) 내의 각각의 비트는 데이터 처리 시스템 내의 성능 이벤트 검출 장치에의해 모니터링되는 성능 이벤트 신호들 중 하나에 대응하며, 이 라인 상의 성능 이벤트 신호가 활성화될 때, 대응하는 비트가 하이 레벨로 설정되어 이 라인의 성능 이벤트 신호에 대응하는 성능 이벤트의 발생을 반영한다. 그리고, 비트 마스크 레지스터(326) 내의 성능 이벤트 신호(321)의 하나 이상의 비트들에 대응하는 하나 이상의 성능 이벤트 신호들이 활성화될 때, 성능 이벤트 레코드 기록기(321)가 활성화되어 비트 마스크 레지스터(326)의 현재 상태에 따라 성능 이벤트 레코드를 발생하도록 활성화된다.
성능 이벤트 레코드 기록기(321)는, 활성화시에, 현재 구성(성능 이벤트 검출 장치에서의 모드 선택 등)과 시스템 클럭에 기초하여 비트 마스크 레지스터(326) 내의 현재 상태에 따라 성능 이벤트를 발생하고, 그 성능 이벤트를 성능 이벤트 레코드 저장 컴포넌트(324)에 저장하도록 구성된다. 여기서, 성능 이벤트 레코드는 비트 마스크 레지스터(326)의 현재 내용(현재 값)과 현재 시스템 클럭을 포함한다. 비트 마스크 레지스터(326)의 각각의 비트에 대응하는 성능 이벤트 신호는 특정적이기 때문에, 비트 마스크 레지스터(326)의 값에 기초하여 직접 발생되는 성능 이벤트 레코드는, 기록시에 어떤 성능 이벤트가 발생했는지, 및 어떤 성능 이벤트가 발생하지 않았는지를 직관적으로 가리킨다.
성능 이벤트 레코드 저장 컴포넌트(324)는 성능 이벤트 레코드 기록기(321)에 의해 발생된 성능 이벤트 레코드를 저장하도록 구성된다. 현 실시예에서, 성능 이벤트 레코드 저장 컴포넌트(324)는, 프로세서의 캐쉬 또는 메모리의 일부일 있는 FIFO 버퍼에 의해 구현될 수 있다. 물론, 이것은 다른 스토리지를 이용하여 다른 방식으로 구현될 수도 있다.
성능 이벤트 레코드 판독기(325)는, 데이터 처리 시스템에서 성능 분석의 필요성에 따라 성능 이벤트 레코드 저장 컴포넌트(324) 내의 지정된 성능 이벤트 레코드를 판독하도록 구성된다.
전술된 내용에서, 현 실시예의 데이터 처리 시스템 내의 성능 이벤트 기록 장치가 기술되었다. 현 실시예의 성능 이벤트 기록 장치는 이전 실시예의 성능 이벤트 기록 장치의 모든 잇점을 가진다. 또한, 도 6에 도시된 성능 이벤트 기록 장 치와 비교해 볼 때, 현 실시예의 성능 이벤트 기록 장치는, 동시에 기록될 성능 이벤트의 갯수가 작은 경우에 더 적절한 반면, 도 6의 성능 이벤트 기록 장치는 많은 갯수의 성능 이벤트가 검출될 필요성이 있는 경우에 적절하다.
동일한 발명적 개념하에서, 본 발명의 데이터 처리 시스템 내의 성능 이벤트 모니터링 방법이 도면과 연계하여 상세히 기술될 것이다.
도 8은 본 발명의 데이터 처리 시스템 내의 성능 이벤트 모니터링 방법의 흐름도이다. 도시된 바와 같이, 먼저 선택사항적 단계(805)에서, 다중 비트 신호들이 결합되어 단일 비트 신호화된다. 이 단계는 필수적인 단계가 아니라, 복수의 신호 라인들이 연관되고 함께 단일 성능 이벤트를 반영할 수 있는 경우에만 수행되며, 기타의 경우에는 필요하지 않다는 점에 주목해야 한다.
단계(810)에서, 성능 이벤트의 발생을 추적하기 위해 모니터링되는 신호 라인들 상에서 성능 이벤트 검출이 수행된다.
단계(815)에서, 검출된 성능 이벤트가 기록된다.
이하에서, 도 8의 단계(805)의 복수 비트 성능 신호를 결합하기 위한 방법이 도 9와 연계하여 상세히 기술될 것이다.
도 9는 본 발명의 실시예에 따른 데이터 처리 시스템 내의 복수 비트 성능 신호를 결합하기 위한 방법의 흐름도이다. 도시된 바와 같이, 먼저 단계(905)에서, 연관된 복수 비트 성능 신호에 대한 검출 요건에 따라, 복수 비트 성능 신호 내의 유효 신호 비트들을 결정하기 위한 마스크와, 복수 비트 성능 신호에 대한 조합 모드가 설정된다.
그 다음, 단계(910)에서, 복수 비트 성능 신호의 값과 마스크 값에 관하여 논리 AND 연산이 수행되어 논리 AND 결과 VAL1을 얻는다.
단계(915)에서, 마스크 값과 모드 값에 관하여 논리 AND 연산이 수행되어 논리 AND 결과 VAL2를 얻는다.
단계(920)에서, 논리 AND 결과 VAL1과 논리 AND 결과 VAL2가 동일한지의 여부가 결정된다. 만일 이들이 동일하다면, 단계(925)에서 "하이"가 출력된다. 그렇지 않다면, 단계(930)에서 "로우"가 출력된다. 또한, 그 출력 결과는 검출될 신호로서 이하에서 설명되는 성능 이벤트 검출 방법에 제공된다.
전술된 내용에서, 현 실시예의 데이터 처리 시스템 내에서 복수 성능 신호 조합 방법이 기술되었다. 복수 비트 성능 신호 조합 방법은, 복수의 신호 라인이 연관되고 함께 성능 이벤트를 반영할 수 있는 상황에 적절하다. 본 발명은, 본 발명의 목적이 달성될 수 있다는 가정하에, 단계들의 실행 순서의 관점에서 특별한 제약을 갖지 않는다는 점에 주목해야 한다.
그 다음, 도 8의 단계(810) 내의 성능 이벤트 검출 방법은 도 10과 연계하여 상세히 기술될 것이다.
도 10은 본 발명의 실시예에 따른 데이터 처리 시스템에서 성능 이벤트 검출 방법의 흐름도이다. 도시된 바와 같이, 먼저 단계(1005)에서, 데이터 처리 시스템에서 모니터링될 신호 라인이 선택된다.
단계(1010)에서, 선택된 신호 라인에 대한 신호 검출 유형이 설정된다.
단계(1015)에서, 설정된 유형의 신호 검출이 선택된 신호 라인 상에서 수행 된다. 특히, 현 실시예에서, 신호 검출의 이하의 3개 유형, 아토믹 신호 검출, 에지 신호 검출, 및 토글 또는 온/오프 신호 검출이 구현된다. 이들 3개 유형의 신호 검출은 이미 상세히 전술되었으며, 여기서는 반복하지 않을 것이다.
단계(1020)에서, 검출된 성능 이벤트에 기초하여 대응하는 성능 신호가 활성화된다.
전술된 내용에서, 현 실시예의 데이터 처리 시스템에서의 성능 이벤트 검출 방법이 기술되었다. 현 실시예에서, 먼저 검출될 신호 라인이 선택되고, 대응하는 성능 이벤트 신호를 발생하기 위하여, 지정된 유형의 신호 검출이, 검출될 선택된 신호 라인 상에서 수행된다. 다양한 신호 라인들 상에서 먼저 성능 이벤트 검출이 수행되고, 그 다음, 성능 이벤트 검출이 기록될 신호 라인이 선택되는 종래 기술에 비하여, 필요한 시스템 자원 및 처리 시간이 극적으로 저감되고, 그에 따라, 시스템 자원의 막대한 낭비를 피하며, 설계 비용을 낮추게 된다.
그 다음, 도 8의 성능 이벤트 기록 방법이 도 11 및 도 12와 연계하여 상세히 기술될 것이다.
도 11은 본 발명 현 실시예에 따른 데이터 처리 방법에서의 성능 이벤트 기록 방법의 흐름도이다. 도시된 바와 같이, 먼저 단계(1105)에서, 데이터 처리 시스템에서 활성화된 성능 이벤트 신호가 수신되고, 동시에, 현재 시스템 클럭이 획득된다.
단계(1101)에서, 현재의 시스템 클럭, 성능 이벤트의 모든 유형에 관한 정보를 포함한 성능 이벤트 레코드, 및 성능 이벤트가 발생하는 시스템 클럭에 기초하 여, 수신된 성능 이벤트 신호에 대한 성능 이벤트 레코드가 발생된다.
단계(1115)에서, 발생된 성능 이벤트 레코드를 저장할 것이 요청된다.
단계(1120)에서, 성능 이벤트 레코드의 저장 동작을 수행하는데 있어서 충돌이 있을 것이다. 데이터 처리 시스템에서, 모니터링될 라인들의 갯수가 대단히 크고, 때때로 복수의 성능 이벤트들이 동시에 검출될 수 있으며, 따라서, 복수의 성능 이벤트 레코드들이 발생된다. 따라서, 저장을 위해 하나의 저장 컴포넌트가 이용되는 경우에, 복수의 성능 이벤트 레코드들의 저장 충돌이 불가피하게 발생될 수 있을 것이다.
단계(1125)에서, 충돌이 해결된다.
단계(1130)에서, 발생된 성능 이벤트 레코드가 저장된다.
도 12는 본 발명의 또 다른 실시예에 따른 데이터 처리 시스템에서의 성능 이벤트 기록 방법의 흐름도이다. 도 12에 도시된 바와 같이, 먼저 단계(1205)에서, 데이터 처리 시스템에서 모니터링될 성능 이벤트 신호들 각각은 각각 비트 마스크 레지스터 내의 한 비트에 대응하도록 만들어진다.
단계(1210)에서, 데이터 처리 시스템에서 모니터링될 성능 이벤트 신호들 내의 활성화된 성능 이벤트 신호가 수신된다.
단계(1215)에서, 성능 이벤트의 기록을 활성화하기 위하여, 활성화된 성능 이벤트 신호에 대응하는 비트 마스크 레지스터 내의 비트가 하이로 설정된다.
단계(1220)에서, 현재의 시스템 클럭이 획득되고, 비트 마스크 레지스터의 현재 콘텐츠에 기초하여 성능 이벤트 레코드가 발생된다. 여기서, 성능 이벤트 레 코드는 비트 마스크 레지스터의 현재 값과 현재 시스템 클럭을 포함한다.
단계(1225)에서, 발생된 성능 이벤트 레코드를 저장하기 위한 요청이 이루어진다.
단계(1230)에서, 발생된 성능 이벤트 레코드가 저장된다.
전술된 내용에서, 현 실시예의 데이터 처리 시스템에서의 성능 이벤트 기록 방법이 기술되었다. 현 실시예에서, 성능 이벤트 레코드에 기초하여 시스템 성능 분석을 수행하기 위해 데이터 처리 시스템 내의 성능 분석 애플리케이션을 이용할 때, 사용자는 성능 이벤트 레코드에 대응하는 모니터링되는 회로를 용이하게 찾아낼 수 있고, 성능 이벤트 레코드 내의 시스템 클럭 정보는, 성능 분석을 위한 매우 중요한 정보인, 모니터링되는 회로 내의 성능 이벤트의 발생 시간을 정확하게 반영한다. 시스템의 성능 로그(log)로서 현 실시예의 성능 이벤트 레코드를 이용할 때, 성능 이벤트는 광범위하고 정확하게 기록될 수 있고, 그에 따라, 시스템의 성능 분석을 용이하게 한다.
전술된 내용에서, 데이터 처리 시스템에서의 성능 이벤트 모니터링 시스템 및 방법, 성능 이벤트 기록 장치 및 방법, 성능 이벤트 검출 장치 및 방법, 및 본 발명의 데이터 처리 시스템에서의 복수 비트 성능 신호 조합 장치 및 방법이 몇가지 실시예를 통해 상세히 기술되었지만, 이들 실시예들은 본 발명을 남김없이 철저히 다 드러낸 것은 아니고, 본 발명의 사상 및 범위 내에서 당업자에 의해 다양한 변경 및 수정이 이루어질 수 있다. 따라서, 본 발명은 이들 실시예만으로 제한되는 것은 아니고, 본 발명의 범위는 첨부된 특허청구범위에 의해서만 제한된다.

Claims (10)

  1. 데이터 처리 시스템 내의 성능 이벤트 기록 장치에 있어서,
    상기 데이터 처리 시스템에서 모니터링된 성능 이벤트에 대한 시스템 클럭에 따라 성능 이벤트 레코드를 발생시키기 위한 복수의 성능 이벤트 레코드 발생 컴포넌트;
    상기 데이터 처리 시스템에서 모니터링될 성능 이벤트가 발생되었는지의 여부를 기록하기 위한 비트 마스크 레지스터;
    상기 성능 이벤트 레코드 발생 컴포넌트에 의해 발생된 성능 이벤트 레코드를 저장하기 위한 성능 이벤트 레코드 저장 컴포넌트; 및
    상기 성능 이벤트 레코드 발생 컴포넌트의 성능 이벤트 레코드의 저장 순서를 결정하기 위하여, 상기 복수의 성능 이벤트 레코드 발생 컴포넌트가 상기 복수의 성능 이벤트 레코드 발생 컴포넌트의 발생된 성능 이벤트 레코드를 성능 이벤트 레코드 저장 컴포넌트에 동시에 저장할 때 저장 충돌을 중재하기 위한 충돌 중재 컴포넌트
    를 포함하는 데이터 처리 시스템 내의 성능 이벤트 기록 장치.
  2. 제1항에 있어서, 상기 성능 이벤트 레코드 발생 컴포넌트는,
    상기 데이터 처리 시스템에서의 성능 이벤트의 발생을 나타내는 활성화된 성능 이벤트 신호에 대한 시스템 클럭에 기초하여 성능 이벤트 레코드를 발생시키고, 상기 성능 이벤트 레코드를 상기 성능 이벤트 레코드 저장 컴포넌트에 기록하기 위한 성능 이벤트 레코드 기록기를 더 포함하는 것인 데이터 처리 시스템 내의 성능 이벤트 기록 장치.
  3. 제1항에 있어서,
    상기 성능 이벤트 레코드 저장 컴포넌트로부터 지정된 성능 이벤트 레코드를 판독하기 위한 성능 이벤트 레코드 판독기를 더 포함하는 데이터 처리 시스템 내의 성능 이벤트 기록 장치.
  4. 제1항에 있어서,
    상기 데이터 처리 시스템에서 검출될 신호 라인을 선택하기 위한 신호 라인 선택 컴포넌트; 및
    상기 선택된 신호 라인 상의 성능 이벤트를 검출하고, 상기 데이터 처리 시스템 내의 성능 이벤트 기록 장치에 통보하기 위해 성능 이벤트의 검출시에 대응하는 성능 이벤트 신호를 활성화하기 위한 성능 이벤트 검출 컴포넌트
    를 포함하는 데이터 처리 시스템 내의 성능 이벤트 기록 장치.
  5. 제4항에 있어서, 상기 신호 라인 선택 컴포넌트는,
    복수의 신호 라인들 중 검출될 신호 라인을 그 구성가능한 값을 통해 결정하기 위한 모드 선택 레지스터; 및
    상기 모드 선택 레지스터의 구성에 따라 대응하는 하나의 신호라인을, 검출될 신호 라인으로서, 상기 복수의 신호 라인들로부터 선택하기 위한 멀티플렉서
    를 더 포함하는 것인 데이터 처리 시스템 내의 성능 이벤트 기록 장치.
  6. 삭제
  7. 데이터 처리 시스템에서의 성능 이벤트를 기록하기 위한 방법에 있어서,
    상기 데이터 처리 시스템에서 모니터링된 성능 이벤트에 대한 시스템 클럭에 기초하여 성능 이벤트 레코드를 발생시키는 단계;
    상기 발생된 성능 이벤트 레코드를 저장하는 단계;
    비트 마스크 레지스터를 이용하여 상기 데이터 처리 시스템에서 모니터링될 성능 이벤트가 발생되었는지의 여부를 기록하는 단계; 및
    상기 성능 이벤트 레코드들의 저장 순서를 결정하기 위하여, 상기 성능 이벤트 레코드를 발생시키는 단계에서 복수의 성능 이벤트 레코드들이 동시에 발생될 때 저장 충돌을 중재하는 단계
    를 포함하는 데이터 처리 시스템에서의 성능 이벤트를 기록하기 위한 방법.
  8. 제7항에 있어서,
    상기 데이터 처리 시스템에서 모니터링될 신호 라인을 선택하는 단계; 및
    상기 선택된 신호 라인 상에서의 성능 이벤트들을 검출하고, 성능 이벤트의 검출시에 상기 성능 이벤트를 기록하기 위하여 대응하는 성능 이벤트 신호를 활성화하는 단계
    를 포함하는 데이터 처리 시스템에서의 성능 이벤트를 기록하기 위한 방법.
  9. 제8항에 있어서, 상기 성능 이벤트들을 검출하는 단계는,
    대응하는 성능 이벤트 신호를 발생시키기 위해 상기 선택된 신호 라인 상에서 아토믹(atomic) 신호 검출을 수행하는 단계;
    대응하는 성능 이벤트 신호를 발생시키기 위해 상기 선택된 신호 라인 상에서 에지(edge) 신호 검출을 수행하는 단계;
    대응하는 성능 이벤트 신호를 발생시키시 위해 상기 선택된 신호 라인 상에서 토글(toggle) 또는 온/오프(on/off) 신호 검출을 수행하는 단계; 및
    성능 이벤트를 기록하기 위해, 아토믹 신호 검출, 에지 신호 검출, 및 토글 또는 온/오프 신호 검출의 단계들 중 한 단계에서 발생된 상기 성능 이벤트 신호를 선택하는 단계를 더 포함하는 데이터 처리 시스템에서의 성능 이벤트를 기록하기 위한 방법.
  10. 삭제
KR1020097006336A 2006-09-27 2007-09-17 데이터 처리 시스템에서 성능 이벤트를 검출하고 기록하기 위한 장치 및 방법 KR101020011B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN200610139391.0 2006-09-27
CN2006101393910A CN101155172B (zh) 2006-09-27 2006-09-27 数据处理系统中的性能事件的检测和记录装置以及方法

Publications (2)

Publication Number Publication Date
KR20090068220A KR20090068220A (ko) 2009-06-25
KR101020011B1 true KR101020011B1 (ko) 2011-03-09

Family

ID=38780780

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097006336A KR101020011B1 (ko) 2006-09-27 2007-09-17 데이터 처리 시스템에서 성능 이벤트를 검출하고 기록하기 위한 장치 및 방법

Country Status (5)

Country Link
US (1) US8521475B2 (ko)
EP (1) EP2080098A1 (ko)
KR (1) KR101020011B1 (ko)
CN (1) CN101155172B (ko)
WO (1) WO2008037616A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120179847A1 (en) * 2011-01-12 2012-07-12 Standard Microsystems Corporation Method and System for Implementing Bus Operations with Precise Timing
US8887168B2 (en) * 2011-07-14 2014-11-11 Advanced Micro Devices, Inc. Method and apparatus for monitoring and sharing performance resources of a processor
US9753655B2 (en) * 2014-12-30 2017-09-05 Samsung Electronics Co., Ltd. Computing system with write buffer including speculative storage write and method of operation thereof
US10365027B2 (en) 2016-02-29 2019-07-30 Thermo King Corporation Simplified and energy efficient multi temperature unit
CN111045906A (zh) * 2019-11-21 2020-04-21 中国航空工业集团公司西安航空计算技术研究所 一种基于有限状态机的统一架构gpu性能采样与存储方法
TWI809448B (zh) * 2021-07-13 2023-07-21 光寶科技股份有限公司 事件記錄器及其方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6460107B1 (en) * 1999-04-29 2002-10-01 Intel Corporation Integrated real-time performance monitoring facility
US20060021457A1 (en) * 2004-07-30 2006-02-02 Xerox Corporation Gear modification that enables direct off-center engagement

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5617575A (en) * 1991-03-19 1997-04-01 Hitachi, Ltd. Interprocessor priority control system for multivector processor
US5388233A (en) * 1993-04-30 1995-02-07 Intel Corporation Method and apparatus for counting instruction types using bit masks and a programmable bit map
US6021457A (en) * 1995-09-28 2000-02-01 Intel Corporation Method and an apparatus for minimizing perturbation while monitoring parallel applications
US5991708A (en) * 1997-07-07 1999-11-23 International Business Machines Corporation Performance monitor and method for performance monitoring within a data processing system
US6341357B1 (en) * 1997-10-08 2002-01-22 Sun Microsystems, Inc. Apparatus and method for processor performance monitoring
US6467052B1 (en) * 1999-06-03 2002-10-15 Microsoft Corporation Method and apparatus for analyzing performance of data processing system
US6546359B1 (en) 2000-04-24 2003-04-08 Sun Microsystems, Inc. Method and apparatus for multiplexing hardware performance indicators
US6775640B1 (en) * 2000-04-28 2004-08-10 Hewlett-Packard Development Company, L.P. Performance adder for tracking occurrence of events within a circuit
US6718403B2 (en) * 2000-12-11 2004-04-06 International Business Machines Corporation Hierarchical selection of direct and indirect counting events in a performance monitor unit
US7092360B2 (en) * 2001-12-28 2006-08-15 Tropic Networks Inc. Monitor, system and method for monitoring performance of a scheduler
US7752016B2 (en) * 2005-01-11 2010-07-06 Hewlett-Packard Development Company, L.P. System and method for data analysis
US7500138B2 (en) * 2006-05-17 2009-03-03 International Business Machines Corporation Simplified event selection for a performance monitor unit
JP4836811B2 (ja) * 2007-01-26 2011-12-14 株式会社東芝 パフォーマンスモニタ装置および情報処理装置
US7984273B2 (en) * 2007-12-31 2011-07-19 Intel Corporation System and method for using a mask register to track progress of gathering elements from memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6460107B1 (en) * 1999-04-29 2002-10-01 Intel Corporation Integrated real-time performance monitoring facility
US20060021457A1 (en) * 2004-07-30 2006-02-02 Xerox Corporation Gear modification that enables direct off-center engagement

Also Published As

Publication number Publication date
US20100191508A1 (en) 2010-07-29
KR20090068220A (ko) 2009-06-25
CN101155172A (zh) 2008-04-02
WO2008037616A1 (en) 2008-04-03
EP2080098A1 (en) 2009-07-22
CN101155172B (zh) 2013-01-23
US8521475B2 (en) 2013-08-27

Similar Documents

Publication Publication Date Title
US7200776B2 (en) System and method for generating trace data in a computing system
KR101020011B1 (ko) 데이터 처리 시스템에서 성능 이벤트를 검출하고 기록하기 위한 장치 및 방법
US5970439A (en) Performance monitoring in a data processing system
US7603589B2 (en) Method and system for debugging a software program
US5608866A (en) System for measuring and analyzing operation of information processor
EP0897152B1 (en) Performance counters controlled by programmable logic
KR100390610B1 (ko) 추론적인 프로세서에서 비-추론적인 이벤트들을카운트하기 위한 방법, 및 시스템
US5675729A (en) Method and apparatus for performing on-chip measurement on a component
US6539341B1 (en) Method and apparatus for log information management and reporting
US5727167A (en) Thresholding support in performance monitoring
US7480833B2 (en) Method and system for performing a hardware trace
EP3436950B1 (en) Performance analysis using performance counters and trace logic
JP2006166445A (ja) ハード・インテレクチャル・プロパティ・ブロックのための出力レポーティング技術
JP2004199685A (ja) 繰返し命令の追跡許可
KR20080048543A (ko) 스레드 통신 및 동기화 기법
US7617428B2 (en) Circuits and associated methods for improved debug and test of an application integrated circuit
JP6041749B2 (ja) トレース収集回路及びトレース収集方法
US7809928B1 (en) Generating event signals for performance register control using non-operative instructions
US20090265582A1 (en) Data processing system and method of debugging
US8020139B1 (en) Method and apparatus for implementing a dataflow circuit model using application-specific memory implementations
JP6473023B2 (ja) 性能評価モジュール及びこれを組み込んだ半導体集積回路
JP2005165825A (ja) トレース情報記録装置
CN110955546B (zh) 一种内存地址监控方法、装置及电子设备
JPWO2009099045A1 (ja) トレース・障害観測システム、トレース・障害観測方法及びトレース・障害観測プログラム
JP2022501700A (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
LAPS Lapse due to unpaid annual fee