컴퓨터 시스템에서 시간은 어떻게 측정됩니까? : 내가 이것을

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

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

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

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



답변

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과 같은 라디오 방송국을 유지하는 시간 정보를 디코딩하는 특수 라디오 수신기를 사용하는 것입니다. 이러한 타임 스테이션에는 고유 한 고정밀 시간 소스가 있으며 무선으로 출력을 전송합니다. 전파는 빛의 속도로 이동하기 때문에 지연이 중요하지 않은 경우가 많습니다.


답변

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


답변

HPET은 10MHz 클럭을 사용합니다

HPET은 최소 10Mhz 클럭을 사용합니다. 10Mhz보다 더 정확할 수 있지만 결코 적을 수는 없습니다.

http://en.wikipedia.org/wiki/High_Precision_Event_Timer#Comparison_to_predecessors


답변