KR100265793B1 - 컴퓨터 시스템의 리얼타임클럭 진단방법 및 그장치 - Google Patents

컴퓨터 시스템의 리얼타임클럭 진단방법 및 그장치 Download PDF

Info

Publication number
KR100265793B1
KR100265793B1 KR1019970054393A KR19970054393A KR100265793B1 KR 100265793 B1 KR100265793 B1 KR 100265793B1 KR 1019970054393 A KR1019970054393 A KR 1019970054393A KR 19970054393 A KR19970054393 A KR 19970054393A KR 100265793 B1 KR100265793 B1 KR 100265793B1
Authority
KR
South Korea
Prior art keywords
clock
time
interrupt
test
register
Prior art date
Application number
KR1019970054393A
Other languages
English (en)
Other versions
KR19990033133A (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 KR1019970054393A priority Critical patent/KR100265793B1/ko
Publication of KR19990033133A publication Critical patent/KR19990033133A/ko
Application granted granted Critical
Publication of KR100265793B1 publication Critical patent/KR100265793B1/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/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 개인용 컴퓨터나 서버에 구비된 리얼타임클럭(Real Time Clock)을 검사하기 위한 진단방법 및 그 장치에 관한 것으로, 컴퓨터 시스템을 초기화하는 단계; 상기 초기화 과정 중에 리얼타임클럭 모듈을 진단하기 위한 루틴을 수행할지의 여부를 사용자로 하여금 선택하게 하는 단계; 사용자의 선택에 따라 리얼타임클럭 진단루틴을 수행하는 경우 테스트 프로그램을 로딩하여 리얼타임클럭 테스트를 수행하는 단계; 및 상기 테스트 과정 중에 에러가 발생되면 에러 메시지를 출력하는 단계를 포함하는 것을 특징으로 하여, 컴퓨터 초기화시에 RTC 모듈 내부의 레지스터의 상태 및 RTC가 제공하는 시간데이타의 정확성을 검사할 수 있음으로써, 컴퓨터 내의 리얼타임클럭이 안정되게 동작하는지를 수시로 확인할 수 있으며 만일 그 동작에 오류가 발생되면 그 원인을 찾아 유지 보수할 수 있다.

Description

컴퓨터 시스템의 리얼타임클럭 진단방법 및 그 장치
본 발명은 컴퓨터 시스템의 초기화 시에 수행되는 진단(diagnostic) 방법 및 그 장치에 관한 것으로서, 특히 개인용 컴퓨터나 서버에 구비된 리얼타임클럭(Real Time Clock; 이하에서 RTC라 함)을 검사하기 위한 진단방법 및 그 장치에 관한 것이다.
RTC는 내부 발진회로에 연결된 발진기 또는 외부 클럭입력을 구비하여, 다양한 포맷으로 날짜/시각 및 달력 데이터를 제공하는 시계모듈이다. 또한 RTC는 알람기능과 프로그램 가능한 타이머 인터럽트 기능을 제공한다. RTC는 외부 배터리를 사용하여 주전원이 없는 동안에도 메모리에 시간 데이터를 유지하고 시간 계산을 계속하여, 다시 주전원이 켜지면 정상적인 시간 데이터를 제공할 수 있다.
그러나 종래에는 컴퓨터를 처음 켤 때나 초기화할 때 이러한 RTC 모듈 내부의 레지스터의 상태나 RTC가 제공하는 시간데이타의 정확성을 검사하기 위한 진단 루틴이 구비되지 아니하여 컴퓨터에서 제공되는 시간/날짜 등의 데이터가 정확한 것인지를 확인할 수 없었다.
본 발명이 이루고자 하는 기술적 과제는, 컴퓨터를 처음 켤 때나 초기화할 때 RTC 모듈 내부의 레지스터의 상태 및 RTC가 제공하는 시간데이타의 정확성을 검사하기 위한 리얼타임클럭 진단방법 및 그 장치를 제공하는데 있다.
도 1a에서 도 1d는 리얼타임클럭 모듈에 포함된 레지스터의 구성을 도시한 도면이다.
도 2는 본 발명에 따른 리얼타임클럭 진단방법을 포함하는 컴퓨터 시스템의 테스트 방법을 설명하는 플로우차트이다.
도 3은 도 2에 도시된 리얼타임클럭 진단 루틴에 포함되는 테스트 모드를 설명하는 도면이다.
도 4는 본 발명에 따른 클럭/칼렌다 레지스터 테스트를 설명하는 플로우차트이다.
도 5은 본 발명에 따른 제어/상태 레지스터 테스트를 설명하는 플로우차트이다.
도 6은 리얼타임클럭에서의 인터럽트/상태 타이밍도이다.
도 7은 본 발명에 따른 주기적인 인터럽트 테스트를 설명하는 플로우차트이다.
도 8은 본 발명에 따른 알람 인터럽트 테스트를 설명하는 플로우차트이다.
도 9은 본 발명에 따른 리얼타임클럭의 정확도 테스트를 설명하는 플로우차트이다.
도 10은 본 발명에 따른 리얼타임클럭을 진단할 수 있는 컴퓨터 시스템을 도시한 블록도이다.
도 11은 컴퓨터 시스템의 외관을 나타내는 도면이다.
상기의 과제를 이루기 위하여 본 발명에 의한 컴퓨터시스템에서의 리얼타임클럭 진단방법은,
내부 발진회로에 연결된 발진기 또는 외부 클럭입력을 구비하여, 다양한 포맷으로 날짜, 시각 및 달력 데이터를 제공하고, 또한 알람기능과 프로그램 가능한 타이머 인터럽트 기능을 제공하는 시계모듈인 리얼타임클럭을 구비하는 컴퓨터시스템에서, 상기 리얼타임클럭을 진단하기 위한 방법에 있어서,
컴퓨터 시스템을 초기화하는 단계; 상기 초기화 과정 중에 리얼타임클럭 모듈을 진단하기 위한 루틴을 수행할지의 여부를 사용자로 하여금 선택하게 하는 단계; 사용자의 선택에 따라 리얼타임클럭 진단루틴을 수행하는 경우 테스트 프로그램을 로딩하여 리얼타임클럭 테스트를 수행하는 단계; 및 상기 테스트 과정 중에 에러가 발생되면 에러 메시지를 출력하는 단계를 포함하는 것을 특징으로 한다.
상기의 과제를 이루기 위하여 본 발명에 의한 컴퓨터시스템에서의 리얼타임클럭 진단장치는, 내부 발진회로에 연결된 발진기 또는 외부 클럭입력을 구비하여, 다양한 포맷으로 날짜, 시각 및 달력 데이터를 제공하고, 또한 알람기능과 프로그램 가능한 타이머 인터럽트 기능을 제공하는 시계모듈인 리얼타임클럭을 구비하는 컴퓨터시스템에서, 상기 리얼타임클럭을 진단하기 위한 장치에 있어서, 컴퓨터 시스템의 프로세서, 메모리, 디스크 드라이브를 포함한 내부 디바이스의 상태를 검사하기 위한 초기화루틴인 기본부팅루틴 프로그램 및 리얼타임클럭 모듈 내부에 포함된 레지스터의 상태를 검사하기 위한 리얼타임클럭 진단 프로그램을 포함하는 프로그램부; 시스템 초기화 시에 기본부팅루틴 프로그램을 수행하기 전 또는 후에 상기 리얼타임클럭 진단 프로그램을 수행할지의 여부를 묻고 사용자의 선택을 입력받기 위한 선택부; 및 컴퓨터 초기화가 수행되는 동안 선택부에 의한 선택에 따라 기본 부팅루틴 프로그램 또는 리얼타임클럭 진단 프로그램을 수행하기 위한 제어부를 포함하는 것을 특징으로 한다.
이하에서, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 상세히 설명한다.
먼저, RTC 모듈에 포함된 레지스터들에 대하여 살펴본 다음 본 발명에 따른 RTC 진단방법을 설명하기로 한다.
도 1a에서 도 1d는 RTC 모듈에 포함된 레지스터의 구성을 도시한 도면이다. 여기서, 도 1a는 RTC 제어 레지스터 A (CRA), 도 1b는 RTC 제어 레지스터 B (CRB), 도 1c는 RTC 제어 레지스터 C (CRC), 그리고 도 1d는 RTC 제어 레지스터 D (CRD)를 도시한 것이다. RTC 레지스터는 어느 때나 억세스할 수 있지만 CRC 레지스터의 VRT 비트를 읽기 전에는 라이트할 수 없다. 따라서 사용자는 시작 부분에 VRT 비트를 반드시 먼저 읽어야 뱅크 선택 등 다른 동작을 수행할 수 있다.
RS3-03 2 1 0 주기적인 인터럽트 비율
0 0 0 0 none
0 0 0 1 3.90625 msec
0 0 1 0 7.8125 msec
0 0 1 1 122.070 μsec
0 1 0 0 244.141 μsec
0 1 0 1 488.281 μsec
0 1 1 0 976.562 μsec
0 1 1 1 1.953125 msec
1 0 0 0 3.90625 msec
1 0 0 1 7.8125 msec
1 0 1 0 15.625 msec
1 0 1 1 31.25 msec
1 1 0 0 62.5 msec
1 1 0 1 125 msec
1 1 1 0 250 msec
1 1 1 1 500 msec
도 1a에서, CRA 레지스터는 주기적인 인터럽트 비율 선택 및 뱅크 선택을 제어한다. 비트 3-0 (RS3-0)는 주기적인 인터럽트 비율 선택 비트(R/W)로서, 클럭 디바이더 체인으로부터의 15가지 출력 탭 중 하나를 선택하여 주기적인 인터럽트의 비율을 제어한다. 표 1은 주기적인 인터럽트 비율을 인코딩하는 예를 나타낸다.
비트 6-4 (DV2-0)는 디바이더 체인 제어비트(R/W)로서, 타이밍 발생을 위한 디바이더 체인의 구성과 메모리 뱅크의 선택을 제어하며, 다음의 표 2에 나타내었다.
DV 2-06 5 4 선택된 뱅크 구 성
0 0 0 뱅크 0 발진기 디스에이블
0 0 1 뱅크 0 발진기 디스에이블
0 1 0 뱅크 0 정상 동작
0 1 1 뱅크 1 정상 동작
1 0 0 뱅크 2 정상 동작
1 0 1 비정의됨 테스트
1 1 0 뱅크 0 디바이더 체인 리셋
1 1 1 뱅크 0 디바이더 체인 리셋
그리고, 비트 7 (Update in Progress; UIP)은 읽기 전용 비트로서, 그 값이 "0"이면 다음 244 μsec 이내에는 갱신이 일어나지 않고, 그 값이 "1"이면 타이밍 레지스터가 244 μsec 이내에 갱신됨을 나타낸다.
도 1b에서, CRB 레지스터는 다양한 시간, 날짜 선택기능 및 인터럽트의 사용 을 인에이블하며, 모든 비트는 R/W 비트이다. 비트 0 (Daylight Saving Enable; DSE)는 그 값이 "0"이면 일광절약모드를 디스에이블하고, 그 값이 "1"이면 일광절약모드를 인에이블한다. 비트 1 (24/12 시간모드)은 그 값이 "0"이면 12 시간 포맷을 인에이블하고, 그 값이 "1"이면 24 시간 포맷을 인에이블한다. 비트 2 (Data Mode; DM)는 그 값이 "0"이면 BCD 포맷을 인에이블하고, 그 값이 "1"이면 이진 포맷을 인에이블한다. 비트 3은 사용되지 아니하며, 항상 "0"의 값을 가진다.
비트 4 (Updated-Ended Interrupt Enable; UIE)는 그 값이 "0"이면 갱신종료(Updated-Ended) 인터럽트의 발생을 디스에이블하고, 그 값이 "1"이면 갱신종료 인터럽트의 발생을 인에이블한다. 갱신종료 인터럽트는 갱신이 발생된 시점에서 발생된다. 비트 5 (Alarm Interrupt Enable; AIE)는 그 값이 "0"이면 알람(alarm) 인터럽트의 발생을 디스에이블하고, 그 값이 "1"이면 알람 인터럽트의 발생을 인에이블한다. 알람 인터럽트는 알람부에 있는 시각과 같이 되는 시간으로의 갱신 직후에 발생된다. 비트 6 (Periodic Interrupt Enable; PIE)은 그 값이 "0"이면 주기적인 인터럽트의 발생을 디스에이블하고, 그 값이 "1"이면 주기적인 인터럽트의 발생을 인에이블한다. 주기적인 인터럽트의 비율은 CRA 레지스터의 비트 3-0에 의하여 결정된다.
비트 7 (Set Mode; SET)은 그 값이 "0"이면 타이밍 갱신이 정상적으로 발생됨을 나타내고, 그 값이 "1"이면 갱신 발생에 관계없이 시간 레지스터가 억세스될 수 있도록 한다.
도 1c에서, CRC 레지스터는 인터럽트 요청 플래그(Interrupt Request Flag)의 상태를 나타낸다. 비트 3-0 (Reserved)는 항상 "0" 의 값을 가진다. 비트 4 (Update-Ended Interrupt Flag; UF)는 그 값이 "0"이면 마지막 데이터가 읽힌 이후에 갱신이 일어나지 않았음을 나타내고, 그 값이 "1"이면 타임 레지스터가 갱신되었음을 나타낸다. 비트 5 (Alarm Interrupt Flag; AF)는 그 값이 "0"이면 마지막 데이터가 읽힌 이후로 알람이 검출되지 않았음을 나타내며, 그 값이 "1"이면 알람 조건이 검출되었음을 나타낸다. 비트 6 (Periodic Interrupt Flag; PF)은 그 값이 "0"이면 마지막 데이터가 읽힌 이후로 선택된 탭 동안에 아무런 트랜지션(transition)이 일어나지 않았음을 나타내고, 그 값이 "1"이면 디바이더 체인의 선택된 탭 동안에 트랜지션이 일어났음을 나타낸다.
비트 7 (Interrupt Request Flag; IRQF)은 RTC의 IRQ# 출력값의 역이며, IRQ#이 인액티브("1")이면 "0"의 값을 가지고, PIE 및 PF가 모두 "1", AIE 및 AF가 모두 "1", 또는 UIE 및 UF가 모두 "1" 이면서 IRQ#이 액티브("0")이면 "1"의 값을 가진다.
도 1d에서, CRD 레지스터는 RTC RAM 데이터의 유효성을 나타낸다. 비트 6-0 (Reserved)는 항상 "0" 의 값을 가진다. 비트 7 (Valid RAM and Time; VRT)은 논리회로에 인가되는 전압을 감지하여 그것이 너무 낮은지의 여부를 나타내며, 그 비트의 값이 "0"이면 RTC 논리회로에 인가되는 전압이 너무 낮다는 것을 나타내고, 그 비트의 값이 "1"이면 RTC 데이터가 유효함을 나타낸다.
상술한 바와 같은 레지스터들을 구비한 RTC모듈에서 시간 발생 기능 및 시간 갱신 기능은 다음과 같이 수행된다. RTC는 외부에서 연결된 발진기에 의한 36.768 KHz를 215으로 나누어 1 Hz의 신호로 만든다. CRA 레지스터의 비트 4-6 (DV0-2)은 메모리 내에 있는 디바이더 체인의 동작 및 위치를 제어하며, CRA 레지스터 비트 0-3 (RS0-3)은 디바이더 체인에서 15탭 중 하나를 선택하여 주기적인 인터럽트로 사용되게 한다. 시간관리는 하드웨어에 의하여 수행되며, 초 당 한번 시간값을 갱신한다. 초, 분, 시, 요일, 일, 월 및 년에 대한 값은 모든 세 메모리 뱅크내의 공통 저장영역에 위치된다. 세기(century) 값은 뱅크 1에 위치된다. 시간저장위치에의 읽기/쓰기가 그 위치의 갱신과 동시에 일어나지 않도록 하여야 한다. 그렇지 않으면 예견치 아니한 결과가 발생할 수도 있다.
도 2는 본 발명에 따른 리얼타임클럭 진단방법을 포함하는 컴퓨터 시스템의 테스트 방법을 설명하는 플로우차트이다.
먼저, 사용자가 컴퓨터를 처음 켤 때나 사용 중 하드 리셋키이나 소프트 리셋키 등에 의하여 시스템 초기화할 때(21), 컴퓨터 시스템은 프로세서, 메모리 등의 내부 디바이스의 상태를 검사하고, 만일 이상이 없다면 지정된 부팅 순서에 따라 자동으로 부팅된다. 이 때, RTC 모듈을 진단하기 위한 루틴을 수행할지의 여부를 사용자로 하여금 선택하게 한다(22). 만일 최근에 RTC 모듈 진단루틴을 수행한 적이 있다면 굳이 다시 이를 수행할 필요가 없으므로 그대로 테스트를 종료한다. RTC 모듈 진단루틴을 수행하는 경우에는 테스트 프로그램을 로딩하여 RTC 테스트를 수행한다(23).
여기서 수행되는 테스트 루틴으로는 도 3에 도시된 바와 같이 클럭 및 칼렌더 레지스터 진단루틴, 제어 및 상태 레지스터 진단루틴, 주기적인 IRQ 진단루틴, 알람 IRQ 진단루틴, RTC 정확도 진단루틴 등을 포함한다. 이러한 다수의 테스트들을 차례대로 모두 수행하거나 또는 사용자의 선택에 따라 선택적으로 일부의 테스트만을 수행하게 할 수 있다.
만일 테스트 중에 에러가 발생되면(24) 그에 관련된 에러 데이터를 로깅하고 또한 화면에 에러메세지를 디스플레이한다(25). 모든 테스트 또는 선택된 테스트가 종료되면(26) RTC 진단 루틴이 종료되고 컴퓨터 프로세서에 의한 다른 동작을 수행한다.
도 3은 도 2에 도시된 RTC 진단 루틴에 포함되는 테스트 모드를 설명하는 도면이다. RTC 진단 루틴(30)에는 클럭/칼렌더 데이터를 저장하는 레지스터에 대하여 리드/라이트 동작을 수행하여 이들이 정상적으로 동작하는지를 확인하는 클럭/칼렌다 레지스터 테스트(31), 인터럽트 인에이블 비트들 및 상태 플래그들이 정상적으로 동작하는지를 확인하는 제어/상태 레지스터 테스트(32), 주기적인 인터럽트 인에이블이 정상적으로 동작하는지를 확인하는 주기적인 IRQ 테스트(33), 알람 인터럽트 인에이블이 정상적으로 동작하는지를 확인하는 알람 IRQ 테스트(34), 그리고 RTC 모듈에서 계산되어 출력되는 시각 데이터의 정확도를 검사하는 RTC 정확도 테스트(35) 등을 포함하며, 각 구체적인 테스트 방법은 도 4에서 도 9을 통하여 자세히 설명한다.
도 4는 본 발명에 따른 클럭/칼렌다 레지스터 테스트를 설명하는 플로우차트이다.
먼저 현재 상태의 인터럽트 마스크 데이터를 저장하고(40), 모든 인터럽트를 마스크하고 CRB 레지스터의 SET 비트를 "1"로 설정하여 클럭의 갱신을 정지시키고 갱신 발생에 관계없이 시간 레지스터가 억세스될 수 있도록 한다(41). 클럭 및 칼렌더 레지스터에 저장된 현재의 시간 데이터를 독출하여 저장한 다음(42), 테스트를 위한 소정의 시간 데이터를 클럭 및 칼렌더 레지스터에 라이트한다(43). 그 다음, 클럭 및 칼렌더 레지스터에 저장된 데이터를 리드(44)하여 리드된 데이터와 테스트용 시간 데이터와 같은지를 판단하고(45), 만일 데이터가 서로 같지 아니하면 에러 메시지를 출력한다(46). 위와 같은 테스트가 끝나면 42단계에서 저장된 시간 데이터를 클럭 및 칼렌더 레지스터에 다시 라이트한다(47). CRB 레지스터의 SET 비트를 "0"으로 리셋하여 클럭을 다시 동작시키고, 40단계에서 저장된 인터럽트 마스크 데이터에 따라 다시 인터럽트 마스크를 설정한다(48).
도 5은 본 발명에 따른 제어/상태 레지스터 테스트를 설명하는 플로우차트이다. 먼저, RTC에서의 인터럽트 처리와 인터럽트 플래그에 대하여 살펴본다.
RTC 로직회로는 세가지 인터럽트 조건을 처리하는 하나의 인터럽트 리퀘스트 라인(IRQ#)을 가지고 있다. 인터럽트가 발생할 때 CRB 레지스터의 각 인에이블 비트가 셋되어 있으면 주기적 알람 및 갱신종료(Updated-Ended) 인터럽트가 발생된다(즉, IRQ#은 로우로 구동된다). 그리고 CRC 레지스터를 읽으면 모든 인터럽트 플래그가 클리어된다. 따라서 다중 인터럽트가 인에이블될 때에는 그 인터럽트 루틴은 먼저 CRC 레지스터의 값을 읽어 저장한 다음 이 저장값을 참조하여 인터럽트를 처리하는 것이 바람직하다.
도 6은 인터럽트/상태 타이밍도를 나타낸다. 여기서, A-B 구간은 UIP 비트가 하이된 때부터 갱신이 발생되는 기간 (= 244μsec), D-C 구간은 PF 비트가 하이가 된 후 UF 비트가 하이가 되는 기간, 주기적 인터럽트가 인에이블된 후 갱신종료 인터럽트가 인에이블될 때까지의 기간 (= 인터럽트 주기/2 + 244μsec), 그리고 C-E 구간은 UF 비트가 하이가 된 후 AF 비트가 하이가 되는 기간으로, 갱신종료 인터럽트가 인에이블된 후 알람 인터럽트가 인에이블될 때까지의 기간 (= 30.5μsec)이다. 주기적 인터럽트가 인에이블되어 있으면 PF 비트는 주기적으로 셋되고, UIP 비트의 하이 구간 동안에 갱신이 발생되면 UF 비트가 셋되고, 알람 인터럽트가 인에이블되어 있으면 UF 비트가 셋된 후 AF 비트가 셋된다.
도 5 및 도 6을 참조하여, 본 발명에 따른 제어/상태 레지스터 테스트 방법을 설명한다.
먼저 현재 상태의 인터럽트 마스크 데이터를 저장한다(51). CRA 레지스터의 UIP 비트의 값을 읽고(521), 소정의 시간이 경과된 후(523) UIP 비트의 값을 다시 읽어, UIP 비트의 값이 토글되었는지를 판단한다(525). UIP 비트의 값이 토글되지 않았으면, 즉 521단계에서 리드된 값과 523단계 후에 리드된 값이 서로 다르면, UIP 비트 테스트 에러 메시지를 출력한다(527).
CRB 레지스터의 PIE 비트를 "1"로 셋하여 주기적 인터럽트를 인에이블하고(531), 소정의 시간이 경과된 후(533) PF 비트의 값이 토글되었는지를 판단한다(535). PF 비트의 값이 토글되지 않았으면, 즉 PIE 비트가 셋된 후 일정 시간이 지난 후에도 PF 비트가 셋되지 않으면, PF 비트 테스트 에러 메시지를 출력한다(537).
CRB 레지스터의 UIE 비트를 "1"로 셋하여 갱신종료 인터럽트를 인에이블하고(541), PF 비트가 셋되고 소정의 시간이 경과된 후(543) UF 비트의 값이 토글되었는지를 판단한다(545). UF 비트의 값이 토글되지 않았으면, 즉 UIE 비트가 셋된 후 일정 시간이 지난 후에도 UF 비트가 셋되지 않으면, UF 비트 테스트 에러 메시지를 출력한다(547).
CRB 레지스터의 AIE 비트를 "1"로 셋하여 알람 인터럽트를 인에이블하고(551), UF 비트가 셋되고 소정의 시간이 경과된 후(553) AF 비트의 값이 토글되었는지를 판단한다(555). AF 비트의 값이 토글되지 않았으면, 즉 AIE 비트가 셋된 후 일정 시간이 지난 후에도 AF 비트가 셋되지 않으면, AF 비트 테스트 에러 메시지를 출력한다(557).
그런 다음, 51단계에서 저장된 인터럽트 마스크 데이터에 따라 다시 인터럽트 마스크를 설정한다(56).
도 7은 본 발명에 따른 주기적인 IRQ 테스트를 설명하는 플로우차트이다.
먼저 현재 상태의 인터럽트 마스크 데이터를 저장(71)한 다음, UIP 비트를 "0"으로 리셋하고 SET 비트를 "1"로 셋하여 RTC 레지스터를 초기화한다(72). CRB 레지스터의 PIE 비트를 "1"로 셋하여 주기적 인터럽트를 인에이블하고(73), 모든 인터럽트를 언마스크(unmask)(74)한 다음, 소정의 타임아웃을 기다린 후(75) 그 시간 이내에 PF 비트가 "1"로 셋되어 인터럽트가 발생된지의 여부를 판단한다(76). 76단계에서 인터럽터가 발생하지 아니하면 IRQ 에러 메시지를 출력한다(77). 마지막으로 CRB 레지스터의 PIE 비트를 리셋하여 주기적 인터럽트를 디스인에이블하고(78), 71단계에서 저장된 인터럽트 마스크 데이터에 따라 다시 인터럽트 마스크를 설정한다(79).
도 8은 본 발명에 따른 알람 IRQ 테스트를 설명하는 플로우차트이다. 알람기능은 RTC 시각이 이미 저장된 알람 시각에 도달하면 알람을 발생시키는 기능이다. RTC 시간이 갱신된 후에 그 시각이 알람시각 저장위치에 저장된 시각과 일치되면 CRC 레지스터의 알람 플래그(AF)가 셋("1")된다. 만일 CRB 레지스터의 알람 인터럽트 인에이블 (AIE) 비트가 셋되어 있으면 알람 플래그(AF)의 셋팅으로 인하여 IRQ# 내부 인터럽트 리퀘스트를 발생한다(IRQ# = "0").
먼저 현재 상태의 인터럽트 마스크 데이터를 저장하고(80), 모든 인터럽트를 마스크한다(81). 클럭 레지스터 및 알람 레지스터에 저장된 현재의 클럭시각 데이터 및 알람시각 데이터를 독출하여 저장(82)한 다음, 소정의 테스트용 클럭시각 데이터를 클럭 레지스터에, 그리고 테스트용 클럭시각보다 소정 시간만큼 늦은 알람시각 데이터를 알람 레지스터에 라이트한다(83). CRB 레지스터의 알람 인터럽트 인에이블 비트(AIE)를 "1"로 셋하여 알람 인터럽트를 인에이블하고, CRB 레지스터의 주기적 인터럽트 인에이블 비트(PIE)를 "1"로 셋하여 주기적 인터럽트를 인에이블(84)한 다음, 모든 인터럽트를 언마스크(unmask)한다(85). 소정 시간을 지연시켜 클럭시각과 알람시각 간의 시간 차이 후에 알람 플래그 PF 가 "1"로 설정된지의 여부에 따라 알람 인터럽트가 발생한지의 여부를 판단한다(87). 만일 87단계에서 인터럽터가 발생하지 아니하면 에러 메시지를 출력한다(88). 마지막으로 80단계에서 저장된 데이터로 인터럽트 마스크를 다시 설정하고(89), 82단계에서 저장된 현재의 클럭시각 및 알람시각 데이터를 클럭 레지스터 및 알람 레지스터에 다시 라이트한다(90).
도 9은 본 발명에 따른 RTC 정확도 테스트를 설명하는 플로우차트이다.
먼저 현재 상태의 인터럽트 마스크 데이터를 저장하고(91), 모든 인터럽트를 마스크(92)한 다음, 클럭 레지스터에 저장된 현재의 제1클럭시각 데이타를 독출한다(93). 소정 시간을 지연(94)한 후 클럭 레지스터의 제2클럭시각 데이터를 독출한다(95). 제2클럭시각과 제1클럭시각의 차이를 계산하여(96), 그 차이값을 지연시간과 비교하여 소정의 허용오차(5%)의 범위 내에 들어가는지의 여부를 판단한다(97). 97단계에서 차이값이 오차범위 내에 들어가지 아니하면 정확도 테스트 에러 메시지를 출력한다(98). 마지막으로 91단계에서 저장된 데이터로 인터럽트 마스크를 다시 설정한다(99).
도 10은 본 발명에 따른 리얼타임클럭을 진단할 수 있는 컴퓨터 시스템을 도시한 블록도이다. 리얼타임클럭 모듈에 포함된 레지스터(107)는 주기적인 인터럽트 비율 선택 및 뱅크 선택을 제어하기 위한 RTC 제어 레지스터 A (CRA; 108), 다양한 시간, 날짜 선택기능 및 인터럽트의 사용을 인에이블하기 위한 RTC 제어 레지스터 B (CRB; 109), 인터럽트 요청 플래그(Interrupt Request Flag)의 상태를 나타내는 RTC 제어 레지스터 C (CRC; 110), 그리고 RTC RAM 데이터의 유효성을 나타내는 RTC 제어 레지스터 D (CRD; 111)를 포함하며, 도 1을 통하여 설명된 바와 같다.
프로그램부(101)는 컴퓨터를 켤 때나 초기화할 때 컴퓨터 시스템의 프로세서, 메모리, 디스크 드라이브 등을 포함한 내부 디바이스의 상태를 검사하기 위한 초기화루틴인 기본부팅루틴 프로그램(102) 및 리얼타임클럭 모듈 내부에 포함된 레지스터의 상태를 검사하기 위한 RTC진단 프로그램(103)을 포함한다.
선택부(105)는 시스템 초기화 시에 기본부팅루틴 프로그램(102)을 수행하기 전 또는 후에 상기 RTC진단 프로그램(103)을 수행할지의 여부를 묻고 사용자의 선택을 입력받는다.
제어부(104)는 컴퓨터 초기화가 수행되는 동안 선택부에 의한 선택에 따라 기본 부팅루틴 프로그램(102) 및/또는 RTC진단 프로그램(103)을 수행하며, 그 테스트 결과를 표시부(106)에 디스플레이한다. 제어부(104)에 의하여 수행되는 RTC진단 프로그램(103)은 전술한 테스트 방법에 따라 리얼타임클럭의 레지스터를 검사한다.
도 11은 컴퓨터 시스템의 외관을 나타내는 도면으로서, 컴퓨터는 모니터(113), 키보드(115), 그리고 메인보드, 전원장치 등을 포함하는 본체(114)로 구성된다. 또한 컴퓨터의 주전원을 온/오프하기 위한 주전원 스위치(116) 뿐만 아니라 RTC 진단루틴 수행을 설정하기 위한 설정키(117)를 구비한다.
컴퓨터 시스템에 전원이 켜지면 제어부는 프로세서, 메모리 등의 내부 디바이스의 상태를 검사하고, 만일 이상이 없다면 지정된 부팅 순서에 따라 자동으로 부팅된다. 이 때 설정키(117)를 온해 두면, 컴퓨터가 처음 켜질 때 또는 초기화할 때에 본 발명에 따른 RTC 진단루틴이 자동적으로 수행된다. 또한 이러한 외부 키 동작에 의해서가 아니라 초기화 과정 중에 화면에 메뉴를 띄워 키보드에 의한 키입력 선택에 따라 RTC 진단루틴의 수행을 선택하게 할 수 있다.
이상에서 설명한 바와 같이, 본 발명에 의한 컴퓨터 시스템의 리얼타임클럭 진단방법 및 그 장치에 의하면, 컴퓨터 초기화시에 RTC 모듈 내부의 레지스터의 상태 및 RTC가 제공하는 시간데이타의 정확성을 검사할 수 있음으로써, 컴퓨터 내의 리얼타임클럭이 안정되게 동작하는지를 수시로 확인할 수 있으며 만일 그 동작에 오류가 발생되면 그 원인을 찾아 유지 보수할 수 있다.

Claims (10)

  1. 내부 발진회로에 연결된 발진기 또는 외부 클럭입력을 구비하여, 다양한 포맷으로 날짜, 시각 및 달력 데이터를 제공하고, 또한 알람기능과 프로그램 가능한 타이머 인터럽트 기능을 제공하는 시계모듈인 리얼타임클럭을 구비하는 컴퓨터시스템에서, 상기 리얼타임클럭을 진단하기 위한 방법에 있어서,
    컴퓨터 시스템을 초기화하는 단계;
    상기 초기화 과정 중에 리얼타임클럭 모듈을 진단하기 위한 루틴을 수행할지의 여부를 사용자로 하여금 선택하게 하는 단계;
    사용자의 선택에 따라 리얼타임클럭 진단루틴을 수행하는 경우 테스트 프로그램을 로딩하여 리얼타임클럭 테스트를 수행하는 단계; 및
    상기 테스트 과정 중에 에러가 발생되면 에러 메시지를 출력하는 단계를 포함하는 것을 특징으로 하는 컴퓨터시스템에서의 리얼타임클럭 진단방법.
  2. 제1항에 있어서, 상기 리얼타임클럭 진단루틴은
    클럭 및 칼렌더 데이터를 저장하는 레지스터에 대하여 리드 및 라이트 동작을 수행하여 상기 레지스터들이 정상적으로 동작하는지를 확인하는 클럭/칼렌다 레지스터 테스트;
    인터럽트 인에이블 비트들 및 상태 플래그들이 정상적으로 동작하는지를 확인하는 제어/상태 레지스터 테스트;
    주기적인 인터럽트 인에이블이 정상적으로 동작하는지를 확인하는 주기적인 인터럽트 테스트;
    알람 인터럽트 인에이블이 정상적으로 동작하는지를 확인하는 알람 인터럽트 테스트; 및
    리얼타임클럭 모듈에서 계산되어 출력되는 시각 데이터의 정확도를 검사하는 RTC 정확도 테스트를 포함하는 것을 특징으로 하는 컴퓨터시스템에서의 리얼타임클럭 진단방법.
  3. 제2항에 있어서, 상기 클럭 및 칼렌더 레지스터 테스트는
    현재 상태의 인터럽트 마스크 데이터를 저장하는 단계;
    모든 인터럽트를 마스크하고 클럭의 갱신을 정지시키고 갱신 발생에 관계없이 시간 레지스터가 억세스되게 하는 단계;
    클럭 및 칼렌더 레지스터에 저장된 현재의 시간 데이터를 독출하여 저장하는 단계;
    테스트를 위한 소정의 시간 데이터를 클럭 및 칼렌더 레지스터에 라이트하는 단계;
    클럭 및 칼렌더 레지스터에 저장된 데이터를 리드하는 단계;
    리드된 데이터와 테스트용 시간 데이터와 같은지를 판단하고, 만일 데이터가 서로 같지 아니하면 에러 메시지를 출력하는 단계; 및
    상기 저장된 시간 데이터를 클럭 및 칼렌더 레지스터에 다시 라이트하고, 클럭을 다시 동작시키고, 상기 저장된 인터럽트 마스크 데이터에 따라 다시 인터럽트 마스크를 설정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터시스템에서의 리얼타임클럭 진단방법.
  4. 제2항에 있어서, 상기 제어/상태 레지스터 테스트는
    현재 상태의 인터럽트 마스크 데이터를 저장하는 단계;
    소정 시간 이내에 리얼타임클럭의 시간이 갱신됨을 나타내는 비트의 값을 읽고, 소정의 시간이 경과된 후 상기 비트의 값을 다시 읽어, 상기 비트의 값이 토글되었는지를 판단하는 단계;
    주기적 인터럽트의 발생을 인에이블하고, 소정의 시간이 경과된 후 주기적 인터럽트의 발생을 나타내는 플래그 비트의 값이 토글되었는지를 판단하는 단계;
    갱신종료 인터럽트를 인에이블하고, 소정의 시간이 경과된 후 갱신종료를 나타내는 플래그 비트의 값이 토글되었는지를 판단하는 단계;
    알람 인터럽트를 인에이블하고, 소정의 시간이 경과된 후 알람상태를 나타내는 플래그 비트의 값이 토글되었는지를 판단하는 단계; 및
    상기 저장된 인터럽트 마스크 데이터에 따라 다시 인터럽트 마스크를 설정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터시스템에서의 리얼타임클럭 진단방법.
  5. 제2항에 있어서, 상기 주기적인 IRQ 테스트는
    현재 상태의 인터럽트 마스크 데이터를 저장하고, 리얼타임클럭의 레지스터를 초기화하는 단계;
    주기적 인터럽트 발생을 인에이블하는 단계;
    소정의 타임아웃을 기다린 후 그 시간 이내에 주기적 인터럽트의 발생을 나타내는 비트를 검사하여 인터럽트가 발생된지의 여부를 판단하는 단계;
    상기 단계에서 인터럽터가 발생되지 않았으면 에러 메시지를 출력하는 단계; 및
    주기적 인터럽트를 디스인에이블하고, 상기 저장된 인터럽트 마스크 데이터에 따라 다시 인터럽트 마스크를 설정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터시스템에서의 리얼타임클럭 진단방법.
  6. 제2항에 있어서, 상기 알람 인터럽트 테스트는
    현재 상태의 인터럽트 마스크 데이터를 저장하고, 모든 인터럽트를 마스크하는 단계;
    클럭 레지스터 및 알람 레지스터에 저장된 현재의 클럭시각 데이터 및 알람시각 데이터를 독출하여 저장하는 단계;
    소정의 테스트용 클럭시각 데이터를 클럭 레지스터에, 그리고 테스트용 클럭시각보다 소정 시간만큼 늦은 알람시각 데이터를 알람 레지스터에 라이트하는 단계;
    알람 인터럽트 및 주기적 인터럽트를 인에이블한 다음, 모든 인터럽트를 언마스크하는 단계;
    소정 시간을 지연시켜 클럭시각과 알람시각 간의 시간 차이 후에 알람 플래그를 검사하여 알람 인터럽트가 발생한지의 여부를 판단하는 단계;
    상기 단계에서 인터럽터가 발생되지 않았으면 에러 메시지를 출력하는 단계; 및
    상기 저장된 마스크 데이터로 인터럽트 마스크를 다시 설정하고, 상기 저장된 현재의 클럭시각 및 알람시각 데이터를 클럭 레지스터 및 알람 레지스터에 다시 라이트하는 단계를 포함하는 것을 특징으로 하는 컴퓨터시스템에서의 리얼타임클럭 진단방법.
  7. 제2항에 있어서, 상기 RTC 정확도 테스트는
    현재 상태의 인터럽트 마스크 데이터를 저장하고, 모든 인터럽트를 마스크하는 단계;
    클럭 레지스터에 저장된 현재의 제1클럭시각 데이타를 독출하는 단계;
    소정 시간을 지연한 후 클럭 레지스터의 제2클럭시각 데이터를 독출하는 단계;
    제2클럭시각과 제1클럭시각의 차이를 계산하여, 그 차이값을 지연시간과 비교하여 소정의 허용오차 범위 내에 들어가는지의 여부를 판단하는 단계;
    상기 차이값이 오차범위 내에 들어가지 아니하면 에러 메시지를 출력하는 단계; 및
    상기 저장된 마스크 데이터로 인터럽트 마스크를 다시 설정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터시스템에서의 리얼타임클럭 진단방법.
  8. 내부 발진회로에 연결된 발진기 또는 외부 클럭입력을 구비하여, 다양한 포맷으로 날짜, 시각 및 달력 데이터를 제공하고, 또한 알람기능과 프로그램 가능한 타이머 인터럽트 기능을 제공하는 시계모듈인 리얼타임클럭을 구비하는 컴퓨터시스템에서, 상기 리얼타임클럭을 진단하기 위한 장치에 있어서,
    컴퓨터 시스템의 프로세서, 메모리, 디스크 드라이브를 포함한 내부 디바이스의 상태를 검사하기 위한 초기화루틴인 기본부팅루틴 프로그램 및 리얼타임클럭 모듈 내부에 포함된 레지스터의 상태를 검사하기 위한 리얼타임클럭 진단 프로그램을 포함하는 프로그램부;
    시스템 초기화 시에 기본부팅루틴 프로그램을 수행하기 전 또는 후에 상기 리얼타임클럭 진단 프로그램을 수행할지의 여부를 묻고 사용자의 선택을 입력받기 위한 선택부; 및
    컴퓨터 초기화가 수행되는 동안 선택부에 의한 선택에 따라 기본 부팅루틴 프로그램 또는 리얼타임클럭 진단 프로그램을 수행하기 위한 제어부를 포함하는 것을 특징으로 하는 컴퓨터시스템에서의 리얼타임클럭 진단장치.
  9. 제8항에 있어서, 상기 리얼타임클럭 진단 프로그램은
    클럭 및 칼렌더 데이터를 저장하는 레지스터에 대하여 리드 및 라이트 동작을 수행하여 상기 레지스터들이 정상적으로 동작하는지를 확인하는 클럭/칼렌다 레지스터 테스트;
    인터럽트 인에이블 비트들 및 상태 플래그들이 정상적으로 동작하는지를 확인하는 제어/상태 레지스터 테스트;
    주기적인 인터럽트 인에이블이 정상적으로 동작하는지를 확인하는 주기적인 인터럽트 테스트;
    알람 인터럽트 인에이블이 정상적으로 동작하는지를 확인하는 알람 인터럽트 테스트; 및
    리얼타임클럭 모듈에서 계산되어 출력되는 시각 데이터의 정확도를 검사하는 RTC 정확도 테스트를 포함하는 것을 특징으로 하는 컴퓨터시스템에서의 리얼타임클럭 진단장치.
  10. 제1항에 있어서, 상기 선택부는
    상기 리얼타임클럭 진단 프로그램의 수행을 설정하기 위한 설정키를 컴퓨터의 외관에 구비함을 특징으로 하는 컴퓨터시스템에서의 리얼타임클럭 진단장치.
KR1019970054393A 1997-10-23 1997-10-23 컴퓨터 시스템의 리얼타임클럭 진단방법 및 그장치 KR100265793B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970054393A KR100265793B1 (ko) 1997-10-23 1997-10-23 컴퓨터 시스템의 리얼타임클럭 진단방법 및 그장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970054393A KR100265793B1 (ko) 1997-10-23 1997-10-23 컴퓨터 시스템의 리얼타임클럭 진단방법 및 그장치

Publications (2)

Publication Number Publication Date
KR19990033133A KR19990033133A (ko) 1999-05-15
KR100265793B1 true KR100265793B1 (ko) 2000-09-15

Family

ID=19523257

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970054393A KR100265793B1 (ko) 1997-10-23 1997-10-23 컴퓨터 시스템의 리얼타임클럭 진단방법 및 그장치

Country Status (1)

Country Link
KR (1) KR100265793B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8797083B2 (en) 2009-03-03 2014-08-05 Samsung Electronics Co., Ltd. Methods of operating timers to inhibit timing error accumulation

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100844101B1 (ko) * 2005-11-16 2008-07-07 성균관대학교산학협력단 동적 윈도우 기반 고장 모니터링 시스템 및 모니터링 방법
CN113377156A (zh) * 2021-07-13 2021-09-10 北京同方信息安全技术股份有限公司 一种rtc时钟准确性验证方法和装置
CN114442988A (zh) * 2022-02-15 2022-05-06 深圳市航顺芯片技术研发有限公司 数据显示方法、装置、时钟显示系统、设备及介质
CN115407385B (zh) * 2022-07-21 2024-03-08 上海轩田智能科技股份有限公司 一种电推进束流的多点自动测试方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8797083B2 (en) 2009-03-03 2014-08-05 Samsung Electronics Co., Ltd. Methods of operating timers to inhibit timing error accumulation

Also Published As

Publication number Publication date
KR19990033133A (ko) 1999-05-15

Similar Documents

Publication Publication Date Title
EP0211308A2 (en) Data processing machine
EP0664029B1 (en) Computer failure recovery and alert system
KR100430769B1 (ko) 클럭 주파수 변환 회로
US6072752A (en) Hand display-type electronic timepiece
KR100265793B1 (ko) 컴퓨터 시스템의 리얼타임클럭 진단방법 및 그장치
JP2009238211A (ja) 情報処理装置、経過時間計測方法
KR20090037223A (ko) 시스템 종료 후 자기진단 수행시스템 및 방법, 그리고 그를이용한 부팅방법
JP2001198271A (ja) 遊技機
US5816922A (en) Game apparatus and method for debugging game program
US6757352B1 (en) Real time clock with a power saving counter for embedded systems
JPS6236560B2 (ko)
US4468133A (en) Electronic timepiece
JPH09253312A (ja) 遊技機制御用マイクロコンピュータ
JPH06314211A (ja) 節電機能を有する電子機器における診断方法
JPS61163441A (ja) 小型演算機器
JP2001286642A (ja) 遊技機の制御装置
JPS61785A (ja) 時刻管理方法
JPS59178552A (ja) 自己診断制御方式
JPS6365514A (ja) 時計装置
JPH0436849A (ja) メモリ診断方法
KR0150161B1 (ko) 마이콤 내부레지스터 및 램의 데이터를 디스플레이하기 위한 장치
JPH06337803A (ja) コンピュータおよびその暴走検出回路
JPH0385485A (ja) 電子時計
JPS6083017A (ja) カメラのバルブ装置
JPS62100802A (ja) プログラマブル・コントロ−ラ

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20080529

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee