2012-01-27 2 views
0

Windows 응용 프로그램에서 그래픽 카드 시계를 사용할 수 있습니까? 좀 더 구체적으로 - 그래픽 카드가 시계 이벤트 (틱)에 인터럽트를 보내고 소프트웨어에서 연결하는 것이 가능합니까?프로그래밍 방식으로 그래픽 카드 시계 액세스

내가 말하고자하는 것은 PC 클럭이 좋지 않다는 것입니다. 정밀한 시계는 많은 돈이 들며, Colo (GPS 신호를 사용할 수없고 원자 시계가 팔과 다리 등을 소모하는 경우)에 있어서는 어렵습니다. 나는 새로운 그래픽 카드에 정밀 시계가 있다는 것을 읽었다. 그래서 내 즉각적인 생각 - 내가 정밀도 100ns 아마도 (내 자신에게 정신 메모)에 내 애플 리케이션을 동기화하는 데 사용할 수 있습니까? 어떤 아이디어?

P. 또는 그 문제에 대한 오디오 카드 ... P.P.S. 제발 대답을 질문 - 나는 그래픽/오디오 카드 내부 시계, 윈도우 대 리눅스 토론에 연결하지 수 있습니까? 감사합니다

+0

BTW : HPET 또는 PMTIMER가 질문에 대한 대답이었습니다. http://en.wikipedia.org/wiki/High_Precision_Event_Timer –

+3

이 질문은 지속적으로 제기됩니다. 인터럽트를 연결하는 드라이버를 작성해야합니다. 사용자 모드 응용 프로그램에서 이벤트를 얻으려면 먼저 컨트롤을 인터럽트 처리기에서 커널 스레드로 전송 한 다음 사용자 모드 스레드에 신호를 보내야합니다. 모든 (비) 인터럽트가 인터럽트 될 수 있기 때문에 (범용 OS에서는 인터럽트 될 수 있기 때문에). 대부분의 경우 인터럽트가 발생하지 않고 '작동 할 수 있습니다.'라고 말할 수 있지만 때로는 제로 페이지 스레드가 시작되거나 캐시 관리자 페이지가 무언가를 출력하고 대기 시간이 늘어나고 안정적인 이벤트가 실패합니다. – Christopher

+0

@BenVoigt 미안하지만 여전히 동의하지 않습니다. PC 클럭의 문제점은 정밀도가 아니라 드리프트입니다. @ 크리스 - 덕분에 –

답변

3

아니요, 은 "내 애플리케이션을 정밀도 100ns 이하로 동기화하는 데 사용할 수 없습니다."입니다. 인터럽트 처리 지터는 100ns보다 클 수 있습니다. 우선 순위가 가장 높은 인터럽트를 사용해야하고 인터럽트를 사용하지 않도록해야합니다.

그러면 .NET에서 이것을 원하십니까? 비 결정적 가비지 수집 및 정밀도 타이밍은 호환되지 않습니다. 요구 사항에 더 적합한 플랫폼을 선택하십시오.

+0

벤 나는 창문의 논쟁이 실시간과 모든 것에 좋지 않다는 것을 안다. 나는 대부분이 생각보다 빨리 작동하는 앱을 가지고있다. 그래서 요점을 지키십시오 ... 당신은 100ns 숫자를 오해했습니다. 내 앱이 100ns의 정밀도로 동기화되기를 원하지 않는다. 나는 지금보다 나은 동기화 소스를 원한다. 100ns가 아니라 250ns가 될 수 있습니다. 통계적으로 지터를 측정하고 동기화 할 때 항상이를 제거 할 수 있습니다. –

+0

@Bobb : 지터가 대기 시간과 같지 않습니다. 그리고 네, .NET 어플리케이션이 100 마이크로 초 정도의 마감 시간을 맞출 수있는 트릭을 알고 있습니다.하지만 3 배 더 좋을 것입니다. –

+0

내가 원하는 것은 정밀 시계입니다. 귀하의 가정을 더 이상 제 응용 프로그램으로 확장하지 마십시오. 그것은 무엇이든 수 있습니다. 그냥 내 것이 아니야. 다른 사람들은 존재한다면 솔루션을 사용할 수도 있고 더 큰 박스에서 같은 것을 위해 gazillions를 지불하지 않아도됩니다. 감사. –

관련 문제