Hallo,
meine Frage steht ja schon im Betreff. Es geht mir darum mal einen Überblick zu bekommen wofür so alles der TSC (bei x86) benutzt wird.
Dazu dann gleich noch die Frage ob Ihr mit dem TSC auch zufrieden wart oder ob Ihr lieber was anderes benutzt hättet, z.B. den HPET, bzw. welche Ansprüche Ihr an eine gute Zeitquelle stellt.
Mir ist nämlich aufgefallen das ich sowas wie den TSC bei meiner CPU gar nicht habe und wollte einfach mal wissen ob man sowas überhaupt wirklich benötigt oder ob nicht ein guter HPET auch ausreicht. Einen guten HPET möchte ich schon implementieren. Das Problem was ich beim HPET sehe ist das dieser im Chipsatz (oder einer anderen zentralen Stelle) ist und ein Lesezugriff immer locker über 100 CPU-Takte kostet wogegen der RDTSC-Befehl fast gar nichts kostet. Des weiteren ist der HPET eine System-Ressource die gar nicht so einfach von normalen User-Mode-Programmen benutzt werden kann wogegen der TSC eigentlich jedem Programm zur Verfügung steht (ich glaube nicht das es überhaupt ein OS gibt das den RDTSC-Befehl für den User-Mode abschaltet). Zusätzlich hat der TSC eine höhere zeitliche Auflösung wobei man sich da auch fragen muss wozu man irgendetwas genauer als auf 100 ns (was ein HPET mit 10MHz bietet) timen können muss. Der große Nachteil des TSC ist natürlich das er keine Interrupts generiert und das es mehrere unabhängige davon gibt die auch auseinander driften können. Also für echtes Timing ist der TSC damit wohl sowieso nicht qualifiziert oder seit Ihr da anderer Meinung? Wenn ja Warum?
Wie hoch seht Ihr allgemein den Bedarf an einer streng monotonen Zeitquelle in einem OS?
Wie genau sollte die sein?
Sollte sich so eine Zeitquelle von der Sommerzeit/Winterzeit-Umstellung oder von Schaltsekunden beeinflussen lassen?
Grüße
Erik
meine Frage steht ja schon im Betreff. Es geht mir darum mal einen Überblick zu bekommen wofür so alles der TSC (bei x86) benutzt wird.
Dazu dann gleich noch die Frage ob Ihr mit dem TSC auch zufrieden wart oder ob Ihr lieber was anderes benutzt hättet, z.B. den HPET, bzw. welche Ansprüche Ihr an eine gute Zeitquelle stellt.
Mir ist nämlich aufgefallen das ich sowas wie den TSC bei meiner CPU gar nicht habe und wollte einfach mal wissen ob man sowas überhaupt wirklich benötigt oder ob nicht ein guter HPET auch ausreicht. Einen guten HPET möchte ich schon implementieren. Das Problem was ich beim HPET sehe ist das dieser im Chipsatz (oder einer anderen zentralen Stelle) ist und ein Lesezugriff immer locker über 100 CPU-Takte kostet wogegen der RDTSC-Befehl fast gar nichts kostet. Des weiteren ist der HPET eine System-Ressource die gar nicht so einfach von normalen User-Mode-Programmen benutzt werden kann wogegen der TSC eigentlich jedem Programm zur Verfügung steht (ich glaube nicht das es überhaupt ein OS gibt das den RDTSC-Befehl für den User-Mode abschaltet). Zusätzlich hat der TSC eine höhere zeitliche Auflösung wobei man sich da auch fragen muss wozu man irgendetwas genauer als auf 100 ns (was ein HPET mit 10MHz bietet) timen können muss. Der große Nachteil des TSC ist natürlich das er keine Interrupts generiert und das es mehrere unabhängige davon gibt die auch auseinander driften können. Also für echtes Timing ist der TSC damit wohl sowieso nicht qualifiziert oder seit Ihr da anderer Meinung? Wenn ja Warum?
Wie hoch seht Ihr allgemein den Bedarf an einer streng monotonen Zeitquelle in einem OS?
Wie genau sollte die sein?
Sollte sich so eine Zeitquelle von der Sommerzeit/Winterzeit-Umstellung oder von Schaltsekunden beeinflussen lassen?
Grüße
Erik

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken

Gespeichert
