KR100705571B1 - 휴면 상태를 지원하는 프로세서의 소프트웨어 시간 보상 장치 및 그 방법 - Google Patents

휴면 상태를 지원하는 프로세서의 소프트웨어 시간 보상 장치 및 그 방법 Download PDF

Info

Publication number
KR100705571B1
KR100705571B1 KR1020050000076A KR20050000076A KR100705571B1 KR 100705571 B1 KR100705571 B1 KR 100705571B1 KR 1020050000076 A KR1020050000076 A KR 1020050000076A KR 20050000076 A KR20050000076 A KR 20050000076A KR 100705571 B1 KR100705571 B1 KR 100705571B1
Authority
KR
South Korea
Prior art keywords
time
rtc
software
compensation
processor
Prior art date
Application number
KR1020050000076A
Other languages
English (en)
Other versions
KR20060079632A (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 KR1020050000076A priority Critical patent/KR100705571B1/ko
Priority to US11/319,445 priority patent/US20060190752A1/en
Publication of KR20060079632A publication Critical patent/KR20060079632A/ko
Application granted granted Critical
Publication of KR100705571B1 publication Critical patent/KR100705571B1/ko

Links

Images

Classifications

    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24CDOMESTIC STOVES OR RANGES ; DETAILS OF DOMESTIC STOVES OR RANGES, OF GENERAL APPLICATION
    • F24C15/00Details
    • F24C15/32Arrangements of ducts for hot gases, e.g. in or around baking ovens
    • F24C15/322Arrangements of ducts for hot gases, e.g. in or around baking ovens with forced circulation
    • 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/14Time supervision arrangements, e.g. real time clock
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24CDOMESTIC STOVES OR RANGES ; DETAILS OF DOMESTIC STOVES OR RANGES, OF GENERAL APPLICATION
    • F24C15/00Details
    • F24C15/22Reflectors for radiation heaters
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24CDOMESTIC STOVES OR RANGES ; DETAILS OF DOMESTIC STOVES OR RANGES, OF GENERAL APPLICATION
    • F24C15/00Details
    • F24C15/24Radiant bodies or panels for radiation heaters
    • 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

Abstract

본 발명의 일 측면에 따른 휴면 상태를 지원하는 프로세서의 소프트웨어 시간 보상 방법은, 휴면(Idle) 상태로 진입하는 CPU의 RTC(Real Time Clock) 모듈의 시간 값을 읽어 휴면 상태 진입 직전의 시간 값을 구하는 단계; 휴면 상태에서 해제되는 CPU의 RTC 모듈의 시간 값을 읽어 휴면 상태에서 해제된 직후의 시간 값을 구하는 단계; 및 상기 휴면 상태 진입 직전의 시간 값과 상기 휴면 상태에서 해제된 직후의 시간 값으로부터 소프트웨어 보상 시간을 계산하는 단계를 포함한다.

Description

휴면 상태를 지원하는 프로세서의 소프트웨어 시간 보상 장치 및 그 방법{Apparatus and Method for Compensating Software Time in Idle Mode Providing Processors}
도 1은 본 발명에 따른 소프트웨어 시간 보상 장치의 주요 구성요소인 RTC 모듈과 시간 보상 메모리를 나타낸 도면.
도 2는 본 발명에 따른 소프트웨어 시간 보상 방법을 도시한 도면.
도 3은 본 발명에 따른 시간 보상 메모리 구조를 나타낸 도면.
*도면의 주요 부분에 대한 부호의 설명*
100 : 소프트웨어 시간 보상 장치 110 : RTC 모듈
111 : RTC 시간 레지스터 112 : RTC 카운터 레지스터
113 : 보조 배터리 120 : 시간 보상 메모리
130 : 제어부
본 발명은 장치 및 그 방법에 관한 것으로, 보다 구체적으로는 이동통신 단말 혹은 무선랜 단말 등 배터리로 동작해야 하는 단말 장치에서 사용되는 소모 전류를 줄이기 위해 CPU가 휴면(Idle) 상태로 있는 기간 동안의 소프트웨어 시계를 보상하도록 하는 휴면 상태를 지원하는 프로세서의 소프트웨어 시간 보상 장치 및 그 방법에 관한 것이다.
컴퓨터에는 크게 두 개의 시계가 있다. 하나는 충전지로 가동되는 RTC(Real Time Clock, 다른 말로는 CMOS 시계, 하드웨어 시계라 한다)로 시스템이 꺼져 있는 상태에서도 계속 동작하면서 시간을 기억하는 것이 특징이다. 또 하나는 커널 시계인데, 이것은 처음 부팅시에 CMOS 시계에 의해 맞춰진 다음 타이머 인터럽트에 의해 갱신된다. 이것을 소프트웨어 시계 또는 시스템 시계라고 한다. 이 두 시계는 조금씩 서로 다르게 틀린 정도로 시간이 진행하기 때문에 일정 시간이 경과하면 두 가지 시계 모두 정확한 시간과 차이가 증가할 뿐 아니라 두 시간 사이의 차이도 점점 증가하게 된다.
개인용 컴퓨터는 보통 수은전지나 충전지로 작동되는 하드웨어 시계를 갖추고 있다. 이런 시계는 전지로 작동되기 때문에, 컴퓨터에 전기가 공급되지 않더라도 계속 움직이는 것이 가능하다. 하드웨어 시계는 BIOS 셋업 화면에서 조정할 수도 있고, 운영체제를 통해서도 조정할 수가 있다.
하드웨어 시계는 세계 표준시간에 맞춰 둘 수도 있고 지역시간에 맞춰 둘 수 도 있다. 보통 세계 표준시에 맞춰두는 것이 편리한데, 왜냐면 일광 절약시간 같은 것에 신경 쓸 필요가 없기 때문이다(세계 표준시간에는 일광 절약시간 같은 것이 없다). 그렇지만, 어떤 PC 운영체제(MS-DOS, Windows, OS/2 등)들은 하드웨어 시계가 지역 시간에 맞춰져 있는 것으로 가정하기도 한다. 리눅스는 지역 시간에 맞춰진 하드웨어 시계도 다룰 수 있지만, 이렇게 했을 경우에는 일광 절약시간이 시작하고 끝날 때마다 시계를 다시 맞춰주어야만 한다.
하드웨어 시계는 밧데리에 의해 동작하는 시계로서 컴퓨터 마더보드 내에 마이크로 칩의 일부분으로 포함되어 있다. 이 마이크로 칩은 보통 마이크로프로세서와 다른 칩들로부터 분리되어 있으며, 대개 그냥 "CMOS"라고 불린다. CMOS 상의 아주 작은 메모리에 시스템 설정 값들이 저장되어 있는데, 여기에는 실시간 클록에 의해 저장된 현재시각도 포함되며, 시각의 값은 년, 월, 요일, 시, 분, 및 초로 구성되어 있다. 컴퓨터에 전원을 켜면, 컴퓨터의 ROM에 저장되어 있는 기본 입출력 시스템, 즉 바이오스(BIOS)가 실시간 클록과 칩 내의 메모리로부터 현재시각을 읽어 온다.
리눅스 커널도 자체적인 시계를 돌리고 있는데, 이것은 하드웨어 시계와 관계없는 독립적인 것이다. 다만, 부팅(booting)될 때만 커널 시계를 하드웨어 시계에 맞추는데, 그 이후에는 서로 독립적으로 작동한다. 리눅스가 자체 시계를 쓰는 이유는, 하드웨어 시계가 느리게 가거나 오작동 할지 모르기 때문이다.
커널 시계(소프트웨어 시계)는 언제나 세계 표준시(universal time)를 출력한다. 따라서 커널은 지역 시간대에 대해선 알 필요가 없다. 이런 단순성은 신뢰도 를 높여주며 지역 시간대 정보를 업데이트하기도 쉽게 해준다. 따라서 각각의 프로세스들은 지역 시간대로의 변환을 스스로 해야 한다.
상술한 하드웨어 시계나 소프트웨어 시계는 개인용 컴퓨터에만 적용되는 것은 아니며, 프로세서 또는 CPU 등으로 표현되는 주제어장치를 포함하는 어떠한 장치 또는 시스템에도 적용될 수 있다. 즉, 이동통신 단말이나 무선 랜 단말 등에도 CPU가 포함되어 있으며, 이러한 최신 통신 장치들은 CPU가 어떤 작업도 하지 않는 경우에 휴면(Idle) 상태로 진입하는 휴면 모드를 지원하는 특징을 가진다.
CPU의 휴면 상태와 관련하여 CPU의 동작과 밀접한 관련을 가지는 소프트웨어 시간이 맞지 않는 현상이 발생할 수 있으며, 이러한 소프트웨어 시간의 보상 방법은 각 장치별로 다르게 구현, 적용되고 있다.
특히 이동통신 시스템의 이동 단말의 경우, 소프트웨어 시간 보상 방법에 대해 알아보기로 한다.
이동통신 단말이 휴면(Idle) 상태일 때, GSM 단말의 경우에는 베이스밴드(Baseband) 칩에서 4.625 주기로 발생하는 TDMA(Time Division Multiple Access) 프레임 인터럽트(Frame Interrupt)의 수를 카운트하였다가 CPU가 깨어나는 순간에 "발생한 프레임 인터럽트의 수 * 4.625ms" 시간을 운영 체제의 소프트웨어 시간 단위로 환산하여 보상한다.
CDMA(Code Division Multiple Access) 단말의 경우에는 기지국에서 각 단말로 전송하는 페이징(Paging) 채널 수신 주기를 바탕으로 단말이 N번째 페이징 프레 임을 수신하고, 다음 N+1번째 페이징 프레임 수신 전까지 메인(Main) CPU가 휴면 상태에 들어갔다가 N+1 번째 페이징 프레임을 받기 위해서 깨어날 때 페이징 채널 수신 주기 시간을 운영 체제의 소프트웨어 시간 단위(ticks)로 환산하여 보상하는 방법을 사용한다.
GSM 또는 CDMA 단말은 알려진 시간 주기를 갖는 무선 신호를 반복적으로 수신하는 특징이 있기 때문에 단말의 메인 CPU가 휴면(Idle) 상태로 동작을 멈추고 있어 타이머 인터럽트가 발생하지 못하여 운영 체제의 소프트웨어 시간을 업데이트하지 못하더라도 베이스밴드 칩에서 수신하는 주기적인 프레임 정보를 이용해서 메인 CPU가 휴면한 시간을 측정한다. 메인 CPU는 휴면 상태에서 깨어날 때 베이스밴드 칩으로부터 측정된 시간 정보를 메인 CPU에서 읽어 운영체제의 소프트웨어 시간을 보상한다.
하지만, VoWLAN(Voice over Wireless LAN) 단말과 같이 기지국(또는 액세스 포인트)에서 주기적으로 내려주는 신호가 없는 경우에는 단말에서 스스로 CPU의 휴면 시간을 구해야 하는 문제가 발생하게 된다. 여기서 보다 범용적으로 여러 시스템에 적용될 수 있는 소프트웨어 시간 보상 장치 및 방법에 대한 필요성이 대두되는 것이다.
본 발명은 상기의 문제점을 해결하기 위해, 현재시간을 제공하기 위해서 사용되는 RTC(Real Time Clock)을 이용하여 메인 CPU가 소모 전류를 줄이기 위해 동 작을 멈춘 상태 동안 흐른 시간을 구하여, 운영 체제의 소프트웨어 시간을 보상하는 휴면 상태를 지원하는 프로세서의 소프트웨어 시간 보상 장치 및 방법을 제공함을 그 목적으로 한다.
본 발명의 일 측면에 따른 휴면 상태를 지원하는 프로세서의 소프트웨어 시간 보상 방법은, 휴면(Idle) 상태로 진입하는 CPU의 RTC(Real Time Clock) 모듈의 시간 값을 읽어 휴면 상태 진입 직전의 시간 값을 구하는 단계; 휴면 상태에서 해제되는 CPU의 RTC 모듈의 시간 값을 읽어 휴면 상태에서 해제된 직후의 시간 값을 구하는 단계; 및 상기 휴면 상태 진입 직전의 시간 값과 상기 휴면 상태에서 해제된 직후의 시간 값으로부터 소프트웨어 보상 시간을 계산하는 단계를 포함한다.
상기 소프트웨어 보상 시간은, 상기 휴면 상태에서 깨어난 직후의 시간 값과 상기 휴면 상태 진입 직전의 시간 값의 차이로 계산된다.
상기 소프트웨어 시간 보상 방법은, 상기 소프트웨어 보상 시간이 계산되면, 상기 CPU의 휴면 시간 동안 증가를 멈추었던 기존의 소프트웨어 시간에 상기 소프트웨어 보상 시간을 더한 값을 소프트웨어 시간으로 하여 상기 소프트웨어를 동작하는 단계를 더 포함할 수 있다.
상기 RTC 모듈은, 30μs 정확도 단위(resolution)로 현재 시각을 공급하는 것을 특징으로 한다.
본 발명의 다른 측면에 따른 휴면 상태를 지원하는 프로세서의 소프트웨어 시간 보상 장치는, 상기 CPU에 현재 시각을 공급하는 RTC(Real Time Clock) 모듈; 소프트웨어 시간 보상을 위해 상기 RTC 모듈의 현재 시각을 임시로 저장하는 시간 보상 메모리; 및 휴면(Idle) 상태로 진입하는 CPU의 RTC 모듈의 시간 값을 읽어 휴면 상태 진입 직전의 시간 값을 구하여 상기 시간 보상 메모리에 저장하고, 휴면 상태에서 해제되는 CPU의 RTC 모듈의 시간 값을 읽어 휴면 상태에서 해제된 직후의 시간 값을 구하여, 소프트웨어 보상 시간을 계산하는 제어부를 포함한다.
상기 소프트웨어 보상 시간은, 상기 휴면 상태에서 해제된 직후의 시간 값과 상기 휴면 상태 진입 직전의 시간 값의 차이로 계산되는 것을 특징으로 한다.
상기 RTC 모듈은, 1초 단위로 증가하는 시간 데이터를 포함하는 RTC 시간 레지스터; 와 1초 동안 32768 번의 카운트가 증가하는 RTC 카운터 레지스터를 포함한다.
상기 RTC 모듈은 또한, 상기 CPU에 공급되는 주 배터리와는 별도로, CPU의 휴면 상태에서도 동작 가능하도록 보조 배터리를 포함하는 것을 특징으로 한다.
상기 시간 보상 메모리는, 상기 RTC 카운터 레지스터의 하위 15비트의 데이터로 하위 15 비트의 데이터가 구성되고, 상기 RTC 시간 레지스터의 하위 17비트의 데이터로 상위 17 비트의 데이터가 구성되는 것을 특징으로 한다.
이하, 본 발명에 따른 바람직한 실시예를 도면을 살펴보면서 구체적으로 설명하기로 한다.
본 발명은 휴면 모드를 지원하는 프로세서를 포함하고 별도의 소프트웨어 보상 방법을 구비하지 않은 어떠한 장치에도 적용이 가능하며, 본 명세서에서는 이동통신 단말이나 무선랜 단말을 주 실시예로 들어 설명하기로 한다. 별도의 소프트웨어 보상 방법이 구비되지 않은 무선랜 단말의 경우에는 본 발명의 적용에 따른 효과가 상대적으로 크다 할 것이다.
배터리와 같은 제한적인 전원 공급원으로 동작하는 이동통신 단말이나 무선랜 단말은 소모 전류를 줄여 동작 시간을 늘릴 목적으로 소프트웨어적으로 휴면(Idle) 상태에 있는 CPU의 동작을 멈추게 하는 방법을 사용하는 것이 보통이다.
단말에서 동작하는 작업(task)들은 크게 사용자의 키 입력이나 호 착신과 같은 특정 이벤트에 의해서 동작하는 비주기적 작업과 단말의 상태를 유지하기 위해 타이머에 의해서 주기적으로 동작하는 주기적 작업으로 나뉠 수 있다.
주기적 작업(Periodic Task)이 하는 일에는 무선 신호의 세기 측정, 배터리 전압 체크, 현재 시간 표시, 각종 인디케이터(Indicator) 표시 등이 있다. 이러한 비주기적 작업이 미리 설정된 정확한 시간에 주기적으로 동작하기 위해서는 운영 체제에서 관리하는 소프트웨어 시간이 정확하게 유지되어야 한다.
소프트웨어 시간은 메인 CPU가 동작하면서 발생시키는 주기적인 타이머 인터럽트에 의해서 증가되는 특징을 가진다. 그런데, 메인 CPU가 휴면 상태로 천이하면 메인 CPU는 동작을 멈추게 되므로 타이머 인터럽트를 발생시킬 수 없다. 따라서 소프트웨어 시간도 증가하지 못한다.
도 1은 본 발명에 따른 소프트웨어 시간 보상 장치의 주요 구성요소인 RTC 모듈과 시간 보상 메모리를 나타내고 있다.
본 발명은 소프트웨어 시간 보상을 위해 CPU의 RTC 모듈(110)을 이용하며, 본 발명의 구현을 위해 시간 보상 메모리(120)와 제어부(130)를 포함한다.
이동통신 단말 혹은 무선랜 단말은 현재시간을 사용자에게 표시할 수 있는 RTC(Real Time Clock) 모듈(110)을 가진다. RTC 모듈(110)은 별도의 보조 배터리(113)로 전원을 공급 받으므로, 단말의 주 배터리가 없더라도 일정 시간 동안 현재 시간을 유지한다. 또한 RTC 모듈(110)은 메인 CPU가 정상 동작할 때 사용하는 수MHz의 클럭과는 별개로 32.768KHz 클럭을 공급받는다. RTC 모듈(110)에서는 공급되는 클럭 수를 카운트하여 그 값이 32768이 되면 현재 시간을 1초 증가시키는 동작을 반복한다. RTC 모듈(110)은 CPU의 동작 여부와는 관계없이 동작하는 모듈이다.
상기 RTC 모듈(110)은 소프트웨어에서 RTC가 유지하는 현재시간을 읽을 수 있는 레지스터(이하, RTC 시간 레지스터(111))를 제공하며, 바로 직전의 단위 시간 증가 시점 이후에 발생한 RTC 클럭 신호의 수를 카운트한 값을 읽을 수 있는 레지스터(이하, RTC 카운터 레지스터(112))도 제공한다.
본 발명에 따른 소프트웨어 시간 보상 장치는 또한 보상 시간을 저장하기 위한 시간 보상 메모리(120)를 가진다. 후술하겠으나, 시간 보상 메모리(120)는 RTC 시간 레지스터(111)와 RTC 카운터 레지스터(112)의 일부분이 합쳐진 데이터가 그 내용을 이루고 있다.
마지막으로, 제어부(130)는 휴면(Idle) 상태로 진입하는 CPU의 RTC 모듈(110)의 시간 값을 읽어 휴면 상태 진입 직전의 시간 값을 구하여 상기 시간 보상 메모리(120)에 저장하고, 휴면 상태에서 해제되는 CPU의 RTC 모듈(110)의 시간 값을 다시 읽어 휴면 상태에서 깨어난 직후의 시간 값을 구함으로써, 상기 두 시간 값으로부터 소프트웨어 보상 시간을 계산하는 역할을 한다.
본 발명의 이해를 위해 일반적인 단말의 CPU의 휴면 상태과 관련된 동작 메커니즘에 대해 살펴보기로 한다.
단말에는 내부에서 동작되고 있는 소프트웨어 상태를 파악하여 CPU의 휴면 상태로의 천이 여부를 결정하는 백그라운드 작업(Background task)이 존재하고 있다. 백그라운드 작업은 단말에서 동작하는 모든 작업들 중에서 가장 낮은 우선순위로 동작하는 것으로, 다른 작업들이 처리할 어떠한 일도 없는 경우에만 동작하는 것이 백그라운드 작업이다. 이는 백그라운드 작업이 동작하는 순간이 바로 단말의 소프트웨어적인 휴면(Idle) 상태임을 의미한다.
CPU는 인터럽트를 위한 대기(Wait-For-Interrupt) 모드를 지원하여 휴면 상태에서 특정 하드웨어 인터럽트가 발생하면 즉시 휴면 상태에서 동작 상태로 천이할 수 있다. 예를 들어, PC상에서 사용자가 키보드를 누를 경우 키보드 인터럽트를 발생시켜 CPU를 동작시킨다.
RTC 모듈은 특정 시간에 하드웨어적인 인터럽트를 발생시킬 수 있는 알람 기능을 제공하는데, 알람이 X초 주기로 발생하도록 하기 위해서, RTC의 현재 시각(Y)으로부터 X초 후에 알람이 발생하도록 설정(Y+X 시점에서 알람 발생)한 후, RTC 알람 인터럽트 핸들러(RTC Alarm Interrupt Handler)에서 RTC 알람 인터럽트가 X 초 후에 발생하도록 다시 설정(Y+X+X)을 한다. 단말이 휴면(Idle) 상태에서 CPU가 휴면(Idle) 상태로 진입할 경우, CPU는 상기와 같은 방법을 통해 X 초 주기로 휴면 상태에서 깨어나게 된다.
단말에서 동작하는 작업 중 가장 낮은 우선순위를 가지는 백그라운드 작업이 동작하는 순간이 단말의 다른 작업들이 더 이상 처리할 작업이 없음을 뜻한다는 것을 이미 살펴본 바이다. 즉, 단말이 휴면(Idle) 상태에 있는 경우, 백그라운드 작업은 현재의 조건들을 판단하여 CPU의 휴면(Idle) 여부를 결정하게 된다.
여러 조건들 중 가장 중요한 것은 CPU가 휴면하는 주기 X초 동안 처리해야 할 작업이 있는지를 판단하는 것이다. 사용자의 키 입력이나 호 착신과 같은 비 주기적인(Aperiodic) 작업은 하드웨어 인터럽트에 의해서 CPU를 즉시 깨워 해당 작업을 정상적으로 처리한다. 배터리 잔량이 얼마 남았는지를 검사하거나 무선 신호 세기를 측정하는 등의 주기적인 소프트웨어 작업들은, 각 작업이 운영 체제의 타이머 큐에 타이머를 등록해 두었다가 타이머가 타임아웃 되면 운영체제가 해당 작업에게 알려주어 원하는 시간에 일을 처리할 수 있게 된다.
타이머는 운영 체제의 소프트웨어 시간(S)에 대한 상대 값(K)으로 정해지고, CPU가 동작 상태에 있을 때에는 수 밀리 초 주기로 발생하는 하드웨어 타이머 인터럽트에 의해 그 시간을 증가시킨다. 즉, S=S+1, K=K-1이 된다.
운영 체제의 타이머 큐는 상대 시간 값의 오름차순(K1 < K2 < ... < Kn)으로 정렬되어 있으므로 타이머가 타임아웃 될 때(K=0)까지 남은 시간이 X 초 이상일 경 우(K>X), CPU는 휴면 상태로 진입하고 X초 후에 RTC 알람 인터럽트에 의해서 깨어난다. 그렇지 않은 경우(K<=X)에는, 일정 시간 지연 후에 다시 휴면 조건을 검사하는 동작을 반복한다.
살펴본 바와 같이, CPU가 휴면 상태로 있는 동안은 주기적 작업을 위한 하드웨어 타이머 인터럽트가 발생하지 않으므로, 운영 체제의 소프트웨어 시간은 CPU의 휴면 직전의 값을 가지게 된다. CPU가 RTC 알람 인터럽트에 의해서 X초 후에 깨어나더라도 소프트웨어적으로는 X 초 전의 상태에 머물러 있게 되는 오류가 발생한다. 따라서 작업들이 계획된 시간에 정상 동작하기 위해서는 CPU가 휴면한 X 초에 해당하는 시간만큼을 소프트웨어 시간으로 보상해 주어야 한다.
도 2는 본 발명에 따른 소프트웨어 시간 보상 방법을 도시하고 있다.
CPU가 상술한 바와 같은 과정을 통해 일정 시간 동안(상기 예의 경우, X 초 동안) 휴면 상태로 진입할 것이 결정된 경우(S201), 실제로 휴면 상태로 진입하기 전에 소프트웨어 시간 보상을 위한 단계를 거치게 된다.
즉, CPU가 휴면 상태로 천이되기 직전의 RTC 시간 레지스터(111) 및 RTC 카운터 레지스터(112)의 데이터를 읽어(S202), 휴면 상태 진입 직전의 시간 값 T1을 구하고(S203) 도 1의 시간 보상 메모리(120)에 저장한다. 즉, RTC 카운터 레지스터(112)의 하위 15 비트가 시간 보상 메모리의 하위 15비트를 차지하고, RTC 시간 레지스터(111)의 하위 17 비트가 시간 보상 메모리의 상위 17 비트를 차지한다. 이때, 시간 모상 메모리(120)는 CPU가 휴면 상태로 천이되기 직전의 시간 값 T1을 가 진다.
휴면 상태로 진입하기 직전의 시간 값을 저장한 CPU는 일정 시간 동안 휴면 상태에 진입하게 되고(S204), 설정된 일정 시간이 경과한 후 휴면 상태에서 깨어나게 된다(S205).
이때, 즉 CPU가 휴면 상태에서 정상 동작 상태로 천이할 때 다시 RTC 시간 레지스터(111) 및 RTC 카운터 레지스터(112)의 값을 읽어(S206) 휴면 상태에서 막 깨어난 시점의 시간 값 T2를 구하고(S207), CPU가 휴면 상태로 진입할 당시에 저장한 시간 값 T1과의 차이로부터 CPU가 휴면한 시간 X'(=T2-T1)를 계산할 수 있다(S208).
이렇게 구해진 시간을 운영 체제의 소프트웨어 시간으로 환산하여 보상해준다(S=S+X'). 즉, 휴면 시간 동안 증가를 멈추었던 기존의 소프트웨어 시간에 상기 소프트웨어 보상 시간을 더한 값을 소프트웨어 시간으로 하여 상기 소프트웨어를 동작한다. 결론적으로 CPU가 휴면 상태에 있던 동안에도 소프트웨어 시간은 정상적으로 증가한 것이 되고 단말에서 운영되던 모든 소프트웨어들은 CPU의 휴면 상태에 영향을 받지 않고 자신들의 작업을 스케쥴대로 진행할 수 있게 된다.
도 3은 본 발명에 따른 시간 보상 메모리 구조를 나타내고 있다.
본 발명에 따른 소프트웨어 시간 보상을 위한 계산에 사용하는 시계는 RTC 시간 레지스터(111) 값 중 하위 17 비트와 RTC 카운터 레지스터(112) 값 중 하위 15비트를 이용하며, 도 3과 같은 32비트 형태로 저장된다. 즉, RTC 카운터 레지스 터(112)의 하위 15비트의 데이터로 시간 보상 메모리(120)의 하위 15 비트(122)의 데이터가 구성되고, RTC 시간 레지스터(111)의 하위 17비트의 데이터로 시간 보상 메모리(120)의 상위 17 비트(121)의 데이터가 구성된다고 보면 될 것이다.
RTC 카운터 레지스터(112)는 15 비트를 사용하여 1초에 32768(215)번 증가하므로 약 30μs마다 1씩 증가되며, RTC 카운터 레지스터(112)가 32768번 증가할 때마다 RTX 시간 레지스터(111)의 값이 1씩 증가하게 된다. 즉, RTC 시간 레지스터(111)와 RTC 카운터 레지스터(112)의 값으로 이루어지는 시간 보상 메모리(120)는 30μs 단위의 시간 값을 저장할 수 있게 되고, 본 발명에 따른 소프트웨어 시간 보상 장치 및 방법은 30μs 정확도 단위(resolution)로 운영체제의 소프트웨어 시간을 보상할 수 있다.
본 발명에 따른 파워 절약 방법을 적용하면 CPU가 휴면/각성 상태의 천이를 반복하는 경우에도 주기적 작업은 정해진 시간에 해당 작업을 수행할 수 있다.
본 발명은, 휴면(Idle) 모드를 지원하는 프로세서가 휴면 상태에 진입한 경우에도 현재 시간을 유지할 수 있는 RTC 모듈의 특성을 이용해, CPU가 휴면하기 전의 시각과 휴면 상태에서 깨어난 시각의 차이를 구하고, 운영 체제에서 사용하는 가상 시간을 보상함으로써 소프트웨어 수준에서는 CPU의 휴면 상태 여부를 알 수 없도록 함으로써, CPU에서 동작하는 비주기적 작업이 CPU의 상태에 영향 받지 않고 정확하게 동작할 수 있도록 하는 이점을 가진다.

Claims (9)

  1. 휴면(Idle) 상태를 지원하는 프로세서에서 동작하는 소프트웨어의 시간 보상 방법에 있어서,
    휴면 상태 진입 직전의 RTC 시간 레지스터 현재 시각을 읽고 RTC 카운터 레지스터로부터 RTC 클럭 신호의 수를 카운트 값을 읽어 프로세서의 휴면 상태 진입 직전 시각을 구하는 단계;
    휴면 상태 해제 직후의 RTC 시간 레지스터 현재 시각을 읽고 RTC 카운터 레지스터로부터 RTC 클럭 신호의 수를 카운트 값을 읽어 프로세서의 휴면 상태 해제 직후 시각을 구하는 단계; 및
    상기 휴면 상태 진입 직전의 시각과 상기 휴면 상태 해제 직후의 시각으로부터 소프트웨어 보상 시간을 계산하는 단계를 포함하는 휴면 상태를 지원하는 프로세서의 소프트웨어 시간 보상 방법.
  2. 제 1항에 있어서,
    상기 소프트웨어 보상 시간은,
    상기 휴면 상태에서 해제된 직후의 시각과 상기 휴면 상태 진입 직전의 시각의 차이로 계산되는 것을 특징으로 하는 휴면 상태를 지원하는 프로세서의 소프트웨어 시간 보상 방법.
  3. 제 1항에 있어서,
    상기 소프트웨어 보상 시간이 계산되면,
    상기 프로세서의 휴면 시간 동안 증가를 멈추었던 기존의 소프트웨어 시간에 상기 소프트웨어 보상 시간을 더한 값을 소프트웨어 시간으로 하여 상기 소프트웨어를 동작하는 단계를 더 포함하는 것을 특징으로 하는 휴면 상태를 지원하는 프로세서의 소프트웨어 시간 보상 방법.
  4. 제 1항에 있어서,
    상기 RTC 모듈은,
    30μs 정확도 단위(resolution)로 현재 시각을 공급하는 것을 특징으로 하는 휴면 상태를 지원하는 프로세서의 소프트웨어 시간 보상 방법.
  5. 휴면(Idle) 상태를 지원하는 프로세서에서 동작하는 소프트웨어의 시간 보상 장치에 있어서,
    현재 시간을 읽는 RTC 시간 레지스터와 RTC 클럭 신호의 수를 카운트 값을 읽는 RTC 카운터 레지스터를 이용하여 현재 시각을 상기 프로세서에 공급하는 RTC(Real Time Clock) 모듈;
    소프트웨어 시간 보상을 위해 상기 RTC 모듈의 현재 시각을 임시로 저장하는 시간 보상 메모리; 및
    휴면(Idle) 상태로 진입하는 프로세서의 RTC 모듈의 시각을 읽어 휴면 상태 진입 직전의 시각을 구하여 상기 시간 보상 메모리에 저장하고, 휴면 상태에서 해제되는 프로세서의 RTC 모듈의 시각을 읽어 휴면 상태 해제 직후의 시각을 구하여, 소프트웨어 보상 시간을 계산하는 제어부를 포함하는 휴면 상태를 지원하는 프로세서의 소프트웨어 시간 보상 장치.
  6. 제 5항에 있어서,
    상기 소프트웨어 보상 시간은,
    상기 휴면 상태에서 해제된 직후의 시각과 상기 휴면 상태 진입 직전의 시각의 차이로 계산되는 것을 특징으로 하는 휴면 상태를 지원하는 프로세서의 소프트웨어 시간 보상 장치.
  7. 제 5항에 있어서,
    상기 RTC 모듈은,
    1초 단위로 증가하는 시간 데이터를 포함하는 RTC 시간 레지스터; 와
    1초 동안 32768 번의 카운트가 증가하는 RTC 카운터 레지스터를 포함하는 것을 특징으로 하는 휴면 상태를 지원하는 프로세서의 소프트웨어 시간 보상 장치.
  8. 제 5항에 있어서,
    상기 시간 보상 메모리는,
    상기 RTC 카운터 레지스터의 하위 15비트의 데이터로 하위 15 비트의 데이터가 구성되고,
    상기 RTC 시간 레지스터의 하위 17비트의 데이터로 상위 17 비트의 데이터가 구성되는 것을 특징으로 하는 휴면 상태를 지원하는 프로세서의 소프트웨어 시간 보상 장치.
  9. 제 5항에 있어서,
    상기 RTC 모듈은,
    상기 프로세서에 공급되는 주 배터리와는 별도로, 프로세서의 휴면 상태에서도 동작 가능하도록 보조 배터리를 포함하는 것을 특징으로 하는 휴면 상태를 지원하는 프로세서의 소프트웨어 시간 보상 장치.
KR1020050000076A 2005-01-03 2005-01-03 휴면 상태를 지원하는 프로세서의 소프트웨어 시간 보상 장치 및 그 방법 KR100705571B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020050000076A KR100705571B1 (ko) 2005-01-03 2005-01-03 휴면 상태를 지원하는 프로세서의 소프트웨어 시간 보상 장치 및 그 방법
US11/319,445 US20060190752A1 (en) 2005-01-03 2005-12-29 Compensating software time in processor having sleep mode

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050000076A KR100705571B1 (ko) 2005-01-03 2005-01-03 휴면 상태를 지원하는 프로세서의 소프트웨어 시간 보상 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20060079632A KR20060079632A (ko) 2006-07-06
KR100705571B1 true KR100705571B1 (ko) 2007-04-10

Family

ID=36914234

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050000076A KR100705571B1 (ko) 2005-01-03 2005-01-03 휴면 상태를 지원하는 프로세서의 소프트웨어 시간 보상 장치 및 그 방법

Country Status (2)

Country Link
US (1) US20060190752A1 (ko)
KR (1) KR100705571B1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7890569B1 (en) * 2005-09-29 2011-02-15 Symantec Corporation Tracking time usage on a disconnected client over a period of time
US7870411B2 (en) * 2006-07-17 2011-01-11 Xensource, Inc. Tracking current time on multiprocessor hosts and virtual machines
US7917784B2 (en) * 2007-01-07 2011-03-29 Apple Inc. Methods and systems for power management in a data processing system
JP4644747B1 (ja) * 2009-11-02 2011-03-02 パナソニック株式会社 情報処理装置、制御方法および制御プログラム
DE102010032758B4 (de) * 2010-07-29 2012-02-23 Fujitsu Technology Solutions Intellectual Property Gmbh Computersystem, Verfahren zum Programmieren einer Echtzeituhr und Computerprogrammprodukt
US8618794B2 (en) * 2010-07-30 2013-12-31 Atmel Corporation Detecting inductive objects using inputs of integrated circuit device
CN104077195B (zh) * 2013-03-29 2017-11-24 广州华多网络科技有限公司 状态检测方法、装置及终端
WO2015057572A2 (en) * 2013-10-14 2015-04-23 Nike Innovate C.V. Adaptive timing configuration for athletic devices
TWI643058B (zh) * 2017-07-25 2018-12-01 緯創資通股份有限公司 電子裝置以及開機時間計算方法
FR3116679A1 (fr) * 2020-11-20 2022-05-27 STMicroelectronics (Grand Ouest) SAS Gestion d'un mode basse consommation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100196883B1 (ko) * 1994-09-07 1999-06-15 포만 제프리 엘 컴퓨터 시스템
KR20000053126A (ko) * 1996-11-07 2000-08-25 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘) 통신 장비의 대기 전류를 감소시키기 위한 방법 및 장치
KR20040033613A (ko) * 2002-10-15 2004-04-28 주식회사 팬택 이동 통신용 실시간 클럭 타이밍 보정 장치

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6191662B1 (en) * 1999-11-30 2001-02-20 Intel Corporation Self-start circuits for low-power clock oscillators
JP4164662B2 (ja) * 2003-06-10 2008-10-15 日本電気株式会社 携帯端末およびgps時刻維持方法
US7346787B2 (en) * 2004-12-07 2008-03-18 Intel Corporation System and method for adaptive power management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100196883B1 (ko) * 1994-09-07 1999-06-15 포만 제프리 엘 컴퓨터 시스템
KR20000053126A (ko) * 1996-11-07 2000-08-25 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘) 통신 장비의 대기 전류를 감소시키기 위한 방법 및 장치
KR100465956B1 (ko) * 1996-11-07 2005-01-13 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘) 통신 장비의 대기 전류를 감소시키기 위한 방법 및 장치
KR20040033613A (ko) * 2002-10-15 2004-04-28 주식회사 팬택 이동 통신용 실시간 클럭 타이밍 보정 장치

