Bugreport: AMDs Dual-Core-Chips mit Zeitproblemen

Mittels des CPU-Befehls RDTSC kann der TSC in die Register EDX und EAX kopiert werden. Diese Form des Zeitstempelns bringt erhebliche Vorteile gegenüber der Verwendung eines externen Bausteins. Solange alle CPU-Kerne mit der gleichen Taktfrequenz arbeiten, liefern die TSCs aller Kerne zum gleichen Zeitpunkt auch den gleichen Wert. Eine geringe Differenz von wenigen Nanosekunden kann dabei sogar vernachlässigt werden.

Im Fall von Cool ’n‘ Quiet laufen die TSCs allerdings sehr schnell auseinander, weil die einzelnen CPU-Kerne des AMD-Prozessors unterschiedliche Taktraten annehmen können. Damit sind sie als Zeitstempelquelle nicht verwendbar. Sind diese Zeitstempel falsch, ist der Audio-Stream bei VoIP-Telefonaten mit Fehlern behaftet. Auf einem Intel-Rechner mit Dual-Core-CPU wird der Stream korrekt ausgegeben. Deutlich ist bei AMD das „Vibrato“ im Rhythmus des Zeitscheibenwechsels von einem Core auf den anderen zu hören.

In diesem Beispiel macht ein Asterisk-Server zunächst eine Ansage und verbindet dann zu einem weiteren Server. Sobald das Audio von einem fremden Server kommt, stammen auch die Zeitstempel von dort, und der Audio-Stream kann vom Empfänger wieder richtig interpretiert werden.

Je nach Anwendungsfall bieten der RDTSC-Befehl einen erheblichen Performance-Vorteil. Dieser Befehl ist nicht privilegiert und kommt direkt von der CPU. Das heißt, jede Anwendung kann ihn im User-Mode nutzen, ohne die Instruction-Pipeline zu verlassen und einen Cache-Miss zu riskieren. Muss die Pipeline ohnehin unterbrochen werden, zum Beispiel zur Synchronisation von Audio und Video in einem Multimedia-Stream, dann ist ein Interrupts generierender moderner externer Baustein, zum Beispiel HPET, günstiger.

Die Performancevorteile des TSC mögen beim Stempeln von UDP-Paketen, wie bei einem VoIP-Server, unerheblich sein. Bei einer Datenbankanwendung, die schon aus Gründen der Dokumentation jede Transaktion stempelt, macht sich die Verwendung der TSCs deutlich positiv bemerkbar.

Die TSCs als extrem performante Zeitquelle haben auch die Hersteller der Betriebssysteme entdeckt und machen davon Gebrauch. Bei AMD-Multiprozessor-Systemen führen sie jedoch zu Fehlern, etwa Abspielen von Sounds in falscher Geschwindigkeit oder extrem langsames Verhalten von Spielen.

Themenseiten: AMD, Client & Desktop, Prozessoren, Servers, Storage, Storage & Server

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Bugreport: AMDs Dual-Core-Chips mit Zeitproblemen

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *