컴퓨터 시스템에서 시간은 어떻게 측정됩니까?


13

내가 당황한 것은 이것입니다. 컴퓨터가 정확히 어떻게 시간을 조절하고 말합니까? 예를 들어 : 내가 이것을 한 프로그램을 작성한다면 :

2 + 2를하고 5 초간 기다립니다

프로세서는 "5 초"가 무엇인지 어떻게 알 수 있습니까? 컴퓨터 시스템에서 시간은 어떻게 측정됩니까? 그 유일한 목적을위한 특정 칩이 있습니까? 어떻게 작동합니까?

답장을 보내 주셔서 감사합니다. 나는 컴퓨터 과학에 정말로 관심이 있으며, = D를 줄 수있는 도움을 원할 것입니다.


2
다음은 컴퓨터 사용 방법에 대한 설명을 읽고 이해하기 쉽습니다. eecis.udel.edu/~ntp/ntpfaq/NTP-s-sw-clocks.htm 컴퓨터 시계의 정밀도에 대한 선택적 설명은 다음과 같습니다. ntp.org/ ntpfaq / NTP-s-sw-clocks-quality.htm
Synetech

답변:


13

Joel의 대답은 정확하지만 실제로는 조금 더 복잡합니다.

고려해야 할 첫 번째 사항은 (여기서는 PC에만 집중할 것입니다) 컴퓨터에 여러 시계가 있고 각각 자체적으로 사용한다는 점입니다.

가장 인기 있고 이해하기 쉬운 것은 실시간 시계 입니다. 기본적으로 시계가 간단한 칩입니다. 그들은 일반적으로 표준 시계와 같은 유형의 석영 크리스탈을 가지고 있으며 일반적으로 컴퓨터의 전원을 끌 때 시간을 유지하기위한 배터리를 가지고 있습니다. 그들에 대한 문제는 Syntech의 링크에서 볼 수 있듯이 매우 정확하지 않다는 것입니다. 32.768 kHz 크리스털은 프로세서가 메가 헤르츠 및 기가 헤르츠 범위 인 최신 시스템에서 시간을 유지하기에 너무 느립니다.

다음으로 넘어가겠습니다. 정확한 시간 측정 및 카운트 다운에 사용되는 내부 시계가 있습니다.

간단한 시계는 프로그램 가능한 간격 타이머 입니다. 그것은 일정 시간 동안 기다린 다음 CPU에 인터럽트를 보냅니다. CPU가 인터럽트를 수신하면 CPU는 수행중인 작업을 중지하고 인터럽트를 생성 한 작업을 수행합니다. 이런 식으로 CPU는 무언가가 수행되었는지 지속적으로 확인할 필요가 없습니다. 대신 다른 작업에 집중할 수 있으며 작업이 완료되면 PIT에 알려줄 수 있습니다. PIT는 1.193182 MHz 클럭 소스를 사용하므로 간단한 RTC보다 훨씬 정확합니다.

다음으로 흥미로운 측정 시스템은 타임 스탬프 카운터 입니다. 그 뒤에 아이디어는 다양한 시스템 타이머를 사용하는 프로세서의 클럭 소스를 사용하여 훨씬 더 정확한 시간 측정을 얻을 수 있다는 것입니다. PIT는 1.193182 MHz 클럭을 가지고 있지만, 가장 초기의 x86 프로세서조차 훨씬 높은 클럭을 가지고있었습니다. 그래서 우리는 설정된 양의 프로세서 사이클마다 업데이트되는 타이머를 갖습니다. 당시 프로세서는 매우 안정적인 클럭을 가지고 있었고 TSC를 사용하는 것은 정확한 시간 측정을위한 좋은 방법이었습니다. 그러나 TSC를 사용하면 많은 문제가 발생합니다. 프로세서마다 다른 틱 속도가 있으며 다른 속도로 시간을 측정합니다. 나중에 기술이 발전함에 따라 주파수를 변경할 수있는 최신 프로세서가 제공되었습니다. 그것은 중요한 문제입니다. CPU 클럭이 더 이상 일정하지 않다는 것을 깨달아 시간을 측정하는 데 사용할 수는 없습니다.

그래서 우리는 지금 고정밀 이벤트 타이머를 가지고 있습니다. HPET은 10MHz 클럭을 사용하므로 PIT보다 정확합니다. 반면, 클럭 소스는 CPU 클럭에 의존하지 않으며 CPU 클럭이 변경 되더라도 시간을 측정하는 데 사용할 수 있습니다. 카운트 다운으로 작동하는 PIT와 달리 HPET은 컴퓨터가 켜진 이후의 시간을 측정하고 작업이 필요할 때의 현재 시간을 비교합니다.

언급해야 할 것으로 생각되는 컴퓨터에 사용할 수있는 다른 시간 소스가 있습니다. 일부 컴퓨터는 원자 시계에 연결되어 있으며이를 사용하여 시간을 정확하게 측정 할 수 있습니다.

덜 비싼 옵션과 훨씬 일반적인 방법은 외부 시간 원본을 사용하여 컴퓨터의 내부 시간 원본을 교정하는 것입니다. 예를 들어 GPS 위성에는 내부 원자 시계가 있으므로 GPS 수신기를 사용하여 고정밀 시간 측정을 제공 할 수 있습니다.

GPS 수신기보다 덜 일반적인 또 다른 옵션은 예를 들어 DCF77과 같은 라디오 방송국을 유지하는 시간 정보를 디코딩하는 특수 라디오 수신기를 사용하는 것입니다. 이러한 타임 스테이션에는 고유 한 고정밀 시간 소스가 있으며 무선으로 출력을 전송합니다. 전파는 빛의 속도로 이동하기 때문에 지연이 중요하지 않은 경우가 많습니다.


1
좋은 대답입니다. GPS 위성에 자체 원자 시계가 탑재되어 있다는 것을 몰랐습니다. 이 기사에 따르면 24 개는 각각 4 개의 원자 시계를 가지고있다 : science.nasa.gov/science-news/science-at-nasa/2004/…
deltaray

2
매우 자세한 답변! 시간을내어 작성해 주셔서 감사합니다!
DRK3

1
특히 클럭이 CPU 클럭 속도에 의존하는 방식에 대한 흥미로운 점이 있지만 오늘날 CPU 클럭 속도가 어떻게 변하는 지 보는 것이 문제가됩니다. 다시 감사합니다.
DRK3

@ DRK3 여기에 원자 시계에 멋진 동영상입니다 : wimp.com/atomicclock
그리핀

1
이 답변은 "정확도", "정밀도"및 "해상도"라는 개념을 다소 혼동합니다. 계측 언어에서 "정밀도"는 측정의 반복성을 나타냅니다. 기기가 올바르게 보정되지 않은 경우 기기는 정확하지 않고 매우 정밀 할 수 있습니다. (정확하지 않으면 정확하지 않을 수 있습니다.) HPET이 초당 천만 번 틱하기 때문에 해상도가 높아서 1 밀리 초마다 똑딱 거리는 것보다 더 정확하다는 보장은 없습니다.
Jamie Hanrahan

11

IIRC, 전류가 흐를 때 특정 주파수에서 진동하는 작은 결정이 있습니다. 각 움직임이 계산되고 특정 숫자가 클럭 사이클을 트리거합니다.


3
나는 그것이 여전히 석영 이라고 믿는다 . (마더 보드에 석영 크리스탈이 포함 된 "14MHz"또는 "14.3MHz"또는 다른 주파수로 스탬프 된 작은 금속의 둥근 사각형을 볼 수도 있습니다.
Synetech

답변 해주셔서 감사합니다! 크리스털 (석영)이 사용되는지 몰랐습니다.
DRK3

1
그들은 항상 수정 결정을 사용하지 않습니다. 매우 저렴한 마이크로 컨트롤러는 대신 "세라믹 공진기"를 사용합니다. 상용 마더 보드의 쿼츠 크리스탈 구동 타이밍조차도 정확하지는 않습니다 (즉, 타이밍이 다를 수 있음). 그들은 일반적으로 일반적인 디지털 시계보다 낫지 않습니다.
Jamie Hanrahan

매우 간단한 답변! 쿼츠 시계에서도 이런 일이 발생합니까?
Nicolas Barbulesco

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.