AMD: besseres Prozessor-"Zeitmanagement" in der Zukunft

Probleme mit dem Power-Management und den Timestamp-Countern von Multicore-Prozessoren sollen bei AMD-Prozessoren bald Schnee von gestern sein.

In Pocket speichern vorlesen Druckansicht 136 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Andreas Stiller

In der Usenet-Gruppe comp.unix.solaris gehen AMD- und Sun-Mitarbeiter detailliert auf die Probleme mit dem Power-Management (Performance-State P und Power-State C1) und dem Timestamp-Counter TPC der Prozessorkerne ein, die das Thread-Handling von Betriebssystemen (u.a. von Windows XP SP2) etwas durcheinander bringen können. Dass die in den Prozessorkernen vorhandenen Timestamp-Counter unterschiedlich gehen können ( TSC-Drift), ist im Prinzip nichts Neues, das betraf auch schon frühere Multiprozessorsysteme -- es fällt nur jetzt bei den Dual-Core-Prozessoren im Zusammenhang mit modernem Power-Management mehr auf. Bessere Mess-Software verwendet daher nur den TSC eines Prozessors (in einem per CPU-Affinity festgelegtem Thread) oder andere Timer, etwa neuerdings die High Precision Event Timer HPET

Insbesondere ein vom Chipsatz ausgelöstes Throttling (Ein- und Ausschalten) per STPCLK führt zu größeren Unterschieden der TSCs von Multicore-Prozessoren. Solaris verwendet die P-States zwar nicht, die Windows XP SP2 außer Takt bringen können, ist aber ebenfalls von STPCLK betroffen, falls es im BIOS des Motherboards eingeschaltet ist. Neuere Linuxe kennen dieses Problem und versuchen es zu umgehen, bei älteren Versionen empfiehlt es sich, auf den TSC zu verzichten (Boot-Option "notsc" oder "clock=pmtmr"). Bei Windows XP SP2, Windows XP64 und Windows Server 2003 SP1 sollte man bei Single-Prozessor-Dual-Core-Systemen das Betriebssystem mit der Boot-Option "/usepmtimer" anweisen, auf TSC zu verzichten. Neu ist in diesem Zusammenhang die Ankündigung von AMD-Fellow Rich Brunner, dass man die TSCs in Zukunft umgestalten will, sodass sie unabhängig von den P- und C1-States und von STPCLK weiterarbeiten. Hierfür bekommt das CPUID-Register 0x8000_0007 (Advandes Powermanagement Information) ein neues Flag: TSCinvariant. (as)