KR20090117700A - 프로세서 성능 모니터링 - Google Patents

프로세서 성능 모니터링 Download PDF

Info

Publication number
KR20090117700A
KR20090117700A KR1020097015128A KR20097015128A KR20090117700A KR 20090117700 A KR20090117700 A KR 20090117700A KR 1020097015128 A KR1020097015128 A KR 1020097015128A KR 20097015128 A KR20097015128 A KR 20097015128A KR 20090117700 A KR20090117700 A KR 20090117700A
Authority
KR
South Korea
Prior art keywords
cache
performance
data
processor
processor core
Prior art date
Application number
KR1020097015128A
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 KR20090117700A publication Critical patent/KR20090117700A/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/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
    • 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/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • 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/349Performance evaluation by tracing or monitoring for interfaces, buses
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches

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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 컴퓨터 아키텍쳐에 관한 것으로, 보다 상세하게는 프로세서의 성능을 평가하는 것에 관한 것이다. 성능 모니터는 프로세서의 L2 캐시 네스트에 배치될 수 있다. 성능 모니터는 L2 캐시 액세스를 모니터링하고, 프로세서 코어를 L2 캐시 네스트와 연결하는 버스를 통해 하나 이상의 프로세서 코어로부터 성능 데이터를 수신할 수 있다. 하나의 실시예에서, 버스는 프로세서 코어로부터 성능 모니터에 성능 데이터를 전달하기 위한 추가의 라인을 포함할 수 있다.

Description

