Как внешние прерывания отводятся на процессоре powerpc? - PullRequest
0 голосов
/ 21 октября 2009

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

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

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

...