Номер ядра.

Тема в разделе "WASM.WIN32", создана пользователем halyavin, 9 дек 2007.

  1. halyavin

    halyavin New Member

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

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    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).