KR20010043286A - 비침입적인 성능 검사 - Google Patents

비침입적인 성능 검사 Download PDF

Info

Publication number
KR20010043286A
KR20010043286A KR1020007012246A KR20007012246A KR20010043286A KR 20010043286 A KR20010043286 A KR 20010043286A KR 1020007012246 A KR1020007012246 A KR 1020007012246A KR 20007012246 A KR20007012246 A KR 20007012246A KR 20010043286 A KR20010043286 A KR 20010043286A
Authority
KR
South Korea
Prior art keywords
circuit
value
signal
counter
performance
Prior art date
Application number
KR1020007012246A
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 KR20010043286A publication Critical patent/KR20010043286A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/70Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using stochastic pulse trains, i.e. randomly occurring pulses the average pulse rates of which represent numbers
    • 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/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • 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

Abstract

집적 회로(101)는 집적 회로의 성능 파라미터를 나타내는 제 1 입력 신호를 수신하고 성능 파라미터의 측정으로서 카운트 값을 제공하도록 결합된 적응형 가산기 회로를 포함하는 성능 검사 회로(107)를 포함한다. 상기 적응형 가산기 회로는 임의수를 제공하는 임의수 발생기 회로(205)와, 카운트 값을 제공하는 카운터 회로(201)와, 그리고 임의수와 카운트 값을 비교한 다음 그의 비교 신호를 출력하도록 결합된 비교기 회로(203)를 포함하며, 상기 비교 신호는 카운터에 업/다운 카운트 신호로서 제공된다. 적응형 가산기 회로는 또한 측정된 성능 파라미터 및 비교 신호(204)를 수신하도록 결합된 제 1 로직 회로(207)를 포함하며, 이는 카운터 회로의 동작을 제어하는 데에 이용되는 제 1 제어 신호를 출력한다. 카운터 회로는 제 1 입력 신호와 비교 신호가 다른 값일 때에는 업 또는 다운을 카운트하도록 반응하며, 제 1 입력 신호와 비교 신호가 같은 값일 때에는 카운트하지 않도록 반응한다.

Description

비침입적인 성능 검사{NON-INTRUSIVE PERFORMANCE MONITORING}
데스크탑 컴퓨터 시스템들에서 이용되는 대부분의 마이크로프로세서들은 성능 검사 카운터들을 구비한다. 이러한 카운터들에 의해 프로세서 성능 파라미터들이 검사 및 측정된다. 이러한 정보는 성능을 튜닝하는 데에 유용하다. 현재의 기술들은 전형적으로 미리지정된 사건들의 발생을 동시에 기록하는 2개의 카운터들을 이용한다. 카운터들중 하나가 오버플로우되면, 카운팅은 정지되고 인터럽트가 발생한다. 후처리 소프트웨어가 이용되어 수집된 데이터를 분석한다.
전형적으로 2개의 큰 카운터들, 예를 들어 40 비트 또는 그 이상의 카운터들이 이벤트 카운팅을 위해 제공된다. 카운터는 일반적으로 레지스터 어드레스 공간으로부터 판독 및 기록될 수 있다. 카운터들은 캐시 내에서 히트하는 데이터 판독의 수로서 상기 파라미터들을 측정하도록 구성된다. 결정된 캐시 히트로 구성될 때, 제 1 카운터는 캐시 히트의 수를 기록하도록 프로그램되고, 제 2 카운터는 수행되는 실제 데이터 판독의 수를 기록하도록 프로그램된다. 이 두개의 수의 비는 판독 동작에 대한 캐시 히트율을 제공한다. 측정된 성능 파라미터들은 미래의 성능에 대한 좋은 판단기준이 된다. 어떠한 경우 실제 성능은 측정 기준과 상당히 차이가 날 수도 있다. 전형적으로 2개의 큰 카운터를 이용하게 되면 평균으로부터의 이러한 편차를 측정하려는 어떠한 시도도 하지 않게 된다.
카운터들중 하나가 그의 한계에 도달하게 되면, 오버플로우 신호가 모든 카운팅을 중지시키고 인터럽트를 발생시킨다. 이후, 소프트웨어 인터럽트 핸들러는 카운터 값들을 기록하고, 후 데이터 처리 및 필요한 다른 모든 지원 작업을 완료한다.
카운터는 크기가 중요하다. 카운터가 클수록, 인터럽트가 덜 빈번하게 발생된다. 이러한 인터럽트는 정상적인 프로세서 작동을 방해하기 때문에 바람직하지 않다. 더 큰 카운터는 또한 더 큰 데이터 평균화를 야기시킨다. 따라서, 캐시 히트 레이트의 일시적인 변동은 주목할 필요가 없을 수도 있다. 이러한 일시적인 변동은 중요할 수도, 중요하지 않을 수도 있다.
성능 검사가 수행되기 전에, 카운터 오버플로우를 처리하는 인터럽트 핸들러가 설치되어야 한다. 물론, 오버플로우는 상당히 큰 카운터를 이용하여 피할 수 있다. 그러나, 이렇게 상당히 큰 카운터는 실행하는 데에 비용이 많이 들고, 바람직한 분석을 정확하게 수행하지 못할 수도 있다. 가령 2개의 큰 카운터를 제공할 필요가 없고, 카운터 오버플로우를 처리할 필요가 없으며, 소프트웨어 인터럽트 핸들러를 제공할 필요가 없는 프로세서와 같은 집적 회로 내에서 성능 파라미터들을 검사하는 것이 바람직할 것이다. 또한, 이러한 성능 검사가 시스템 내의 프로세서의 정상적인 기능을 방해하지 않도록 하는 것이 바람직할 것이다.
본 발명은 집적 회로 내에서의 성능 검사에 관한 것이다.
도 1은 본 발명을 통합하는 집적 회로의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 적응형 가산기 회로를 보여주는 도면이다.
도 3은 25%의 가능성을 갖는 입력 데이터 스트림을 측정하는 8 비트 카운터를 갖는 적응형 가산기 회로에 대한 측정값 및 입력 테스트 데이터의 그래프이다.
도 4는 78%의 가능성을 갖는 입력 데이터 스트림을 측정하는 8 비트 카운터를 갖는 적응형 가산기 회로에 대한 측정값 및 입력 테스트 데이터의 그래프이다.
도 5는 78%의 가능성을 갖는 입력 데이터 스트림을 측정하는 12 비트 카운터를 갖는 적응형 가산기 회로에 대한 측정값 및 입력 테스트 데이터의 그래프이다.
도 6은 본 발명의 일 실시예에 따른 의사 임의수 발생기를 나타낸 도면이다.
도 7은 본 발명의 다른 실시예를 도시한 것으로, 여기서 집적 회로는 다중의 성능 파라미터들이 제공되는 적응형 가산기 파라미터와, 성능 파라미터를 선택하는 선택 레지스터와, 샘플 카운터 및 입/출력 포트를 구비한다.
따라서, 본 발명은 마이크로프로세서 또는 마이크로컨트롤러 또는 다른 집적 회로를 이용하여 성능 데이터를 수집 및 분석하는 새로운 기술을 제공한다. 이러한 기술은 궁극적으로 오버플로우되는 고정된 크기의 카운터들에 의해 부가되는 한계를 피할 수 있게 한다. 이 방법은 덜 침입적이며, 넓은 범위의 성능 파라미터들의 검사에 적절하다.
제 1 실시예에서, 집적 회로는 집적 회로의 성능 파라미터를 나타내는 제 1 입력 신호를 수신하고 성능 파라미터의 측정치로서 카운트 값을 제공하도록 결합된 적응형 가산기 회로를 포함하는 성능 검사 회로를 포함한다. 상기 적응형 가산기 회로는 임의수를 제공하는 임의수 발생기 회로와, 카운트 값을 제공하는 카운터 회로와, 그리고 임의수와 카운트 값을 비교한 다음 그의 비교 신호를 출력하도록 결합된 비교기 회로를 포함하며, 상기 비교 신호는 카운터에 업/다운 카운트 신호로서 제공된다. 적응형 가산기 회로는 또한 측정된 성능 파라미터 및 비교 신호를 수신하도록 결합된 제 1 로직 회로를 포함한다. 제 1 로직 회로는 카운터 회로의 동작을 제어하는 데에 이용되는 제 1 제어 신호를 출력한다. 카운터 회로는 제 1 입력 신호와 비교 신호가 다른 값일 때에는 업 또는 다운을 카운트하도록 반응하며, 제 1 입력 신호와 비교 신호가 같은 값일 때에는 카운트하지 않도록 반응한다.
다른 실시예에서, 집적 회로 내에서의 성능 파라미터 측정 방법은 적응형 가산기 회로에 성능 파라미터를 나타내는 제 1 입력 신호를 제공하는 단계와, 그리고 성능 파라미터의 가능 측정으로서 상기 적응형 가산기 회로에서의 카운트 값을 결정하는 단계를 포함한다. 비교 신호는 제 1 제어 신호로서 카운터 회로에 제공된다. 이 방법은 또한 카운터 회로의 동작을 제어하기 위한 제 2 제어 신호를 제공하기 위하여 성능 파라미터와 비교 신호를 논리적을 결합시키는 단계를 포함한다.
당업자라면 하기의 첨부 도면을 참조함으로써 본 발명을 좀 더 잘 이해할 수 있을 것이며, 본 발명의 많은 목적들, 특징들, 및 장점들이 명백해질 것이다.
도 1을 참조하면, 마이크로프로세서, 또는 프로세서를 구비하는 마이크로컨트롤러가 될 수도 있는 집적 회로(101)는, 가령 온칩 캐시 메모리와 같은 기능 로직(103)과, 성능 데이터를 검출하는, 가령 캐시 히트가 있었는지 없었는지를 검출하는 성능 검출 회로(105) 및 성능 검사 회로(107)를 포함한다. 가령 캐시 히트 레이트, 또는 메모리를 읽는 주기수와 같이, 집적 회로(107)에서 측정된 성능 데이터의 타입은 실질적으로 임의적이다.
예를 들어, 각각의 메모리 접속시 온칩 캐시는 필요한 데이터를 성공적으로 제공할 수도 있으며 제공하지 못할 수도 있음을 고려하자. 히트 및 미스 테이터의 시퀀스는 성능 검출 회로(105)에 의해 결정되어, 단일의 1 또는 0 비트 스트림으로서 성능 검사 회로(107)에 제공될 수 있다. 1의 가능성은 히트가 발생하는 가능성이다. 캐시 히트 성능을 측정하기 위하여, 가령 도 2에 나타낸 것과 같은 성능 검사 회로가 가능성 스트림을 통합하고 캐시 히트 또는 발생하는 다른 성능 파라미터의 적절한 가능성을 결정하는 데에 이용될 수 있다.
도 2는 성능 검사 회로(107)로서 이용되는 적응형 가산기 회로의 일 실시예를 도시한다. 카운터(201)는 임의수 발생기 회로(205)에서 발생된 임의수를 비교기(203)에서 비교되는 카운터 값에 제공한다. 만일 카운터 값이 임의수 보다 크거나 같다면, 1이 발생된다. 큰 카운트 값들이 작은 카운터 값들 보다 비교기로부터 1 출력이 더 발생되게 할 것이다. 비교기로부터 비교되는 비교 신호(204)는 업/다운 카운트 신호로서 카운터(201)에 다시 제공된다. 카운트가 임의수보다 큼을 비교기가 나타내면 비교 신호(204)는 카운터(201)를 다운 카운터로서 구성하고, 카운트가 임의수보다 작음을 나타내면 비교 신호(204)는 카운터(201)를 업 카운터로서 구성한다.
비교 신호(204)는 관심의 입력 데이터 스트림과 비교된다. 입력 데이터 스트림에는 측정될 성능 파라미터들(예를 들어, 캐시 히트 정보)의 샘플이 제공되는데, 이들은 성능 검출 회로(105)에 의해 제공된다. 이러한 2개의 확률론적인 데이터 스트림들(비교 신호 및 입력 데이터 스트림)은 이중 어떤 것이 가장 높은 가능성인 1을 갖는 지를 알아내기 위하여 비교된다. 이는 XOR 게이트(207) 내에서 2개의 데이터 스트림들을 함께 XOR링 함으로써 이루어진다. 데이터 스트림들이 다르면, 가능성에 차이가 있게 된다. 가능성 정보가 다시 제공되어, 비교기 출력에 따라 카운터 값을 증가 또는 감소시킨다. 도시된 실시예에서의 피드백은 클럭 신호(209)와 XOR 게이트(207)로부터의 출력을 함께 앤딩하여 카운터에 게이트된 클럭 신호(210)를 제공함으로써 수행된다. 결과적으로, 각각의 새로운 비교에 의해, 카운터는 입력 데이터 스트림과 일치하는 (비교기로부터의) 가능성 스트림을 생성하도록 조정된다.
표 1은 카운터의 동작을 설명한다.
비교기 0 1 0 1
성능 파라미터 데이터 0 0 1 1
XOR 출력 0 1 1 0
카운터 동작 없음 다운 없음
적응형 가산기 회로는 가능성 스크림을 효과적으로 통합한다. 측정되는 파라미터의 가능성 스트림은 카운터에 보유되는 디지털 값으로 변환된다. 카운터 값은 측정되는 파라미터의 가능성을 나타낸다.
이러한 가능성 측정 방법은 듀얼 카운터 방법을 능가하는 몇 가지의 장점들을 갖는다. 예를 들어, 어떠한 포텐셜 오버플로우도 없으며, 이에 따라 오버플로우 인터럽트 핸들러를 필요로 하지 않는다. 또한, 카운터는 언제라도 읽혀져서 현재의 가능성을 측정할 수 있게 한다.
카운터 및 임의수 발생기에 의해 이용되는 비트의 수가 증가함에 따라, 가능성 레저루션이 증가된다. 예를 들어, 8비트 카운터는 0.39%(1/255)의 가능성 레저루션(resolution)을 제공한다. 그러나, 레저루션의 증가는 집적 공정을 느리게 한다. 이는 가능성을 측정하기 전에 필요한 더 많은 수의 샘플들이 얻어질 수 있게 한다.
도 3은 25%의 가능성을 갖는 입력 데이터 스트림을 측정하는 데에 이용되는 8-비트 적응형 가산기 회로를 도시한다. 적응형 가산기 회로는 50%의 초기값을 가지고 시작된다. 입력 데이터가 샘플화될 때, 적응형 가산기 회로의 카운터 값은 기대값쪽으로 가게 된다. 약 500개의 샘플후, 적응형 가산기 회로는 입력 데이터 스트림을 면밀하게 트랙한다. 이는 500개 정도의 작은 샘플들 후 카운터가 읽혀지게 되어, 측정되는 성능 파라미터가 적당히 측정될 수 있음을 나타낸다.
제시된 데이터가 발생하는 동안, 입력 데이터 스트림은 250개의 샘플들의 슬라이딩 윈도우를 통하여 평균화되었다. 따라서, 도 3 내지 5에서 입력 테스트 데이로서 그래프로 나타낸 각 포인트는 마지막 250개 (또는 데이터 샘플들의 수가 250개 이하라면 더 적은 수의) 샘플들의 평균을 나타낸다. 따라서, 그래프들은 측정된값이 250개 샘플들의 슬라이딩 윈도우 평균을 얼마나 빠르게 적절히 측정할 수 있는 지를 보여준다. 이러한 윈도우를 작게 유지하게 되면, 발생된 테스트 데이터 및 적응형 가산기 회로 응답에 있어서의 일시적인 동요를 관찰하는 것을 돕는다.
도 4는 78%의 가능성을 갖는 입력 데이터 스트림을 측정하는 데에 이용되는 8-비트의 적응형 가산기 회로를 도시한다. 8-비트 카운터는 초기에 128의 값에 있는데, 이는 50%(128/256)의 가능성을 나타낸다. 다시 말해, 약 500개의 샘플들 후 카운터는 입력 데이터를 트랙하는 적절한 추정을 발생시킨다.
적응형 가산기 회로의 카운터가 현재의 위치에서 성능 데이터의 적절한 추정까지 이동하는 데에 걸리는 시간은 카운터에 의해 이용되는 비트의 수에 달려있다. 8-비트 카운터는 완전한 범위를 통하여 증가하는 데에 단지 256개의 클록 펄스 만을 필요로 한다. 12-비트 카운터는 완전한 범위를 커버하는 데에 4096개의 클록 펄스들을 필요로 한다. 가능성 레저루션의 여분의 4비트는 그의 완전한 카운팅 범위에 도달하는 데에 16배 이상의 클록들을 필요로 한다. 이는 성능 파라미터를 측정하는 데에 필요한 샘플들의 수에 직접적으로 관련된다. 더 큰 레저루션은 비스한 신뢰도를 갖는 측정을 달성하는 데에 더 많은 수의 샘플들을 필요로 한다.
도 5는 78%의 가능성을 갖는 입력 데이터 스트림을 측정하는 데에 이용되는 12-비트 적응형 가산기 회로를 도시한다. 카운터는 50% 가능성에서 초기화되었다. 그 결과는 입력과 측정된 가능성 스트림들이 수렴하기 전에 약 10,000개의 샘플들이 필요했음을 보여준다.
더 큰 적응형 가산기 회로가 더 큰 측정 레저루션을 제공하지만; 온칩 성능 파라미터를 측정하기 위해서는 8-비트 카운터가 적절할 수도 있다. 더 작은 적응형 가산기 회로가 필요한 값에 대한 더 빠른 수렴, 및 입력 데이터 스트림의 국부적인 동요에 대한 더 우수한 트랙킹의 이득을 제공한다.
지금까지 설명한 성능 파라미터들, 예를 들어 캐시 히트 정보는 단일 비트로 나타내는 것이 용이하다. 하지만, 다른 파라미터들은 1-비트 이상을 필요로 한다. 가령 외부 메모리를 접속하는 데에 필요한 주기의 수, 또는 파이프라인이 불안정한 동안의 클록들의 수와 같은 파라미터들은 더 많은 비트들을 필요로 한다. 이러한 파라미터들은 몇 개의 비트들을 포함하는 펄스 스트림으로 변환되어야 한다.
하기의 예는 몇 개의 비트들이 0과 4 사이의 값을 갖는 성능 파라미터를 측정하는 데에 어떻게 이용되는 지를 보여준다. 이는 하기에 나타낸 바와 같이 4개의 연속적인 비트들을 필요로 한다.
만일 파라미터가 1 주기가 되도록 측정된다면, 4개중 1개의 직렬 비트가 세트된다. 만일 파라미터가, 예를 들어 3 주기가 되도록 측정된다면, 4비트의 펄스 스트림중 3-비트가 1로 세트된다. 이러한 펄스 스트림은 적응형 가산기 회로 내에서 연속적으로 클록된다. 적응형 가산기 회로에 데이터를 제시하는 데에는 어떠한 동기적인 요구도 없다. 새로운 파라미터 데이터가 언제라도 샘플화되어 적응형 가산기 회로에 클록될 수 있다.
다른 파라미터들은 다른 값 범위를 가질 것이다. 상기의 예는 0 내지 4의 값 범위를 갖지만, 다른 파라미터는 0 내지 16의 값 범위를 가질 수도 있다. 모든 파라미터들이 동일한 데이터 범위로 한정될 필요는 없다. 각각의 파라미터들의 범위에 이용되는 데이터 비트들의 수를 조정하게 되면, 적응형 가산기 회로의 한정된 가능성 레저루션을 최상으로 이용하는 것을 돕는다.
8-비트의 적응형 가산기 회로는 0 내지 4의 범위를 갖는 파라미터를 측정할 수 있으며, 이후 0 내지 16의 데이터 범위를 갖는 파라미터를 측정하는 데에 이용될 수 있다. 모든 경우에서, 적응형 가산기 회로는 1이 되는 데이터 스트림의 가능성을 결정한다. 0 내지 4의 값 범위에 있어서, 75%의 가능성 값은 측정된 값 3을 나타낸다(100%는 4이다).
예를 들어 3의 샘플 값이 발생될 때, 모든 3 비트들이 세트될 수 있다. 순서는 중요하지 않다. 그러나, 샘플된 값들을 나타내도록 세트되는 비트들을 변화시킴으로써 카운터 동작시의 변화를 줄이는 데에 어떠한 작은 장점을 가질 수도 있다.
적응형 가산기 회로 동작은 임의수 발생기를 이용한다. 가령 도 6에 나타낸 예시적인 의사 임의수 발생기와 같은 의사 임의수 발생기가 이러한 작업에 이용될 수 있다. 최대 길이(m-시퀀스)는 n-단의 시프트 레지스터의 선택된 단들을 피드백함으로써 발생될 수 있다. 필요한 단들은 모듈로-2 결합되며 제 1 단에 대한 입력 신호를 생성하는 데에 이용된다. 도 3, 4 및 5에 도시된 테스트 데이터는 단 3 및 31로부터의 피드백을 갖는 도 6에 도시된 31-비트 시프트 레지스터를 이용하고, XOR 게이트(603)에서 XOR되며, 시프트 레지스터의 입력을 제공한다. 상위 8 또는 12 비트들은 필요한 임의수를 형성하는 데에 이용된다. (31-비트가 아닌) 다른 크기의 시프트 레지스터들이 또한 이용될 수 있다.
적응형 가산기 회로는 상관된 임의 수들을 이용함으로써 요구되는 값에 대하여 수렴되도록 조장될 수 있다. 이는 시프트 레지스터의 연속적인 단들을 선택하고 최상위 비트(MSB)를 인버트시킴으로써 이루어질 수 있다. 이에 따라, 현재 임의수의 MSB는 출력 상에서 인버트될 것이며, 인버트되지 않은 값은 다음 임의수의 다음 MSB가 된다.
전형적으로 관심을 갖는 많은 성능 파라미터들이 있지만, 측정되는 각 파라미터에 할당되는 적응형 가산기 회로를 가질 필요는 없다. 좀 더 경계적인 접근은 도 7에 도시되었는데, 여기에서 단일의 적응형 가산기 회로(701)는 입력 멀티플렉서(703)를 통하여 비트 스트림을 수신받는다. 이는 다중의 파라미터들중 하나가 측정을 위해 선택될 수 있게 한다. 선택 레지스터(703)는 측정되는 성능 파라미터의 선택을 제어한다.
일 실시예에서, 적응형 가산기 회로는 마이크로프로세서를 포함하는 집적 회로 상에 위치된다. 이 경우, 파라미터의 선택을 제어하는 선택 레지스터(705) 및 적응형 가산기 회로 카운터는 프로세서에 의해 접속가능해야 한다. 선택 레지스터 및 카운터는 레지스터, I/O 또는 메모리 어드레스 공간 내에 맵핑될 수 있다. 또한, 이러한 레지스터들은, 종래에 공지되어 있는 프로세서의 내부 레지스터들로의 테스트 및 디버그 접속을 제공하는 입/출력 포트인 온칩 소프트웨어 개발 포트(SDP)로부터 접속가능할 수도 있다. SDP를 통하여, 입/출력 포트에 연결된 호스트 컴퓨터(미도시)는 성능 파라미터들을 조심스럽게 검사할 수 있다. 타겟 시스템의 적용 또는 운용 시스템 소프트웨어를 설치할 필요가 없으며, 어떠한 인터럽트 핸들러도 필요치 않다.
선택 레지스터를 세팅한 후, 8-비트 적응형 가산기 회로는 전형적으로, 적응형 가산기 회로가 만족스러운 정확도를 가지고 새로운 입력 데이터 스트림을 트랙한 것으로 가정되기 전에 약 500개 또는 그 이상의 샘플들이 모여질 것을 필요로 한다. 이러한 결정을 돕기 위하여, 샘플 카운터(709)는 적응형 가산기 회로가 새로운 입력 데이터 스트림을 트랙한 것으로 가정될 수 있을 때를 결정할 수 있는 능력을 제공한다. 샘플 카운터(709)는 레지스터 선택 파라미터 입력이 갱신될 때 리셋될 수도 있다. 이후 샘플 카운터는, 카운터 값이 실제 데이터를 트랙하도록 충분한 수의 샘플들이 적응형 가산기 회로로 제공되었다는 것을 보장하기 위하여 적응형 가산기 회로의 카운터를 접속하기 전에 소프트웨어 개발 포트 또는 프로세서를 통하여 검사될 수도 있다. 샘플 카운터는 적응형 가산기 회로 내에서 카운터의 크기를 반영할 수 있을 정도로 충분히 커야 한다. 따라서, 만일 적응형 가산기 회로 내의 카운터가 12 비트이면, 샘플 카운터는 측정된 데이터가 입력 파라미터 데이터와 함께 수렴할 때를 만족스럽게 나타내기 위하여 10,000 또는 그 이상을 카운트할 필요가 있다. 샘플 카운터 내의 오버플로우 표시는 적응형 가산기 회로에 의해 수신된 충분한 파라미터 샘플수를 나타내는 데에 이용될 수 있다.
지금까지 설명된 성능 파라미터들에 부가하여, 측정된 성능 파라미터들은 프로세서에 의한 버스 이용을 포함할 수 있다. 일 실시예에서, 성능 검출 회로는 캐시 히트와 유사한 방법으로 프로세서에 의한 버스 이용을 맵핑한다. 예를 들어, 각각의 버스 주기에 대하여, "1"은 프로세서가 그 주기에 대한 버스 마스터였음을 나타내기 위하여 성능 감시 회로에 제공되며, "0"은 외부의 버스 마스터가 버스를 가졌음을 나타낸다. 따라서, 프로세서가 버스 마스터가 되는 가능성이 결정될 수 있게 된다.
본원에서 제시된 본 발명에 대한 설명은 단지 예시적인 것이며, 하기의 청구항에 제시된 본 발명의 범위에 한정되지 않는다. 본원에서 제시된 설명을 기초로, 하기의 청구항에서 제시된 본 발명의 범위 및 원리를 벗어나지 않는 다양한 변형들 및 변경들이 이루어질 수 있다.

Claims (23)

  1. 집적 회로의 성능 파라미터를 나타내는 제 1 입력 신호를 수신하고 상기 성능 파라미터의 측정으로서 카운트 값을 제공하도록 결합된 적응형 가산기 회로를 포함하는 성능 검사 회로를 구비하는 것을 특징으로 하는 상기 집적 회로.
  2. 제 1 항에 있어서, 상기 적응형 가산기 회로는:
    임의수를 제공하는 임의수 발생기 회로와;
    카운트 값을 제공하는 카운터 회로와;
    임의수와 카운트 값을 비교한 다음 그의 비교 신호를 출력하도록 결합된 비교기 회로를 포함하며, 여기서 상기 비교 신호는 카운터에 업/다운 카운트 신호로서 제공되며; 그리고
    측정된 상기 성능 파라미터 및 상기 비교 신호를 수신하고 그의 제 1 제어 신호를 출력하도록 결합된 제 1 로직 회로를 구비하고, 상기 제 1 제어 신호는 카운터 회로의 동작을 제어하기 위하여 제공되는 것을 특징으로 하는 집적 회로.
  3. 제 2 항에 있어서, 상기 카운터 회로는 상기 제 1 입력 신호 및 상기 비교 신호가 다른 값일 때에는 카운트 업 또는 다운되도록 반응하며, 상기 제 1 입력 신호와 상기 비교 신호가 같은 값일 때에는 카운트하지 않도록 반응하는 것을 특징으로 하는 집적 회로.
  4. 제 3 항에 있어서, 상기 카운터 회로는 상기 카운터 값이 상기 임의 수보다 크고 상기 제 1 입력 신호가 제 1 값에 있을 때에는 카운트 업 또는 다운되도록 반응하며, 상기 카운트 값이 상기 임의수보다 적고 상기 제 1 입력 신호가 제 2 값에 있을 때에는 카운트 업되도록 반응하는 것을 특징으로 하는 집적 회로.
  5. 제 2 항에 있어서, 상기 비교 신호 및 클럭 신호를 수신하도록 결합되고, 상기 비교 신호의 값에 따라 카운터 회로를 선택적으로 활성화시키기 위하여 상기 카운터 회로에 게이트된 클럭 신호를 출력하는 제 2 로직 회로를 더 구비하는 것을 특징으로 하는 집적 회로.
  6. 제 1 항에 있어서, 상기 성능 파라미터는 상기 성능 감시 회로에 이진수로서 제공되는 것을 특징으로 하는 집적 회로.
  7. 제 6 항에 있어서, 상기 적응형 가산기 회로에 상기 성능 파라미터를 제 1 신호로서 제공하도록 결합되며, 읽기 동작이 캐시 히트를 야기할 때에는 제 1 값을, 다른 읽기 동작이 캐시 미스를 야기할 때에는 제 2 값을 갖는 상기 제 1 신호를 제공하는 성능 파라미터 검출 회로를 더 구비하는 것을 특징으로 하는 집적 회로.
  8. 제 1 항에 있어서, 상기 성능 파라미터는 0과 n 사이의 값을 가지며, 여기서 상기 n은 1보다 크고, 그리고 상기 성능 파라미터는 상기 적응형 가산기 회로에 직렬 비트 스트림으로서 제공되며, n비트가 상기 성능 파라미터의 값을 나타내기 위하여 상기 비트 스트림 내에 존재하는 것을 특징으로 하는 집적 회로.
  9. 제 1 항에 있어서, 상기 집적 회로는 마이크로프로세서인 것을 특징으로 하는 집적 회로.
  10. 제 1 항에 있어서, 상기 성능 파라미터는 상기 집적 회로에 연결된 버스에 대한 버스 이용에 관련된 것을 특징으로 하는 집적 회로.
  11. 제 1 항에 있어서, 상기 성능 검사 회로는:
    다수의 상기 성능 파라미터들을 수신하는 선택기 회로와, 여기서 상기 선택기 회로는 제 1 입력으로서 상기 성능 파라미터들 중에서 선택된 하나를 제공하기 위하여 상기 적응형 가산기 회로에 결합되며; 그리고
    상기 선택기 회로를 제어하도록 결합된 프로그램가능한 선택 레지스터를 더 구비하며, 상기 프로그램가능한 선택 레지스터는 상기 제 1 입력으로서 상기 성능 파라미터들 중 하나를 선택하도록 프로그램가능한 것을 특징으로 하는 집적 회로.
  12. 제 11 항에 있어서, 상기 성능 검사 회로는 샘플 카운터를 더 구비하며, 상기 샘플 카운터는 상기 성능 검사 회로에 의해 수신된 성능 파라미터의 다수의 샘플들을 카운트하도록, 그리고 그것을 나타내는 샘플 카운트값을 제공하도록 결합되고, 상기 샘플 카운트 값은 상기 성능 검사 회로 내에 카운트 값의 정확성을 표시하는 것을 특징으로 하는 집적 회로.
  13. 집적 회로 내에서의 성능 파라미터 측정 방법으로서,
    적응형 가산기 회로에 성능 파라미터를 나타내는 제 1 입력 신호를 제공하는 단계와, 그리고
    성능 파라미터의 가능성 측정치로서 상기 적응형 가산기 회로에서의 카운트 값을 결정하는 단계를 구비하는 것을 특징으로 하는 방법.
  14. 제 13 항에 있어서, 상기 카운트 값 결정 단계는:
    임의수 발생기 회로에서 임의수를 발생시키는 단계와;
    카운트 값을 상기 카운터 회로에 제공하는 단계와;
    상기 임의수와 상기 카운트 값을 비교한 다음, 이를 나타내는 비교 신호를 제공하는 단계와, 여기서 상기 비교 신호는 제 1 제어 신호로서 상기 카운터 회로에 제공되며; 그리고
    상기 카운터 회로의 동작을 제어하는 제 2 제어 신호를 제공하기 위하여 상기 성능 파라미터와 상기 비교 신호를 논리적으로 결합하는 단계를 더 구비하는 것을 특징으로 하는 방법.
  15. 제 14 항에 있어서, 상기 제 1 제어 신호를 상기 카운터 회로에 제공하는 단계는 상기 비교 신호를 상기 카운터 회로에 업/다운 카운트 신호로서 제공하는 단계를 더 구비하며, 상기 카운터 회로는 상기 카운트 값이 상기 임의수보다 크고 상기 제 1 입력 신호가 제 1 값일 때에는 카운팅 다운하고, 상기 카운트 값이 상기 임의수보다 작고 상기 제 1 입력 신호가 제 2 값일 때에는 카운팅 업하는 것을 특징으로 하는 방법.
  16. 제 15 항에 있어서, 상기 제 2 제어 신호를 제공하는 단계는 상기 카운터 회로에 게이트된 클럭 신호를 제공하기 위하여 상기 비교 신호와 상기 클럭 신호를 논리적으로 결합하는 단계를 더 포함하며, 상기 게이트된 클럭 신호는 상기 비교 신호와 상기 클럭 신호의 값에 따라 상기 카운터 회로를 선택적으로 활성화시키는 것을 특징으로 하는 방법.
  17. 제 13 항에 있어서, 측정된 상기 성능 파라미터는 캐시 메모리 내의 히트 레이트이며, 읽기 동작이 캐시 히트를 야기시킬 때에는 제 1 값을, 다른 읽기 동작이 캐시 미스를 야기시킬 때에는 제 2 값을 갖는 제 1 신호로서 상기 성능 파라미터를 제공하는 단계를 더 구비하는 것을 특징으로 하는 방법.
  18. 제 13 항에 있어서,
    상기 적응형 회로에 결합된 선택기 회로에 다수의 상기 성능 파라미터들을 제공하는 단계와; 그리고
    제 1 입력으로서 상기 성능 파라미터들 중에서 선택된 하나를 제공하기 위하여 상기 성능 파라미터들중 하나를 선택하는 단계를 더 구비하는 것을 특징으로 하는 방법.
  19. 제 18 항에 있어서,
    상기 적응형 가산기 회로에 의해 수신된 상기 성능 파라미터의 다수의 샘플들을 카운팅하고, 이를 나타내는 샘플 카운트 값을 제공하는 단계와; 그리고
    상기 샘플 카운트 값에 따라서 언제 상기 카운트 값을 유효한 성능 파라미터로서 액세스할 지를 결정하는 단계를 더 구비하는 것을 특징으로 하는 방법.
  20. 컴퓨터 시스템의 성능 파라미터 측정 장치로서,
    상기 성능 파라미터를 나타내는 제 1 입력 신호를 적응형 가산기 회로에 제공하기 위한 수단과; 그리고
    상기 성능 파라미터의 측정치로서 카운트 값을 발생시키기 위한 수단을 구비하는 것을 특징으로 하는 성능 파라미터 측정 장치.
  21. 제 20 항에 있어서, 상기 카운트 값을 발생시키기 위한 수단은:
    임의수 발생 수단과;
    상기 카운트 값을 제공하는 카운터 회로와;
    상기 임의수와 상기 카운트 값을 비교한 다음, 이를 나타내는 비교 신호를 제공하기 위한 수단과; 그리고
    상기 비교 신호와 제 1 입력 신호에 따라서 상기 카운터 회로를 제어하기 위한 수단을 구비하는 것을 특징으로 하는 성능 파라미터 측정 장치.
  22. 제 21 항에 있어서, 제 1 입력으로서 다수의 상기 성능 파라미터들 중 하나를 선택하기 위한 수단을 더 구비하는 것을 특징으로 하는 성능 파라미터 측정 장치.
  23. 제 21 항에 있어서, 상기 카운트 값 발생 수단에 의해 수신된 상기 성능 파라미터들의 다수의 샘플들을 카운팅하고, 이를 나타내는 카운트 값을 제공하기 위한 수단을 더 구비하는 것을 특징으로 하는 성능 파라미터 측정 장치.
