![]() |
CPU-Frequenzbestimmung bei Core Duo
Hallo,
die Messung mit Hilfe zweier RDTSC-Befehle und Wartezeit dazwischen funktioniert ja normalerweise prächtig. Jetzt hat sich Intel aber für den RDTSC etwas Mieses ausgedacht: Bei den neueren CPUs (Conroe etwa) läuft der TSC nicht mehr synchron zum CPU-Takt. Und etwaige Speedstep-Änderungen kriegt man so auch nicht mit. Hat jemand noch eine Idee, wie man unter Windows trotzdem noch an den aktuellen(!) Takt kommt? CPUZ kann's ja auch irgendwie. |
Re: CPU-Frequenzbestimmung bei Core Duo
Vieleicht gehts hiermit:
Delphi-Quellcode:
Ich hoffe es klappt ist nur so heruntergeschrieben.
procedure TForm1.Button1Click(Sender : TObject);
var i : integer; dwSAffinity, dwDummy, dwPHandle : DWORD; begin dwPHandle := OpenProcess(PROCESS_QUERY_INFORMATION, true, GetCurrentProcessId); // Prozesshandle holen if dwHandle <> INVALID_HANDLE_Value then begin if GetProcessAffinityMask(dwPHandle, dwDummy, dwSAffinity) then // System Prozessoren holen begin for i := 0 to 31 do // dwSAffinity ausmaskieren und Prozessor dem Process zuweisen begin if (dwSAffinity shr i and 1) = 1 then begin if SetProcessAffinityMask(dwPHandle, i + 1) then begin //RDTSC durchführung end; end; end end; |
Re: CPU-Frequenzbestimmung bei Core Duo
Hi,
danke für den Versuch, aber auch dieser greift nur auf die RDTSC-Geschichte zu, die ja nicht mehr funktioniert. Dass ich den Thread auf einen Core zuweisen muss, ist mir klar (das wird auch so gemacht, ich wollte es nicht explizit nochmal erwähnen). Ich habe ein paar Experimente mit RDPMC machen wollen (auf Verdacht hin, weil diese Performance Counter vielleicht noch nutzbar sind), aber leider braucht man wohl einen Treiber, um das Auslesen der Performance Counter im Userspace freischalten zu können. |
Re: CPU-Frequenzbestimmung bei Core Duo
Suche benzutzen, guckst du hier
![]() In kurz: geht nicht, APIC funkt auch noch dazwischen und drosselt den CPU Takt nach belieben. Gruß Hagen |
Re: CPU-Frequenzbestimmung bei Core Duo
Danke für die Antwort. Das Ganze ist leider sehr unbefriedigend. Das Problem sind auch nicht "Multiprozessoren" an sich, da ich prinzipiell deren Takt (auch bei dynamischer Änderung) schon messen kann. Einzig Intels neuester "Clou", eben, dass es nur noch einen asynchronen, konstanten TSC gibt, macht mir Probleme.
Und naja, dass es nicht geht, lasse ich nicht so recht gelten, da CPUZ es ja kann. :mrgreen: |
Re: CPU-Frequenzbestimmung bei Core Duo
Keine Ideen mehr?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz