KR101462564B1 - 동적 프로세서 전력 관리 디바이스 및 그 방법 - Google Patents

동적 프로세서 전력 관리 디바이스 및 그 방법 Download PDF

Info

Publication number
KR101462564B1
KR101462564B1 KR1020097026553A KR20097026553A KR101462564B1 KR 101462564 B1 KR101462564 B1 KR 101462564B1 KR 1020097026553 A KR1020097026553 A KR 1020097026553A KR 20097026553 A KR20097026553 A KR 20097026553A KR 101462564 B1 KR101462564 B1 KR 101462564B1
Authority
KR
South Korea
Prior art keywords
processor core
bus
voltage
period
power
Prior art date
Application number
KR1020097026553A
Other languages
English (en)
Other versions
KR20100017874A (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 KR20100017874A publication Critical patent/KR20100017874A/ko
Application granted granted Critical
Publication of KR101462564B1 publication Critical patent/KR101462564B1/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
    • 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

프로세서(105)는 서로 다른 전력 모드들에서 동작할 수 있다. 활성 전력 모드에서, 프로세서는 소프트웨어를 실행할 수 있다(303). 소프트웨어로부터 정지 표시(304)를 수신함에 응답하여, 프로세서의 하드웨어는 프로세서에 대한 버스 트랜잭션들을 평가(306)한다. 버스 트랜잭션들이 휴리스틱을 만족하면(307), 하드웨어는 프로세서 코어가 리텐션 모드(retention mode)와 같은 저전력 모드에 놓이게 한다. 버스 트랜잭션들이 소프트웨어에 의해서가 아닌 하드웨어에 의해서 평가되고, 프로세서가 저전력 모드에 놓이게 하기 위하여 소프트웨어가 핸드쉐이크 및 다른 프로토콜들을 수행할 필요가 없으므로, 프로세서는 프로세서 코어가 보다 빠르게 저전력 모드에 놓이게 할 수 있으며, 따라서 전력이 보존된다.

Description

동적 프로세서 전력 관리 디바이스 및 그 방법{DYNAMIC PROCESSOR POWER MANAGEMENT DEVICE AND METHOD THEREOF}
본 개시는 집적 회로 디바이스에 관한 것이며 보다 구체적으로는 집적 회로 디바이스의 전력 관리에 관한 것이다.
데이터 프로세서 코어와 같은 일부 집적 회로 디바이스들은, 활성(active) 또는 정규(normal) 전력 모드 및 저전력 모드와 같은 복수의 전력 모드들에서 동작할 수 있다. 활성 전력 모드에서는, 전압 조정기(voltage regulator)가, 프로세서 코어가 정규 속도에서 명령어들을 실행하고 정규 오퍼레이션들을 수행할 수 있게 해주는 전압을 프로세서 코어에 제공한다. 저전력 모드에서는, 전압 조정기는 프로세서 코어에 리텐션 전압(retention voltage)을 제공하여 프로세서 코어가 그것의 내부 상태(internal state)를 유지할 수 있게 하되, 정규 속도에서 명령어들을 실행하거나 다른 정규 오퍼레이션들을 수행할 수 는 없게 한다. 리텐션 전압은 활성 전력 모드에서 제공되는 전압보다 낮으며, 이에 의해 프로세서 코어가 전력을 보존할 수 있게 해준다. 프로세서 코어는 그것의 내부 상태를 유지하는 동안 전력을 보존하기 위해 저전력 모드에 진입할 수 있으며, 저전력 모드로 진입했을 때 가졌던 상태로부터의 오퍼레이션들을 활성 모드로 돌아왔을 때 계속할 수 있도록 메모리 내에 저장된 데이터를 보존할 수 있다.
프로세서 코어에 어떠한 미결(pending)의 오퍼레이션들도 없어야 하고, 그리고 프로세서 버스 상에 어떠한 미결의 오퍼레이션들도 없어야 하는 등의 그러한 특정 조건들이 만족될 때, 운영 시스템은 프로세서 코어로 하여금 저전력 모드에 진입하게 할 수 있다. 그러나, 때때로, 운영 시스템이 상기 조건들을 모니터링할 수 있는 정확성이 낮다. 더욱이, 운영 시스템이 저전력 모드를 실시할 수 있는 속도(rate)는, 프로세서 코어로 하여금 활성 전력 모드에 더 오래 남아있게 하여 요구되는 전력보다 더 많은 전력을 소비하게 할 수 있다. 따라서, 집적 회로 디바이스에 대한 개선된 전력 관리 기법이 필요하다.
첨부의 도면들을 참조하여, 본 발명의 개시가 보다 잘 이해될 것이며, 본 발명의 다양한 피쳐들 및 이점들이 당업자들에게 명확해질 것이다.
도 1은 프로세싱 디바이스의 구체적인 실시예의 블럭도이다.
도 2는 도 1의 프로세서 코어의 상태들의 구체적인 실시예를 도시하는 도면이다.
도 3은 도 1의 프로세서 코어에 제공되는 동작 전압들의 구체적인 실시예의 도면이다.
도 4는 도 1의 전력 제어 모듈의 구체적인 실시예의 블럭도이다.
도 5는 도 1의 전력 제어 모듈의 대안적인 실시예의 블럭도이다.
도 6은 도 1의 프로세서 코어의 상태들의 대안적인 실시예를 도시하는 도면 이다.
서로 다른 전력 모드에서 동작할 수 있는 프로세서가 개시된다. 활성 전력 모드에서, 프로세서는 소프트웨어를 실행한다. 소프트웨어로부터 정지 지시(halt indication)를 수신함에 응답하여, 프로세서의 하드웨어는 프로세서에 대한 버스 트랜잭션들을 평가(evaluation)한다. 버스 트랜잭션들이 휴리스틱(heuristic)을 만족한다면, 하드웨어는 프로세서 코어를 리텐션 모드(retention mode)와 같은 저전력 모드에 놓이게 한다. 버스 트랜잭션들이 소프트웨어에 의해서가 아닌 하드웨어에 의해서 평가되고, 프로세서를 절전 모드에 놓이게 하기 위하여 소프트웨어가 핸드쉐이크 및 다른 프로토콜들을 수행할 것이 요구되지 않으므로, 프로세서는 프로세서 코어를 빠르게 절전 모드에 놓이게 할 수 있으며, 이에 의해 전력이 보존된다.
도 1을 참조하면, 집적 회로 디바이스(100)의 구체적인 실시예의 블럭도가 도시된다. 집적 회로 디바이스(100)는 데이터 프로세서(102), 버스(103), 메모리(105), 주변 디바이스(106), 주변 디바이스(107), 그리고 전압 조정기(130)를 포함한다.
데이터 프로세서(102)는 범용 또는 애플리케이션 특정 마이크로프로세서 코어, 메모리 디바이스 및 I/O 디바이스와 같은 공통 기판에 통합된 주변 디바이스들, 그리고 다른 범용 및 전용 데이터 프로세서들을 포함할 수 있다. 데이터 프로세서(102)는 부호 INT로 표기된 인터럽트 신호를 수신하도록 되어있는 입력부를 포 함하며, 데이터 프로세서(102)의 하나 이상의 프로세서 코어들에 대한 전압 레벨을 표시하는 정보를 제공하기 위하여 부호 V_CTRL로 표기된 신호를 제공하도록 되어있는 출력부를 포함한다. 데이터 프로세서(102)는 또한 전압(VDD1)을 수신하기 위한 전압 기준 입력 노드 및 전압(VDD2)를 수신하기 위한 전압 기준 입력 노드를 포함한다. 데이터 프로세서(102)는 버스(103)에 더 연결된다.
메모리(105)는 DRAM, SRAM, 플래시 메모리등과 같은 휘발성 또는 비휘발성 메모리일 수 있다. 메모리(105)는 버스(103)에 연결된다. 일 실시예에서, 메모리(105)는 두 개의 모드들에서 동작하도록 되어있다. 활성 전력 모드에서, 메모리(105)는 데이터 프로세서(102) 및 주변 디바이스들(106, 107)로부터 판독 및 기록 요청들을 실행하도록 되어있다. 셀프 리프레시(self-refresh) 모드에서, 메모리(105)는 저장된 데이터를 유지하되, 판독 및 기록 요청들을 실행하지는 않도록 되어 있다. 메모리(105)는 활성 전력 모드에서 보다 셀프 리프레시 모드에서 전력을 덜 소비한다. 주변 디바이스(106, 107)는 각각 메모리 제어기, 입/출력 제어기, 주변 장치 제어기등일 수 있다. 주변 디바이스들(106, 107) 각각은 버스(103)로의 연결부를 포함한다.
전압 조정기(130)는 신호 V_CTRL을 수신하도록 되어있는 입력부와, 신호 V_CTRL에 근거하여 VDD1과 VDD2를 포함하는 복수의 전압들을 제공하도록 되어있는 2개 이상의 출력부를 포함한다.
도시된 데이터 프로세싱 디바이스(100) 부분들 각각은 공통의 반도체 기판 상에 통합되거나 서로 다른 기판들 위에 위치할 수 있다. 예를 들어, 데이터 프로 세서(102) 및 메모리(105)는 공통 반도체기판 상에 통합되고, 주변 디바이스들(106, 107)은 그 반도체 기판 외부에 위치할 수 있다. 도시된 실시예에서, 전압 조정기(130)는 데이터 프로세서(102)의 외부에 위치한다. 다른 실시예들에서, 전압 조정기(130)는 데이터 프로세서(102)의 내부에 구현될 수도 있다.
데이터 프로세서(102)는 프로세서 코어(110), 프로세서 코어(120), 그리고 캐시(111)를 가진 중앙 처리 유닛(CPU)을 포함한다. 동작 중에, 프로세서 코어(110, 120) 및 캐시(111)는 활성 전력 모드 및 다수의 저전력 모드들을 포함하는 복수의 전력 모드들에서 동작할 수 있다. 저전력 모드는 활성 전력 모드보다 전력을 덜 소비하는 모드이다. 저전력 모드에서, 프로세서 코어(110, 120)는 낮은 클럭 주파수, 낮은 동작 전압에서 동작하거나 또는 상기 두 조건 모두에서 동작한다. 또한, 저전력 모드에서, 프로세서 코어(110, 120)는 명령어들을 실행하지 않거나, 활성 전력 모드에 비해 느린 속도로 명령어들을 실행한다. 논의의 목적을 위하여, 프로세서 코어들(110, 120)이 활성 전력 모드, 저전력 리텐션 모드, 절전 프로세싱 모드를 포함하는 적어도 세 가지의 전력 모드에서 동작할 수 있는 것이 가정된다.
활성 전력 모드에서, 프로세서 코어들(110, 120)은 메모리(105)에 저장된 운영 시스템(108)과 같은 소프트웨어를 실행할 수 있으며, 다른 정규 동작들을 수행할 수 있다. 저전력 리텐션 모드에서, 프로세서 코어들(110, 120)과 캐시(111)는 리텐션 상태에 놓이며, 따라서 프로세서 코어의 상태 및 캐시(111)에 저장된 데이터가 보존된다. 저전력 리텐션 모드에서, 프로세서 코어들(110, 120)은 명령어들을 실행하거나 정규 속도에서 다른 정규 오퍼레이션들을 수행할 수가 없다. 저전력 프로세싱 모드에서, 프로세서 코어들(110, 120)은 버스(103)를 통해 주변 디바이스들(106, 107)에 의해 제공된 캐시 메시지들을 처리할 수 있다. 캐시 메시지들은 프로세서 코어들(110, 120)로 하여금 캐시(111)에 대한 일관성 트랜잭션(coherency transaction) 또는 액세스 트랜잭션들과 같은 캐시 트랜잭션들을 처리하도록 하는 요청들을 나타낸다. 프로세서 코어(110, 120)는 캐시 메시지를 분석하여 캐시 메시지를 처리하며, 적절한 때에, 요청된 캐시 트랜잭션을 수행한다. 또한, 저전력 프로세싱 모드에서, 프로세서 코어들(110, 120)은 활성 전력 모드에서 보다 느린 속도로 주변 디바이스들(106, 107)로부터의 인터럽트들을 처리할 수 있다. 프로세서 코어들(110, 120)의 모드는 독립적이다. 예를 들어, 프로세서 코어(120)가 저전력 리텐션 모드일 때 프로세서 코어(110)는 활성 전력 모드에 있을 수 있다.
전압 조정기(130)는 세 개의 전력 모드들 각각에 대해 서로 다른 레벨의 동작 전압(VDD1, VDD2)을 제공한다. 예를 들어, 프로세서 코어(110)를 활성 전력 모드에 놓기 위하여, 동작 전압 VDD1이 활성 전압 레벨로 설정된다. 프로세서 코어(110)를 저전력 프로세싱 모드에 놓기 위하여, 동작 전압 VDD1은 절전 프로세싱 전압 레벨로 설정되며, 이 전압은 활성 전압 레벨 보다 낮다. 이 전압 레벨은 프로세서 코어(110)로 하여금 활성 모드에서의 오퍼레이션들의 성능에 비해 낮은 속도에서 인터럽트들을 처리하고 캐시 메시지들을 처리할 수 있게 해준다. 프로세서 코어(110)를 저전력 리텐션 모드에 놓기 위하여, 동작 전압(VDD1)은 리텐션 전압으로 설정되며, 따라서 프로세서 코어(110)는 상태 정보를 유지할 수는 있지만 명령어들을 실행할 수는 없게 된다. 리텐션 전압은 저전력 프로세성 전압보다 낮다. 구체적 인 실시예에서, 리텐션 전압은 약 0.7 볼트이고, 저전력 프로세싱 전압은 약 0.75와 약 0.8볼트 사이이며, 활성 전압은 약 1.1볼트이다. 전압 VDD2를 적절한 레벨로 설정함으로써 프로세서 코어(120)는 세 개의 모드들 각각에 놓일 수 있다.
구체적인 실시예에서, 프로세서 코어(110)의 서로 다른 부분들이 서로 다른 전력 상태에 놓일 수 있다. 예를 들어, 저전력 프로세싱 모드에서, 명령어 파이프라인과 같은 프로세서 코어(110)의 부분들이 리텐션 상태로 유지될 수 있는 반면, 캐시(111)를 포함하는 다른 부분들은 캐시 메시지들을 처리하기 위한 프로세싱 상태에 놓일 수 있다. 따라서, 도시된 전압(VDD1)은 프로세서 코어(110)의 서로 다른 부분들에 대한 동작 전압을 설정하는 복수의 신호들을 포함할 수 있다.
프로세서 코어(110) 및 프로세서 코어(120)에 부가하여, 데이터 프로세서(102)는 전력 제어 모듈(140), 버스 제어 모듈(150), 버스(107), 그리고 주파수 제어 모듈(160)을 포함한다. 프로세서 코어(110)는 신호(HALT1)를 제공하기 위한 출력부를 포함하며, 프로세서 코어(120)는 신호(HALT2)를 제공하기 위한 출력부를 포함한다. 전력 제어 모듈(140)은 신호(HALT1)를 수신하기 위한 입력부, 신호(HALT2)를 수신하기 위한 입력부, 신호(INT)를 수신하기 위한 입력부, 버스(107)에 연결된 입력부, 신호(MSG)를 수신하기 위한 입력부, 신호(V_CTRL)를 제공하기 위한 출력부, 그리고 신호(F_CTRL)를 제공하기 위한 출력부를 포함한다. 버스 제어 모듈(150)은 버스(103)로의 연결, 신호(MSG)를 제공하기 위한 출력부, 버스(107)에 연결된 출력부를 포함한다. 주파수 제어 모듈(160)은 신호 F_CTRL를 수신하기 위한 입력부를 포함한다.
버스 제어 모듈(150)은 버스(103) 상의 버스 트랜잭션들을 모니터링하고 신호(MSG와 MSG)를 통해 버스 트랜잭션들에 대한 정보를 제공하도록 되어있다. 버스 제어 모듈(150)은 트랜잭션이 일관성 트랜잭션(coherent transaction)인지 비일관성 트랜잭션(incoherent transaction)인지, 그리고 트랜잭션이 프로세서 코어(110)와 관련되는지 프로세서 코어(120)와 관련되는지와 같은 트랜잭션의 타입을 표시하는 정보를 제공할 수 있다. 버스 제어 모듈(150)은 또한 모니터링되는 버스 트랜잭션들을 버스(107)를 통해 프로세서 CPU에 제공하도록 되어있다.
주파수 제어 모듈(160)은 F_CTRL 신호를 통해 정보를 수신하고, 프로세서 코어(110), 프로세서 코어(120)에 대한 클럭 주파수, 그리고 데이터 프로세서(102)의 클럭들에 대한 다른 클럭 주파수들을 설정하도록 되어있다. 주파수 제어 모듈(160)은 클럭 주파수들이 개별적으로 그리고 서로 독립적으로 설정될 수 있도록 된다.
전력 제어 모듈(140)은 신호(MSG)를 통해 정보를 수신하고, 버스 제어 모듈(150)에 의해 제공된 버스(107) 상의 버스 트랜잭션들을 평가하도록 되어있다. 전력 제어 모듈(140)은 또한 버스 트랜잭션의 평가 및 수신된 정보에 근거하여 신호 V_CTRL를 통해 제어 정보를 제공하도록 되어있다. 따라서, 전력 제어 모듈(140)은 프로세서 코어(110, 120)의 동작 모드들을 제어한다. 추가적으로, 전력 제어 모듈(140)은 특정 시간 주기에 메모리(105) 또는 캐시(111)가 액세스되려 하는지를 결정하도록 되어있으며, 이 결정에 근거하여 메모리(105) 및 캐시(111)의 동작 모드를 제어하기 위한 제어 정보를 발행하도록 되어있다.
동작 중에, 전력 제어 모듈(140)은 신호(HALT1, HALT2) 각각을 통해 프로세 서 코어(110, 120)로부터 운영 시스템(108)에 의해 발행된 정지 지시들을 수신할 수 있다. HALT1 및 HALT2가 신호들로서 도시되었지만, 운영 시스템(108)은 전력 제어 모듈(140)에 있는 레지스터들에 기입함으로써 정지 지시를 발행할 수 있다는 점에 유의하여야 한다. 구체적인 실시예에서, 정지 지시를 발행한 후, 운영 시스템(108)은 정지 지시가 제공된 프로세서 코어 상에서 유휴 상태에 진입한다. 유휴 상태에서, 운영 시스템은 오퍼레이션들 또는 태스크들을 실행하지 않는다.
정지 지시를 수신함에 응답하여, 전력 제어 모듈(140)은 버스(103) 상의 버스 트랜잭션들이 휴리스틱(heuristic)을 만족하는지 여부를 평가한다. 예를 들어, HALT1 신호의 어써션에 응답하여, 전력 제어 모듈(140)은, 특정 시간 기간 동안 프로세서 코어(110)과 관련된 버스(103) 상에 버스 트랜잭션들이 없는지를 판단할 수 있다. 또 다른 실시예에서, 전력 제어 모듈(140)은, 주변 디바이스들(106, 107)로부터의 표시에 근거하여, 특정 시간 기간 동안 임의의 버스 트랜잭션들이 버스(103) 상에서 있을 것으로 예측되는지를 판단할 수 있다. 예측되는 버스 트랜잭션들이 없으면, 휴리스틱이 만족된다.
전력 제어 모듈(140)이 휴리스틱이 만족된다고 판단하면, 전력 제어 모듈은, 정지 표시를 발행한 프로세서 코어에 대한 전압 레벨을 저전력 리텐션 전압과 같은 낮은 전압으로 설정하기 위한 정보를 V_CTRL 신호를 통해 제공한다. 따라서, 전력 제어 모듈(140)은, 운영 시스템(108)에 의한 추가적인 간섭 또는 처리 없이, 프로세서 코어를 낮은 전력 모드에 놓을 수 있다. 이는 프로세서 코어가 더욱 빠르게 그리고 더욱 빈번하게 낮은 전력 모드에 놓일 수 있게 해주며, 그럼으로써 전력을 보존한다. 휴리스틱이 만족되는지를 결정하고 있는 동안, 전력 제어 모듈(140)이 INT 신호를 통해 인터럽트를 수신하면, 전력 제어 모듈(140)은 특정 휴리스틱이 만족되는지에 대해 결정하는 것을 중지하고 그 프로세서 코어에 대한 전압을 활성 전압 레벨에서 유지할 수 있다.
더욱이, 프로세서 코어들(110, 120) 중 하나에 대한 전압이 리텐션 전압으로 설정된다면, 신호 INT에 의해 표시된 것과 같은 인터럽트가 수신되며, 전력 제어 모듈(140)은 프로세서 코어가 활성 전력 모드에 진입해야만 하는지를 결정하기 전에, 인터럽트를 서비스하기 위하여 프로세서 코어에 대한 전압 레벨을 저전력 프로세싱 전압으로 설정할 수 있으며, 따라서 인터럽트가 처리될 수 있다. 프로세서 코어(110) 또는 프로세서 코어(120)가 활성 모드로 되돌아간다면, 운영 시스템(108)은 인터럽트를 처리하기 위하여 유휴 모드를 빠져나올 것이다.
또한, 전력 제어 모듈(140)은 신호(F_CTRL)를 통해, 각 모드의 프로세서 코어(110) 및 프로세서 코어(120)와 관련된 클럭들의 주파수를 제어하기 위한 정보를 제공한다. 예를 들어, 전력 제어 모듈(140)이, 프로세서 코어(110)가 활성 전력 모드에서 동작할 수 있도록 전압(VDD1)을 설정할 때, 전력 제어 모듈은 또한 F_CTRL 신호를 통해 클럭 주파수(120)를 주파수 레벨로 설정하기 위한 정보를 제공하여, 운영 시스템(108)이 정규 속도에서 동작하게 한다. 저전력 리텐션 모드에서, 전력 제어 모듈(140)은 프로세서 코어(110)에 대한 클럭을 차단(shut down)할 수 있다. 또한, 프로세서 코어(110)가 저전력 프로세싱 모드에 있을 때, 전력 제어 모듈(140)은 프로세서 코어(110)가 감소된 속도에서 데이터를 처리하여 캐시 메시지 또는 인터럽트들의 처리를 보조할 수 있게 하는 주파수(그러나 활성 전력 모드와 관련된 클럭 주파수보다 낮은 주파수로)에서 클럭을 설정할 수 있다. 클럭 주파수를 제어함으로써, 전력 제어 모듈(140)은 또한 각각의 동작 모드에서 데이터 프로세서(102)의 전력 소비를 제어한다.
전력 제어 모듈(140)은 또한 버스(107)를 통해 메모리로 제어 정보를 송신함으로써 캐시(111)의 동작 모드를 제어할 수 있다. 예를 들어, 전력 제어 모듈(140)이 캐시(111)가 특정 시간 기간 동안 액세스되지 않을 수 있다고 판단하면, 전력 제어 모듈(140)은 캐시(111)를 셀프-리프레시 또는 저전력 상태 유지 상태가 되게 하기 위한 제어 정보를 송신한다. 특정 실시예에서, 전력 제어 모듈은 프로세서 코어(110, 112) 중 하나 또는 둘 모두가 저전력 리텐션 모드에 있을 때에만 캐시(111)가 셀프-리프레시 또는 저전력 리텐션 상태에 놓이게 한다. 캐시(111)를 셀프-리프레시 모드에 놓기로 결정하는 것은 운영 시스템(108)에 의해 직접 행해지기 보다는 데이터 프로세서(102)에 있는 하드웨어에 의해 행해진다. 이는 데이터 프로세서(102)로 하여금 메모리가 보다 빠르게 셀프-리프레시 상태에 놓이게 할 수 있게 해주며, 따라서 전력이 보존된다.
더욱이, 전력 제어 모듈(140)은 버스(103) 상에 제어 정보를 송신함으로써 유사하게 메모리(105)의 동작 모드를 제어할 수 있다. 예를 들어, 전력 제어 모듈(140)이 메모리(105)가 특정 시간 주기 동안 액세스되지 않을 것으로 결정하는 것에 응답하여, 전력 제어 모듈(140)은 메모리(105)를 셀프-리프레시 상태에 놓기 위한 제어 정보를 송신한다.
집적 회로 디바이스(100)의 특정 동작의 실시예가 도 2를 참조로 보다 잘 이해될 것이며, 도 2는 프로세서 코어(110)의 전력 모드와 관련된 상태를 도시한다. 노드(202)에서, 활성 전력 모드를 지원하기에 충분한 전압(즉, 활성 전압)이 프로세서 코어(110)에 제공되어, 프로세서 코어(110)가 활성 상태에 놓인다. 노드(202)에서, 프로세서 코어(110)는 정규 속도에서 운영 시스템(108)을 실행할 수 있는 상태에 있다. 운영 시스템(108)이 정지 지시를 제공함에 응답하여, 프로세서 코어는 노드(204)로 천이하며, 이것은 저전력 인에이블 상태(low-power enabled state)이다. 도시된 바와 같이, 노드(204)의 저전력 인에이블 상태에서, 활성 전압이 프로세서 코어(110)로 제공된다. 부가적으로, 노드(204)의 저전력 인에이블 상태에서, 운영 시스템(108)은 유휴 모드에 놓이며, 프로세서 코어(110)가 노드(202)에서 활성 모드로 돌아갈 때까지 추가적인 동작들 또는 기능들을 수행하지 않는다.
노드(204)의 저전력 인에이블 상태에서, 데이터 프로세서(102)가 버스(103) 상의 버스 트랜잭션들을 평가한다. 특정 시간 기간 동안 버스 트래잭션들이 존재하지 않는 것과 같은 휴리스틱이 만족되지 않는다면, 프로세서 코어(110)는 노드(204)에서 저전력 인에이블 상태로 유지된다. 인터럽트가 수신되면, 프로세서 코어(110)는 운영 시스템으로부터의 정지 표시를 클리어하고 노드(202)로 돌아가서 인터럽트를 처리하기 위한 활성 상태에 놓인다. 휴리스틱이 만족된다면, 프로세서 코어(110)는 노드(210)에서 리텐션 상태에 놓인다. 리텐션 상태에서, 저전력 리텐션 전압이 프로세서 코어(110)에 제공되며, 따라서 프로세서 코어(110)는 저장된 정보를 보존하되 정규 오퍼레이션들을 실행하지는 않게 된다.
프로세서 코어(110)가 리텐션 상태에 있을 때 데이터 프로세서(102)에 의해 수신되는 일관성 메시지 또는 캐시 프로브 메시지와 같은 캐시 메시지에 응답하여, 프로세서 코어(110)는 노드(208)에서 저전력 프로세싱 상태에 놓인다. 노드(208)에서 프로세서 코어(110)가 저전력 프로세싱 상태에 있는 동안, 프로세서 코어(110)의 동작 전압은 저전력 프로세싱 전압으로 설정되어 캐시 메시지가 처리될 수 있게된다. 프로세서 코어(110)는 캐시 메시지가 처리되고 휴리스틱이 만족될 때까지 노드(208)에서 저전력 프로세싱 상태로 유지된다. 일단 캐시 메시지가 처리되고 휴리스틱이 만족되면, 프로세서 코어(110)는 노드(210)에서 리텐션 상태로 되돌아가며, 동작 전압이 저전력 리텐션 전압으로 되돌아간다.
프로세서 코어(110)가 노드(208)의 저전력 프로세싱 상태 또는 노드(210)의 리텐션 상태에 있는 동안 데이터 프로세서(102)에서 수신되고 있는 인터럽트에 응답하여, 프로세서 코어(110)는 노드(206)에서 저전력 프로세싱 상태에 놓인다. 이 상태에서, 프로세서 코어(110)의 동작 전압은 저전력 프로세싱 전압으로 설정되고, 인터럽트가 처리된다. 인터럽트의 처리가 지정된 시간 보다 더 걸린다는 것을 표시하는 타임아웃이 발생하면, 프로세서 코어(110)는 인터럽트의 처리를 완료하기 위하여 활성 상태로 되돌아 간다. 프로세서 코어(110)가 노드(206)의 저전력 처리 상태에 있을 때 정지 표시가 수신되면, 프로세서 코어(110)는 노드(212)에서 정지 상태에 놓인다. 노드(212)의 정지 상태에서, 프로세서 코어(110)의 동작 전압은 저전력 프로세싱 전압으로 유지된다.
노드(212)의 정지 상태에서, 데이터 프로세서(102)는 버스(103) 상의 버스 트랜잭션들을 모니터하여 그것들이 휴리스틱을 만족하는지를 결정한다. 상기 휴리스틱은 노드(204)의 정지 상태와 관련된 휴리스틱과 동일하거나 그것과 다를 수 있다. 휴리스틱이 만족되지 않으면, 프로세서 코어(110)는 노드(212)에서 정지 상태로 유지된다. 인터럽트가 수신되면, 프로세서 코어(110)는 노드(202)에서 액티브 상태로 되돌아가서 인터럽트를 처리한다. 휴리스틱이 만족되면, 프로세서 코어(110)가 노드(210)에서 리텐션 상태에 놓인다.
도 3을 참조하면, 프로세서 코어(110)에 제공된 동작 전압의 구체적인 실시예의 도면이 도시된다. 곡선(302)는 프로세서 코어(110)에 대한 동작 전압(VDD1)의 레벨을 시간에 대해 도시한다. 시간 주기(303) 동안, 프로세서 코어(110)는 활성 상태이며, 동작 전압(VDD1)은 활성 전압 레벨로 설정된다. 시간(304)에서, 프로세서 코어(110)로부터 정지 표시가 수신된다. 이에 응답하여, 데이터 프로세서(102)는 버스(103) 상의 버스 트랜잭션들을 검출한다. 시간(307)에서, 버스 프로세서(102)는, 검출된 버스 트랜잭션들에 근거하여, 휴리스틱이 만족되었다고 결정한다. 그에 응답하여, 프로세서 코어(110)가 리텐션 상태에 놓이고, 전압(VDD1)이 시간 주기(308) 동안 저전력 리텐션 전압으로 설정된다. 구체적인 실시예에서, 정지 표시가 수신될 때와 시간 주기(308)의 시작 사이의 시간은 100 마이크로세컨드보다 작다.
시간(309)에서, 데이터 프로세서(102)는 인터럽트를 수신한다. 응답으로, 프로세서 코어는 저전력 프로세싱 상태에 놓이며, 전압(VDD1)이 시간 기간(310) 동안 저전력 프로세싱 전압으로 설정된다. 또한, 시간 기간(310) 동안, 인터럽트가 처리 된다.
시간(311)에서, 정지 표시가 데이터 프로세서(102)에 수신된다. 이에 응답하여, 데이터 프로세서(102)는 버스(103) 상의 버스 트랜잭션들과 관련된 특정 휴리스틱이 만족되는지를 판단한다. 시간(312)에서, 데이터 프로세서(102)가 휴리스틱이 만족되는지를 판단한다. 이에 응답하여, 프로세서 코어(110)는 저전압 리텐션 상태에 놓이며, 동작 전압 VDD이 시간 주기(313) 동안 저전력 상태 유지 전압으로 설정된다.
시간(314)에서, 인터럽트가 데이터 프로세서(102)에서 수신된다. 그에 응답하여, 프로세서 코어(110)가 저전력 프로세싱 상태에 놓이며, 전압(VDD1)이 저전력 프로세싱 전압으로 설정되어 인터럽트가 처리될 수 있게된다. 시간(315)에서, 지정된 시간 내에 정지 메시지가 수신되지 않았음을 표시하는 타임아웃이 발생한다. 이에 응답하여, 프로세서 코어(110)는 활성 상태로 되돌아가며, 전압(VDD1)이 활성 전압 레벨로 설정된다.
도 4를 참조하면, 도 1의 전력 제어 모듈(140)에 대응하는 전력 제어 모듈(440)의 특정 실시예의 블럭도가 도시된다. 전압 제어 모듈(440)은 전압 및 주파수 제어 모듈(402), 카운터(404), 카운터(406), 버스 모니터링 모듈(420), 드레시홀드 레지스터(422), 드레시홀드 레지스터(424), 홀트 레지스터(432), 그리고 홀트 레지스터(434)를 포함한다. 전압 및 주파수 제어 모듈(402)은 신호(INT)를 수신하는 제1 입력부, 신호(SET1)를 수신하는 입력부, 신호(SET2)를 수신하는 입력부, 그리고 신호(V_CTRL)를 수신하는 입력부를 포함한다. 카운터(404)는 부호 "START"로 표기된 입력부, 부호 "R"로 표기된 입력부, 신호 INT를 수신하는, 부호 "STOP"로 표시된 입력부, 제4 입력부, 그리고 신호(SET2)를 제공하기 위한 출력부를 포함한다. 드레시홀드 레지스터(424)는 제어기(406)의 제4 입력부에 연결된 출력부를 포함한다. 버스 모니터링 모듈(420)은 버스(107)에 연결된 입력부, 카운터(404)의 R입력에 연결된 출력부, 그리고 카운터(406)의 R 입력에 연결된 출력부를 포함한다. 정지 레지스터(432)는 카운터(404)의 START 입력에 연결된 출력부를 포함한다. 정지 레시즈터(434)는 카운터(406)의 START 입력부에 연결된 출력부를 포함한다.
드레시홀드 레지스터(422)는 프로세서 코어(110)와 관련된 시간 드레시홀드를 표시하는 값을 저장하도록 된다. 유사하게, 드레시홀드 레지스터(424)는 프로세서 코어(120)과 관련된 시간 드레시홀드를 표시하는 값을 저장하도록 된다. 드레시홀드 레지스터(422, 424)에 의해 저장된 값들은 데이터 프로세서(102)의 BIOS에 의해 또는 운영 시스템(108)에 의해 프로그래밍될 수 있다.
카운터(404)는 값을 저장하도록 되어 있다. START 입력에서 제공된 정보에 응답하여, 카운터(404)는 저장된 값을 주기적으로 조정(예를 들어, 감소시킴)하도록 되어있다. STOP 입력부에서의 신호의 어써션에 응답하여, 카운터(404)는 저장된 값의 조정을 정지하도록 되어 있다. 더욱이, R 입력부에서의 신호의 어써션에 응답하여, 카운터(404)는 드레시홀드 레지스터(422)에 의해 제공된 드레시홀드 값을 로딩하도록 되어있다. 카운터(404)는 또한 저장된 값이 미리 정해진 값(예를 들어, 0)에 도달할 때, SET1 신호를 어써트하도록 된다. 카운터(406)은 카운터(404)와 유사하게 되어있다.
전압 및 주파수 제어 모듈(402)은 전압 조정기(130)를 제어하기 위하여 V_CTRL 신호를 통해 정보를 제공하며, 프로세서 코어(110) 및 프로세서 코어(112)와 관련된 클럭 신호들의 주파수를 제어하기 위하여 F_CTRL 신호를 통해 정보를 제공한다. 전압 및 주파수 제어 모듈(402)은 그것의 입력부에서 수신된 정보에 근거하여 V_CTRL 및 F_CTRL로 표시된 정보를 제공한다.
버스 모니터링 모듈(120)은 버스(107) 상에서 버스 트랜잭션들을 모니터링하며 모니터링된 트랜잭션들에 대한 정보를 그 출력부에 제공한다. 예를 들어, 특정 유형 또는 특정 프로세서 코어와 관련된 버스 트랜잭션을 검출하는 것에 응답하여, 버스 모니터링 모듈(120)은 그것의 출력부에서 버스 트랜잭션에 대한 정보를 제공할 수 있다.
동작 중에, 전압 및 주파수 제어 모듈(402)은 전압 VDD1 및 VDD2를 활성 전압 레벨로 설정하기 위하여 VCTRL 신호를 통해 정보를 제공한다. 운영 시스템(108)이 정지 레지스터(132)에, 운영 시스템(108)이 프로세서 코어(110)에 대한 정지 지시를 발행하였음을 나타내는 정보를 기입하는 것에 응답하여, 카운터(404)는 드레시홀드 레지스터(422)에 의해 제공되는 값을 로딩하며 그것에 저장된 값을 주기적으로 감소시킨다. 버스 모니터링 모듈(120)이, 프로세서 코어(110)와 관련된 버스 트랜잭션이 버스(103) 상에서 검출되었음을 나타낸다면, 카운터(404)에 저장된 값은 드레시홀드 값으로 리셋되고 다시 주기적으로 조정될 것이다. 카운터(404)에 의해 저장된 값이 0에 도달한다면, 카운터는 신호(SET1)를 어써트한다. 따라서, 도시된 실시예에서, 카운터(404)는 드레시홀드 레지스터(422)에 저장된 값에 의해 표시 된 시간 동안 프로세서 코어(110)와 관련된 버스 트랜잭션들이 검출되지 않는 것에 응답하여, 그것의 출력 신호를 어써트한다.
신호(SET1)의 어써션에 응답하여, 전압 및 주파수 제어 모듈(402)은 전압 VDD1을 저전력 리텐션 전압으로 설정하기 위하여 V_CTRL 신호를 통해 정보를 제공하고, 프로세서 코어(110)에 대한 클럭을 턴오프 하기 위하여 F_CTRL 신호를 통해 정보를 제공한다. 따라서, 카운터(404)가 정지 표시가 수신된 후 프로그램된 시간 기간 동안 프로세서 코어(110)와 관련된 버스 트랜잭션들이 검출되지 않았음을 표시할 때, 프로세서 코어(110)는 저전력 리텐션 모드에 놓인다.
카운터(406)는, 드레시홀드 레지스터(424) 내에 저장된 값에 의해 표시된 프로그램된 시간 기간 동안 프로세서 코어(120)와 관련된 버스 트랜잭션들이 검출되지 않는 것에 대한 응답으로, 신호(SET2)를 어써트하기 위해 카운터(404)와 유사하게 동작한다. 신호 SET2의 어써션에 응답하여, 전압 및 주파수 제어 모듈(402)은 전압 VDD2를 상태유지 전압 레벨로 설정하기 위하여 VCTRL 신호를 통해 정보를 제공하고 프로세서 코어(120)과 관련된 클럭을 턴오프 하기 위해 F_CTRL 신호를 통해 정보를 제공한다.
전압 VDD1 또는 전압 VDD2가 상태유지 전압 레벨에 있는 동안 인터럽트가 수신되었음을 표시하는 INT 신호에 응답하여, 전압 및 주파수 제어 모듈(402)은 전압 VDD1 또는 VDD2를 저전력 프로세싱 전압 레벨로 설정하여 인터럽트가 처리될 수 있게 한다. 전압 및 주파수 제어 모듈(402)는 또한 신호 F_CTRL를 통해 저전력 프로세싱 모드에 대한 적절한 클럭 주파수를 설정한다. 추가적으로, 인터럽트가 수신되 었음를 표시하는 INT 신호에 응답하여, 카운터(404, 406)는 그것들의 저장 값을 조정하는 것을 정지한다.
도 5를 참조하면, 도 1의 전력 제어 모듈(140)에 대응하는, 전력 제어 모듈(540)의 대안적인 실시예의 블럭도가 도시된다. 전력 제어 모듈(440)은 전압 및 주파수 제어 모듈(502), 버스 모니터링 모듈(520), 정지 레지스터(532, 534)를 포함한다. 전압 및 주파수 제어 모듈(502)은 신호 V_CTRL을 제공하기 위한 출력부, 신호 F_CTRL를 제공하기 위한 출력부, 정지 레지스터(532)에 연결된 입력부, 버스 모니터링 모듈(520)의 출력부와 연결된 입력부를 포함한다. 버스 모니터링 모듈(520)은 또한 버스(107)에 연결된 입력부를 포함한다.
전압 및 주파수 제어 모듈(502)은 정지 레지스터(532, 534)에서 정보를 판독하도록 되어 있다. 전압 및 주파수 제어 모듈(502)은 또한 버스 모니터링 모듈(520)로부터 버스(107) 상의 버스 트랜잭션들에 관한 정보를 수신하도록 되어 있다. 판독 및 수신된 정보에 근거하여, 전압 및 주파수 제어 모듈(502)은 프로세서 코어(110) 및 프로세서 코어(120)에 대한 전력 모드를 설정하기 위해 V_CTRL 신호 및 F_CTRL 신호를 통해 정보를 제공한다.
정지 레지스터(532)는 운영 시스템(108)에 의해 제공되는 프로세서 코어(110)에 대한 전력 모드 제어 정보를 저장하도록 되어있다. 상기 전력 모드 제어 정보는 저전력 모드 인에이블 정보(510), 전력 레벨 정보(512), 그리고 시간 정보(514)를 포함한다.정지 레지스터(516)는 운영 시스템(108)에 의해 제공되는 프로세서 코어(120)에 대한 전력 모드 제어 정보를 저장하도록 되어있다. 상기 전력 모 드 제어 정보는 저전력 모드 인에이블 정보(516), 전력 레벨 정보(518), 그리고 시간 정보(519)를 포함한다.
동작 중에, 운영 시스템(108)은 프로세싱 코어(110)에 대한 전력 정보를 설정하기 위해 정지 레지스터(532)에 정보를 기입한다. 저전력 인에이블 정보(510)는 프로세서 코어(110)에 대해 저전력 모드가 인에이블되었는지를 표시한다. 전력 레벨 정보(512)는 휴리스틱이 만족되지 않을 때 프로세서 코어(110)가 어떤 전력 모드로 설정되어야 하는지를 표시한다. 시간 정보(514)는 인터럽트들이 수신되지 않는 경우에, 프로세서 코어(110)가 저전력 모드에 놓이게 될 시간 길이를 표시한다. 정지 레지스터(534) 내에 저장된 정보는 유사하게 프로세서 코어(120)에 대한 전력 모드를 설정하도록 되어 있다.
전압 및 주파수 제어 모듈(502)은 정지 레지스터(514) 내에 저장된 정보를 판독함으로써 프로세서 코어(110)에 대한 전력 모드를 설정한다. 저전력 인에이블 정보(510가 프로세서 코어(110)가 저전력 모드에 놓여야만 한다고 표시한다면, 전압 및 주파수 제어 모듈은, 버스(107) 상의 버스 트랜잭션들이 휴리스틱에 부합하느지를 판단하기 위해 버스 모니터링 모듈에 의해 제공되는 정보를 평가한다. 휴리스틱에 부합된다면, 전압 및 주파수 제어 모듈은, 전력 레벨 정보(512)에 근거하여, 프로세서 코어(110)에 대한 동작 전압 및 주파수가 설정되어야 하는 레벨을 결정한다. 이 결정에 근거하여, 전압 및 주파수 제어 모듈(502)은 동작 전압 및 주파수를 적절한 레벨로 설정하기 위해 V_CTRL 신호와 F_CTRL 신호를 통해 정보를 제공한다. 전압 및 주파수 제어 모듈(502)은 또한 프로세서 코어(110)가 저전력 모드에 있었던 시간의 양을 모니터할 수 있다. 상기 시간의 양이 시간 정보(514)에 의해 표시된 시간의 양을 초과할 때, 전압 및 주파수 제어 모듈(502)은 프로세서 코어(110)를 활성 전력 모드와 같은 또 다른 전력 모드에 놓기 위하여 동작 전압 및 주파수를 설정할 수 있다.
전압 및 주파수 제어 모듈(502)은 프로세서 코어(110)에 대해 기술된 것과 유사한 방식으로, 정지 레지스터(534) 내에 저장된 정보에 근거하여 프로세서 코어(120)에 대한 전력 모드를 설정할 수 있다.
집적 회로 디바이스(100)의 특정한 대안적인 동작 실시예가 도 6을 참조로 도시되며, 도 6은 프로세서 코어(110)의 전력 모드들과 관련된 상태도를 도시한다. 노드(602)에서, 프로세서 코어(110)는 활성 상태에 있다. 운영 시스템으로부터 정지 표시가 수신된다면, 프로세서 코어(110)는 노드(604)의 저전력 인에이블 상태에 놓인다. 도시된 바와 같이, 노드(604)의 저전력 인에이블 상태에서, 활성 전압이 프로세서 코어(110)에 제공된다. 집적 회로 디바이스(100)의 버스 트랜잭션들과 관련된 휴리스틱이 만족되지 않고 수신되는 인터럽트가 없는 한, 프로세서 코어(110)는 노드(604)의 저전력 인에이블 상태에서 유지된다. 인터럽트가 수신된다면, 프로세서 코어(110)는 노드(602)에서 활성 상태로 되돌아가 운영 시스템이 정규 속도에서 인터럽트를 처리할 수 있게 해준다.
프로세서 코어(110)가 노드(604)의 저전력 인에이블 상태에 있는 동안 휴리스틱이 만족되면, 프로세서 코어(110)는 노드(610)의 저전력 상태1에 놓인다. 저전력 상태1에서, 프로세서 코어(110)는 리텐션 상태, 저전력 프로세싱 상태, 또는 노 드(602)의 활성 상태에서보다 전력을 덜 소비하는 다른 상태에 있을 수 있다.
이벤트1로 표시된 특정 이벤트가 노드(610)에서 결정되면, 프로세서 코어(110)는 저전력 상태2에 놓인다. 이벤트1은 특정 인터럽트, 타임아웃 조건등과 같은 다수의 이벤트들 중 하나일 수 있다. 저전력 상태2에서, 프로세서 코어(110)는 노드(602)의 활성 상태에서 보다 전력을 덜 소비하지만, 노드(610)의 저전력 상태1에서보다는 전력을 더 소비하거나 덜 소비할 수 있다. 이벤트1이 완료되고 휴리스틱이 만족되면, 프로세서 코어(110)는 노드(610)에서 저전력 상태로 되돌아간다.
노드(608)에서, 이벤트2로 표시된 제2 이벤트가 결정되면, 프로세서 코어(110)는 노드(606)에서 저전력 상태3에 놓인다. 저전력 상태1, 2, 3 각각에 대해, 프로세서 코어(110)의 동작 전압 또는 주파수는 상이할 수 있다. 예를 들어, 저전력 상태3에 있는 프로세서 코어의 동작 전압은 저전력 상태2에 있는 프로세서 코어의 동작 전압보다는 크고 저전력 상태1에 있는 프로세서 코어의 동작전압보다는 작을 수 있다. 그러나, 저전력 상태1, 2, 3 각각에서, 프로세서 코어(110)는 노드(602)의 활성 상태에서 보다 전력을 덜 소비한다.
이벤트2가 완료되고 휴리스틱이 만족되면, 프로세서 코어(110)는 노드(610)의 저전력 상태1로 되돌아 간다. 도시된 바와 같이, 프로세서 코어(110)는 또한 이벤트2에 응답하여, 노드(610)의 저전력 상태1로부터 노드(606)의 저전력 상태3으로 직접 천이할 수 있다. 부가적으로, 또 다른 이벤트, 즉 이벤트 3에 응답하여, 프로세서 코어(110)는 노드(610)의 저전력 상태1로부터 노드(602)의 활성 상태로 직접 천이할 수 있다. 저전력 상태들 간의 각각의 천이와 저전력 상태1로부터 활성 상태 로의 천이는 운영 시스템(108)의 간섭 없이 하드웨어에 의해서 실시된다. 이는 각각의 저전력 상태 간에 빠른 천이를 제공해주며 따라서 전력 소비가 감소된다.
본 개시의 이점, 사용, 그리고 다른 실시예들은 본 명세서에 개시된 실시예들과 상세한 설명으로부터 당업자들에게 명백할 것이다. 일부 회로 소자들 및 모듈들이 다른 회로 소자들에 연결되는 것으로 도시되고 기술되었지만, 도시된 소자들이 또한 레지스터, 커패시터, 트랜지스터등과 같은 추가적인 회로 소자들을 통해 연결될 수도 있다는 것이 이해될 것이다. 상세한 설명 및 도면들은 단지 예시로서 고려되어야 하며, 따라서, 본 개시의 범주는 다음의 청구항들 및 그 등가에 의해 한정되는 것으로 의도된 것이다.

Claims (10)

  1. 제1 기간 동안 제1 프로세서 코어에서 제1 소프트웨어를 실행하는 단계와, 상기 제1 프로세서 코어는 상기 제1 기간 동안 제1 전력 모드에 있으며;
    상기 제1 기간 동안 상기 제1 소프트웨어에서 상기 제1 프로세서 코어가 제2 전력 모드로 동작할 수 있다는 결정에 응답하여, 제1 정지 표시(halt indication)를 제공하는 단계와;
    상기 제1 정지 표시를 수신함에 응답하여, 제1 하드웨어 모듈에서 제2 기간 동안 버스와 관련된 버스 트랜잭션들을 평가하는 단계와, 상기 제1 기간은 상기 제2 기간을 포함하며; 그리고
    모니터링된 버스 트랜잭션들이 제1 휴리스틱(heuristic)을 만족한다는 결정에 응답하여, 제3 기간 동안 상기 제1 프로세서 코어에 제1 저전력 전압을 제공하여 상기 제3 기간 동안 상기 제1 프로세서 코어가 리텐션 상태(retention state)에 놓이게 하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1 항에 있어서,
    상기 제1 저전력 전압을 제공하는 것은 상기 제1 정지 표시를 수신하고 100 마이크로세컨드 내에 발생하는 것을 특징으로 하는 방법.
  3. 제1 항에 있어서,
    상기 제1 휴리스틱은 상기 버스와 관련된 다수의 버스 트랜잭션들을 포함하는 것을 특징으로 하는 방법.
  4. 제1 항에 있어서,
    상기 제3 기간 동안 인터럽트를 수신함에 응답하여, 제4 기간 동안 상기 제1 프로세서 코어에 제2 저전력 전압을 제공하는 단계를 더 포함하며, 상기 제2 저전력 전압은 상기 제1 동작 전압 보다 낮고 상기 리텐션 전압보다 큰 것을 특징으로 하는 방법.
  5. 제1 항에 있어서,
    상기 제1 기간 동안 메모리에 제1 메모리 동작 전압을 제공하는 단계와; 그리고
    상기 제1 정지 표시를 수신함에 응답하여, 제4 기간 동안 상기 메모리에 제2 메모리 동작 전압을 제공하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  6. 제5 항에 있어서,
    상기 메모리와 관련된 메모리 트랜잭션들이 예측되지 않는 시간양을 결정하는 단계를 더 포함하며, 상기 제4 기간이 상기 시간양에 해당하는 것을 특징으로 하는 방법.
  7. 제5 항에 있어서,
    상기 메모리와 관련된 인터럽트를 수신함에 응답하여, 제5 기간 동안 상기 제1 메모리 동작 전압을 제공하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  8. 디바이스로서,
    제1 소프트웨어를 실행하도록 되어있는 제1 프로세서 코어와;
    상기 제1 프로세서 코어에 연결된 버스 모니터 모듈과, 상기 버스 모니터 모듈은, 상기 제1 소프트웨어로부터의 제1 정지 지시에 응답하여, 제1 시간 기간 동안 상기 제1 프로세서 코어와 관련된 다수의 버스 메시지들을 평가하도록 되어있으며; 그리고
    상기 제1 프로세서 코어를 복수의 전력 상태들 중 하나에 놓이게 하는 전력 제어 모듈를 포함하고, 상기 제1 프로세서 코어를 복수의 전력 상태들 중 하나에 놓이게 하는 것은, 상기 버스 모니터 모듈이 상기 제1 버스로의 액세스들이 제1 휴리스틱을 만족한다고 표시함에 응답하여 상기 제1 프로세서 코어를 제1 전력 상태에 놓이게 하는 것을 포함하는 것을 특징으로 하는 디바이스.
  9. 제8 항에 있어서,
    상기 전력 제어 모듈에 연결된 전압 조정기를 더 포함하며,
    상기 전압 조정기는,
    상기 제1 전력 상태에서 상기 제1 프로세서 코어의 동작 전압을 제1 저전력 전압으로 설정하고; 그리고
    제2 전력 상태에서 상기 제1 프로세서 코어의 동작 전압을 제1 활성 전압으로 설정하도록 되어 있으며, 상기 전력 제어 모듈은 상기 버스 모니터 모듈이 상기 제1 버스로의 액세스들이 상기 제1 휴리스틱을 만족하지 않는다고 표시함에 응답하여 상기 제1 프로세서 코어가 상기 제2 전력 상태에 놓이게 하도록 된 것을 특징으로 하는 디바이스.
  10. 제8 항에 있어서,
    상기 제1 프로세서 코어는 상기 버스 모니터가 버스 메시지들의 개수를 평가할 때, 상기 제1 소프트웨어를 유휴 상태(idle state)에 놓이게 하도록 된 것을 특징으로 하는 디바이스.
KR1020097026553A 2007-05-18 2008-05-16 동적 프로세서 전력 관리 디바이스 및 그 방법 KR101462564B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/750,365 2007-05-18
US11/750,365 US7870407B2 (en) 2007-05-18 2007-05-18 Dynamic processor power management device and method thereof
PCT/US2008/006294 WO2008143980A2 (en) 2007-05-18 2008-05-16 Dynamic processor power management device and method thereof

Publications (2)

Publication Number Publication Date
KR20100017874A KR20100017874A (ko) 2010-02-16
KR101462564B1 true KR101462564B1 (ko) 2014-11-18

Family

ID=40028740

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097026553A KR101462564B1 (ko) 2007-05-18 2008-05-16 동적 프로세서 전력 관리 디바이스 및 그 방법

Country Status (6)

Country Link
US (1) US7870407B2 (ko)
KR (1) KR101462564B1 (ko)
CN (1) CN101755250A (ko)
GB (1) GB2462046B (ko)
TW (1) TWI439849B (ko)
WO (1) WO2008143980A2 (ko)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5384959B2 (ja) * 2009-01-28 2014-01-08 セミコンダクター・コンポーネンツ・インダストリーズ・リミテッド・ライアビリティ・カンパニー 電子回路
US8185678B1 (en) * 2009-06-19 2012-05-22 Xilinx, Inc. Method and apparatus for controlling a data bus
US8601302B2 (en) * 2009-06-22 2013-12-03 Amazon Technologies, Inc. Processor system in low power state retention mode with linear regulator off and switch regulator low in power management IC
US8990591B2 (en) * 2009-12-31 2015-03-24 Intel Corporation Power management system for selectively changing the power state of devices using an OS power management framework and non-OS power management framework
FR2967797A1 (fr) * 2010-11-18 2012-05-25 St Microelectronics Sa Systeme et procede d'alimentation d'un composant par exemple un processeur
JP5537392B2 (ja) * 2010-11-18 2014-07-02 オリンパス株式会社 データ処理装置
US9069555B2 (en) * 2011-03-21 2015-06-30 Intel Corporation Managing power consumption in a multi-core processor
US8977878B2 (en) * 2011-05-19 2015-03-10 Texas Instruments Incorporated Reducing current leakage in L1 program memory
US8650422B1 (en) * 2011-07-01 2014-02-11 Xilinx, Inc. Time adjustment for implementation of low power state
US9158693B2 (en) 2011-10-31 2015-10-13 Intel Corporation Dynamically controlling cache size to maximize energy efficiency
KR101885857B1 (ko) * 2012-01-04 2018-08-06 삼성전자주식회사 온도 관리 회로, 이를 포함하는 시스템 온 칩 및 온도 관리 방법
CN102662822B (zh) * 2012-04-26 2015-02-04 华为技术有限公司 负载监控装置和方法
US9229524B2 (en) * 2012-06-27 2016-01-05 Intel Corporation Performing local power gating in a processor
JPWO2014006722A1 (ja) * 2012-07-05 2016-06-02 富士通株式会社 半導体集積回路およびその制御方法
KR102001414B1 (ko) * 2012-09-27 2019-07-18 삼성전자주식회사 데이터 트랜잭션에 따라 전력공급을 제어하는 시스템-온-칩 및 그 동작방법
JP2014102710A (ja) * 2012-11-20 2014-06-05 Toshiba Corp 通信装置、及びその方法
US9372526B2 (en) * 2012-12-21 2016-06-21 Intel Corporation Managing a power state of a processor
US9081577B2 (en) * 2012-12-28 2015-07-14 Intel Corporation Independent control of processor core retention states
US9317094B2 (en) 2012-12-28 2016-04-19 Nvidia Corporation Distributed power delivery to a processing unit
CN105144185B (zh) 2013-04-23 2018-06-05 惠普发展公司,有限责任合伙企业 验证控制器代码和系统启动代码
US9734339B2 (en) 2013-04-23 2017-08-15 Hewlett-Packard Development Company, L.P. Retrieving system boot code from a non-volatile memory
CN104122967B (zh) * 2013-04-24 2019-04-05 深圳市祈飞科技有限公司 一种上电掉电复位控制电路及计算机
US9305632B2 (en) 2013-04-29 2016-04-05 Qualcomm Incorporated Frequency power manager
US11399344B2 (en) 2015-01-26 2022-07-26 Apple Inc. System and method for SoC idle power state control based on I/O operation characterization
US10234932B2 (en) * 2015-07-22 2019-03-19 Futurewei Technologies, Inc. Method and apparatus for a multiple-processor system
CN105843370A (zh) * 2016-05-31 2016-08-10 合肥联宝信息技术有限公司 一种电子设备及其省电控制方法
WO2020159533A1 (en) 2019-02-01 2020-08-06 Hewlett-Packard Development Company, L.P. Security credential derivation
US11520662B2 (en) 2019-02-11 2022-12-06 Hewlett-Packard Development Company, L.P. Recovery from corruption
US11169841B2 (en) 2020-03-17 2021-11-09 Internationl Business Machines Corporation Tunable power save loop for processor chips

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030105983A1 (en) * 2001-12-03 2003-06-05 Brakmo Lawrence Sivert Power reduction in computing devices using micro-sleep intervals
KR20040070696A (ko) * 2003-02-04 2004-08-11 삼성전자주식회사 절전모드를 갖는 매체 엑세스 제어기

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5396635A (en) * 1990-06-01 1995-03-07 Vadem Corporation Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system
JP2974950B2 (ja) * 1995-10-26 1999-11-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 情報処理システム
US5692202A (en) * 1995-12-29 1997-11-25 Intel Corporation System, apparatus, and method for managing power in a computer system
US5926640A (en) * 1996-11-01 1999-07-20 Digital Equipment Corporation Skipping clock interrupts during system inactivity to reduce power consumption
US6018803A (en) * 1996-12-17 2000-01-25 Intel Corporation Method and apparatus for detecting bus utilization in a computer system based on a number of bus events per sample period
US6240521B1 (en) * 1998-09-10 2001-05-29 International Business Machines Corp. Sleep mode transition between processors sharing an instruction set and an address space
US6754837B1 (en) * 2000-07-17 2004-06-22 Advanced Micro Devices, Inc. Programmable stabilization interval for internal stop grant state during which core logic is supplied with clocks and power to minimize stabilization delay
JP3544932B2 (ja) * 2000-10-05 2004-07-21 Necエレクトロニクス株式会社 電子装置及びその電力制御方法
US20040128416A1 (en) * 2002-12-11 2004-07-01 Tsvika Kurts Apparatus and method for address bus power control
US7299370B2 (en) * 2003-06-10 2007-11-20 Intel Corporation Method and apparatus for improved reliability and reduced power in a processor by automatic voltage control during processor idle states
US7197652B2 (en) * 2003-12-22 2007-03-27 International Business Machines Corporation Method and system for energy management in a simultaneous multi-threaded (SMT) processing system including per-thread device usage monitoring
US7228446B2 (en) * 2004-12-21 2007-06-05 Packet Digital Method and apparatus for on-demand power management
US7337335B2 (en) * 2004-12-21 2008-02-26 Packet Digital Method and apparatus for on-demand power management
US7689849B2 (en) * 2006-08-28 2010-03-30 Ati Technologies Ulc Reduction of power consumption by throttling processor requests

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030105983A1 (en) * 2001-12-03 2003-06-05 Brakmo Lawrence Sivert Power reduction in computing devices using micro-sleep intervals
KR20040070696A (ko) * 2003-02-04 2004-08-11 삼성전자주식회사 절전모드를 갖는 매체 엑세스 제어기

Also Published As

Publication number Publication date
CN101755250A (zh) 2010-06-23
KR20100017874A (ko) 2010-02-16
GB0920862D0 (en) 2010-01-13
GB2462046A (en) 2010-01-27
US20080288799A1 (en) 2008-11-20
TW200903245A (en) 2009-01-16
TWI439849B (zh) 2014-06-01
WO2008143980A2 (en) 2008-11-27
WO2008143980A3 (en) 2009-11-05
GB2462046B (en) 2012-05-30
US7870407B2 (en) 2011-01-11

Similar Documents

Publication Publication Date Title
KR101462564B1 (ko) 동적 프로세서 전력 관리 디바이스 및 그 방법
KR101473907B1 (ko) 저전력 캐시 액세스 모드를 구비한 데이터 처리 장치
KR101242893B1 (ko) 프로세서 슬리프 및 웨이크 이벤트들에 대한 시스템에서의 하드웨어 자동 성능 상태 천이
US10409360B2 (en) Distribution of tasks among asymmetric processing elements
US6609211B2 (en) Utilization-based power management of a clocked device
US9069555B2 (en) Managing power consumption in a multi-core processor
US7428644B2 (en) System and method for selective memory module power management
US8762757B2 (en) Power management method and device thereof
KR100625061B1 (ko) 컴퓨터 장치, 시스템 가동 상태의 전환 제어 방법, 주변장치에의 전력 공급 제어 방법 및 프로그램
US7610497B2 (en) Power management system with a bridge logic having analyzers for monitoring data quantity to modify operating clock and voltage of the processor and main memory
US5737615A (en) Microprocessor power control in a multiprocessor computer system
US7581129B2 (en) Dynamic power control for reduced voltage level of graphics controller component of memory controller based on its degree of idleness
US7840821B2 (en) Method and apparatus for monitoring energy consumption of an electronic device
US8112250B2 (en) Processor power management
US6694442B2 (en) Method for saving power in a computer by idling system controller and reducing frequency of host clock signal used by system controller
US20180129180A1 (en) Pch thermal sensor dynamic shutdown
US20040006720A1 (en) Utilization-based power management of a clocked device
Wan et al. Power management in an RF5 audio streaming application using DSP/BIOS

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: 20171018

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181018

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20191016

Year of fee payment: 6