Номер ядра.

Discussion in 'WASM.WIN32' started by halyavin, Dec 9, 2007.

  1. halyavin

    halyavin New Member

    Blog Posts:
    0
    Joined:
    May 13, 2005
    Messages:
    252
    Location:
    Russia
    Как узнать (из ring0) номер ядра, на котором выполняется текущий код в многопроцессорных системах (интересует процессор core 2 duo)? Я чего-то в доках интела этого не могу найти.
     
  2. Mika0x65

    Mika0x65 New Member

    Blog Posts:
    0
    Joined:
    Jul 30, 2005
    Messages:
    1,384
    Об этом весьма подробно говорится в главе 7. (7.5.5, 7.10.2)

    Получить номер ядра можно из initial APIC ID (CPUID.1:ECX[32:24]). Поля в initial APIC идут следующим образом: 'CLUSTER_ID PACKAGE_ID CORE_ID SMT_ID' (справа-налево). Ширина полей меняется в зависимости от того, представлена ли соответсвтующая технология, или нет. В мануалах есть пример идентифкации логических процессоров (как для HT так и для MultiCore).