Многопроцессорные системы

Тема в разделе "WASM.HARDWARE", создана пользователем PROFi, 2 апр 2007.

  1. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    До недавнего времени думал что знаю аппаратную струтуру компа достаточно хорошо, вплоть до разработки собственного отладчика режима ядра, работающего под всеми процессорами не использующими APIC, а вот сейчас столкнулся с необходимостью переноса его под двухядерную архитектуру и возникли следующие вопросы.
    1) Как на многоядерных организована обработка прерываний (как идет разделение IDT таблиц, возможны ли разные значения CR3 для них). PS: объяснять с нуля не нужно, лучше только основные моменты.
    2) Использовал расширенные средства отладки при помощи MSR регистров, но уже с P IV их расположение поменяли, а при обращении к старым ест-но искл. 6. Где взять инфу на новые Core.
    3) Как организована инструкция cli, запрещает она только на текущем или на всех прерывания, и паралельно если происходит аппаратное прерывание и мы его не завершаем (раньше out "20h", ..., теперь mov "базовый адрес APIC +...",...) то возможны прерывания на остальных ядрах, ведь APIC один для всех.
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    cr3 вроде вообще для страничной адресации используется.. при чем тут IDT
     
  3. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    Great
    При том что если IDT будет одинаковым на всех ядрах, а CR3 разным - не факт что одно и то же прерывание будет обрабатываться по одному и томуже адресу на разных процессорах.
     
  4. Nouzui

    Nouzui New Member

    Публикаций:
    0
    Регистрация:
    17 ноя 2006
    Сообщения:
    856
    вы мне лучше объясните, как там прерывания распределяются между процами..
    от мыши, например
     
  5. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.578
    Адрес:
    Russia
    PROFi
    Инфа на новые Core есть в новых мануалах интел (Intel 64 and IA-32 Architectures Software Developer`s Manual)
    Думаю некоторую информацию вы найдете в Volume 3A - System Programming Guide Part 1. Раздел седьмой (Muliple Processor Management)
     
  6. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    TermoSINteZ

    Мануалы почитал, но всеже вопрос поставленный вначале остается открытым. Как ведут себя другие ядра и как осуществляется выбор процессора для прерывания если APIC каждого разрешает все номера прерываний для всех ядер?