Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Хочу все знать » Помогите разобраться с прерываниями

Ответить
Настройки темы
Помогите разобраться с прерываниями

Аватара для sdima85

Новый участник


Сообщения: 18
Благодарности: 0

Профиль | Отправить PM | Цитировать


Какие прерывания куда распределены?
Куда указывают те прерывания которые BIOS не распределил?

Отправлено: 17:03, 06-08-2009

 

Аватара для sdima85

Новый участник


Сообщения: 18
Благодарности: 0

Профиль | Отправить PM | Цитировать


Да и здесь написано что 24

http://wiki.kldp.org/wiki.php/InterruptAndException

Отправлено: 16:32, 14-08-2009 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для sdima85

Новый участник


Сообщения: 18
Благодарности: 0

Профиль | Отправить PM | Цитировать


И все же куда указывают те вектора прерываний которые BIOS не распределил?

Отправлено: 10:23, 17-08-2009 | #12


Аватара для DVDshnik

Не дед


Moderator


Сообщения: 15390
Благодарности: 2196

Профиль | Отправить PM | Цитировать


Каких таких 24? Ещё раз повторюсь, что две микросхемы по 8 входов позволяют организовать 16 прерываний. BIOS позволяет оперировать именно этими 16 прерываниями, да и то не всеми из них.

-------
Ненавижу, когда все шагают строем - одинаково стриженые, одинаково одетые, с одинаковыми мыслями в одинаково пустых головах. (С) Кий


Отправлено: 12:19, 17-08-2009 | #13


Аватара для sdima85

Новый участник


Сообщения: 18
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата DVDshnik:
Каких таких 24? »
APIC — Advanced Programmable Interrupt Controller. Улучшенный программируемый контроллер прерываний
Описание

В отличие от PIC поддерживает до 256 прерываний, реально же только 24. Поддерживает спецификацию PCI. Можно определить присутствие контролера командой ассемблера CPUID. APIC делится на две части: LOCAL и I/O APIC. LOCAL - располагается в процессоре, а вернее в ядре. I/O APIC контролер представлен в чипе микросхемой 82093AA.

Контроллер прерываний (interrupt), позволяющий использовать 24 аппаратных прерывания вместо 16. Ограничение в 16 аппаратных прерываний, не менявшееся с 1982 года, сдерживало установку в персональный компьютер дополнительных устройств. В конце 2001 года появились первые материнские платы с APIC.

Ссылки на источники выше.

Отправлено: 12:59, 17-08-2009 | #14


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Цитата sdima85:
И все же куда указывают те вектора прерываний которые BIOS не распределил? »
Вариант "никуда" не рассматривался?
Я честно сказать слегка подзапутался, кто куда должен смотреть (BIOS, APCI и т.д.). Ссылку на П. Абеля я привел. Там хоть с адресами памяти приведено. Т.е. есть что посчитать и посмотреть.
А вобще это СПО, драйвера. Программисты должны знать и те технари, которые непосредственно работают с данным уровнем.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 13:40, 17-08-2009 | #15


Аватара для DVDshnik

Не дед


Moderator


Сообщения: 15390
Благодарности: 2196

Профиль | Отправить PM | Цитировать


Тогда вообще непонятно, почему же ни в одном из BIOS'ов мне не удалось заметить номер прерывания больший, чем 15.
Цитата sdima85:
В отличие от PIC поддерживает до 256 прерываний, реально же только 24. »
Что-то я не догоняю... Путаница в трёх соснах происходит. Внимательно посмотрите ресурсы оборудования, кои ХР распределяет, и увидите прерывания из пятого десятка, например. А уж Виста обладает несколькими сотнями прерываний.

-------
Ненавижу, когда все шагают строем - одинаково стриженые, одинаково одетые, с одинаковыми мыслями в одинаково пустых головах. (С) Кий


Отправлено: 06:42, 18-08-2009 | #16


Старожил


Сообщения: 223
Благодарности: 53

Профиль | Отправить PM | Цитировать


IMHO, путаница возникла из-за того, что контроллеры APIC могут работать в режиме эмуляции пары контроллеров PIC (2-х микросхем 8259, 16 линий запросов на прерывания, обрабатываемых одним процессорм). Этот режим устанавливается по включению питания при выполнении POST (поэтому в BIOSe нет номера прерывания более 15).
Цитата sdima85:
И все же куда указывают те прерывания которые BIOS не распределил (при условии что есть не занятые)? »
Если какое-то прерывание не распределено, то вектор программы обработки такого прерывания указывает на команду IRET (возврат из обработки прерывания). Кроме того, неиспользуемые линии запросов на прерывание маскируются установкой битов регистра маски контроллера. Биты маски устанавливаются программно и могут запрещать или разрешать соответствующие прерывания.
Упрощенно, IRET восстанавливает состояние процесса на то, что было в момент прерывания (регистры, адрес команды, флаги...)

Когда же система готовится к переходу в мультипроцессорный режим, тот же самый контроллер APIC перепрограммируется в симметричный режим работы с использыванием таблицы перенаправлений прерваний.
Каждому запросу соответствует свой элемент в таблице перенаправлений, находящейся в APIC. Каждый элемент содержит вектор прерывания, процессор, который должeн его обработать и параметы анализа сигнала запроса на входе INTINn( уровень или перепад сигнала - есть запрос).
Кроме того, APIC позволяют вызывать прерывание и записью номера входа INTIN в регистр. При этом возможна и экономия сигнальных входов: APIC может иметь входы INTINn не для всех номеров запросов, посылаемых через запись в этот регистр. Однако число запросов всегда ограничивается размером таблицы перенаправлений.
Если коротко, то в современных чипсетах, в симметричном режиме работы APIC максимальное число аппаратных линий запросов на прерывание может быть 24, а запросов на прерывание до 256.
Неиспользуемое прерывание, имхо, должно также маскироваться, и его элемент в таблице перенаправлений должен содержать вектор, указывающий на команду возврата из прерывания IRET (возможно, ошибаюсь, и в расширенном режиме используется другая команда).

-------
Переустановка Windows - как разморозка холодильника. Помогает, но ненадолго...


Последний раз редактировалось ab57, 19-08-2009 в 10:30. Причина: Добавил про IRET

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:46, 18-08-2009 | #17



Компьютерный форум OSzone.net » Компьютеры + Интернет » Хочу все знать » Помогите разобраться с прерываниями

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Помогите разобраться pogo Microsoft Windows NT/2000/2003 2 06-07-2009 13:00
MySQL - Помогите разобраться Red Virus Программирование и базы данных 1 04-03-2008 21:39
FreeBSD - Помогите разобраться. Myrzilka Общий по FreeBSD 0 15-01-2008 23:51
Помогите разобраться Larich Хочу все знать 1 08-06-2007 08:25
Помогите разобраться..... Dimskiy Microsoft Windows 2000/XP 4 26-06-2006 18:50




 
Переход