KR20050084011A - 다중 스레드 프로세서의 성능 제어를 위한 장치 및 방법 - Google Patents

다중 스레드 프로세서의 성능 제어를 위한 장치 및 방법 Download PDF

Info

Publication number
KR20050084011A
KR20050084011A KR1020057009627A KR20057009627A KR20050084011A KR 20050084011 A KR20050084011 A KR 20050084011A KR 1020057009627 A KR1020057009627 A KR 1020057009627A KR 20057009627 A KR20057009627 A KR 20057009627A KR 20050084011 A KR20050084011 A KR 20050084011A
Authority
KR
South Korea
Prior art keywords
performance state
logical processor
logical
processor
virtual
Prior art date
Application number
KR1020057009627A
Other languages
English (en)
Other versions
KR100831460B1 (ko
Inventor
바네스 쿠퍼
그랜트 고바야시
Original Assignee
인텔 코오퍼레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인텔 코오퍼레이션 filed Critical 인텔 코오퍼레이션
Publication of KR20050084011A publication Critical patent/KR20050084011A/ko
Application granted granted Critical
Publication of KR100831460B1 publication Critical patent/KR100831460B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

전원 관리 기술은 물리 프로세서 내부의 논리 프로세서의 성능 상태를 관리하기 위하여 시스템 관리 인터럽트(system management interrupt; SMI)를 사용한다. 각 논리 프로세서는 가상 성능 상태 및 실제 성능 상태와 연관되어 있다. 가상 성능 상태를 변경 또는 검색하기 위한 요청은 SMI가 생성되도록 한다. 가상 성능 상태는 오퍼레이팅 시스템(operating system; OS)에게 알려진 상태이다. 실제 성능 상태는 논리 프로세서가 동작하는 상태이다.

Description

다중 스레드 프로세서의 성능 제어를 위한 장치 및 방법 {APPARATUS AND METHOD FOR MULTI-THREADED PROCESSORS PERFORMANCE CONTROL}
본 발명은 컴퓨터 시스템 분야에 관한 것이며, 특히 컴퓨터 시스템에서 전력을 관리하기 위한 방법 및 장치에 관한 것이다.
개인용 디지털 데이터 단말기(personal digital data assistants) 및 셀룰러 전화기와 같은 소형의 휴대용 전자 디바이스로부터 셋톱 박스(set-top box) 및 기타 가전 기기와 같은 애플리케이션 고유의 전자 컴포넌트, 중형의 모바일 및 데스크톱 시스템, 대형 워크스테이션 및 서버에 이르는 다양한 컴퓨터 시스템이 우리 사회에서 급속하게 퍼지고 있다. 소비자에게 보다 강력한 컴퓨터 시스템을 제공하기 위하여, 설계자는 프로세서의 동작 속도를 계속해서 증가시키려고 노력한다. 프로세서 속도를 증가시키는 데 따른 부산물로서 소비 전력의 양이 증가하게 된다. 증가된 전력 소비는 배터리 수명을 단축시킨다.
컴퓨터 시스템에 있어서의 전력 소비를 줄이기 위해 다양한 기술이 알려져 있다. 예컨대, ACPI(Advanced Configuration and Power Interface) 규격(Rev. 2.0a, 2002년 3월 31일)은 휴대용 및 기타 컴퓨터 시스템의 동적 전력 소비를 줄이는 방법에 관한 정보를 제시한다. 컴퓨터 시스템에서 사용되는 프로세서에 관하여, ACPI 규격에는 상이한 프로세서 전력 상태(또는 C 상태)가 정의되어 있다.
역사적으로, 모바일 컴퓨터 시스템은 전력을 절약하기 위하여 다양한 C 상태를 구현하였다. C0는 실행 상태인데, 여기서 프로세서는 유휴(idle)가 아니고 코드를 실행시키며 유용한 작업을 수행한다. 프로세서가 유휴인 경우, 즉 어떠한 스레드(thread)도 실행시키지 않는 경우, OS는 프로세서 정지 명령어 시퀀스(processor halt sequence of instruction)를 발행함으로써 프로세서를 정지 상태로 둘 수 있다. 예컨대, OS는 마스크되지 않은 인터럽트(unmasked interrupt)가 등록될 때까지 프로세서를 정지 상태로 두기 위해서 "STI;HLT"(인터럽트 인에이블; 프로세서 정지)명령어 시퀀스를 발행할 수 있다. C1 상태에서, 프로세서는 스누프 트랜잭션(snoop transaction)에 응답할 수 있으며, 코드를 실행하고 버스 마스터 스누프 트랜잭션(bus master snoop transaction)을 서비스하기 위해 매우 신속하게 깨어날 수 있다. 프로세서는 더 많은 전력을 절약하기 위해 C2, C3 및 C4와 같은 필요한 하위 상태를 점진적으로 순환할 수 있다. C2는 허가 종료 또는 모바일 "빠른 시작" 상태이고, 여기서 클록은 다이(die)의 대부분에 대해 전형적으로 게이트 오프(gate off)된다. 프로세서는 C2 상태에서 스누프를 서비스할 수 있다. 또한, C2 상태는 소프트웨어로 하여금 신속히 실행을 재개하도록 하기 위해서 상당히 낮은 지연 탈출(low latency exit)을 지원한다. C3는 딥 슬립(deep sleep) 상태이고, 여기서 클록은 전체 프로세서에 대하여 내부적 또는 외부적으로 게이팅될 수 있다. C3 상태에서, 프로세서는 버스 마스터 트랜잭션을 스누프할 수 없다. 마지막으로, C4 상태는 클록이 정지되고 전압이 서브-동작 레벨(단지 프로세서 상태를 유지하는데 충분한 전압)로 감소되도록 C3 상태가 변형된 것이다. 누설 전력은 부품에 인가된 전압과 관련이 있기 때문에, C4 상태는 프로세서 전력을 극도로 낮은 레벨로 낮추는데 매우 유효하다.
전력을 절약하기 위하여 모바일 컴퓨터 시스템이 구현한 다른 기술은 프로세서가 동작하는 주파수 및 전압을 동적으로 조절하는 것이다. 예컨대, 프로세서를 낮은 주파수 및 전압에서 동작시킴으로서 프로세서 전력 소비를 줄이는데 도움이 될 수 있다. 프로세서를 낮은 주파수 및 전압에서 동작시키는 것은 프로세서를 정지시키지는 않지만 프로세서의 성능 레벨을 변경시킬 수는 있다. 프로세서의 주파수 및 전압을 동적으로 조절할 수 있는 경우, 프로세서는 컴퓨터 시스템에서 발생하는 이벤트에 더욱 잘 반응하게 된다. 예컨대, 컴퓨터 시스템의 온도가 바람직하지 않은 레벨까지 상승하는 경우, 프로세서를 멈추어 컴퓨터 시스템을 정지시키는 대신, 주파수를 감소시킬 수 있다. 주파수가 감소되는 경우, 전압이 감소될 수 있다. 예컨대, 프로세서의 성능 레벨이 20 % 만큼 감소하는 경우, 프로세서의 전력 소비는 50 % 만큼 감소한다. 이것은 전력에 대한 성능의 비선형 트레이드오프(non-linear trade off)이다. 따라서, 작업의 로드가 작은 경우(예컨대, 전자우편, 워드 프로세싱 등), 프로세서는 낮은 성능 및 낮은 전압에서 실행될 수 있고, 배터리를 더 오래 지속되도록 하는 더 효율적인 레벨에서 동작한다. 선택적으로, 더 높은 성능을 요구하는 애플리케이션을 실행하는 경우, 배터리 수명의 대가로 최상의 성능을 제공하기 위하여 주파수 및 전압은 동적으로 증가될 수 있다.
하이퍼-스레드 기술(Hyper-Treading Technology; HT)은 단일 물리 프로세서(physical processor)를 사용하여 스레드가 병렬로 실행되도록 하는 인텔사(Intelⓡ)의 기술이다. 물리 프로세서는 물리 프로세서 다이(physical processor die)를 지칭하고 인텔 펜티엄ⓡ 4 계열의 프로세서의 경우에는, 단일 패키지이다. HT는 하나의 물리 프로세서 다이 상에 두 개의 논리 프로세서를 포함한다. 논리 프로세서는 OS가 인식할 수 있는 독립 프로세서이며, 코드를 실행하고 시스템 내의 기타 프로세서로부터 고유의 구조적인 상태(unique architectural state)를 유지할 수 있다. HT는 구조적인 상태를 복사함으로써 달성되며, 각 구조적인 상태는 한 세트의 프로세서 실행 자원을 공유한다.
프로세서가 HT를 지원하는 경우, 다중 스레드가 동시에 실행될 수 있다. 논리 프로세서 두개 모두에서의 스레드가 동시에 중단될 가능성은 크지 않기 때문에, 공유된 실행 유닛은 더 효율적으로 사용되어서 주어진 클록 레이트(clock rate)에서 전반적으로 더 높은 성능이 가능해진다. HT를 지원하는 프로세서가 모바일 컴퓨터 시스템에 구현되는 경우, 소정의 성능 및 전력 관리 문제가 해결될 필요가 있다.
이하의 도면은 단지 설명을 위한 목적으로 본 발명의 다양한 실시예를 도시하며 본 발명의 범위를 제한하기 위한 것은 아니다.
도 1은 다중 논리 프로세서를 지원하는 프로세서의 예를 도시하는 블록도.
도 2는 다중 논리 프로세서를 지원하는 프로세서를 사용하는 경우 현재 출시중인 운영 시스템이 어떻게 동작하는지를 예시하는 블록도.
도 3a는 본 발명의 일 실시예에 따른 제1 논리 프로세서에 의해 수행되는 동기화 프로세스를 도시하는 흐름도.
도 3b는 본 발명의 일 실시예에 따른 제2 논리 프로세서에 의해 수행되는 동기화 프로세스를 도시하는 흐름도.
도 4는 본 발명의 일 실시예에 따른 논리 프로세서의 성능 상태를 검색하기 위해 사용되는 프로세스의 예를 도시하는 흐름도.
도 5는 본 발명의 일 실시예에 따른 논리 프로세서의 성능 상태를 갱신하기 위해 사용되는 프로세스의 예를 도시하는 흐름도.
도 6은 본 발명의 일 실시예에 따른 동기화 정책(synchronization policy)의 예를 도시하는 블록도.
도 7은 본 발명의 일 실시예에 따른 물리 프로세서 내의 논리 프로세서의 가상 성능 상태 및 실제 성능 상태의 예를 도시하는 블록도.
이하에서는 본 발명의 일 실시예에 따라, 프로세서의 성능 상태를 관리하기 위한 방법이 설명된다. 프로세서는 다중 스레드 프로세서일 수 있고 두 개 이상의 논리 프로세서를 포함할 수 있다. 운영 시스템(Operating System; OS)이 미리 결정된 어드레스 포트(address port)에 액세스하는 경우 시스템 관리 인터럽트(System Management Interrupt; SMI)가 생성된다. 액세스되는 어드레스 포트에 따라서, 프로세서의 성능 상태가 조절될 수 있다.
이하의 기술에서, 설명을 위한 목적으로, 다양한 특정 상세(specific details)가 본 발명의 완전한 이해를 제공하기 위하여 설명된다. 그러나, 본 발명이 이러한 특정 상세 없이도 실시될 수 있다는 점은 당해 기술 분야의 당업자에게 자명할 것이다. 다른 예에서, 공지의 구조, 프로세스 및 디바이스는 블록도의 형태로 도시되거나 요약 방식으로 참조되고 상세한 구성에 대한 설명은 생략된다.
논리 프로세서
도 1은 다중 프로세서를 지원하는 프로세서의 예를 도시하는 블록도이다. 프로세서(100)는 두 개의 논리 프로세서(105 및 110)를 포함할 수 있다. 예컨대, 프로세서(100)는 하이퍼-스레딩 기술(Hyper-Threading Technology)을 지원할 수 있고 프로세서(100)를 두 개의 논리 프로세서(105 및 110)로 인식되도록 하기 위하여 두 개의 구조적 상태(101 및 102)를 포함할 수 있다. 당해 기술 분야의 당업자는 물리 프로세서가, 각각 하나의 구조적 상태와 연관되는 두 개 이상의 논리 프로세서를 지원할 수 있다는 점을 인식할 수 있을 것이다. 두 개의 논리 프로세서(105, 110)는 동일한 자원(115), 캐시(120), 시스템 버스(125) 및 메인 메모리(130)를 공유한다. 물리 프로세서(100)는 논리 프로세서(105, 110) 중 어떤 것이 이용 가능한지에 따라서 인터리빙 방식(interleaved fashion)으로 스레드를 스케쥴링할 수 있다. 예컨대, 논리 프로세서(105)가 C1 상태에 있는 반면 논리 프로세서(110)는 C0 상태에 있거나 두개 모두 C0 상태에 있거나 또는 두개 모두 C1 상태에 있는 것이 가능할 수 있다. 하나의 논리 프로세서가 C1 상태에 있는 경우, 공유된 실행 자원(115)은 다른 비유휴(non-idle) 논리 프로세서의 사용을 위하여 자유로운 상태로 될 수 있다(may be freed up).
전형적으로, 현재 출시중인 운영 시스템은, 시스템이 다중 논리 프로세서를 구비한 단일 물리 프로세서를 갖는 시스템이라기보다는 다중 프로세서 시스템이라는 가정에 기초하여 동작한다. 도 2는 다중 논리 프로세서를 갖는 프로세서와 함께 사용되는 경우 운영 시스템의 동작 방법의 예를 도시하는 블록도이다. 현재 다중 프로세서를 지원하는 출시중인 운영 시스템(예컨대, Redmond, Washington의 Microsoft Corporation으로부터 입수되는 Windows XP 및 Windows 2000 제품)이 다중 물리 프로세서와 함께 작동하도록 설계될 수 있다. 이러한 운영 시스템은 시스템 내의 각 프로세서가 별도로 관리될 수 있는 독립 엔티티(independent entity)라고 가정할 수 있다. 운영 시스템은 각 물리 프로세서가 단지 단일 논리 프로세서를 포함하고 물리 프로세서에서의 개별 논리 프로세서 상태를 고려하지 않고 물리 프로세서의 성능을 관리하기를 기대한다. 예컨대, 도 2를 참조하면, OS(200)가 (다중 프로세서 시스템에서의) 하나의 물리 프로세서(100) 상에서 동작할 때, OS(200)는 다른 물리 프로세서에 영향을 미치지 않는다고 가정할 수 있다. 오늘날의 OS는 프로세서가 기능적으로 균등하고 하나의 프로세서에서 수행되는 동작이 다른 프로세서에 영향을 미치지 않는다고 가정한다는 점에서 대칭적(symmetrical)이다. 논리 프로세서(105, 110)는 공통 전압 레일(common voltage rail; 206) 및 내부 클록(internal clock; 208)을 공유하는 동일한 다이 상에 있기 때문에, 각 논리 프로세서의 성능 상태를 독립적으로 변경하는 것이 불가능할 수 있다. 하나의 논리 프로세서의 성능 상태에 대한 어떠한 변화가 다른 논리 프로세서의 성능 상태에 영향을 미칠 수 있다.
시스템 관리 모드(System Management Mode; SMM)
본 발명의 일 실시예에 있어서, 도 1에 도시된 논리 프로세서(105, 110)는 전력 관리를 위한 시스템 관리 모드(System Management Mode; SMM)를 지원할 수 있다. SMM은 OS 또는 애플리케이션 프로그램과 간섭하지 않는 전력 관리 소프트웨어 루틴 또는 핸들러(handler)를 실행하기 위한 환경을 지원한다. SMM는 하드웨어 또는 소프트웨어를 사용하여 SMI 서비스 요청(본 명세서에서 SMI로 지칭됨)을 생성함으로써 개시될 수 있다. 예컨대, SMI가 논리 프로세서(105)로 보내지는 경우, 논리 프로세서(105)는 SMM를 개시하고 SMI와 연관된 요청을 서비스하기 위하여 SMRAM 어드레스 공간에서 SMM 소프트웨어 루틴을 실행한다. SMRAM 어드레스 공간은 메모리(130)로부터 분리될 수 있는 메모리 어드레스 공간이다. SMRAM 어드레스 공간은 물리 프로세서(100) 상에 제공될 수 있고 SMM 소프트웨어 루틴의 저장 및 실행을 위해 사용될 수 있다. SMRAM 어드레스 공간은 SMM에서 실행되는 소프트웨어 루틴이 OS 또는 애플리케이션 소프트웨어와 충돌하지 않는 것을 보장하기 위해서 메모리(130)와 구별될 수 있다. SMM은 당해 기술 분야의 당업자에게 알려져 있다.
일 실시예에 있어서, 다중 논리 프로세서, 예컨대 도 1에 도시된 프로세서(100)와 같은 HT를 지원하는 프로세서에서, SMI가 생성되는 경우, 논리 프로세서(105, 110) 두개 모두는 어느 논리 프로세서(105, 110)에 SMI가 보내지는지와 상관없이, SMM을 개시할 수 있다. 논리 프로세서(105, 110)는 동일한 SMRAM을 공유할 수 있지만 SMRAM의 상이한 영역을 사용할 수 있다. 예컨대, OS가 논리 프로세서(105)와 연관된 SMRAM에서의 소프트웨어 루틴으로부터 서비스를 요구하는 경우, OS는 SMI가 논리 프로세서(105)로 보내지도록 할 수 있다. OS 실행은 이후 중지될 수 있다. 논리 프로세서(105)는 이후 SMM을 개시한다. 또한, 논리 프로세서(110)는 SMM을 개시할 수 있다. 논리 프로세서(105)는 이후 요청을 서비스하기 위하여 그 SMRAM에서의 SMI에 대응하는 소프트웨어 루틴을 실행할 수 있다. 논리 프로세서(105)는 이후 SMM을 종료할 수 있다. SMM으로부터의 종료는 논리 프로세서(105)가 RSM(Resume) 명령어를 실행하는 경우 수행될 수 있다. 논리 프로세서(110) 또한 SMM을 종료할 수 있다. OS 실행은 이후 계속될 수 있다.
프로세서 동기화
일 실시예에 있어서, 논리 프로세서(105, 110) 두개 모두가 동시에 SMM을 개시하고 종료하는 것을 보장하기 위하여 동기화가 수행될 수 있다. SMI가 생성되는 경우, 모든 프로세서(논리 및/또는 물리)로 송신될 수 있다. 도 3a 및 도 3b는 본 발명의 일 실시예에 따른 동기화 프로세스의 예를 도시한다. 제1 논리 프로세서가 SMM에 진입하는 경우, 제1 논리 프로세서는 SMRAM 베이스 어드레스를 가리키는 명령어 포인터(Instruction Pointer; IP)를 가질 수 있고, 이는 제1 논리 프로세서 내의 전용 벡터일 수 있다.
도 3a를 참조하여, 블록(305)에서 SMM에 진입하면, 제1 논리 프로세서, 예컨대 프로세서(105)는 제2 논리 프로세서, 예컨대 프로세서(110)가 SMM에 진입하기를 기다릴 수 있다. 블록(315)에 도시된 바와 같이, 제1 논리 프로세서는 제2 논리 프로세서로부터 제2 논리 프로세서가 SMM에 진입한다는 통지를 수신할 때까지 루프(loop)에서 대기할 수 있다. 블록(320)에 도시된 바와 같이, 통지가 수신된 경우, 제1 논리 프로세서는 SMI를 처리하기 위하여 소프트웨어 루틴의 실행을 시작할 수 있다. 소프트웨어 루틴은 제1 논리 프로세서 및 제2 논리 프로세서가 갱신(예컨대, 증가 또는 감소)될 필요가 있는지 여부를 결정하기 위하여 제1 논리 프로세서 및 제2 논리 프로세서 양자의 성능 상태를 확인할 수 있다는 점을 주목하여야 한다. 본 명세서에 도시되지는 않았지만, 소프트웨어 루틴은 또한 추가 작업(예컨대, 요구되는 성능 상태와 현재의 성능 상태를 비교하는 것 등)을 수행할 수 있다. 이러한 작업이 완료되는 경우, 도 3a의 프로세서는 블록(320)으로부터 블록(325)으로 진행하고 여기서 제1 논리 프로세서는 제2 논리 프로세서에게 SMM을 종료한다고 통지한다. 블록(330)에서, 제1 논리 프로세서는 SMM을 종료하기 위해서 명령어(예컨대, resume)를 실행한다.
도 3b를 참조하면, 블록(350)에 도시된 바와 같이, 제1 논리 프로세서가 SMM에 진입하는 경우, 제2 논리 프로세서 또한 SMM에 진입한다. 블록(355)에서, 제2 논리 프로세서는 제1 논리 프로세서에게 자신이 SMM에 있다고 통지한다. 제2 논리 프로세서는 제1 논리 프로세서가 언제 SMM을 종료하는지를 제1 논리 프로세서가 통지하기를 기다릴 수 있다. 블록(365)에 도시된 바와 같이, 제2 논리 프로세서는 제1 논리 프로세서로부터 통지가 수신될 때까지 루프에서 기다릴 수 있다. 제1 논리 프로세서로부터 통지가 수신되는 경우, 도 3b의 프로세스는 블록(365)에서 블록(370)으로 진행하고, 여기서 제2 논리 프로세서는 SMM을 종료하기 위하여 명령어(예컨대, resume)를 실행한다. 도 3b의 블록(355)을 도 3a로 연결하는 점선은 제2 논리 프로세서에 의해서 제1 논리 프로세서로 보내진 통지의 예를 도시한다. 유사하게, 도 3a의 블록(325)을 도 3b로 연결하는 점선은 제1 논리 프로세서에 의해서 제2 논리 프로세서로 보내진 통지의 예를 도시한다.
상태 포트 및 갱신 포트
일 실시예에 있어서, 논리 프로세서가 특정 I/O 포트를 액세스하는 I/O 명령어를 실행하는 경우 SMI 트랩이 생성된다. 예컨대, 물리 프로세서(100)와 연관된 시스템 BIOS(Basic Input/Output System)는 SMI가 생성될 수 있도록 구성될 수 있다. 논리 프로세서가 특정 I/O 포트(또는 레지스터 어드레스)에 액세스하는 I/O 명령어를 실행하는 경우, 시스템 BIOS는 I/O 포트가 성능 상태의 상황(performance state status)을 얻기 위해 또는 성능 상태를 제어하고 SMI가 생성되도록 하기 위해 사용되는 특정 포트의 하나임을 인식한다. OS가 SMI에 대한 서비스가 완료되기를 기다리는 I/O 명령어를 조사하는 동안, SMI는 논리 프로세서(105, 110)가 SMM에 진입할 수 있도록 한다. 이것은 SMI로 하여금 컴퓨터 시스템 내에 가상 I/O 포트를 생성하도록 한다. SMI가 서비스되는 동안, OS 실행이 중지될 수 있다. OS 상태는 SMM에 진입하기 이전에 보존될 수 있고, SMM으로부터 나온 다음에 복원될 수 있다. OS 실행은 이후 다음 명령어를 재개할 수 있다. 또한, 기타 방법이 SMI를 생성하기 위해 사용될 수 있다. 본 명세서에 설명된 I/O 명령어의 사용은 OS에 대해 단지 최소의 변경만을 요구하기 때문에 유리할 수 있다.
일 실시예에 있어서, OS가 논리 프로세스의 성능 상태를 검색하기를 원하는 경우, 특정 상태 포트가 판독될 수 있으며, OS가 논리 프로세서의 성능 상태를 갱신하기를 원하는 경우 특정 갱신 포트에 기입될 수 있다. 선택적으로, 동일한 포트가 두 가지 목적 모두를 위해서 사용될 수 있다. 예컨대, OS가 상태 포트로부터 판독하기 위하여 I/O 명령어를 발행하는 경우, 논리 프로세서의 성능 상태가 반환된다(is returned). 이것은 OS가 반환되기를 기대할 수 있는 성능 상태일 수 있다. 이후 기술되는 바와 같이, OS에게 반환된 성능 상태는 논리 프로세서가 실제로 동작하는 성능 상태일 수도 있고 아닐 수도 있다. OS가 갱신 포트에 기입하기 위한 I/O 명령어를 발행하는 경우, 논리 프로세서의 성능 상태는 I/O 명령어가 제공된 원하는 성능 상태에 기초하여 수정될 수 있다. 이후 기술되는 바와 같이, OS에 의해 제공되는 요구되는 성능 상태는 논리 프로세서가 실제로 동작하는 성능 상태를 변경하기 위하여 사용될 수도 사용되지 않을 수도 있다.
가상 및 실제 성능 상태 레지스터
일 실시예에 있어서, 논리 프로세서의 성능 상태를 저장하기 위하여 두 세트의 레지스터가 사용될 수 있다. 레지스터는 SMRAM의 메모리 위치일 수 있고 논리 프로세서가 SMM에 진입하는 경우 액세스될 수 있다. 한 세트의 레지스터는 제1 논리 프로세서(105)와 연관되고, 다른 세트의 레지스터는 제2 논리 프로세서(110)와 연관된다. 레지스터의 각 세트는 가상 성능 상태 레지스터를 포함할 수 있다. 가상 성능 상태 레지스터는 OS에게 알려질 수 있는 성능 상태를 저장하기 위해 사용될 수 있다. 이것은 가상 성능 상태(virtual performance state)라고 지칭될 수 있다.
또한, 레지스터의 각 세트는 실제 또는 물리 성능 상태 레지스터를 포함할 수 있다. 실제 성능 상태 레지스터는 논리 프로세서가 실제로 동작할 수 있는 성능 상태를 저장하기 위하여 사용될 수 있다. 이것은 실제 또는 물리 성능 상태라고 지칭될 수 있다. 논리 프로세서에 대한 가상 성능 상태 및 실제 성능 상태가 유사할 수도 유사하지 않을 수도 있다. 가상 성능 상태 레지스터 및 실제 성능 상태 레지스터를 구비함으로써 OS로 하여금 각 논리 프로세서의 성능 상태를 독립적으로 관리할 수 있다고 생각하도록 할 수 있다.
성능 상태 검색
도 4는 일 실시예에 따라, 논리 프로세서의 성능 상태를 검색하기 위하여 사용되는 프로세스의 예를 도시하는 흐름도이다. 일 실시예에 대하여, OS가 논리 프로세서의 성능 상태를 요청하는 경우에는 언제나, 그 논리 프로세서의 가상 성능 상태가 반환된다. 블록(405)에서 제1 논리 프로세서는 상태 포트를 판독하는 I/O 명령어를 실행한다. 블록(410)에 도시된 바와 같이 상태 포트를 판독함으로써 SMI가 생성되도록 할 수 있다. 이 시점에서, 물리 프로세서 내의 모든 논리 프로세서가 SMM에 진입할 수 있다. SMM에 있는 동안, SMI와 연관된 소프트웨어 루틴이 어떤 논리 프로세서가 SMI를 수신하는지를 결정하기 위하여 동작할 수 있다. 이것은 논리 프로세서가 수행한 마지막 명령어를 검사하고 마지막 명령어가 I/O 명령어라는 점 및 그 피연산자가 상태 포트를 나타낸다는 점을 확인함으로써 가능하다. 본 예에서, 소프트웨어 루틴이 SMI를 수신하는 논리 프로세서가 제1 논리 프로세서라는 것을 확인하는 경우, 블록(415)에 도시된 바와 같이 소프트웨어 루틴은 가상 성능 상태를 검색하기 위하여 제1 논리 프로세서와 연관된 가상 성능 상태 레지스터에 액세스할 수 있다. 블록(420)에서, 제1 논리 프로세서의 가상 성능 상태가 반환된다.
성능 상태 갱신
도 5는 본 발명의 일 실시예에 따른 논리 프로세서의 성능 상태를 갱신하기 위해 사용되는 프로세스의 예를 도시하는 흐름도이다. 블록(505)에서, 제1 논리 프로세서는 요망되는 성능 상태를 갱신 포트에 기입하는 I/O 명령어를 실행한다. 블록(510)에 도시된 바와 같이, 갱신 포트에 기입함으로써 SMI가 생성되도록 할 수 있다. 이 시점에서, 물리 프로세서 내의 모든 논리 프로세서가 SMM에 진입할 수 있다. SMM인 경우, SMI와 연관된 소프트웨어 루틴은 어떤 논리 프로세서가 SMI를 수신하였는지를 결정할 필요가 있다. 이것은 각 논리 프로세서가 수행한 최후 명령어를 검사함으로써 수행될 수 있다. 본 예에서, 소프트웨어 루틴이 SMI를 수신한 논리 프로세서가 제1 논리 프로세서라고 식별하는 경우, 소프트웨어 루틴은, I/O 명령어가 제1 논리 프로세서의 성능 상태를 증가 또는 감소시키기를 원하는지의 여부를 결정하기 위하여 제1 논리 프로세서와 연관된 가상 성능 상태 레지스터에 액세스할 수 있다.
블록(515)에서, 소프트웨어 루틴은 필요한 경우 원하는 성능 상태를 제1 논리 프로세서와 연관된 실제 성능 상태 레지스터에 저장할 수 있다. 이것은 도 6과 함께 더욱 상세하게 설명될 것이다. 상술한 바와 같이, 실제 성능 상태 레지스터는 제1 논리 프로세서가 실제로 동작하는 성능 상태를 지시할 수 있다. 따라서, 원하는 성능 상태가 실제 성능 상태 레지스터에 저장되는 경우, 제1 논리 프로세서가 동작하고 있는 성능 상태가 갱신될 수 있다. 블록(520)에서, 소프트웨어 루틴은 이후 원하는 성능 상태를 가상 성능 상태 레지스터에 저장할 수 있다.
성능 동기화 정책
일 실시예에 대하여, 도 5의 블록(515)에서 동작을 수행하기 위하여, 소프트웨어 루틴에 의해 성능 동기화 정책(performance synchronization policy)이 사용될 수 있어서 원하는 성능 상태를 실제 성능 상태 레지스터에 기입할지 여부를 결정한다. 도 6은 일 실시예에 따라 성능 상태 정책의 예를 도시하는 블록도이다. 동기화 정책이 OS로 하여금 논리 프로세서의 성능 상태가 독립적으로 조작될 수 있다고 간주하도록 하기 위하여 사용될 수 있다.
일 실시예에 대하여, 성능 동기화 정책은 상위 실제 성능 상태에 대하여 오류를 범할 수 있다. 즉, 동기화 정책은 논리 프로세서로 하여금 OS가 생각하는 논리 프로세서가 동작하는 성능 상태보다 상위의 실제 성능 상태에서 동작하도록 하는 것에 동의할 수 있다.
일 실시예에 대하여, 물리 프로세서는 논리 프로세서의 실제 성능 상태와 동일한 성능 상태에서 동작할 수 있다. 따라서, 하나 이상의 논리 프로세서가 동작하고 있다고 OS가 생각하는 성능 상태보다 상위의 성능 상태에서 물리 프로세서가 동작하는 것이 가능하다.
논리 프로세서 중 하나의 실제 성능 상태 및 가상 성능 상태는 동일할 수 있다. 또한, 논리 프로세서의 가상 성능 상태가 그 논리 프로세서의 실제 성능 상태보다 하위이거나 동일한 것이 가능하다. 그러나, 논리 프로세서의 가상 성능 상태가 그 논리 프로세서의 실제 성능 상태보다 상위인 것은 불가능하다.
도 6의 예를 참조하면, OS가 제1 논리 프로세서의 성능 상태를 변경하기를 원하는 경우, OS는 원하는 성능 상태를 갱신 포트에 기입한다. 블록(605)에서 제1 논리 프로세서의 가상 성능 상태는 제1 논리 프로세서와 연관된 가상 성능 상태 레지스터로부터 검색될 수 있다. 블록(610)에서, SMI와 연관된 소프트웨어 루틴이 실행될 수 있다. 소프트웨어 루틴은 명령어가 제1 논리 프로세서의 성능 상태를 증가시키기를 원하는 요청인지 또는 감소시키기를 원하는 요청인지의 여부를 결정하기 위하여 원하는 성능 상태를 제1 논리 프로세서의 (가상 성능 상태 레지스터에 저장된 바와 같은) 가상 성능 상태와 비교할 수 있다.
명령어가 증가 요청인 경우(즉, 원하는 성능 상태가 가상 성능 상태 레지스터에 저장되어 있는 가상 성능 상태보다 상위인 경우), 프로세스는 블록(610)으로부터 블록(620)으로 진행된다. 블록(620)에서, 소프트웨어 루틴은 원하는 성능 상태를 제1 논리 프로세서의 (실제 성능 상태 레지스터에 저장된 바와 같은) 실제 성능 상태와 비교할 수 있다. 제1 논리 프로세서가 이미 원하는 성능 상태보다 상위 또는 동일한 성능 상태에서 동작하고 있는 경우, 제1 논리 프로세서의 실제 성능 상태를 변경할 필요가 없을 수도 있다. 원하는 성능 상태는 이후 제1 논리 프로세서와 연관된 가상 성능 상태에 저장될 수 있다. 이러한 원하는 성능 상태는 제1 논리 프로세서가 동작하고 있다고 OS가 생각하는 새로운 가상 성능 상태가 된다. 프로세서는 이후 블록(620)에서 블록(630)으로 진행한다.
요청이 논리 프로세서의 성능 상태를 증가시키는 것이고 제1 논리 프로세서는 현재 원하는 성능 상태보다 하위의 성능 상태에서 동작하고 있을 경우, 프로세스는 블록(620)으로부터 블록(625)으로 진행한다. 블록(625)에서, 제1 논리 프로세서의 실제 성능 상태는 원하는 성능 상태로 갱신된다. 이것은 원하는 성능 상태를 실제 성능 상태 레지스터에 기입하는 단계를 포함할 수 있다. 또한, 모든 기타 논리 프로세서의 실제 성능 상태는 또한 원하는 성능 상태로 갱신될 수 있다. 이러한 상황에서, 제1 논리 프로세서와 연관된 가상 레지스터 상태를 제외하고는, 모든 논리 프로세서와 연관된 가상 레지스터 상태는 변경 없이 유지될 수 있다. 프로세스는 이후 블록(625)으로부터 블록(630)으로 진행한다.
명령어가 감소 요청인 경우(즉, 원하는 성능 상태가 가상 성능 상태 레지스터에 저장된 가상 성능 상태보다 하위인 경우), 프로세스는 블록(610)으로부터 블록(615)으로 진행하며, 여기서 모든 논리 프로세서의 최상위 가상 성능 상태가 결정된다. 예컨대, 모든 기타 논리 프로세서가 하위의 성능 상태에서 동작하도록 요청할 수 있었지만, 모든 논리 프로세서는 제1 논리 프로세서가 동작하는 실제 성능 상태와 유사한 상위의 실제 성능 상태에서 동작할 수 있다. 따라서, 블록(618)에 도시된 바와 같이 감소 요청이 수신된 경우, 모든 논리 프로세서의 실제 성능 상태를 감소시키는 것이 가능하다. 이러한 상황에서, 제1 논리 상태와 연관된 가상 레지스터 상태를 제외하고는, 모든 논리 프로세서와 연관된 가상 레지스터 상태가 변경 없이 유지될 수 있다는 것이 주목될 수 있다. 이후 프로세스는 블록(618)으로부터 블록(630)으로 진행한다.
도 6에서 상술된 성능 동기화 정책은, 두 개의 논리 프로세서의 최상위 가상 성능 상태(블록 618) 또는 최상위 실제 성능 상태(블록 625)에 기초하여 선택되기 때문에, 상위 성능 측에서 오류가 발생할 수 있는 성능-지향 정책(performance-oriented policy)이다. 선택적으로, 그 밖의 보다 보수적인 성능 동기화 정책이 사용될 수 있다. 예컨대, 좀더 긴 배터리 시간을 달성하기 위해서, 성능 동기화 정책은 하위 성능에서 오류를 범할 수 있다. 일 실시예에 있어서, 두 개의 논리 프로세서의 최하위 가상 성능 상태 또는 실제 성능 상태(블록 625)에 기초하여 선택이 행하여 질 수 있다. 다른 실시예에 있어서, 두 개의 논리 프로세서의 성능 상태의 가중된 평균에 기초하여 선택이 행하여 질 수 있다. 예컨대, 제1 논리 프로세서의 실제 성능 상태가 1 GHz인 경우 및 제2 논리 프로세서의 실제 성능 상태가 2 GHz인 경우, 두 개의 논리 프로세서는 1.6 GHz에서 동작하여서 제1 논리 프로세서에 대하여 여전히 높은 성능을 제공하지만 제2 논리 프로세서를 위해서 약간의 전력을 절약하도록 설정될 수 있다.
도 7은 본 발명의 일 실시예에 따른 물리 프로세서에서 두 개의 논리 프로세서의 가상 성능 상태 및 실제 성능 상태의 예를 도시하는 블록도이다. 블록도는 도 6의 성능 동기화 정책에 기초하여 도시되어 있다. T0 시점에서, 좌측 열에는 제1 논리 프로세서의 가상 성능 상태(가상 성능 상태 레지스터에 의해 표시됨)가 1 GHz로 동작하고 있다고 나타내고, 제2 논리 프로세서의 가상 성능 상태는 2 GHz로 동작하고 있다고 나타낸다. 한편, 우측 열에는 제1 논리 프로세서의 실제 성능 상태(실제 성능 상태 레지스터에 의해 표시됨)가 2 GHz로 동작하고 있다고 나타낸다. 유사하게, 제2 논리 프로세서의 실제 성능 상태는 제2 논리 프로세서가 2 GHz에서 동작하고 있다고 나타낸다. 이러한 상황에서, 물리 프로세서는 2 GH에서 동작할 수 있다.
T1 시점에서, 제1 논리 프로세서의 성능 상태를 1.5 GH로 증가시키기 위하여 갱신 포트에 기입하는 I/O 명령어를 발행할 수 있다. 제1 논리 프로세서의 실제 성능 상태가 상위 성능 상태인 2 GHz이기 때문에, 제1 논리 프로세서의 실제 성능 상태는 갱신될 필요가 없을 수도 있다. 제1 논리 프로세서의 가상 성능 상태는 OS에게 알려질 수 있는 성능 상태이기 때문에, 제1 논리 프로세서의 가상 성능 상태는 OS에 의해 기대되는 동일한 성능 상태(예컨대, 1.5 GHz)로 증가된다. 제1 및 제 2 논리 프로세서의 실제 성능 상태가 2 GHz일 수 있다는 점이 주목될 수 있다. 이러한 상황에서, 물리 프로세서는 2 GHz에서 동작할 수 있다.
T2 시점에서, OS는 제2 논리 프로세서의 성능 상태를 2.5 GH로 증가시키기 위하여 갱신 포트에 기입하는 I/O 명령어를 발행할 수 있다. 제2 논리 프로세서의 실제 성능 상태가 현재 하위 성능 상태인 2 GHz이기 때문에, 제2 논리 프로세서의 실제 성능 상태는 2.5 GHz까지 증가될 수 있다. 또한, 제2 논리 프로세서의 가상 성능 상태 레지스터가 OS에 의해 기대되는 동일한 성능 상태(예컨대, 2.5GHz)까지 증가될 수 있다. 도 6에 도시된 동기화 정책이 상위 성능 상태에서 오류를 범할 수 있기 때문에, 가상 성능 상태는 1.5 GHz에서 동일하게 유지될 수 있지만, 제1 논리 프로세서의 실제 성능 상태는 또한 2.5 GHz로 변경될 수 있다. 이러한 경우, 물리 프로세서는 2.5 GHz에서 동작할 수 있다.
T3 시점에서, OS는 제1 논리 프로세서의 성능 상태를 0.75 GH로 감소시키기 위하여 갱신 포트에 기입하는 I/O 명령어를 발행할 수 있다. 제2 논리 프로세서의 실제 성능 상태가 2.5 GHz이기 때문 및 동기화 정책이 상위 성능 상태 상에서 오류를 범할 수 있기 때문에, 제1 논리 프로세서의 실제 성능 상태는 0.75 GHz로 변경되지 않고 2.5 GHz로 유지될 수 있다. 제1 논리 프로세서의 가상 성능 상태 레지스터는 OS에 의해 기대되는 성능 상태(예컨대, 0.75 GHz)로 변경될 수 있다. 제2 논리 프로세서의 실제 성능 상태 및 가상 성능 상태에는 변화가 없다. 이러한 경우, 물리 프로세서는 2.5 GHz에서 동작할 수 있다.
T4 시점에서, OS는 제2 논리 프로세서의 성능 상태를 0.5 GH로 감소시키기 위하여 갱신 포트에 기입하는 I/O 명령어를 발행할 수 있다. 제1 논리 프로세서는(제2 논리 프로세서에 대한 0.5 GHz와 비교하여) 0.75 GHz에서 최상위 가상 성능 상태를 갖기 때문에, 제1 논리 프로세서 및 제2 논리 프로세서의 실제 성능 상태는 0.75 GHz로 감소될 수 있다. 제2 논리 프로세서의 가상 성능 상태는 OS에 의해 기대되는 성능 상태(예컨대, 0.5 GHz)로 감소될 수 있다. 제1 논리 프로세서의 가상 성능 상태에 대한 변화는 없고, 0.75 GHz에 머문다. 물리 프로세서는 0.75 GHz에서 동작할 수 있다.
컴퓨터 판독 가능 매체
이러한 다양한 방법의 동작은 컴퓨터 시스템에서 다중 논리 프로세서를 지원하는 프로세서에 의하여 구현될 수 있으며, 프로세서는 기계-판독 가능 저장 매체로 간주될 수 있는 메모리에 저장된 컴퓨터 프로그램 명령어의 시퀀스를 실행한다. 메모리는 대규모 저장 디바이스와 같은 RAM, ROM, 지속 저장 메모리(persistent storage memory) 또는 이러한 디바이스들의 임의의 조합일 수 있다. 명령어의 시퀀스의 실행은 프로세서로 하여금 예컨대 도 4 내지 도 6에 도시된 프로세스에 따라 동작을 수행하도록 한다.
명령어는 저장 디바이스 또는 하나 이상의 기타 컴포넌트 시스템(예컨대, 서버 컴퓨터 시스템)으로부터 컴퓨터 시스템의 메모리로 로딩될 수 있다. 명령어는 동시에 몇 개의 디바이스(예컨대, 가상 메모리와 같은 DRAM 및 하드 디스크)에 저장될 수 있다. 결과적으로, 이러한 명령어의 실행은 프로세서에 의해 직접 수행될 수 있다.
기타의 경우에 있어서, 명령어는 직접적으로 실행될 수 있거나 프로세서에 의해서 직접 실행 가능하지 않을 수도 있다. 이러한 환경에서, 명령어는 프로세서로 하여금 명령어를 변환하는 변환기를 실행하도록 함으로써 또는 프로세서로 하여금 수신된 명령어를 프로세서에 의해 직접 실행 가능한 명령어로 전환하는 컴파일러(compiler)를 실행하도록 함으로써 실행될 수 있다.
다른 실시예에서, 본 발명을 구현하기 위하여 하드와이어 회로(hard-wired circuitry)가 소프트웨어 명령어를 대신하거나 또는 이와 조합되어 사용될 수 있다. 따라서, 본 발명은 하드웨어 회로 및 소프트웨어의 어떤 특정 조합에 제한되지 않으며, 컴퓨터 시스템에 의해 실행되는 명령어에 대한 임의의 특정 소스에 제한되지 않는다.
다중 논리 프로세서(예컨대, HT를 지원하는 프로세서)를 지원하는 프로세서를 하위 전력 상태로 배치하기 위한 방법 및 시스템이 개시되었다. SMM을 이용하여, 각 논리 프로세서의 성능 상태가 관리될 수 있다. 본 발명이 특정 예시적인 실시예를 참조하여 설명되었지만, 청구항에 주어진 광의의 사상 및 범위를 벗어남 없이 본 발명에 대해 다양한 수정 및 변경이 가능하다는 점은 자명할 것이다. 예컨대, HT를 지원하는 프로세서는 두 개의 논리 프로세서를 구비하는 것으로 설명되었지만, 두 개 이상의 논리 프로세서가 있는 경우에도 설명된 기술이 적용 가능하다. 따라서, 명세서 및 도면은 제한적인 면보다는 설명적인 면에서 고려되어야 한다.

Claims (30)

  1. 하나의 물리 프로세서에서 두 개 이상의 논리 프로세서의 성능 상태를 관리하기 위하여 시스템 관리 모드(system management mode; SMM)를 사용하는 단계를 포함하며, 상기 두 개 이상의 논리 프로세서의 각각은 가상 성능 상태(virtual performance state) 및 실제 성능 상태(actual performance state)와 연관되고, 상기 시스템 관리 모드는 상기 가상 성능 상태 및 상기 실제 성능 상태를 액세스하기 위하여 사용되는 방법.
  2. 제1항에 있어서, 제1 논리 프로세서와 연관된 상기 가상 성능 상태는 운영 시스템(Operating System; OS)이 상기 제1 논리 프로세서의 성능 상태를 요청하는 경우 상기 운영 시스템으로 보고되는 성능 상태인 방법.
  3. 제2항에 있어서, 상기 제1 논리 프로세서와 연관된 상기 실제 성능 상태는 상기 제1 논리 프로세서가 실제로 동작하고 있는 성능 상태인 방법.
  4. 제3항에 있어서, 상기 가상 성능 상태를 검색하기 위하여 상태 포트(status port)로부터 판독하는 단계를 더 포함하는 방법.
  5. 제4항에 있어서, 상기 가상 성능 상태를 현재 가상 성능 상태로부터 새로운 가상 성능 상태로 갱신하기 위하여 갱신 포트(update port)에 기입하는 단계를 더 포함하는 방법.
  6. 제5항에 있어서, 상기 가상 성능 상태를 상기 현재 가상 성능 상태로부터 새로운 가상 성능 상태로 갱신하기 위하여 갱신 포트에 기입하는 단계는 상기 갱신이 상기 현재 가상 성능 상태로부터 상기 새로운 가상 성능 상태로의 증가인지 또는 감소인지를 결정하는 단계를 포함하는 방법.
  7. 제6항에 있어서, 상기 갱신이 증가이고 상기 제1 논리 프로세서와 연관된 상기 실제 성능 상태가 상기 새로운 가상 성능 상태보다 상위이거나 동일한 경우, 상기 제1 논리 프로세서의 상기 실제 성능 상태는 변경되지 않고 유지되는 방법.
  8. 제7항에 있어서, 상기 갱신이 증가이고 상기 제1 논리 프로세서와 연관된 상기 실제 성능 상태가 상기 새로운 가상 성능 상태보다 하위인 경우, 상기 제1 논리 프로세서 및 상기 제1 논리 프로세서와 연결된 모든 기타 논리 프로세서의 상기 실제 성능 상태가 상기 새로운 가상 성능 상태로 변경되는 방법.
  9. 제7항에 있어서, 상기 갱신이 감소인 경우, 상기 제1 논리 프로세서와 상기 제1 논리 프로세서에 연결된 그 밖의 모든 논리 프로세서의 상기 실제 성능 상태는 모든 논리 프로세서의 최상위 가상 성능 상태로 변경되는 방법.
  10. 제6항에 있어서, 상기 제1 논리 프로세서의 상기 현재 가상 성능 상태를 상기 새로운 가상 성능 상태로 변경하는 방법.
  11. 프로세싱 시스템에서 실행되는 경우, 상기 프로세싱 시스템으로 하여금 방법을 수행하도록 하는 실행 가능한 명령어를 포함하는 컴퓨터 판독 가능 매체로서, 상기 방법은
    제1 논리 프로세서의 가상 성능 상태를 검색하고 상기 제1 논리 프로세서의 상기 가상 성능 상태를 변경하기 위하여 시스템 관리 인터럽트(System Management Interrupt; SMI)를 사용하는 단계를 포함하며, 상기 제1 논리 프로세서는 두 개 이상의 논리 프로세서를 구비하는 물리 프로세서에 포함되고, 상기 제1 논리 프로세서의 실제 성능 상태는 상기 제1 논리 프로세서의 가상 성능 상태보다 상위일 수 있는 컴퓨터 판독 가능 매체.
  12. 제11항에 있어서, 새로운 가상 성능 상태가 상기 제1 논리 프로세서의 현재 실제 성능 상태보다 상위인 경우, 상기 제1 논리 프로세서의 상기 실제 성능 상태는 상기 제1 논리 프로세서에 대한 상기 새로운 가상 성능 상태로 변경되는 컴퓨터 판독 가능 매체.
  13. 제12항에 있어서, 상기 제1 논리 프로세서의 상기 새로운 가상 성능 상태가 상기 제1 논리 프로세서의 상기 현재 실제 성능 상태보다 상위이기 때문에 상기 제1 논리 프로세서의 상기 실제 성능 상태가 변경되는 경우, 그 밖의 모든 논리 프로세서의 실제 성능 상태도 상기 제1 논리 프로세서의 상기 새로운 가상 성능 상태로 증가되는 컴퓨터 판독 가능 매체.
  14. 제11항에 있어서, 상기 제1 논리 프로세서에 대한 새로운 가상 성능 상태가 상기 제1 논리 프로세서의 현재 가상 성능 상태보다 하위인 경우, 상기 제1 논리 프로세서의 상기 실제 성능 상태가 변경되는 컴퓨터 판독 가능 매체.
  15. 제14항에 있어서, 상기 제1 논리 프로세서의 상기 실제 성능 상태의 변경은
    상기 모든 논리 프로세서의 최상위 가상 성능 상태를 결정하는 단계; 및
    상기 제1 논리 프로세서의 상기 실제 성능 상태를 상기 최상위 가상 성능 상태로 변경하는 단계
    를 포함하는 컴퓨터 판독 가능 매체.
  16. 제15항에 있어서, 그 밖의 모든 논리 프로세서의 실제 성능 상태를 상기 최상위 가상 성능 상태로 변경하는 단계를 더 포함하는 컴퓨터 판독 가능 매체.
  17. 제1 논리 프로세서의 가상 성능 상태를 검색하고 상기 제1 논리 프로세서의 상기 가상 성능 상태를 변경하기 위하여 시스템 관리 인터럽트(System Management Interrupt; SMI)를 사용하는 단계를 포함하며, 상기 제1 논리 프로세서는 두 개 이상의 논리 프로세서를 구비하는 물리 프로세서에 포함되고, 상기 제1 논리 프로세서가 동작하는 실제 성능 상태는 운영 시스템(Operating System; OS)에 알려진 상기 제1 논리 프로세서의 가상 성능 상태와 다를 수 있는 방법.
  18. 제17항에 있어서, 상기 제1 논리 프로세서의 상기 실제 성능 상태는 상기 두 개 이상의 논리 프로세서의 최상위 실제 성능 상태에 기초하여 선택되는 방법.
  19. 제17항에 있어서, 상기 제1 논리 프로세서의 상기 실제 성능 상태는 상기 두 개 이상의 논리 프로세서의 최상위 가상 성능 상태에 기초하여 선택되는 방법.
  20. 제17항에 있어서, 상기 제1 논리 프로세서의 상기 실제 성능 상태는 상기 두 개 이상의 논리 프로세서의 최하위 실제 성능 상태에 기초하여 선택되는 방법.
  21. 제17항에 있어서, 상기 제1 논리 프로세서의 상기 실제 성능 상태는 상기 두 개 이상의 논리 프로세서의 최하위 가상 성능 상태에 기초하거나 또는 상기 두 개 이상의 논리 프로세서의 실제 성능 상태의 가중 평균(weighted average)에 기초하여 선택되는 방법.
  22. 제17항에 있어서, 상기 물리 프로세서는 상기 제1 논리 프로세서의 상기 실제 성능 상태에서 동작하는 방법.
  23. 메모리에 연결된 물리 프로세서를 포함하는 시스템으로서, 상기 물리 프로세서는 제1 논리 프로세서 및 제2 논리 프로세서를 포함하고, 상기 제1 논리 프로세서 및 상기 제2 논리 프로세서의 성능 상태는 시스템 관리 인터럽트(System Management Interrupt; SMI)를 생성하고 상기 논리 프로세서 각각과 연관된 가상 성능 상태 레지스터(virtual performance state register) 및 실제 성능 상태 레지스터(actual performance state register)를 제어함으로써 관리되는 시스템.
  24. 제23항에 있어서, 상기 제1 논리 프로세서의 상기 가상 성능 상태 레지스터는 운영 시스템(Operating System; OS)에 알려진 상기 제1 논리 프로세서의 가상 성능 상태를 저장하기 위하여 사용되는 시스템.
  25. 제24항에 있어서, 상기 제1 논리 프로세서의 상기 실제 성능 상태 레지스터는 상기 제1 논리 프로세서가 실제 동작하고 있는 실제 성능 상태를 저장하기 위하여 사용되는 시스템.
  26. 제25항에 있어서, 상기 가상 성능 상태 레지스터를 판독하기 위한 상태 포트 및 원하는 성능 상태를 상기 가상 성능 상태 레지스터에 기입하기 위한 갱신 포트를 더 포함하는 시스템.
  27. 제26항에 있어서, 상기 상태 포트 또는 상기 갱신 포트가 액세스되는 경우 상기 SMI가 생성되는 시스템.
  28. 제26항에 있어서, 상기 원하는 성능 상태가 상기 제1 논리 프로세서의 상기 가상 성능 상태 레지스터에 기입될 때, (a) 상기 원하는 가상 성능 상태가 상기 현재 가상 성능 상태보다 상위이고 (b) 상기 현재 실제 성능 상태가 상기 원하는 성능 상태보다 하위인 경우, 상기 제1 논리 프로세서의 현재 실제 성능 상태가 상기 원하는 성능 상태로 변경되는 시스템.
  29. 제28항에 있어서, 상기 원하는 성능 상태가 상기 제1 논리 프로세서의 상기 가상 성능 상태 레지스터에 기입될 때, 상기 원하는 가상 성능 상태가 상기 현재 가상 성능 상태보다 하위인 경우, 상기 제1 논리 프로세서의 현재 실제 성능 상태가 모든 논리 프로세서의 최상위 가상 성능 상태로 변경되는 시스템.
  30. 제29항에 있어서, 상기 원하는 가상 성능 상태가 상기 현재 가상 성능 상태보다 하위인 경우, 모든 논리 프로세서의 실제 성능 상태를 상기 최상위 가상 성능 상태로 변경하는 시스템.
KR1020057009627A 2002-11-30 2003-11-06 다중 스레드 프로세서의 성능 제어를 위한 장치 및 방법 KR100831460B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/307,146 2002-11-30
US10/307,146 US7219241B2 (en) 2002-11-30 2002-11-30 Method for managing virtual and actual performance states of logical processors in a multithreaded processor using system management mode

Publications (2)

Publication Number Publication Date
KR20050084011A true KR20050084011A (ko) 2005-08-26
KR100831460B1 KR100831460B1 (ko) 2008-05-22

Family

ID=32392527

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057009627A KR100831460B1 (ko) 2002-11-30 2003-11-06 다중 스레드 프로세서의 성능 제어를 위한 장치 및 방법

Country Status (8)

Country Link
US (1) US7219241B2 (ko)
EP (1) EP1570342A2 (ko)
JP (2) JP4704041B2 (ko)
KR (1) KR100831460B1 (ko)
CN (1) CN1717645B (ko)
AU (1) AU2003287706A1 (ko)
TW (1) TWI271653B (ko)
WO (1) WO2004051461A2 (ko)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004063915A2 (en) * 2003-01-13 2004-07-29 Arm Limited Data processing performance control
US7334142B2 (en) * 2004-01-22 2008-02-19 International Business Machines Corporation Reducing power consumption in a logically partitioned data processing system with operating system call that indicates a selected processor is unneeded for a period of time
US7194641B2 (en) * 2004-01-22 2007-03-20 International Business Machines Corporation Method and apparatus for managing power and thermal alerts transparently to an operating system in a data processing system with increased granularity in reducing power usage and thermal generation
US7784064B2 (en) * 2004-04-14 2010-08-24 Barclays Capital Inc. Method for collecting monitor information
US7512774B2 (en) * 2004-04-14 2009-03-31 Barclays Capital Inc. Method and system for collecting processor information
US7451333B2 (en) * 2004-09-03 2008-11-11 Intel Corporation Coordinating idle state transitions in multi-core processors
US7543161B2 (en) * 2004-09-30 2009-06-02 International Business Machines Corporation Method and apparatus for tracking variable speed microprocessor performance caused by power management in a logically partitioned data processing system
US8108863B2 (en) * 2005-12-30 2012-01-31 Intel Corporation Load balancing for multi-threaded applications via asymmetric power throttling
US7802073B1 (en) * 2006-03-29 2010-09-21 Oracle America, Inc. Virtual core management
US7493436B2 (en) * 2006-10-26 2009-02-17 International Business Machines Corporation Interrupt handling using simultaneous multi-threading
US8214662B2 (en) * 2007-04-09 2012-07-03 Panasonic Corporation Multiprocessor control unit, control method performed by the same, and integrated circuit
US7853928B2 (en) * 2007-04-19 2010-12-14 International Business Machines Corporation Creating a physical trace from a virtual trace
US8281308B1 (en) 2007-07-23 2012-10-02 Oracle America, Inc. Virtual core remapping based on temperature
WO2009058042A1 (en) * 2007-10-29 2009-05-07 Intel Corporation A method of external performance monitoring for virtualized environments
US8166326B2 (en) * 2007-11-08 2012-04-24 International Business Machines Corporation Managing power consumption in a computer
US20090132842A1 (en) * 2007-11-15 2009-05-21 International Business Machines Corporation Managing Computer Power Consumption In A Computer Equipment Rack
US8041521B2 (en) * 2007-11-28 2011-10-18 International Business Machines Corporation Estimating power consumption of computing components configured in a computing system
US7992015B2 (en) 2008-02-05 2011-08-02 Dell Products L.P. Processor performance state optimization
US8635625B2 (en) * 2008-04-04 2014-01-21 International Business Machines Corporation Power-aware workload allocation in performance-managed computing environments
US8301742B2 (en) * 2008-04-07 2012-10-30 International Business Machines Corporation Systems and methods for coordinated management of power usage and runtime performance in performance-managed computing environments
US20090288092A1 (en) * 2008-05-15 2009-11-19 Hiroaki Yamaoka Systems and Methods for Improving the Reliability of a Multi-Core Processor
US8103884B2 (en) * 2008-06-25 2012-01-24 International Business Machines Corporation Managing power consumption of a computer
US8307220B2 (en) * 2008-06-25 2012-11-06 International Business Machines Corporation Managing power consumption of a computer
TW201015321A (en) * 2008-09-25 2010-04-16 Panasonic Corp Buffer memory device, memory system and data trnsfer method
US8041976B2 (en) * 2008-10-01 2011-10-18 International Business Machines Corporation Power management for clusters of computers
US8514215B2 (en) * 2008-11-12 2013-08-20 International Business Machines Corporation Dynamically managing power consumption of a computer with graphics adapter configurations
US8230245B2 (en) * 2009-01-23 2012-07-24 Dell Products, L.P. Method and system for operating-system-independent power management using performance verifications
US9244797B2 (en) * 2009-05-29 2016-01-26 Dell Products L.P. Methods for managing performance states in an information handling system
US20100332877A1 (en) * 2009-06-30 2010-12-30 Yarch Mark A Method and apparatus for reducing power consumption
US8578138B2 (en) 2009-08-31 2013-11-05 Intel Corporation Enabling storage of active state in internal storage of processor rather than in SMRAM upon entry to system management mode
US8364997B2 (en) * 2009-12-22 2013-01-29 Intel Corporation Virtual-CPU based frequency and voltage scaling
FR2960314B1 (fr) * 2010-05-19 2012-07-27 Bull Sas Procede d'optimisation de gestion de veille d'un microprocesseur permettant la mise en oeuvre de plusieurs coeurs logiques et programme d'ordinateur mettant en oeuvre un tel procede
US8478923B2 (en) 2010-09-25 2013-07-02 International Business Machines Corporation Interrupt suppression by processing just first interrupt of a same type
CN102339230B (zh) * 2011-09-01 2014-01-29 西安交通大学 复用客户操作系统设备驱动的实现方法
US9104485B1 (en) * 2011-10-28 2015-08-11 Amazon Technologies, Inc. CPU sharing techniques
US8935699B1 (en) 2011-10-28 2015-01-13 Amazon Technologies, Inc. CPU sharing techniques
GB2510091B (en) 2011-11-22 2020-05-20 Intel Corp Collaborative processor and system performance and power management
US9310875B2 (en) 2011-12-22 2016-04-12 Intel Corporation Instruction that specifies an application thread performance state
EP2831721B1 (en) 2012-03-30 2020-08-26 Intel Corporation Context switching mechanism for a processing core having a general purpose cpu core and a tightly coupled accelerator
US9003218B2 (en) 2012-05-21 2015-04-07 International Business Machines Corporation Power shifting in multicore platforms by varying SMT levels
US9052885B2 (en) * 2012-12-21 2015-06-09 Advanced Micro Devices, Inc. Using temperature margin to balance performance with power allocation
US8904389B2 (en) 2013-04-30 2014-12-02 Splunk Inc. Determining performance states of components in a virtual machine environment based on performance states of related subcomponents
US9164786B2 (en) 2013-04-30 2015-10-20 Splunk Inc. Determining performance states of parent components in a virtual-machine environment based on performance states of related child components during a time period
US9495187B2 (en) * 2013-04-30 2016-11-15 Splunk, Inc. Interactive, top-down presentation of the architecture and performance of a hypervisor environment
US9015716B2 (en) 2013-04-30 2015-04-21 Splunk Inc. Proactive monitoring tree with node pinning for concurrent node comparisons
US9467120B1 (en) * 2013-12-19 2016-10-11 Altera Corporation Power management for PCI express
US9734110B2 (en) 2015-02-13 2017-08-15 International Business Machines Corporation Dynamic synchronous to asynchronous frequency transitions in high-performance symmetric multiprocessing
US10216245B2 (en) 2015-12-22 2019-02-26 Cray Inc. Application ramp rate control in large installations
US11948008B2 (en) 2019-04-30 2024-04-02 Hewlett-Packard Development Company, L.P. System management memory coherency detection
US11392418B2 (en) 2020-02-21 2022-07-19 International Business Machines Corporation Adaptive pacing setting for workload execution

Family Cites Families (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4220815B1 (en) * 1978-12-04 1996-09-03 Elographics Inc Nonplanar transparent electrographic sensor
US4320292A (en) * 1979-08-22 1982-03-16 Nippon Telegraph And Telephone Public Corporation Coordinate input apparatus
JPS5685792A (en) * 1979-12-14 1981-07-13 Citizen Watch Co Ltd Liquid crystal display unit
FR2496949B1 (fr) * 1980-12-23 1987-05-15 Thomson Csf Dispositif electro-optique de commutation
US4476463A (en) * 1981-08-24 1984-10-09 Interaction Systems, Inc. Display device having unpatterned touch detection
EP0097384B1 (de) * 1982-06-18 1987-01-28 Koninklijke Philips Electronics N.V. Flüssigkristallanzeigevorrichtung
JPS5910988A (ja) * 1982-07-12 1984-01-20 ホシデン株式会社 カラ−液晶表示器
US4785564A (en) * 1982-12-20 1988-11-22 Motorola Inc. Electronic notepad
JPH0654960B2 (ja) * 1983-10-20 1994-07-20 シチズン時計株式会社 液晶表示装置の駆動方法
US4655552A (en) * 1984-03-17 1987-04-07 Citizen Watch Co., Ltd. Flat panel display device having on-screen data input function
US4603356A (en) * 1984-03-19 1986-07-29 Energy Conversion Devices, Inc. Imaging system with light valve and photodetector
JPS616729A (ja) * 1984-06-20 1986-01-13 Sharp Corp 情報入出力装置
US4917474A (en) * 1984-09-10 1990-04-17 Semiconductor Energy Laboratory Co., Ltd. Optoelectronic panel and method of making the same
US4814760A (en) * 1984-12-28 1989-03-21 Wang Laboratories, Inc. Information display and entry device
US4782327A (en) * 1985-01-02 1988-11-01 Victor B. Kley Computer control
US4794634A (en) * 1985-12-24 1988-12-27 Kabushiki Kaisha Komatsu Seisakusho Position-sensitive photodetector and light transmissive tablet and light-emitting pen
US4720869A (en) * 1986-02-18 1988-01-19 International Business Machines Corporation Hand dimension verification
EP0252646B1 (en) * 1986-07-07 1993-09-29 Semiconductor Energy Laboratory Co., Ltd. Paperless portable book
US4698460A (en) * 1986-08-26 1987-10-06 Tektronix, Inc. Touch panel system
US4782328A (en) * 1986-10-02 1988-11-01 Product Development Services, Incorporated Ambient-light-responsive touch screen data input method and system
US4767192A (en) * 1986-10-31 1988-08-30 International Business Machines Corporation Light activated light valve with a silicon control element
US4772101A (en) * 1986-11-07 1988-09-20 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Remotely controllable real-time optical processor
US5051570A (en) * 1989-01-20 1991-09-24 Nec Corporation Liquid crystal light valve showing an improved display contrast
JP2816979B2 (ja) * 1989-02-13 1998-10-27 日本フィリップス株式会社 入力機能付き表示装置
US5021679A (en) * 1989-06-30 1991-06-04 Poqet Computer Corporation Power supply and oscillator for a computer system providing automatic selection of supply voltage and frequency
US5153535A (en) * 1989-06-30 1992-10-06 Poget Computer Corporation Power supply and oscillator for a computer system providing automatic selection of supply voltage and frequency
US6158012A (en) * 1989-10-30 2000-12-05 Texas Instruments Incorporated Real-time power conservation and thermal management for computers
FI85544C (fi) * 1989-11-03 1992-04-27 Marttila Heikki Oy Koppling foer kompensering av verkan av yttre ljus pao infraroedkaensliga fototransistorer i kontaktdisplaypaneler.
US5105186A (en) * 1990-05-25 1992-04-14 Hewlett-Packard Company Lcd touch screen
US6067062A (en) * 1990-09-05 2000-05-23 Seiko Instruments Inc. Light valve device
JPH04133313A (ja) * 1990-09-25 1992-05-07 Semiconductor Energy Lab Co Ltd 半導体作製方法
US5445871A (en) * 1990-10-30 1995-08-29 Kansai Paint Co., Ltd. Surface-modified plastic plate
TW237562B (ko) * 1990-11-09 1995-01-01 Semiconductor Energy Res Co Ltd
US5153420A (en) * 1990-11-28 1992-10-06 Xerox Corporation Timing independent pixel-scale light sensing apparatus
US5204661A (en) * 1990-12-13 1993-04-20 Xerox Corporation Input/output pixel circuit and array of such circuits
GB9027481D0 (en) * 1990-12-19 1991-02-06 Philips Electronic Associated Matrix display device with write-in facility
GB9108226D0 (en) * 1991-04-17 1991-06-05 Philips Electronic Associated Optical touch input device
DE69221018T2 (de) * 1991-05-01 1998-01-22 Matsushita Electric Ind Co Ltd Festkörper-Bildaufnahmeeinrichtung
US5243332A (en) * 1991-10-31 1993-09-07 Massachusetts Institute Of Technology Information entry and display
US5610629A (en) * 1991-12-06 1997-03-11 Ncr Corporation Pen input to liquid crystal display
US5751453A (en) * 1991-12-06 1998-05-12 Ncr Corporation Liquid crystal display with pen-input capability
JP2863363B2 (ja) * 1992-01-24 1999-03-03 シャープ株式会社 表示装置
JP2837578B2 (ja) * 1992-05-20 1998-12-16 シャープ株式会社 画像入出力装置および方法
GB9220104D0 (en) * 1992-09-07 1992-11-04 Philips Electronics Uk Ltd Matrix display device with light sensing function
KR950004378B1 (ko) * 1992-09-09 1995-04-28 주식회사금성사 위치감지액정표시소자및제조방법
US5581378A (en) * 1993-02-01 1996-12-03 University Of Alabama At Huntsville Electro-optical holographic display
US6133906A (en) * 1993-03-15 2000-10-17 Microtouch Systems, Inc. Display-integrated stylus detection system
GB9313841D0 (en) * 1993-07-05 1993-08-18 Philips Electronics Uk Ltd An electro-optic device
US5502838A (en) * 1994-04-28 1996-03-26 Consilium Overseas Limited Temperature management for integrated circuits
US5752011A (en) * 1994-06-20 1998-05-12 Thomas; C. Douglas Method and system for controlling a processor's clock frequency in accordance with the processor's temperature
US5635982A (en) * 1994-06-27 1997-06-03 Zhang; Hong J. System for automatic video segmentation and key frame extraction for video sequences having both sharp and gradual transitions
US5812109A (en) * 1994-08-23 1998-09-22 Canon Kabushiki Kaisha Image input/output apparatus
US5917464A (en) * 1994-10-18 1999-06-29 Xerox Corporation Combination of 2-D detector array with display for image processing
US5734585A (en) * 1994-11-07 1998-03-31 Norand Corporation Method and apparatus for sequencing power delivery in mixed supply computer systems
US5652600A (en) * 1994-11-17 1997-07-29 Planar Systems, Inc. Time multiplexed gray scale approach
US5724565A (en) * 1995-02-03 1998-03-03 International Business Machines Corporation Method and system for processing first and second sets of instructions by first and second types of processing systems
TW327707B (en) * 1995-05-18 1998-03-01 Motorola Inc Method for producing power consumption in a portable electronic device with a liquid crystal display screen
US5877735A (en) * 1995-06-23 1999-03-02 Planar Systems, Inc. Substrate carriers for electroluminescent displays
US5990988A (en) * 1995-09-01 1999-11-23 Pioneer Electric Corporation Reflection liquid crystal display and a semiconductor device for the display
US5767623A (en) * 1995-09-11 1998-06-16 Planar Systems, Inc. Interconnection between an active matrix electroluminescent display and an electrical cable
US5793342A (en) * 1995-10-03 1998-08-11 Planar Systems, Inc. Resonant mode active matrix TFEL display excitation driver with sinusoidal low power illumination input
US5712528A (en) * 1995-10-05 1998-01-27 Planar Systems, Inc. Dual substrate full color TFEL panel with insulator bridge structure
JPH09203890A (ja) * 1996-01-25 1997-08-05 Sharp Corp 入力機能付き液晶表示素子および反射型入力機能付き液晶表示素子、並びにそれらの製造方法
US5812860A (en) * 1996-02-12 1998-09-22 Intel Corporation Method and apparatus providing multiple voltages and frequencies selectable based on real time criteria to control power consumption
KR19990014880A (ko) * 1996-03-18 1999-02-25 요트.게.아.롤페즈 디스플레이 장치
US5959697A (en) * 1996-06-07 1999-09-28 Electronic Data Systems Corporation Method and system for detecting dissolve transitions in a video signal
US5920360A (en) * 1996-06-07 1999-07-06 Electronic Data Systems Corporation Method and system for detecting fade transitions in a video signal
US5778108A (en) * 1996-06-07 1998-07-07 Electronic Data Systems Corporation Method and system for detecting transitional markers such as uniform fields in a video signal
US5729760A (en) * 1996-06-21 1998-03-17 Intel Corporation System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode
CN1147785C (zh) * 1996-08-27 2004-04-28 松下电器产业株式会社 执行多个指令流的多程序流程同时处理器
JP3854392B2 (ja) * 1996-11-11 2006-12-06 同和鉱業株式会社 光学的フィルター
KR100393039B1 (ko) * 1996-11-20 2003-10-17 삼성에스디아이 주식회사 액정표시소자
US6105142A (en) * 1997-02-11 2000-08-15 Vlsi Technology, Inc. Intelligent power management interface for computer system hardware
US6314511B2 (en) * 1997-04-03 2001-11-06 University Of Washington Mechanism for freeing registers on processors that perform dynamic out-of-order execution of instructions using renaming registers
US6038632A (en) * 1997-05-07 2000-03-14 Kabushiki Kaisha Toshiba Interrupt control on SMM
US6087599A (en) * 1997-11-24 2000-07-11 The Whitaker Corporation Touch panels having plastic substrates
US6163313A (en) * 1997-12-12 2000-12-19 Aroyan; James L. Touch sensitive screen and method
US6308279B1 (en) * 1998-05-22 2001-10-23 Intel Corporation Method and apparatus for power mode transition in a multi-thread processor
US6157989A (en) * 1998-06-03 2000-12-05 Motorola, Inc. Dynamic bus arbitration priority and task switching based on shared memory fullness in a multi-processor system
KR100394023B1 (ko) * 1998-08-06 2003-10-17 엘지.필립스 엘시디 주식회사 반투과 반사형 액정표시장치
US6278444B1 (en) * 1998-08-21 2001-08-21 Geoffrey D. Wilson Low current four-wire interface for five-wire resistive touch-screen
JP3732956B2 (ja) * 1998-09-16 2006-01-11 三洋電機株式会社 反射型液晶表示装置
US6184863B1 (en) * 1998-10-13 2001-02-06 The George Washington University Direct pointing apparatus and method therefor
US6295113B1 (en) * 1998-12-16 2001-09-25 Picvue Electronics, Ltd. Twisted nematic color liquid crystal display
US6181394B1 (en) * 1999-01-22 2001-01-30 White Electronic Designs, Corp. Super bright low reflection liquid crystal display
JP2001043098A (ja) * 1999-07-29 2001-02-16 Matsushita Electric Ind Co Ltd オペレーティングシステムおよび仮想計算機システム
US6986137B1 (en) * 1999-09-28 2006-01-10 International Business Machines Corporation Method, system and program products for managing logical processors of a computing environment
US6351076B1 (en) * 1999-10-06 2002-02-26 Tohoku Pioneer Corporation Luminescent display panel drive unit and drive method thereof
US6564328B1 (en) * 1999-12-23 2003-05-13 Intel Corporation Microprocessor with digital power throttle
US6184394B1 (en) * 2000-01-27 2001-02-06 Eastman Chemical Company Process for the preparation of 3-furoate esters and novel intermediate compounds
US6718474B1 (en) * 2000-09-21 2004-04-06 Stratus Technologies Bermuda Ltd. Methods and apparatus for clock management based on environmental conditions
US6704876B1 (en) * 2000-09-26 2004-03-09 Sun Microsystems, Inc. Microprocessor speed control mechanism using power dissipation estimation based on the instruction data path
US6687838B2 (en) * 2000-12-07 2004-02-03 Intel Corporation Low-power processor hint, such as from a PAUSE instruction
US6829713B2 (en) * 2000-12-30 2004-12-07 Intel Corporation CPU power management based on utilization with lowest performance mode at the mid-utilization range
US6895520B1 (en) * 2001-03-02 2005-05-17 Advanced Micro Devices, Inc. Performance and power optimization via block oriented performance measurement and control
US6836849B2 (en) * 2001-04-05 2004-12-28 International Business Machines Corporation Method and apparatus for controlling power and performance in a multiprocessing system according to customer level operational requirements
US6834353B2 (en) * 2001-10-22 2004-12-21 International Business Machines Corporation Method and apparatus for reducing power consumption of a processing integrated circuit

Also Published As

Publication number Publication date
JP2006508468A (ja) 2006-03-09
JP4704041B2 (ja) 2011-06-15
AU2003287706A8 (en) 2004-06-23
US7219241B2 (en) 2007-05-15
EP1570342A2 (en) 2005-09-07
CN1717645B (zh) 2010-05-12
US20040107369A1 (en) 2004-06-03
TW200416599A (en) 2004-09-01
WO2004051461A2 (en) 2004-06-17
TWI271653B (en) 2007-01-21
KR100831460B1 (ko) 2008-05-22
AU2003287706A1 (en) 2004-06-23
CN1717645A (zh) 2006-01-04
WO2004051461A3 (en) 2005-06-23
JP2009093665A (ja) 2009-04-30

Similar Documents

Publication Publication Date Title
KR100831460B1 (ko) 다중 스레드 프로세서의 성능 제어를 위한 장치 및 방법
US7152169B2 (en) Method for providing power management on multi-threaded processor by using SMM mode to place a physical processor into lower power state
US9075610B2 (en) Method, apparatus, and system for energy efficiency and energy conservation including thread consolidation
US7032116B2 (en) Thermal management for computer systems running legacy or thermal management operating systems
US6901522B2 (en) System and method for reducing power consumption in multiprocessor system
US8190863B2 (en) Apparatus and method for heterogeneous chip multiprocessors via resource allocation and restriction
US7496915B2 (en) Dynamic switching of multithreaded processor between single threaded and simultaneous multithreaded modes
US7761720B2 (en) Mechanism for processor power state aware distribution of lowest priority interrupts
Jang et al. Energy reduction in consolidated servers through memory-aware virtual machine scheduling
JP6074351B2 (ja) イベント処理のためのターボ性能を向上させる方法および装置
US9003421B2 (en) Acceleration threads on idle OS-visible thread execution units
EP2207092A2 (en) Software-based thead remappig for power savings
US20090320031A1 (en) Power state-aware thread scheduling mechanism
US20020184290A1 (en) Run queue optimization with hardware multithreading for affinity
US10719466B2 (en) System and method for implementing a multi-threaded device driver in a computer system
CN115981833A (zh) 一种任务处理方法及装置
US20030140264A1 (en) Control method, program and computer apparatus for reducing power consumption and heat generation by a CPU during wait
JP4482275B2 (ja) オペレーティングシステムサポートのために一定の時間基準を用いるマルチモード電力管理システムのハードウェアアーキテクチャ
EP3295276A1 (en) Reducing power by vacating subsets of cpus and memory
WO2023237115A1 (zh) 数据处理方法、装置、设备和系统
Murti et al. Energy Efficient Embedded Systems

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130503

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140502

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150512

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160509

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170508

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180504

Year of fee payment: 11