OSDev
http://osdev.su/

Прерывания
http://osdev.su/viewtopic.php?f=18&t=528
Страница 1 из 1

Автор:  Bargest [ 11 апр 2012, 14:32 ]
Заголовок сообщения:  Прерывания

Тыркался в виндовской "информации о системе", набрёл на строки вида
IRQ 4294967278: Renesas Electronics USB 3.0 Host Controller
или
IRQ 4294967294: Intel Xeon Processor блаблабла PCI Express Root Port 1b - 3C03

Вопрос: как это, прерывания с номером вида FFFFFFxx? Разве их всего не 256? Или в винде ещё и свой механизм псевдопрерываний с большими номерами?

Автор:  Станислав [ 11 апр 2012, 15:04 ]
Заголовок сообщения:  Re: Прерывания

Прерываний аппаратных всего 16 в PIC, в APIC 24 или чють больше, там просто адрес какойто показывается, или ещё чтото.

Автор:  Bargest [ 11 апр 2012, 15:50 ]
Заголовок сообщения:  Re: Прерывания

Цитата:
Прерываний аппаратных всего 16 в PIC, в APIC 24

Я про количество в таблице прерываний. Их же ещё и программно вызывать можно.

Автор:  pavia [ 11 апр 2012, 15:58 ]
Заголовок сообщения:  Re: Прерывания

IRQ это аппаратные прерывания.
В таблице IDT находятся программные и их число ограниченно 256.
Что касается IRQ то на два PIC их 16
В IOAPIC их 24.
А есть ещё MSI которые позволяют делать до 256 аппаратных. А если подумать то и до $FFFFFFFF прерываний
Правда интел в своем IOAPIC ввело ещё внутреннюю коммутацию прерываний для встроенной системной шины. Так что IOAPIC по ногам держит 24, а по сообщениям от 0 до 255.

И это реальные.
Что касается виндоуса ,то я бы на их месте сделал бы HAL с виртуальными номерами. Разрядность для х86 32 бита для 64битной 64бита.

Автор:  SII [ 11 апр 2012, 17:57 ]
Заголовок сообщения:  Re: Прерывания

Bargest писал(а):
Вопрос: как это, прерывания с номером вида FFFFFFxx? Разве их всего не 256? Или в винде ещё и свой механизм псевдопрерываний с большими номерами?


Не путайте номера запросов аппаратных прерываний (IRQ -- Interrupt Request) и номера векторов прерываний. Последних действительно только 256, а первых может быть сколько угодно в зависимости от используемого контроллера прерываний -- именно он принимает сигналы IRQ и преобразует их в номера векторов, которые и передаёт процессору.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/