KR20210065930A - 데이터 처리 시스템에서 이벤트를 감시하는 장치 및 방법 - Google Patents

데이터 처리 시스템에서 이벤트를 감시하는 장치 및 방법 Download PDF

Info

Publication number
KR20210065930A
KR20210065930A KR1020217005139A KR20217005139A KR20210065930A KR 20210065930 A KR20210065930 A KR 20210065930A KR 1020217005139 A KR1020217005139 A KR 1020217005139A KR 20217005139 A KR20217005139 A KR 20217005139A KR 20210065930 A KR20210065930 A KR 20210065930A
Authority
KR
South Korea
Prior art keywords
event
signal
history
occurrence
circuit
Prior art date
Application number
KR1020217005139A
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 에이알엠 리미티드
Publication of KR20210065930A publication Critical patent/KR20210065930A/ko

Links

Images

Classifications

    • 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
    • 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/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/3409Recording 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 for performance 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/3452Performance evaluation by statistical analysis
    • 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/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Debugging And Monitoring (AREA)

Abstract

데이터 처리 시스템의 이벤트를 감시하는 장치 및 방법이 제공된다. 장치는, 데이터 처리 시스템 내부의 제1 이벤트의 발생을 감시하고, m이 1 이상의 정수일 때, 제1 이벤트의 모든 m번째 발생을 표시하기 위해 제1 신호를 어서트하는 제1 이벤트 모니터링 회로를 갖는다. 더구나, 제2 이벤트 모니터링 회로를 사용하여, 데이터 처리 시스템 내부의 제2 이벤트의 발생을 감시하고, n이 1 이상의 정수일 때, 제2 이벤트의 모든 n번째 발생을 표시하기 위해 제2 신호를 어서트한다. 그후, 이력 유지회로는 어서트된 제1 및 제2 신호들에 따라 갱신되는 이벤트 이력 정보를 유지한다. 더구나, 이력 분석회로는, 이벤트 이력 정보를 분석하는 분석 트리거에 응답하여, 제1 이벤트의 발생과 제2 이벤트의 발생 사이의 비율이 허용되는 범위를 벗어난 것으로 이벤트 이력 정보가 표시할 때 보고 상태를 검출한다. 그후, 이력 분석회로는 보고 상태의 검출에 응답하여 보고 신호를 어서트한다. 이것은 데이터 처리 시스템 내부의 이벤트들의 비율을 감시하는 매우 효율적이고 효과적인 메카니즘을 제공한다.

Description