프로세서 성능 모니터링{PROCESSOR PERFORMANCE MONITORING}
본 발명은 컴퓨터 아키텍쳐에 관한 것으로, 보다 상세하게는 프로세서의 성능을 평가하는 것에 관한 것이다.
현대 컴퓨터 시스템은 통상적으로 컴퓨터 시스템에서 정보를 처리하는데 사용될 수 있는 하나 이상의 프로세서를 포함하는 여러 집적 회로(IC; integrated circuit)를 포함한다. 프로세서에 의해 처리되는 데이터는, 프로세서에 의해 실행되는 컴퓨터 명령은 물론, 컴퓨터 명령을 사용하여 프로세서에 의해 조작되는 데이터도 포함할 수 있다. 컴퓨터 명령 및 데이터는 통상적으로 컴퓨터 시스템에서 메인 메모리에 저장된다.
프로세서는 통상적으로 일련의 소단계들에서 각각의 명령을 실행함으로써 명령들을 처리한다. 일부 경우에, 프로세서에 의해 처리될 명령들의 수를 증가시키기 위해(그리고 그에 따라 프로세서의 속도를 증가시키기 위해), 프로세서는 파이프라인화될(pipelined) 수 있다. 파이프라이닝(pipelining)은, 각각의 스테이지가 명령을 실행하는데 필요한 소단계들 중 하나 이상의 소단계를 실행하는 것인, 개별 스테이지들을 프로세서에 제공하는 것을 칭한다. 일부 경우에, 파이프라인은 (다른 회로에 추가하여) 프로세서 코어(core)로 불리는 프로세서의 일부분에 배치될 수 있다. 일부 프로세서는 다수의 프로세서 코어를 가질 수 있다.
파이프라이닝을 사용하여 증가된 프로세서 속도가 달성될 수 있지만, 컴퓨터 시스템의 성능은 다양한 기타 요인, 예를 들어 컴퓨터 시스템의 메모리 계층(hierarchy)의 속성에 따라 좌우될 수 있다. 따라서, 시스템 개발자는 일반적으로, 그들이 보다 우수한 성능을 위해 시스템 설계를 최적화할 수 있게 해줄 수 있는 성능 파라미터를 수집하도록(gather), 메모리에서의 명령 및 데이터의 액세스 및 프로세서에서의 명령의 실행을 연구한다. 예를 들어, 시스템 개발자는 최적의 캐시 사이즈, 세트 연관성(set associativity) 등을 결정하도록 캐시 미스 레이트(cache miss rate)를 연구할 수 있다.
현대 프로세서는 통상적으로 다양한 성능 파라미터를 측정(instrument)하고 테스트하고 모니터링할 성능 모니터링 회로를 포함한다. 이러한 성능 모니터링 회로는 통상적으로 프로세서 코어에 중앙 집중화되며(centralized), 많은 양의 배선들이 복수의 다른 프로세서 코어에 대하여 라우팅됨으로써 칩 사이즈, 비용 및 복잡도를 상당히 증가시킨다. 게다가, 칩 개발 및/또는 테스트가 완료된 후에는 성능 모니터링 회로가 더 이상 필요하지 않으며, 성능 모니터링 회로가 차지하는 공간을 되찾는 것이 가능하지 않을 수 있다.
따라서, 필요한 것은 프로세서로부터 성능 파라미터를 수집하기 위한 개선된 방법 및 시스템이다.
본 발명은 컴퓨터 아키텍쳐에 관한 것으로, 보다 상세하게는 프로세서의 성능을 평가하는 것에 관한 것이다.
본 발명의 하나의 실시예는 성능 데이터를 수집하기 위한 방법을 제공한다. 본 방법은 일반적으로, L2 캐시 액세스와 관련된 성능 데이터를 캡쳐(capture)하도록 프로세서의 L2 캐시 네스트(cache nest)에 위치된 성능 모니터에 의해 L2 캐시 액세스를 모니터링하는 것을 포함한다. 본 방법은, 상기 성능 모니터에 의해, 상기 프로세서의 적어도 하나의 프로세서 코어를 상기 L2 캐시 네스트와 연결하는 버스를 통해 상기 적어도 하나의 프로세서 코어로부터 성능 데이터를 수신하고, 상기 L2 캐시 액세스 및 상기 적어도 하나의 프로세서 코어로부터 수신된 성능 데이터 중 적어도 하나에 기초하여 하나 이상의 성능 파라미터를 계산하는 것을 더 포함한다.
본 발명의 다른 실시예는 프로세서의 L2 캐시 네스트에 위치된 성능 모니터를 제공하며, 상기 성능 모니터는 상기 L2 캐시 네스트의 L2 캐시에의 액세스를 모니터링하고 L2 캐시 액세스와 관련된 하나 이상의 성능 파라미터를 계산하도록 구성된다. 상기 성능 모니터는 상기 L2 캐시 네스트를 적어도 하나의 프로세서 코어와 연결하는 버스를 통해 상기 적어도 하나의 프로세서 코어로부터 성능 데이터를 수신하도록 더 구성된다.
본 발명의 또 다른 실시예는 일반적으로 적어도 하나의 프로세서 코어, L2 캐시와 성능 모니터를 포함하는 L2 캐시 네스트, 및 상기 L2 캐시 네스트를 상기 적어도 하나의 프로세서 코어와 연결하는 버스를 포함하는 시스템을 제공한다. 상기 성능 모니터는 일반적으로, L2 캐시 액세스와 관련된 하나 이상의 성능 파라미터를 계산하도록 L2 캐시 액세스를 모니터링하고 상기 L2 캐시 네스트를 상기 적어도 하나의 프로세서 코어와 연결하는 버스를 통해 상기 적어도 하나의 프로세서 코어로부터 성능 데이터를 수신하도록 구성된다.
본 발명의 상기 상술한 특징, 이점 및 목적을 달성하고 이를 보다 구체적으로 이해할 수 있도록, 첨부 도면에 도시되어 있는 본 발명의 실시예들을 참조하여 상기 간략하게 개요된 본 발명의 보다 구체적인 설명이 이루어질 수 있다.
그러나, 첨부 도면은 단지 본 발명의 대표적인 실시예일 뿐이며, 따라서 본 발명의 범위를 한정하는 것으로 간주되어서는 안 되고, 본 발명에 대하여 기타 동등하게 유효한 실시예를 허용할 수 있다는 것을 유의하여야 한다.
도 1은 본 발명의 실시예에 따른 예시적인 시스템을 도시한다.
도 2는 본 발명의 실시예에 따른 프로세서를 도시한다.
도 3은 본 발명의 실시예에 따른 또 다른 프로세서를 도시한다.
본 발명은 컴퓨터 아키텍쳐에 관한 것으로, 보다 상세하게는 프로세서의 성능을 평가하는 것에 관한 것이다. 성능 모니터는 프로세서의 L2 캐시 네스트에 배치될 수 있다. 성능 모니터는 L2 캐시 액세스를 모니터링하고, 프로세서 코어를 L2 캐시 네스트와 연결하는 버스를 통해 하나 이상의 프로세서 코어로부터 성능 데이터를 수신할 수 있다. 하나의 실시예에서, 버스는 프로세서 코어로부터 성능 모니터에 성능 데이터를 전달하기 위한 하나 이상의 추가의 라인을 포함할 수 있다.
다음에서, 본 발명의 실시예들에 대한 참조가 이루어진다. 그러나, 본 발명은 특정 기재된 실시예들에 한정되지 않는다는 것을 이해하여야 한다. 대신에, 본 발명을 구현하고 실시하는데 있어서, 다른 실시예들과 관련되든 아니든, 다음의 특징들 및 구성요소들의 임의의 조합을 생각해볼 수 있다. 또한, 다양한 실시예들에서 본 발명은 종래 기술 이상의 다수의 이점들을 제공한다. 그러나, 본 발명의 실시예들이 기타 가능한 해결방법 및/또는 종래 기술 이상의 이점들을 달성할 수 있지만, 소정의 실시예에 의해 특정 이점이 달성되는지 아닌지 여부가 본 발명을 한정하는 것은 아니다. 따라서, 다음의 양상, 특징, 실시예 및 이점은 단지 예시적인 것이며, 청구항(들)에 명시적으로 기술된 것을 제외하고는, 첨부된 청구항의 한정 또는 구성요소로 간주되지 않는다. 마찬가지로, "본 발명"의 참조는 여기에 개시된 임의의 발명의 대상의 일반화로서 해석되어서는 안 되며, 청구항(들)에 명시적으로 기술된 것을 제외하고는, 첨부된 청구항의 한정 또는 구성요소로 간주되어서는 안 된다.
다음은 첨부 도면에 도시되어 있는 본 발명의 실시예들의 상세한 설명이다. 이 실시예들은 예이며, 본 발명을 명확하게 전달하기 위한 상세한 설명이다. 그러나, 제시된 상세한 설명의 정도가 실시예들의 예상할 수 있는 변형을 한정하는 것으로 의도되지 않으며, 이에 반하여, 본 발명은 첨부된 청구항에 의해 정의되는 바와 같은 본 발명의 사상 및 범위 내에 속하는 모든 변경, 등가물, 및 대안을 포함하는 것이다.
본 발명의 실시예들은 시스템, 예를 들어 컴퓨터 시스템과 함께 이용될 수 있으며 이에 관련하여 아래에 설명된다. 여기에서 사용될 때, 시스템은, 개인용 컴퓨터, 인터넷 어플라이언스, 디지털 미디어 어플라이언스, PDA(portable digital assistant), 휴대용 뮤직/비디오 플레이어 및 비디오 게임 콘솔(console)을 포함하는, 프로세서 및 캐시 메모리를 이용하는 임의의 시스템을 포함할 수 있다. 캐시 메모리는 캐시 메모리를 이용하는 프로세서와 동일한 다이 상에 위치될 수 있지만, 일부 경우에, 프로세서와 캐시 메모리는 상이한 다이 상에 위치될 수 있다(예를 들어, 개별 모듈들 내의 개별 칩들 또는 단일 모듈 내의 개별 칩들).
예시적인 시스템
도 1은 본 발명의 실시예에 따른 예시적인 시스템(100)을 도시한다. 도시된 바와 같이, 시스템(100)은 복수의 프로세서(110), L3 캐시/L4 캐시/메모리(112)(이하, 메모리로 총칭함), 그래픽 처리 유닛(GPU; graphics processing unit)(104), 입력/출력(I/O) 인터페이스(106), 및 저장 디바이스(108)의 임의의 조합을 포함할 수 있다. 메모리(112)는 바람직하게는 프로세서(110)에 의해 동작되는 필요한 프로그래밍 및 데이터 구조를 보유하기에 충분히 큰 랜덤 액세스 메모리이다. 메모리(112)는 단일 엔티티로서 도시되어 있지만, 메모리(112)는 사실상 복수의 모듈을 포함할 수 있으며, 메모리(112)는 다수 레벨로, 예를 들어 L3 캐시, L4 캐시, 및 메인 메모리로 존재할 수 있다는 것을 이해하여야 한다.
저장 디바이스(108)는 바람직하게 직접 액세스 저장 디바이스(DASD; Direct Access Storage Device)이다. 이는 단일 유닛으로서 도시되어 있지만, 고정 디스크 드라이브, 플로피 디스크 드라이브, 테이프 드라이브, 탈착가능한 메모리 카드, 또 는 광학 저장장치와 같은 고정 및/또는 탈착가능한 저장 디바이스의 조합일 수 있다. 메모리(112) 및 저장장치(108)는 다수의 일차 및 이차 저장 디바이스에 이르는 하나의 가상 어드레스 공간의 일부일 수 있다.
IO 인터페이스(106)는 프로세서(110)와 입력/출력 디바이스 사이의 인터페이스를 제공할 수 있다. 예시적인 입력 디바이스는, 예를 들어, 키보드, 키패드, 라이트펜(light-pen), 터치 스크린, 트랙볼, 또는 음성 인식 유닛, 오디오/비디오 플레이어 등을 포함한다. 출력 디바이스는 사용자에게 출력을 제공할 임의의 디바이스, 예를 들어 임의의 종래의 디스플레이 스크린일 수 있다.
그래픽 처리 유닛(GPU)(104)은 프로세서(110)로부터 그래픽 데이터, 예를 들어 2차원 및 3차원 그래픽 데이터를 수신하도록 구성될 수 있다. GPU(104)는 하나 이상의 연산을 수행하여 그래픽 데이터를 조작할 수 있고, 디스플레이 스크린 상에 이미지를 렌더링(rendering)할 수 있다.
프로세서(110)는 복수의 프로세서 코어(114)를 포함할 수 있다. 프로세서 코어(114)는 메모리(112)로부터 검색된 명령들의 파이프라인화된 실행을 수행하도록 구성될 수 있다. 각각의 프로세서 코어(114)는 연관된 L1 캐시(116)를 가질 수 있다. 각각의 L1 캐시(116)는 연관된 프로세서 코어(114)에 가장 가까이 위치된 상대적으로 작은 메모리 캐시일 수 있고, 명령 및 데이터(이하, 데이터로 총칭함)에의 빠른 액세스를 연관된 프로세서 코어(114)에 제공하도록 구성될 수 있다.
프로세서(110)는 또한 적어도 하나의 L2 캐시(118)를 포함할 수 있다. L2 캐시(118)는 L1 캐시(116)보다 상대적으로 클 수 있다. 각각의 L2 캐시(118)는 하나 이상의 L1 캐시와 연관될 수 있고, 연관된 하나 이상의 L1 캐시에 데이터를 제공하도록 구성될 수 있다. 예를 들어, 프로세서 코어(114)는 자신의 연관된 L1 캐시에 포함되지 않은 데이터를 요청할 수 있다. 그 결과, 프로세서 코어(114)에 의해 요청된 데이터는 L2 캐시(118)로부터 검색되어, 프로세서 코어(114)와 연관된 L1 캐시(116)에 저장될 수 있다. 본 발명의 하나의 실시예에서, L1 캐시(116), 및 L2 캐시(118)는 SRAM 기반의 디바이스일 수 있다. 그러나, 당해 기술 분야에서의 숙련자라면, L1 캐시(116) 및 L2 캐시(118)는 임의의 다른 유형의 메모리, 예를 들어 DRAM을 포함할 수 있다는 것을 알 수 있을 것이다.
L2 캐시(118)에서 캐시 미스(cache miss)가 발생하는 경우, 프로세서 코어(114)에 의해 요청된 데이터는 L3 캐시(112)로부터 검색될 수 있다. L3 캐시(112)는 L1 캐시(116) 및 L2 캐시(118)보다 상대적으로 클 수 있다. 도 1에서는 단일 L3 캐시(112)가 도시되어 있지만, 당해 기술 분야에서의 숙련자라면, 복수의 L3 캐시(112)가 또한 구현될 수 있다는 것을 알 수 있을 것이다. 각각의 L3 캐시(112)는 복수의 L2 캐시(118)와 연관될 수 있고, 연관된 L2 캐시(118)와 데이터를 교환하도록 구성될 수 있다. 당해 기술 분야에서의 숙련자라면 또한, 하나 이상의 상위 레벨의 캐시, 예를 들어 L4 캐시가 또한 시스템(100)에 포함될 수 있다는 것을 알 수 있을 것이다. 각각의 상위 레벨 캐시는 하나 이상의 다음 하위 레벨의 캐시와 연관될 수 있다.
도 2는 본 발명의 실시예에 따른 프로세서(110)의 예시적인 상세도를 도시하는 블록도이다. 도 2에 도시된 바와 같이, 프로세서(110)는 L2 캐시 네스트(210), L1 캐시(116), 프리디코더(predecoder)/스케쥴러(221) 및 코어(114)를 포함할 수 있다. 단순화를 위해, 도 2는 프로세서(110)의 단일 코어(114)를 도시하고, 이에 관련하여 설명한다. 하나의 실시예에서, 각각의 코어(114)는 동일할 수 있다(예를 들어, 동일한 구성의 파이프라인 스테이지들을 구비한 동일한 파이프라인들을 포함함). 다른 실시예에 대하여, 코어(114)는 상이할 수 있다(예를 들어, 상이한 구성의 파이프라인 스테이지들을 구비한 상이한 파이프라인들을 포함함).
L2 캐시 네스트(210)는 L2 캐시(118), L2 캐시 액세스 회로(211), L2 캐시 디렉토리(212), 및 성능 모니터(213)를 포함할 수 있다. 본 발명의 하나의 실시예에서, L2 캐시(그리고/또는 L3 및/또는 L4와 같은 상위 레벨의 캐시)는 프로세서(110)에 의해 사용될 명령 및 데이터의 일부분을 포함할 수 있다. 일부 경우에, 프로세서(110)는 L2 캐시(118)에 포함되지 않은 명령 및 데이터를 요청할 수 있다. 요청된 명령 및 데이터가 L2 캐시(118)에 포함되지 않은 경우, 요청된 명령 및 데이터는 (상위 레벨 캐시 또는 시스템 메모리(112)로부터) 검색되어, L2 캐시에 배치될 수 있다. L2 캐시 네스트(210)는 다수의 프로세서 코어들(114) 사이에 공유될 수 있다.
하나의 실시예에서, L2 캐시(118)는 L2 캐시(118)에서의 현재 콘텐츠를 추적하도록 L2 캐시 디렉토리(212)를 가질 수 있다. 데이터가 L2 캐시(118)에 추가되면, 대응하는 엔트리가 L2 캐시 디렉토리(212)에 배치될 수 있다. 데이터가 L2 캐시(118)로부터 제거될 때에는, L2 캐시 디렉토리(212)에서의 대응하는 엔트리가 제거될 수 있다. 성능 모니터(213)는 프로세서(110)에 대하여 성능 관련 데이터를 모 니터링하고 수집할 수 있다. 성능 모니터링은 다음 부분에서 보다 상세하게 설명된다.
프로세서 코어(114)가 L2 캐시(118)로부터의 명령을 요청하는 경우, 명령은, 예를 들어 버스(270)를 통하여, L1 캐시(220)에 전달될 수 있다. 도 2에 도시된 바와 같이, L1 캐시(220)는 L2 명령-캐시(L1 I-캐시)(222), L1 I-캐시 디렉토리(223), L1 데이터 캐시(L1 D-캐시)(224), 및 L1 D-캐시 디렉토리(225)를 포함할 수 있다. L1 I-캐시(222) 및 L1 D-캐시(224)는 도 1에 도시된 L1 캐시(116)의 일부일 수 있다.
본 발명의 하나의 실시예에서, 명령은 I-라인으로 부르는 그룹으로 L2 캐시(118)로부터 페치(fetch)될 수 있다. 마찬가지로, 데이터는 버스(270)를 통하여 D-라인으로 부르는 그룹으로 L2 캐시(118)로부터 페치될 수 있다. I-라인은 I-캐시(222)에 저장될 수 있고, D-라인은 D-캐시(224)에 저장될 수 있다. I-라인 및 D-라인은 L2 액세스 회로(210)를 사용하여 L2 캐시(118)로부터 페치될 수 있다.
본 발명의 하나의 실시예에서, L2 캐시(118)로부터 검색된 I-라인은 먼저 프리디코더 및 스케쥴러(221)에 의해 처리될 수 있고, I-라인은 I-캐시(222)에 배치될 수 있다. 프로세서 성능을 더 개선하기 위하여, 명령은 종종 프리디코딩되며, 예를 들어 I-라인은 L2(또는 상위) 캐시로부터 검색된다. 이러한 프리디코딩은, 명령 실행을 제어하는 디스패치 정보(플래그 세트)로서 캡쳐되는, 스케쥴링(명령이 발행(issue)되어야 할 순서를 결정함), 어드레스 생성, 및 브랜치 예상(branch prediction)과 같은 다양한 기능을 포함할 수 있다. 일부 실시예에 대하여, 프리디 코더(및 스케쥴러)(221)는 다수의 코어들(114) 및 L1 캐시들 사이에 공유될 수 있다.
도 2에 도시된 바와 같이, 코어(114)는 발행 및 디스패치 회로(234)로부터 명령을 수신하고 명령을 실행할 수 있다. 하나의 실시예에서, 명령 페치 회로(236)는 코어(114)에 대하여 명령을 페치하는데 사용될 수 있다. 예를 들어, 명령 페치 회로(236)는 코어에서 실행되고 있는 현재 명령을 추적하는 프로그램 카운터를 포함할 수 있다. 코어 내의 브랜치 유닛은 브랜치 명령과 마주치면 프로그램 카운터를 변경하는데 사용될 수 있다. I-라인 버퍼(232)는 L1 I-캐시(222)로부터 페치된 명령을 저장하는데 사용될 수 있다. 발행 및 디스패치 회로(234)는 I-라인 버퍼(232)로부터 검색된 명령들을 명령 그룹으로 그룹화하는데 사용될 수 있으며, 명령 그룹은 이어서 코어(114)에 병행하여 발행될 수 있다. 일부 경우에, 발행 및 디스패치 회로는 프리디코더 및 스케쥴러(221)에 의해 제공된 정보를 사용하여 적합한 명령 그룹을 형성할 수 있다.
발행 및 디스패치 회로(234)로부터 명령을 수신하는 것에 더하여, 코어(114)는 다양한 위치로부터 데이터를 수신할 수 있다. 예를 들어, 일부 예에서, 코어(114)는 데이터 레지스터로부터의 데이터를 요구할 수 있고, 데이터를 얻도록 레지스터 파일(240)에 액세스할 수 있다. 코어(114)가 메모리 위치로부터의 데이터를 요구하는 경우에, 캐시 로드 및 저장 회로(250)는 D-캐시(224)로부터 데이터를 로딩하는데 사용될 수 있다. 이러한 로딩이 수행되는 경우에, 요구된 데이터에 대한 요청이 D-캐시(224)에 발행될 수 있다. 동시에, D-캐시 디렉토리(225)는 원하는 데 이터가 D-캐시(224)에 위치되어 있는지 판정하도록 체크될 수 있다. D-캐시(224)가 원하는 데이터를 포함하는 경우에, D-캐시 디렉토리(225)는, D-캐시(224)가 원하는 데이터를 포함하며 D-캐시 액세스가 후에 언젠가 완료될 수 있다는 것을 표시할 수 있다. D-캐시(224)가 원하는 데이터를 포함하지 않는 경우에, D-캐시 디렉토리(225)는, D-캐시(224)가 원하는 데이터를 포함하지 않는다는 것을 표시할 수 있다. D-캐시 디렉토리(225)는 D-캐시(224)보다 더 빠르게 액세스될 수 있기 때문에, 원하는 데이터에 대한 요청은, D-캐시 디렉토리(225)에 액세스된 후에 하지만 D-캐시 액세스가 완료되기 전에, (예를 들어, L2 액세스 회로(210)를 사용하여) L2 캐시(118)에 발행될 수 있다.
일부 경우에, 데이터는 코어(114)에서 변경될 수 있다. 변경된 데이터는 레지스터 파일에 기록될 수 있거나, 메모리에 저장될 수 있다. 라이트백(write back) 회로(238)는 레지스터 파일(240)에 데이터를 되기록(write back)하는데 사용될 수 있다. 일부 경우에, 라이트백 회로(238)는 캐시 로드 및 저장 회로(250)를 이용하여 D-캐시(224)에 데이터를 되기록할 수 있다. 선택적으로, 코어(114)는 저장을 수행하도록 직접 캐시 로드 및 저장 회로(250)에 액세스할 수 있다. 일부 경우에, 아래에 설명된 바와 같이, 라이트백 회로(238)는 또한 I-캐시(222)에 명령을 되기록하는데 사용될 수 있다.
상기 설명한 바와 같이, 발행 및 디스패치 회로(234)는 명령 그룹을 형성하고 형성된 명령 그룹을 코어(114)에 발행하는데 사용될 수 있다. 발행 및 디스패치 회로(234)는 또한 I-라인에서 명령들을 회전하고 병합함으로써 적합한 명령 그룹을 형성할 회로를 포함할 수 있다. 발행 그룹의 형성은, 아래에 보다 상세하게 설명되는 바와 같이, 발행 그룹에서의 명령들 사이의 의존도 뿐만 아니라, 명령들의 순서화로부터 달성될 수 있는 최적화와 같은, 여러 가지 고려사항들을 고려할 수 있다. 발행 그룹이 형성되면, 발행 그룹은 프로세서 코어(114)에 병행하여 디스패치될 수 있다. 일부 경우에, 명령 그룹은 코어(114)에서 각각의 파이프라인에 대하여 하나의 명령을 포함할 수 있다. 선택적으로, 명령 그룹은 더 작은 수의 명령들을 포함할 수 있다.
성능 모니터링
상기 설명한 바와 같이, 성능 모니터(213)는 도 2에 도시된 바와 같이 L2 캐시 네스트(210)에 포함될 수 있다. 성능 모니터(213)는 카운터, 제어 레지스터, 멀티플렉서 등을 포함하는 이벤트 검출 및 제어 로직을 포함할 수 있다. 성능 모니터(213)는. 시스템의 성능을 평가하도록. 명령의 실행에 관련된 데이터, 프로세서 코어들(114)과 메모리 계층 사이의 상호작용 등을 수집하고 분석하도록 구성될 수 있다.
성능 모니터(213)에 의해 계산되는 예시적인 파라미터는, 명령당 클록 사이클(CPI; clock cycles per instruction), 캐시 미스 레이트, TLB(Translation Lookaside Buffer) 미스 레이트, 캐시 히트 타임(hit time), 캐시 미스 패널티(miss penality) 등을 포함할 수 있다. 일부 실시예에서, 성능 모니터(213)는 미리 결정된 이벤트의 발생, 예를 들어 특정 메모리 위치의 액세스, 또는 미리 결정된 명령의 실행을 모니터링할 수 있다. 본 발명의 하나의 실시예에서, 성능 모니 터(213)는 특정 이벤트의 발생 빈도, 예를 들어 초 당 발생하는 로드 명령의 수 또는 초 당 발생하는 저장 명령의 수를 나타내는 값 등을 결정하도록 구성될 수 있다.
종래 기술의 시스템에 있어서, 성능 모니터는 통상적으로 프로세서 코어에 포함되었다. 따라서, 종래 기술의 시스템에서는, L2 캐시 네스트로부터의 성능 데이터가 버스(270)를 통해 프로세서 코어에 있는 성능 모니터에 보내졌다. 그러나, 가장 중요한 성능 통계치(statistics)는 L2 캐시 통계치, 예를 들어 L2 캐시 미스 레이트, TLB 미스 레이트 등을 포함할 수 있다. 본 발명의 실시예는, 가장 중요한 성능 데이터가 쉽게 얻어질 수 있는 L2 캐시 네스트에 성능 모니터(213)를 포함시킴으로써 버스(270)를 통한 통신 비용을 감소시킨다.
또한, 프로세서 코어(114) 대신에 L2 캐시 네스트에 성능 모니터를 포함시킴으로써, 프로세서 코어(114)는 보다 작고 보다 효율적으로 형성될 수 있다. L2 캐시 네스트에 성능 모니터를 포함시키는 것의 또 다른 이점은, 성능 모니터(213)가 더 낮은 클록 주파수에서 동작될 수 있다는 점일 수 있다. 하나의 실시예에서, 동작 주파수가 성능 모니터(213)의 작업에 중요하지 않을 수 있다. 예를 들어, 성능 모니터(213)는 성능 파라미터를 검출하고 계산하기 위해 수천 클록 사이클에 걸쳐 긴 궤적의 정보를 모을 수 있다. 성능 모니터(213)에의 궤적 정보를 얻는데 있어서의 지연은 수락 가능할 수 있고, 따라서 고속으로 성능 모니터를 동작시키는 것이 불필요할 수 있다. 프로세서 코어(114) 대신에 L2 캐시 네스트에 성능 모니터(213)를 포함시킴으로써, 프로세서 코어(114) 리소스 및 공간은 시스템의 성능을 개선하 는데 전념할 수 있다.
본 발명의 하나의 실시예에서, 성능 데이터는 프로세서 코어(114)로부터 L2 캐시 네스트(210)에 있는 성능 모니터(213)로 전달될 수 있다. 프로세서 코어(114)로부터 성능 모니터(213)에 전달되는 예시적인 성능 데이터는, 예를 들어 프로세서 코어의 CPI를 계산하기 위한 데이터를 포함할 수 있다. 본 발명의 하나의 실시예에서, 성능 데이터는 버스(270)의 하나 이상의 데드 사이클(dead cycle) 동안 버스(270)를 통해 프로세서 코어(114)로부터 성능 모니터(213)에 전달될 수 있다. 데드 사이클은, 데이터가 버스(270)를 사용하여 프로세서 코어(114)와 L2 캐시(118) 사이에 교환되지 않는 클록 사이클일 수 있다. 다시 말하자면, 프로세서 코어(114)에 그리고 프로세서 코어(114)로부터 L2 캐시 데이터를 전달하는데 사용되는 동일한 버스(270)를 사용하여, 성능 데이터는, 버스(270)가 이러한 L2 캐시 데이터 전달에 이용되고 있지 않는 경우에, 성능 모니터(213)에 보내질 수 있다.
도 2에서는 단일 프로세서 코어(114)가 도시되어 있지만, 당해 기술 분야에서의 숙련자는 프로세서(110)가 복수의 프로세서 코어(114)를 포함할 수 있다는 것을 알 수 있을 것이다. 본 발명의 하나의 실시예에서, 성능 모니터(213)는 프로세서(110)의 복수의 프로세서 코어들(114) 각각으로부터 성능 데이터를 수신하도록 구성될 수 있다. 다시 말하자면, 본 발명의 실시예는 성능 모니터(213)가 복수의 프로세서 코어들(114) 사이에 공유될 수 있게 할 수 있다. 성능 데이터는 버스(270)를 사용하여 전달됨으로써, 성능 데이터를 전달하기 위한 추가의 라인의 필요성을 제거하고, 따라서 칩 복잡도를 감소시킬 수 있다.
본 발명의 하나의 실시예에서, 버스(270)는 프로세서 코어(114)로부터 성능 모니터(213)에 데이터를 전달하기 위한 하나 이상의 추가의 라인을 포함할 수 있다. 예를 들어, 특정 실시예에서, 도 3에 도시된 바와 같이, 프로세서(110)는 4개의 프로세서 코어(114)를 포함할 수 있다. 버스(270)는 프로세서 코어(114)에 L2 캐시 네스트를 접속시킬 수 있다. 버스(270)의 제1 섹션(section)은 프로세서 코어와 L2 캐시(118) 사이에 데이터를 교환하는데 사용될 수 있다. 버스(270)의 제2 섹션은 성능 모니터(213)와 프로세서 코어 사이에 데이터를 교환하는데 사용될 수 있다.
예를 들어, 본 발명의 특정 실시예에서, 버스(270)는 144 바이트 폭일 수 있다. 버스(270)의 128 바이트 폭 섹션은 L2 캐시(118)로부터 프로세서 코어(114)에 명령 및 데이터를 전달하는데 사용될 수 있다. 버스(270)의 16 바이트 폭 섹션은 프로세서 코어(114)로부터 L2 캐시 네스트(210)에 포함된 성능 모니터(213)에 성능 데이터를 전달하는데 사용될 수 있다.
예를 들어, 도 3을 참조하면, L2 캐시 네스트(210)는 버스(270)를 통하여 코어(114)(4개의 코어: CORE 0 - CORE 3이 도시되어 있음)에 접속된 L2 캐시(118), L2 캐시 디렉토리(212), 및 성능 모니터(213)를 포함하는 것으로 도시되어 있다. 도 3에 도시된 바와 같이, 버스(270)는 L2 캐시(118)에 그리고 L2 캐시(118)로부터 데이터를 전달하기 위한 제1 섹션(310)을 포함할 수 있다. 도 3에 도시된 바와 같이 버스(270)의 제1 섹션(310)은 프로세서 코어들(114) 각각과 연결될 수 있다. 본 발명의 하나의 실시예에서, 제1 섹션(310)은 버스를 통한 저장공간일 수 있다. 다 시 말하자면, 제1 섹션(310)을 통하여 L2 캐시(118)에 기록된 데이터는 또한 메모리에도 저장될 수 있다.
버스(270)는 또한 프로세서(114)를 성능 모니터(213)와 연결하기 위한 제2 섹션(320)을 포함할 수 있다. 예를 들어, 도 3에서, 섹션(320)은 프로세서 코어들 CORE 0 - CORE 3의 각각을 성능 모니터(213)에 연결하기 위한 버스 EBUS0 - EBUS3를 포함한다. 프로세서 코어들(114) 각각으로부터의 성능 데이터는 버스 EBUS0 - EBUS3를 통하여 성능 모니터(213)에 보내질 수 있다.
프로세서 코어(114)로부터 성능 모니터(213)에 성능 데이터를 전달하기 위해 제2 섹션(320)이 제공될 수 있지만, 제2 섹션(320)에 더하여 제1 섹션(310)의 하나 이상의 라인도 또한 성능 데이터를 전달하기 위해 사용될 수 있다. 예를 들어, 버스 섹션(310)의 데드 사이클 동안, 섹션(320)에 더하여, 버스 섹션(310)의 하나 이상의 라인이 성능 데이터를 전달하는데 사용될 수 있다.
본 발명의 하나의 실시예에서, 코어(114)로부터 성능 모니터(213)에 성능 데이터를 전달하는데 사용되는 버스, 예를 들어 도 3의 버스 EBUS0 - EBUS3은 상대적으로 얇은 와이어로 형성될 수 있다. 버스 EBUS0 - EBUS3은 공간을 절약하기 위해 상대적으로 더 얇은 와이어로 형성될 수 있다. 더 얇은 와이어로 인해 프로세서 코어(114)로부터 성능 모니터(213)에 성능 데이터를 전달하는데 더 커진 지연을 초래할 수 있지만, 상기 설명한 바와 같이, 지연은 성능 모니터의 동작에 중요하지 않을 수 있고, 따라서 지연이 수락 가능할 수 있다.
도 3은 또한 본 발명의 실시예에 따른 성능 모니터(213)의 예시적인 컴포넌 트들을 도시한다. 도시된 바와 같이, 성능 모니터(213)는 래치/로직(321), 정적 랜덤 액세스 메모리(322), 및 동적 랜덤 액세스 메모리(323)를 포함할 수 있다. 래치(321)는 L2 캐시 네스트(210) 및/또는 버스(270)에서 일어나는 이벤트 및 데이터를 캡쳐하는데 사용될 수 있다. 로직(321)은, 성능 파라미터, 예를 들어 캐시 미스 레이트를 계산하도록, 래치, SRAM(322), 및/또는 DRAM(323)에 포함되어 있는 캡쳐된 데이터를 분석하는데 사용될 수 있다.
본 발명의 하나의 실시예에서, SRAM(322)은 성능 데이터를 DRAM(323)에 전달하기 위한 버퍼로서의 역할을 할 수 있다. 본 발명의 하나의 실시예에서, SRAM(322)은 비동기식 버퍼일 수 있다. 예를 들어, 성능 데이터는 제1 클록 주파수에서, 예를 들어 프로세서 코어(114)가 동작하는 주파수에서 SRAM(322)에 저장될 수 있다. 성능 데이터는 제2 클록 주파수에서, 예를 들어 성능 모니터(213)가 동작하는 주파수에서 SRAM(322)으로부터 DRAM(323)에 전달될 수 있다. 비동기식 SRAM 버퍼를 제공함으로써, 성능 데이터는 코어 주파수에서 코어(114)로부터 캡쳐될 수 있고, 성능 모니터 주파수에서 데이터의 분석이 수행될 수 있다. 상기 설명한 바와 같이, 성능 모니터 주파수는 코어 주파수보다 낮을 수 있다.
성능 모니터(213)에 DRAM(323)을 포함시키는 것의 하나의 이점은, DRAM 디바이스는 통상적으로 SRAM 디바이스보다 더 조밀하고 더 적은 공간을 필요로 한다는 점이다. 따라서, 성능 모니터에 이용가능한 메모리가 상당히 증가될 수 있고, 그에 의해 성능 모니터가 다수의 프로세서 코어들(114) 사이에 효율적으로 공유될 수 있게 해준다.
결론
L2 캐시 네스트에 성능 모니터를 포함시킴으로써, 본 발명의 실시예는 프로세서 코어를 더 작아지고 더 효율적으로 되게 한다. 더욱이, 가장 중요한 성능 파라미터가 L2 캐시 네스트에서 획득되기 때문에, L2 캐시 네스트와 프로세서 코어를 연결하는 버스를 통한 통신이 상당히 감소된다.
전술한 바는 본 발명의 실시예에 관한 것이지만, 본 발명의 기본적인 범위로부터 벗어나지 않고서 본 발명의 기타 및 부가의 실시예가 고안될 수 있으며, 본 발명의 범위는 다음의 청구범위에 의해 결정된다.

