Domanda

Lo so che 10 anni fa, tipica precisione dell'orologio eguagliato un sistema-tick, che era nella gamma di 10-30ms. Negli ultimi anni, la precisione è stata aumentata in più fasi. Al giorno d'oggi, ci sono modi per misurare gli intervalli di tempo in nanosecondi effettivi. Tuttavia, i quadri soliti tempo di ritorno ancora con una precisione di solo circa 15 ms.

La mia domanda è, che ha fatto passi aumentare la precisione, come è possibile misurare in nanosecondi, e Perché siamo ancora spesso sempre meno-che-microsecondo precisione (ad esempio in NET) .

(Disclaimer:.. Mi sembra strano che questo non è stato chiesto prima, quindi credo che ho perso questa domanda quando ho cercato Chiudere e punto me la domanda in questo caso, grazie credo che questo appartiene il SO e non su qualsiasi altro sito Sofu. capisco la differenza tra precisione e accuratezza.)

È stato utile?

Soluzione

E 'davvero una caratteristica della storia del PC. L'originale PC IBM ha utilizzato un chip chiamato il Real Time Clock che è stato eseguito il backup della batteria (avete presente la necessità di sostituire le batterie in questi?) Questi funzionare anche quando la macchina è stata spenta e mantenuto il tempo. La frequenza di questi era 32,768 kHz (2 ^ 15 cicli / secondo) che ha reso facile ora calcolare su un sistema a 16 bit. Questo orologio in tempo reale è stato poi scritto per CMOS che era disponibile tramite un sistema di interruzione nei sistemi operativi precedenti.

Un nuovo standard è fuori da Microsoft e Intel chiamati Event Timer di precisione ad alta che specifica una velocità di clock di 10 MHz http://www.intel.com/hardwaredesign/hpetspec_1.pdf Anche più recenti architetture PC prendono questo e metterlo sul controller Northbridge e il HPET possono tun a 100MHz o addirittura superiore. A 10Mhz dovremmo essere in grado di ottenere una risoluzione di 100 nano-secondi e a 100MHz dovremmo essere in grado di ottenere 10 risoluzione nano-secondo.

I sistemi operativi seguenti sono noti per non essere in grado di utilizzare HPET: Windows XP, Windows Server 2003 e le versioni precedenti di Windows, le vecchie versioni di Linux

le versioni di Windows Vista, Windows 2008, Windows 7, x86 di Mac OS X, i sistemi operativi Linux che utilizzano il kernel 2.6 e FreeBSD

I seguenti sistemi operativi sono noti per essere in grado di utilizzare HPET.

Con un kernel Linux, è necessario il "RTC-cmos" più recenti driver di periferica orologio hardware, piuttosto che l'originale "rtc" conducente

Tutto ciò che ha detto come possiamo accedere a questa risoluzione in più? Potrei tagliare e incollare da precedenti articoli StackOverflow, ma non - Basta cercare HPET e troverete le risposte su come ottenere i timer più fini di lavoro

Altri suggerimenti

Ho letteralmente letto un post sul blog su MSDN su questo oggi, leggi qui , copre l'argomento abbastanza bene. Ha l'accento sulla DateTime C # 's, ma è universalmente applicabile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top