KR1020007012246A 1998-05-05 1998-11-23 비침입적인 성능 검사 KR20010043286A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/072,830 1998-05-05
US09/072,830 US6275782B1 (en) 1998-05-05 1998-05-05 Non-intrusive performance monitoring
PCT/US1998/024899 WO1999057640A1 (en) 1998-05-05 1998-11-23 Non-intrusive performance monitoring

Publications (1)

Publication Number Publication Date
KR20010043286A true KR20010043286A (ko) 2001-05-25

Family

ID=22110014

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007012246A KR20010043286A (ko) 1998-05-05 1998-11-23 비침입적인 성능 검사

Country Status (6)

Country Link
US (2) US6275782B1 (ko)
EP (1) EP1076855B1 (ko)
JP (1) JP2002513967A (ko)
KR (1) KR20010043286A (ko)
DE (1) DE69803705T2 (ko)
WO (1) WO1999057640A1 (ko)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275782B1 (en) * 1998-05-05 2001-08-14 Advanced Micro Devices, Inc. Non-intrusive performance monitoring
US6832236B1 (en) * 1999-07-08 2004-12-14 International Business Machines Corporation Method and system for implementing automatic filesystem growth monitor for production UNIX computer system
DE19933491A1 (de) * 1999-07-09 2001-02-01 Walter Mehner Verfahren zur seriellen Übertragung von digitalen Meßdaten
US6437783B1 (en) * 1999-09-13 2002-08-20 Intel Corporation Method and system for simultaneously displaying the throughput on multiple busses
US6629170B1 (en) * 1999-11-08 2003-09-30 International Business Machines Corporation Method and apparatus for a byte lane selectable performance monitor bus
JP2001209500A (ja) * 2000-01-28 2001-08-03 Fujitsu Ltd ディスク装置およびディスク装置のリード・ライト処理方法
US6775640B1 (en) * 2000-04-28 2004-08-10 Hewlett-Packard Development Company, L.P. Performance adder for tracking occurrence of events within a circuit
US6556952B1 (en) * 2000-05-04 2003-04-29 Advanced Micro Devices, Inc. Performance monitoring and optimizing of controller parameters
US6628994B1 (en) * 2000-08-31 2003-09-30 Hewlett-Packard Development Company, L.P. Method to obtain improved performance by automatic adjustment of computer system parameters
US6895520B1 (en) 2001-03-02 2005-05-17 Advanced Micro Devices, Inc. Performance and power optimization via block oriented performance measurement and control
US6968547B2 (en) * 2002-01-29 2005-11-22 Sun Microsystems, Inc. Dynamic trap table interposition for efficient collection of trap statistics
US7168853B2 (en) * 2003-01-10 2007-01-30 International Business Machines Corporation Digital measuring system and method for integrated circuit chip operating parameters
US7275191B2 (en) * 2003-05-09 2007-09-25 Hewlett-Packard Development Company, L.P. Coverage decoder circuit for performance counter
US7475301B2 (en) * 2003-05-09 2009-01-06 Hewlett-Packard Development Company, L.P. Increment/decrement circuit for performance counter
US7107362B2 (en) * 2003-05-19 2006-09-12 Avago Technologies General Ip (Singapore) Pte. Ltd. Integrated circuit with configuration based on parameter measurement
US7146285B2 (en) * 2003-05-19 2006-12-05 Avago Technologies General Ip (Singapore) Pte. Ltd. Integrated circuit with parameter measurement
US7325034B2 (en) * 2003-09-24 2008-01-29 International Business Machines Corporation Method and apparatus for scalable peer-to-peer inquiries in a network of untrusted parties
US7519510B2 (en) * 2004-11-18 2009-04-14 International Business Machines Corporation Derivative performance counter mechanism
US7340378B1 (en) * 2006-11-30 2008-03-04 International Business Machines Corporation Weighted event counting system and method for processor performance measurements
WO2008128476A1 (en) 2007-04-18 2008-10-30 Mediatek Inc. Data access tracing
US7908493B2 (en) * 2007-06-06 2011-03-15 International Business Machines Corporation Unified management of power, performance, and thermals in computer systems
WO2009058042A1 (en) * 2007-10-29 2009-05-07 Intel Corporation A method of external performance monitoring for virtualized environments
EP2110750B1 (en) 2008-04-18 2017-03-22 MediaTek Inc. Data access tracing
US7984206B2 (en) * 2008-08-06 2011-07-19 Texas Instruments Incorporated System for debugging throughput deficiency in an architecture using on-chip throughput computations
US9100153B2 (en) * 2008-09-25 2015-08-04 The Royal Institution For The Advancement Of Learning/Mcgill University Methods and systems for improving iterative signal processing
US8055477B2 (en) * 2008-11-20 2011-11-08 International Business Machines Corporation Identifying deterministic performance boost capability of a computer system
US10169187B2 (en) 2010-08-18 2019-01-01 International Business Machines Corporation Processor core having a saturating event counter for making performance measurements
US9015374B2 (en) 2013-07-09 2015-04-21 Advanced Micro Devices, Inc. Virtual interrupt filter
US9715377B1 (en) * 2016-01-04 2017-07-25 International Business Machines Corporation Behavior based code recompilation triggering scheme

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3812478A (en) * 1971-07-31 1974-05-21 Nippon Musical Instruments Mfg Semiconductor storage device
US3887869A (en) * 1972-07-25 1975-06-03 Tau Tron Inc Method and apparatus for high speed digital circuit testing
BE856104A (fr) 1977-07-05 1977-12-27 G Sojuznoe Konstruktorsko Tekh Ordinateur specialise dans le traitement statistique de l'information
GB1543515A (en) 1978-01-16 1979-04-04 Sojuz Kt Bjuro P Schetnykh Mas Statistical data processing digital computer
US4176402A (en) 1978-05-24 1979-11-27 Sperry Rand Corporation Apparatus for simultaneously measuring a plurality of digital events employing a random number table
US4409592A (en) * 1981-04-20 1983-10-11 Hunt V Bruce Multipoint packet data communication system using random access and collision detection techniques
US4608559A (en) * 1982-08-19 1986-08-26 Computer Automation, Inc. Local modulated carrier data network with a collision avoidance protocol
US4694412A (en) * 1982-09-22 1987-09-15 Intel Corporation Random number generator for use in an authenticated read-only memory
US5412587A (en) 1988-12-28 1995-05-02 The Boeing Company Pseudorandom stochastic data processing
IL96808A (en) * 1990-04-18 1996-03-31 Rambus Inc Introductory / Origin Circuit Agreed Using High-Performance Brokerage
US5657253A (en) 1992-05-15 1997-08-12 Intel Corporation Apparatus for monitoring the performance of a microprocessor
US5349611A (en) * 1992-11-13 1994-09-20 Ampex Systems Corporation Recovering synchronization in a data stream
EP0689141A3 (en) * 1994-06-20 1997-10-15 At & T Corp Disruption-based hardware support for system performance profiling
US5557548A (en) 1994-12-09 1996-09-17 International Business Machines Corporation Method and system for performance monitoring within a data processing system
JPH0950401A (ja) 1995-08-09 1997-02-18 Toshiba Corp キャッシュメモリ及びそれを備えた情報処理装置
US5696828A (en) * 1995-09-22 1997-12-09 United Technologies Automotive, Inc. Random number generating system and process based on chaos
US5778194A (en) 1996-04-08 1998-07-07 Symbios, Inc. Method and apparatus for measuring performance of a computer bus
US5768152A (en) 1996-08-28 1998-06-16 International Business Machines Corp. Performance monitoring through JTAG 1149.1 interface
US5835702A (en) 1996-10-21 1998-11-10 International Business Machines Corporation Performance monitor
US5835705A (en) 1997-03-11 1998-11-10 International Business Machines Corporation Method and system for performance per-thread monitoring in a multithreaded processor
US5919268A (en) * 1997-09-09 1999-07-06 Ncr Corporation System for determining the average latency of pending pipelined or split transaction requests through using two counters and logic divider
US6119075A (en) * 1997-11-26 2000-09-12 Digital Equipment Corporation Method for estimating statistics of properties of interactions processed by a processor pipeline
US6275782B1 (en) 1998-05-05 2001-08-14 Advanced Micro Devices, Inc. Non-intrusive performance monitoring