Claims (10)

  1. 성능 데이터를 수집하기 위한 방법에 있어서,
    L2 캐시 액세스에 관련된 성능 데이터를 캡쳐하도록 프로세서의 L2 캐시 네스트(cache nest)에 위치된 성능 모니터에 의해 L2 캐시 액세스를 모니터링하고;
    상기 성능 모니터에 의해, 상기 프로세서의 적어도 하나의 프로세서 코어를 상기 L2 캐시 네스트와 연결하는 버스를 통해 상기 적어도 하나의 프로세서 코어로부터 성능 데이터를 수신하고;
    상기 L2 캐시 액세스 및 상기 적어도 하나의 프로세서 코어로부터 수신된 성능 데이터 중 적어도 하나에 기초하여 하나 이상의 성능 파라미터를 계산하는 것을 포함하는, 성능 데이터의 수집 방법.
  2. 청구항 1에 있어서,
    상기 적어도 하나의 프로세서 코어를 상기 L2 캐시 네스트와 연결하는 상기 버스는, 상기 성능 데이터를 상기 성능 모니터에 전달하기 위한 제1 버스 라인 세트, 및 상기 L2 캐시와 상기 적어도 하나의 프로세서 코어 사이에 데이터를 교환하기 위한 제2 버스 라인 세트를 포함하는 것인, 성능 데이터의 수집 방법.
  3. 청구항 2에 있어서,
    상기 제1 버스 라인 세트는 상기 제2 버스 라인 세트보다 상대적으로 얇은 것인, 성능 데이터의 수집 방법.
  4. 청구항 1 내지 청구항 3 중 어느 한 항에 있어서,
    상기 적어도 하나의 프로세서 코어는, 상기 버스가 상기 L2 캐시와 데이터를 교환하는데 사용되고 있는 중이 아니면, 상기 버스를 통해 상기 성능 데이터를 전달하는 것인, 성능 데이터의 수집 방법.
  5. 청구항 1 내지 청구항 4 중 어느 한 항에 있어서,
    상기 성능 모니터는 상기 L2 캐시 네스트 및 상기 버스에서 상기 성능 데이터를 캡쳐하기 위한 하나 이상의 래치를 포함하는 것인, 성능 데이터의 수집 방법.
  6. 청구항 1 내지 청구항 5 중 어느 한 항에 있어서,
    상기 성능 모니터는 상기 L2 캐시 액세스 및 상기 적어도 하나의 프로세서 코어로부터 수신된 성능 데이터에 기초하여 상기 하나 이상의 성능 파라미터를 계산하기 위한 제어 로직을 포함하는 것인, 성능 데이터의 수집 방법.
  7. 청구항 1 내지 청구항 6 중 어느 한 항에 있어서,
    상기 성능 모니터는 상기 성능 데이터를 저장하기 위한 동적 랜덤 액세스 메모리(DRAM; dynamic random access memory)를 포함하는 것인, 성능 데이터의 수집 방법.
  8. 청구항 7에 있어서,
    상기 성능 모니터는 정적 랜덤 액세스 메모리(SRAM; static random access memory)를 포함하고, 상기 SRAM은 제1 주파수에서 상기 적어도 하나의 프로세서 코어로부터 상기 성능 데이터를 수신하고 제2 주파수에서 상기 DRAM에 상기 성능 데이터를 전달하며, 상기 제1 주파수는 상기 제2 주파수보다 큰 것인, 성능 데이터의 수집 방법.
  9. 프로세서의 L2 캐시 네스트에 위치된 성능 모니터에 있어서,
    상기 성능 모니터는,
    상기 L2 캐시 네스트의 L2 캐시에의 액세스를 모니터링하고 상기 L2 캐시 액세스에 관련된 하나 이상의 성능 파라미터를 계산하고;
    상기 L2 캐시 네스트를 적어도 하나의 프로세서 코어와 연결하는 버스를 통해 상기 적어도 하나의 프로세서 코어로부터 성능 데이터를 수신하도록,
    구성되는 것인, 성능 모니터.
  10. 시스템에 있어서,
    적어도 하나의 프로세서 코어;
    L2 캐시와 성능 모니터를 포함하는 L2 캐시 네스트; 및
    상기 L2 캐시 네스트를 상기 적어도 하나의 프로세서 코어와 연결하는 버스 를 포함하고,
    상기 성능 모니터는,
    L2 캐시 액세스에 관련된 하나 이상의 성능 파라미터를 계산하도록 L2 캐시 액세스를 모니터링하고;
    상기 L2 캐시 네스트를 상기 적어도 하나의 프로세서 코어와 연결하는 버스를 통해 상기 적어도 하나의 프로세서 코어로부터 성능 데이터를 수신하도록,
    구성되는 것인, 시스템.
