KR101158204B1 - 전력 관리를 위한 유휴 기간 리포팅 - Google Patents

전력 관리를 위한 유휴 기간 리포팅 Download PDF

Info

Publication number
KR101158204B1
KR101158204B1 KR1020090131316A KR20090131316A KR101158204B1 KR 101158204 B1 KR101158204 B1 KR 101158204B1 KR 1020090131316 A KR1020090131316 A KR 1020090131316A KR 20090131316 A KR20090131316 A KR 20090131316A KR 101158204 B1 KR101158204 B1 KR 101158204B1
Authority
KR
South Korea
Prior art keywords
idle period
logic
idle
data corresponding
downstream
Prior art date
Application number
KR1020090131316A
Other languages
English (en)
Other versions
KR20100080409A (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 KR20100080409A publication Critical patent/KR20100080409A/ko
Application granted granted Critical
Publication of KR101158204B1 publication Critical patent/KR101158204B1/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/3234Power saving characterised by the action undertaken
    • 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
    • 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/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands

Abstract

개시된 일 실시예에서, 하나 이상의 다운스트림 장치들에 대한 유휴 기간에 대응하는 데이터가 수신될 수 있다. 전력은 수신된 데이터에 적어도 부분적으로 기초하여 관리될 수 있다. 다른 실시예들도 개시된다.
프로세서, PPMC, 플랫폼 컨트롤 로직, PCPMC, 인터페이스 컨트롤 로직, 유휴 기간, 타이머, 메모리

Description

전력 관리를 위한 유휴 기간 리포팅{IDLE DURATION REPORTING FOR POWER MANAGEMENT}
여기에 개시된 실시예들은 일반적으로 전력 관리에 관한 것이다.
전력 관리는 전력 효율성을 향상시키기 위하여 여러 장치들 및 시스템들에서 사용되어, 전력 소모 및/또는 열 발산을 감소시키는 데에 도움을 준다. 배터리에 의해 전력이 공급되는(battery-powered) 모바일 장치들 및 시스템들에 있어서, 전력 관리는 동작을 연장시키는 데에 도움을 줄 수 있다.
일부 플랫폼-수준 전력 관리는 프로세서 및/또는 칩셋을 입출력(I/O) 성능에 영향을 줄 수 있는 저전력(lower power) 상태로 둘 수 있다. 플랫폼이 버스 마스터링(bus mastering)을 지원하는 일례로서, 프로세서 및 칩셋이 저전력 상태에 있는 경우, I/O 장치는 시스템 메모리로의 데이터 전달을 개시할 수 있다. 데이터 전달을 완료하기 위하여 프로세서 및 칩셋이 정상 동작 상태로 리턴되어야 하므로, 성능을 감소시키는 지연을 도입한다.
실시예들은 예로서 기재되어 있고, 첨부 도면들의 특징들에 한정되지 않으며, 첨부 도면들에서, 유사한 참조부호들은 유사한 구성요소들을 나타낸다.
도면들의 특징들은 반드시 스케일대로 도시된 것은 아니다.
이하 상세한 설명은 전력 관리를 위한 유휴 기간 리포팅에 관한 장치들, 방법들 및 시스템들의 예시적인 실시예들을 개시한다. 예를 들어, 구조(들), 기능(들) 및/또는 특성(들)과 같은 특징들은 편의상 일 실시예를 참조하여 설명되었지만, 임의의 적절한 하나 이상의 개시된 특징을 이용하여 다양한 실시예들이 구현될 수 있다.
도 1은 하나 이상의 프로세서(110), 및 프로세서(들)(110)에 연결된 플랫폼 컨트롤 로직(120)을 포함하는 예시적인 시스템(100)을 도시한다. 일 실시예에서의 프로세서(들)(110)는 프로세서(들)(110)에 대한 전력 효율성을 향상시키는 데에 도움을 주기 위하여 하나 이상의 PPMC(processor power management controller)를 포함할 수 있다. 일 실시예에서의 플랫폼 컨트롤 로직(120)은 시스템(100)에 대한 전력 효율성을 향상시키는 데에 도움을 주기 위하여 PCPMC(platform controller power management controller)를 포함할 수 있다. 예를 들어, 컴포넌트가 덜 활성화되었거나 유휴 상태인 경우, 일 실시예에서의 PCPMC(122)가 시스템(100)의 하나 이상의 컴포넌트가 복수의 저전력 또는 절전(sleep) 상태 중 하나로 들어가도록 관리하기 위하여 연결될 수 있다.
일 실시예에서의 PCPMC(122)는 전력 효율성을 향상시키는 데에 도움을 주기 위하여 시스템(100)의 컴포넌트들에 대한 전력 관리를 조정(coordinate)하는 데에 도움을 줄 수 있다. 예를 들어, 일 실시예에서의 PCPMC(122)는 하나 이상의 PPMC(112) 및 PCPMC(122)가 하나 이상의 컴포넌트가 성능 감소에 대한 걱정을 줄이면서 저전력 또는 절전 상태로 언제 들어가는지 및 얼마나 깊이 들어가는지를 보다 잘 확인하게 하기 위하여 이러한 PPMC(112)에 의해 조정되도록 연결될 수 있다.
PPMC(112) 및 PCPMC(122)는 각각 예를 들어, 임의의 적절한 하드웨어, 임의의 적절한 펌웨어를 실행하는 임의의 적절한 하드웨어, 임의의 적절한 소프트웨어를 수행하는 임의의 적절한 하드웨어, 또는 이러한 구현들의 임의의 적절한 조합과 같은 임의의 적절한 로직을 사용하여 임의의 적절한 방식으로 구현될 수 있다. 일 실시예에 있어서, 임의의 이러한 펌웨어 및/또는 소프트웨어는 예를 들어, 휘발성 메모리(160) 및/또는 하나 이상의 비휘발성 메모리 및/또는 저장 장치들(170)과 같은 임의의 적절한 컴퓨터 판독가능 저장 매체들 또는 매체에 저장될 수 있다.
일 실시예에서의 PCPMC(122)는 예를 들어, 장치(132)와 같은 하나 이상의 다운스트림 장치에 대한 유휴 기간에 대응하는 데이터를 수신할 수 있다. 일 실시예에서의 PCPMC(122)는 수신된 데이터에 적어도 부분적으로 기초하여, 이에 따라 대응하는 유휴 기간에 적어도 부분적으로 기초하여 전력을 관리할 수 있다. 일 실시예에서의 유휴 기간은 장치의 적어도 일부가 대략 진행하는 현재 시간(about the current time going forward)으로부터 유휴 상태이게 될 시간의 양에 대응할 수 있다. 일 실시예에서의 유휴 기간은 장치의 적어도 일부가 대략 진행하는 현재 시간으로부터 업스트림 장치와 통신하지 않게 될 시간의 양에 대응할 수 있다. 일 실시예에서의 유휴 기간은 장치의 적어도 일부가 유휴 상태로 되는 최소한의 시간의 양에 대응할 수 있다. 일 실시예에서의 유휴 기간은 장치의 적어도 일부가 업스트림 장치와 다음에 통신하게 될 때의 시간의 양에 대응할 수 있다. 일 실시예에서의 PCPMC(122)는 시간의 경과에 따라 예를 들어, 적어도 부분적으로 장치의 적어도 일부가 얼마나 빈번하게 유휴 상태로 되는지 및 언제 유휴 상태로 되는지에 따라 장치에 대한 상이한 유휴 기간들을 수신할 수 있다.
하나 이상의 다운스트림 장치가 유휴 기간에 대응하는 수신된 데이터에 적어도 부분적으로 기초하여 얼마나 길게 유휴 상태로 되는지를 확인함으로써, 일 실시예에서의 PCPMC(122)는 시스템(100)의 하나 이상의 컴포넌트가 저전력 또는 절전 상태로 언제, 얼마나 길게, 얼마나 깊이 들어가는지를 보다 잘 확인하고, 또한 여전히 성능 감소에 대한 걱정을 줄이면서 하나 이상의 다운스트림 장치에 응답할 수 있다.
일 실시예에서의 PCPMC(122)는 유휴 기간에 대응하는 데이터의 수신에 응답하여 시스템(100)의 하나 이상의 컴포넌트를 저전력 상태로 전환(transition)시킬 수 있다. 일 실시예에서의 PCPMC(100)는 유휴 기간이 만료되는 시점에 적어도 부분적으로 기초하여 시스템(100)의 하나 이상의 컴포넌트를 저전력 상태로부터 전환시킬 수 있다. 일 실시예에서의 PCPMC(122)는 다음에 만료되는 다운스트림 장치에 대한 유휴 기간을 수신된 데이터에 적어도 부분적으로 기초하여 반복적으로 확인하고, 저전력 상태로 전환시키고, 다운스트림 장치로부터의 잠재적인 통신에 응답하여 유휴 기간의 만료에 앞서 저전력 상태로부터 전환시킨다. 저전력 상태의 깊이 및 기간은 다음에 만료될 유휴 기간 및 저전력 상태에 대한 재시작 지연(resume delay)에 적어도 부분적으로 기초하여 결정될 수 있다. 일 실시예에서 이와 같은 방식으로 저전력 상태들로 전환시키고 저전력 상태들로부터 전환시키는 것은 PCPMC(122)에 대한 불필요한 전력 상태 전환들을 감소시킴으로써, PCPMC(122)가 전력을 감소시키는 데에 도움을 줄 수 있다. 일 실시예에서의 PCPMC(122)는 유휴 기간이 만료되는 시점을 확인하는 데에 도움을 주기 위하여 하나 이상의 타이머를 포함할 수 있다.
예를 들어, 플랫폼 컨트롤 로직(120)이 버스 마스터링을 지원하고, 다운스트림 장치가 예를 들어, 휘발성 메모리(160)로의 데이터 전달을 개시할 수 있게 하는 일 실시예에 있어서, 다운스트림 장치가 데이터 전달을 개시할 때, 일 실시예에서의 PCPMC(122)가 저전력 상태에서의 데이터 전달에 사용될 하나 이상의 컴포넌트를 포함하는 것을 피할 수 있다.
일 실시예에서의 플랫폼 컨트롤 로직(120)은 장치들(132, 134, 135, 136, 137 및 138)과 통신하기 위하여 인터페이스 컨트롤러들(124, 126 및 128)를 포함할 수 있다. 인터페이스 컨트롤러들(124, 126 및 128)은 각각 예를 들어, 임의의 적절한 하드웨어, 임의의 적절한 펌웨어를 수행하는 임의의 적절한 하드웨어, 임의의 적절한 소프트웨어를 수행하는 임의의 적절한 하드웨어, 또는 이러한 구현들의 임의의 적절한 조합과 같은 임의의 적절한 로직을 사용하여 임의의 적절한 방식으로 구현될 수 있다. 일 실시예에 있어서, 임의의 이러한 펌웨어 및/또는 소프트웨어는 예를 들어, 휘발성 메모리(160) 및/또는 하나 이상의 비휘발성 메모리 및/또는 저장 장치들(170)과 같은 임의의 적절한 컴퓨터 판독가능 저장 매체들 또는 매체에 저장될 수 있다. 일 실시예에서의 하나 이상의 인터페이스 컨트롤러(124, 126 및 128)는 예를 들어, 임의의 적절한 PCI(Peripheral Component Interface) 또는 PCIe(PCI Express) 규격(예를 들어, PCI Express Base Specification Revision 1.0, July 22, 2002; PCI Express Base Specification Revision 2.0, January 15, 2007)과 같은 임의의 적절한 하나 이상의 표준 규격과 호환가능하지만, 이에 제한되지 않는다. 3개의 인터페이스 컨트롤러들이 6개의 장치들과 통신하는 것으로 도시되어 있지만, 플랫폼 컨트롤 로직(120)은 임의의 적절한 수의 하나 이상의 장치와 통신하는 임의의 절적한 수의 하나 이상의 인터페이스 컨트롤러를 포함할 수있다.
일 실시예에서의 인터페이스 컨트롤러(124)는 다운스트림 장치(132)에 대한 유휴 기간에 대응하는 데이터를 수신하도록 연결될 수 있다. 일 실시예에서의 인터페이스 컨트롤러(124)는 장치(132)에 대한 유휴 기간에 대응하는 데이터를 PCPMC(122)로 송신하도록 연결될 수 있다. 일 실시예에서의 인터페이스 컨트롤러(124)는 장치(132)에 대한 유휴 기간에 대응하는 수신된 데이터를 PCPMC(122)로 송신하도록 연결될 수 있다.
일 실시예에서의 인터페이스 컨트롤러(126)는 다운스트림 장치(134)에 대한 유휴 기간에 대응하는 데이터를 수신하도록 연결될 수 있고, 다운스트림 장치(135)에 대한 유휴 기간에 대응하는 데이터를 수신하도록 연결될 수 있다. 일 실시예에서의 인터페이스 컨트롤러(126)는 예를 들어, 다운스트림 장치들(134 및 135) 모두와 통신하는 버스 에이전트 로직, 브릿지(bridge) 로직 또는 허브 로직과 같은 임 의의 적절한 로직을 포함할 수 있다. 일 실시예에서의 인터페이스 컨트롤러(126)는 장치(134)에 대한 유휴 기간에 대응하는 데이터 및 장치(135)에 대한 유휴 기간에 대응하는 데이터를 PCPMC(122)로 송신하도록 연결될 수 있다. 일 실시예에서의 인터페이스 컨트롤러(126)는 장치(134)에 대한 유휴 기간에 대응하는 수신된 데이터 및/또는 장치(135)에 대한 유휴 기간에 대응하는 수신된 데이터를 PCPMC(122)로 송신하도록 연결될 수 있다. 장치(134 및/또는 135)에 대한 유휴 기간들이 중첩(overlap)될 수 있는 일 실시예에 있어서, 일 실시예에 대한 인터페이스 컨트롤러(126)는 다음에 만료되는, 장치(134) 또는 장치(135)에 대한 임의의 대기 중(pending)인 유휴 기간에 대응하는 데이터를 PCPMC(122)로 송신하도록 연결될 수 있다.
일 실시예에서의 인터페이스 컨트롤러(128)는 다운스트림 장치(136)에 대한 유휴 기간에 대응하는 데이터를 수신하도록 연결될 수 있다. 일 실시예에서의 장치(136)에 대한 유휴 기간에 대응하는 데이터는 장치(136)로부터 다운스트림되는 장치(137) 또는 장치(138)에 대한 유휴 기간에 대응할 수 있다. 일 실시예에서의 인터페이스 컨트롤러(128)는 장치(136)에 대한 유휴 기간에 대응하는 데이터를 PCPMC(122)로 송신하도록 연결될 수 있다. 일 실시예에서의 인터페이스 컨트롤러(128)는 장치(136)에 대한 유휴 기간에 대응하는 수신된 데이터를 PCPMC(122)로 송신하도록 연결될 수 있다.
일 실시예에서의 장치(136)는 다운스트림 장치(137)에 대한 유휴 기간에 대응하는 데이터를 수신하도록 연결될 수 있고, 다운스트림 장치(138)에 대한 유휴 기간에 대응하는 데이터를 수신하도록 연결될 수 있다. 일 실시예에서의 장치(136)는 장치(137)에 대한 유휴 기간에 대응하는 데이터 및 장치(138)에 대한 유휴 기간에 대응하는 데이터를 인터페이스 컨트롤러(128)로 송신하도록 연결될 수 있다. 일 실시예에서의 장치(136)는 장치(137)에 대한 유휴 기간에 대응하는 수신된 데이터 및/또는 장치(138)에 대한 유휴 기간에 대응하는 수신된 데이터를 인터페이스 컨트롤러(128)로 송신하도록 연결될 수 있다. 장치(137 및/또는 138)에 대한 유휴 기간이 중첩될 수 있는 일 실시예에 있어서, 일 실시예에서의 장치(136)는 다음에 만료되는, 장치(137) 또는 장치(138)에 대한 임의의 대기 중인 유휴 기간에 대응하는 데이터를 인터페이스 컨트롤러(128)로 송신하도록 연결될 수 있다.
일 실시예에서의 하나 이상의 인터페이스 컨트롤러(124, 126 및 128)는 인터페이스 컨트롤러를 위해 및/또는 하나 이상의 장치로의 접속 또는 링크를 위해 전력 효율성을 향상시키는 데에 도움을 주기 위하여 전력 관리 컨트롤러를 포함할 수 있다. 일 실시예에서의 하나 이상의 인터페이스 컨트롤러(124, 126 및 128)는 장치에 대한 유휴 기간에 대응하는 데이터를 수신하고, 수신된 데이터에 적어도 부분적으로 기초하여, 이에 따라 대응하는 유휴 기간에 적어도 부분적으로 기초하여 전력을 관리할 수 있다. 일 실시예에서의 PCPMC(122)는 대응하는 인터페이스 컨트롤러가 유휴 기간에 적어도 부분적으로 기초하여 전력을 관리하는 방식에 적어도 부분적으로 기초하여, 장치에 대한 그 유휴 기간에 적어도 부분적으로 기초하여 전력을 간접적으로 관리할 수 있다.
일 실시예에서의 하나 이상의 인터페이스 컨트롤러(124, 126 및 128)는 다운 스트림 장치에 대한 유휴 기간에 적어도 부분적으로 기초하여 전력을 간접적으로 관리할 수 있다. 일례로서, 일 실시예에서의 장치(136)는 장치(137)에 대한 유휴 기간에 대응하는 데이터를 장치(137)로부터 수신하고, 수신된 데이터에 적어도 부분적으로 기초하여, 이에 따라 대응하는 유휴 기간에 적어도 부분적으로 기초하여 장치(136)에 대한 전력을 관리할 수 있다. 일 실시예에서의 인터페이스 컨트롤러(128)는 장치(136)가 그 유휴 기간에 적어도 부분적으로 기초하여 전력을 관리하는 방식에 적어도 부분적으로 기초하여, 그 유휴 기간에 적어도 부분적으로 기초하여 전력을 간접적으로 관리할 수 있다.
일 실시예에 따른 하나 이상의 PPMC(112)는 PCPMC(122)와 조화하여 기능하고, 또한, 다운스트림 장치에 대한 유휴 기간에 적어도 부분적으로 기초하여 전력을 관리한다. 일 실시예에 따른 PCPMC(122)는 장치에 대한 유휴 기간에 대응하는 데이터를 하나 이상의 PPMC(112)에 전송하여, 그러한 PPMC(들)(112)가 해당 유휴 기간에 적어도 부분적으로 기초하여 전력을 관리하도록 할 수 있다. 일 실시예에 따른 하나 이상의 PPMC(112)는 PCPMC(122)와 마찬가지로 유휴 기간에 적어도 부분적으로 기초하여 전력을 관리할 수 있다. 일 실시예에 따른 하나 이상의 PPMC(112)는 유휴 기간이 언제 만료될지를 확인하는 것을 돕기 위해 하나 이상의 타이머를 포함할 수 있다. 일 실시예에 따른 하나 이상의 PPMC(112)는, PCPMC(122)가 장치에 대한 유휴 기간에 적어도 부분적으로 기초하여 어떻게 전력을 관리하는지에 적어도 부분적으로 기초하여, 해당 유휴 기간에 적어도 부분적으로 기초하여 전력을 간접적으로 관리할 수 있다.
도 2는 하나 이상의 다운스트림 장치로부터의 유휴 기간 리포팅에 적어도 부분적으로 기초하여 전력을 관리하는 일 실시예에 따른 예시적인 흐름도(200)를 도시한다. 도 2에 도시된 바와 같이, 블럭(202)에서, 하나 이상의 다운스트림 장치에 대한 유휴 기간에 대응하는 데이터를 수신할 수 있다. 도 1을 참조한 일 실시예에 있어서는, 블럭(202)에서, 장치(136), 인터페이스 컨트롤러(124 126 및/또는 128), 및/또는 PCPMC(122)가 데이터를 수신할 수 있다. 블럭(204)에서, 수신된 데이터에 적어도 부분적으로 기초하여 전력을 관리할 수 있다. 도 1을 참조한 일 실시예에 있어서는, 블럭(204)에서, 장치(136), 인터페이스 컨트롤러(124, 126 및/또는 128) 및/또는 PCPMC(122)가 전력을 관리할 수 있다.
도 1에 도시된 바와 같이, 일 실시예에 따른 시스템(100)은 또한, 하나 이상의 입력 장치(140), 하나 이상의 디스플레이(150), 휘발성 메모리(160), 하나 이상의 비휘발성 메모리 및/또는 저장 장치(170), 및 하나 이상의 통신 인터페이스(180)를 구비할 수 있다.
일 실시예에 따른 프로세서(들)(110)는 휘발성 메모리(160)로의 인터페이스를 제공하기 위해 하나 이상의 메모리 컨트롤러를 포함할 수 있다. 휘발성 메모리(160)는 예를 들어, 시스템(100)에 대한 데이터 및/또는 명령어들을 로드 및 저장하는 데에 사용될 수 있다. 휘발성 메모리(160)는 예를 들어, 적합한 DRAM(dynamic random access memory)과 같은 임의의 적합한 휘발성 메모리를 포함할 수 있다. 일 실시예에 따른 프로세서(들)(110)는 PPMC(들)(112)를 이용하여 휘발성 메모리(160)를 위한 전력을 관리하는 것을 돕는다.
프로세서(들)(110)와 함께 거주하는 것으로 설명하였지만, 일 실시예에 따른 하나 이상의 메모리 컨트롤러는 플랫폼 컨트롤 로직(120)과 함께 거주할 수 있으며, 이로 인해 플랫폼 컨트롤 로직(120)은 휘발성 메모리(160)와 직접적으로 통신할 수 있게 된다.
일 실시예에 따른 플랫폼 컨트롤 로직(120)은 프로세서(들)(110)로의 및/또는 플랫폼 컨트롤 로직(120)과 통신하는 임의의 적합한 장치 또는 컴포넌트로의 임의의 적합한 통신 링크를 구비하기 위해, 인터페이스 컨트롤러(124, 126 및 128)를 포함하는 임의의 적합한 인터페이스 컨트롤러를 포함할 수 있다. 일 실시예에 따른 플랫폼 컨트롤 로직(120)은 PCPMC(122)를 이용하여 플랫폼 컨트롤 로직(120)과 통신하는 임의의 적합한 하나 이상의 장치 및/또는 컴포넌트를 위한 전력을 관리하는 것을 돕는다.
일 실시예에 따른 플랫폼 컨트롤 로직(120)은 디스플레이(들)(150)로의 인터페이스를 제공하기 위해 하나 이상의 그래픽 컨트롤러를 포함할 수 있다. 디스플레이(들)(150)는 예를 들어, CRT(cathode ray tube) 또는 LCD(liquid crystal display)와 같은 임의의 적합한 디스플레이를 포함할 수 있다. 일 실시예에 따른 하나 이상의 그래픽 컨트롤러는 대안적으로, 플랫폼 컨트롤 로직(120) 외부에 있을 수 있다.
일 실시예에 따른 플랫폼 컨트롤 로직(120)은 입력 장치(들)(140), 비휘발성 메모리 및/또는 저장 장치(들)(170), 및 통신 인터페이스(들)(180)로의 인터페이스를 제공하기 위해 하나 이상의 입/출력(I/O) 컨트롤러를 포함할 수 있다.
입력 장치(들)(140)는 키보드, 마우스 및/또는 임의의 다른 적합한 커서 컨트롤 장치와 같은 임의의 적합한 입력 장치(들)를 포함할 수 있다.
비휘발성 메모리 및/또는 저장 장치(들)(170)는 예를 들어, 데이터 및/또는 명령어들을 저장하는 데에 사용될 수 있다. 비휘발성 메모리 및/또는 저장 장치(들)(170)는 예를 들어 플래시 메모리와 같은 임의의 적합한 비휘발성 메모리를 포함할 수 있고/있거나, 예를 들어, 하나 이상의 HDD(hard disk drive), 하나 이상의 CD(compact disc) 드라이브 및/또는 하나 이상의 DVD(digital versatile disc) 드라이브와 같은 임의의 적합한 비휘발성 저장 장치(들)를 포함할 수 있다.
통신 인터페이스(들)(180)는 하나 이상의 네트워크를 통해 및/또는 임의의 다른 적합한 장치를 이용하여 통신하기 위해 시스템(100)에 인터페이스를 제공할 수 있다. 통신 인터페이스(들)(180)는 임의의 적합한 하드웨어 및/또는 펌웨어를 포함할 수 있다. 일 실시예에 따른 통신 인터페이스(들)(180)는 예를 들어, 네트워크 어댑터, 무선 네트워크 어댑터, 전화 모뎀 및/또는 무선 모뎀을 포함할 수 있다. 무선 통신에 있어서, 일 실시예에 따른 통신 인터페이스(들)(180)는 하나 이상의 안테나(182)를 사용할 수 있다.
일 실시예에 따른 다운스트림 장치(132, 134, 135, 136, 137 및 138)는 적합한 입력 장치(140), 적합한 비휘발성 메모리 또는 저장 장치(170), 적합한 통신 인터페이스(180) 또는 임의의 다른 적합한 I/O 장치와 같은(예시적인 것이며 제한적이지 않음) 플랫폼 컨트롤 로직(120)에 연결될 수 있는 임의의 적합한 장치일 수 있다. 다운스트림 장치의 예로는, 커서 컨트롤 장치, 저장 장치 드라이브, 저장 장치, 버스 에이전트, 브릿지 장치, 허브 장치, 네트워크 라우터 또는 스위치, 배터리 충전 장치, 프린터, 스캐너, 캠코더, 카메라, 미디어 플레이어, 셀룰러 전화, 스마트 폰, 모바일 인터넷 장치, 및 데스크톱, 노트북, 넷북 또는 기타 컴퓨터 시스템과 같은 컴퓨터 시스템이 있지만, 이것으로 제한되지 않는다. 장치(136)는 다운스트림 장치(137 및 138)와의 통신을 지원하는 임의의 적합한 장치일 수 있다. 장치(136)는 예를 들어, 버스 에이전트, 브릿지 장치 또는 허브 장치를 포함할 수 있다.
플랫폼 컨트롤 로직(120)과 함께 거주하는 것으로 설명하였지만, 일 실시예에 따른 인터페이스 컨트롤러들(124, 126 및 128) 중 하나 이상을 포함하는 플랫폼 컨트롤 로직(120)의 하나 이상의 컨트롤러는 하나 이상의 프로세서(110)와 거주할 수 있으며, 이로 인해 프로세서(110)는 하나 이상의 장치 또는 컴포넌트와 직접적으로 통신할 수 있게 된다. 일 실시예에 따른 인터페이스 컨트롤러들(124, 126 및 128) 중 하나 이상을 포함하는 플랫폼 컨트롤 로직(120)의 하나 이상의 컨트롤러는 단일의 다이 상에서 하나 이상의 프로세서(110)의 적어도 일부분과 통합될 수 있다. 일 실시예에 따른 인터페이스 컨트롤러들(124, 126 및 128) 중 하나 이상을 포함하는 플랫폼 컨트롤 로직(120)의 하나 이상의 컨트롤러는 하나 이상의 프로세서(110)와 패키징될 수 있다.
장치 유휴 기간 리포팅
도 3은 일 실시예에 따라, 하나 이상의 업스트림 장치가 유휴 기간에 적어도 부분적으로 기초하여 전력을 관리하도록 유휴 기간을 리포트할 수 있는 장치(300) 를 도시한다. 일 실시예에 따른 장치(300)는 예를 들어, 도 1의 다운스트림 장치(132, 134, 135 또는 136)에 대응할 수 있고, 시스템(100)이 유휴 기간에 적어도 부분적으로 기초하여 전력을 관리하도록 유휴 기간을 리포트할 수 있다. 일 실시예에 대한 장치(300)는 예를 들어, 도 1의 다운스트림 장치(137 또는 138)에 대응할 수 있고, 장치(136) 및/또는 시스템(100)이 유휴 기간에 적어도 부분적으로 기초하여 전력을 관리하도록 유휴 기간을 리포트할 수 있다.
도 3에 도시된 바와 같이, 일 실시예에 따른 장치(300)는 장치 컨트롤 로직(302), 인터페이스 컨트롤 로직(304) 및 유휴 기간 리포팅 로직(306)을 포함할 수 있다. 장치 컨트롤 로직(302), 인터페이스 컨트롤 로직(304) 및 유휴 기간 리포팅 로직(306)은 각각, 예를 들어, 임의의 적합한 하드웨어, 임의의 적합한 펌웨어를 수행하는 임의의 적합한 하드웨어, 임의의 적합한 소프트웨어를 수행하는 임의의 적합한 하드웨어, 또는 이러한 구현들의 임의의 적합한 조합을 이용하여 임의의 적합한 방식으로 구현될 수 있다. 일 실시예에 있어서, 임의의 이러한 펌웨어 및/또는 소프트웨어는 장치(300)의 임의의 적합한 컴퓨터 판독가능 저장 매체 또는 매체들 내에 저장될 수 있다. 일 실시예에 따른 장치(300)는 또한, 장치(300)에 대한 임의의 적합한 기능을 구현하기 위해 다른 적합한 로직, 회로 및/또는 하나 이상의 컴포넌트를 포함할 수 있다.
일 실시예에 따른 장치 컨트롤 로직(302)은 장치(300)의 기능을 컨트롤하는 것을 도울 수 있고, 하나 이상의 업스트림 장치의 하나 이상의 컴포넌트에 기능을 제공하기 위해 인터페이스 컨트롤 로직(304)을 이용하여 그러한 하나 이상의 업스 트림 장치와 통신할 수 있다.
인터페이스 컨트롤 로직(304)은 장치 컨트롤 로직(302)에 연결되어, 임의의 적합한 방식으로 장치(300)에 대한 데이터를 송신 및/또는 수신할 수 있다. 일 실시예에 따른 인터페이스 컨트롤 로직(304)은 임의의 적합한 PCI(Peripheral Component Interface) 또는 PCIe(PCI Express) 규정과 같은(예시적인 것이며 제한적이지 않음) 임의의 적합한 하나 이상의 표준 규정에 따를 수 있다.
일 실시예에 따른 유휴 기간 리포팅 로직(306)은 유휴 기간에 대응하는 데이터를 업스트림 장치에 송신할 수 있다. 일 실시예에 따른 유휴 기간 리포팅 로직(306)은 장치 컨트롤 로직(302)에 연결되어, 장치(300)의 적어도 일부분이 유휴가 될 것임을 확인하고 장치(300)에 대한 유휴 기간을 결정할 수 있다.
유휴 기간 리포팅 로직(306)은 장치(300)의 적어도 일부분이 유휴가 될 것임을 임의의 적합한 방식으로 확인할 수 있다. 일 실시예에 따른 유휴 기간 리포팅 로직(306)은 장치(300)의 적어도 일부분이 하나 이상의 업스트림 장치와 통신하지 않을 것임을 확인할 수 있다.
유휴 기간 리포팅 로직(306)은 임의의 적합한 방식으로 장치(300)에 대한 유휴 기간을 결정할 수 있다. 일 실시예에 따른 유휴 기간 리포팅 로직(306)은 장치(300)의 적어도 일부분이 유휴가 될 시간량을 결정할 수 있다. 일 실시예에 따른 유휴 기간 리포팅 로직(306)은 장치(300)의 적어도 일부분이 대략 진행하는 현재 시간으로부터 유휴가 될 시간량을 결정할 수 있다. 일 실시예에 따른 유휴 기간 리포팅 로직(306)은 장치(300)의 적어도 일부분이 업스트림 장치와 통신하지 않 을 시간량을 결정할 수 있다. 일 실시예에 따른 유휴 기간 리포팅 로직(306)은 장치(300)의 적어도 일부분이 유휴가 될 최소 시간량을 결정할 수 있다. 일 실시예에 따른 유휴 리포팅 로직(306)은 장치(300)의 적어도 일부분이 다음에 업스트림 장치와 통신할 시간량을 결정할 수 있다.
일 실시예에 따른 유휴 기간 리포팅 로직(306)은 장치(300)의 적어도 일부분이 유휴가 될 시간량을 임의의 적합한 하나 이상의 파라미터에 기초하여 계산할 수 있다. 일 실시예에 따른 유휴 기간 리포팅 로직(306)은 예를 들어, 장치(300)의 적어도 일부분이 유휴가 될 시간량을 임의의 적합한 하나 이상의 파라미터에 기초하여 룩업 테이블로부터 확인할 수 있다.
일 실시예에 따른 유휴 기간 리포팅 로직(306)은 인터페이스 컨트롤 로직(304)을 이용하여 임의의 적합한 방식으로 유휴 기간에 대응하는 데이터를 송신하기 위해 연결될 수 있다. 일 실시예에 따른 유휴 기간 리포팅 로직(306)은 장치(300)의 적어도 일부분이 유휴가 될 결정된 시간량에 대응하는 데이터를 송신할 수 있다. 일 실시예에 따른 유휴 기간 리포팅 로직(306)은 장치(300)의 적어도 일부분이 유휴가 될 시간량이 언제 결정되는지에 관한 유휴 기간에 대응하는 데이터를 송신할 수 있다. 일 실시예에 따른 유휴 기간 리포팅 로직(306)은 장치(300)의 적어도 일부분이 언제 유휴가 되는지에 관한 유휴 기간에 대응하는 데이터를 송신할 수 있다.
장치(300)의 적어도 일부분은 유휴 상태로, 그리고 유휴 상태로부터 계속해서 전환할 수 있기 때문에, 일 실시예에 따른 유휴 기간 리포팅 로직(306)은 유휴 기간에 대응하는 데이터를 계속해서 송신할 수 있다.
일례로, 일 실시예에 따른 장치 컨트롤 로직(302)은, 임의의 적합한 무선 링크를 포함한 임의의 적합한 통신 링크를 통해 다른 장치로부터의 데이터를 수신하기 위해 버퍼를 포함하여, 인터페이스 컨트롤 로직(304)을 이용하여 그 버퍼로부터 업스트림 장치로의 후속적인 전송을 할 수 있다. 일 실시예에 따른 유휴 기간 리포팅 로직(306)은, 버퍼가 채워지고 있으며 장치(300)가 아직 버퍼로부터 업스트림 장치로의 데이터 전송을 개시하기 위해 업스트림 장치와 통신하지 않을 것임을 확인할 수 있다. 일 실시예에 따른 유휴 기간 리포팅 로직(306)은 버퍼 용량 및 버퍼가 채워지는 레이트에 적어도 부분적으로 기초하여 장치(300)에 대한 유휴 기간을 결정할 수 있다. 일 실시예에 따른 결정된 유휴 기간은 장치 컨트롤 로직(302)이 버퍼로부터 업스트립 장치로의 데이터 전송을 언제 개시할지에 대응할 수 있다. 이어서, 일 실시예에 따른 유휴 기간 리포팅 로직(306)은 인터페이스 컨트롤 로직(304)을 이용하여 유휴 기간에 대응하는 데이터를 업스트림 장치에 송신할 수 있다.
장치(300)가 다수의 기능을 가질 수 있는 일 실시예에 있어서, 일 실시예에 따른 유휴 기간 리포팅 로직(306)은 장치(300)의 대응하는 기능들에 대한 유휴 기간들을 리포트할 수 있다.
도 4는 업스트림 장치에 유휴 기간을 리포트하는 장치(300)의 일 실시예에 따른 예시적인 흐름도(400)를 도시한다. 도 3에 도시된 바와 같이, 유휴 기간 리포팅 로직(306)은 블럭(402)에서 장치(300)의 적어도 일부분이 유휴가 될지의 여부 를 확인할 수 있다. 유휴가 될 것이라면, 블럭(404)에서 유휴 기간 리포팅 로직(306)은 장치(300)에 대한 유휴 기간을 결정할 수 있다. 블럭(406)에서, 유휴 기간 리포팅 로직(306)은 유휴 기간에 대응하는 데이터를 송신할 수 있다.
다수의 장치/기능에 대한 유휴 기간 리포팅
도 5는 일 실시예에 따라, 다수의 다운스트림 장치 또는 하나 이상의 다운스트림 장치의 다수의 기능에 대한 유휴 기간을 리포트하는 로직(500)을 도시한다. 로직(500)은 예를 들어, 하나 이상의 다운스트림 장치에 대한 다수의 오버래핑될 수 있는(potentially multiple overlapping) 유휴 기간들로부터 다음에 만료될 유휴 기간에 대응하는 데이터를 송신하는 데에 이용될 수 있다. 일 실시예에 따른 로직(500)은 예를 들어, 다음에 만료될 유휴 기간에 대응하는 데이터를 PCPMC(122)가 더 신속하게 확인하는 것을 돕기 위해, 하나 이상의 다운스트림 장치에 대한 유휴 기간들에 대응하는 데이터의 업스트림 송신을 우선순위화하는 것을 돕는 데에 이용될 수 있다.
일 실시예에 따른 로직(500)은 예를 들어, 장치(136)에 의해, 장치(137 및 138)에 대한 유휴 기간 다음에 만료될 유휴 기간에 대응하는 데이터를 송신하는 데에 이용될 수 있다. 일 실시예에 따른 로직(500)은 예를 들어, 인터페이스 컨트롤러(126)에 의해, 장치(134 및 135)에 대한 유휴 기간 다음에 만료될 유휴 기간에 대응하는 데이터를 송신하는 데에 이용될 수 있다. 일 실시예에 따른 로직(500)은 예를 들어 PCPMC(122)에 의해, 인터페이스 컨트롤러(124, 126 및 128)에 연결된 장치에 대한 유휴 기간 다음에 만료될 유휴 기간에 대응하는 데이터를 확인하는 데에 이용될 수 있다.
도 5에 도시된 바와 같이, 로직(500)은 다수의 다운스트림 장치 또는 하나 이상의 다운스트림 장치의 다수의 기능에 대한 유휴 기간에 대응하는 데이터를 수신하는 로직(502), 유휴 기간의 만료를 추적하는 로직(504), 및 다음에 만료될 유휴 기간에 대응하는 데이터를 송신하는 로직(506)을 포함한다. 로직(502, 504, 및 506)은 각각, 예를 들어 임의의 적절한 하드웨어, 임의의 적절한 펌웨어를 수행하는 임의의 적절한 하드웨어, 임의의 적절한 소프트웨어를 수행하는 임의의 적절한 하드웨어, 또는 이러한 구현들의 임의의 적절한 조합을 이용하여 임의의 적절한 방식으로 구현될 수 있다. 일 실시예에서, 임의의 이러한 펌웨어 및/또는 소프트웨어는 임의의 적절한 컴퓨터 판독가능 저장 매체 또는 매체들에 저장될 수 있다.
로직(502)은 임의의 적절한 방식으로 다수의 다운스트림 장치들 또는 하나 이상의 다운스트림 장치들의 다수의 기능들에 대한 유휴 기간들에 대응하는 데이터를 수신하도록 연결될 수 있다. 로직(504)은 임의의 적절한 방식으로 유휴 기간들의 만료를 추적하기 위해 그러한 데이터를 수신하도록 연결될 수 있다. 일 실시예에서의 로직(504)은, 도 5에 예시된 바와 같이, 예를 들어, 유휴 기간에 대응하는 데이터를 저장하기 위하여 각각이 각각의 장치, 장치의 기능, 또는 로직(500)으로부터 다운스트림의 컴포넌트(component downstream from logic 500)에 대응하는 메모리 위치들(512 및 514) 등의 메모리 위치들을 포함할 수 있다. 일 실시예에서의 로직(504)은 그러한 메모리 위치들 내의 데이터와 타이머(520)의 현재 값을 비교하여 메모리 위치 내의 데이터에 대응하는 유휴 기간이 만료되었는지 여부를 확인할 수 있다. 일 실시예에서의 로직(504)은 새로 수신된 데이터에 대응하는 유휴 기간에 타이머(520)의 현재 값을 더하고 결과 값에 대응하는 데이터를 대응하는 메모리 위치에 저장할 수 있다.
로직(504)에 대한 메모리 위치들은, 예를 들어, 레지스터들을 이용하는 것과 같이 임의의 적절한 방식으로 구현될 수 있다. 타이머(520)는, 예를 들어, 카운터를 이용하는 것과 같이 임의의 적절한 방식으로 구현될 수 있다.
로직(506)은 임의의 적절한 방식으로, 만료될 유휴 기간을 확인하고 그 유휴 기간에 대응하는 데이터를 송신하는 것을 돕도록 로직(504)에 연결될 수 있다. 일 실시예에서의 로직(506)은 로직(504)의 메모리 위치들 내의 대기중인 유휴 기간(pending idle duration)에 대응하는 임의의 데이터의 비교에 적어도 부분적으로 기초하여 다음에 만료될 유휴 기간을 확인할 수 있다. 일 실시예에서의 로직(506)은 로직(504)에 의해 확인되는 대로의 유휴 기간의 만료에 응답하여 다음에 만료될 유휴 기간에 대응하는 데이터를 송신할 수 있다. 일 실시예에서의 로직(506)은 유휴 기간에 대응하는 새로운 데이터의 수신에 응답하여 다음에 만료될 유휴 기간에 대응하는 데이터를 송신할 수 있다.
도 6은 다수의 다운스트림 장치들 또는 하나 이상의 다운스트림 장치들의 다수의 기능들에 대한 유휴 기간을 리포트하는 로직(500)의 일 실시예에 대한 예시적인 흐름도(600)를 예시한다. 도 6에 예시된 바와 같이, 로직(502) 및/또는 로직(504)은 블럭(602)에서 다운스트림 장치에 대한 유휴 기간에 대응하는 데이터가 수신되었는지 여부를 확인할 수 있다.
만일 수신되었다면, 로직(504)은 블럭(606)에서 그 다운스트림 장치에 대한 유휴 기간의 만료를 추적하기 위하여 데이터를 저장할 수 있다. 블럭(608)에서, 일 실시예에서의 로직(506) 및/또는 로직(504)은 다음에 만료될 유휴 기간을 확인하고 그 유휴 기간이 이미 리포트되었는지 여부를 확인할 수 있다. 만일 그렇지 않다면, 로직(506)은 블럭(610)에서 그 유휴 기간에 대응하는 데이터를 송신할 수 있다. 이 방식으로, 어떠한 다른 대기중인 유휴 기간보다 더 빨리 만료될 새로운 유휴 기간이 적시에 리포트될 수 있다.
블럭(602)에서 다운스트림 장치에 대한 유휴 기간에 대응하는 데이터가 수신되지 않았다면, 로직(504)은 블럭(604)에서 다운스트림 장치에 대한 유휴 기간이 만료된 것이 있는지 여부를 확인할 수 있다. 만일 그렇다면, 블럭(610)에서, 로직(506) 및/또는 로직(504)은 다음에 만료될 임의의 다른 대기중인 유휴 기간을 확인할 수 있으며, 로직(506)은 그 유휴 기간에 대응하는 데이터를 송신할 수 있다. 로직(504)이 어떠한 대기중인 유휴 기간들도 갖지 않는 일 실시예에서, 일 실시예에서의 로직(506)은 미리 정해진 최대값의 유휴 기간에 대응하는 데이터를 송신할 수 있다.
일 실시에에서의 로직(500)은 이 방식으로 블럭들(602-610)에서의 동작들을 수행하는 것을 계속할 수 있다.
도 7-16은 세 개의 다운스트림 장치들에 대한 유휴 기간들에 대응하는 데이터의 수신에 따라 열 개의 시간의 인스턴스들(ten instances of time)에서 로직(500)의 일 실시예에서의 상태들의 예를 도시한다.
도 7에 예시된 바와 같이, 일 실시예에서의 로직(500)은 제1, 제2, 및 제3 다운스트림 장치에 대한 유휴 기간들에 대응하는 세 개의 메모리 위치들(512, 513, 및 514)을 가질 수 있다. 로직(500)에서의 제1 시간에, 타이머(520)는 1000의 값을 가질 수 있다.
도 8에 예시된 바와 같이, 로직(500)에서의 제2 시간에, 타이머(520)는 1050의 값을 가질 수 있다. 로직(500)은 제1 다운스트림 장치에 대한 유휴 기간에 대응하는 데이터(100)를 수신하고 타이머(520)의 현재 값(1050)과 그 유휴 기간(100)의 합에 대응하는 데이터(1150)를 메모리 위치(512)에 저장할 수 있다. 로직(500)에 대하여 이 새로운 유휴 기간은 다음에 만료될 것이므로, 로직(500)은 그 유휴 기간에 대응하는 데이터를 송신할 수 있다.
도 9에 예시된 바와 같이, 로직(500)에 대한 제3 시간에, 타이머(520)는 1100의 값을 가질 수 있다. 로직(500)은 제2 다운스트림 장치에 대한 유휴 기간에 대응하는 데이터(500)를 수신하고 타이머(520)의 현재 값(1100)과 그 유휴 기간(500)의 합에 대응하는 데이터(1600)를 메모리 위치(513)에 저장할 수 있다. 로직(500)에 대하여 이 새로운 유휴 기간은 다음에 만료되지 않을 것이므로, 로직(500)은 유휴 기간에 대응하는 어떠한 데이터도 송신하지 않을 수 있다.
도 10에 예시된 바와 같이, 로직(500)에 대한 제4 시간에, 타이머(520)는 1150의 값을 가질 수 있다. 메모리 위치(512)의 유휴 기간이 이때 만료되기 때문에, 로직(500)은 메모리 위치(513)의 유휴 기간에 대응하는 데이터를, 그 유휴 기간이 다음에 만료되므로, 송신할 수 있다. 로직(500)은 그 유휴 기간에 대한 잔여 시간인 유휴 기간(450)에 대응하는 데이터를 송신할 수 있다.
도 11에 예시된 바와 같이, 로직(500)에 대한 제5 시간에, 타이머(520)는 1200의 값을 가질 수 있다. 로직(500)은 제1 다운스트림 장치에 대한 유휴 기간에 대응하는 데이터(100)를 수신하고 타이머(520)의 현재 값(1200)과 그 유휴 기간(100)의 합에 대응하는 데이터(1300)를 메모리 위치(512)에 저장할 수 있다. 로직(500)에 대하여 이 새로운 유휴 기간은 메모리 위치(513)에 대한 유휴 기간보다 더 빨리 만료되므로 다음에 만료될 것이기 때문에, 로직(500)은 새로운 유휴 기간에 대응하는 데이터를 송신할 수 있다.
도 12에 예시된 바와 같이, 로직(500)에 대한 제6 시간에, 타이머(520)는 1250의 값을 가질 수 있다. 로직(500)은 제3 다운스트림 장치에 대한 유휴 기간에 대응하는 데이터(1000)를 수신하고 타이머(520)의 현재 값(1250)과 그 유휴 기간(1000)의 합에 대응하는 데이터(2250)를 메모리 위치(514)에 저장할 수 있다. 로직(500)에 대하여 이 새로운 유휴 기간은 다음에 만료되지 않을 것이므로, 로직(500)은 유휴 기간에 대응하는 어떠한 데이터도 송신하지 않을 수 있다.
도 13에 예시된 바와 같이, 로직(500)에 대한 제7 시간에, 타이머(520)는 1300의 값을 가질 수 있다. 메모리 위치(512)의 유휴 기간이 이때 만료되기 때문에, 로직(500)은 메모리 위치(513)의 유휴 기간에 대응하는 데이터를, 그 유휴 기간이 메모리 위치(514)의 유휴 기간보다 더 빨리 만료되며 따라서 다음에 만료되므로, 송신할 수 있다. 로직(500)은 그 유휴 기간의 잔여 시간인 유휴 기간에 대응하는 데이터(300)를 송신할 수 있다.
도 14에 에시된 바와 같이, 로직(500)에 대한 제8 시간에, 타이머(520)는 1600의 값을 가질 수 있다. 메모리 위치(513)의 유휴 기간이 이때 만료되기 때문에, 로직(500)은 메모리 위치(514)의 유휴 기간에 대응하는 데이터를, 그 유휴 기간이 다음에 만료되므로, 송신할 수 있다. 로직(500)은 그 유휴 기간에 대한 잔여 시간인 유휴 기간에 대응하는 데이터(650)를 송신할 수 있다.
도 15에 예시된 바와 같이, 로직(500)에 대한 제9 시간에, 타이머(520)는 1700의 값을 가질 수 있다. 로직(500)은 제1 다운스트림 장치에 대한 유휴 기간에 대응하는 데이터(100)를 수신하고 타이머(520)의 현재 값(1700)과 그 유휴 기간(100)의 합에 대응하는 데이터(1800)를 메모리 위치(512)에 저장할 수 있다. 로직(500)에 대하여 이 새로운 유휴 기간은 메모리 위치(514)에 대한 유휴 기간보다 더 빨리 만료되며 따라서 다음에 만료될 것이므로, 로직(500)은 새로운 유휴 기간에 대응하는 데이터를 송신할 수 있다.
도 16에 예시된 바와 같이, 로직(500)에 대한 제10 시간에, 타이머(520)는 1800의 값을 가질 수 있다. 메모리 위치(512)의 유휴 기간은 이때 만료되기 때문에, 로직(500)은 메모리 위치(514)의 유휴 기간에 대응하는 데이터를, 그 유휴 기간이 다음에 만료되므로, 송신할 수 있다. 로직(500)은 그 유휴 기간에 대한 잔여 시간인 유휴 기간에 대응하는 데이터(450)를 송신할 수 있다.
도 17은 다수의 다운스트림 장치들 또는 하나 이상의 다운스트림 장치들의 다수의 기능들에 대한 유휴 기간을 리포트하는 로직(500)의 다른 실시예를 예시한다. 도 17에 예시된 바와 같이, 로직(504)은 예를 들어 각각이 각각의 장치, 장치 의 기능, 또는 로직(500)으로부터 다운스트림의 컴포넌트에 대응하는 타이머(1712 및 1714) 등의 타이머들을 포함할 수 있다. 로직(504)은 그 유휴 기간의 만료를 추적하기 위하여 유휴 기간에 대응하는 데이터를 대응하는 타이머에 저장할 수 있다. 일 실시예에서, 로직(504)에 대한 타이머들은 대응하는 유휴 기간이 언제 만료되는지 확인하는 것을 돕고 다음에 만료될 유휴 기간을 확인하는 것을 돕도록 카운트다운될 수 있다. 로직(504)에 대한 타이머들은 예를 들어 카운터를 이용하는 것 등의 임의의 적절한 방식으로 구현될 수 있다.
이전의 설명에서, 예시적인 실시예들이 설명되었다. 첨부의 청구범위로부터 벗어나지 않고 그러한 실시에들에 대하여 다양한 변형들 및 변경들이 이루어질 수 있다. 따라서, 설명 및 도면들은 제한적 의미가 아니라 예시적인 의미로 생각되어야 한다.
도 1은, 일 실시예에 있어서, 하나 이상의 다운스트림 장치로부터의 유휴 기간 리포팅에 적어도 부분적으로 기초하여 전력을 관리하기 위한 예시적인 시스템의 블록도.
도 2는, 일 실시예에 있어서, 하나 이상의 다운스트림 장치로부터의 유휴 기간 리포팅에 적어도 부분적으로 기초하여 전력을 관리하기 위한 예시적인 흐름도.
도 3은, 일 실시예에 있어서, 유휴 기간을 리포팅하기 위한 다운스트림 장치의 블록도.
도 4는, 일 실시예에 있어서, 유휴 기간을 리포팅하기 위한 다운스트림 장치에 대한 예시적인 흐름도.
도 5는, 일 실시예에 있어서, 다수의 다운스트림 장치/기능에 대한 유휴 기간을 리포팅하기 위한 로직의 블록도.
도 6은, 일 실시예에 있어서, 다수의 다운스트림 장치/기능에 대한 유휴 기간을 리포팅하기 위한 예시적인 흐름도.
도 7은, 일 실시예에 있어서, 제1 시간에서의 유휴 기간 리포팅 로직에 대한 예시적인 상태를 나타내는 도면.
도 8은, 일 실시예에 있어서, 제2 시간에서의 유휴 기간 리포팅 로직에 대한 예시적인 상태를 나타내는 도면.
도 9는, 일 실시예에 있어서, 제3 시간에서의 유휴 기간 리포팅 로직에 대한 예시적인 상태를 나타내는 도면.
도 10은, 일 실시예에 있어서, 제4 시간에서의 유휴 기간 리포팅 로직에 대한 예시적인 상태를 나타내는 도면.
도 11은, 일 실시예에 있어서, 제5 시간에서의 유휴 기간 리포팅 로직에 대한 예시적인 상태를 나타내는 도면.
도 12는, 일 실시예에 있어서, 제6 시간에서의 유휴 기간 리포팅 로직에 대한 예시적인 상태를 나타내는 도면.
도 13은, 일 실시예에 있어서, 제7 시간에서의 유휴 기간 리포팅 로직에 대한 예시적인 상태를 나타내는 도면.
도 14는, 일 실시예에 있어서, 제8 시간에서의 유휴 기간 리포팅 로직에 대한 예시적인 상태를 나타내는 도면.
도 15는, 일 실시예에 있어서, 제9 시간에서의 유휴 기간 리포팅 로직에 대한 예시적인 상태를 나타내는 도면.
도 16은, 일 실시예에 있어서, 제10 시간에서의 유휴 기간 리포팅 로직에 대한 예시적인 상태를 나타내는 도면.
도 17은, 일 실시예에 있어서, 다수의 다운스트림 장치/기능에 대한 유휴 기간을 리포팅하기 위한 로직의 블록도.
<도면의 주요 부분에 대한 부호의 설명>
110: 프로세서(들)
112: PPMC
120: 플랫폼 제어 로직
122: PCPMC
124, 126, 128: 인터페이스 컨트롤러
135: 다운스트림 장치
140: 입력 장치
150: 디스플레이
160: 휘발성 메모리
170: 저장 장치
180: 통신 인터페이스
182: 안테나

Claims (23)

  1. 하나 이상의 다운스트림 장치들에 대한 유휴 기간에 대응하는 데이터를 적어도 하나의 다운스트림 장치로부터 수신하는 제1 로직; 및
    상기 수신된 데이터에 기초하여 전력을 관리하는 제2 로직
    을 포함하고,
    상기 수신된 데이터는 하나 이상의 다운스트림 장치들에 대한 유휴 기간의 시간의 양에 대응하는 장치.
  2. 제1항에 있어서,
    상기 제2 로직은 유휴 기간에 대응하는 데이터의 수신에 응답하여 저전력 상태로 전환하는 장치.
  3. 제1항에 있어서,
    상기 제2 로직은 유휴 기간이 만료될 때에 기초하여 저전력 상태로부터 정상 동작 상태로 전환하는 장치.
  4. 제1항에 있어서,
    상기 제1 로직은 다수의 다운스트림 장치들에 대한 유휴 기간에 대응하는 데이터를 수신하고, 다음에 만료될 유휴 기간에 대응하는 데이터를 송신하는 장치.
  5. 하나 이상의 다운스트림 장치들에 대한 유휴 기간에 대응하는 데이터를 적어도 하나의 다운스트림 장치로부터 수신하는 단계; 및
    상기 수신된 데이터에 기초하여 전력을 관리하는 단계
    를 포함하고,
    상기 수신된 데이터는 하나 이상의 다운스트림 장치들에 대한 유휴 기간의 시간의 양에 대응하는 방법.
  6. 제5항에 있어서,
    상기 관리하는 단계는 유휴 기간에 대응하는 데이터의 수신에 응답하여 저전력 상태로 전환하는 단계를 포함하는 방법.
  7. 제5항에 있어서,
    상기 관리하는 단계는 유휴 기간이 만료될 때에 기초하여 저전력 상태로부터 정상 동작 상태로 전환하는 단계를 포함하는 방법.
  8. 제5항에 있어서,
    상기 수신하는 단계는 다수의 다운스트림 장치들에 대한 유휴 기간에 대응하는 데이터를 수신하는 단계를 포함하고,
    상기 방법은 다음에 만료될 유휴 기간에 대응하는 데이터를 송신하는 단계를 포함하는 방법.
  9. 다수의 다운스트림 장치들에 대한 유휴 기간에 대응하는 데이터를 적어도 하나의 다운스트림 장치로부터 수신하는 로직 - 상기 수신된 데이터는 다수의 다운스트림 장치들에 대한 유휴 기간의 시간의 양에 대응함 -;
    유휴 기간들의 만료를 추적하는 로직; 및
    다음에 만료될 유휴 기간에 기초하여 전력을 관리하기 위해 다음에 만료될 유휴 기간에 대응하는 데이터를 송신하는 로직
    포함하는 장치.
  10. 제9항에 있어서,
    유휴 기간들의 만료를 추적하는 상기 로직은 유휴 기간들에 대응하는 데이터를 타이머 값과 비교하는 장치.
  11. 제9항에 있어서,
    유휴 기간들의 만료를 추적하는 상기 로직은 유휴 기간들에 대응하는 데이터를 대응하는 타이머들에 저장하는 장치.
  12. 제9항에 있어서,
    데이터를 송신하는 상기 로직은 유휴 기간의 만료에 응답하여 데이터를 송신하는 장치.
  13. 제9항에 있어서,
    데이터를 수신하는 상기 로직은 다수의 다운스트림 장치들로부터 유휴 기간에 대응하는 데이터를 수신하는 장치.
  14. 다수의 다운스트림 장치들에 대한 유휴 기간에 대응하는 데이터를 적어도 하나의 다운스트림 장치로부터 수신하는 단계 - 상기 수신된 데이터는 다수의 다운스트림 장치들에 대한 유휴 기간의 시간의 양에 대응함 -;
    유휴 기간들의 만료를 추적하는 단계; 및
    다음에 만료될 유휴 기간에 기초하여 전력을 관리하기 위해 다음에 만료될 유휴 기간에 대응하는 데이터를 송신하는 단계
    를 포함하는 방법.
  15. 제14항에 있어서,
    상기 추적하는 단계는 유휴 기간들에 대응하는 데이터를 타이머 값과 비교하는 단계를 포함하는 방법.
  16. 제14항에 있어서,
    상기 추적하는 단계는 유휴 기간들에 대응하는 데이터를 대응하는 타이머들에 저장하는 단계를 포함하는 방법.
  17. 제14항에 있어서,
    상기 송신하는 단계는 유휴 기간의 만료에 응답하여 데이터를 송신하는 단계를 포함하는 방법.
  18. 장치의 기능을 컨트롤하는 제1 로직; 및
    유휴 기간에 기초하여 전력을 관리하기 위해 하나 이상의 업스트림 장치들에 대한 유휴 기간에 대응하는 데이터를 업스트림 장치에 송신하는 제2 로직 - 상기 송신된 데이터는 유휴 기간의 시간의 양에 대응함 -
    을 포함하는 장치.
  19. 제18항에 있어서,
    상기 제2 로직은 상기 장치의 적어도 일부가 유휴 상태로 될지 여부를 확인하고 상기 장치의 유휴 기간을 결정하는 장치.
  20. 제19항에 있어서,
    상기 제2 로직은 상기 장치의 적어도 일부가 업스트림 장치와 통신할지 여부를 확인하는 장치.
  21. 장치의 기능을 컨트롤하는 단계; 및
    유휴 기간에 기초하여 전력을 관리하기 위해 하나 이상의 업스트림 장치들에 대한 유휴 기간에 대응하는 데이터를 업스트림 장치에 송신하는 단계 - 상기 송신된 데이터는 유휴 기간의 시간의 양에 대응함 -
    를 포함하는 방법.
  22. 제21항에 있어서,
    상기 장치의 적어도 일부가 유휴 상태로 될지 여부를 확인하는 단계 및 상기 장치의 유휴 기간을 결정하는 단계를 포함하는 방법.
  23. 제22항에 있어서,
    상기 확인하는 단계는 상기 장치의 적어도 일부가 업스트림 장치와 통신할지 여부를 확인하는 단계를 포함하는 방법.
KR1020090131316A 2008-12-31 2009-12-24 전력 관리를 위한 유휴 기간 리포팅 KR101158204B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/347,573 US8607075B2 (en) 2008-12-31 2008-12-31 Idle duration reporting for power management
US12/347,573 2008-12-31

Publications (2)

Publication Number Publication Date
KR20100080409A KR20100080409A (ko) 2010-07-08
KR101158204B1 true KR101158204B1 (ko) 2012-06-19

Family

ID=42286367

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090131316A KR101158204B1 (ko) 2008-12-31 2009-12-24 전력 관리를 위한 유휴 기간 리포팅

Country Status (6)

Country Link
US (2) US8607075B2 (ko)
JP (2) JP2010165349A (ko)
KR (1) KR101158204B1 (ko)
CN (1) CN101963837B (ko)
DE (1) DE102009060267A1 (ko)
TW (1) TWI451258B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9176570B2 (en) 2012-12-29 2015-11-03 Intel Corporation System and method for providing universal serial bus link power management policies in a processor environment
US9244521B2 (en) 2012-12-26 2016-01-26 Intel Corporation Supporting runtime D3 and buffer flush and fill for a peripheral component interconnect device

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8176341B2 (en) 2008-03-31 2012-05-08 Intel Corporation Platform power management based on latency guidance
US8255713B2 (en) 2008-06-26 2012-08-28 Intel Corporation Management of link states using plateform and device latencies
US8607075B2 (en) * 2008-12-31 2013-12-10 Intel Corporation Idle duration reporting for power management
US8601296B2 (en) 2008-12-31 2013-12-03 Intel Corporation Downstream device service latency reporting for power management
US9235251B2 (en) * 2010-01-11 2016-01-12 Qualcomm Incorporated Dynamic low power mode implementation for computing devices
US8504855B2 (en) * 2010-01-11 2013-08-06 Qualcomm Incorporated Domain specific language, compiler and JIT for dynamic power management
JP2011248734A (ja) * 2010-05-28 2011-12-08 Oki Data Corp 電子装置及び電子システム
US8407504B2 (en) * 2010-06-30 2013-03-26 Intel Corporation Systems and methods for implementing reduced power states
US9025194B2 (en) 2010-12-01 2015-05-05 Canon Kabushiki Kaisha Data transmission apparatus for transferring data to an output device for outputting data, printer, information processing apparatus, and control method thereof
JP2012118821A (ja) * 2010-12-01 2012-06-21 Canon Inc データ転送装置、プリンタ、制御方法
TWI493332B (zh) 2011-11-29 2015-07-21 Intel Corp 用於電力管理的方法與設備及其平台與電腦可讀取媒體
US9311145B2 (en) * 2012-06-29 2016-04-12 Intel Corporation Using platform idle duration information to notify platform devices of upcoming active periods
US9015510B2 (en) * 2012-06-29 2015-04-21 Intel Corporation Optimizing energy efficiency using device idle duration information and latency tolerance based on a pre-wake configuration of a platform associated to the device
KR101707087B1 (ko) * 2013-06-28 2017-02-15 인텔 코포레이션 멀티컴포넌트 플랫폼에서의 활동을 관리하기 위한 기술 및 시스템
US9541987B2 (en) * 2013-06-28 2017-01-10 Intel Corporation Generic host-based controller latency method and appartus
US9696785B2 (en) 2013-12-28 2017-07-04 Intel Corporation Electronic device having a controller to enter a low power mode
KR102149679B1 (ko) 2014-02-13 2020-08-31 삼성전자주식회사 데이터 저장 장치, 그 동작 방법, 및 이를 포함하는 데이터 처리 시스템
KR102252617B1 (ko) * 2014-02-24 2021-05-17 삼성전자 주식회사 데이터 전송 방법 및 이를 구현하는 장치
WO2022126578A1 (en) * 2020-12-18 2022-06-23 Micron Technology, Inc. Dynamic interval for memory device to enter low power state

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050065394A (ko) * 2003-12-24 2005-06-29 텍사스 인스트루먼츠 인코포레이티드 모바일 장치에서의 메모리 전류 누설을 줄이기 위한 방법및 장치
KR20060127110A (ko) * 2003-12-30 2006-12-11 인텔 코오퍼레이션 활성 전원 관리 상태로부터의 탈출 대기 시간의 최적화
KR20070112660A (ko) * 2006-05-22 2007-11-27 엘지전자 주식회사 전원관리장치 및 그 방법
KR20090069618A (ko) * 2007-12-26 2009-07-01 엘지전자 주식회사 전원관리 제어 장치 및 방법

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002082743A (ja) * 2000-09-06 2002-03-22 Casio Comput Co Ltd 電子機器及び電子機器制御プログラムを記憶した記憶媒体
US7062303B2 (en) * 2001-07-05 2006-06-13 Intel Corporation Synchronizing power conservation modes
US6965763B2 (en) * 2002-02-11 2005-11-15 Motorola, Inc. Event coordination in an electronic device to reduce current drain
US7564810B2 (en) * 2002-05-08 2009-07-21 Microsoft Corporation Method and system for managing power consumption of a network interface module in a wireless computing device
JP2004118746A (ja) * 2002-09-27 2004-04-15 Toshiba Corp 電子機器および記憶装置の起動制御方法
JP2004320153A (ja) * 2003-04-11 2004-11-11 Sony Corp 無線通信システム及びその電力制御方法
JP2005157799A (ja) * 2003-11-26 2005-06-16 Sony Corp 情報処理方法、情報処理システム、および情報処理装置
JP4316399B2 (ja) 2004-02-18 2009-08-19 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラム、記録媒体、制御方法、及び情報処理装置
US7552226B2 (en) * 2004-04-08 2009-06-23 International Business Machines Corporation Detecting a timeout of elements in an element processing system
US7386747B2 (en) * 2005-05-10 2008-06-10 Qualcomm Incorporated Method and system for reducing power consumption of a programmable processor
US7493228B2 (en) 2005-06-23 2009-02-17 Intel Corporation Method and system for deterministic throttling for thermal management
US7430673B2 (en) 2005-06-30 2008-09-30 Intel Corporation Power management system for computing platform
TWI297428B (en) * 2005-11-24 2008-06-01 Via Tech Inc Computer system and power management method thereof
US7752473B1 (en) 2006-03-20 2010-07-06 Intel Corporation Providing a deterministic idle time window for an idle state of a device
JP2007316782A (ja) * 2006-05-24 2007-12-06 Fujitsu Ltd 電源連動制御機能を有するホストコンピュータ、ストレージ装置、ホストコンピュータの電源連動制御方法、ストレージ装置の電源連動制御方法。
TWI326817B (en) * 2006-07-07 2010-07-01 Via Tech Inc A power saving method and a system thereof applied to a cpu
US7716506B1 (en) * 2006-12-14 2010-05-11 Nvidia Corporation Apparatus, method, and system for dynamically selecting power down level
JP2008197948A (ja) * 2007-02-14 2008-08-28 Seiko Epson Corp 情報処理装置、情報処理システム、及び情報処理装置の制御方法
US7984314B2 (en) 2007-05-14 2011-07-19 Intel Corporation Power management of low power link states
US7864720B2 (en) 2007-06-01 2011-01-04 Intel Corporation Power management for wireless devices
CN101067758B (zh) * 2007-06-14 2010-05-19 华南理工大学 一种嵌入式系统的能耗管理方法
US8112646B2 (en) * 2007-09-17 2012-02-07 Intel Corporation Buffering techniques for power management
US8095814B2 (en) * 2007-09-26 2012-01-10 International Business Machines Corporation Computing device power management
CN101159509B (zh) 2007-11-07 2011-04-27 华为技术有限公司 一种功率管理的方法、系统和设备
US20090172434A1 (en) 2007-12-31 2009-07-02 Kwa Seh W Latency based platform coordination
US8176341B2 (en) 2008-03-31 2012-05-08 Intel Corporation Platform power management based on latency guidance
US8255713B2 (en) 2008-06-26 2012-08-28 Intel Corporation Management of link states using plateform and device latencies
US8601296B2 (en) 2008-12-31 2013-12-03 Intel Corporation Downstream device service latency reporting for power management
US8607075B2 (en) * 2008-12-31 2013-12-10 Intel Corporation Idle duration reporting for power management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050065394A (ko) * 2003-12-24 2005-06-29 텍사스 인스트루먼츠 인코포레이티드 모바일 장치에서의 메모리 전류 누설을 줄이기 위한 방법및 장치
KR20060127110A (ko) * 2003-12-30 2006-12-11 인텔 코오퍼레이션 활성 전원 관리 상태로부터의 탈출 대기 시간의 최적화
KR20070112660A (ko) * 2006-05-22 2007-11-27 엘지전자 주식회사 전원관리장치 및 그 방법
KR20090069618A (ko) * 2007-12-26 2009-07-01 엘지전자 주식회사 전원관리 제어 장치 및 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9244521B2 (en) 2012-12-26 2016-01-26 Intel Corporation Supporting runtime D3 and buffer flush and fill for a peripheral component interconnect device
US9746910B2 (en) 2012-12-26 2017-08-29 Intel Corporation Supporting runtime D3 and buffer flush and fill for a peripheral component interconnect device
US9176570B2 (en) 2012-12-29 2015-11-03 Intel Corporation System and method for providing universal serial bus link power management policies in a processor environment

Also Published As

Publication number Publication date
JP5661874B2 (ja) 2015-01-28
CN101963837B (zh) 2014-10-29
US9459684B2 (en) 2016-10-04
TW201040728A (en) 2010-11-16
DE102009060267A1 (de) 2010-08-05
JP2013257886A (ja) 2013-12-26
TWI451258B (zh) 2014-09-01
US8607075B2 (en) 2013-12-10
JP2010165349A (ja) 2010-07-29
KR20100080409A (ko) 2010-07-08
US20140101470A1 (en) 2014-04-10
CN101963837A (zh) 2011-02-02
US20100169685A1 (en) 2010-07-01

Similar Documents

Publication Publication Date Title
KR101158204B1 (ko) 전력 관리를 위한 유휴 기간 리포팅
US10182398B2 (en) Downstream device service latency reporting for power management
US8245062B1 (en) Postponing suspend
US8255713B2 (en) Management of link states using plateform and device latencies
US7966506B2 (en) Saving power in a computer system
US8566628B2 (en) North-bridge to south-bridge protocol for placing processor in low power state
US20180150125A1 (en) Wifi memory power minimization
EP3190478A1 (en) Method, apparatus and system to transition system power state of a computer platform
JP2009530709A5 (ko)
TW201415210A (zh) 單晶片系統及用於其之方法
US8868950B2 (en) Reliability-aware disk power management
CN103076868B (zh) 电源管理方法及应用该方法的电子系统
US9552033B2 (en) Latency-based power mode units for controlling power modes of processor cores, and related methods and systems
CN102204165A (zh) 控制备用设备的方法、主用设备和备用设备

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160527

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170601

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180529

Year of fee payment: 7