Also Published As

Publication number Publication date
EP1076855A1 (en) 2001-02-21
EP1076855B1 (en) 2002-01-30
JP2002513967A (ja) 2002-05-14
WO1999057640A1 (en) 1999-11-11
DE69803705T2 (de) 2002-09-12
US6415243B1 (en) 2002-07-02
DE69803705D1 (de) 2002-03-14
US6275782B1 (en) 2001-08-14

Similar Documents

Publication Publication Date Title
KR20010043286A (ko) 비침입적인 성능 검사
US5675729A (en) Method and apparatus for performing on-chip measurement on a component
KR100280732B1 (ko) 데이터처리시스템의성능모니터링방법및장치
US6618775B1 (en) DSP bus monitoring apparatus and method
US6732311B1 (en) On-chip debugger
US20060184832A1 (en) Method and apparatus for achieving high cycle/trace compression depth by adding width
US6397354B1 (en) Method and apparatus for providing external access to signals that are internal to an integrated circuit chip package
US6961872B2 (en) Microcomputer and debugging system
US7433803B2 (en) Performance monitor with precise start-stop control
US20060005083A1 (en) Performance count tracing
US8438442B2 (en) Method and apparatus for testing a data processing system
US20020172320A1 (en) Hardware event based flow control of counters
US8185772B2 (en) Determining execution times of commands
US6691207B2 (en) Method and apparatus for implementing loop compression in a program counter trace
US6760867B2 (en) Guaranteed method and apparatus for capture of debug data
US7076767B1 (en) Method for controlling and collecting information in a data processing system
US20080098269A1 (en) Mechanism for concurrent testing of multiple embedded arrays
US6647349B1 (en) Apparatus, method and system for counting logic events, determining logic event histograms and for identifying a logic event in a logic environment
US20150318059A1 (en) Memory tester design for soft error rate (ser) failure analysis
US6331957B1 (en) Integrated breakpoint detector and associated multi-level breakpoint techniques
US8335881B2 (en) Method and apparatus for handling an interrupt during testing of a data processing system
US6564175B1 (en) Apparatus, method and system for determining application runtimes based on histogram or distribution information
US8521475B2 (en) Detecting and recording performance events in a data processing system
US7617428B2 (en) Circuits and associated methods for improved debug and test of an application integrated circuit
US6775640B1 (en) Performance adder for tracking occurrence of events within a circuit

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid