티스토리 뷰
문득 카메라를 켜다가 이런생각을 했다. 이 카메라는 이틀정도 전원이 꺼져있었는데 어떻게 현재 시간을 정확히 아는걸까?
내가 한국에 있다가 태국에서 휴대폰을 켰을 때 와이파이를 켜지 않았는데도 아이폰에는 이미 위치와 시간이 반영되어 있었다.
어떻게 한걸까에 대해 적어보려 한다.
전자 기기의 시간은 어디서 기록하고 있는 걸까?
우리가 보통 사용하는 전자기기엔 실시간 클록(RTC)을 갖추고 있어서 이를 통해 시간을 기록하고 유지한다.
RTC이란건 정확한 시간을 유지해야하는 모든 전자 기기에 존재한다. RTC없이도 기기가 네트워크를 통해 시간을 알거나 할 수 도 있지만.
RTC를 사용하면
- 전력 소비가 낮고
- 기본 시스템을 시간이 중요한 작업에서 떼어 놓을 수 있고
- 다른 방식보다 더욱 정확하게 시간을 알려준다고 한다.
여기서 기본 시스템을 시간이 중요한 작업에서 떼어 놓을 수 있다는건 어떤 걸 의미할까? 이는 RTC가 독립적으로 시간 추적을 담당함으로써 메인 시스템의 자원을 다른 중요한 작업에 할당하는 걸 의미한다.
예를 들어 중요한 작업은 CPU가 하고 디스플레이의 그래픽같은 단순 작업은 GPU가 하는 것과 같다.
조금 더 자세히 설명하자면 전자기기에서 시간 추적은 중요하지만, 리소스를 쏟아부어야하는 작업은 아니다. 이를 RTC를 구비함에 따라 메인 프로세서는 계산, 데이터 처리, 사용자 인터페이스 관리 등과 같은 복잡한 작업을한다. 또한, RTC는 매우 적은 양의 전력만을 사용해 메인 시스템이 꺼져있거나 절전모드일때도 RTC는 적은 전력으로 시간을 유지한다. 마지막으로 메인 시스템이 다운되는 경우에도 RTC는 독립적으로 시간을 추적하므로 시스템 시간이 유지되기에 컴퓨터가 재부팅할때 시간 설정을 다시 하지 않아도 되게 한다.
그래서 이건 기기 컴퓨터에 붙어있는 건가?
위의 얘기만 들어서는 그래서 RTC의 역할이 뭔지는 알겠지만 실제로 어떻게 생겼고 어떻게 동작하는지는 조금 막연하다.
그래서 RTC는 메인보드와 따로 있는건가? 전자기기 안에 들어있는 컴퓨터와 RTC가 따로 있냐는 거다.
그에 대한 답은 RTC는 전자기기 내에 통합되어있는 마이크로 칩 형태를 띠고 있으며, 메인 보드에 솔더링(*납땜)되거나 다른 방식으로 부착된다고 한다.
RTC칩은 일반적으로 사각형/원형의 마이크로 칩으로 보이며, 칩의 크기는 매우 작아서 메인 보드에서 눈에 띄지 않는다. RTC의 위치는 컴퓨터/전자기기의 메인 보드에 직접 통합되어 있으며. 메인 프로세서와의 통신을 위해 보드에 연결된다.
RTC칩은 시간과 날짜를 추적하는 것 외에도 알람 기능같은 다른 관련 기능도 제공한다. 이 칩은 시스템의 나머지 부분과 정보를 교환하며, 시스템이 부팅될때 현재 시간을 제공한다.
그렇다면 배터리는 어떻게?
그래서 이렇게 메인보드와 독립적으로 존재하는 RTC는 어떻게 전원을 공급할까?
RTC는 주 전원이 꺼져있을때도 현재 시간을 계속해서 추적한다. 그러니 이를 위한 보조 전원원이 필요한 것이다.
GPT에게 물어본 결과 RTC의 전원을 공급하는 방식으론 CMOS배터리 방식과 내장된 충전식 배터리 두가지 방식이 있다고 한다.
CMOS 배터리
- 전통적인 데스크탑 컴퓨터의 마더보드에 주로 사용, 전원이 꺼져 있을 때도 BIOS 또는 UEFI 설정, 시간 및 날짜 정보와 같은 기본 시스템 설정을 유지
- 대부분의 경우 코인 셀 형태의 리튬 배터리
- 전원 손실 시 컴퓨터는 시간과 날짜 정보를 잃어버리며 BIOS 또는 UEFI 설정도 초기화 될 수 있다
- 그러니까 마더보드가 사용하는 배터리를 함께 쓰는 것
그렇다면 데스크탑에 전원을 공급하지 않으면 CMOS 배터리도 전력이 없는것 아닌가?하고 생각할 수도 있지만 CMOS배터리는 전원이 공급되지 않는 상황에서도 기기의 BIOS설정과 시간정보를 몇 년간 유지할 수 있는 전력을 저장하고 있다.
내장된 충전식 배터리
- 휴대용 장치에 주로 사용됨(스마트폰,노트북 등)
- 장치의 주 전원 공급원으로 작동하며 모든 기능과 연산을 지원한다
- 리튬이온 또는 리튬 폴리머 타입
- 전원 손실 시 내장된 충전식 배터리가 완전히 방전되면 장치는 작동을 멈춘다. 그러나 많은 현대 장치들은 작은 내장 배터리를 갖추고 있어, 주 배터리가 완전히 방전되어도 시간정보를 잃지 않는다.
당연히 이 둘과 별개로 주 배터리가 완전히 방전되었고, RTC를 유지하기 위한 보조전원원을 가지고 있지 않다면 해당 장치는 시간 정보를 유지할 수 없게 된다. (이때 주 배터리란 전자기기의 주요 전원원을 얘기함)
네트워크가 통하는 기기라면?
네트워크에 항시 연결되는 기기라면 RTC의 관리는 다소 다르게 이루어질 수 있다.
이런 기기들을 네트워크를 통해 정확한 시간정보를 동기화할 수 있다.
NTP(Network Time Protocol)
- 공학을 전공한 친구들이라면 프로토콜이란 개념이 익숙할텐데 RTC도 프로토콜을 사용할 수 있다.
- 기기가 네트워크에 연결되면, 주기적으로 자동으로 시간을 동기화 한다.
GPS
- 일부 고급 시스템들은 GPS 신호를 사용하여 정확한 시간 정보를 얻는다(측량 장비)
- 사실 GPS는 단순히 위치/속도/방위각만 알 수 있는 줄 알았는데 시간 정보도 알 수 있다고 한다.
- 이 방법은 네트워크 연결이 불안정하거나 불가능한 환경에서 특히 유용하다.
셀룰러 네트워크
- 우리에게 익숙한 데이터 방식이다.
- NTP와 비슷해 보인다. NTP는 일반적인 인터넷 연결, 셀룰러 네트워크는 모바일 통신망이라고 이해하면 될 것 같다.
이때 RTC는 네트워크에 연결 되어 있지 않을때 RTC가 기본 시간 추적 기능을 수행하고 전원이 꺼져있거나 네트워크 접속 불가능 상황에서 시간을 유지하는 역할을 한다.
끝 마치며
사실 이러한 쓸데없는 호기심들이 평소에 많은데 기술적으로 알아보고 접근하니 생각보다 명료하고 재밌다.
이미 아는 지식과 겹치는 것도 있어서 앞으로도 종종 정리해보고자한다.
참고한 글
1. https://kkhipp.tistory.com/147
3. https://blog.naver.com/PostView.naver?blogId=pnt0405&logNo=223048650924
4. https://blog.naver.com/darknisia/220668631467
- Total
- Today
- Yesterday
- 시간어떻게
- jupyterlab
- 해커톤
- redis-py
- 소숫점잘림
- 네이버이미지검색
- 지도데이터
- 구글
- 주피터랩
- visionAPI
- redisTemplate
- 실시간클락
- 스마트렌즈
- 목서버
- 이미지검색
- 항해커톤
- 알고있
- 모의서버
- ChatGPT
- crudrepository
- mockserver
- 빈해쉬맵
- 실시간클록
- redis
- 구글클라우드스토리지
- 조회수기능개발
- 항해해커톤
- PC시간어떻게
- 데이터잘림
- 조회수기능
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |