CPUID - pobieranie taktowania procesora

0

Witam, chciałbym dowiedzieć się czy z CPUID da radę wyciągnąć taktowanie procesora oraz informację o pamięci cache ? Jak na razie to znalazłem informację, że taktowanie można znaleźć w EAX=0000_0016h, ale po pobraniu danych z eax (bity od 0 do 15) pokazuje 0.

unsigned long cpuid::freq_inf()
{
    unsigned long freq_base;
    unsigned long freq_max;
    unsigned long freq_bus;

    __asm
    {
        mov eax, 00000016h
        cpuid
        mov freq_base, eax
        mov freq_max, ebx
        mov freq_bus, ecx
    }

    qDebug() << "Freq_base : " << freq_base;
    qDebug() << "Freq_max : " << freq_max;
    qDebug() << "Freq_bus : " << freq_bus;

    return freq_base;
}
0

To chyba zrobię inaczej, po prostu pobiorą z CPUID nr id procesora, i potem zrobię bazę danych w której bd trzymał informację z cpu-world. Tylko nie mogę znaleźć jak pobrać ten id procesora.

Rozchodzi mi się o to : CPUID 610F01 (dla procesora AMD APU A8-5600k)

0

Jak na razie to znalazłem informację, że taktowanie można znaleźć w EAX=0000_0016h

Gdzie taką informację znalazłeś?
Dokumentacja Intela mówi tylko o zakresach 0h - 6h i 80000000h - 80000008h.

Częstotliwość procesora można zmierzyć za pomocą instrukcji rdtsc.

z ID nawet jeśli wyciągniesz to nie będzie odzwierciedlała ewentualnego overclockingu.

0

Zdecydowanie najlepiej będzie po prostu zapytać o to system operacyjny.

0

Zrobiłem tak ale wyskakuje jakaś dziwna liczba (1642544406144)

 unsigned __int64 i;
    i = __rdtsc();
    qDebug() << i << endl;
0

Wiesz chociaż co robi rdtsc?

0

Dobra, już wiem jak aida64 pozyskuje id procesora :) Jest to po prostu zawartość rejestru eax, dla eax = 1. Dla mojego procesora pokazało 6360833 i po zamianie na hex wynosi 0x610F01

0

Dla EAX=0 wynikowy EAX oznacza maksymalną wartość EAX którą CPUID przyjmuje (z zakresu podstawowego, czyli nie licząc tych na 80000000).

Dokumentacja Intela z września 2014 mówi o EAX=14h.
Dokumentacja AMD z maja 2013 dochodzi do EAX=0Dh.

Nigdzie śladu o funkcji z EAX=16h.

Ale poszukaj o rejestrach MPERF i APERF. To może być to czego szukasz. Choć pewnie wymaga w miarę nowego procka.

1 użytkowników online, w tym zalogowanych: 0, gości: 1