Помогите разобраться с прерываниями
Какие прерывания куда распределены?
Куда указывают те прерывания которые BIOS не распределил? |
Вот очень много букв про прерывания. :wow:
Осваивайте! :lamer: |
Хорошая статья.
Но все же куда указывают те прерывания которые BIOS не распределил (при условии что есть не занятые)? |
Цитата:
На Wikipedia :"С ростом числа устройств пришлось решать проблемы прерываний. Устройств стало очень много. На одном прерывании висело до 4 устройств. Помимо прочего старый механизм прерываний давал большие задержки на шине PCI. Что привело к появлению IOAPIC, позволяющего использовать 24 и более аппаратных прерывания вместо 16 PIC. Ограничение в 16 аппаратных прерываний не менялось с 1982 года. На данный момент IOAPIC имеет только 24 прерывания" Кому верить? Сколько аппаратных прерываний 16 или 24? И все же куда указывают те прерывания которые BIOS не распределил (при условии что есть не занятые)? |
Еще в одной статье:
Преимущества расширенного контроллера прерываний: возможность реализации межпроцессорных прерываний - сигналов от одного процессора другому поддержка до 256 входов IRQ, в отличие от 16 на классической IBM PC Сколько аппаратных прерываний в APIC? |
Аппаратных прерываний 16, поскольку поначалу использовались две восьмивходовых микросхемы, и имеют прерывания эти номера с нулевого до 15. Все остальные прерывания виртуальные.
|
А сколько виртуальных 24 или 256?
Если можно ссылку на источник. Потому как выше цитаты из 3х статей, и в каждой по разному! |
sdima85, Питер Абель. Ассемблер и программирование для IBM PC
(текст не форматировал) ГЛАВА 23. Прерывания BIOS и DOS ------------------------------------------------------------ Прерывания BIOS и DOS ПРЕРЫВАНИЯ BIOS |
По datasht_у
Intel® 82093AA I/O Advanced Programmable Interrupt Controller (I/O APIC) Specification Аппаратных прерываний 24. |
|
|
И все же куда указывают те вектора прерываний которые BIOS не распределил?
|
Каких таких 24? Ещё раз повторюсь, что две микросхемы по 8 входов позволяют организовать 16 прерываний. BIOS позволяет оперировать именно этими 16 прерываниями, да и то не всеми из них.
|
Цитата:
Описание В отличие от PIC поддерживает до 256 прерываний, реально же только 24. Поддерживает спецификацию PCI. Можно определить присутствие контролера командой ассемблера CPUID. APIC делится на две части: LOCAL и I/O APIC. LOCAL - располагается в процессоре, а вернее в ядре. I/O APIC контролер представлен в чипе микросхемой 82093AA. Контроллер прерываний (interrupt), позволяющий использовать 24 аппаратных прерывания вместо 16. Ограничение в 16 аппаратных прерываний, не менявшееся с 1982 года, сдерживало установку в персональный компьютер дополнительных устройств. В конце 2001 года появились первые материнские платы с APIC. Ссылки на источники выше. |
Цитата:
Я честно сказать слегка подзапутался, кто куда должен смотреть (BIOS, APCI и т.д.). Ссылку на П. Абеля я привел. Там хоть с адресами памяти приведено. Т.е. есть что посчитать и посмотреть. А вобще это СПО, драйвера. Программисты должны знать и те технари, которые непосредственно работают с данным уровнем. |
Тогда вообще непонятно, почему же ни в одном из BIOS'ов мне не удалось заметить номер прерывания больший, чем 15.
Цитата:
|
IMHO, путаница возникла из-за того, что контроллеры APIC могут работать в режиме эмуляции пары контроллеров PIC (2-х микросхем 8259, 16 линий запросов на прерывания, обрабатываемых одним процессорм). Этот режим устанавливается по включению питания при выполнении POST (поэтому в BIOSe нет номера прерывания более 15).
Цитата:
Упрощенно, IRET восстанавливает состояние процесса на то, что было в момент прерывания (регистры, адрес команды, флаги...) Когда же система готовится к переходу в мультипроцессорный режим, тот же самый контроллер APIC перепрограммируется в симметричный режим работы с использыванием таблицы перенаправлений прерваний. Каждому запросу соответствует свой элемент в таблице перенаправлений, находящейся в APIC. Каждый элемент содержит вектор прерывания, процессор, который должeн его обработать и параметы анализа сигнала запроса на входе INTINn( уровень или перепад сигнала - есть запрос). Кроме того, APIC позволяют вызывать прерывание и записью номера входа INTIN в регистр. При этом возможна и экономия сигнальных входов: APIC может иметь входы INTINn не для всех номеров запросов, посылаемых через запись в этот регистр. Однако число запросов всегда ограничивается размером таблицы перенаправлений. Если коротко, то в современных чипсетах, в симметричном режиме работы APIC максимальное число аппаратных линий запросов на прерывание может быть 24, а запросов на прерывание до 256. Неиспользуемое прерывание, имхо, должно также маскироваться, и его элемент в таблице перенаправлений должен содержать вектор, указывающий на команду возврата из прерывания IRET (возможно, ошибаюсь, и в расширенном режиме используется другая команда). |
Время: 00:33. |
Время: 00:33.
© OSzone.net 2001-