KR20050117788A - 중앙 처리 장치의 아이들 상태에서의 시스템 전력 소모절감을 위한 방법 및 그 방법을 적용한 모바일 장치 - Google Patents

중앙 처리 장치의 아이들 상태에서의 시스템 전력 소모절감을 위한 방법 및 그 방법을 적용한 모바일 장치 Download PDF

Info

Publication number
KR20050117788A
KR20050117788A KR1020040043009A KR20040043009A KR20050117788A KR 20050117788 A KR20050117788 A KR 20050117788A KR 1020040043009 A KR1020040043009 A KR 1020040043009A KR 20040043009 A KR20040043009 A KR 20040043009A KR 20050117788 A KR20050117788 A KR 20050117788A
Authority
KR
South Korea
Prior art keywords
cpu
clock
clock frequency
system bus
main system
Prior art date
Application number
KR1020040043009A
Other languages
English (en)
Other versions
KR100716730B1 (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 삼성전자주식회사
Priority to KR1020040043009A priority Critical patent/KR100716730B1/ko
Priority to US11/132,127 priority patent/US7500124B2/en
Publication of KR20050117788A publication Critical patent/KR20050117788A/ko
Application granted granted Critical
Publication of KR100716730B1 publication Critical patent/KR100716730B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators

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

한정된 배터리 용량하에서 전력 소모량을 최소화시키는 것이 중요한 시스템, 특히 모바일 플랫폼 등에서 전력의 절감을 위한 방법이 개시된다. CPU, 메인 시스템 버스, 보조 버스와 디스플레이 장치 등에 시스템 클록을 소정의 분주율로 분주하여 제공하는 방식으로 동작하는 시스템에서, 일반적으로 가장 많은 전력을 소모하는 장치는 CPU이다. 특히 CPU의 동작 중 많은 시간 비율을 차지하는 IDLE 상태에서의 모바일 장치의 총 전력소모를 최소화시키기 위해서 본 발명은 메인 시스템 버스클록을 주변기기 버스 클록으로 감소시키는 단계와 CPU의 클록을 메인 시스템 버스의 클록으로 감소시키는 단계를 거치고 최종적으로 CPU의 동작 전압을 떨어뜨리는 단계를 포함하는 방식으로 전력 소모의 절감을 하는 방법을 소개한다. 나아가서 이 단계들이 디스플레이 장치의 수직 동기 신호에 동기되어 발생되는 인터럽트 서비스 루틴에서 이루어지도록 하여 전력 소모 절감을 하면서도 자연스러운 디스플레이 및 시스템 동작이 가능하도록 하는 방법을 소개한다.

Description

중앙 처리 장치의 아이들 상태에서의 시스템 전력 소모 절감을 위한 방법 및 그 방법을 적용한 모바일 장치{METHOD FOR DECREASING THE POWER CONSUMPTION IN CPU IDLE-STATE AND MOBILE DEVICE USING THE SAME}
본 발명은 PDA등의 모바일(mobile) 장치들에서의 전력 소모 절감 방법에 대한 기술에 관한 것이다. 더 자세하게는 CPU와 CPU가 연결된 메인 시스템 버스(main system bus), 일반적으로는 상대적으로 저속으로 동작하는 주변장치들이 연결되는 보조 버스(secondary bus 또는 peripheral bus) 및 상기 버스에 연결된 디스플레이 장치들로 구성된 모바일 장치에 있어서, CPU가 아이들(idle) 상태에서 시스템이 소모하는 전력을 최소화하기 위한 방법과 그 방법이 적용된 모바일 장치에 관한 발명이다.
PDA등의 모바일 기기의 보급이 늘어나고, 기술의 발전에 따라서 이러한 기기들을 구성하는 장치들의 집적도 및 계산능력(computing power)이 크게 향상됨에 따라서, 제한적인 용량을 가지는 배터리로 동작되는 모바일 장치의 사용시간을 연장시키기 위해 구성 장치들의 전력 소모량을 최소화시키는 것은 매우 중요한 일이 되었다. 특히 일반적으로 가장 큰 집적도를 가지고 있는 CPU의 소모 전력을 절감하는 것이 전력 소모량을 절감하는데 있어서는 큰 중요성을 가질 뿐만 아니라, 전체 시스템의 동작상태를 좌우하는 CPU의 동작 상태에 따라서 다른 전력 절감 방법을 적용하는 것이 필요하다.
CPU의 동작 상태는 탑재된 운영체제(OS; Operating System)가 실행중일 때에 액티브 상태(active mode 또는 normal mode)와 아이들 상태(idle mode)의 두 가지 경우가 존재한다. 일반적인 모바일 장치의 사용환경에 있어서 상기한 아이들 상태의 동작이 차지하는 시간 비율은 평균적으로 90%이상인 것으로 알려져 있다. 따라서, 전력 소모 절감의 효율성을 극대화하기 위해서는 이 아이들 상태에서의 시스템의 전체적인 전류 소모량을 줄이는 것이 무엇보다 중요하다. CPU가 액티브 상태인 경우에는 시스템이 최대의 성능을 발휘할 수 있도록 동작하도록 하여야 하지만, CPU가 아이들 상태인 경우에는 시스템의 성능을 감소시키더라도 전체적인 시스템의 동작에는 무리가 없기 때문이다.
도1은 일반적인 모바일 장치의 구성을 보여주는 도면이다. 도1에서 보여지는 바와 같이 일반적인 모바일 장치(100)는 CPU(110), CPU가 연결된 고속의 메인 시스템 버스(120), 저속의 주변 장치(170)들이 연결되는 상대적으로 저속의 보조 버스(secondary bus, 140) 또는 주변장치 버스(peripheral bus)로 구성된다. 버스 브리지(bus bridge, 130)는 이와 같이 서로 다른 버스와 버스를 연결시켜주는 장치를 의미한다. 각각의 버스는 다시 슬레이브 장치들(160, 170)을 가질 수 있다. 슬레이브 장치중의 하나인 외부로 표현되는 디스플레이가 필요한 모바일 장치의 경우에는 디스플레이 장치(150)가 상기한 시스템 버스 또는 보조 버스에 연결되는 구조로 구성되어 있다. 도1에서는 메인 시스템 버스(120)에 디스플레이 장치(150)가 연결된 모습을 보여주고 있다. 이처럼 모바일 장치(100)들을 구성한 하부 장치들은 소정의 기준 클록을 각 장치의 특성에 맞는 분주율로 분주(division)하여 공급받는 방식으로 동작하게 된다. 상기 도1의 구성요소들은 모바일 장치와 같은 경우에서는 하나의 칩으로 집적되는 경우도 많으므로, 각 구성요소가 하나의 칩 내부에 집적될 수도 있고, 별개의 칩으로 구현되어진 경우도 있을 수 있다. 예를 들면 ARM920T코어를 포함한 S32C2440등은 도1의 구성요소의 대부분이 한 칩 내에 구현되어져 있다. 이는 전체적인 시스템의 크기와 소모 전력을 최소화시키기 위한 원칩(one-chip)화 경향에 의한 것이다.
현재 적용되고 있는 CPU의 아이들 상태 전류 소모를 최소화하기 위한 방법은 CPU가 아이들 상태에 있을 때에 CPU의 클록을 꺼버리는 것이다. 즉, CPU에 인가되는 클록을 0으로 유지하는 것이다. 이러한 방법의 문제점은 CPU의 클록은 꺼지더라도 상기한 메인 시스템 버스와 보조 버스의 클록은 유지되게 되므로 CPU가 아이들 상태에서도 총 시스템에서 절감되는 전류의 총 소모량은 크지 않다는 것이다. 반면에 이 문제를 해결하기 위해서 메인 시스템 버스와 보조 버스 클록까지도 꺼버리게 되면 이번에는 버스에 연결된 슬레이브 장치들의 동작이 문제가 된다. 특히 소정의 리프레쉬 주기를 가지고 지속적으로 화면을 갱신하는 디스플레이 장치들의 정상적인 디스플레이까지도 고려하기 위해서는 버스의 클록 조정은 조심스럽게 이루어져야 하는 문제점이 있다. 따라서 CPU가 아이들 상태에 있을 때에 전체적인 시스템의 동작에 무리가 없으면서도 CPU가 연결된 메인 시스템 버스에서 소모되는 전류 소모량까지도 함께 절감할 수 있는 방법이 필요하다.
상기와 같은 문제점을 해결하기 위해서 본 발명의 목적은,
CPU와 CPU가 연결된 메인 시스템 버스, 보조 버스, 디스플레이 장치를 포함하여 구성된 모바일 장치에 있어서, CPU가 아이들 상태에 있을 때에 CPU의 동작 클록과 메인 시스템 버스의 클록을 모바일 장치의 동작에 무리없이 떨어뜨리고, CPU의 동작 전압을 저감시키는 방식으로 모바일 장치의 전력 소모를 절감하는데 있다. 더 나아가서는, 소정의 리프레쉬 주기를 가지고 동작하는 디스플레이 장치가 버스에 연결된 경우에, 디스플레이 장치의 원활한 동작을 위해서 상기 전력 절감 절차를 디스플레이 장치의 수직 동기 신호에 따라 발생되는 인터럽트에 의해 호출되는 인터럽트 서비스 루틴(ISR; Interrupt Service Routine)에서 소프트웨어적으로 유연성있게 이루어지도록 하는 방법을 제시하는 것이다.
상기와 같은 문제점을 해결하기 위한 본 발명의 또 다른 목적은, 상기의 동작 방법을 적용하여 소모 전력의 절감을 최대화할 수 있도록 구성된 모바일 장치를 소개하는데 있다.
상기 목적을 달성하기 위해 본 발명은,
기준 클록을 CPU, CPU가 연결된 메인 시스템 버스, 디스플레이 장치를 포함한 장치들에 소정의 분주율로 분주하여 입력하는 시스템에 있어서, 소정의 방법에 의해서 CPU의 동작 상태 전환 시점을 판별하여, 상기 CPU의 동작이 아이들 상태로 진입하는 경우에는 상기 메인 시스템 버스의 동작 클록을 더 낮은 주파수의 클록으로 떨어뜨린 다음, 상기 CPU의 동작 클록을 상기 메인 시스템 버스의 동작 클록으로 떨어뜨린 후, 상기 CPU의 동작 전압을 떨어뜨리는 방식으로 전력 절감 상태로 진입하도록 한다. 일반적으로 보조 버스가 추가로 구비된 시스템의 경우에 보조 버스의 클록은 메인 시스템 버스의 클록에 비해서 더 낮은 주파수를 가지게 되는데, 상기 메인 시스템 버스와 CPU의 동작 클록을 이 보조 버스의 클록 주파수로 낮추면 무리없이 동작하게 된다. 반대로 상기 CPU의 동작이 액티브 모드로 진입하는 경우에는 상기 CPU의 동작 클록을 상기 메인 시스템 버스의 클록으로 올린 다음, 상기 CPU의 동작 클록을 상기 소정의 분주율에 의한 클록으로 올리고, 상기 장치들의 클록을 상기 소정의 분주율에 의한 클록으로 회복시킨 후 CPU의 동작전압을 끌어올리는 방식으로 정상 동작 상태로 진입하도록 한다. 특히 이러한 동작들이 디스플레이 장치의 수직 동기 신호에 의해 발생되는 인터럽트에 의해 호출되는 인터럽트 서비스 루틴에서 이루어지도록 하여 버스의 클록의 변경에 의한 디스플레이되는 화면의 부자연스러움을 방지할 수 있도록 한다. 상기 단계들 중, 메인 시스템 버스의 클록을 떨어뜨리는 단계와 CPU의 동작 클록을 메인 시스템 버스의 클록으로 떨어뜨리는 단계의 순서는 바뀌어져 이루어질 수 있을 것이다. 마찬가지로 CPU의 동작 클록을 메인 시스템 버스 클록으로 올리는 단계와 메인 시스템 버스의 클록을 올리는 단계도 순서를 바꾸어서 행할 수 있을 것이다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 도2는 ARM920T 기반의 모바일 장치에 있어서의 클록 운영을 보여주는 도면이다. 클록 제네레이터(210)은 소정의 기준 클록 발생원에서 발생된 클록으로부터 체배기(multiplier) 내지는 분주기(divider)를 통하여 소정의 분주율로 모바일 장치를 구성하는 CPU(220), 메인시스템 버스(230), 보조 버스(250)등에 클록을 공급하는 역할을 한다. FCLK(221)은 CPU(220)에 공급되는 클록이며, HCLK(231)은 메인 시스템 버스(230)에 공급되는 클록을 도시한 것이다. PCLK(251)은 보조 버스(250)에 공급되는 클록을 도시한 것이다. ARM920T 기반의 경우, HCLK(231)은 FCLK(221)의 1/3의 주파수를 가지며, PCLK(251)은 다시 HCLK(231)의 1/2의 주파수를 가진다. 따라서, FCLK(221)이 400MHz로 동작하는 시스템의 경우라면, HCLK과 PCLK은 각각 133MHz와 67.5MHz로 동작하게 된다. 즉, 전체적으로 FCLK:HCLK:PCLK = 1:3:6의 분주율을 가지게 되는 것이다. 한편 디스플레이 장치(240)에 공급되는 클록은 다시 소정의 분주율로 HCLK(231)로부터 분주기(245)를 거쳐서 분주되어 디스플레이 장치(240)내부의 디스플레이 구동부(246)등에 공급되는 방식으로 구성되는 것이 일반적이다. 실제적으로 디스플레이 장치 내부의 동작 클록은 외부 입력 클록과는 다르게 유지되는 경우가 많기 때문이다. 클록 구성은 시스템의 설계에 따라 달라질 수 있으므로 본 도2는 클록 운영의 한 예를 보인 것에 지나지 않는다.
도2의 메인 시스템 버스(230)와 보조 버스(250)는 다양한 방식을 채택할 수 있으나, CPU(220)가 ARM기반의 프로세서인 경우에는, 현재 PDA등의 모바일 장치와 같은 임베디드(embedded) 장치에서는 ARM사에서 제안되어 널리 사용되고 있는 버스구조인 AMBA(Advanced Microcontroller Bus Architecture)를 채택하는 것이 일반적이다. AMBA 버스는 AHB(Advanced High-performance Bus), ASB(Advanced System Bus), APB(Advanced Peripheral Bus)의 3가지 버스 타입을 가지며, 각 타입은 용도에 따라 특징점을 가지고 있다. 간단하게 구별을 한다면, AHB와 ASB는 일반적으로 고속으로 동작해야 하는 슬레이브 장치들과 CPU가 연결되는 버스로 시스템 버스로서 이용된다. APB는 저속의 슬레이브 장치들이 연결되는 것으로 AHB와 APB에 비해 간단한 구조와 프로토콜(protocol)을 채택하고 전류소모가 적다는 특징을 가진다. 본 실시예에 있어서는, 메인 시스템 버스(230)로는 AHB를 채택하고, 보조 버스(250)로는 APB를 채택하는 것으로 한다.
상기한 ARM 기반의 CPU는 다이나믹 전압 스케일링(DVS; Dynamic Voltage Scaling; 이하 DVS)기능을 갖춘 것을 특징으로 한다. 특히 본 발명에서 언급하는 DVS는 CPU에 들어가는 전압을 낮추기 위해서 CPU의 동작 클록을 메인 시스템 버스의 동작 클록과 일치시키는 기능을 의미한다. 기능의 명칭은 다르게 존재할 수 있으나, CPU의 동작 클록을 메인 시스템 버스의 클록과 일치시켜주는 기능을 포함한 다이나믹 전압 스케일링 기능을 DVS로 정의하기로 한다. 즉, 예를 들면 400MHz로 동작하는 FCLK을 67.5MHz인 HCLK으로 떨어뜨려 전압을 낮추어도 시스템이 정상적으로 동작하게 하기 위한 것이 이 기능의 목적중 하나이다.
도3은 본 발명의 전력 소모 절감 기법의 수행 단계를 도시한 도면이다. VSYNC(310)는 디스플레이 장치, 본 실시예에서는 LCD 디스플레이 장치의 갱신 주기마다 호출되는 디스플레이 장치에서 발생시키는 LCD 인터럽트로 수직(Vertical) 동기 인터럽트를 의미한다. 60Hz의 갱신 주파수를 가지고 동작하는 비월(interlace) 주사 방식이 아닌 디스플레이 장치의 경우, 본 인터럽트는 1/60 초, 즉 16.6ms마다 호출된다. 한 화면의 주사를 모두 마치고, 다음 화면의 주사를 시작하는 시점에서 CPU에 필요한 처리를 할 기회를 주기 위해서 본 인터럽트가 활용된다. STATUS(320)는 CPU의 동작상태를 의미한다. CPU의 동작 상태는 액티브 상태와 아이들 상태로 나누어질 수 있음은 종래 기술에서 언급하였던 것과 같다. 동작전압(330)은 CPU의 동작전압을 의미한다. 본 실시예에서는 1.3V로 동작하는 경우와 전력 소모 절감을 위해서 1.0V로 동작하는 경우의 두 가지 경우가 존재함을 보여주고 있다. 클록의 분주율(341,351,361,371,372,380등)은 본 발명에서 소개할 전력 소모 절감 기법의 수행 단계별로 각 장치에 공급되는 클록의 분주율 변화를 보여주는 것이다.
도3의 제 1 시점(340)은 소정의 방법에 의해 CPU의 동작 상태 전환 여부가 판별되어, CPU가 아이들 상태로 진입하게 되는 시점을 표시한 것이다. CPU가 아이들 상태로 진입하는지 여부는 일반적으로 소정의 타이머(timer)에 의해 판단되어 진입하게 된다. 이러한 CPU 동작 상태 전환 판단 방법은 CPU에 따라 다른 방법을 채택하고 있다. CPU가 액티브 상태일 때의 클록 분주율(1:3:6)은 제 1 시점(340)에서 CPU 클록이 꺼지는 상태의 분주율(0:3:6)로 변화하게 된다. 즉, 이 시점에서 CPU는 일단 아이들 상태로 전환된다. 주의할 점은 CPU가 아이들 상태로 진입하는 시점(340)에서 본 발명의 전력 소모 절감 상태 진입 절차가 진행되는 것이 아니라, 제 1 시점(340)에서는 LCD 인터럽트인 VSYNC 인터럽트를 인에이블(enable)시키고, 이후에 첫번째의 VSYNC 인터럽트가 발생하는 제 2 시점(350)에서 VSYNC 인터럽트의 발생에 따라 호출되는 인터럽트 서비스 루틴에서 본 전력 소모 절감 절차가 이루어지도록 한다는 점이다. 이러한 방식의 이유에 대해서는 이하에서 자세하게 설명하기로 한다.
상기한 바와 같이, 제 2 시점(350)에서 VSYNC 인터럽트가 발생하게 된다. 이때, 인터럽트 발생에 의해 CPU는 일시적으로 액티브 상태로 전환되고, 장치들에 대한 클록의 분주율은 1:3:6으로 일시적으로 회복되게 되어, VSYNC 인터럽트에 대한 인터럽트 서비스 루틴이 실행될 수 있게 된다. 이 단계에서 먼저 메인 시스템 버스의 클록인 HCLK을 1/2로 줄이게 된다. HCLK을 1/2로 줄이게 되면 HCLK을 줄이기 전 상태에 비해서 약 20%의 전력 소모가 절감된다. 일반적으로 400MHz로 동작하는 ARM기반 프로세서인 S32C2440A CPU의 경우에는 최대의 성능을 발휘하기 위한 클록 분주율은 FCLK:HCLK:PCLK = 1:3:6이다. FCLK이 400MHz인 경우 FCLK:HCLK:PCLK = 400MHz:133MHz:67.5MHz이다. 400MHz로 동작할 경우에 전력 절감을 위해서 클록 분주율을 1:6:6으로 바꾸게 된다. 이 때의 장치들에 대한 클록은 결과적으로 400MHz:67.5MHz:67.5MHz가 된다. 다음으로 CPU의 DVS 기능을 활성화시킨다. DVS를 활성화시키므로써 FCLK은 HCLK과 동기를 맞추게 된다. 즉, 1:6:6이었던 클록 분주율은 DVS의 활성화에 의해서 6:6:6으로 변경된다.
최종적으로, CPU의 동작 전압을 떨어뜨리게 된다. 본 실시예의 경우 CPU의 동작전압을 1.2~1.3V에서 1.0V로 떨어뜨리게 된다. 그 후 인터럽트 서비스 루틴의 수행에서 빠져 나온 후, 다른 시스템의 서비스가 필요가 없게되면 다시 CPU는 아이들 상태로 들어가게 된다. 이 때의 클록 분주율은 CPU의 동작 클록이 0으로 떨어지므로 0:6:6(0MHz:67.5MHz:67.5MHz)이 된다. 기존의 CPU 아이들 상태의 분주율과 비교하면 0:3:6(341)에서 0:6:6(351)으로 변화되어 메인 시스템 버스의 클록이 1/2로 떨어지는 만큼의 전류 절감 효과가 있다. 그리고 이때의 상태가 본 발명의 전력 절감 상태가 된다. 일단 시스템이 전력 절감 상태로 진입하게 되면 VSYNC 인터럽트를 디스에이블시켜서, VSYNC 인터럽트가 CPU를 액티브 상태로 웨이크 업(wake-up)시키는 근원이 되지 않도록 막게 된다.
제 3 시점(360)이 CPU를 액티브 상태로 전환시키는 시점이 되는데, 이 시점의 발생 원인은 타이머 또는 VSYNC 인터럽트를 제외한 다른 인터럽트에 의해 이루어질 수 있다. 이 시점에서 일시적으로 CPU는 액티브 상태로 전환되지만 DVS 기능이 활성화되어 있고, 메인 시스템 버스의 클록은 1/2로 떨어져 있는 상태이므로, CPU의 동작 클록이 켜지더라도 이 시점에서의 클록 분주율은 6:6:6(361)이 된다. 시스템을 정상 동작 상태로 회복시키는 수행 단계도 앞서 언급하였던 CPU 아이들 상태 전환때의 전력 절감 상태 진입 단계와 마찬가지로 VSYNC 인터럽트에 의한 인터럽트 서비스 루틴에서 이루어지도록 한다. 이에 대한 설명은 이하에서 하도록 하고, 앞선 제 1 시점(340)에서 이루어진 과정과 마찬가지로 VSYNC 인터럽트를 인에이블 시키고, 첫 번째로 돌아오는 VSYNC 인터럽트 발생시점인 제 4 시점(370)에서 본 발명의 시스템 정상 동작 상태 회복 절차가 이루어지도록 한다.
제 4 시점(370)에서 VSYNC 인터럽트에 의한 인터럽트 서비스 루틴이 호출되면, 먼저 CPU의 동작 전압을 정상 동작 전압으로 회복시키게 된다. 본 실시예의 경우는 1.2~1.3V로 동작 전압을 다시 끌어올리게 된다. 다음으로 CPU의 DVS 기능을 비활성화시켜서, CPU의 동작클록을 정상적인 FCLK 수준으로 회복시킨다. 따라서 이 단계에서의 클록 분주율은 1:6:6(371)이 된다. 마지막으로 메인 시스템 버스 클록인 HCLK을 1/2 수준에서 다시 정상적인 수준으로 끌어올리게 된다. 마지막 단계에서의 클록 분주율은 1:3:6(372)가 되어, 시스템은 정상 동작 상태로 완전히 회복되게 된다.
지금까지, HCLK에 대한 분주율의 조정과 CPU의 DVS 기능의 활성화, 비활성화 동작 및 CPU 동작 전압의 조정 단계를 디스플레이 장치의 VSYNC 인터럽트 서비스 루틴에서 이루어지도록 하는 이유는, 메인 시스템 버스인 HCLK을 1/2로 떨어뜨리는 동작을 하는데 있어서 한가지 제약점이 있기 때문이다. HCLK에서 클록을 내부적으로 분주하여 사용하는 슬레이브 장치에는 도2에서 보여준 바와 같이 디스플레이 장치(240)가 있다. 예를 들어 ARM기반의 프로세서인 S32C2440은 HCLK에서 LCD 디스플레이 장치의 클록을 분주 받는다. 이와 같은 클록 운영에서 HCLK을 1/2로 바꾸게 되면 LCD에 디스플레이되는 화면에 줄이 가는 현상을 발견하게 된다. 따라서 HCLK을 바꿀 때에는 LCD 한 화면을 모두 디스플레이한 후, 그리고 다음 한 화면을 디스플레이하기 전에 바꾸어 주어야 한다.
도4를 참조하면, LCD 디스플레이 장치의 갱신 주파수가 60Hz이고, 비비월 주사 방식(non-interlace)인 경우, VSYNC 사이의 간격은 1/60초, 즉 16.6ms가 된다. 도4의 410은 어떤 기준 시점에서의 n번째 VSYNC 인터럽트가 발생하는 시점을 도시한 것이고, 420은 n+1번째 화면 갱신 시점에서 VSYNC 인터럽트가 발생하는 시점을 도시한 것이다. 그리고 LCD 세로 라인의 수가 윈도우즈 CE 포켓 PC(Windows CE PocketPC)계열의 PDA의 경우 일반적으로 320 라인이 되므로, 순차 주사 방식을 취하는 경우 라인간의 주사 시간 간격(430)은 16.6ms/320으로 약 52us가 된다. 윈도우즈 CE 계열의 인터럽트 레이턴시(latency) 타임은 약 10us이므로 약 40us(52us-10us에서 약간의 여유를 줌)안에 HCLK을 변환시키는 동작을 수행하면 문제없이 동작하게 된다. 즉, 한 화면을 다시 출력하는 시점에서 발생한 VSYNC 인터럽트 서비스 루틴에서 첫번째 라인의 수평(Horizontal) 동기 신호가 발생하기 전에 시스템 동작 상태 전환이 이루어져야 한다. 다만, HCLK을 1/2로 떨어뜨리는 동작을 할 때에는 디스플레이 장치 측에 이러한 사실을 통지하여, 내부적으로 다시 HCLK을 분주하여 동작하는 디스플레이 구동부가 분주율을 바꾸어 LCD의 동작에는 문제가 없도록 하는 과정이 포함되어야 할 것이다. 예를 들어 133MHz의 HCLK을 인가받은 디스플레이 장치가 내부적으로 분주율 4로 분주하여 사용하였다면, HCLK이 67.5MHz로 떨어뜨려지는 대신에 디스플레이 장치가 분주율 2로 분주율을 바꾸어서 LCD 디스플레이 측의 동작에는 문제가 없도록 하는 과정이 포함되어야 한다.
아래는 윈도우즈 CE를 모바일 플랫폼에 포팅(porting) 하기 위해서 시스템 개발 업체쪽에서 구현하여야 하는 BSP(Board Support Package)의 OAL(OEM Adaptation Layer)의 실제 구현을 수도 코드(pseudo code)로 보여주는 예이다. OAL코드는 윈도우즈 CE의 커널(kernel)이 시스템에 채용된 CPU와 장치 구성에 따라 달라질 수 있는 디바이스 계층(device layer)를 추상화(abstraction)시켜서 호출할 수 있도록 구성되는 플랫폼 의존적인(platform-dependent) 함수들의 집합체이다.
[수도 코드 1]
if (IntPendVal == INTSRC_LCD)
{
if (IDLEflag == FALSE)
{
DisableLCDInterrupt();
ClearLCDInterrupt();
CurrStateIdle = FALSE;
DisableLCDOutput();
ChangeVoltage(V130);
Delay(400);
DVS_OFF();
CLKDIV136();
SetLCDClock(HCLK);
EnableLCDOutput();
}
else
{
DisableLCDInterrupt();
ClearLCDInterrupt();
CurrStateIdle = TRUE;
DisableLCDOutput();
CLKDIV166();
DVS_ON();
ChangeVoltage(V100);
SetLCDClock(HCLK/2);
EnableLCDOutput();
}
}
[수도 코드 2]
void CPUEnterIdle()
{
if (CurrStateIdle == TRUE)
DisableLCDInterrupt();
else
EnableLCDInterrupt();
fInterruptFlag = FALSE;
IDLEflag = TRUE;
INTERRUPTS_ON();
SetCPUIdleMode();
while(!fInterruptFlag) {}
SetCPUActiveMode();
IDLEflag = FALSE;
if (CurrStateIdle == FALSE)
DisableLCDInterrupt();
else
EnableLCDInterrupt();
}
상기 수도 코드1은 윈도우즈 CE.Net의 BSP내의 armint.c 파일내에서 구현되는 인터럽트 핸들러(handler)에 위치하게 될 코드를 개념적으로 구현한 것이다. 또 상기 수도 코드2는 윈도우즈 CE.Net의 BSP내의 timer.c에 구현될 CPU가 액티브 상태로 전환되거나 아이들 상태로 전환되는 부분에서 이루어져야하는 동작 코드를 개념적으로 구현한 것이다.
수도 코드 2의 CPUEnterIdle()함수는 타이머에 의해서 CPU의 아이들 상태로의 전환을 판별한 경우에 시스템 커널(kernel)에 의해 호출되는 함수이다. CPUEnterIdle() 함수로 진입하게 되면, 최초로 CurrStateIdle 변수를 체크하여 현재의 시스템의 동작 상태가 어떠한 상태인지를 판별한다. CurrStateIdle 변수가 TRUE인 경우에는 시스템의 동작 상태는 전력 절감 상태로 유지된 경우이며, 즉 이미 본 발명의 전력 소모 절감 상태가 적용된 단계이므로 VSYNC 인터럽트를 계속 디스에이블된 상태로 유지시킨다. 즉 DisableLCDInterrupt()를 실행시키므로 VSYNC 인터럽트의 디스에이블 상태를 유지한다. 반대로 CurrStateIdle 변수가 FALSE였던 상태라면 CPU가 액티브 상태에서 새롭게 아이들 상태로 진입하는 단계에 해당하므로, 본 발명이 목적하는 VSYNC 인터럽트 루틴에서의 전력 절감 상태 진입 절차를 수행하기 위해서 VSYNC 인터럽트를 인에이블 시키는 것이 필요하다. 즉 EnableLCDInterrupt()를 실행시키므로 VSYNC 인터럽트를 인에이블 상태로 전환시킨다. 본 수도 코드 2에서는 CurrStateIdle 변수를 이용하여 이러한 판단을 구현하였으나, CPU의 DVS 기능이 켜져 있는지 꺼져 있는지를 체크하여 동일한 목적을 이룰 수도 있다. 즉, DVS 기능이 켜져 있는 상태라면 본 발명의 전력 절감 상태에 들어가 있는 상태라고 판단할 수 있고, DVS 기능이 꺼져 있는 상태라면 본 발명의 전력 절감 상태에 들어가 있지 않은 상태라고 판단이 가능하다. CurrStateIdle과 같은 전역 변수(global variable)를 사용하는 대신에 DVS의 활성화 여부를 읽어 낼 수 있는 기능이 가능하다면, 후자의 방법이 더 바람직하다 할 수 있을 것이다.
IDLEflag 변수를 TRUE로 설정하므로써 CPUEnterIdle()함수 진입 후에 첫번째로 호출될 VSYNC 인터럽트에 의한 인터럽트 서비스 루틴에서 본 발명의 전력 절감 상태 진입 절차를 수행할 수 있도록 한다. 즉, IDLEflag변수는 VSYNC 인터럽트에 의한 인터럽트 서비스 루틴에 전력 절감 상태 진입 절차를 수행할 것을 지시하는 변수가 된다. 다음에 INTERRUPTS_ON()에 의해 인터럽트를 활성화시키고, SetCPUIdleMode()함수를 호출하여 CPU를 아이들 상태로 전환시킨다. 이 아이들 상태로의 전환이 도3의 제 1 시점(340)에서 이루어지는 과정이다. SetCPUIdleMode()에서 이루어지는 과정들은 CPU와 시스템의 구성에 따라서 달리 구성되는 것으로, 본 발명의 실시예와는 무관하다. 일반적으로 CPU의 현재 상태를 저장하고, 메모리 장치를 리프레쉬 모드로 전환시키는 단계 및 CPU의 동작 클록을 0으로 떨어뜨리는 동작등이 이 단계에서 이루어진다.
INTERRUPTS_ON()에 의해 인터럽트가 활성화되므로, CPUEnterIdle() 함수 실행 이후에 처음으로 발생한 VSYNC 인터럽트에 의해 수도 코드 1의 if문에 의해서 else부분으로 분기한다. 앞서 CPUEnterIdle()에서 IDLEflag 변수를 TRUE로 설정하였기 때문에 else부분이 실행되게 된다. CLKDIV166()에 의해서 메인 시스템 버스 클록인 HCLK을 1/2로 떨어뜨리고, DVS_ON()에 의해서 CPU의 동작 클록을 메인 시스템 버스 클록으로 일치시킨 다음, ChangeVoltage(V100)에 의해서 CPU의 동작전압을 1.3V에서 1.0V로 떨어뜨리게 된다. 다음으로 앞서 언급한 바와 같이 HCLK이 절반으로 떨어지게 되므로 디스플레이 장치에 HCLK에 대한 분주율을 변경할 것을 통보하는 SetLCDClock(HCLK/2)이 실행된다. 이러한 과정은 LCD 디스플레이에 줄이 가는 형상을 막기 위해서, 이러한 과정이 이루어지는 동안에 LCD 디스플레이가 이루어지는 것을 막아주기 위해 DisableLCDOutput()과 EnableLCDOutput()의 두 함수가 전후에 위치하게 된다. 이러한 과정이 40us안에 이루어져야 함은 앞서 설명하였다.
수도 코드2에서 CPU가 소정의 조건, 예를 들면 VSYNC 인터럽트를 제외한 기타 인터럽트에 의해 액티브 상태로 전환되는 경우에는 fInterruptFlag가 TRUE로 설정되면서, while(!fInterruptFlag) 루프를 벗어나게 되어 SetCPUActiveMode()가 실행된다. 앞서 언급하였듯이, SetCPUActiveMode()에서 이루어지는 과정들은 CPU와 시스템의 구성에 따라서 달리 구성되는 것으로, SetCPUIdleMode()에서 이루어지는 과정들과 마찬가지로 본 발명의 실시예와는 무관하다.
반대로 IDLEflag가 FALSE로 설정됨에 따라, 이번에는 처음으로 발생되는 VSYNC 인터럽트에 의해 호출되는 인터럽트 서비스 루틴에 전력 절감 상태에서 벗어나 정상 동작 상태로 회복하기 위한 것임을 알려주는 역할을 하게 된다. 따라서 최초로 발생한 VSYNC 인터럽트에 의해서 인터럽트 서비스 루틴이 실행되면 앞선 전력 절감 진입 단계와는 반대로 IDLEflag가 FALSE이므로 if문의 분기를 택하게 된다. 이하의 동작은 앞선 전력 절감 상태 진입과는 반대의 순서로 이루어진다. ChangeVoltage(V130)에 의해서 CPU의 동작전압을 1.3V로 올리는 시도를 하고, Delay(400)에 의해 전압이 1.3V로 올라가는 동안의 기다리는 동작이 이루어진다. 여기에서 400이라는 수치는 시스템의 특성에 따라 차이가 있으므로 실제 구현에서는 다른 값을 찾을 수 있다. 마지막으로 DVS_OFF()에 의해서 CPU의 DVS기능을 비활성화시키게 되어 CPU의 클록을 메인 시스템 버스 클록과 동기시키지 않게 되고, FCLK을 CPU의 동작 클록으로 취하게 된다. 다시 CLKDIV136() 함수에 의해서 반대로 메인 시스템 버스 클록을 원래대로 되돌리게 되고, SetLCDClock(HCLK)을 호출하여 디스플레이 장치에 클록에 대한 분주율을 원래대로 되돌릴 것을 통보하게 된다. 이러한 과정은 LCD 디스플레이에 줄이 가는 형상을 막기 위해서 DisableLCDOutput()과 EnableLCDOutput()의 두 함수가 전후에 위치하게 되고, 이러한 과정이 40us안에 이루어져야 함은 앞서 설명한 바와 같다.
도4는 이상에서 설명한 전력 절감 상태 진입과 정상 동작 상태 회복에서의 과정과 소스코드의 실행 과정을 플로우 차트(flow chart)로 도시한 것이다. 전력 절감 기능이 켜져 있지 않은 정상 동작 상태(S10)에서 CPU가 아이들 상태로 전환되면 시스템 커널이 CPUEnterIdle()함수를 호출하는 단계(S11)로 진행된다. S12단계에서는 DVS 기능이 켜져 있는지 꺼져 있는지를 판단하여 시스템이 현재 전력 절감 상태에 놓여 있는지 아닌지를 판단하게 되는데, 앞서 수도 코드2의 설명에서 언급하였듯이, DVS 기능의 활성화여부가 아닌 CurrStateIdle등과 같은 매개 변수를 이용하여 현재의 상태를 판별하는 방식으로 동작할 수도 있다. 본 플로우차트에서와 같이 DVS 기능이 켜져 있다면 이미 전력 절감 상태에 들어가 있는 상태이므로 S14의 단계로 진행하게 된다. DVS 기능이 꺼져 있다면 전력 절감 상태로 진입하기 위해서 LCD 인터럽트를 클리어하고 인에이블시키는 S13 단계로 진행한 뒤에, S14에서 SetCPUIdleMode()를 실행하므로써, CPU를 아이들 상태로 전환시킨다. CPU가 아이들 상태로 놓인 상태에서 인터럽트가 발생하게 되면 S15단계로 진행된다. 이 시점이 도3의 제 2 시점(350)에 해당된다. S16과 S17단계는 인터럽트 서비스 루틴에서 이루어지는 동작 흐름을 도시한 것이다. S16에서 발생한 인터럽트가 LCD 인터럽트인 경우에는 S17단계로 분기하여 전력 절감 상태로 진입하게 되지만, LCD 인터럽트가 아닌 기타 인터럽트인 경우에는 다른 인터럽트를 처리하게 된다. 이 경우에는 전력 절감 상태로의 진입이 취소되고 LCD 인터럽트가 다시 디스에이블되게 된다(S18단계). 수도 코드2의 SetCPUActiveMode()이후의 동작이 이에 해당한다. 발생한 인터럽트가 LCD 인터럽트인 경우에는 S17 단계로 진입하여 전력 절감 상태로 진입하는 동작을 수행하게 된다. 일단 발생한 인터럽트를 클리어하는 단계, LCD 디스플레이 출력을 디스에이블시키고 클록 분주율을 1:6:6으로 변경하는 단계, 즉, 메인 시스템 버스 클록을 반으로 떨어뜨리는 동작을 수행하고, DVS 기능을 활성화시킨 후에 CPU의 동작 전압을 1.0V로 낮춘다. 다음으로 디스플레이 장치에 내부 클록 분주율을 변경시키게 하고, 마지막으로 LCD 디스플레이 출력을 인에이블시키는 동작을 수행한다.
S20단계는 시스템이 전력 절감 상태에 놓여 있는 단계를 의미한다. S21단계에서 CPU를 액티브 상태로 전환하는 소정의 조건이 발생하면, SetCPUActiveMode()가 실행되어 CPU가 액티브 상태로 전환된다. S22단계에서는 S12단계와 마찬가지로 현재 시스템이 전력 절감 상태에 놓여 있는지 아닌지를 판단하게 된다. 판단 방식은 S12단계와 마찬가지로 DVS 기능의 활성화 여부 또는 CurrStateIdle등과 같은 매개 변수를 이용하여 판단이 가능하다.
시스템이 전력 절감 상태에 놓여진 상태라면 본 발명의 정상 동작 상태로 회복하는 단계를 수행하기 위해서 LCD 인터럽트를 인에이블시키는 단계(S23)를 거치게 되고, 전력 절감 상태가 켜진 상태가 아니라면 이미 정상 동작 상태로 전환된 상태이므로 S10단계로 돌아가게 된다. S23단계에서 LCD 인터럽트가 인에이블되면, 인터럽트 발생에 의해서 S26과 S27로 구성된 인터럽트 서비스 루틴의 동작이 이루어 진다. 먼저 S26에서 발생한 인터럽트가 LCD 인터럽트인 것으로 판단하게 되면, S27로 진행되어 시스템을 정상 동작 상태로 회복시키기 위한 절차를 수행하게 된다. S26에서 발생한 인터럽트가 LCD 인터럽트가 아닌 것으로 판단하게 되면, S25에서 다른 인터럽트를 처리하는 과정을 거치게 된다. S26에서 발생한 인터럽트가 LCD 인터럽트인 것으로 판단하게 되면, S27로 분기하여 S17단계에서 전력 절감 상태로 진입한 것의 반대 동작을 수행하게 된다. 일단 발생한 인터럽트를 클리어하는 단계, LCD 디스플레이 출력을 디스에이블시키고 CPU의 동작 전압을 1.3V로 회복시키는 단계를 수행한다. 다음으로 동작 전압이 회복되는 시간동안의 딜레이를 가진 다음, DVS 기능을 비활성화시키고, 클록 분주율을 1:3:6으로 회복시키는 단계와 디스플레이 장치에 내부 클록 분주율을 정상상태로 회복시키는 단계를 수행하고 마지막으로 LCD 디스플레이 출력을 인에이블 시키는 동작을 수행한다. 이러한 절차를 마치면 시스템은 정상 동작 상태(S10)로 회귀하게 된다.
도6는 본 발명의 한 실시예에 적용될 수 있는 S32C2440 CPU에 연결되는 전원을 도시한 것이며, 도6은 본 발명에 의한 전력 소모 절감 효과를 도표로 정리한 것이다. 상기 도6과 도7을 참조하여 본 발명에 의한 전력 소모 절감의 효과를 설명하기로 한다. 도6에서 도시한 S32C2440(600)은 하나의 칩 내부에 ARM920T의 코어(core)와 필수적인 주변 장치들을 함께 집적시킨 CPU이다. 따라서 본 실시예에서는 한 칩 내에 구현된 경우에 적용되지만, 다른 실시예에서는 각 구성요소들이 별개의 칩으로 구현될 수 있음은 종래기술에서도 언급한 바와 같다. 도6의 RTC(610)는 리얼 타임 클록(RTC; Real Time Clock), ADC(620)는 아날로그-디지털 컨버터(ADC; Analog Digital Converter)를 의미한다. OP(660)는 I/O 포트(Input/Output Port)를 의미하며, MOP(670)는 메모리 디바이스에 대한 I/O 포트를 의미한다. PLL(680)은 위상 고정 루프(PLL; Phase Locked Loops)를 의미한다. Alive(650)는 CPU의 리셋 블록(reset block)과 포트 상태 레지스터(port status register)등으로 시스템의 상태와 관련 없이 항상 전원이 공급되어야 하는 구성요소들이다. Internal(630)은 내부 코어 로직을 의미한다. 이들 각각의 구성요소들은 VDDRTC(611), VDDADC(621), VDDi(631), VDDiarm(641), VDDAlive(651), VDDOP(661), VDDMOP(671)와 VDDPLL(681)에 의해서 전류를 공급받는다. S32C2440(600)의 경우 ARM920T코어(640), Internal(630), Alive(650)와 PLL(680)에는 1.2V의 전압이 인가되고, OP(660), MOP(670), ADC(620)와 RTC(610)에는 3.3V의 전압이 인가되어 동작하도록 구성된다.
도7의 도표를 참조하여 본 발명에 의한 전력 절감 효과를 설명하기로 한다. IARM은 상기 도5의 ARM 코어에 공급되는 전류량를 측정한 것이다. IINTERNAL은 상기 도5의 내부 로직 부분에 공급되는 전류량를 측정한 것이고, IAlive과 IPLL은 상기 도5의 Alive 구성요소와 PLL에 공급되는 전류량를 측정한 것이다. 상기한 네 가지 구성요소는 1.2V 전압을 인가받아 동작하게 되며, 이들에 대한 총 소모 전류량은 I12V로 표현된다. 다음으로 IMOP와 IOP, IADC 및 IRTC는 각각 상기 도5의 MOP,OP,ADC,RTC에 대한 전류 소모량을 산출한 것이며, 이들 네가지 구성요소는 3.3V 전압을 인가받아 동작하게 된다. 이들에 대한 총 소모 전류량은 I33V로 표현된다. 따라서 총 소모전류량은 I12V와 I33V를 합계한 Total Power로서 표현된다.
먼저, 종래 기술을 적용한 경우, 일반적으로 보고 있는 평균 아이들 타임의 비율인 94%를 적용하여 총 소모 전류량을 산출해보기로 한다. CPU가 액티브 상태와 아이들 상태로 전환되는 경우에 CPU에 인가되는 클록만을 분주율 1에서 분주율 0으로 조절하면서 동작하는 종래의 경우에 총 전류소모량은 228.90mW (317.84*0.06 + 223.22*0.94)가 된다. 즉, 시스템을 구성하는 장치들의 클록 분주율은 1:3:6(751)과 0:3:6(752)을 오가며 동작을 하게 된다.
다음으로, 본 발명의 전력 절감 기법을 적용한 경우, 평균 아이들 타임 비율을 적용하였을 때의 총 소모 전류량을 산출해보기로 한다. CPU가 액티브 상태와 아이들 상태로 전환되는 경우에 CPU에 인가되는 클록만 분주율 1에서 분주율 0으로 조절되면서 동작하는 종래의 경우와는 달리, 메인 시스템 버스의 동작 클록 또한 1/2로 줄어들게 되므로, 총 전류 소모량은 140.74mW (317.84*0.06 + 129.44*0.94)가 된다. 즉, 시스템을 구성하는 장치들의 클록 분주율은 1:3:6(751)과 0:6:6(753)을 오가며 동작을 하게 된다. 따라서 본 발명에 의한 전류 절감 효과는 약 38%가 됨을 알 수 있다. 물론 이와 같은 전류 절감 효과 비율은 이상적인 수치이며, 실질적인 동작 환경 또는 사용자의 사용 유형에 따라서 CPU 아이들 상태의 비율이 달라질 수 있으므로 차이를 가져올 수 있을 것이다.
상기에서는 본 발명의 바람직한 실시 예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
상기와 같은 본 발명에 따르면,
CPU가 아이들 상태로 전환되었을 때에, CPU의 동작 클록만을 꺼버리는 종래의 기술에 비해서, CPU가 연결된 메인 시스템 버스의 클록까지도 1/2로 줄일 수 있게 되므로, CPU 아이들 상태에서의 시스템의 총 전류 소모량을 최소화시킬 수 있다. 특히, 메인 시스템 버스나 보조 버스에 연결된 디스플레이 장치가 구비된 모바일 장치의 경우에는, 상기의 동작을 디스플레이 장치의 수직 동기 신호에 동기되어 발생되는 인터럽트 서비스 루틴에서 실행되게 함으로써 상기의 전력 절감 효과를 디스플레이 화면의 부자연스러움 없이 이루어지도록 할 수 있다.
도1은 모바일 장치의 구성예를 보여주는 도면이다.
도2는 모바일 장치의 클록 분주예를 보여주는 도면이다.
도3은 본 발명의 전력 절감 상태 진입 및 정상 동작 상태 회복 과정을 보여주는 타이밍도이다.
도4는 본 발명 실시예의 디스플레이 갱신 주기를 보여주는 도면이다.
도5는 본 발명의 전력 절감 상태 진입 및 정상 동작 상태 회복 절차를 보여주는 플로우 차트이다.
도6은 본 발명 실시예의 CPU의 구성요소별 전원 공급을 보여주는 도면이다.
도7은 본 발명의 전류 절감 효과를 보여주는 도표이다.
* 도면의 주요부분에 대한 부호의 설명 *
S10 : 시스템 정상 동작 상태
S11 : CPUEnterIdle 함수 진입 단계
S12,S22 : 전력 절감 기능이 켜져 있는지 여부 확인 단계
S13,S23 : LCD 인터럽트의 클리어와 인에이블 단계
S14 : CPU 아이들 상태 전환
S15,S24 : 인터럽트 발생
S16,S26 : 발생한 인터럽트가 LCD 인터럽트인지를 확인하는 단계
S17 : 전력 절감 상태 진입 절차
S18 : 전력 절감 상태 진입 취소
S20 : 시스템 전력 절감 상태
S21 : CPU 액티브 상태 전환
S25 : 기타 인터럽트 처리
S27 : 정상 동작 상태 회복 절차

Claims (26)

  1. 고주파수의 제1 클록, 중간 주파수의 제2 클록, 저주파수의 제3 클록을 각각 발생하는 단계;
    제 1 클록 신호는 CPU에 입력하고, 제 2 클록 신호는 메인 시스템 버스에 입력하는 단계;
    상기 CPU의 동작 상태 전환을 구분하는 단계;
    상기 CPU의 동작이 아이들 상태로 전환되는 경우에는 상기 메인 시스템 버스와 상기 CPU의 동작 클록주파수를 상기 제 3 클록주파수로 떨어뜨리는 동작을 실행 후, 상기 CPU의 동작 전압을 떨어뜨리는 것을 포함한 전력 절감 상태 진입 단계; 및
    상기 CPU의 동작이 액티브 상태로 전환되는 경우에는 상기 CPU의 동작전압을 끌어올리고, 상기 메인 시스템 버스 동작 클록주파수를 제 2 클록주파수로 끌어올리는 동작과 상기 CPU의 동작 클록주파수를 제 1 클록주파수로 끌어올리는 동작을 실행하는 정상 동작 상태 회복 단계를 포함한 시스템 전력 소모 절감 방법.
  2. 제 1 항에 있어서,
    상기 메인 시스템 버스와 상기 CPU의 동작 클록주파수를 제 3 클록주파수로 떨어뜨리는 동작은,
    상기 메인 시스템 버스의 동작 클록주파수를 제 3클록주파수로 떨어뜨리는 단계; 및
    상기 CPU의 동작 클록을 상기 메인 시스템 버스의 동작 클록과 일치시키는 단계를 포함하는 것을 특징으로 하는 시스템 전력 소모 절감 방법.
  3. 제 1 항에 있어서,
    상기 메인 시스템 버스와 상기 CPU의 동작 클록주파수를 제 3 클록주파수로 떨어뜨리는 동작은,
    상기 CPU의 동작 클록을 상기 메인 시스템 버스의 동작 클록과 일치시키는 단계; 및
    상기 메인 시스템 버스의 동작 클록주파수를 제 3 클록주파수로 떨어뜨리는 단계를 포함하는 것을 특징으로 하는 시스템 전력 소모 절감 방법.
  4. 제 2 항 또는 제 3 항에 있어서, 상기 CPU의 동작 클록을 상기 메인 시스템 버스의 동작 클록과 일치시키는 단계는 CPU의 다이나믹 전압 스케일링 기능을 활성화시키는 방식으로 동작하는 것을 특징으로 하는 시스템 전력 소모 절감 방법.
  5. 제 1 항에 있어서,
    상기 메인 시스템 버스 동작 클록주파수를 제 2 클록주파수로 끌어올리는 동작과 상기 CPU의 동작 클록주파수를 제 1 클록주파수로 끌어올리는 동작은,
    상기 CPU의 동작 클록주파수를 제 1 클록주파수로 올리는 단계; 및
    상기 메인 시스템 버스의 동작 클록주파수를 제 2 클록주파수로 올리는 단계를 포함하는 것을 특징으로 하는 시스템 전력 소모 절감 방법.
  6. 제 1 항에 있어서,
    상기 메인 시스템 버스 동작 클록주파수를 제 2 클록주파수로 끌어올리는 동작과 상기 CPU의 동작 클록주파수를 제 1 클록주파수로 끌어올리는 동작은,
    상기 메인 시스템 버스의 동작 클록주파수를 제 2 클록주파수로 올리는 단계; 및
    상기 CPU의 동작 클록주파수를 제 1 클록주파수로 올리는 단계를 포함하는 것을 특징으로 하는 시스템 전력 소모 절감 방법.
  7. 제 5 항 또는 제 6 항에 있어서, 상기 CPU의 동작 클록주파수를 제 1 클록주파수로 올리는 단계는 CPU의 다이나믹 전압 스케일링 기능을 비활성화시키는 방식으로 동작하는 것을 특징으로 하는 시스템 전력 소모 절감 방법.
  8. 제 1 항에 있어서, 상기 제 3 클록은 보조 버스에 입력되는 것을 특징으로 하는 시스템 전력 소모 절감 방법.
  9. 제 1 항에 있어서, 상기 CPU의 동작 상태 전환을 구분하는 단계는 타이머에 의해 이루어지는 것을 특징으로 하는 시스템 전력 소모 절감 방법.
  10. 제 1 항에 있어서, 상기 제 2 클록은 디스플레이 장치에 입력되는 것을 특징으로 하는 시스템 전력 소모 절감 방법.
  11. 제 10 항에 있어서, 상기 디스플레이 장치는 입력된 상기 제 2 클록을 분주하는 분주기와 분주된 클록을 입력받는 디스플레이 구동부를 구비한 것을 특징으로 하는 시스템 전력 소모 절감 방법.
  12. 제 10 항에 있어서, 상기 디스플레이 장치는 소정의 수직 동기 신호를 발생시키는 것을 특징으로 하는 시스템 전력 소모 절감 방법.
  13. 제 12 항에 있어서, 상기 전력 절감 상태 진입 단계는 디스플레이 장치의 수직 동기 신호에 동기되어 발생되는 인터럽트 서비스 루틴에서 이루어지는 것을 특징으로 하는 시스템 전력 소모 절감 방법.
  14. 제 13 항에 있어서, 상기 전력 절감 상태 진입 단계는 디스플레이 장치의 수평 동기 신호 간격내에서 이루어지도록 하는 것을 특징으로 하는 시스템 전력 소모 절감 방법.
  15. 제 12 항에 있어서, 상기 정상 동작 상태 회복 단계는 디스플레이 장치의 수직 동기 신호에 동기되어 발생되는 인터럽트 서비스 루틴에서 이루어지는 것을 특징으로 하는 시스템 전력 소모 절감 방법.
  16. 제 15 항에 있어서, 상기 정상 동작 상태 회복 단계는 디스플레이 장치의 수평 동기 신호 간격내에서 이루어지도록 하는 것을 특징으로 하는 시스템 전력 소모 절감 방법.
  17. 고주파수의 제1 클록, 중간 주파수의 제2 클록, 저주파수의 제3 클록을 발생하는 클록 발생부;
    상기 제 1 클록을 입력받는 CPU;
    상기 제 2 클록을 입력받는 CPU가 연결된 메인 시스템 버스;
    상기 제 2 클록을 입력받는 디스플레이 장치; 및
    상기 CPU가 아이들 상태로 전환되는 경우에는 상기 메인 시스템 버스와 상기 CPU의 동작 클록주파수를 상기 제 3 클록주파수로 떨어뜨리는 동작을 실행 후, 상기 CPU의 동작 전압을 떨어뜨리는 동작을 수행하고, 상기 CPU가 액티브 상태로 전환되는 경우에는 상기 CPU의 동작전압을 끌어올리고, 상기 메인 시스템 버스 동작 클록주파수를 제 2 클록주파수로 끌어올리는 동작과 상기 CPU의 동작 클록주파수를 제 1 클록주파수로 끌어올리는 동작을 수행하도록 하는 상기 CPU가 실행가능한 프로그램들을 수록한 적어도 하나의 메모리 장치를 포함한 모바일 장치.
  18. 제 17 항에 있어서,
    상기 메인 시스템 버스와 상기 CPU의 동작 클록주파수를 제 3 클록주파수로 떨어뜨리는 동작을 수행하는 프로그램은,
    상기 메인 시스템 버스의 동작 클록주파수를 제 3 클록주파수로 떨어뜨리는 부분; 및
    상기 CPU의 동작 클록을 상기 메인 시스템 버스의 동작 클록과 일치시키는 부분을 포함하는 것을 특징으로 하는 모바일 장치.
  19. 제 17 항에 있어서,
    상기 메인 시스템 버스와 상기 CPU의 동작 클록주파수를 제 3 클록주파수로 떨어뜨리는 동작을 수행하는 프로그램은,
    상기 CPU의 동작 클록을 상기 메인 시스템 버스의 동작 클록과 일치시키는 부분; 및
    상기 메인 시스템 버스의 동작 클록주파수를 제 3 클록주파수로 떨어뜨리는 부분을 포함하는 것을 특징으로 하는 모바일 장치.
  20. 제 17 항에 있어서,
    상기 메인 시스템 버스 동작 클록주파수를 제 2 클록주파수로 끌어올리는 동작과 상기 CPU의 동작 클록주파수를 제 1 클록주파수로 끌어올리는 동작을 수행하는 프로그램은,
    상기 CPU의 동작 클록주파수를 제 1 클록주파수로 올리는 부분; 및
    상기 메인 시스템 버스의 동작 클록주파수를 제 2 클록주파수로 올리는 부분을 포함하는 것을 특징으로 하는 모바일 장치.
  21. 제 17 항에 있어서,
    상기 메인 시스템 버스 동작 클록주파수를 제 2 클록주파수로 끌어올리는 동작과 상기 CPU의 동작 클록주파수를 제 1 클록주파수로 끌어올리는 동작을 수행하는 프로그램은,
    상기 메인 시스템 버스의 동작 클록주파수를 제 2 클록주파수로 올리는 부분; 및
    상기 CPU의 동작 클록주파수를 제 1 클록주파수로 올리는 부분을 포함하는 것을 특징으로 하는 모바일 장치.
  22. 제 17 항에 있어서, 상기 제 3 클록은 보조 버스에 입력되는 것을 특징으로 하는 모바일 장치.
  23. 제 17 항에 있어서, 상기 CPU는 전력 소모 절감을 위해 동작 전압의 가변 기능이 있는 것을 특징으로 하는 모바일 장치.
  24. 제 23 항에 있어서, 상기 CPU의 동작 전압 가변 기능은 CPU의 동작 클록을 CPU가 연결된 메인 시스템 버스의 클록과 일치시키는 다이나믹 전압 스케일링 기능을 포함하는 것을 특징으로 하는 모바일 장치.
  25. 제 17 항에 있어서, 상기 메인 시스템 버스는 ARM의 AMBA 구조의 AHB 버스인 것을 특징으로 하는 모바일 장치.
  26. 제 22 항에 있어서, 상기 보조 버스는 ARM의 AMBA 구조의 APB 버스인 것을 특징으로 하는 모바일 장치.
KR1020040043009A 2004-06-11 2004-06-11 중앙 처리 장치의 아이들 상태에서의 시스템 전력 소모절감을 위한 방법 및 그 방법을 적용한 모바일 장치 KR100716730B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020040043009A KR100716730B1 (ko) 2004-06-11 2004-06-11 중앙 처리 장치의 아이들 상태에서의 시스템 전력 소모절감을 위한 방법 및 그 방법을 적용한 모바일 장치
US11/132,127 US7500124B2 (en) 2004-06-11 2005-05-18 Electronic devices and operational methods that change clock frequencies that are applied to a central processing unit and a main system bus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040043009A KR100716730B1 (ko) 2004-06-11 2004-06-11 중앙 처리 장치의 아이들 상태에서의 시스템 전력 소모절감을 위한 방법 및 그 방법을 적용한 모바일 장치

Publications (2)

Publication Number Publication Date
KR20050117788A true KR20050117788A (ko) 2005-12-15
KR100716730B1 KR100716730B1 (ko) 2007-05-14

Family

ID=35461897

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040043009A KR100716730B1 (ko) 2004-06-11 2004-06-11 중앙 처리 장치의 아이들 상태에서의 시스템 전력 소모절감을 위한 방법 및 그 방법을 적용한 모바일 장치

Country Status (2)

Country Link
US (1) US7500124B2 (ko)
KR (1) KR100716730B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100925302B1 (ko) * 2006-04-20 2009-11-04 엔비디아 코포레이션 디스플레이 서브시스템용 작업 기반 클록 관리를 위한시스템 및 방법
KR101053903B1 (ko) * 2007-10-19 2011-08-04 삼성전자주식회사 네트워크온칩에서 전압 및 주파수 제어 장치 및 방법
US9880608B2 (en) 2014-09-02 2018-01-30 Samsung Electronics Co., Ltd. Application processor for adjusting clock signal using hardware power management unit and devices including the same

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4177525B2 (ja) * 1999-07-23 2008-11-05 京セラ株式会社 携帯電話機
KR101163812B1 (ko) * 2006-02-02 2012-07-09 엘지전자 주식회사 휴대용컴퓨터의 절전 제어 장치 및 방법
WO2009047664A1 (en) * 2007-10-09 2009-04-16 St Wireless Sa Non-recursive adaptive filter for predicting the mean processing performance of a complex system´s processing core
KR101545876B1 (ko) * 2009-01-22 2015-08-27 삼성전자주식회사 모션 센서 기반의 전력 소모 감소 방법 및 이를 이용한 휴대 단말기
US9176572B2 (en) 2009-12-16 2015-11-03 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US9104411B2 (en) 2009-12-16 2015-08-11 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US20110145559A1 (en) * 2009-12-16 2011-06-16 Thomson Steven S System and method for controlling central processing unit power with guaranteed steady state deadlines
US9128705B2 (en) 2009-12-16 2015-09-08 Qualcomm Incorporated System and method for controlling central processing unit power with reduced frequency oscillations
US8689037B2 (en) * 2009-12-16 2014-04-01 Qualcomm Incorporated System and method for asynchronously and independently controlling core clocks in a multicore central processing unit
US8650426B2 (en) 2009-12-16 2014-02-11 Qualcomm Incorporated System and method for controlling central processing unit power in a virtualized system
US8775830B2 (en) 2009-12-16 2014-07-08 Qualcomm Incorporated System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on temperature
US9563250B2 (en) * 2009-12-16 2017-02-07 Qualcomm Incorporated System and method for controlling central processing unit power based on inferred workload parallelism
US8909962B2 (en) 2009-12-16 2014-12-09 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US8370665B2 (en) * 2010-01-11 2013-02-05 Qualcomm Incorporated System and method of sampling data within a central processing unit
US8671413B2 (en) * 2010-01-11 2014-03-11 Qualcomm Incorporated System and method of dynamic clock and voltage scaling for workload based power management of a wireless mobile device
KR101740338B1 (ko) * 2010-10-20 2017-05-26 삼성전자주식회사 디지털 시스템에서 동적 클럭 제어 장치 및 방법
US8621253B1 (en) * 2012-06-26 2013-12-31 Google Inc. Processor boost based on user interface demand
WO2014006722A1 (ja) * 2012-07-05 2014-01-09 富士通株式会社 半導体集積回路およびその制御方法
US9285858B2 (en) * 2013-01-29 2016-03-15 Blackberry Limited Methods for monitoring and adjusting performance of a mobile computing device
US9471072B1 (en) 2013-11-14 2016-10-18 Western Digital Technologies, Inc Self-adaptive voltage scaling
JP2016062172A (ja) * 2014-09-16 2016-04-25 株式会社リコー 情報処理装置
KR102325453B1 (ko) * 2014-12-04 2021-11-11 삼성전자주식회사 반도체 장치의 동작 방법
CN105892614A (zh) * 2015-12-18 2016-08-24 乐视移动智能信息技术(北京)有限公司 一种智能终端的功耗管控方法及系统
US10481819B2 (en) * 2017-10-30 2019-11-19 Micron Technology, Inc. Memory devices with multiple sets of latencies and methods for operating the same
CN110399034B (zh) * 2019-07-04 2021-08-17 福州瑞芯微电子股份有限公司 一种SoC系统的功耗优化方法及终端
US11803201B1 (en) * 2022-05-11 2023-10-31 Stmicroelectronics S.R.L. Dynamic current scaling of a regulator

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5167024A (en) * 1989-09-08 1992-11-24 Apple Computer, Inc. Power management for a laptop computer with slow and sleep modes
US5935253A (en) * 1991-10-17 1999-08-10 Intel Corporation Method and apparatus for powering down an integrated circuit having a core that operates at a speed greater than the bus frequency
US5745375A (en) * 1995-09-29 1998-04-28 Intel Corporation Apparatus and method for controlling power usage
US5812860A (en) * 1996-02-12 1998-09-22 Intel Corporation Method and apparatus providing multiple voltages and frequencies selectable based on real time criteria to control power consumption
US5987614A (en) * 1997-06-17 1999-11-16 Vadem Distributed power management system and method for computer
JPH11224233A (ja) 1998-02-06 1999-08-17 Sharp Corp バスサイクル制御装置
KR100281529B1 (ko) * 1998-04-11 2001-02-15 윤종용 유니버설 시리얼 버스 디바이스를 구비한 디스플레이 장치의 전원 공급 제어 회로
JP2000122747A (ja) 1998-10-12 2000-04-28 Nec Corp ディジタル信号演算処理部の制御装置および方法
SG65097A1 (en) * 1998-12-28 2001-08-21 Compaq Computer Corp Break event generation during transitions between modes of operation in a computer system
US6425086B1 (en) * 1999-04-30 2002-07-23 Intel Corporation Method and apparatus for dynamic power control of a low power processor
US6397053B1 (en) 1999-12-30 2002-05-28 Koninklijke Philips Electronics N.V. (Kpenv) Reduction of power consumption with increased standby time in wireless communications device
US6269043B1 (en) * 2000-07-31 2001-07-31 Cisco Technology, Inc. Power conservation system employing a snooze mode
US6941480B1 (en) 2000-09-30 2005-09-06 Intel Corporation Method and apparatus for transitioning a processor state from a first performance mode to a second performance mode
KR100369768B1 (ko) * 2000-12-09 2003-03-03 엘지전자 주식회사 휴대용 컴퓨터에서의 버스 클럭 주파수 제어장치
US6694442B2 (en) * 2000-12-18 2004-02-17 Asustek Computer Inc. Method for saving power in a computer by idling system controller and reducing frequency of host clock signal used by system controller
KR100369463B1 (ko) * 2000-12-21 2003-01-24 엘지전자 주식회사 휴대용 컴퓨터에서의 호스트 버스 클럭 가변 제어방법
JP4462769B2 (ja) * 2001-01-30 2010-05-12 Necディスプレイソリューションズ株式会社 自動調整方法および自動調整回路
US7254721B1 (en) * 2001-05-01 2007-08-07 Advanced Micro Devices, Inc. System and method for controlling an intergrated circuit to enter a predetermined performance state by skipping all intermediate states based on the determined utilization of the intergrated circuit
KR100390645B1 (ko) 2001-07-27 2003-07-07 삼성전자주식회사 이동통신단말기 시스템에서 소모전류를 줄이기 위한 방법
TW565758B (en) * 2001-09-19 2003-12-11 Alps Electric Co Ltd Computer suppressing of unnecessary signals
KR100382232B1 (en) 2002-05-31 2003-05-09 Palm Palm Tech Mobile terminal having enhanced power managing function and power managing method thereof
US7013406B2 (en) * 2002-10-14 2006-03-14 Intel Corporation Method and apparatus to dynamically change an operating frequency and operating voltage of an electronic device
US7093153B1 (en) * 2002-10-30 2006-08-15 Advanced Micro Devices, Inc. Method and apparatus for lowering bus clock frequency in a complex integrated data processing system
US7290161B2 (en) * 2003-03-24 2007-10-30 Intel Corporation Reducing CPU and bus power when running in power-save modes
JP4152795B2 (ja) * 2003-04-03 2008-09-17 株式会社ルネサステクノロジ マイクロコントローラ
JP3919740B2 (ja) * 2003-07-30 2007-05-30 株式会社ソニー・コンピュータエンタテインメント 回路動作制御装置および情報処理装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100925302B1 (ko) * 2006-04-20 2009-11-04 엔비디아 코포레이션 디스플레이 서브시스템용 작업 기반 클록 관리를 위한시스템 및 방법
KR101053903B1 (ko) * 2007-10-19 2011-08-04 삼성전자주식회사 네트워크온칩에서 전압 및 주파수 제어 장치 및 방법
US8190298B2 (en) 2007-10-19 2012-05-29 Samsung Electronics Co., Ltd. Apparatus and method for controlling voltage and frequency in network on chip
US9880608B2 (en) 2014-09-02 2018-01-30 Samsung Electronics Co., Ltd. Application processor for adjusting clock signal using hardware power management unit and devices including the same

Also Published As

Publication number Publication date
KR100716730B1 (ko) 2007-05-14
US7500124B2 (en) 2009-03-03
US20050278561A1 (en) 2005-12-15

Similar Documents

Publication Publication Date Title
KR100716730B1 (ko) 중앙 처리 장치의 아이들 상태에서의 시스템 전력 소모절감을 위한 방법 및 그 방법을 적용한 모바일 장치
KR100430769B1 (ko) 클럭 주파수 변환 회로
US7237128B2 (en) Method and apparatus to dynamically change an operating frequency and operating voltage of an electronic device
US8762755B2 (en) Methods and systems for power management in a data processing system
JP5410109B2 (ja) 電力制御システム及び電力制御方法
US7594126B2 (en) Processor system and method for reducing power consumption in idle mode
KR100385155B1 (ko) 외부핀신호를다중화하는장치를포함하는집적프로세서
US20090292934A1 (en) Integrated circuit with secondary-memory controller for providing a sleep state for reduced power consumption and method therefor
US20070005995A1 (en) Power management system for computing platform
WO2000065428A1 (en) A method and apparatus to power up an integrated device from a low power state
WO2001065345A1 (en) Power management for a microcontroller
JP2010507135A (ja) Jtagの電力崩壊のデバッグ
JP3437174B2 (ja) 省電力化集積回路および省電力化集積回路の制御方法
JP3782361B2 (ja) システムlsi
US20140164661A1 (en) Methods and Systems for Time Keeping in a Data Processing System
JPH10341199A (ja) 無線携帯端末
Muralidhar et al. Experiences with power management enabling on the Intel Medfield phone

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130430

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140430

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150430

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160429

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170427

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180430

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190429

Year of fee payment: 13