Also Published As

Publication number Publication date
US20060190752A1 (en) 2006-08-24
KR20060079632A (ko) 2006-07-06

Similar Documents

Publication Publication Date Title
US20060190752A1 (en) Compensating software time in processor having sleep mode
EP3146408B1 (en) System on a chip with always-on processor
TWI494857B (zh) 喚醒事件管理方法、喚醒事件管理裝置以及喚醒事件管理電腦程式產品
US9152199B2 (en) Power state dependent wake-up alarm
EP2695063B1 (en) Method and system for dynamically controlling power to multiple cores in a multicore processor of a portable computing device
US6016548A (en) Apparatus for controlling duty ratio of power saving of CPU
EP0923841B1 (en) Methods and apparatus for generating timing signals in a radiocommunication unit
US8713348B2 (en) Apparatus for performing timer management regarding a system timer scheduler service, and associated method
US7197654B2 (en) Method and apparatus for managing low power processor states
JP5547718B2 (ja) 電源マネージャ及び電源管理方法
BRPI0715665A2 (pt) avaliador de némero de quadro de sistema (sfn)
CN112530056B (zh) 降低智能门锁功耗的方法、智能门锁和存储介质
TWI556162B (zh) 具有排程單元之微控制器
US7523326B2 (en) Method and apparatus for maintaining a suspension state after powering down and fully powering down upon expiration of a timer or low battery level
EP0939495A1 (en) Power saving for a electronic devices
JP6969127B2 (ja) 時計装置、時刻補正方法及びプログラム
US8405603B2 (en) Service processor for controlling a user interface
US20180129180A1 (en) Pch thermal sensor dynamic shutdown
CN109643267B (zh) 用于低功率和高准确度时间戳的技术
US9226107B2 (en) Method of controlling mobile terminal apparatus and mobile terminal apparatus
JP2003337713A (ja) プロセッサの制御方法
US9529404B2 (en) Information processing apparatus and method of controlling information processing apparatus
JP6984186B2 (ja) 充電制御装置、充電制御方法及びプログラム
US20100313046A1 (en) Data processing system, method for processing data and computer program product
US8051319B2 (en) Method for power management for computer system

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
LAPS Lapse due to unpaid annual fee