Um die momentane mittlere Frequenz des TSC herauszubekommen, brauchst du eine zuverlässige (Zeit-)Referenz. Die bekommst du vom HPET (oder notfalls vom PIT), denn deren Grundtakt ist festgelegt. Du baust dir also eine Warteschleife bekannter Zeit (z.B. 10 ms) und liest vorher und nachher den TSC aus. Aus der Differenz kannst du die Schritte pro Sekunde und damit die Frequenz ableiten. Für gebrauchbare Ergebnisse sollte die Warteschleife Busy-Waiting ohne aktive Interrupts durchführen.
Die wahre CPU-Frequenz bekommst du über ACPI, aber das ist viel Arbeit.
Bedenke, dass der TSC keine stabile Zeitbasis ist. Es hängt von der konkreten Architektur ab, was er genau tut. Manchmal skaliert der TSC mit der CPU-Frequenz, manchmal nicht. Manchmal bleibt er im Idle stehen. Manchmal sind die TSCs mehrerer Cores auf einem Die synchronisiert, manchmal laufen sie auseinander. Manchmal sogar dann, wenn die Cores mit der gleichen Geschwindigkeit laufen.