KR101689279B1 - 타이머 및 이를 포함하는 집적 회로 디바이스 - Google Patents

타이머 및 이를 포함하는 집적 회로 디바이스 Download PDF

Info

Publication number
KR101689279B1
KR101689279B1 KR1020100092029A KR20100092029A KR101689279B1 KR 101689279 B1 KR101689279 B1 KR 101689279B1 KR 1020100092029 A KR1020100092029 A KR 1020100092029A KR 20100092029 A KR20100092029 A KR 20100092029A KR 101689279 B1 KR101689279 B1 KR 101689279B1
Authority
KR
South Korea
Prior art keywords
count
value
reset
timer
count value
Prior art date
Application number
KR1020100092029A
Other languages
English (en)
Other versions
KR20120029904A (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 KR1020100092029A priority Critical patent/KR101689279B1/ko
Priority to US13/229,275 priority patent/US8826061B2/en
Publication of KR20120029904A publication Critical patent/KR20120029904A/ko
Application granted granted Critical
Publication of KR101689279B1 publication Critical patent/KR101689279B1/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/24Resetting means
    • 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
    • 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
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

본 발명에 따른 타이머는 카운트 리셋 값을 설정하는 적어도 하나의 버퍼; 상기 적어도 하나의 버퍼로부터 카운트 리셋 값을 입력받고, 카운트 값을 증가시켜 상기 카운트 값이 상기 카운트 리셋 값과 동일한 경우, 상기 카운트 값을 리셋시키는 업-카운팅 블록; 및 상기 업-카운팅 블록으로부터 상기 카운트 값이 리셋되었음을 수신하여 인터럽트 요청하는 인터럽트 발생기를 포함한다.

Description

타이머 및 이를 포함하는 집적 회로 디바이스{TIMER AND INTEGRATED CIRCUIT DEVICE INCLUDING THE SAME}
본 발명은 타이머 및 이를 포함하는 집적 회로 디바이스에 관한 것으로, 보다 구체적으로는, 구현이 용이하며 정확성이 높은 타이머 및 이를 포함하는 집적 회로 디바이스에 관한 것이다.
시스템 타임(system time)은 OS(Operating System)에서 실행되는 프로세스/프로그램이 수행될 때 참조하는 시간이다. 상기 시스템 타임은 타이머(timer)에서단위 시간 주기로 업데이트되며, 통상적으로 고정 주기로 업데이트되지만, 전력 소모를 줄이기 위하여 시스템 타임의 업데이트 주기를 가변시키는 것이 요구된다.
종래 타이머는 타이머의 주기를 가변하는 경우, 가변 주기를 사용자가 직접 입력해야하기 때문에 입력 시점에 따라 타이머의 정확성이 떨어지는 문제점이 있다.
따라서, 본 발명이 해결하려는 과제는 구현이 용이하면서 정확성 및 안정성이 높은 타이머 및 이를 포함하는 집적 회로 디바이스를 제공하려는 것이다.
본 발명에 따른 타이머는 카운트 리셋 값을 설정하는 적어도 하나의 버퍼; 상기 적어도 하나의 버퍼로부터 카운트 리셋 값을 입력받고, 카운트 값을 증가시켜 상기 카운트 값이 상기 카운트 리셋 값과 동일한 경우, 상기 카운트 값을 리셋시키는 업-카운팅 블록; 및 상기 업-카운팅 블록으로부터 상기 카운트 값이 리셋되었음을 수신하여 인터럽트 요청하는 인터럽트 발생기를 포함할 수 있다.
또한, 상기 타이머는 클럭 발생기로부터 입력받은 클럭 신호를 분주하여 상기 업-카운팅 블록에 전송하는 분할/분주기를 더 포함할 수 있다.
또한, 상기 업-카운팅 블록은 상기 분주된 클럭 신호에 동기화하여 상기 카운트 값을 증가시킬 수 있다.
또한, 상기 업-카운팅 블록은 상기 분주된 클럭 신호에 동기화하여 상기 카운트 값을 증가시키며 상기 적어도 하나의 버퍼로부터 입력받은 상기 카운트 리셋 값을 저장하는 업-카운팅 레지스터; 및 상기 레지스터에 연결되어 상기 카운트 값이 상기 카운트 리셋 값과 동일한지를 판단하여 동일한 경우 상기 카운트 값을 리셋시키는 리셋 블록을 포함할 수 있다.
또한, 상기 타이머는 상기 적어도 하나의 버퍼가 2개 이상일 경우, 상기 카운트 리셋 값을 2개 이상을 설정할 수 있다.
또한, 상기 타이머는 상기 카운트 값이 상기 2개 이상의 카운트 리셋 값 중 어느 하나와 동일한 경우, 상기 카운트 값을 리셋시킬 수 있다.
또한, 상기 클럭 발생기는 상기 타이머 내부 또는 외부에 위치할 수 있다.
또한, 상기 적어도 하나의 버퍼는 이미 설정된 카운트 리셋 값을 변경하여 변경된 카운트 리셋 값으로 다시 설정이 가능할 수 있다.
또한, 상기 적어도 하나의 버퍼는 버스와 연결되고, 버스로부터 입력되는 제어 신호에 의해 상기 카운트 리셋 값을 설정할 수 있다.
또한, 상기 업-카운팅 레지스터 및 상기 버스와 연결되어 상기 카운트 값을 상기 버스를 통해 적어도 하나의 외부 코어로 전송하는 관찰 블록을 더 포함할 수 있다.
또한, 상기 인터럽트 발생기는 상기 인터럽트 요청을 인에이블 또는 디스에이블시킬 수 있다.
본 발명에 따른 타이머에 의해 구현되는 시스템 타임 구현 방법은 카운트 리셋 값을 설정하는 단계; 카운트 값을 증가시키고, 상기 카운트 리셋 값과 상기 카운트 값을 비교하고, 비교 결과 상기 카운트 값이 상기 카운트 리셋 값과 동일한 경우, 상기 카운트 값을 리셋시키는 단계; 및 상기 카운트 값이 리셋되면 인터럽트 요청하는 단계를 포함할 수 있다.
또한, 상기 리셋시키는 단계는 클럭 발생기로부터 입력받은 클럭 신호를 분주하는 단계; 및 상기 분주된 클럭 신호에 동기화하여 상기 카운트 값을 증가시키는 단계를 포함할 수 있다.
또한, 상기 시스템 타임 구현 방법은 상기 카운트 리셋 값을 저장하는 단계를 더 포함할 수 있다.
또한, 상기 카운트 리셋 값을 설정하는 단계는 상기 카운트 리셋 값을 2개 이상을 설정하는 단계를 포함할 수 있다.
또한, 상기 클럭 발생기는 상기 타이머 내부 또는 외부에 위치할 수 있다.
또한, 상기 카운트 리셋 값을 설정하는 단계는 이미 설정된 카운트 리셋 값을 변경하여 변경된 카운트 리셋 값으로 다시 설정하는 단계를 포함할 수 있다.
또한, 상기 카운트 리셋 값을 설정하는 단계는 버스로부터 입력되는 제어 신호에 기초하여 상기 카운트 리셋 값을 설정하는 단계를 포함할 수 있다.
또한, 상기 시스템 타임 구현 방법은 상기 카운트 값을 상기 버스를 통해 적어도 하나의 외부 코어로 전송하는 단계를 포함할 수 있다.
본 발명의 일 예에 따른 타이머 및 이를 포함하는 집적 회로 디바이스는 구현이 용이하면서 정확성 및 안정성이 높은 효과를 가진다.
또한, 본 발명의 일 예에 따른 타이머는 인터럽트(interrupt)의 발생 주기를 직접 입력할 필요가 없다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 일 실시예에 따른 SOC의 기능적 블록도를 나타낸다.
도 2는 본 발명의 일 실시예에 따른 타이머를 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 시스템 타임의 구현 방법을 나타내는 흐름도이다.
도 4a 내지 도 5b는 본 발명의 일 실시예에 따른 시스템 타임의 구현 방법을 설명하기 위한 도면이다.
도 6a 및 도 6b는 본 발명의 다른 실시예에 따른 시스템 타임의 구현 방법을 설명하기 위한 도면이다.
도 7a 및 도 7b는 본 발명의 또 다른 실시예에 따른 가변 주기 시스템 타임에 관한 설명을 위한 도면이다.
도 8a 및 도 8b는 본 발명의 비교 예에 따른 가변 주기 시스템 타임에 관한 설명을 위한 도면이다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명에 따른 실시예는 다양한 변경을 가할 수 있고 여러가지 형태를 가질 수 있으므로 특정실시 예들을 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예를 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일 실시예에 따른 SOC의 기능적 블록도를 나타낸다. 도 1을 참고하면, 상기 SOC(System On Chip, 10)는 메모리 컨트롤러(Memory Controller, 200), 제1 코어(IP1/Core1, 300), CPU(Central Processing Unit, 400), 제2 코어(IP2/Core2, 500), UART(Universal Asynchronous Receiver/Transmitter, 600), 제1 버스(700), 제2 버스(800) 및 타이머(timer, 100)를 포함한다. 이때, SOC(10)는 집적 회록 기술의 발전에 의해 프로세서 코어(a Processor Core), 메모리 유닛(a Memory Unit), 고성능 버스(a High Performance Bus), 프로그램가능한 논리회로(A Programmable Logic)를 포함한 전체시스템을 하나의 반도체 코어에 임베드(embed) 할 수 있게 한 것을 의미한다.
상기 타이머(100), 메모리 컨트롤러(200), 제1 코어(300), CPU(400), 제2 코어(500) 및 UART(600)는 제1 버스(700) 및 제2 버스(800)를 통해 각각 상호 연결될 수 있다. 상기 제1 버스(700) 및 제2 버스(800)는 독점적 또는 산업 표준적인 것일 수 있으며, 상기 제1 버스(700)는 AHB 버스에 해당할 수 있으며, 제2 버스(800)는 APB 버스에 해당할 수 있으나 본 발명의 범위가 이에 한정되는 것은 아니다.
또한, 상기 SOC(10)는 메모리(Memory, 20) 및 외부 인터페이스(External Interface, 30)와 연결될 수 있고, 상기 메모리(20)와 외부 인터페이스(30) 간에 데이터를 전송할 수 있다. 메모리 컨트롤러(200)는 상기 메모리(20)와 연결되어 상기 메모리(20)를 제어한다.
상기 제1 코어(300) 및 제2 코어(500)는 일종의 반도체 코어로서, 예컨대, 이러한 코어들은 하나 이상의 일반 용도(general purpose)의 프로세서 또는 컴퓨터 프로세서 및/또는 DSP; ROM, RAM, EEPROM 및/또는 플래쉬와 같은 메모리 배열의 형태로 가능한 대용량 메모리; 오실레이터 및/또는 위상고정 폐회로를 포함하는 타이밍 소스(timing source); 카운터타이머(counter-timer), 실시간 타이머(real-time timer), 전원 재설정 발전기(power-on reset generator)를 포함하는 주변기기; 전압 조절기 및 전력관리 모듈; ADC와 DAC를 포함하는 아날로그 인터페이스; 단일 모놀리식 기판에 다양한 요소들을 포함한 외부인터페이스를 포함할 수 있으나, 이에 한정되지 않는다.
타이머(100)는 시스템 동작 시간을 측정할 뿐 아니라, 시스템 타임을 업데이트하며, 고정 주기 또는 가변 주기로 업데이트할 수 있다. 본 발명의 일 예에 따른 타이머(100)는 도 2에서 보다 구체적으로 설명하기로 한다.
도 1에는 본 발명의 일 실시예를 설명하기 위해 필요한 기능적 코어들의 일 예들만이 도시되어 있다. 도 1에 도시되지 않은 나머지 구성들 역시 상기 SoC의 적절한 기능 수행을 위해 도 1에 도시된 구성요소와 연계하여 또는 독립적으로 존재하거나 동작할 수 있다는 것은 본 기술 분야의 통상의 지식을 가진 자에게 자명할 것이다.
도 2는 본 발명의 일 실시예에 따른 타이머를 나타내는 도면이다. 도 2를 참고하면, 상기 타이머(100)는 분할/분주기(Prescalar/Divider, 110), 버퍼(Expire Count Buffer, 이하 ECB)(120), 업-카운팅 블록(UCT: Up-Counting Timer block)(130) 및 인터럽트 발생기(Timer Interrupt Generator, 이하 TIG)(140)를 포함한다.
여기서, 상기 업-카운팅 블록(130)은 리셋 블록(Up-counting Reset block, 이하 UTR)(132) 및 업-카운팅 레지스터(Up-Counting Register, 이하 UCR)(134)를 포함한다.
분할/분주기(110)는 상기 타이머(100) 외부 또는 내부의 클럭 발생기(CLK Generator)(900)로부터 생성된 동작 클럭(CLK)을 입력받아 상기 타이머(100)의 내부 동작 클럭으로 분주하여 상기 업-카운팅 블록(130)에 공급한다.
ECB(120)는 상기 제2 버스(800)를 통해 CPU(400)로부터 제어 신호를 입력받고 UCR(134)이 리셋되는 카운트 리셋 값을 설정하고 이를 UTR(132)에 전송한다. 상기 ECB는 2개 이상이 구비될 수도 있으며, 2개 이상이 구비되는 경우, 리셋되는 카운트 리셋 값이 2개 이상이 설정될 수 있다. 상기 ECB(120)는 상기 카운트 리셋 값을 UTR(132) 및 TIG(140)에 전송할 수 있다.
UCR(134)은 상기 분할/분주기(110)로부터 입력되는 내부 동작 클럭에 동기화하여 UCR 카운트 값을 0부터 증가시키고, 상기 UCR 카운트 값이 상기 카운트 리셋 값과 동일하게 될 경우, 상기 UCR 카운트 값을 다시 0으로 리셋시킨다.
상기 UCR(134)에는 관찰 블록(Up Counting Observation, 이하 UCO)(미도시)이 연결될 수 있으며, 상기 UCO(미도시)는 상기 제2 버스(800)와 연결되어 상기 UCR 카운트 값을 제2 버스(800)를 통해 외부의 임의의 코어들로 전송하여 상기 코어들에게 상기 UCR 카운트 값을 디스플레이할 수 있다.
UTR(132)은 상기 UCR(134)에 연결되어 상기 카운트 리셋 값과 상기 UCR 카운트 값이 동일할 경우 상기 UCR(134)에서 UCR 카운트 값을 0으로 리셋시키며, TIG(140)로 상기 증가하는 카운트 값이 리셋되었음을 피드백한다.
상기 TIG(140)는 상기 UTR(132)로부터 피드백을 받게 되면 IRQ(interrupt request)를 생성한다. 상기 TIG(140)는 상기 IRQ를 인에이블 또는 디스에이블시킬 수 있다.
도 3은 본 발명의 일 실시예에 따른 시스템 타임의 구현 방법을 나타내는 흐름도이다. 도 3의 시스템 구현 방법은 도 2에 도시된 타이머(100)에 의해 수행될 수 있다.
ISR(Interrupt Service Rountine)이 정의되면, ECB(120)는, UCR(134)이 리셋되는 카운트 리셋 값을 설정한다(S110). 이때, 상기 ECB(120)는 2개 이상이 구비될 수 있으며, 2개 이상이 구비되는 경우, 상기 카운트 리셋 값은 2개 이상이 설정될 수 있다. 상기 카운트 리셋 값은 UCR(134)에서 증가하는 UCR 카운트 값과 상기 카운트 리셋 값이 동일하게 될 경우, 증가하는 UCR 카운트 값을 0으로 리셋시키기 위해 설정된 값을 의미한다.
UCR(134)이 UCR 카운트 값을 내부 동작 클럭에 기초하여 증가시킨다(S120). 이때, 상기 내부 동작 클럭은 클럭 발생기(900)로부터 생성된 동작 클럭(CLK)이 분할/분주기(120)를 통해 분주된 클럭(DCLK)을 의미할 수 있다.
상기 UCR 카운트 값이 상기 카운트 리셋 값과 동일하게 되는 경우, UCR 카운트 값을 리셋시킨다(S130). 이때, UTR(132)이 상기 UCR 카운트 값이 상기 카운트 리셋 값과 동일한지 여부에 대한 판단을 수행할 수 있으며, 상기 UCR 카운트 값이 상기 카운트 리셋 값과 동일할 경우에는 상기 UCR 카운트 값을 0으로 리셋시킬 수 있다.
또한, 상기 UTR(132)은 상기 UCR 카운트 값이 0으로 리셋되는 경우, TIG(140)로 상기 UCR 카운트 값이 리셋되었음을 알린다.
TIG(140)은 상기 UCR 카운트 값이 리셋되었음을 피드백 받으면, IRQ를 생성할 수 있다(S140). 상기 IRQ가 생성되면, 시스템 타임이 업데이트된다.
도 4a 내지 도 5b는 본 발명의 일 실시예에 따른 시스템 타임의 구현 방법을 설명하기 위한 도면이다. 도 4a 및 도 4b를 참고하면, ECB(120)가 UCR(134)이 리셋되는 카운트 리셋 값(NRST)을 설정할 경우, UCR(134)이 UCR 카운트 값을 내부 동작 클럭(DCLK)에 기초하여 0부터 증가시키고, UCR 카운트 값이 도 4b와 같이 카운트 리셋 값(NRST)과 동일하게 되는 시점(tRST)에서, UTR(132)이 상기 UCR 카운트 값을 0으로 리셋시키고 UCR(134)은 상기 UCR 카운트 값을 다시 증가시킨다. 이와 같은 과정이 반복되고, UCR 카운트 값이 카운트 리셋 값(NRST)과 동일하게 되는 주기마다 UTR(132)에 의해 상기 UCR 카운트 값이 0으로 리셋되며, 상기 TIG(140)에 의해 IRQ가 발생된다.
도 4a 및 도 4b에서는 특정 시점(t1)에서 UCR 카운트 값은 N1이고, 상기 특정 시점(t1)에서 카운트 리셋 값(NRST)이 설정된 것으로 판단되는 경우, 상기 설정된 카운트 리셋 값(NRST)이 상기 특정 시점(t1)에서의 UCR 카운트 값(N1)보다 큰 경우에 해당한다. 상기 특정 시점(t1)으로부터 UCR 카운트 값이 증가하고, 상기 UCR 카운트 값이 카운트 리셋 값(NRST)과 동일하게 되는 시점(tRST)에 상기 UCR 카운트 값이 0으로 리셋된다.
다만, 도 5a 및 도 5b에 도시된 바와 같이, 상기 특정 시점(t1')에 카운트 리셋 값(NRST')이 설정된 것으로 판단되는 경우, 상기 설정된 카운트 리셋 값(NRST')이 상기 특정 시점(t1')에서의 UCR 카운트 값(N1')보다 작다면, UCR 카운트 값은 상기 설정된 카운트 리셋 값(NRST')과 동일한 시점이 발생되지 않아 UCR 카운트 값은 계속해서 증가한다. 이 경우에는 IRQ는 발생하지 않는다.
상기 설정된 카운트 리셋 값(NRST')이 상기 특정 시점(t1')에서의 UCR 카운트 값(N1')보다 작게 되는 경우는 실제로 카운트 리셋 값(NRST')을 설정한 시간 이후로 특정 이유에 의해 시간 지연이 발생하여 상기 설정된 카운트 리셋 값(NRST')이 상기 특정 시점(t1')에서의 UCR 카운트 값(N1')보다 작게 되는 경우를 의미한다. 이때, 상기 특정 이유는 예컨대, 분할/분주기(110)에 의해 입력되는 내부 동작 클럭(DCLK)과 제2 버스(800)를 통해 입력되는 버스 클럭이 비동기적이기 때문에 발생하는 이유에 해당할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니며, 시간 지연을 일으킬 수 있는 모든 이유를 포함할 수 있다.
도 6a 및 도 6b는 본 발명의 다른 실시예에 따른 시스템 타임의 구현 방법을 설명하기 위한 도면이다.
도 6a 및 도 6b는 2개의 카운트 리셋 값(NRST1 NRST2)이 설정될 수 있다. 특정 시점(t1)에서 상기 2개의 카운트 리셋 값(NRST1 NRST2)이 설정된 것으로 판단되는 경우, 시간 지연으로 인해 상기 설정된 제1 카운트 리셋 값(NRST1)은 상기 특정 시점(t1)에서의 UCR 카운트 값(N1)보다 작지만, 제2 카운트 리셋 값(NRST2)은 상기 특정 시점(t1)에서의 UCR 카운트 값(N1)보다 클 수 있다.
따라서, 상기 UCR 카운트 값이 제2 카운트 리셋 값(NRST2)과 동일하게 되는 시점(tRST2)에 상기 UCR 카운트 값이 0으로 리셋된다. UTR(132)은 상기 2개의 카운트 리셋 값(NRST1 NRST2) 중 어느 카운트 리셋 값에 의하여 리셋되었는지 여부를 기록할 수 있다.
도 6a 및 도 6b에서는 2개의 카운트 리셋 값(NRST1 NRST2)이 설정된다. 따라서, 시간 지연이 발생하여 상기 설정된 제1 카운트 리셋 값(NRST1)이 상기 특정 시점(t1)에서의 UCR 카운트 값(N1)보다 작더라도 제2 카운트 리셋 값(NRST2)은 상기 특정 시점(t1)에서의 UCR 카운트 값(N1)보다 크기 때문에, 도 5a 및 도 5b와 달리 UCR 카운트 값이 상기 설정된 카운트 리셋 값(NRST')과 동일한 시점이 발생하지 않는 경우가 일어나지 않으므로 UCR 카운트 값이 계속해서 증가하지 않는다.
도 6a 및 도 6b에 설명된 시스템 타임 구현 방법에 의해, 상기 타이머(100)는 카운트 리셋 값에 따른 고정 주기마다 TIG(140)롤 통해 IRQ를 발생시킬 수 있고, 시스템 타임이 고정 주기적으로 업데이트될 수 있다.
상기 타이머(100)는 가변적인 주기를 제공할 수도 있다. 이 경우, 가변적인 주기를 제공하기 위하여 ECB(120)는 카운트 리셋 값을 변경할 수 있다. 상기 타이머(100)에 의해 가변적인 주기가 제공되는 경우, 필요 시점에서만 시스템 타임을 업데이트할 수 있어 타이머(100)가 소모하는 전력을 감소시킬 수 있다.
도 7a 및 도 7b는 본 발명의 또 다른 실시예에 따른 가변 주기 시스템 타임에 관한 설명을 위한 도면이다. 도 7a 및 도 7b를 참고하면, 특정 시점(Tc)에서 ECB(120)가 변경된 2개의 카운트 리셋 값을 설정하여 주기를 4에서 3으로 변경할 수 있다. 시스템 타임 업데이트 지연 시간(t_delay)이 있더라도 변경된 주기 3(t+3)이내에서 주기를 4에서 3으로 변경할 수 있으며, 특정 시점(Tc)으로부터 3주기 후에 시스템 타임 업데이트가 발생하는데 문제가 없다. 반면, 도 8a 및 도 8b는 본 발명의 비교 예에 대한 그래프로, 본 발명의 실시예와 달리 문제점이 있는바, 이하 살펴본다.
도 8a 및 도 8b는 본 발명의 비교 예에 따른 가변 주기 시스템 타임에 관한 설명을 위한 도면이다. 본 발명의 비교 예에 따른 가변 주기 시스템 타임은 본 발명과 달리 2개의 타이머, 즉, 고정 주기 다운 카운트 타이머 및 인터럽트 타이머에 의해 업데이트된다.
도 8a 및 도 8b 각각에서, 고정 주기 다운 카운트 타이머에 대한 주기 그래프는 위의 그래프이고, 인터럽트 타이머에 대한 주기 그래프는 아래 그래프이다. 또한, 고정 주기 다운 카운트 타이머의 주기는 1의 고정 주기로 설정되어 다운 카운트 되며, 인터럽트 타이머의 주기는 5의 주기로 설정된다.
특정 시점(Tc')으로부터 고정 주기 다운 카운트 타이머의 3주기 후에 시스템 타임 업데이트를 하고자 할 때, 도 8a의 경우, 특정 시점(Tc')으로부터 시스템 타임 업데이트 지연 시간(t_delay)을 지난 시점이 고정 주기 다운 카운트 타이머의 주기 이내에 있으므로, 상기 특정 시점(Tc')으로부터 고정 주기 다운 카운트 타이머의 3주기 후에 시스템 타임 업데이트가 발생하여 문제가 없다.
하지만, 도 8b의 경우, 특정 시점(Tc')으로부터 시스템 타임 업데이트 지연 시간(t_delay)을 지난 시점이 고정 주기 다운 카운트 타이머의 주기를 벗어나 있으므로, 상기 특정 시점(Tc')으로부터 고정 주기 다운 카운트 타이머의 3주기 후에 시스템 타임 업데이트가 발생하는 것이 아니라, 상기 특정 시점(Tc')으로부터 고정 주기 다운 카운트 타이머의 4주기 후에 시스템 타임 업데이트가 발생한다. 따라서, 1주기만큼의 시간 에러(TError)가 발생하는 문제점이 있다. 또한, 본 발명의 비교 예에 따른 타이머는 2개의 타이머를 사용하여 본 발명에 비해 비경제적이다.
따라서, 본 발명에 따르면, 시스템 타임의 주기를 가변하는 경우에도 정확성이 유지되는 장점을 가진다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 본 발명에 따른 객체 정보 추정 방법을 수행하기 위한 프로그램 코드는 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 전송될 수도 있다.
또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: SOC
20: 메모리
30: 외부 인터페이스
100: 타이머
110: 분할/분주기
120: ECB
130: 업-카운팅 블록
132: UTR
134: UCR
140: TIG
200: 메모리 컨트롤러
300: 제1 코어
400: CPU
500: 제2 코어
600: UART
700: 제1 버스
800: 제2 버스
900: 클럭 발생기

Claims (10)

  1. 카운트 리셋 값을 설정하는 적어도 하나의 버퍼;
    상기 적어도 하나의 버퍼로부터 카운트 리셋 값을 입력받고, 카운트 값을 증가시켜 상기 카운트 값이 상기 카운트 리셋 값과 동일한 경우, 상기 카운트 값을 리셋시키는 업-카운팅 블록; 및
    상기 업-카운팅 블록으로부터 상기 카운트 값이 리셋되었음을 수신하여 인터럽트 요청하는 인터럽트 발생기를 포함하며,
    상기 적어도 하나의 버퍼는, 제1 카운트 리셋 값을 설정하는 제1 버퍼 및 제2 카운트 리셋 값을 설정하는 제2 버퍼를 포함하고,
    상기 제1 및 제2 버퍼 각각은, 상기 제1 및 제2 카운트 리셋 값을 변경하고, 상기 카운트 값이 증가하는 동안 상기 변경된 제1 및 제2 카운트 리셋 값을 설정하는 타이머.
  2. 제1항에 있어서,
    상기 적어도 하나의 버퍼가 2개 이상일 경우, 상기 카운트 리셋 값을 2개 이상을 설정하며,
    상기 카운트 값이 상기 2개 이상의 카운트 리셋 값 중 어느 하나와 동일한 경우, 상기 카운트 값을 리셋시키는 타이머.
  3. 제1항에 있어서, 상기 타이머는
    클럭 발생기로부터 입력받은 클럭 신호를 분주하여 상기 업-카운팅 블록에 전송하는 분할/분주기를 더 포함하고,
    상기 업-카운팅 블록은 상기 분주된 클럭 신호에 동기화하여 상기 카운트 값을 증가시키는 타이머.
  4. 제3항에 있어서, 상기 업-카운팅 블록은
    상기 분주된 클럭 신호에 동기화하여 상기 카운트 값을 증가시키며 상기 적어도 하나의 버퍼로부터 입력받은 상기 카운트 리셋 값을 저장하는 업-카운팅 레지스터; 및
    상기 레지스터에 연결되어 상기 카운트 값이 상기 카운트 리셋 값과 동일한지를 판단하여 동일한 경우 상기 카운트 값을 리셋시키는 리셋 블록을 포함하는 타이머.
  5. 제3항에 있어서,
    상기 클럭 발생기는 상기 타이머 내부 또는 외부에 위치하는 타이머.
  6. 삭제
  7. 제4항에 있어서,
    상기 적어도 하나의 버퍼는 버스와 연결되고, 상기 버스로부터 입력되는 제어 신호에 의해 상기 카운트 리셋 값을 설정하는 타이머.
  8. 제7항에 있어서,
    상기 업-카운팅 레지스터 및 상기 버스와 연결되어 상기 카운트 값을 상기 버스를 통해 적어도 하나의 외부 코어로 전송하는 관찰 블록을 더 포함하는 타이머.
  9. 제1항에 있어서, 상기 인터럽트 발생기는
    상기 인터럽트 요청을 인에이블 또는 디스에이블시키는 타이머.
  10. 제1항 내지 제5항 및 제7항 내지 제9항 중 어느 한 항의 타이머를 포함하는 집적 회로 디바이스.
KR1020100092029A 2010-09-17 2010-09-17 타이머 및 이를 포함하는 집적 회로 디바이스 KR101689279B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100092029A KR101689279B1 (ko) 2010-09-17 2010-09-17 타이머 및 이를 포함하는 집적 회로 디바이스
US13/229,275 US8826061B2 (en) 2010-09-17 2011-09-09 Timer, method of implementing system time using a timer, and integrated circuit device including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100092029A KR101689279B1 (ko) 2010-09-17 2010-09-17 타이머 및 이를 포함하는 집적 회로 디바이스

Publications (2)

Publication Number Publication Date
KR20120029904A KR20120029904A (ko) 2012-03-27
KR101689279B1 true KR101689279B1 (ko) 2016-12-23

Family

ID=45818820

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100092029A KR101689279B1 (ko) 2010-09-17 2010-09-17 타이머 및 이를 포함하는 집적 회로 디바이스

Country Status (2)

Country Link
US (1) US8826061B2 (ko)
KR (1) KR101689279B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105843325B (zh) * 2016-03-21 2019-02-22 南京天易合芯电子有限公司 一种适用于soc的实时时钟控制系统
TWI700893B (zh) * 2019-07-01 2020-08-01 奕力科技股份有限公司 時間校正電路以及其時間校正方法
US11133804B1 (en) * 2020-12-18 2021-09-28 Texas Instruments Incorporated Stackable timer

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080159059A1 (en) * 2007-01-03 2008-07-03 Freescale Semiconductor, Inc. Progressive memory initialization with waitpoints

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4161787A (en) * 1977-11-04 1979-07-17 Motorola, Inc. Programmable timer module coupled to microprocessor system
JPS63123218A (ja) * 1986-11-12 1988-05-27 Nec Corp タイマ/カウンタ回路
EP0666530A3 (en) 1994-02-02 1996-08-28 Advanced Micro Devices Inc Periodic system management interrupt source and power management system using it.
US5594894A (en) * 1994-10-07 1997-01-14 Microchip Technology Incorporated Microcontroller with programmable postscaler for pulse width modulation interrupt
US5708817A (en) * 1995-05-31 1998-01-13 Apple Computer, Inc. Programmable delay of an interrupt
KR19990069963A (ko) 1998-02-16 1999-09-06 구본준 타이머
CA2249927C (en) * 1998-10-09 2006-12-19 Celestica North America Inc. Multifunction processor timer
DE10229129C1 (de) * 2002-06-28 2003-12-11 Advanced Micro Devices Inc Debug-Schnittstelle für einen Ereigniszeitgeber
KR100462736B1 (ko) * 2003-04-30 2004-12-23 삼성전자주식회사 다수의 타임 인터럽트 신호를 발생시킬 수 있는 타이머 장치
DE10336585B4 (de) 2003-08-08 2008-01-17 Texas Instruments Deutschland Gmbh Echtzeit-Interruptmodul für Betriebssysteme und zeitgetriggerte Anwendungen
US7461283B2 (en) 2005-03-23 2008-12-02 Texas Instruments Incorporated Skip counter for system timer

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080159059A1 (en) * 2007-01-03 2008-07-03 Freescale Semiconductor, Inc. Progressive memory initialization with waitpoints

Also Published As

Publication number Publication date
US8826061B2 (en) 2014-09-02
US20120072760A1 (en) 2012-03-22
KR20120029904A (ko) 2012-03-27

Similar Documents

Publication Publication Date Title
US10853304B2 (en) System on chip including clock management unit and method of operating the system on chip
US9785219B2 (en) Low power timing, configuring, and scheduling
US9298212B2 (en) Distributed management of a shared clock source to a multi-core microprocessor
JP5159316B2 (ja) オンデマンド電力管理の方法及び機器
KR101419789B1 (ko) 요구에 따른 전력 관리를 위한 방법 및 장치
US9429981B2 (en) CPU current ripple and OCV effect mitigation
KR102164099B1 (ko) 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 장치
US9740454B2 (en) Crossing pipelined data between circuitry in different clock domains
US10055369B1 (en) Systems and methods for coalescing interrupts
US20130297957A1 (en) Oscillator settling time allowance
US8892922B2 (en) Voltage detection
US11275708B2 (en) System on chip including clock management unit and method of operating the system on chip
KR20170088768A (ko) 반도체 장치
KR101689279B1 (ko) 타이머 및 이를 포함하는 집적 회로 디바이스
US8819401B2 (en) Semiconductor device and reset control method in semiconductor device
US20170212567A1 (en) Semiconductor device, semiconductor system and method for operating semiconductor device
KR20180078558A (ko) 시스템 온 칩의 구동 방법, 이를 수행하는 시스템 온 칩 및 이를 포함하는 전자 시스템
US10429881B2 (en) Semiconductor device for stopping an oscillating clock signal from being provided to an IP block, a semiconductor system having the semiconductor device, and a method of operating the semiconductor device
US20230006684A1 (en) Method for communicating a reference time base in a microcontroller, and corresponding microcontroller integrated circuit
US20150106635A1 (en) Semiconductor integrated circuit and method of controlling the same
TW201928594A (zh) 週期行程執行系統
JP2019109743A (ja) リセット供給装置およびリセット供給装置の制御方法
TW201837652A (zh) 半導體裝置及半導體系統
KR20170088758A (ko) 반도체 장치
JP2015022471A (ja) 半導体集積回路

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