Как внешние прерывания отводятся на процессоре powerpc?

StackOverflow https://stackoverflow.com/questions/1602865

Вопрос

Может быть, вопрос в том, являются ли внешние прерывания вообще на PowerPC? Я смотрю на http://www.ibm. com / developerworks / eserver / library / es-archguide-v2.html , книга 3, пытаясь выяснить, как процессор находит соответствующую подпрограмму обработки прерываний в ответ на внешнее прерывание. Кажется, можно предположить, что когда PPC распознает внешнее прерывание, он просто переключает выполнение на 0x0000_0500.

Возможно, я работаю из-за неправильного представления о том, как работает КПП. В x86 процессор отвечает на запросы прерываний циклом подтверждения прерываний и получает «вектор» непосредственно с устройства. Затем вектор (на самом деле индекс) позволяет процессору выбрать подходящую процедуру-обработчик из таблицы векторов прерываний. Наиболее важно, что это подтверждение / векторная выборка является аппаратной частью, протоколом шины, никто не должен писать какой-либо код, чтобы это произошло. Единственный код, который требует написания (чтение, программное обеспечение), - это сами ISR.

PPC делает что-то подобное? Будет ли таблица векторов в 0x500? Или это делает что-то радикально другое, и разгрузить функциональность передачи вектора устройства на внешний контроллер прерываний? Я полагаю, что может просто перейти к коду в 0x500, где реальное программное обеспечение затем запросит (гипотетический?) Контроллер прерываний, чтобы получить вектор ... и затем использовать его в таблице переходов / что-что -вы, но я не могу найти документацию, подтверждающую, что это так или иначе.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top