2010-04-09 5 views
20

10 년 전, 일반적인 시계의 정밀도는 10-30ms의 시스템 - 틱과 같습니다. 지난 몇 년 동안 정밀도는 여러 단계로 증가했습니다. 요즘에는 실제 나노초 단위로 시간 간격을 측정하는 방법이 있습니다. 그러나 일반적인 프레임 워크는 여전히 약 15ms의 정밀도로 시간을 반환합니다.최신 PC의 내부 시계는 얼마나 정확합니까?

내 질문은 정확도를 높이기 위해 수행 한 단계이며, 나노초 단위로 측정하는 것이 가능한 방법이며, 은 왜 마이크로 초 미만의 정밀도 (예 :.

(면책 조항 : 이것은 이전에 물어 보지 못한 이상한 내용이기 때문에 검색 할 때이 질문을 놓친 것 같아요.이 경우 질문을 닫고 저를 지적 해주십시오. 감사합니다. 다른 SOFU 사이트에서는 볼 수 없습니다. 정확도와 정확도의 차이를 이해합니다.)

답변

20

정말 PC 역사의 한 특징입니다. 원래 IBM-PC는 배터리로 백업 된 실시간 클럭이라고 불리는 칩을 사용했습니다. 배터리를 교체해야한다는 것을 기억하십니까? 이것은 기계의 전원을 끄고 시간을 지킬 때 작동합니다. 이것들의 주파수는 32.768 kHz (2^15 cycles/second)로, 16 비트 시스템에서 시간을 쉽게 계산할 수있었습니다. 이 실시간 시계는 이전 운영 체제의 인터럽트 시스템을 통해 사용 가능한 CMOS에 기록되었습니다.

더 새로운 표준은 마이크로 소프트와 인텔 밖으로 심지어 새로운 PC 아키텍처이 걸릴 노스 브릿지 컨트롤러에 넣어와 HPET는 100MHz의에서 TUN 또는 수 10MHz의 http://www.intel.com/hardwaredesign/hpetspec_1.pdf 의 클럭 속도를 지정 고정밀 이벤트 타이머라고 더 커. 10Mhz에서 100 나노 초의 해상도를 얻을 수 있어야하며 100MHZ에서 10 나노 초의 해상도를 얻을 수 있어야합니다. HPET를 사용할 수 있도록 윈도우 XP, Windows Server 2003 및 이전 Windows 버전, 이전의 리눅스 버전을 다음 운영 체제가 알려져있다

을 :

다음 운영 체제 HPET를 사용 할 수 없습니다 알려져있다 : Windows Vista, Windows 2008, Windows 7, x86 기반 버전의 Mac OS X, 2.6 커널 및 FreeBSD를 사용하는 Linux 운영 체제. 리눅스 커널

, 당신이 필요로하는 새로운 "RTC-CMOS"하드웨어 시계 장치 드라이버가 아닌 원래의 "RTC"드라이버

우리는이 여분의 해상도에 액세스 어떻게 말했다 모든? 잘라내어 이전 stackoverflow 기사에서 붙여 넣을 수는 있지만 HPET를 검색하면 더 정밀한 타이머 작동 방법에 대한 답변을 찾을 수 있습니다.

+0

http://en.wikipedia.org/wiki/High_Precision_Event_Timer#Problems 분명히 HPET의 일부 구현은 다른 문제 중에서도 읽기가 느리거나 드리프트가 발생하기 때문에 정밀 문제가 있습니다. 그래도 대부분의 경우 미디어 재생/동기화 (특히 원래 의도 한 것이므로)에서 사용하는 것이 좋습니다. – Alex

1

오늘 MSDN에서 블로그 게시물 (read it here)을 문자 그대로 잘 읽습니다. 그것은 C#의 DateTime에 중점을두고 있지만 보편적으로 적용됩니다.

+0

방금 ​​읽은 것과 같습니다. 에릭이 세부적으로 들어 가지 않았기 때문에 그것은 의문을 제기했다. 그의 기사는 기초에 관한 것입니다. – mafu

+0

@mafutrct :) 측정 시간은 정확한 과학이 아니기 때문에 시간이 무엇입니까? 시간은 이벤트가 발생하는 기간으로 정의됩니다. 원자 시계는 시간 측정 요소로 원자 공명 주파수 표준을 사용하여 매우 정확합니다. 그러나 컴퓨터는 이러한 정확한 측정을 사용할 수 없으므로 덜 정확했던 다른 방법을 사용하십시오. 이것이 시간이 지남에 따라 시계가 동기화되지 않게되는 방법입니다. – Chris

+0

글쎄, 그래도 그 질문에는 답이 없습니다. 컴퓨터는 timediffs에 대해 ns 정밀도를 제공 할 수 있으므로 일반적으로 얻는 ms 정밀도를 향상시킬 수있는 방법이 있어야합니다. 또한,이 NS 정밀도가 이미 (때로는) 달성 된 방법에 대해 알고 싶습니다. – mafu