KR1020097015128A 2007-06-27 2008-06-05 프로세서 성능 모니터링 KR20090117700A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/769,005 2007-06-27
US11/769,005 US20090006036A1 (en) 2007-06-27 2007-06-27 Shared, Low Cost and Featureable Performance Monitor Unit

Publications (1)

Publication Number Publication Date
KR20090117700A true KR20090117700A (ko) 2009-11-12

Family

ID=39769355

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097015128A KR20090117700A (ko) 2007-06-27 2008-06-05 프로세서 성능 모니터링

Country Status (6)

Country Link
US (1) US20090006036A1 (ko)
EP (1) EP2171588A1 (ko)
JP (1) JP2010531498A (ko)
KR (1) KR20090117700A (ko)
CN (1) CN101681289A (ko)
WO (1) WO2009000625A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140146272A (ko) * 2013-06-14 2014-12-26 한국전자통신연구원 멀티코어 프로세서 기반의 모니터링 장치 및 그 방법

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19537325C1 (de) * 1995-10-06 1996-11-28 Memminger Iro Gmbh Fadenliefergerät mit elektronischer Ansteuerung
US20080270653A1 (en) * 2007-04-26 2008-10-30 Balle Susanne M Intelligent resource management in multiprocessor computer systems
JP4861270B2 (ja) * 2007-08-17 2012-01-25 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US8610727B1 (en) * 2008-03-14 2013-12-17 Marvell International Ltd. Dynamic processing core selection for pre- and post-processing of multimedia workloads
US9661338B2 (en) * 2010-07-09 2017-05-23 Qualcomm Incorporated Coding syntax elements for adaptive scans of transform coefficients for video coding
US9021206B2 (en) 2011-08-25 2015-04-28 International Business Machines Corporation Use of cache statistics to ration cache hierarchy access
CN103218285B (zh) * 2013-03-25 2015-11-25 北京百度网讯科技有限公司 基于cpu寄存器的内存性能监控方法与装置
CN108021487B (zh) * 2017-11-24 2021-03-26 中国航空工业集团公司西安航空计算技术研究所 一种gpu图形处理性能监测与分析方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5666514A (en) * 1994-07-01 1997-09-09 Board Of Trustees Of The Leland Stanford Junior University Cache memory containing extra status bits to indicate memory regions where logging of data should occur
US5557548A (en) * 1994-12-09 1996-09-17 International Business Machines Corporation Method and system for performance monitoring within a data processing system
US5793941A (en) * 1995-12-04 1998-08-11 Advanced Micro Devices, Inc. On-chip primary cache testing circuit and test method
US6088769A (en) * 1996-10-01 2000-07-11 International Business Machines Corporation Multiprocessor cache coherence directed by combined local and global tables
US6349394B1 (en) * 1999-03-31 2002-02-19 International Business Machines Corporation Performance monitoring in a NUMA computer
US6446166B1 (en) * 1999-06-25 2002-09-03 International Business Machines Corporation Method for upper level cache victim selection management by a lower level cache
US6253286B1 (en) * 1999-08-05 2001-06-26 International Business Machines Corporation Apparatus for adjusting a store instruction having memory hierarchy control bits
EP1182567B1 (en) * 2000-08-21 2012-03-07 Texas Instruments France Software controlled cache configuration
US20030033483A1 (en) * 2001-08-13 2003-02-13 O'connor Dennis M. Cache architecture to reduce leakage power consumption
US6937961B2 (en) * 2002-09-26 2005-08-30 Freescale Semiconductor, Inc. Performance monitor and method therefor
US6701412B1 (en) * 2003-01-27 2004-03-02 Sun Microsystems, Inc. Method and apparatus for performing software sampling on a microprocessor cache
US7054874B2 (en) * 2003-03-05 2006-05-30 Sun Microsystems, Inc. Modeling overlapping of memory references in a queueing system model
US20060031628A1 (en) * 2004-06-03 2006-02-09 Suman Sharma Buffer management in a network device without SRAM
US7257678B2 (en) * 2004-10-01 2007-08-14 Advanced Micro Devices, Inc. Dynamic reconfiguration of cache memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140146272A (ko) * 2013-06-14 2014-12-26 한국전자통신연구원 멀티코어 프로세서 기반의 모니터링 장치 및 그 방법

Also Published As

Publication number Publication date
JP2010531498A (ja) 2010-09-24
US20090006036A1 (en) 2009-01-01
CN101681289A (zh) 2010-03-24
EP2171588A1 (en) 2010-04-07
WO2009000625A1 (en) 2008-12-31

Similar Documents

Publication Publication Date Title
CN111881013B (zh) 以扰乱时序的模式进行的软件向后兼容性测试
KR20090117700A (ko) 프로세서 성능 모니터링
KR101614867B1 (ko) 데이터 스트림에 대한 저장 인식 프리페치
TW385387B (en) Method and system for performance monitoring in a multithreaded processor
US5594864A (en) Method and apparatus for unobtrusively monitoring processor states and characterizing bottlenecks in a pipelined processor executing grouped instructions
US20110055838A1 (en) Optimized thread scheduling via hardware performance monitoring
US9052910B2 (en) Efficiency of short loop instruction fetch
US10275239B2 (en) Deriving application-specific operating parameters for backwards compatiblity
US10303488B2 (en) Real-time adjustment of application-specific operating parameters for backwards compatibility
US20080140934A1 (en) Store-Through L2 Cache Mode
US20090006754A1 (en) Design structure for l2 cache/nest address translation
US20230004405A1 (en) Running a legacy application on a non-legacy device with application-specific operating parameters for backwards compatibility
US20080141002A1 (en) Instruction pipeline monitoring device and method thereof
US20090006753A1 (en) Design structure for accessing a cache with an effective address
US20080140993A1 (en) Fetch engine monitoring device and method thereof
US11907724B2 (en) In-memory trace with overlapping processing and logout
US20070005842A1 (en) Systems and methods for stall monitoring
US20080141008A1 (en) Execution engine monitoring device and method thereof

Legal Events

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