데이터 처리 시스템에서 이벤트를 감시하는 장치 및 방법
본 발명은 데이터 처리 시스템에서 이벤트를 감시하는 장치 및 방법에 관한 것이다.
데이터 처리 시스템의 처리 성능을 나타내는 성능 모니터링 데이터를 발생하는 성능 모니터링 회로를 데이터 처리 시스템에 설치하는 것이 알려져 있다. 예를 들어, 성능 모니터링 회로는, 명령의 실행이나 캐시 부적중 등과 같이, 데이터 처리 시스템 내에서 발생하는 이벤트의 발생을 계수한다. 카운터가 지정된 값에 도달할 때 인터럽트가 발생하므로, 다수의 캐시 부적중 등의 성능 문제가 발생하면, 처리 시스템이 기동하여 성능 모니터링 데이터에 근거한 지정된 동작, 예를 들어, 성능 모니터링 데이터에 의해 식별된 성능 문제를 해소하는 동작을 행한다.
성능 모니터링 회로는 복수의 이벤트에 대해 별개의 이벤트 계수값들을 유지한다. 어떤 경우에는, 데이터 처리 시스템 내부의 성능을 감시할 때 이벤트들의 비율을 효율적이면서 신뢰할 수 있게 감시할 수 있는 것이 바람직할 것이다.
일 실시예에서는, 데이터 처리 시스템 내부의 제1 이벤트의 발생을 감시하고, m이 1 이상의 정수일 때, 제1 이벤트의 모든 m번째 발생을 표시하기 위해 제1 신호를 어서트(assert)하는 제1 이벤트 모니터링 회로와, 데이터 처리 시스템 내부의 제2 이벤트의 발생을 감시하고, n이 1 이상의 정수일 때, 제2 이벤트의 모든 n번째 발생을 표시하기 위해 제2 신호를 어서트하는 제2 이벤트 모니터링 회로와, 어서트된 제1 및 제2 신호들에 따라 갱신되는 이벤트 이력 정보를 유지하는 이력 유지회로와, 이벤트 이력 정보를 분석하는 분석 트리거에 응답하여, 제1 이벤트의 발생과 제2 이벤트의 발생 사이의 비율이 허용되는 범위를 벗어난 것으로 이벤트 이력 정보가 표시할 때 보고 상태를 검출하는 이력 분석회로를 구비하고, 이력 분석회로는 보고 상태의 검출에 응답하여 보고 신호를 어서트하는 장치가 제공된다.
또 다른 실시예에서는, 데이터 처리 시스템 내부의 이벤트들을 감시하는 방법으로서, 데이터 처리 시스템 내부의 제1 이벤트의 발생을 감시하고, m이 1 이상의 정수일 때, 제1 이벤트의 모든 m번째 발생을 표시하기 위해 제1 신호를 어서트하는 단계와, 데이터 처리 시스템 내부의 제2 이벤트의 발생을 감시하고, n이 1 이상의 정수일 때, 제2 이벤트의 모든 n번째 발생을 표시하기 위해 제2 신호를 어서트하는 단계와, 이력 유지회로를 사용하여, 어서트된 제1 및 제2 신호들에 따라 갱신되는 이벤트 이력 정보를 유지하는 단계와, 분석 트리거에 응답하여, 이벤트 이력 정보를 분석하는 이력 분석회로를 사용함으로써, 제1 이벤트의 발생과 제2 이벤트의 발생 사이의 비율이 허용되는 범위를 벗어난 것으로 이벤트 이력 정보가 표시할 때 보고 상태를 검출하는 단계와, 보고 상태의 검출에 응답하여 보고 신호를 어서트하는 단계를 포함하는 감시방법이 제공된다.
또 다른 실시예에서는, 데이터 처리 시스템 내부의 제1 이벤트의 발생을 감시하고, m이 1 이상의 정수일 때, 제1 이벤트의 모든 m번째 발생을 표시하기 위해 제1 신호를 어서트하는 제1 이벤트 모니터링 수단과, 데이터 처리 시스템 내부의 제2 이벤트의 발생을 감시하고, n이 1 이상의 정수일 때, 제2 이벤트의 모든 n번째 발생을 표시하기 위해 제2 신호를 어서트하는 제2 이벤트 모니터링 수단과, 어서트된 제1 및 제2 신호들에 따라 갱신되는 이벤트 이력 정보를 유지하는 이력 유지수단과, 분석 트리거에 응답하여, 이벤트 이력 정보를 분석함으로써, 제1 이벤트의 발생과 제2 이벤트의 발생 사이의 비율이 허용되는 범위를 벗어난 것으로 이벤트 이력 정보가 표시할 때 보고 상태를 검출하는 이력 분석수단을 구비하고, 이력 분석수단은 보고 상태의 검출에 응답하여 보고 신호를 어서트하는 장치가 제공된다.
이하, 다음의 첨부도면에 도시된 실시예를 참조하여 본 발명을 더욱 상세히 설명한다.
도 1은 성능 모니터링 회로를 갖는 데이터 처리 시스템을 개략적으로 나타낸 것이다.
도 2는 일 실시예에 따라 도 1의 성능 관리 유닛부 내부에 설치된 구성요소들을 나타낸 블록도이다.
도 3 및 도 4는 특정한 일 구현예에 따라도 2의 성능 관리부 내부에 설치된 구성요소들을 나타낸 것이다.
도 5는 일 구현예에 따른 도 2의 이벤트 모니터링 회로의 동작을 나타낸 흐름도이다.
도 6은 일 구현예에 따른 이력 관리회로의 동작을 나타낸 흐름도이다.
도 7은 일 구현예에 따른 이력 분석회로의 동작을 나타낸 흐름도이다.
도 8은 일 구현예에 따른 웜업(warmup) 자격 부여회로의 동작을 나타낸 흐름도이다.
도 9는 일 구현예에 따른 예외신호 발생회로의 동작을 나타낸 흐름도이다.
도 10은 테이블 결합 동작을 나타낸 것이다.
도 11은, 일 구현예에서, 본 발명에서 설명한 성능 모니터링 기술을 사용하여, 도 10의 테이블 결합 동작을 행하는데 사용되는 다양한 알고리즘들 사이에서 전환할 것인지 여부를 판정하는 방법을 나타낸 흐름도이다.
전술한 것과 같이, 어떤 경우에는, 데이터 처리 시스템 내부의 성능을 감시할 때 이벤트들의 비율을 효율적이고 신뢰할 수 있게 감시할 수 있는 것이 바람직할 것이다. US 2014/0013020은, 복수의 이벤트들에 대해 별개의 이벤트 계수값들을 유지할 수 있으며, 2개의 이벤트에 대한 이벤트 계수값의 비율이 특정한 시점에서 판정될 수 있으며, 이 비율이 원하는 레벨을 초과하는 경우에 예외가 발생되는 시스템을 설명한다. 성능 모니터링을 사용할 때 이벤트들의 비율을 고려하는 것이 유용할 수 있는데, 이것은 이와 같은 정보가 예를 들어 어플리케이션의 런타임 거동에 더 양호하게 부합하게 하기 위해 동작 시스템 환경설정 변경을 하는데 사용되기 때문이다. 그러나, 전술한 기술은 단지 제한된 별개의 시점에서만 비율 분석이 행해질 수 있게 한다. 특히, 제1 이벤트 계수값이 임계값이 도달하는 시점에서, 제2 이벤트 계수값도 그것의 임계값에 도달했는지 여부를 판정하여, 도달한 경우에는 예외 트리거가 발행될 수 있다. 그러나, 도달하지 않은 경우에는, 이들 두가지 카운터가 리셋된다. 따라서, 전술한 기술은 별개의 제한 구간 내에서 비율이 초과하는 것을 요구한다는 것을 알 수 있다. 이와 같은 접근방법은 다양한 상황에서 유용할 수 있는 비율을 검사하는 간단한 메카니즘을 제공할 수 있지만, 분모가 제한된 구간에 걸쳐 그것의 임계값에 도달하는 것으로 인해 이 비율이 초과되는 것이 결코 검출되지 않는 특정한 상황을 발생할 수 있다.
본 발명에서 설명하는 기술은 데이터 처리 시스템 내에서의 성능 모니터링 중에 이벤트들의 비율을 분석하는 개량된 메카니즘을 제공한다.
일 구현예에서는, 데이터 처리 시스템 내에서 성능 모니터링을 행하는 장치가 제공된다. 이 장치는, 데이터 처리 시스템 내부의 제1 이벤트의 발생을 감시하고, m이 1 이상의 정수일 때, 제1 이벤트의 모든 m번째 발생을 표시하기 위해 제1 신호를 어서트하는 제1 이벤트 모니터링 회로를 갖는다. 또한, 제2 이벤트 모니터링 회로를 사용하여, 데이터 처리 시스템 내부의 제2 이벤트의 발생을 감시하고, n이 1 이상의 정수일 때, 제2 이벤트의 모든 n번째 발생을 표시하기 위해 제2 신호를 어서트한다. 또한, 이력 유지회로를 설치하여, 어서트된 제1 및 제2 신호들에 따라 갱신되는 이벤트 이력 정보를 유지한다.
그후, 이력 분석회로는, 이벤트 이력 정보를 분석하는 분석 트리거에 응답하여, 제1 이벤트의 발생과 제2 이벤트의 발생 사이의 비율이 허용되는 범위를 벗어난 것으로 이벤트 이력 정보가 표시할 때 보고 상태를 검출한다. 그후, 이력 분석회로는 보고 상태의 검출시에 보고 신호를 어서트하도록 구성될 수 있다. 그후, 보호신호를 사용하여, 예를 들어, 인터럽트 제어기에 예외신호를 어서트하는 것이 적절한지 여부를 판정할 수 있다.
전술한 기술에 따르면, 예를 들어, 제1 이벤트 계수값이 소정의 레벨에 도달할 때, 특정한 별개의 시점에 비율이 초과하였는지 평가하려고 시도하는 것 대신에, 이벤트 이력 정보의 사용은 원하는 비율의 연속된 모니터링이 행해지게 할 수 있으므로, 전술한 기술의 제약을 경감한다. 전술한 기술에 따르면, 모든 이력 정보가 제1 및 제2 이벤트 모니터링 회로들에 의해 어서트된 제1 및 제2 신호들에 따라 이력 유지회로에 의해 지속적으로 유지된다. 그후, 분석 트리거가 수신될 때마다, 이벤트 이력 정보가 분석되어, 비율이 허용되는 범위를 초과한 상황을 검출한다. 이것은 2개의 이벤트들의 발생 비율의 지속적인 모니터링을 위한 효율적인 메카니즘을 제공함으로써, 전술한 장치가 사용되는 시스템의 수행의 실시간 모니터링에 대해 상당한 향상을 제공한다.
이력 분석회로가 비율이 언제 허용되는 범위를 벗어나는지 판정하는 다양한 방법이 존재한다. 그러나, 일 구현예에서는, 비율이 선택된 임계값에 도달한 것으로 이벤트 이력 정보가 표시할 때 이력 분석회로는 비율이 허용되는 범위를 벗어난 것으로 검출하도록 구성된다. 허용되는 범위는 필요한 경우에는 상한 및 하한 임계값에 의해 인코드될 수 있지만, 일 구현예에서는, 선택된 임계값이 한 개의 임계값에 의해 식별되고, 범위의 나머지 일단에 예를 들어 논리 0값으로 추론된다. 선택된 임계값은, 필요한 경우에는, 예를 들어, 정수값이나 분수값을 사용하여, 다양하게 식별될 수 있다.
이력 분석회로가 이벤트 이력 정보를 분석하게 하는데 사용되는 분석 트리거는 다양한 형태를 취할 수 있다. 그러나, 일 실시예에서는, 이벤트 이력 정보가 갱신될 때마다 분석 트리거가 발생된다. 따라서, 이것은 해당 비율의 연속적인 모니터링을 허용함으로써, 비율에 영향을 미칠 수도 있는 정보가 발생될 때마다 비 비율이 재평가될 수 있도록 보장한다.
이력 유지회로는, 다양한 형태를 취할 수 있지만, 일 구현예에서는, 복수의 엔트리들을 갖는 이력 스토리지를 구비하고, 각각의 엔트리는 이력 데이터의 항목을 기억하도록 구성되고, 이력 데이터의 각 항목은 제1 신호의 어서션(assertion) 또는 제2 신호의 어서션을 나타낸다. 따라서, 이력 스토리지 내부의 이력 데이터의 각각의 항목들은 제1 신호 또는 제2 신호의 개별적인 어서션을 식별하고, 그후 이 정보를 사용하여 제1 이벤트 및 제2 이벤트의 발생 비율을 분석한다.
일 구현예에서, 이력 유지회로는, 제1 신호 및 제2 신호를 수신하고, 수신된 제1 및 제2 신호들에 따라 이력 스토리지가 갱신되게 하도록 구성된 갱신회로를 더 구비한다.
갱신회로는 다양하게 동작해도 된다. 예를 들어, 갱신회로는, 제1 신호 또는 제2 신호가 어서트될 때마다 이력 스토리지가 갱신되게 한다. 그러나, 본 발명에서 나중에 설명하는 것과 같이, 일 구현예에서, 이것은, 어떤 특정한 시나리오에서는, 제1 및 제2 신호들이 어서트될 때 갱신이 발생하게 하지 않는다. 특히, 제1 및 제2 신호들 모두가 동시에 어서트될 때 갱신이 제외되는 경우, 장치의 상당한 단순화가 달성될 수 있다. 이것은 어쩌면 일부 정보의 손실을 일으킬 수도 있지만, 서로의 복수가 아닌 m 및 n의 값을 선택함으로써 이것이 상당히 경감될 수 있다.
이력 스토리지는, 다양하게 구성될 수 있지만, 일 구현예에서는, p개의 엔트리들을 포함하는 시프트 레지스터로서 구성되고, 갱신회로로부터의 갱신 트리거에 응답하여 이력 데이터의 새로운 항목을 시프트 레지스터 내부의 선두 엔트리에 추가한다.
이와 같은 구현예에서, 이력 스토리지는, 이력 데이터의 각각의 새로운 항목이 추가될 때, 시프트 레지스터 내부의 이력 데이터의 가장 오래된 항목이 폐기됨으로써, 시프트 레지스터가 이력 데이터의 p개의 가장 최근의 항목들을 유지하도록 구성될 수 있다. 이 때문에, 이와 같은 구성예서는, 유지된 이력 데이터의 양이 시프트 레지스터에 의해 제공된 엔트리들의 수에 의존하는 이력 정보의 슬라이딩 윈도우(sliding window)를 효율적으로 유지할 수 있다. 이것은, 시프트 레지스터 내부의 엔트리들이 초기에 채워진 후의 임의의 시점에서, 유지된 이력 정보의 양이 동일하여, 비율이 허용되는 범위를 벗어나는지 여부를 판정하기 위해 이력 분석회로에 의해 행해진 분석을 단순화할 수 있다는 것을 의미한다. 그러나, 또 다른 실시형태에서, 시간 경과에 따라 이력 정보의 양이 증가되는 것을 허용하는 다른 형태의 이력 스토리지가 유지될 수도 있으며, 그후 이력 분석회로는, 비율 분석을 행할 때, 스토리지 내부에 유지된 이력 정보의 전체량을 고려할 필요가 있을 것이다.
이력 스토리지가 시프트 레지스터로 이루어진 구현예에서는, 시프트 레지스터가 다양하게 구성될 수 있다. 특정한 일 구현예에서, 시프터 레지스터는 직렬 입력 병렬 출력(serial-in-parallel-out) 시프트 레지스터이고, 이력 분석회로가 시프트 레지스터의 출력에 접속되어 분석 트리거에 응답하여 이력 데이터의 p개의 항목을 수신한다. 이 때문에, 이와 같은 구성예서는, 이력 분석회로가 시프트 레지스터로부터 병렬로 이력 데이터의 모든 항목들을 취득할 수 있어, 비율 분석 동작의 성능을 향상시킨다.
시프트 레지스터의 입력이 제1 신호 및 제2 신호 정보에 접속되는 방식은 다양한 형태를 취할 수 있다. 예를 들어, 다중화 구성이 제공되어, 예를 들어, 제1 신호가 어서트되는지 또는 제2 신호가 어서트되는지에 따라, 제1 신호 또는 제 2 신호가 임의의 시점에서 시프트 레지스터의 입력에 제공될 수 있다. 그러나, 특정한 일 구현예에서는, 시프트 레지스터의 입력이 제1 신호에 접속되도록 단순히 구성함으로써 상당한 단순화가 달성될 수 있다. 이때, 갱신 트리거의 발생시, 시프트 레지스터 내부의 선두 엔트리에 추가된 이력 데이터의 새로운 항목이 제1 신호의 현재값을 나타낸다.
일 구현예에서, 제1 신호가 어서트되는지 아닌지에 따라, 제1 신호가 논리 1 또는 논리 0 값을 갖는다. 예를 들어, 논리 1 값은 제1 신호가 어서트된다는 것을 나타내는 한편, 논리 0 값은 제1 신호가 디어서트(deassert)된다는 것을 나타낸다. 제1 신호가 어서트되고 이 제1 신호가 시프트 레지스터의 갱신을 기동하는 상황에서는, 논리 1 값이 이와 같은 경우 시프트 레지스터의 선두 엔트리 내부에 기록되어 제1 신호의 어서션을 식별한다. 이와 달리, 제2 신호가 어서트되지만 제1 신호가 어서트되지 않는 경우, 이것은, 제2 신호의 어서션으로 인해 기동되는 갱신 동작중에, 논리 0값(즉, 어서트되지 않은 제1 신호의 값)이 시프트 레지스터의 선두 엔트리 내부에 기억되게 할 수 있다. 이와 같은 구성예에서는, 시프트 레지스터의 엔트리 내부의 논리 0값이 제2 신호의 어서션의 인스턴스를 나타내는 것으로 해석된다.
이와 같은 구성예에서, 갱신회로는, 제1 신호가 어서트되거나 제2 신호가 어서트될 때 갱신 트리거를 발행하지만, 제1 신호 및 제2 신호가 동시에 어서트될 때에는 갱신 트리거를 생략하도록 구성된다. 전술한 것과 같이, 이것이 원리상 정보의 일부 손실을 일으킬 수도 있지만, m 및 n의 적절한 선택에 의해 대부분의 실용적인 상황에서는 이것이 크게 경감됨으로써, 제1 신호만 시프트 레지스터의 입력에 접속되도록 요구함으로써, 회로의 상당한 단순화를 가능하게 할 수 있다.
일 구성예에서, 이력 데이터의 각 항목은 제1 신호의 어서션을 나타내는 제1 값과 제2 신호의 어서션을 나타내는 제2 값을 기억하고, 이력 분석회로는, 이력 스토리지의 엔트리들 내부에 기억된 값들을 참조하여 비율이 언제 허용되는 범위를 벗어나는지를 판정하는데 사용되는 임계값 정보를 식별하는 임계값 표시 스토리지를 구비한다.
임계값 정보는 다양한 형태를 취할 수 있다. 예를 들어, 이것은 제1 값 및 제2 값에 대해 별개의 임계값을 지정할 수도 있다. 그러나, 전술한 시프트 레지스터의 예와 같이, 이력 스토리지 내부에 소정의 고정된 수의 엔트리들이 존재하는 경우에는, 예를 들어, 이력 스토리지의 엔트리들 내부의 제1 값의 발생 횟수를 식별하기 위해, 단지 한 개의 임계값을 사용함으로써 임계값 정보가 제공될 수 있다.
일 구현예에서, 장치는, 보고신호가 어서트되는지 여부에 따라 데이터 처리 시스템의 인터럽트 제어기에 예외신호를 어서트하도록 구성된 예외신호 발생회로를 더 구비한다. 예외신호 발생회로는, 예를 들어, 보고신호가 어서트될 때마다, 예외신호를 어서트하도록 구성될 수도 있다. 그러나, 이와 달리, 예외신호 발생회로는, 어서트된 보고신호의 존재시에 예외신호를 어서트할 것인지 결정할 때 다수의 다른 신호들을 고려해도 된다. 이것은, 예를 들어, 필요한 경우에는 다른 이벤트들의 발생 횟수를 나타내는 한 개 이상의 신호의 참조를 포함할 수도 있다. 이와 달리, 또는 이에 덧붙여, 자격 부여신호가 예외신호 발생회로에 더 제공될 수도 있으며, 어서트된 보고신호의 존재시에 예외신호가 어서트되기 전에 이 자격 부여신호가 어서트될 필요가 있다.
특히, 일 구성예에서, 장치는, 이력 유지회로에 의해 유지된 이벤트 이력 정보에 대해 결정된 횟수의 갱신이 행해질 때까지, 보고신호에 근거하여 예외신호의 발생을 금지하는데 사용되는 웜업 자격 부여회로를 더 구비한다. 따라서, 이와 같은 접근방법은, 이력 스토리지의 초기의 충전 단계중에 예외가 기동되지 않도록 보장할 수 있다. 이 때문에, 이와 같은 경우에는, 웜업 자격 부여회로의 적절한 설정에 의해, 제1 및 제2 신호들의 어서션에 근거하여 적어도 모든 엔트리들이 능동적으로 갱신될 때까지 예외신호가 발생되지 않도록 보장할 수 있기 때문에, 스토리지 내부의 각각의 엔트리가 어떤 값으로 초기화되는지는 중요하지 않다.
웜업 자격 부여회로는, 다양하게 구성될 수 있지만, 일 실시예에서는, 이벤트 이력 정보에 대해 행해진 갱신 횟수를 나타내는 갱신 계수값을 유지하는 갱신 카운터 스토리지를 구비하고, 갱신 횟수가 자격 부여 임계값에 도달할 때 자격 부여신호를 어서트하도록 구성된다. 그후, 예외신호 발생회로는, 보고신호 및 자격 부여신호 모두가 어서트될 때, 예외신호를 어서트하도록 구성된다. 이 때문에, 자격 부여 임계값의 적절한 지정을 통해, 어서트된 예외신호를 발생하기 위한 어서트된 보고신호에 대해 의존이 행해지기 전에 이력 스토리지에 대해 소정의 최소 수의 갱신이 발생하는 것이 확보될 수 있다.
제1 및 제2 이벤트 모니터링 회로는 다양하게 구성될 수 있다. 간단한 일 구현예에서, m 및 n이 모두 1로 설정되므로, 제1 및 제2 이벤트가 발생할 때마다 제1 및 제2 신호가 어서트된다. 그러나, 또 다른 실시예에서는, m 및/또는 n은 1보다 큰 정수값으로 선택된다.
예를 들어, 일 구현예에서, m이 1보다 크고, 제1 이벤트 모니터링 회로는, 리셋 이벤트 이후에 관측된 제1 이벤트의 발생 횟수를 나타내는 제1 이벤트 계수값을 유지하는 제1 이벤트 카운터 스토리지를 구비하고, 발생 횟수가 값 m에 도달할 때 제1 신호를 어서트하도록 구성되며, 그후 리셋 이벤트가 기동되어 제1 이벤트 계수값을 초기값으로 리셋한다. 마찬가지로, 일 구성예서는, n이 1보다 크고, 제2 이벤트 모니터링 회로는, 리셋 이벤트 이후에 관측된 제2 이벤트의 발생 횟수를 나타내는 제2 이벤트 계수값을 유지하는 제2 이벤트 카운터 스토리지를 구비하고, 발생 횟수가 값 n에 도달할 때 제2 신호를 어서트하도록 구성되며, 그후 리셋 이벤트가 기동되어 제2 이벤트 계수값을 초기값으로 리셋한다.
이력 데이터의 각각의 항목이 제1 신호 또는 제2 신호의 어서션과 관련될 수 있으며, 제1 또는 제2 이벤트의 특정한 복수의 발생이 각각 관측될 후에만 제1 및 제2 신호가 어서트되기 때문에, m 및 n의 더 큰 값을 사용함으로써, 이력 스토리지 내부에 유지된 이력 정보의 유효량을 증가시킬 수 있다. 그후, 이력 분석회로와 관련하여 유지된 임계값 정보가 제1 및 제2 이벤트 모니터링 회로에 의해 사용된 m 및 n의 값을 고려하도록 구성됨으로써, 제1 이벤트의 발생과 제2 이벤트의 발생 사이의 비율이 원하는 범위를 벗어날 때 보고 상태가 검출되도록 보장한다.
m 및 n의 값은 다양하게 유지될 수 있지만, 일 구성예에서, 장치는, m 및 n의 값의 표시를 유지하는 환경설정가능한 임계값 스토리지를 갖는다. 이것은 필요에 따라 m 및 n의 값이 조정될 수 있게 한다.
이하, 첨부도면을 참조하여 특정한 실시예를 설명한다.
도 1은, 데이터 처리를 행하는 프로세서(4), 프로세서(4)에 의해 처리하기 위한 데이터를 기억하는 캐시(6)와, 메모리(8)를 갖는 데이터 처리 시스템(2)을 나타낸 것이다. 시스템(2)은, 프로세서(4)에 의해 사용된 가상 어드레스를 메모리(8)에 의해 사용된 물리 어드레스에 매핑하기 위한 가상-무리 어드레스 변환 데이터를 기억하는 변환 색인 버퍼(TLB)(10)와, 분기 명령을 탈 것인지 또는 타지 않을 것인지 예측하는 분기 예측기(12)를 더 갖는다. 도 1에 도시된 구성은 일례이며, 시스템(2)이 도 1에 도시하지 않은 다른 구성요소를 더 구비하거나, 사실상 일부 시스템은 도 1에 도시된 모든 구성요소를 포함하지 않을 수도 있다는 것은 자명하다.
시스템(2)은, 데이터 처리 시스템(2)의 처리 성능을 나타내는 성능 모니터링 데이터를 발생하는 성능 모니터링부(20)를 구비한다. 성능 모니터링부(20)는, 데이터 처리 시스템(2)의 다른 구성요소들 4, 6, 8, 10, 12로부터 이벤트 신호들(22)을 수신하고, 각각의 신호 22는 대응하는 이벤트의 발생을 나타낸다. 예를 들어, 처리 사이클의 경과 또는 명령의 실행을 표시하는 이벤트 신호(22)가 프로세서(4)로부터 수신되거나, 캐시 또는 TLB 액세스 또는 부적중을 표시하는 이벤트 신호가 캐시(6) 또는 TLB(10)로부터 수신된다. 또한, 메모리 액세스를 표시하는 이벤트 신호(22)가 메모리(8)로부터 수신되거나, 분기 예측 또는 분기 오예측을 표시하는 이벤트 신호가 분기 예측기(12)로부터 수신된다. 이때, 이들 예가 전부는 아니며, 성능 모니터링부(20)는 많은 다른 종류의 이벤트를 표시하는 신호를 더 수신해도 된다. 이들 신호 22에 응답하여, 성능 모니터링부(20)는 성능 모니터링 데이터를 발생한다. 성능 모니터링 데이터가 나중에 캡처 및 분석되어 시스템(2)의 성능을 결정한다.
시스템(2)은, 인터럽트 신호를 발생하는 인터럽트 제어기(30)를 더 구비한다. 인터럽트 신호에 응답하여, 프로세서(4)는 그것의 현재의 처리를 인터럽트하고 인터럽트 신호에 대응하는 인터럽트 처리 루틴을 실행한다. 예를 들어, 프로세서를 기동하여 특정한 작업을 실행하거나 에러 신호를 보내기 위해, 다양한 용도를 위해 다수의 다른 인터럽트 신호가 발생된다. 한가지 종류의 인터럽트 신호는 성능 모니터링부(20)에 의해 발생된 성능 모니터링 데이터에 응답하여 인터럽트 제어기(30)에 의해 발생되는 성능 모니터링 인터럽트 신호이다. 이 때문에, 성능 모니터링 데이터가 특정한 성능 상태를 표시하는 경우, 인터럽트 제어기(30)는, 프로세서(4)의 처리를 인터럽트하고, 프로세서를 기동하여 검출된 성능 상태와 관련된 소정의 동작을 행한다.
도 2는 일 실시예에 따른 도 1의 성능 모니터링부(MMU)(20) 내부에 설치된 구성요소들을 나타낸 블록도이다. 데이터 처리 시스템 내부의 다양한 구성요소들로부터의 이벤트들은 이벤트 필터/라우터 구성요소(10)에 의해 수신되고, 이 구성요소는 PMU가 현재 각각의 이벤트를 감시하도록 설정되어 있는지 판정한 후, 감시되고 있는 각각의 이벤트를 적절한 이벤트 모니터링 회로에 전달한다. 본 실시예에서, 제1 이벤트의 발생 및 제2 이벤트의 발생을 각각 감시하기 위해 제1 및 제2 이벤트 모니터링 회로 105, 110이 설치된다. 특히, 도 2에 도시된 회로를 사용하여 제2 이벤트의 발생에 대한 제1 이벤트의 발생의 비율을 감시한다. PMU는, 이들 2개의 이벤트만을 감시하도록 구성되거나, 또는 이와 달리 시스템 내부의 또 다른 이벤트들의 발생을 감시하는 추가적인 회로(미도시)를 갖는다.
제1 이벤트 모니터링 회로(105)는 제1 이벤트의 모든 m번째 발생을 표시하기 위해 제1 신호를 어서트하도록 구성되고, 마찬가지로 제2 이벤트 모니터링 회로는 제2 이벤트의 모든 n번째 발생을 표시하기 위해 제2 신호를 어서트하도록 구성된다. m 및 n의 값은, m 및 n의 값을 유지하는 적절한 스토리지 구성요소의 설치를 통해, 고정되거나, 이와 달리 환경설정가능해도 된다. 더구나, m은 1 이상의 임의의 정수값일 수 있으며, 마찬가지로 n은 1 이상의 임의의 정수값일 수 있다. 이때, m 또는 n이 1과 같게 설정될 때, 대응하는 이벤트 모니터링 회로가 관련된 이벤트의 모든 발생에 대한 신호를 어서트한다는 것을 알 수 있다. 그러나, 전술한 실시예에서는, m 및 n이 복수의 정수값인 것으로 가정하므로, 각각의 제1 또는 제2 이벤트의 발생시에는 제1 및 제2 신호가 각각 어서트되지 않지만, 그 대신에 특정한 복수의 제1 이벤트 또는 제2 이벤트의 발생시에만 제1 및 제2 신호가 어서트된다. 이것은 시스템 내부에 유지되는 이력 정보의 양을 증가시킬 수 있다.
도 2에 도시된 것과 같이, 제1 및 제2 이벤트 모니터링 회로들(105, 110)로부터의 어서트된 제1 및 제2 신호는, 각각의 엔트리가 이력 데이터의 항목을 기억하는데 사용될 수 있는 복수의 엔트리들을 갖는 이력 스토리지(125)를 제공하는 이력 유지회로(115)에게 전달된다. 본 발명에서 설명하는 실시예에서, 이력 데이터의 각각의 항목은 제1 신호의 어서션 또는 제2 신호의 어서션을 나타낸다.
이력 관리회로(115) 내부의 갱신회로(120)는, 수신된 제1 및 제2 신호를 분석하고, 이력 스토리지(125)의 콘텐츠를 언제 갱신할 것인지 판정하도록 구성된다. 일 구현예에서, 갱신회로는 제1 신호 또는 제2 신호가 어서트될 때마다 이력 스토리지를 갱신하도록 구성된다. 그러나, 도 3 및 도 4를 참조하여 설명하는 특정한 예시적인 구현예에서는, 제1 및 제2 신호 모두가 동시에 어서트될 때 이력 스토리지에 대한 갱신을 금지함으로써 장치의 상당한 단순화를 달성할 수 있다.
갱신회로(120)는 이력 스토리지 내부에 기억할 이력 데이터의 각각의 새로운 항목을 이력 스토리지(125)에 직접 식별하거나, 이와 달리 이력 스토리지는 이 정보를 제1 신호 및/또는 제2 신호로부터 직접 유도하고, 갱신회로(120)가 단순히 트리거 신호를 이력 스토리지(125)에 발행하여, 이력 스토리지 콘텐츠가 언제 갱신되어야 하는지를 식별해도 된다.
이력 스토리지는 다양한 형태를 취할 수 있다. 예를 들어, 이력 스토리지는, 제1 및 제2 신호의 어서션의 새로운 인스턴스들이 발생할 때, 시간 경과에 따라 유지된 이력 정보의 전체량이 증가하도록 구성되어도 된다. 그러나, 도 3 및 도 4를 참조하여 이하에서 설명하는 특정한 구현예에서, 이력 스토리지가 소정 수의 엔트리들을 포함하므로, 어떤 특정한 시점에서 유지된 이력 정보의 양이 일정하다. 이것은 이력 분석회로(130)에 의해 행해진 이력 정보의 분석을 단순화할 수 있다. 일 구현예에서, 이력 스토리지(125)는 시프트 레지스터로 구성되므로, 이력 데이터의 각각의 새로운 항목이 시프트 레지스터 내부의 선두 위치에 추가되는 한편, 이와 동시에 이력 정보의 가장 오래된 항목이 폐기된다.
갱신회로(120)는, 이력 분석회로(130)에 분석 트리거를 발행하여, 이력 분석회로가 이력 스토리지의 현재 콘텐츠를 분석하게 하도록 더 구성된다. 분석 트리거는 다양하게 발생될 수 있지만, 일 실시예에서는 이력 스토리지가 갱신될 때마다 분석 트리거가 이력 분석회로(130)에 송신되므로, 제1 및 제2 이벤트의 발생 사이의 비율의 연속적인 모니터링을 허용함으로써, 비율에 영향을 미치는 정보가 발생될 때마다 이 비율이 재평가될 수 있도록 보장한다.
이력 분석회로(130)는, 이력 스토리지(125)의 엔트리들에 기억된 값을 참조하여, 비율이 허용되는 범위를 언제 벗어나는지를 판정하기 위해 사용되는 임계값 정보(135)를 액세스한다. 일 구현예에서, 이력 정보의 항목은, 제1 신호의 어서션을 나타내는 제1 값과, 제2 신호의 어서션을 나타내는 제2 값을 갖는다. 임계값 정보는, 다양한 형태를 취할 수 있지만, 예를 들어, 제1 및 제2 값에 대해 별개의 임계값을 지정할 수도 있다. 더구나, 임계값 정보는 분수 또는 정수 형태로 지정된다. 그러나, 이력 스토리지 내부의 엔트리들의 전체 수가 고정되는 특정한 일례에서는, 예를 들어, 비율이 허용되는 범위를 초과하였다는 것을 나타내는 것으로 생각되는 이력 스토리지(125)의 엔트리 내부의 제1 값의 발생 횟수를 식별하기 위해, 한 개의 임계값만을 사용함으로써 임계값 정보가 제공될 수 있다.
분석 트리거에 응답하여, 비율이 허용되는 범위를 초과하였다고 이력 분석회로가 판정하면, 이력 분석회로가 보고신호를 예외신호 발생회로(140)에게 어서트한다. 예외 발생회로(140)는, 이와 같은 상황에서 인터럽트 제어기(30)에 예외신호를 직접 어서트하도록 구성되거나, 또는 이와 달리 어서트된 보고신호의 존재시에 예외신호를 어서트할 것인지 여부를 결정할 때 한 개 이상의 다른 신호를 고려한다.
예를 들어, 예외신호 발생회로(140)는 다른 이벤트 계수값에 대해 임계값이 도달하였다는 것을 나타내는 신호를 PMU 내부의 다른 구성요소로부터 더 수신하고, 어서트된 보고신호와 조합하여 이 정보를 사용함으로써 언제 예외신호를 발생할 것인지 판정해도 된다.
이와 달리, 보고신호가 직접 사용되어 예외신호를 발생해도 되지만, 도 2의 점선으로 표시한 구성요소로 나타낸 것과 같이, 자격 부여신호에 의해 예외신호의 발생의 자격이 주어져도 된다. 특히, 리셋 이벤트 이후에 이력 스토리지9125)에 대해 행해진 갱신 획수를 식별하는데 사용되는 정보를 갱신회로(120)로부터 수신하는 웜업 자격 부여회로(145)가 설치된다. 이와 같은 정보에 근거하여, 특정한 웜업 기간을 경과하면, 웜업 자격 부여회로(145)가 자격 부여신호를 어서트하도록 구성된다. 웜업 기간은 예를 들어 이력 스토리지(125)에 대해 행해진 갱신 횟수와 동일하게 될 수 있다. 이와 같은 접근방법은, 예를 들어, 특정한 수의 갱신, 예를 들어, 이력 유지회로에 의해 수신된 제1 및/또는 제2 신호에 직접 근거하여 이력 스토리지 내부의 모든 엔트리가 채워지도록 보장하기 위해 적어도 충분한 갱신 횟수가 이력 스토리지에 대해 행해질 때까지, 자격 부여신호가 어서트되지 않도록 보장할 수 있다. 이 때문에, 웜업 기간이 경과할 때까지, 예외신호 발생회로가 어서트된 보고신호에 따라 동작하지 않도록 자격 부여신호의 사용이 보장하기 때문에, 이력 스토리지 내부의 엔트리들이 어떤 값으로 초기화되는지는 중요하지 않다.
일 구현예에서는, 어서트된 자격 부여신호의 존재시에 보고신호가 어서트될 때마다, 예외신호 발생회로(140)가 예외신호를 인터럽트 제어기(30)에게 어서트하고, 그후 이것은 전술한 것과 같이, 인터럽트 제어기가 CPU(4)에 의해 행해진 처리를 인터럽트하게 하여, CPU(4)가 검출된 성능 상태와 관련되는 소정의 동작을 행하게 한다. 예를 들어, 이와 같은 소정의 동작은 시스템에 대해 동적 시스템 환경설정 변화가 행해질 수 있도록 하여, 예를 들어, 프로세서 주파수를 증가시킴으로써, 어플리케이션의 런타임 거동에 더 잘 부합하게 할 수 있다. 또 다른 예로서, 도 10 및 도 11을 참조하여 후술하는 것과 같이, 인터럽트 제어기에 의해 기동된 이와 같은 소정의 동작은, 데이터 처리 시스템 내부에서 특정한 프로세스를 행하는데 사용되는 다양한 알고리즘들 사이에서 전환할 것인지 여부에 대해 평가가 행해질 수 있게 한다.
도 3 및 도 4는 도 2의 장치의 특정한 예시적인 구현을 나타낸 것이다. PMU에 의해 행해진 처리를 2개의 스테이지로 개념적으로 나눌 수 있는데, 스테이지 1은 도 3에 도시하였고 스테이지 2는 도 4에 도시하였다.
도 3에 도시한 것과 같이, 시스템 내부로부터의 이벤트들(200)이 다중화 구성요소(205)에 의해 수신되고, 다중화 구성요소는 도 2의 이벤트 필터/라우터(100)의 기능을 구현하고 이 다중화 구성요소의 동작은 환경설정 블록(230)에 의해 제어될 수 있다. 특히, 환경설정 블록은 PMU 내부의 특정한 하드웨어 카운터들이 특정한 이벤트에 대한 계수값을 유지하기 위해 환경설정될 수 있도록 하고, 이에 따라, 환경설정 블록(230) 내부의 적절한 환경설정에 의해, 이벤트 카운터 210이 제1 이벤트에 대한 카운터로서 설정될 수 있으며 이벤트 카운터 215가 제2 이벤트에 대한 카운터로서 설정될 수 있으며, 다중화 구성요소(205)가 제1 이벤트의 각각의 발생을 제1 이벤트 카운터(210)에 전달하고 제2 이벤트의 각각의 발생을 제2 이벤트 카운터(215)에 전달하도록 환경설정된다. 이전의 설명에서 명백한 것과 같이, 시스템 내부의 다양한 다른 구성요소들 내에서 발생되는 액션과 관련하여, 이벤트들이 다양한 형태를 취할 수 있으며, 본 발명에서 설명하는 기술의 목표상, 어떤 이벤트가 추적될 것인지는 중요하지 않다. 그러나, 본 발명에서 예시하는 실시예에서는, 제2 이벤트의 발생에 대한 제1 이벤트의 발생 비율을 감시하는 것이 필요한 것으로 가정한다.
도 2의 제1 이벤트 모니터링 회로(105)는 도 3의 구성요소들 210, 220 및 235에 의해 구현되는 반면에, 제2 이벤트 모니터링 회로(110)는 도 3의 구성요소들 215, 225 및 240에 의해 구현된다. 특히, 환경설정 블록(230)을 사용하여 임계값 스토리지 구성요소들 220, 225 내부의 m 및 n의 값을 설정할 수 있다. 전술한 것과 같이, 이들 값은 1로 설정될 수 있지만, 이하에서 설명하는 실시예에서는 m 및 n 모두가 복수의 정수값인 것으로 가정한다.
도 3에 나타낸 것과 같이, 제1 이벤트 카운터(210)와 임계값 스토리지(220)의 콘텐츠가 비교회로 235에 주어진다. 제1 이벤트 카운터가 값 m에 도달한 것으로 비교회로 235가 검출하면, 제1 신호가 경로 237을 거쳐 어서트되고, 그후 다음 클록 사이클시에 제1 이벤트 카운터가 초기값, 예를 들어, 0으로 리셋된다.
마찬가지로, 비교기 240은, 제2 이벤트 카운터(210) 내부에 유지된 계수값과 스토리지 구성요소(225) 내부의 임계값 n을 비교하여, 제2 이벤트 카운터가 n에 도달하였을 때 제2 신호를 어서트한 후, 다음 클록 사이클시에 제2 이벤트 카운터가 리셋된다.
도 5는 이벤트 모니터링 회로들 각각의 동작을 나타낸 흐름도이다. 스텝 300에서, 이벤트의 발생을 대기하는데, 이것은 다중화 블록(205)으로부터 해당 이벤트 카운터 210, 215에 전파되는 신호에 의해 표시된다. 이벤트의 발생이 검출되면, 이벤트 카운터 구성요소 210, 215 내부의 카운터가 스텝 305에서 증분된 후, 이 카운터 값을 비교 구성요소 235, 240을 사용하여 임계값과 비교한다. 그후, 이 비교 결과로써, 스텝 315에서, 임계값 레벨에 도달하였는지 여부를 판정한다.
도달하지 않았으면, 스텝 300으로 처리가 되돌아가, 또 다른 이벤트의 발생을 대기한다. 그러나, 임계값에 도달하면, 관련된 신호가 스테이지 2로 어서트된 후, 스텝 325에서 카운터가 리셋되고, 그후 스텝 300으로 처리가 되돌아간다.
제1 및 제2 신호 237, 239는 도 4에 도시된 스테이지 2로 전달된다. 도 3 및 도 4에 도시된 실시예에서는, 신호의 논리 0값이 어서트되지 않은 상태를 나타내고 논리 1 값이 어서트된 상태를 나타내는 것으로 가정한다. 그러나, 이것은 설계 선택사항 문제이며, 도 4에 도시된 구성요소들의 적절한 조정에 의해, 어서트되지 않은 상태와 어서트된 상태와 관련된 값들이 뒤바뀔 수도 있다.
도 4에 도시된 것과 같이, 이력 유지회로의 갱신회로는 본 실시예에서는 XOR 게이트(250)로 구성되고, 이 XOR 게이트를 사용하여 시프트후 기록 구성요소(2555)를 제어한다. 따라서, 제1 신호가 어서트되거나 제2 신호가 어서트될 때마다, 논리 1 값이 시프트후 기록 구성요소(255)에 발행되어 이력 스토리지의 갱신을 기동한다는 것을 알 수 있다. 그러나, 제1 신호와 제2 신호 모두가 어서트되지 않거나, 또는 이들 양쪽 신호가 동시에 어서트되는 경우에는, XOR 게이트(250)로부터 논리 0 값이 출력되고 갱신이 행해지지 않는다. 이와 같은 접근방법은, 이력 스토리지의 상당한 단순화를 허용하기 때문에, 도 4의 특정한 구현예에서 취해진다. 특히, 도시된 것과 같이, 이력 스토리지에는 신호들 237, 239 중에서 한 개만 직접 주어질 수 있는데, 도시된 실시예에서는 이와 같은 용도를 위해 제1 신호(237)가 사용된다. 제1 신호가 어서트되면, 이 신호가 논리 1 값을 갖게 되고, 제1 신호가 어서트되지 않으면, 이것은 논리 0 값을 갖게 된다. 따라서, XOR 게이트(250)의 전술한 동작으로 인해, 제1 신호가 어서트되지 않을 때에만 제2 신호의 어서션에 근거한 갱신이 발생하기 때문에, 이력 스토리지의 갱신이 제1 신호의 어서션에 의해 기동될 때, 이것은 논리 1 값이 이력 스토리지에 기록되게 하는 반면에, 이력 스토리지의 갱신이 제2 신호의 어서션에 의해 기동될 때, 이것은 논리 0 값이 이력 스토리지에 추가되게 한다.
이력 스토리지는, 다양한 형태를 취할 수 있지만, 일 구현예에서는, p 비트 시프트 레지스터(245)이며, 이때 이력 데이터의 각각의 새로운 항목이 시프트 레지스터 내부의 선두 위치에 삽입되는 한편, 이와 동시에 이력 데이터의 가장 오래된 항목이 시프트 레지스터의 후미 엔트리로부터 폐기된다. 도 4에 도시된 실시예에 따르면, 시프트 레지스터는 직렬 입력 병렬 출력 시프트 레지스터로 구성되므로, 분석 트리거를 사용하여 이력 분석회로가 이력 스토리지 내부에 유지된 이력 정보를 분석하게 할 때, 이력 데이터의 p개의 항목들 전체가 병렬로 이력 분석회로에 제공될 수 있다.
이력 유지회로의 동작을 도 6에 흐름도로 나타낸다. 스텝 350에서, 제1 신호가 어서트되었는지 판정하여, 어서트된 경우에는 스텝 355에서 제2 신호가 어서트되지 않았는지 확인한다. 제2 신호가 어서트되지 않은 경우에는, 스텝 365로 처리를 진행하여, 이력 스토리지에서 시프트 및 기록 동작이 기동되어, 레지스터에 대한 시프트 동작을 행함으로써, 이력 데이터의 가장 오래된 항목이 이력 스토리지로부터 폐기되게 하고, 제1 신호의 현재값을 이력 스토리지의 선두 엔트리 내부에 기록한다. 그후, 스텝 370에서 분석 트리거가 어서트되어, 이력 분석회로가 이력 스토리지의 현재 콘텐츠를 분석하게 한다.
도 6에 도시된 것과 같이, 제 1 신호가 어서트되지 않으면, 스텝 360에서, 제2 신호가 어서트되는지 판정하여, 그런 경우에는, 스텝 365, 370으로 처리가 진행한다. 그러나, 제1 신호 및 제2 신호 모두가 어서트되지 않은 경우에는, 액션이 취해지지 않고, 스텝 350으로 처리가 되돌아가 다음 클록 사이클에서 제1 및 제2 신호를 분석한다. 마찬가지로, 특정한 클록 사이클에서 제1 신호가 어서트되고 제2 신호도 어서트된 경우에는, 어떠한 액션도 취해지지 않고, 그 대신에 스텝 350으로 되돌아가 다음 클록 사이클시에 신호를 재평가한다.
도 4에 도시된 것과 같이, 이력 분석회로는, 분석 트리거에 응답하여 시프트 레지스터의 각각의 엔트리들의 콘텐츠를 판독하고, 소정의 값, 이와 같은 특정한 실시예에서는 논리 1 값을 기어하는 엔트리들의 총수를 계수하는 팝카운트(popcount) 회로(260)를 포함한다. 전술한 것과 같이, 논리 1 값을 기억하는 엔트리는 제1 신호의 어서션과 관련되는 한편, 논리 0 값을 기억하는 엔트리는 제2 신호의 어서션과 관련되므로, 시프트 레지스터 콘텐츠 내부의 논리 1 값들의 수를 계수함으로써, 이것은 제1 신호가 시프트 레지스터 콘텐츠에 의해 유지된 이력 윈도우 내부에서 어서트된 횟수를 나타낸다. 그후, 환경설정 블록(230)에 의해 설정될 수 있는 값을 갖는 제1 값 임계값 레지스터(265)가 설치되고, 비교회로(270)는, 팝카운트 회로에 의해 검출된 값이 스토리지 구성요소(265) 내부의 제1 임계값 이상인지 여부를 판정한다. 그런 경우에는, 이것이, 제2 이벤트의 발생에 대한 제1 이벤트의 발생의 비율이 허용되는 범위를 벗어나는 상황을 나타내는 것으로 생각되므로, 예외신호 발생회로에 보고신호가 어서트된다.
이때, 스토리지 구성요소(265) 내부에 기억된 제1 값 임계값은, m 및 n의 값, 따라서 제1 및 제2 이벤트의 발생에 근거하여 제1 신호 및 제2 신호가 어서트될 때의 빈도를 고려하도록 설정될 수 있다.
도 7은 도 4의 이력 분석회로의 동작을 나타낸 흐름도이다. 스텝 400에서, 분석 트리거가 어서트되었는지 판정한다. 전술한 것과 같이, 일 구현예에서는, 이력 스토리지에서 갱신이 행해질 때마다 분석 트리거가 어서트되므로, 분석 트리거가 시프트후 기록 회로(255)의 출력으로부터 직접 유도될 수 있다.
분석 트리거가 어서트되면, 이력 스토리지 내부의 각 엔트리의 값이 팝카운트 회로(260)에 의해 얻어지며, 도 4의 구현예에서는, 이들 값이 시프트 레지스터의 출력 인터페이스로부터 병렬로 얻어진다. 그후, 스텝 410에서, 이벤트 1에 대응하는 값을 갖는 엔트리들의 수가 계수된 후, 스텝 415에서 비교회로(270)를 사용하여 계수값이 제1 임계값에 도달하였는지 여부를 판정한다. 임계값에 도달하지 않은 경우에는, 추가적인 액션이 취해지지 않고, 보호신호가 어서트되지 않은 상태로 유지되고, 스텝 400으로 처리가 되돌아가 다음 분석 트리거의 수신을 대기한다. 그러나, 계수값이 제1 값 임계값에 도달하면, 스텝 420에서 보고신호가 어서트된다.
전술한 것과 같이, 보고신호가 어서트될 때마다, 예외신호 발생회로는 경로 295를 거쳐 예외신호를 어서트하도록 구성된다. 그러나, 도 4에 도시된 특정한 실시예에서는, 예외신호 발생회로의 동작이, 도 4에 도시된 것과 같이 본 실시예에서는 유효 계수 블록(275), 자격 부여 임계값 스토리지(280) 및 비교회로(285)로 이루어진 웜업 자격 부여회로로부터 수신된 자격 부여신호에 의해 자격이 주어진다.
도 4에 도시된 것과 같이, XOR 게이트(250)에 의해 논리 1 값이 어서트될 때마다, 유효 계수 블록(275) 내부의 계수값이 증분한다. 이 때문에, 유효 계수 블록(275)은 리셋 이벤트 이후에 이력 스토리지에 행해진 갱신 횟수의 계수값을 유지한다는 것을 알 수 있다.
환경설정 블록(230)의 제어하에서, 자격 부여 임계값이 스토리지 구성요소(280) 내부에 기억될 수 있으며, 자격 부여 임계값과 현재의 유효 계수값이 비교회로(285)에 전달된다. 비교회로(285)는, 계수값이 스토리지 구성요소(280) 내부에 기억된 자격 부여 임계값 이상인 경우에만 자격 부여신호를 어서트하도록 구성된다. 자격 부여 임계값의 적절한 선택에 의해, 특정한 갱신 횟수가 이력 스토리지에 대해 행해질 때까지 보고신호의 값에 무관하게 예외신호 발생회로가 예외를 발생하지 않도록 웜업 주기가 지정될 수 있다는 것을 알 수 있다. 예를 들어, 자격 부여신호가 어서트되기 전에, 이력 스토리지 내부의 적어도 모든 엔트리가 제1 신호 또는 제2 신호의 어서션에 응답하여 기록될 필요가 있도록 임계값이 설정될 수 있다.
도 8은 웜업 자격 부여회로의 동작을 나타낸 흐름도이다. 스텝 450에서, (본 발명에서는 갱신 카운터로서도 불리는) 유효 계수 블록(275)이 리셋 트리거시에 초기화된다. 예를 들어, 리셋 트리거는 PMU의 리셋시에 발생하거나, 또는, PMU 그 자체가 리셋되지 않을 때에도, 다른 상황에서 발생할 수도 있다.
갱신 카운터의 리셋 후에, 스텝 455로 처리가 진행하여, 이력 스토리지에 대해 갱신이 행해지고 있는지 여부를 판정하는데, 전술한 것과 같이 이것은 도 4의 실시예에서는 XOR 게이트(250)의 출력에 의해 표시된다. 이력이 갱신될 때마다, 갱신 카운터(275)가 스텝 460에서 증분된다. 그후, 스텝 465에서, 갱신 카운터 값을 자격 부여 임계값과 비교한 후, 스텝 470에서 자격 부여 임계값에 도달하였는지 여부가 판정된다.
도달하지 않은 경우에는, 스텝 455로 처리가 되돌아가, 이력 스토리지에 대한 다음의 갱신을 대기한다. 그러나, 임계값에 도달하면, 리셋 트리거가 발생할 때까지 스텝 475에서 자격 부여신호가 어서트되고, 그후 스텝 450으로 처리가 되돌아간다.
도 9는 도 4의 실시예에서의 예외신호 발생회로의 동작을 나타낸 것으로, 도 4에 도시된 것과 같이 이 구성요소는 AND 게이트(290)로 구현된다. 스텝 500에서, 보고신호가 어서트되는지 판정하여, 어서트되지 않은 경우에는 액션이 취해지지 않는다. 그러나, 보고신호가 어서트되면, 자격 부여신호가 어서트되는지 판정하여, 마찬가지로 어서트되지 않은 경우, 액션이 취해지지 않는다. 그러나, 스텝 505에서, 자격 부여신호가 어서트되었다고 판정되면, 스텝 510에서, 예외신호 발생회로는 인터럽트 제어기(30)에 예외신호를 어서트한다.
이때, 전술한 도면을 참조하여 설명한 성능 모니터링부는, 다양한 다른 이벤트들 사이의 비율을 감시하기 위해, 다양한 상황에서 사용될 수 있다는 것을 알 수 있다. 더구나, PMU는 이벤트들의 한 개의 비율만을 감시하는 것에 반드시 한정되는 것은 아니며, 회로 구성요소들의 적절한 중복에 의해, 복수의 비율을 동시에 감시하도록 PMU가 구성될 수 있다는 것은 자명하다.
단지 예시적으로, 제1 및 제2 이벤트들의 비율의 모니터링을 통해 얻어진 성능 모니터링 정보를 사용하여 테이블 결합 동작을 위해 사용되는 적절한 알고리즘을 결정하는 유스 케이스를 고려한다. 관계형 데이터를 사용하는 데이터베이스 관리 시스템 등의 데이터베이스 관리 시스템에서는, 예를 들어, 소트 병합 결합 알고리즘이나 해시 결합 알고리즘 등의 다양한 다른 메카니즘을 사용하여 테이블 결합 동작을 구현하는 것이 가능하다. 이들 알고리즘의 어느것도 반드시 다른 것보다 양호하지는 않으며, 각각의 알고리즘의 강점과 약점은 항상 선험적으로 알려지지는 않은 다수의 인자에 의존한다. 이 때문에, 알고리즘의 성능을 감시하면서 이들 알고리즘 중에서 한 개를 시도하여, 그것의 실행이 최적이 아닌 경우에 다른 알고리즘으로 전환을 가능하게 하는 것이 바람직하다. 예를 들어, 해시 결합 알고리즘은 마이크로아키텍처에서 다수의 로드-스토어 에일리어스 이벤트를 발생하는 반면에, 소트-병합 결합 알고리즘은 잠재적으로 다수의 분기 예측실패를 발생할 수도 있다.
도 10은 테이블 결합 동작을 개략적으로 나타낸 것이다. 본 실시예에서는, 2개의 테이블(550, 560)이 유지된다. 테이블 550은 주문 ID와 각각의 주문에 대한 관련된 고객 ID에 대한 정보를 유지하는 주문 테이블이다. 이와 같은 특정한 실시예에서, 이것은, 33의 고객 ID를 갖는 고객이 주문 ID 1001 및 1501을 갖는 2개의 주문을 했다는 것을 나타낸다. 제2 테이블(560)은 고객 테이블이며 각각의 고객 ID와 관련된 고객을 식별한다. 본 실시예에서, 이것은 ID 33을 갖는 고객이 XYZ Ltd라는 것을 나타낸다.
도 10의 실시예에서는, 이들 두 개의 테이블이 고객 ID에 대한 정보를 제공한다는 것을 알 수 있다. 관계형 데이터베이스 용어에서는, 고객 테이블 내부에 제공된 각각의 고객 ID가 고유하기 때문에, 즉 XYZ Ltd에 대해 단지 한 개의 엔트리만 존재하기 때문에, 테이블 560과 관련된 고객 ID를 주 키로 부른다. 그러나, 다른 테이블의 주 키(본 실시예에서는 고객 ID)의 복수의 인스턴스가 이 테이블 내에서 발생하기 때문에, 주문 테이블(550) 내부의 고객 ID 필드는 외래 키로 불린다.
블록 570으로 개략적으로 나타낸 것과 같이, 해시 결합 알고리즘이나 소트-병합 결합 알고리즘을 사용하여 내부 테이블 결합 동작을 행하여, XYZ Ltd에 의해 행해진 주문을 식별하는 결과적인 출력 테이블(580)을 생성할 수 있다.
전술한 것과 같이, 가능한 알고리즘들 중에서 어느 것이 특정한 상황에서 더 양호하게 행해지는지는 선험적으로 알려지지 않을 수도 있다. 따라서, 알고리즘들 중에서 한 개가 시작 알고리즘으로 선택되도록 시스템이 설정될 수 있지만, 이 경우에는 PMU(20)를 사용하여 성능 문제에 대한 그것의 거동을 감시한다. 이와 같은 접근방법을 도 11의 흐름도에 나타낸다. 이 때문에, 초기화 시간에, 테이블 결합 동작을 행할 때, 스텝 600에서 예를 들어 해시 결합 알고리즘이 선택될 수 있다. 전술한 것과 같이, 해시 결합 알고리즘은 잠재적으로 다수의 로드-스토어 에일리어스 이벤트를 발생할 수도 있다.
따라서, 스텝 605에서, PMU는, 이벤트 1로서 에일리어싱으로 인한 로드 재현(load replay) 이벤트를 감시하고 이벤트 2로서 퇴출된 명령을 감시하도록 설정된다. 더구나, 퇴출된 명령에 대한 로드 재현의 비율이 특정한 레벨에 도달할 때, 예외가 발생되도록 하기 위해 임계값이 설정된다. 이것은, 스토리지 구성요소들 220, 225 내부의 값들 m, n과 스토리지 구성요소 265 내부의 제1값 임계값의 적절한 설정을 통해 달성될 수 있다. 전술한 것과 같이, 웜업 기간 중에 예외가 발생되지 않도록 보장하기 위해, 스토리지 구성요소 290 내부에 자격 부여 임계값이 더 지정될 수 있다.
이 때문에, 단순히 매우 구체적인 예를 들어 설명하면, PMU를 환경설정하는 역할을 하는 엔티티가, 알고리즘의 한 개의 루프가 100개의 명령들을 포함하고, 다른 스토어들과 에일리어싱 문제를 잠재적으로 가질 수 있는 11개의 로드 명령이 존재한다는 것을 알고 있다. 따라서, mm을 11과 같게 설정하고 n을 100과 같게 설정하여 한 개의 루프의 반복의 측정 그래뉼래러티(granularity)가 선택된다. 이 때문에, 제1 신호는 11개의 에일리어싱 이벤트들마다 어서트되고, 제2 신호는 100개의 퇴출된 명령들마다 어서트된다.
더구나, 알고리즘의 최초의 반복이 웜업으로 인한 그것의 전체 거동을 반영하지 않을 수도 있으므로, 알고리즘의 특정한 수의 반복이 발생하고 이에 대응하는 갱신에 이력 스토리지 내에서 행해질 때까지 예외 트리거가 발생되지 않도록 보장하는데 충분히 큰 값으로 자격 부여 임계값이 설정될 수도 있다. 단순히 예를 들어, 자격 부여 임계값이 20으로 설정되어, 예외신호가 발생되기 전에 이력 스토리지의 최소한 20번의 갱신을 필요로 할 수도 있다. 최종적으로, 유저는, 에일리어싱으로 인한 로드 재현이 존재하는 경우 이것이 중요하지 않다는 견해를 가질 수 있으며, 이것들이 매우 빈번한 경우 시스템에게 경고를 발생하기 원한다. 특정한 실시예로서, 시프트 레지스터가 8개의 엔트리를 갖고, 제1 값 임계값이 3으로 설정되어, 8개의 이력 비트들 중에서 3개 이상이 1로 설정되는 경우, 보고신호가 어서트된다는 것을 의미한다. 전술한 구체적인 에에 대해서, 이것은, 예외가 발생하기 전에 500개의 퇴출된 명령들의 윈도우 내에서 발생하는 에일리어싱으로 인한 최소한 33개의 로드 재현이 존재해야 한다는 것을 의미한다.
이때, 전수한 구치는 단지 예시를 위해 주어진 것으로, 이들 수치는 특정한 상황에 대해 필요에 따라 설정될 수 있다는 것을 자명하다.
도 11로 되돌아가, 스텝 610에서, 예외가 기동되었는지 판정되고, 기동된 경우에는, 스텝 615에서 인터럽트 제어기(30)가 CPU(4) 상에서 실행할 유저 정의된 핸들러를 기동하고, 이때 이 유저 정의된 핸들러의 실행은, 테이블 결합 동작을 위한 소트-병합 결합 알고리즘으로 알고리즘을 전환할 것인지 여부, 또는 그 대신에 해시 결합 알고리즘을 계속할 것인지 여부를 판정한다. 예를 들어, 소트 병합 알고리즘으로 전환하는 것이 적절한 것으로 판정되면, 핸들러가 그것의 반환 어드레스를 수정하고 어플리케이션의 제어 흐름을 재조정하여 소트 병합 알고리즘의 사용으로 전환하도록 선택할 수도 있다. 이와 달리, 얼마나 많은 작업이 이미 행해졌는지에 따라, 해시 결합 알고리즘을 계속하는 것이 적합한 것으로 결정될 수도 있다.
스텝 615에서 취해진 판정에 근거하여, 스텝 620에서 예외로부터의 복귀 후에 PMU에 의한 이벤트 모니터링을 리셋할 것인지 디스에이블할 것인지 더 판정해도 된다. 예를 들어, 스텝 615에서 프로세스가 소트 병합 알고리즘으로 전환되면, 이벤트 모니터링을 디스에이블하는 것이 적절한 것으로 판정되는 반면에, 해시 결합 알고리즘을 계속하는 것으로 판정되는 경우에는, 이벤트 모니터링 메카니즘을 리셋하는 것이 적절한 것으로 판정된다.
전술한 설명으로부터, 본 발명에서 설명하는 기술은, 어플리케이션이 어떻게 행하고 있는지 실시간으로 검사하고 필요한 교정 조치가 취해지지 위한 경량의 환경설정가능한 메카니즘을 제공한다. 전술한 메카니즘은 해당 비율의 연속 모니터링을 허용한다. 더구나, 비율이 환경설정가능한 임계값을 교차할 때에만 어플리케이션에게 통보하여, 비율이 초과하였는지 판정하기 위해 불필요한 계산이 행해지는 것을 방지한다. 따라서, 전술한 메카니즘은 데이터 처리 시스템 내부에서의 실시간 성능 모니터링/신호전송을 행하기 위한 매우 효율적이고 효과적인 메카니즘을 제공한다.
본 발명에서, 단어 "하도록 구성된"은 장치의 구성요소가 정의된 동작을 행할 수 있는 구성을 갖는다는 것을 의미하기 위해 사용된다. 이와 관련하여, "구성"은 하드웨어 또는 소프트웨어의 배치 또는 상호접속방식을 의미한다. 예를 들어, 장치는 정의된 동작을 제공하는 전용 하드웨어를 갖거나, 프로세서 또는 기타의 처리장치가 기능을 행하도록 프로그래밍되어도 된다. "하도록 구성된"은 이 장치의 구성요소가 정의된 동작을 제공하기 위해 어떤 식으로 변경될 필요가 있는 것을 시사하는 것은 아니다.
첨부도면을 참조하여 본 발명의 예시적인 실시예들을 상세히 설명하였지만, 본 발명은 이들 실시예에 한정되지 않으며, 첨부된 청구범위의 보호범위 및 사상을 벗어나지 않으면서 본 발명이 속한 기술분야의 당업자에 의해 다양한 변경, 부가 및 변화가 행해질 수 있다는 것은 자명하다. 예를 들면, 종속항들의 특징들의 다양한 조합이 독립항들의 특징과 행해질 수도 있다.

Claims (20)

  1. 데이터 처리 시스템 내부의 제1 이벤트의 발생을 감시하고, m이 1 이상의 정수일 때, 상기 제1 이벤트의 모든 m번째 발생을 표시하기 위해 제1 신호를 어서트(assert)하는 제1 이벤트 모니터링 회로와,
    상기 데이터 처리 시스템 내부의 제2 이벤트의 발생을 감시하고, n이 1 이상의 정수일 때, 상기 제2 이벤트의 모든 n번째 발생을 표시하기 위해 제2 신호를 어서트하는 제2 이벤트 모니터링 회로와,
    어서트된 상기 제1 및 제2 신호들에 따라 갱신되는 이벤트 이력 정보를 유지하는 이력 유지회로와,
    상기 이벤트 이력 정보를 분석하는 분석 트리거에 응답하여, 상기 제1 이벤트의 발생과 상기 제2 이벤트의 발생 사이의 비율이 허용되는 범위를 벗어난 것으로 상기 이벤트 이력 정보가 표시할 때 보고 상태를 검출하는 이력 분석회로를 구비하고,
    상기 이력 분석회로는 상기 보고 상태의 검출에 응답하여 보고 신호를 어서트하는 장치.
  2. 제 1항에 있어서,
    상기 이력 분석회로는, 상기 비율이 선택된 임계값에 도달한 것으로 상기 이벤트 이력 정보가 표시할 때, 상기 비율이 허용되는 범위를 벗어난 것으로 검출하도록 구성된 장치.
  3. 제 1항 또는 제 2항에 있어서,
    상기 이벤트 이력 정보가 갱신될 때마다 상기 분석 트리거가 발생되는 장치.
  4. 제 1항 내지 제 3항 중 어느 한 항에 있어서,
    상기 이력 유지회로는 복수의 엔트리들을 포함하는 이력 스토리지를 구비하고, 각각의 엔트리는 이력 데이터의 항목을 기억하도록 구성되고, 이력 데이터의 각 항목은 상기 제1 신호의 어서션(assertion) 또는 상기 제2 신호의 어서션을 나타내는 장치.
  5. 제 4항에 있어서,
    상기 이력 유지회로는, 상기 제1 신호 및 상기 제2 신호를 수신하고, 수신된 상기 제1 및 제2 신호들에 따라 상기 이력 스토리지가 갱신되게 하도록 구성된 갱신회로를 더 구비한 장치.
  6. 제 5항에 있어서,
    상기 이력 스토리지는 p개의 엔트리들을 포함하는 시프트 레지스터로서 구성되고, 상기 갱신회로로부터의 갱신 트리거에 응답하여 이력 데이터의 새로운 항목을 상기 시프트 레지스터 내부의 선두 엔트리에 추가하는 장치.
  7. 제 6항에 있어서,
    이력 데이터의 각각의 새로운 항목이 추가될 때, 상기 시프트 레지스터 내부의 이력 데이터의 가장 오래된 항목이 폐기됨으로써, 상기 시프트 레지스터가 이력 데이터의 p개의 가장 최근의 항목들을 유지하는 장치.
  8. 제 6항 또는 제 7항에 있어서,
    상기 시프터 레지스터는 직렬 입력 병렬 출력 시프트 레지스터이고, 상기 이력 분석회로가 상기 시프트 레지스터의 출력에 접속되어 상기 분석 트리거에 응답하여 이력 데이터의 p개의 항목을 수신하는 장치.
  9. 제 6항 내지 제 8항 중 어느 한 항에 있어서,
    상기 시프트 레지스터의 입력이 상기 제1 신호에 접속됨으로써, 상기 갱신 트리거의 발생시, 상기 시프트 레지스터 내부의 상기 선두 엔트리에 추가된 이력 데이터의 새로운 항목이 상기 제1 신호의 현재값을 나타내는 장치.
  10. 제 9항에 있어서,
    상기 갱신회로는, 상기 제1 신호가 어서트되거나 상기 제2 신호가 어서트될 때 상기 갱신 트리거를 발행하지만, 상기 제1 신호 및 상기 제2 신호가 동시에 어서트될 때에는 상기 갱신 트리거를 생략하도록 구성된 장치.
  11. 제 4항 내지 제 10항 중 어느 한 항에 있어서,
    상기 이력 데이터의 각 항목은 상기 제1 신호의 어서션을 나타내는 제1 값과 상기 제2 신호의 어서션을 나타내는 제2 값을 기억하고, 상기 이력 분석회로는, 상기 이력 스토리지의 엔트리들 내부에 기억된 값들을 참조하여 상기 비율이 언제 상기 허용되는 범위를 벗어나는지를 판정하는데 사용되는 임계값 정보를 식별하는 임계값 표시 스토리지를 구비한 장치.
  12. 제 11항에 있어서,
    상기 임계값 정보는 상기 이력 스토리지의 엔트리들 내부의 상기 제1 값의 발생 횟수에 대한 임계값을 제공하는 장치.
  13. 제 1항 내지 제 12항 중 어느 한 항에 있어서,
    상기 보고신호가 어서트되는지 여부에 따라 상기 데이터 처리 시스템의 인터럽트 제어기에 예외신호를 어서트하도록 구성된 예외신호 발생회로를 더 구비한 장치.
  14. 제 13항에 있어서,
    상기 이력 유지회로에 의해 유지된 상기 이벤트 이력 정보에 대해 결정된 횟수의 갱신이 행해질 때까지, 상기 보고신호에 근거하여 상기 예외신호의 발생을 금지하는데 사용되는 웜업 자격 부여회로를 더 구비한 장치.
  15. 제 14항에 있어서,
    상기 웜업 자격 부여회로는, 상기 이벤트 이력 정보에 대해 행해진 갱신 횟수를 나타내는 갱신 계수값을 유지하는 갱신 카운터 스토리지를 구비하고, 상기 갱신 횟수가 자격 부여 임계값에 도달할 때 자격 부여신호를 어서트하도록 구성되고,
    상기 예외신호 발생회로는, 상기 보고신호 및 상기 자격 부여신호 모두가 어서트될 때, 상기 예외신호를 어서트하도록 구성된 장치.
  16. 제 1항 내지 제 15항 중 어느 한 항에 있어서,
    m이 1보다 크고,
    상기 제1 이벤트 모니터링 회로는, 리셋 이벤트 이후에 관측된 상기 제1 이벤트의 발생 횟수를 나타내는 제1 이벤트 계수값을 유지하는 제1 이벤트 카운터 스토리지를 구비하고, 발생 횟수가 값 m에 도달할 때 상기 제1 신호를 어서트하도록 구성되며, 그후 리셋 이벤트가 기동되어 상기 제1 이벤트 계수값을 초기값으로 리셋하는 장치.
  17. 제 1항 내지 제 16항 중 어느 한 항에 있어서,
    n이 1보다 크고,
    상기 제2 이벤트 모니터링 회로는, 리셋 이벤트 이후에 관측된 상기 제2 이벤트의 발생 횟수를 나타내는 제2 이벤트 계수값을 유지하는 제2 이벤트 카운터 스토리지를 구비하고, 발생 횟수가 값 n에 도달할 때 상기 제2 신호를 어서트하도록 구성되며, 그후 리셋 이벤트가 기동되어 상기 제2 이벤트 계수값을 초기값으로 리셋하는 장치.
  18. 제 16항 또는 제 17항에 있어서,
    m 및 n의 값의 표시를 유지하는 환경설정가능한 임계값 스토리지를 더 구비한 장치.
  19. 데이터 처리 시스템 내부의 이벤트들을 감시하는 방법으로서,
    상기 데이터 처리 시스템 내부의 제1 이벤트의 발생을 감시하고, m이 1 이상의 정수일 때, 상기 제1 이벤트의 모든 m번째 발생을 표시하기 위해 제1 신호를 어서트하는 단계와,
    상기 데이터 처리 시스템 내부의 제2 이벤트의 발생을 감시하고, n이 1 이상의 정수일 때, 상기 제2 이벤트의 모든 n번째 발생을 표시하기 위해 제2 신호를 어서트하는 단계와,
    이력 유지회로를 사용하여, 어서트된 상기 제1 및 제2 신호들에 따라 갱신되는 이벤트 이력 정보를 유지하는 단계와,
    분석 트리거에 응답하여, 상기 이벤트 이력 정보를 분석하는 이력 분석회로를 사용함으로써, 상기 제1 이벤트의 발생과 상기 제2 이벤트의 발생 사이의 비율이 허용되는 범위를 벗어난 것으로 상기 이벤트 이력 정보가 표시할 때 보고 상태를 검출하는 단계와,
    상기 보고 상태의 검출에 응답하여 보고 신호를 어서트하는 단계를 포함하는 감시방법.
  20. 데이터 처리 시스템 내부의 제1 이벤트의 발생을 감시하고, m이 1 이상의 정수일 때, 상기 제1 이벤트의 모든 m번째 발생을 표시하기 위해 제1 신호를 어서트하는 제1 이벤트 모니터링 수단과,
    상기 데이터 처리 시스템 내부의 제2 이벤트의 발생을 감시하고, n이 1 이상의 정수일 때, 상기 제2 이벤트의 모든 n번째 발생을 표시하기 위해 제2 신호를 어서트하는 제2 이벤트 모니터링 수단과,
    어서트된 상기 제1 및 제2 신호들에 따라 갱신되는 이벤트 이력 정보를 유지하는 이력 유지수단과,
    분석 트리거에 응답하여, 상기 이벤트 이력 정보를 분석함으로써, 상기 제1 이벤트의 발생과 상기 제2 이벤트의 발생 사이의 비율이 허용되는 범위를 벗어난 것으로 상기 이벤트 이력 정보가 표시할 때 보고 상태를 검출하는 이력 분석수단을 구비하고,
    상기 이력 분석수단은 상기 보고 상태의 검출에 응답하여 보고 신호를 어서트하는 장치.
KR1020217005139A 2018-10-03 2019-08-30 데이터 처리 시스템에서 이벤트를 감시하는 장치 및 방법 KR20210065930A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1816147.1 2018-10-03
GB1816147.1A GB2577708B (en) 2018-10-03 2018-10-03 An apparatus and method for monitoring events in a data processing system
PCT/GB2019/052428 WO2020070465A1 (en) 2018-10-03 2019-08-30 An apparatus and method for monitoring events in a data processing system

Publications (1)

Publication Number Publication Date
KR20210065930A true KR20210065930A (ko) 2021-06-04

Family

ID=67851166

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217005139A KR20210065930A (ko) 2018-10-03 2019-08-30 데이터 처리 시스템에서 이벤트를 감시하는 장치 및 방법

Country Status (7)

Country Link
US (1) US11797415B2 (ko)
EP (1) EP3861447A1 (ko)
JP (1) JP7379469B2 (ko)
KR (1) KR20210065930A (ko)
CN (1) CN112639744B (ko)
GB (1) GB2577708B (ko)
WO (1) WO2020070465A1 (ko)

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4800562A (en) * 1987-04-27 1989-01-24 Northern Telecom Limited Circuit and method for monitoring the quality of data in a data stream
US5436914A (en) * 1991-11-08 1995-07-25 International Business Machines Corporation Control of non-resettable counters by multiple processes
US5937437A (en) * 1996-10-28 1999-08-10 International Business Machines Corporation Method and apparatus for monitoring address translation performance
US6067643A (en) 1997-12-24 2000-05-23 Intel Corporation Programmable observation system for monitoring the performance of a graphics controller
US7529979B2 (en) * 2003-12-12 2009-05-05 International Business Machines Corporation Hardware/software based indirect time stamping methodology for proactive hardware/software event detection and control
US7181599B2 (en) * 2004-01-14 2007-02-20 International Business Machines Corporation Method and apparatus for autonomic detection of cache “chase tail” conditions and storage of instructions/data in “chase tail” data structure
US7284158B2 (en) * 2004-02-10 2007-10-16 International Business Machines Corporation Processor bus for performance monitoring with digests
CN1961285B (zh) 2004-06-02 2011-05-25 英特尔公司 Tlb相关分支预测器及其使用方法
US7228472B2 (en) * 2005-01-11 2007-06-05 Hewlett-Packard Development Company, L.P. System and method to control data capture
US7509539B1 (en) * 2008-05-28 2009-03-24 International Business Machines Corporation Method for determining correlation of synchronized event logs corresponding to abnormal program termination
JP5326708B2 (ja) * 2009-03-18 2013-10-30 富士通株式会社 演算処理装置および演算処理装置の制御方法
US9021172B2 (en) * 2012-07-06 2015-04-28 Arm Limited Data processing apparatus and method and method for generating performance monitoring interrupt signal based on first event counter and second event counter
US9454424B2 (en) * 2014-08-27 2016-09-27 Freescale Semiconductor, Inc. Methods and apparatus for detecting software inteference
US9766997B2 (en) * 2016-01-29 2017-09-19 Intel Corporation Monitoring performance of a processor using reloadable performance counters

Also Published As

Publication number Publication date
JP7379469B2 (ja) 2023-11-14
EP3861447A1 (en) 2021-08-11
US20210342248A1 (en) 2021-11-04
CN112639744A (zh) 2021-04-09
GB2577708B (en) 2022-09-07
US11797415B2 (en) 2023-10-24
CN112639744B (zh) 2024-04-19
JP2022501700A (ja) 2022-01-06
WO2020070465A1 (en) 2020-04-09
GB2577708A (en) 2020-04-08

Similar Documents

Publication Publication Date Title
US9477479B2 (en) Instruction prefetch throttling using instruction count and branch prediction
JP5095820B2 (ja) データプリフェッチスロットル
US8185724B2 (en) Monitoring values of signals within an integrated circuit
US9021172B2 (en) Data processing apparatus and method and method for generating performance monitoring interrupt signal based on first event counter and second event counter
US10140216B2 (en) Measuring address translation latency
US6374367B1 (en) Apparatus and method for monitoring a computer system to guide optimization
US5675729A (en) Method and apparatus for performing on-chip measurement on a component
US7519510B2 (en) Derivative performance counter mechanism
US8185772B2 (en) Determining execution times of commands
KR101020011B1 (ko) 데이터 처리 시스템에서 성능 이벤트를 검출하고 기록하기 위한 장치 및 방법
KR20210065930A (ko) 데이터 처리 시스템에서 이벤트를 감시하는 장치 및 방법
US8271711B2 (en) Program status detecting apparatus and method
Dybdahl et al. Enhancing last-level cache performance by block bypassing and early miss determination
JPH0353357A (ja) キャッシュメモリ制御用集積回路
KR20240027129A (ko) 페이지 액세스 빈도 추적
JP2023526554A (ja) 処理回路によって処理されるサンプル操作のプロファイリング
Zhao et al. Mitigating the mismatch between the coherence protocol and conflict detection in hardware transactional memory
Olson et al. Probabilistic Directed Writebacks for Exclusive Caches