Autor Wątek: Jak uzyskać liczbę wątków CPU?  (Przeczytany 3108 razy)

flipflop

  • Nowy u
  • *
  • Wiadomości: 3
    • Zobacz profil
Jak uzyskać liczbę wątków CPU?
« dnia: Luty 25, 2013, 21:08:38 »
Witam, potrzebuje się dowiedzieć jak funkcja CPUID dostarczy mi informacji o ilości wątków wspieranych przez procesor. Chodzi mi o procesory Intela. Ktoś podpowiedział mi, że taką informacje uzyskam za pomocą standardowej funkcji EAX = 1. pole bitowe EBX[23:16], ale niektóre CPU tym sprawdzeniem pokazują mi 16 wątków. W manualu I64_vol2 pisze:

Cytuj
Bits 23-16: Maximum number of addressable IDs for logical processors
in this physical package*.

* The nearest power-of-2 integer that is not smaller than EBX[23:16]
is the number of unique initial APIC IDs reserved for addressing different
logical processors in a physical package. This field is only valid
if CPUID.1.EDX.HTT[bit 28]= 1.

Więc to nie jest liczba wątków, ale maksymalna liczba adresowalnych identyfikatorów dla procesorów logicznych, prawda?
Gdzie znajdę liczbe wątków?

z góry dziękuje.

Nevar

  • Administrator
  • Nowy u
  • *****
  • Wiadomości: 24
    • Zobacz profil
Odp: Jak uzyskać liczbę wątków CPU?
« Odpowiedź #1 dnia: Luty 26, 2013, 16:07:44 »
Na początek to trzeba uściślić terminy bo nie bardzo rozumiem termin wątku. Ogólnie wątek jest definicją raczej programistyczną niż sprzętową.

W samym komputerze możesz mieć do kilku procesorów CPU na płycie głównej, ale to rozwiązanie jest rzadko spotykane. Sam CPU w swojej budowie może mieć kilka rdzeni czy też w jednym układzie montowane jest kilka procesorów dzielących część swoich zasobów, ale będących oddzielnymi jednostkami obliczeniowymi. Taką najmniejszą jednostkę chyba określa się nazwą "procesor logiczny".

Edit:

Wydaje mi się, że za pomocą samego CPUID nie można pobrać ilości procesorów logicznych. Można to na pewno zrobić po przez wysłanie sygnału INIT do wszystkich i zliczenie ile z nich się zgłosi, ale to raczej przy starcie systemu takie rzeczy się robi. Można też przeszukać w tablicach ACPI. Można też szukać w tablicach MP, ale one chyba nie zawsze mogą występować w pamieci. Ja korzystałem w swoim systemie jedynie z tablic MP i generalnie znalazlem tam wszystkie moje rdzenie z laptopa.
« Ostatnia zmiana: Luty 27, 2013, 09:27:02 wysłana przez Nevar »

flipflop

  • Nowy u
  • *
  • Wiadomości: 3
    • Zobacz profil
Odp: Jak uzyskać liczbę wątków CPU?
« Odpowiedź #2 dnia: Luty 27, 2013, 17:28:35 »
Dzięki za odpowiedź. Nie wiem czy zauważyłeś, ale także pisałem w wątku propozycja współpracy.