KR100798980B1 - 컴퓨터 시스템에서의 전력 관리 방법 및 장치 - Google Patents

컴퓨터 시스템에서의 전력 관리 방법 및 장치 Download PDF

Info

Publication number
KR100798980B1
KR100798980B1 KR1020067013281A KR20067013281A KR100798980B1 KR 100798980 B1 KR100798980 B1 KR 100798980B1 KR 1020067013281 A KR1020067013281 A KR 1020067013281A KR 20067013281 A KR20067013281 A KR 20067013281A KR 100798980 B1 KR100798980 B1 KR 100798980B1
Authority
KR
South Korea
Prior art keywords
threshold
transactions
processor
memory controller
power state
Prior art date
Application number
KR1020067013281A
Other languages
English (en)
Other versions
KR20060111658A (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 KR20060111658A publication Critical patent/KR20060111658A/ko
Application granted granted Critical
Publication of KR100798980B1 publication Critical patent/KR100798980B1/ko

Links

Images

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
    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Abstract

컴퓨터 시스템에서의 전력 관리 방법 및 장치가 개시되어 있다. 본 방법의 일 실시예는 시스템 내의 칩셋 장치 및 주변 장치를 연결하는 상호연결을 통한 트랜잭션들을 모니터링하는 단계, 및 칩셋 장치의 버퍼에 보류중인 복수의 코히런트 트랜잭션들이 제1 임계값을 초과하는 경우, 시스템 내의 프로세서로 하여금 전력 상태로부터 빠져나오게 하는 단계를 포함하고, 트랜잭션들은 칩셋 장치가 트랜잭션들을 추적할 수 있게 하는 흐름 제어 프로토콜에 따라 주변 장치와 칩셋 장치 간에 전송된다. 다른 실시예들이 기술되고 청구된다.
전력 관리, 칩셋, 반도체 메모리, 프로세서, 코히런트 트랜잭션, 인코히런트 트랜잭션

Description

컴퓨터 시스템에서의 전력 관리 방법 및 장치{A METHOD AND AN APPARATUS FOR POWER MANAGEMENT IN A COMPUTER SYSTEM}
본 발명은 컴퓨팅 기술에 관한 것으로서, 보다 상세하게는 컴퓨터 시스템에서의 전력 관리에 관한 것이다.
전형적인 컴퓨터 시스템에서, 시스템의 중앙 처리 장치(CPU)는 그 시스템에서의 안정된(robust) 전력 관리를 가능하게 하기 위해 다양한 전력 상태를 지원한다. 예를 들어, CPU는 C0, C1, C2, C3 및 C4 상태 등의 5가지 전력 상태를 지원할 수 있다. 하나의 시스템에서, C0 상태는 CPU가 명령어를 실행하는 활성 전력 상태(active power state)이고, 나머지 상태들, 즉, C1, C2, C3 및 C4 상태들은 절전 상태(sleeping state)이다. 절전 상태에서, CPU는 C0 상태에서보다 적은 전력을 소모하고 적은 열을 발산하는데, 그 이유는 CPU가 절전 상태에 있는 동안에는 어떤 명령어도 실행하지 않기 때문이다. 게다가, C4 상태에서의 전력 소모는 일반적으로 C3 상태에서의 전력 소모보다 적은데, 그 이유는 CPU가 C4 상태에 들어갈 때 CPU 공급 전압이 하강하기 때문이다.
각각의 절전 상태는 진입(entry) 및 탈출(exit)과 연관된 대기시간(latency)을 가지며, 각각의 상태에서의 전력 절감과 관계가 있다. 일반적으로, 더 많은 전 력을 절감하기 위해 더 많은 회로 또는 로직을 셧다운(shutdown)시키면, 그 회로 및/또는 로직 셧다운에 전원을 재공급(re-energize)하기 위해 더 많은 노력과 더 긴 탈출 대기시간이 소비된다. 예를 들어, CPU의 위상 동기 루프(PLL) 및 입력/출력(IO)은 CPU가 C3 또는 C4 상태에 있을 때 더 많은 전력을 절감하기 위해 셧다운될 수 있는데, 그 이유는 CPU가 C3 또는 C4 상태에 있는 동안 스누프(snoop)하지 않기 때문이다. 그러나, 일반적으로 CPU가 C3 또는 C4 상태에서 빠져 나온 후에 PLL 및 IO에 전원을 재공급하는 데 더 많은 시간이 걸린다.
예시적인 시스템에서, CPU는 C0 상태 동안 메모리에 액세스하거나, C1 또는 C2 상태 동안에 버스-마스터 개시 메모리 트래픽(bus-master initiated memory traffic)을 스누프할 수 있다. 버스 마스터는 예를 들어 외부 그래픽 코어 등의, 주어진 시간에 버스를 제어하는 주변 장치이다. 따라서, 한 장치로부터 다른 장치로의 버스를 통한 데이터 이동은, 버스 마스터링 이벤트(bus mastering event)라고 한다. 이와 반대로, C3 또는 C4 상태에서, CPU는 더 깊은 절전 상태의 일부로서 스누프 또는 메모리 액세스를 일시정지(suspend)한다. 버스 마스터 개시 메모리 트래픽을 스누프하기 위해, C3 또는 C4 상태에 있는 CPU는 C3 또는 C4 상태에서 빠져 나와야만 한다. C3 및 C4 상태의 더 높은 탈출 대기시간으로 인해, 시스템은 CPU가 C3 또는 C4 상태에 들어가기 전에 스누프하는 것을 요구할 수 있는 시스템 내의 임의의 주변 장치로부터의 진행중인 버스 마스터링 이벤트가 있는지 여부를 검증해야만 한다. 진행중인 버스 마스터링 이벤트가 있는 경우, CPU는 C3 또는 C4 상태보다 전력 소모가 높지만 탈출 대기시간이 낮은 전력 상태(예를 들어, C1 또는 C2)를 받아들인다.
주변 장치와 관련하여, 주변 장치는 PCI 익스프레스 상호연결(PCI Express interconnect) 등의 직렬 상호연결을 거쳐 루트 복합 장치(root complex device)를 통해 CPU에 연결될 수 있다. 루트 복합 장치는 호스트 브리지 및 하나 이상의 루트 포트를 포함한다. 루트 복합 장치의 예는, 메모리 컨트롤러, 즉, IO 컨트롤러 기능 장치를 포함한다. 상호연결은 한 장치를 다른 장치에 연결하는 기반구조이다. PCI 익스프레스는 고속의 점대점 직렬 상호연결 표준이다. 예를 들어, 1세대 PCI 익스프레스 상호연결은 레인(lane)당 2.5Gb/sec 데이터 전송을 지원한다. 하나의 예시적인 시스템에서, 그래픽 장치가 16-레인 PCI 익스프레스 상호연결을 통해 시스템(예를 들어, 메모리 컨트롤러 허브)의 칩셋에 연결되어 있다.
게다가, PCI 익스프레스는 PCI 익스프레스 상호연결을 통해 트래픽을 추적하기 위해 크레디트(credit)를 갖는 계정 방식(accounting scheme)을 지원함으로써 흐름 제어를 가능하게 해준다. 크레디트는 상호연결을 통한 다양한 유형의 트랜잭션을 위한 장치에서의 이용가능한 버퍼링을 나타낸다. 예를 들어, 메모리 컨트롤러는 정보를 다수의 레지스터에 기입함으로써 데이터를 전송하는 루트 복합 장치의 기능의 소프트웨어에 보고할 수 있다. PCI 익스프레스 프로토콜에 따르면, 판독 요청(read request), 기입 요청(write request), 완료(completion) 등의 다양한 트랜잭션에 대한 다수의 미리 정해진 크레디트가 존재한다. 예를 들어, 그래픽 장치가 루트 복합 장치에 대해 트랜잭션(예를 들어, 판독 요청)을 발행하고 이들 트랜잭션이 보류 중에 있을 때, 메모리 컨트롤러에서 보류중인 트랜잭션이 차지하는 버 퍼링의 양을 반영하기 위해 크레디트가 소모된다. 이들 트랜잭션이 메모리 컨트롤러에 의해 처리 또는 폐기(retire)된 경우, 크레디트는 해제(release) 또는 해방(free up)된다. 소모된 크레디트에 의해 반영되는 보류중인 트랜잭션의 수는, C3 또는 C4 상태에의 진입을 금지할 수 있는 버스 마스터링 이벤트의 가능성을 나타낸다.
진행중인 버스 마스터링 트래픽을 나타내는 종래의 기술은 측파대 신호(sideband signal)를 사용한다. 예를 들어, 그래픽 장치는, AGP(Accelerated Graphics Port)를 사용하여 그래픽 장치를 부착하고 있는 시스템에 대한 진행중인 버스 마스터링 트래픽을 나타내기 위해 신호 AGP_BUSY를 컴퓨터 시스템의 루트 복합 장치에 전송한다. 그러나, 측파대 신호는 각각의 장치 상에 측파대 신호당 하나의 부가 핀을 필요로 하기 때문에 비용이 많이 든다. 게다가, 장래의 기술 혁신이 이러한 측파대 신호를 전혀 사용하지 않을 수 있더라도, 시스템에서 측파대 신호를 위해 영구적인 커넥터 기반구조가 제공되어야만 한다.
도 1a는 컴퓨터 시스템에서 전력을 관리하는 프로세스의 일 실시예의 흐름도.
도 1b는 컴퓨터 시스템에서 전력을 관리하는 프로세스의 일 실시예의 흐름도.
도 2a는 진입(entry) 임계값의 일 실시예를 나타낸 도면.
도 2b는 탈출(exit) 임계값의 일 실시예를 나타낸 도면.
도 3a 내지 도 3c는 칩셋 파티션의 다양한 실시예를 나타낸 도면.
도 4는 컴퓨터 시스템의 예시적인 실시예를 나타낸 도면.
본 발명은 이하의 상세한 설명 및 첨부 도면으로부터 보다 충분히 이해될 것이지만, 이는 첨부된 청구항을 도시된 특정의 실시예로 제한하는 것으로 간주되어서는 안되며 단지 설명 및 이해를 위한 것에 불과하다.
이하의 설명에서, 다수의 특정 세부사항이 기술되어 있다. 그러나, 본 발명의 실시예들이 이들 특정 세부사항 없이 실시될 수 있음을 잘 알 것이다. 다른 예에서, 본 설명의 이해를 모호하게 하지 않도록 공지의 회로, 구조 및 기술은 상세히 도시되어 있지 않다.
본 명세서에서의 "일 실시예" 또는 "실시예"에 대한 언급은, 그 실시예와 관련하여 기술된 특정의 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함되어 있음을 의미한다. 본 명세서의 여러 곳에서 나타나는 용어 "일 실시예에서"가 반드시 모두 동일한 실시예를 지칭하는 것은 아니다.
컴퓨터 시스템에서의 전력 관리 방법 및 장치가 개시되어 있다. 일 실시예에서, 본 방법은 컴퓨터 시스템 내의 칩셋 장치와 주변 장치를 연결하는 상호연결을 통한 트랜잭션들을 모니터링하는 단계를 포함하며, 트랜잭션들은 칩셋 장치가 트랜잭션들을 추적할 수 있게 하는 흐름 제어 프로토콜에 따라 주변 장치와 칩셋 장치 간에 전송된다. 이 실시예는 또한 칩셋 장치의 버퍼에 보류중인 다수의 코히런트 트랜잭션(coherent transaction)이 소정의 임계값을 초과하는 경우, 컴퓨터 시스템 내의 프로세서로 하여금, 전력 상태로부터 빠져나오게 하는 단계를 포함한다. 특정 실시예에서, 제어 흐름 프로토콜은 PCI 익스프레스이다. 다른 특징들은 첨부 도면 및 이하의 상세한 설명으로부터 명백하게 될 것이다.
도 1a는 컴퓨터 시스템에서 전력을 관리하는 프로세스의 일 실시예의 흐름도를 나타낸 것이다. 이 프로세스는 하드웨어(예를 들어, 회로, 전용 로직 등), 소프트웨어(범용 컴퓨터 시스템 또는 전용 머신 상에서 실행되는 것 등) 또는 이들의 조합을 포함할 수 있는 프로세싱 로직에 의해 수행된다. 상기한 바와 같이, 예시적인 CPU는 C3 또는 C4 상태에 있는 동안 메모리 액세스를 개시하거나 버스-마스터 개시 트래픽을 스누프하지 않을 수 있다. 따라서, C3 또는 C4 상태에 들어가기 위한 CPU 요청(프로세싱 블록(101))에 응답하여, 프로세싱 로직은 시스템 내의 주변 장치들이 버스 마스터를 스누프하거나 또는 스누프하지 않고 시스템 메모리에 직접 액세스하도록 CPU에 요청할 가능성이 있는지 여부를 결정하기 위한 일련의 동작을 수행한다. 주변 장치들의 예는 외부 그래픽 코어, 이더넷 컨트롤러 등을 포함한다. 프로세싱 로직은 주변 장치들 중 하나로부터 트랜잭션(103)을 수신할 수 있다(프로세싱 블록(104)). 트랜잭션(103)은 코히런트 또는 인코히런트(incoherent)일 수 있다. 코히런트 트랜잭션은 CPU의 캐시에서 현재 사용 또는 수정 중이거나 사용 또는 수정될 가능성이 있는 데이터를 수반한다. 이와 반대로, 인코히런트 트랜잭션은 메모리로부터의 데이터를 수반하며, 이 데이터는 CPU의 캐시에서 현재 저장, 사용 또는 수정되고 있는 것이 아니다.
도 1a를 참조하면, 프로세싱 로직은 수신된 트랜잭션(103)이 코히런트인지 또는 컴퓨터 시스템에서의 메모리 컨트롤러에 임의의 보류중인 코히런트 트랜잭션이 있는지를 검사한다(프로세싱 블록(110)). 둘 중 어느 하나가 참이면, 프로세싱 로직은 CPU가 C3 또는 C4 상태에 들어가지 못하도록 버스 마스터링 표시자를 어써트(assert)한다(프로세싱 블록(130)). 일 실시예에서, CPU는 이어서 C1 또는 C2 상태일 수 있는 디폴트 상태로 들어간다.
그러나, 수신된 트랜잭션(103)이 인코히런트이고 루트 복합 장치에 보류중인 코히런트 트랜잭션이 없는 경우, 프로세싱 로직은 인코히런트 트랜잭션(103)이 차지하는 메모리 컨트롤러에서의 버퍼의 부분을 반영하기 위해 다수의 크레디트를 소모하고 그 트랜잭션(103)을 보류 상태로 유지한다(프로세싱 블록(112)). 프로세싱 로직은 소모된 크레디트의 총 수가 진입 임계값을 초과하거나 그와 같은지를 검사할 수 있다(프로세싱 블록(120)). 소모된 크레디트의 총 수가 진입 임계값을 초과하거나 그와 같은 경우, 보류중인 트랜잭션에 의해 채워진 루트 복합 장치에서의 버퍼의 부분은 진입 임계값에 대응하는 특정 레벨을 초과하였다. 메모리 컨트롤러에서의 이용가능한 버퍼링이 적은 경우, 주변 장치가 부가의 트랜잭션들을 메모리 컨트롤러에 전송할 가능성이 더 적다. 따라서, CPU가 스누프하도록 요청받을 가능성이 더 적고, 이로써, CPU는 C3 또는 C4 상태에 들어갈 수 있다. 그 결과, 프로세싱 로직은 CPU가 C3 또는 C4 상태에 들어갈 수 있게 하기 위해 버스 마스터링 표시자를 디어써트(de-assert)한다(프로세싱 블록(129)).
한편, 소모된 크레디트의 총 수가 진입 임계값보다 작은 경우, 프로세싱 로직은 타이머가 만료되었는지 여부를 검사할 수 있다(프로세싱 블록(122)). 타이머 가 만료된 경우, 프로세싱 로직은 CPU가 C3 또는 C4 상태에 들어갈 수 있게 하기 위해 버스 마스터링 표시자를 디어써트한다(프로세싱 블록(130)). 그렇지 않은 경우, 프로세싱 로직은 프로세싱 블록(110)을 반복한다. 다른 대안으로서, 소모된 크레디트의 총 수가 진입 임계값보다 작은 것으로 결정되면, 프로세싱 로직은 타이머를 전혀 검사하지 않고 단지 프로세싱 블록(110)을 반복할 수 있다.
도 2a는 진입 임계값의 일 실시예를 나타낸 것이다. 루트 복합 장치에 보류중인 인코히런트 트랜잭션이 있는 경우에도, 진입 임계값(210)은, 예시적인 CPU로 하여금, C3 또는 C4 상태에 들어가게 하기 위해 버스 마스터링 표시자를 수정하도록 설정될 수 있다. 다시 말하면, CPU에 대하여 버스 마스터링 표시자를 어써트하는 것을 지연시키기 위해 소모된 크레디트의 수가 진입 임계값(210)을 초과하거나 그와 같을 때까지, 트랜잭션들은, 어떠한 서비스도 시도되지 않은 채, 의도적으로 메모리 컨트롤러에 보류중인 상태로 보유될 수 있다. 그 결과, CPU는 C3 또는 C4 상태에 들어갈 수 있는 더 많은 기회를 갖게 되어, 평균 CPU 전력 소모를 감소시킨다. 그래픽 애플리케이션 등의 성능에 매우 민감한 애플리케이션에 대해, 진입 임계값(210)은 0%로 설정될 수 있다.
그러나, 랩톱 컴퓨터 등의 모바일 시스템에서, 시스템이 배터리로만 동작하고 있을 때, 진입 임계값은 시스템의 하나 이상의 배터리에 남아 있는 전하의 양에 따라 서로 다른 값으로 설정될 수 있다. 더 낮은 CPU 전력 소모에 대한 트레이드오프(tradeoff)는, 저하된 CPU 성능 상태일 수 있다는 것에 주목한다. 게다가, 일 실시예에서, 타이머는, 어떤 대기시간에 민감한 애플리케이션들에 대한 트레이드오 프의 영향을 완화시키기 위해 초기의 보류중인 트랜잭션의 제공을 얼마나 오래 지연(stall)시킬지를 제한(qualify)하는데 사용된다. 진입 임계값(210)에 도달하기 전에 타이머가 만료되면, 버스 마스터링 표시자는 트래픽이 적거나 유휴 상태(idle state)인 경우에 CPU가 C3 또는 C4 상태에 들어갈 수 있게 하기 위해 리셋될 수 있다.
도 1b는 컴퓨터 시스템에서 전력을 관리하는 프로세스의 일 실시예의 흐름도를 나타낸 것이다. 이 프로세스는 하드웨어(예를 들어, 회로, 전용 로직 등), 소프트웨어(범용 컴퓨터 시스템 또는 전용 머신 상에서 실행되는 것 등) 또는 이 둘의 조합을 포함할 수 있는 프로세싱 로직에 의해 수행된다. CPU가 C3 또는 C4 상태에 있을 때(프로세싱 블록(105)), 프로세싱 로직은 주변 장치로부터 코히런트 트랜잭션을 수신할 수 있다(프로세싱 블록(140)). 주변 장치의 예는 외부 그래픽 코어, 이더넷 컨트롤러 등을 포함한다. 코히런트 트랜잭션의 수신 시에, 프로세싱 로직은 수신된 코히런트 트랜잭션이 차지하는 버퍼의 부분을 반영하기 위해 다수의 크레디트를 소모한다(프로세싱 블록(142)). 이어서, 프로세싱 로직은 코히런트 트랜잭션에 대한 소모된 크레디트의 총 수가 탈출 임계값을 초과하거나 그와 같은지를 검사한다(프로세싱 블록(144)). 소모된 크레디트의 총 수가 탈출 임계값을 초과하거나 그와 같은 경우, 프로세싱 로직은 CPU로 하여금 C3 또는 C4 상태로부터 빠져나오게 한다(프로세싱 블록(150)). 프로세싱 로직은 CPU에 C3 또는 C4 상태로부터 빠져나오도록 지시하기 위해 CPU에 신호를 전송할 수 있다. C3 또는 C4 상태로부터 빠져 나온 후에, 일 실시예에서, CPU는 C0 상태에 들어간다.
그러나, 소모된 크레디트의 총 수가 탈출 임계값을 초과하거나 그와 같지 않은 경우, 프로세싱 로직은 타이머가 만료되었는지를 검사한다(프로세싱 블록(146)). 타이머가 만료된 경우, 프로세싱 로직은 CPU로 하여금 C3 또는 C4 상태로부터 빠져나오게 한다(프로세싱 블록(150)). 그렇지 않은 경우, 프로세싱 로직은 트랜잭션을 큐잉 업(queue up)하고(프로세싱 블록(148)), 프로세싱 블록(140)을 반복한다. 다른 대안으로서, 소모된 크레디트의 총 수가 탈출 임계값보다 작은 것으로 결정되면, 프로세싱 로직은 타이머를 전혀 검사하지 않고 단지 트랜잭션을 큐잉 업하고(프로세싱 블록(148)) 프로세싱 블록(140)을 반복한다.
도 2b는 탈출 임계값의 일 실시예를 나타낸 것이다. 도 2b를 참조하면, 탈출 임계값(250)은, 예시적인 CPU로 하여금 C3 또는 C4 상태로부터 빠져나오게 하기 위해 버스 마스터링 표시자를 설정해야 하는 때를 결정하기 위해 설정된다. CPU가 C3 또는 C4 상태에 있을 때 트랜잭션들은 큐잉 업될 수 있으므로, CPU가 특정 기간 동안 C3 또는 C4 상태에 있게 함으로써, 특정 레벨의 전력 절감을 달성할 수 있다. 소모된 크레디트의 수가 탈출 임계값(250)보다 작은 경우, CPU는 탈출 조건이 일어났음을 통지받지 않게 된다. 일 실시예에서, 타이머는 애플리케이션들이 대기시간에 민감한 것인 경우에 초기의 보류중인 트랜잭션들의 제공을 얼마나 오래 지연시킬지를 제한하는데 사용된다. 타이머가 만료되면, 보류중인 코히런트 트랜잭션들에 대응하는 소모된 크레디트의 총 수가 탈출 임계값(250)보다 작은 경우에도 CPU로 하여금 C3 또는 C4 상태로부터 빠져나오게 하기 위해 신호가 전송된다. 이와 유사하게, 어떤 성능에 매우 민감한 애플리케이션들의 경우, 탈출 임계값(250)은 이러한 애플리케이션들의 성능 규격을 만족시키기 위해 0%로 설정될 수 있다. 게다가, 어떤 실시예에서, 탈출 임계값(250)은 배터리만으로 시스템에 전원을 공급하는 경우에 시스템에서의 남아 있는 배터리 전하 용량에 따라 서로 다른 값으로 설정된다.
진입 및 탈출 임계값을 정의하는 다수의 방법이 있다는 것을 알아야 한다. 일 실시예에서, 진입 임계값은 탈출 임계값과 실질적으로 같다. 예를 들어, 성능 지향적인 애플리케이션을 실행하기 위해서는, 진입 및 탈출 임계값은 0%의 단일 값으로 하드와이어드(hardwired)될 수 있다.
대안적인 실시예에서, 진입 및 탈출 임계값은 서로 다른 값으로 설정된다. 예를 들어, 진입 임계값은 탈출 임계값보다 높을 수 있다. 또한, 진입 및 탈출 임계값이 동작 중에 서로 다른 값으로 설정될 수 있게 함으로써, CPU는 남아 있는 배터리 전하 용량에 기초하여 성능을 조정할 수 있다. 게다가, CPU는 임계값 수정을 통해 CPU의 진입 및 탈출 거동(behavior)을 적응적으로 수정할 수 있다. 진입 및 탈출 임계값의 적응적 수정에 의해, CPU는 C3 또는 C4 상태 진입 결정의 타이밍과 일치할 수 있는 특정한 주기적인 트래픽으로 인한 낮은 전력 상태의 빈번한 쓰래싱(thrashing)을 피할 수 있다. 다른 이점은, CPU가 C3 또는 C4 상태에 있는 체류 기간을 조정 및 증가시키기 위해 비대칭적인 진입 및 탈출 거동을 제공하는 것이다. 예를 들어, CPU는 C3 또는 C4 상태에서 빠져나오는 데 수백 마이크로초가 걸릴 수 있으며, 그 동안에 CPU의 위상 동기 루프(phase lock loop)는 스핀 업(spin up)하기 위해 초기의 10 마이크로초 동안에 소모된 전력의 2배를 소모할 수 있다. 따라서, CPU의 C3 또는 C4 체류 기간이 탈출 대기시간보다 작은 경우, 순 효과는 전력 절감이 거의 없거나 무시할 정도이거나, 더 나쁜 경우, 전력 소모가 더 많을 수 있다는 것이다.
도 3a 내지 도 3c는 컴퓨터 시스템에서의 칩셋 파티션의 다양한 실시예를 나타낸 것이다. 도 3a는 메모리 컨트롤러(310), 입력/출력 컨트롤러(320), 및 전력 관리 회로(330)를 도시하고 있다. 전력 관리 회로(330)는 메모리 컨트롤러(310)와 입력/출력 컨트롤러(320) 둘다의 외부에 있다. 메모리 컨트롤러(310)는 링크(315)를 통해 입력/출력 컨트롤러(320)에 연결되어 있다. 링크(315)는 디지털 미디어 인터페이스(digital media interface: DMI) 링크를 포함할 수 있다. 메모리 컨트롤러(310)는 또한, 예를 들어, PCI 익스프레스 등의, 크레디트-기반 흐름 제어 계정 방식(credit-based flow control accounting scheme)을 갖는 프로토콜을 채택하는 하나 이상의 버스 또는 상호연결(도시되지 않음)을 통하여 하나 이상의 주변 장치(도시되지 않음)에 연결되어 있다.
일 실시예에서, 전력 관리 회로(330)는 측파대 신호(322, 324)를 통해 메모리 컨트롤러(310) 및/또는 입력/출력 컨트롤러(320)와 통신한다. 측파대 신호(332, 334)는 AGP(advance graphic port)와 같은 주변 장치로부터의 임의의 버스 마스터링 활동이 있는지 여부를 나타낸다. 측파대 신호(332, 334)는 일반적으로 XX_BUSY로 표시된다. 예를 들어, AGP에 대응하는 측파대 신호는 AGP_BUSY로 표시된다. 측파대 신호가 하나 이상의 공유 신호를 포함할 수 있다는 것을 알아야 한다.
일 실시예에서, 메모리 컨트롤러(310)와 입력/출력 컨트롤러(320) 중 하나는, 메모리 컨트롤러(310)와 입력/출력 컨트롤러(320) 간에 전송된 하나 이상의 메시지 패킷을 통해 버스 마스터링 활동 정보를 수집(roll up)하기 위해 중앙 에이전트(central agent)로서 동작한다. 메시지 패킷들은 DMI 메시지 패킷들(325)을 포함할 수 있다. 그러나, 중앙 에이전트는 여전히 측파대 신호들(334 및 332) 중 하나를 통해 전력 관리 회로(330)와 통신한다.
도 3b는 컴퓨터 시스템에서의 칩셋 파티션의 대안적인 실시예를 나타낸 것이다. 도 3b의 칩셋은 DMI 링크를 포함할 수 있는 링크(345)를 통해 서로 연결되어 있는 메모리 컨트롤러(340) 및 입력/출력 컨트롤러(350)를 포함한다. 그러나, 칩셋의 일부 실시예들은 도시되지 않은 부가의 장치들을 포함한다는 것을 알아야 한다. 메모리 컨트롤러(340)는 또한, 예를 들어, PCI 익스프레스 등의, 크레디트-기반 흐름 제어 계정 방식을 채택하는 상호연결(도시되지 않음)을 통해 주변 장치(도시되지 않음)에 연결되어 있다. 주변 장치는 외부 그래픽 코어, 이더넷 컨트롤러 등을 포함할 수 있다. 입력/출력 컨트롤러(350)는 상호연결을 통해 데이터 트래픽을 모니터링하는 전력 관리 회로(352)를 포함한다. 전력 관리 회로(352)가 입력/출력 컨트롤러(350)의 내부에 있기 때문에, 메모리 컨트롤러(340)는 주변 장치가 상호연결을 통한 임의의 진행중인 트래픽을 가지고 있는지 여부에 관해 입력/출력 컨트롤러(350)와 통신해야 한다. 일 실시예에서, 메모리 컨트롤러(340)는 링크(345)를 통해 입력/출력 컨트롤러(350)에 전송된 메시지 패킷(347) 내의 하나 이상의 비트를 설정한다. 메시지 패킷(347)은 DMI 패킷일 수 있다. 메시지 패 킷(347) 내의 비트(들)를 설정하는 것은, 측파대 신호(예를 들어, 도 3a의 측파대 신호들(332 및 334))와 반대로, 버스 마스터링 표시자 신호의 대역내 가상화(in-band virtualization)라고도 하는데, 그 이유는 컨트롤러들(340 및 350) 둘다에 있는 핀 및 커넥터 기반구조를 제거하기 위해 신호가 추상화되기 때문이다. 게다가, 전력 관리 회로(352)는 또한 다른 상호연결(도시되지 않음)을 통해 입력/출력 컨트롤러(350)에 연결되어 있는 다른 주변 장치(도시되지 않음)로부터의 버스 마스터링 활동을 모니터링할 수 있다.
도 3c는 컴퓨터 시스템에서의 칩셋 파티션의 대안적인 실시예를 나타낸 것이다. 도 3c에 도시된 칩셋은 통합형 메모리 및 입력/출력 컨트롤러(360)를 포함한다. 통합형 메모리 및 입력/출력 컨트롤러(360)는 내부 전력 관리 회로(365)를 포함한다. 전력 관리 회로(365)가 통합형 컨트롤러(360)의 일부이기 때문에, 컨트롤러(360)에 연결된 주변 장치들에 대한 버스 마스터링 표시들은 컨트롤러(360) 내의 로직 회로를 통해 내부적으로 등록될 수 있다.
도 3a 내지 도 3c의 칩셋 파티션의 다양한 실시예는 단지 개시된 기술을 설명하기 위해 도시된 것임을 알아야 한다. 개시된 기술은 컴퓨터 칩셋 파티션의 다른 실시예들에 적용될 수 있다.
도 4는 컴퓨터 시스템(400)의 예시적인 실시예를 나타낸 것이다. 컴퓨터 시스템(400)은 중앙 처리 장치(CPU)(410), 메모리 컨트롤러(MCH)(420), 다수의 듀얼 인-라인 메모리 모듈(dual in-line memory module: DIMM)(425), 다수의 메모리 장치(427), PCI 익스프레스 그래픽 포트(430), 입력/출력 컨트롤러(ICH)(440), 다수 의 USB(Universal Serial Bus) 포트(445), 오디오 코더-디코더(오디오 코덱)(460), 수퍼 입력/출력(수퍼 I/O)(450), 및 펌웨어 허브(FWH)(470)를 포함한다.
일 실시예에서, CPU(410), PCI 익스프레스 그래픽 포트(430), DIMM(425), 및 ICH(440)는 MCH(420)에 연결되어 있다. MCH(420)와 ICH(440) 간의 링크(435)는 DMI 링크를 포함할 수 있다. MCH(420)는 DIMM(425)을 통해 메모리 장치들(427)로/로부터 데이터를 라우팅한다. 메모리 장치들(427)은 예를 들어, DRAM(dynamic random access memory), SDRAM(synchronous dynamic random access memory), DDR(double data rate) SDRAM 또는 플래시 메모리 등의 다양한 유형의 메모리를 포함할 수 있다. 일 실시예에서, 각각의 DIMM(425)은 MCH(420)에 연결하기 위해 DIMM 커넥터(도시되지 않음)를 거쳐 동일한 마더보드(도시되지 않음) 상에 실장되어 있다. 일 실시예에서, USB 포트(445), 오디오 코덱(460), 및 수퍼 I/O(450)는 ICH(440)에 연결되어 있다. 수퍼 I/O(450)는 또한 펌웨어 허브(470), 플로피 디스크 드라이브(451), 키보드, 마우스 등의 데이터 입력 장치(453), 다수의 직렬 포트(455), 및 다수의 병렬 포트(457)에 연결될 수 있다.
일 실시예에서, ICH(440)는 ICH(440) 및 MCH(420)를, 예를 들어 PCI 익스프레스 그래픽 포트(430) 등의 주변 장치들에 연결하는 다양한 상호연결을 통해 데이터 트래픽을 모니터링하기 위해 전력 관리 회로(442)를 포함한다. 전력 관리 회로(442)는 링크(435)를 통해 MCH(420)로부터 ICH(440)로 메시지 패킷(437) 내의 가상화된 신호로서 전송될 버스 마스터링 표시자를 생성할 수 있다. 다른 대안으로서, MCH(420) 및 ICH(440)는 버스 마스터링 표시자가 로직을 통해 내부적으로 등록 될 수 있도록 전력 관리 회로를 갖는 단일 컨트롤러 내에 집적될 수 있다.
대안적인 실시예에서, MCH(420) 및 ICH(440)는 별도의 장치들로서 유지되며, 전력 관리 회로는 MCH(420) 및 ICH(440) 둘다의 외부에 있다. MCH(420) 및 ICH(440) 중 어느 하나는 컨트롤러들(420 및 440) 간에 전송되는 메시지 패킷들을 사용하여 다른 컨트롤러로부터 시스템(400) 내의 주변 장치들로부터의 버스 트래픽의 정보를 수집하기 위해 중앙 에이전트로서 동작할 수 있다. 게다가, 중앙 에이전트는 하나 이상의 측파대 신호를 통해 외부의 전력 관리 회로와 정보를 통신할 수 있다.
도 4에 나타낸 컴포넌트들 및 연관된 하드웨어 중 임의의 것 또는 그 모두는 컴퓨터 시스템(400)의 다양한 실시예에서 사용될 수 있다는 것에 주목한다. 그러나, 컴퓨터 시스템의 다른 구성이 도 4에 도시되지 않은 하나 이상의 부가적인 장치를 포함할 수 있다는 것을 알아야 한다. 게다가, 개시된 기술이 멀티-드롭(multi-drop) 환경 또는 점대점 환경 등의 서로 다른 유형의 시스템 환경에 적용가능하다는 것을 알아야 한다. 이와 유사하게, 개시된 기술은 모바일 및 데스크톱 컴퓨팅 시스템 둘다에 적용가능하다.
이상의 설명은 단지 본 발명의 일부 예시적인 실시예들을 설명한 것이다. 이 기술분야의 당업자이면, 이러한 설명, 첨부 도면 및 특허청구범위로부터, 첨부된 특허청구범위의 사상 및 범위를 벗어나지 않고 다양한 수정이 행해질 수 있다는 것을 알아야 한다. 따라서, 본 설명은 한정적인 것이 아니라 예시적인 것으로 간주되어야 한다.

Claims (28)

  1. 시스템에서 전력을 관리하는 방법으로서,
    상기 시스템에서 칩셋 장치와 주변 장치를 연결하는 상호연결(interconnect)을 통한 트랜잭션들을 모니터링하는 단계;
    상기 칩셋 장치의 버퍼에 보류중인 복수의 코히런트 트랜잭션들(coherent transactions)이 제1 임계값을 초과하는 경우, 상기 시스템 내의 프로세서로 하여금 전력 상태로부터 빠져나오게 하는 단계; 및
    상기 전력 상태에 들어가기 위한 상기 프로세서로부터의 요청에 응답하여, 상기 칩셋 장치의 상기 버퍼에 보류중인 복수의 인코히런트 트랜잭션들(incoherent transactions)이 제2 임계값을 초과하는 경우, 상기 프로세서가 상기 전력 상태에 들어갈 수 있도록 메시지 패킷 내의 표시자(indicator)를 디어써트(de-assert)하는 단계
    를 포함하고,
    상기 트랜잭션들은 상기 칩셋 장치가 상기 트랜잭션들을 추적할 수 있게 하는 흐름 제어 프로토콜에 따라 상기 주변 장치와 상기 칩셋 장치 간에 전송되는 방법.
  2. 제1항에 있어서,
    상기 버퍼에 보류중인 상기 복수의 코히런트 트랜잭션들이 상기 제1 임계값을 초과하지 않는 경우, 소정 기간이 경과하였는지 여부를 결정하는 단계; 및
    상기 소정 기간이 경과한 경우, 상기 프로세서로 하여금 상기 전력 상태로부터 빠져나오게 하는 단계를 더 포함하는 방법.
  3. 삭제
  4. 제1항에 있어서,
    상기 칩셋 장치의 상기 버퍼에 보류중인 상기 복수의 인코히런트 트랜잭션들이 상기 제2 임계값을 초과하는 경우, 상기 프로세서가 상기 전력 상태에 들어가지 못하도록 상기 메시지 패킷 내의 상기 표시자를 어써트(assert)하는 단계를 더 포함하는 방법.
  5. 제1항에 있어서,
    상기 칩셋 장치의 상기 버퍼에 보류중인 상기 복수의 인코히런트 트랜잭션들이 상기 제2 임계값보다 작은 경우, 제2 소정 기간이 경과했는지 여부를 결정하는 단계; 및
    상기 제2 소정 기간이 경과한 경우, 상기 프로세서가 상기 전력 상태에 들어갈 수 있도록 상기 메시지 패킷 내의 상기 표시자를 디어써트하는 단계를 더 포함하는 방법.
  6. 제1항에 있어서,
    상기 제1 임계값은 상기 제2 임계값과 같은 것인 방법.
  7. 제1항에 있어서,
    상기 제1 임계값은 상기 제2 임계값보다 낮은 것인 방법.
  8. 제1항에 있어서,
    상기 제1 임계값은 상기 제2 임계값보다 높은 것인 방법.
  9. 제1항에 있어서,
    상기 흐름 제어 프로토콜은 PCI 익스프레스(Peripheral Component Interconnect Express)인 것인 방법.
  10. 제1항에 있어서,
    상기 칩셋 장치는 메모리 컨트롤러를 포함하는 방법.
  11. 제1항에 있어서,
    상기 칩셋 장치는 입력/출력 컨트롤러를 포함하는 방법.
  12. 컴퓨팅 시스템에서의 장치로서,
    상기 컴퓨팅 시스템에서 루트 복합 장치(root complex device)와 주변 장치를 연결하는 상호연결을 통한 트랜잭션들을 모니터링하는 전력 관리 회로; 및
    상기 루트 복합 장치에 연결되어 있고, 상기 루트 복합 장치의 버퍼에 보류중인 복수의 코히런트 트랜잭션들이 제1 임계값을 초과하는 경우, 상기 컴퓨팅 시스템 내의 프로세서로 하여금 전력 상태로부터 빠져나오게 하기 위해 제1 메시지 패킷을 상기 루트 복합 장치에 전송하는 디지털 미디어 인터페이스
    를 포함하고,
    상기 트랜잭션들은 상기 루트 복합 장치가 전송되는 상기 트랜잭션들을 추적할 수 있게 하는 흐름 제어 프로토콜에 따라 상기 주변 장치와 상기 루트 복합 장치 간에 전송되며,
    상기 전력 상태에 들어가기 위한 상기 프로세서로부터의 요청에 응답하여, 상기 전력 관리 회로는 상기 루트 복합 장치의 상기 버퍼에 보류중인 복수의 인코히런트 트랜잭션들이 제2 임계값을 초과하는 경우, 상기 프로세서가 상기 전력 상태에 들어갈 수 있도록 제2 메시지 패킷 내의 표시자를 디어써트하는, 장치.
  13. 삭제
  14. 제12항에 있어서,
    상기 프로세서로부터의 상기 요청에 응답하여, 상기 전력 관리 회로는 상기 루트 복합 장치의 상기 버퍼에 보류중인 상기 복수의 인코히런트 트랜잭션들이 상기 제2 임계값보다 낮은 경우, 상기 프로세서가 상기 전력 상태에 들어가지 못하도록 상기 제2 메시지 패킷 내의 상기 표시자를 어써트하는 장치.
  15. 제14항에 있어서,
    타이머를 더 포함하고,
    상기 전력 관리 회로는, 상기 타이머가 만료된 경우, 상기 프로세서가 상기 전력 상태에 들어가지 못하도록 상기 제2 메시지 패킷 내의 상기 표시자를 어써트하는 장치.
  16. 제14항에 있어서,
    상기 제1 임계값은 상기 제2 임계값과 같은 것인 장치.
  17. 제12항에 있어서,
    상기 흐름 제어 프로토콜은 크레디트-기반 흐름 제어 계정 방식(credit-based flow control accounting scheme)을 갖는, 장치.
  18. 컴퓨팅 시스템에서의 반도체 칩으로서,
    상기 컴퓨팅 시스템 내의 주변 장치에 연결되어 있는 메모리 컨트롤러;
    상기 메모리 컨트롤러에 연결되어, 상기 주변 장치와 상기 메모리 컨트롤러 간의 트랜잭션들을 모니터링하는 전력 관리 회로; 및
    상기 메모리 컨트롤러와 공통 기판 상에 존재하고, 전력 상태에 들어가기 위한 상기 컴퓨팅 시스템 내의 프로세서로부터의 요청에 응답하여, 상기 메모리 컨트롤러의 버퍼에 보류중인 복수의 인코히런트 트랜잭션들이 진입 임계값(entry threshold)을 초과하는 경우, 상기 프로세서가 상기 전력 상태에 들어갈 수 있게 하고, 상기 복수의 인코히런트 트랜잭션들이 상기 진입 임계값보다 작은 경우, 상기 프로세서가 상기 전력 상태에 들어가지 못하게 하는 입력/출력 컨트롤러
    를 포함하며,
    상기 입력/출력 컨트롤러는, 상기 메모리 컨트롤러의 상기 버퍼에 보류중인 복수의 코히런트 트랜잭션들이 탈출 임계값(exit threshold)을 초과하는 경우, 상기 프로세서로 하여금 상기 전력 상태로부터 빠져나오게 하는, 반도체 칩.
  19. 삭제
  20. 제18항에 있어서,
    상기 진입 임계값은 상기 탈출 임계값과 같은 것인 반도체 칩.
  21. 제18항에 있어서,
    상기 진입 및 탈출 임계값들은 수정가능한 것인 반도체 칩.
  22. 제18항에 있어서,
    상기 주변 장치는, 크레디트-기반 흐름 제어 계정 방식(credit-based flow control accounting scheme)을 채용하는 상호연결을 통해 상기 메모리 컨트롤러에 연결되어 있는 것인, 반도체 칩.
  23. 제18항에 있어서,
    상기 주변 장치는 버스를 통해 상기 메모리 컨트롤러에 연결되어 있는 것인 반도체 칩.
  24. 프로세서;
    상기 프로세서에 연결되어 있는 메모리 컨트롤러;
    그래픽 칩;
    상기 그래픽 칩을 상기 메모리 컨트롤러에 연결하는 상호연결; 및
    상기 메모리 컨트롤러에 연결되어 있는 입력/출력 컨트롤러
    를 포함하고,
    상기 입력/출력 컨트롤러는,
    상기 상호연결을 통한 트랜잭션들을 모니터링하는 전력 관리 회로; 및
    상기 메모리 컨트롤러에 연결되어 있고, 상기 메모리 컨트롤러의 버퍼에 보류중인 복수의 코히런트 트랜잭션들이 제1 임계값을 초과하는 경우, 상기 프로세서로 하여금 전력 상태로부터 빠져나오게 하기 위해 제1 메시지 패킷을 상기 메모리 컨트롤러에 전송하는 디지털 미디어 인터페이스를 포함하고,
    상기 트랜잭션들은 흐름 제어 프로토콜에 따라 상기 그래픽 칩과 상기 메모리 컨트롤러 간에 전송되며,
    상기 전력 관리 회로는, 상기 전력 상태에 들어가기 위한 상기 프로세서로부터의 요청에 응답하여, 상기 메모리 컨트롤러의 상기 버퍼에 보류중인 복수의 인코히런트 트랜잭션들이 제2 임계값을 초과하는 경우, 상기 프로세서가 상기 전력 상태에 들어갈 수 있게 하기 위해 제2 메시지 패킷 내의 표시자를 디어써트하는, 시스템.
  25. 삭제
  26. 제24항에 있어서,
    상기 전력 관리 회로는, 상기 프로세서로부터의 상기 요청에 응답하여, 상기 메모리 컨트롤러의 상기 버퍼에 보류중인 상기 복수의 인코히런트 트랜잭션들이 상기 제2 임계값보다 작은 경우, 상기 프로세서가 상기 전력 상태에 들어가지 못하도록 상기 제2 메시지 패킷 내의 상기 표시자를 어써트하는 시스템.
  27. 제26항에 있어서,
    상기 제1 임계값은 상기 제2 임계값과 같은 것인 시스템.
  28. 제24항에 있어서,
    상기 흐름 제어 프로토콜은 크레디트-기반 흐름 제어 계정 방식(credit-based flow control accounting scheme)을 갖는, 시스템.
KR1020067013281A 2003-12-30 2004-12-23 컴퓨터 시스템에서의 전력 관리 방법 및 장치 KR100798980B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/749,855 2003-12-30
US10/749,855 US7237131B2 (en) 2003-12-30 2003-12-30 Transaction-based power management in a computer system

Publications (2)

Publication Number Publication Date
KR20060111658A KR20060111658A (ko) 2006-10-27
KR100798980B1 true KR100798980B1 (ko) 2008-01-28

Family

ID=34711148

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067013281A KR100798980B1 (ko) 2003-12-30 2004-12-23 컴퓨터 시스템에서의 전력 관리 방법 및 장치

Country Status (7)

Country Link
US (1) US7237131B2 (ko)
EP (1) EP1702253B1 (ko)
JP (1) JP4376907B2 (ko)
KR (1) KR100798980B1 (ko)
CN (1) CN100498652C (ko)
TW (1) TWI266183B (ko)
WO (1) WO2005066743A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101165151B1 (ko) 2009-05-13 2012-07-12 애플 인크. 전력 관리된 로크 최적화

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7178045B2 (en) * 2003-12-30 2007-02-13 Intel Corporation Optimizing exit latency from an active power management state
JP4316399B2 (ja) * 2004-02-18 2009-08-19 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラム、記録媒体、制御方法、及び情報処理装置
JP4189882B2 (ja) * 2004-05-11 2008-12-03 インターナショナル・ビジネス・マシーンズ・コーポレーション 記録媒体、情報処理装置、制御方法、及びプログラム
US7353414B2 (en) * 2005-03-30 2008-04-01 Intel Corporation Credit-based activity regulation within a microprocessor based on an allowable activity level
JP2006338380A (ja) * 2005-06-02 2006-12-14 Toshiba Corp 情報処理装置およびその制御方法
US20060277126A1 (en) * 2005-06-06 2006-12-07 Intel Corporation Ring credit management
US7924708B2 (en) * 2005-12-13 2011-04-12 Intel Corporation Method and apparatus for flow control initialization
US7752473B1 (en) * 2006-03-20 2010-07-06 Intel Corporation Providing a deterministic idle time window for an idle state of a device
US20070260780A1 (en) * 2006-04-11 2007-11-08 Nokia Corporation Media subsystem, method and computer program product for adaptive media buffering
US7689847B2 (en) * 2006-06-13 2010-03-30 Via Technologies, Inc. Method for increasing the data processing capability of a computer system
US7783905B2 (en) * 2006-06-13 2010-08-24 Via Technologies Inc. Method for reducing power consumption of a computer system in the working state
US7895456B2 (en) * 2006-11-12 2011-02-22 Microsemi Corp. - Analog Mixed Signal Group Ltd Reduced guard band for power over Ethernet
US7734942B2 (en) * 2006-12-28 2010-06-08 Intel Corporation Enabling idle states for a component associated with an interconnect
US7774626B2 (en) * 2007-03-29 2010-08-10 Intel Corporation Method to control core duty cycles using low power modes
US8527709B2 (en) * 2007-07-20 2013-09-03 Intel Corporation Technique for preserving cached information during a low power mode
US8145920B2 (en) * 2007-09-17 2012-03-27 Intel Corporation Techniques for collaborative power management for heterogeneous networks
US8386806B2 (en) * 2007-12-17 2013-02-26 Intel Corporation Integrated power management logic
US8806258B2 (en) * 2008-09-30 2014-08-12 Intel Corporation Platform communication protocol
US8019920B2 (en) * 2008-10-01 2011-09-13 Hewlett-Packard Development Company, L.P. Method to improve operating performance of a computing device
US8627014B2 (en) * 2008-12-30 2014-01-07 Intel Corporation Memory model for hardware attributes within a transactional memory system
US9785462B2 (en) 2008-12-30 2017-10-10 Intel Corporation Registering a user-handler in hardware for transactional memory event handling
US8799582B2 (en) * 2008-12-30 2014-08-05 Intel Corporation Extending cache coherency protocols to support locally buffered data
KR101282199B1 (ko) * 2009-11-19 2013-07-04 한국전자통신연구원 클러스터 시스템의 전력 제어 장치 및 방법
US8850250B2 (en) * 2010-06-01 2014-09-30 Intel Corporation Integration of processor and input/output hub
US8782456B2 (en) 2010-06-01 2014-07-15 Intel Corporation Dynamic and idle power reduction sequence using recombinant clock and power gating
US9146610B2 (en) 2010-09-25 2015-09-29 Intel Corporation Throttling integrated link
US9368162B2 (en) 2011-02-08 2016-06-14 Freescale Semiconductor, Inc. Integrated circuit device, power management module and method for providing power management
US8862906B2 (en) * 2011-04-01 2014-10-14 Intel Corporation Control of platform power consumption using coordination of platform power management and display power management
JP5791397B2 (ja) * 2011-07-07 2015-10-07 ルネサスエレクトロニクス株式会社 デバイスコントローラ、usbデバイスコントローラ及び電力制御方法
KR101380452B1 (ko) * 2012-08-14 2014-04-14 한국과학기술원 버퍼리스 온칩 네트워크의 전력 소모 감소를 위한 목적지 기반 크레딧 흐름 제어 방법 및 장치
US9116694B2 (en) * 2012-09-26 2015-08-25 Intel Corporation Efficient low power exit sequence for peripheral devices
US20140095801A1 (en) * 2012-09-28 2014-04-03 Devadatta V. Bodas System and method for retaining coherent cache contents during deep power-down operations
KR20140089749A (ko) 2013-01-07 2014-07-16 한국전자통신연구원 클러스터의 부하 할당 제어 장치 및 그 방법
EP3014460A4 (en) * 2013-06-28 2016-11-30 Intel Corp ADAPTIVE INTERRUPTION COALESCENCE FOR MOBILE PLATFORMS WITH LOW POWER CONSUMPTION
US9541987B2 (en) * 2013-06-28 2017-01-10 Intel Corporation Generic host-based controller latency method and appartus
US9880601B2 (en) * 2014-12-24 2018-01-30 Intel Corporation Method and apparatus to control a link power state
US10754410B2 (en) * 2018-11-09 2020-08-25 Monolithic Power Systems, Inc. System and method for standby mode operation of power management system
CN110990332A (zh) * 2019-12-04 2020-04-10 合肥市卓怡恒通信息安全有限公司 基于申威处理器的服务器主板
US11513973B2 (en) * 2019-12-20 2022-11-29 Advanced Micro Devices, Inc. Arbitration scheme for coherent and non-coherent memory requests

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721935A (en) 1995-12-20 1998-02-24 Compaq Computer Corporation Apparatus and method for entering low power mode in a computer system
US6085330A (en) 1998-04-07 2000-07-04 Advanced Micro Devices, Inc. Control circuit for switching a processor between multiple low power states to allow cache snoops
US6357013B1 (en) 1995-12-20 2002-03-12 Compaq Computer Corporation Circuit for setting computer system bus signals to predetermined states in low power mode
EP1338948A1 (en) 2002-02-25 2003-08-27 Hewlett Packard Company, a Delaware Corporation Clock control arrangement for a computing system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6128745A (en) * 1998-05-28 2000-10-03 Phoenix Technologies Ltd. Power management inactivity monitoring using software threads
US6820169B2 (en) * 2001-09-25 2004-11-16 Intel Corporation Memory control with lookahead power management
US7260106B2 (en) * 2002-01-24 2007-08-21 Intel Corporation Method and apparatus for managing energy usage of processors while executing protocol state machines
US7103064B2 (en) * 2003-01-21 2006-09-05 Nextio Inc. Method and apparatus for shared I/O in a load/store fabric
US7219183B2 (en) * 2003-01-21 2007-05-15 Nextio, Inc. Switching apparatus and method for providing shared I/O within a load-store fabric
US20040212678A1 (en) * 2003-04-25 2004-10-28 Cooper Peter David Low power motion detection system
US7546418B2 (en) * 2003-08-20 2009-06-09 Dell Products L.P. System and method for managing power consumption and data integrity in a computer system
US7782325B2 (en) * 2003-10-22 2010-08-24 Alienware Labs Corporation Motherboard for supporting multiple graphics cards

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721935A (en) 1995-12-20 1998-02-24 Compaq Computer Corporation Apparatus and method for entering low power mode in a computer system
US6357013B1 (en) 1995-12-20 2002-03-12 Compaq Computer Corporation Circuit for setting computer system bus signals to predetermined states in low power mode
US6085330A (en) 1998-04-07 2000-07-04 Advanced Micro Devices, Inc. Control circuit for switching a processor between multiple low power states to allow cache snoops
EP1338948A1 (en) 2002-02-25 2003-08-27 Hewlett Packard Company, a Delaware Corporation Clock control arrangement for a computing system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101165151B1 (ko) 2009-05-13 2012-07-12 애플 인크. 전력 관리된 로크 최적화

Also Published As

Publication number Publication date
CN100498652C (zh) 2009-06-10
EP1702253A2 (en) 2006-09-20
JP2007517332A (ja) 2007-06-28
US7237131B2 (en) 2007-06-26
US20050149768A1 (en) 2005-07-07
EP1702253B1 (en) 2016-06-29
CN1902566A (zh) 2007-01-24
JP4376907B2 (ja) 2009-12-02
TWI266183B (en) 2006-11-11
KR20060111658A (ko) 2006-10-27
WO2005066743A2 (en) 2005-07-21
TW200530806A (en) 2005-09-16
WO2005066743A3 (en) 2005-12-08

Similar Documents

Publication Publication Date Title
KR100798980B1 (ko) 컴퓨터 시스템에서의 전력 관리 방법 및 장치
US8656198B2 (en) Method and apparatus for memory power management
US7174467B1 (en) Message based power management in a multi-processor system
US7930470B2 (en) System to enable a memory hub device to manage thermal conditions at a memory device level transparent to a memory controller
US5692202A (en) System, apparatus, and method for managing power in a computer system
US7051218B1 (en) Message based power management
JP5063240B2 (ja) パフォーマンス・モニタリングを提供するメモリ・システム・方法
US7496777B2 (en) Power throttling in a memory system
US6971033B2 (en) Method and apparatus for improving bus master performance
US7529955B2 (en) Dynamic bus parking
CN102646446B (zh) 硬件动态高速缓存电源管理
US11281280B2 (en) Reducing chiplet wakeup latency
US6446215B1 (en) Method and apparatus for controlling power management state transitions between devices connected via a clock forwarded interface
EP1573491B1 (en) An apparatus and method for data bus power control
US7958380B2 (en) Coarsely controlling memory power states
US6240522B1 (en) Clock run controller
EP1570335B1 (en) An apparatus and method for address bus power control
US20040153507A1 (en) Methods and apparatus for distributing system management signals
US7216240B2 (en) Apparatus and method for address bus power control

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
G170 Publication of correction
FPAY Annual fee payment

Payment date: 20130104

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140103

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20141230

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160104

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170102

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180103

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee