pavia писал(а):
Цитата:
Что значит "фиксация прерывания"? Если фиксация _запроса_ прерывания, то она производится только для запросов, распознаваемых по фронту, а запросы по уровню не фиксируются, почему и могут быть потеряны.
Вы не правы.
Цитирую ICH10
Цитата:
One or more of the Interrupt Request lines (IRQ) are raised high in edge mode, or
seen high in level mode, setting the corresponding IRR bit.
Написано что фиксируется.
Поэтому вы не правы.
Что произойдёт, если в режиме запроса уровнем линия IRQ сначала будет активной, а потом перестанет таковой быть? Соответствующий бит IRR останется установленным или тоже упадёт в 0? Вот сначала разберитесь с этим вопросом, а потом заявляйте, что я не прав.
Цитата:
Цитата:
(установкой соответствующего бита в ISR), то она производится в во время передачи запроса процессору,
Снова ошибка. ISR устанавливается не во время передачи запросу процессору, а во время ответа процессора.
Цитата:
Upon receiving the first internally generated INTA# pulse, the highest priority ISR
bit is set and the corresponding IRR bit is reset.
Формально -- ошибка, фактически -- нет, поскольку передача запроса процессору идёт совместно с получением от него ответа. Но выразился неправильно, так что спорить не буду.
Цитата:
Цитата:
то она производится в во время передачи запроса процессору, а в этот момент собственно запрос может быть потерян (если он распознавался по уровню и соответствующая линия IRQ вдруг стала неактивной), что, собственно, и создаёт проблемы.
Это домыслы.
Цитата:
In both the edge and level triggered modes, the IRQ inputs must remain active until
after the falling edge of the first internal INTA#. If the IRQ input goes inactive before
this time, a default IRQ7 vector is returned.
Интел сами пишут что прерывание должны быть активны.
Это не домыслы, а суровая правда жизни. Линии запросов _должны_ оставаться активными, чтобы такой ситуации не возникало, однако реальная жизнь тем и отличается от теории, что там регулярно происходят "неправильные" вещи. Так что приходится учитывать, что сигнал запроса _может_ пропасть в самый неподходящий момент -- и тогда PIC сделает то, что написано -- а именно сгенерирует прерывание по вектору для IRQ7. Соответственно, обработчик этого прерывания должен проверять, что послужило его источником, иначе будут проблемы.
Цитата:
Все проще. Вектор 7 служи для обнаружения дребизка в контактах. Если будет кратковременное срабатывание прерывания. То оно будет выглядит как будто оно потерялось. На самом деле это признак шума в проводах.
Не знаю, что такое "дребизк", а дребезг бывает только контактов, но никак не в контактах -- но это всё придирки. А IRQ7 вообще-то служит не для обнаружения помех, которые могут возникать в линиях запросов прерываний, хотя "по совместительству" вынужден выполнять и эту работу.
Цитата:
Цитата:
Кстати говоря, ссылаться на документацию на сам 8259 рискованно: реализация PIC в чипсетах далеко не соответствует оригинальной (хотя б потому, что половина функций и режимов не реализована вообще, поскольку на ПК она использоваться не может). Так что надо разбираться именно с документацией на достаточно современные южные мосты.
Да ладно какие там не реализованы? Там только нет 8085/8088. А во вторых ломать проще чем строить. Кто в здравом уме будет переписывать отлаженный код? Так и инженерам интел проще было скопировать готовый PIC8259 в тот-же мост. Вот и все дела. Убрать лишнее.
Убрана там не только поддержка 8080 (а отнюдь не 8088), но не в этом дело. Никто готовый кусок оригинального 8259 не брал, его проще было переделать -- хотя бы потому, что сейчас электронные схемы описывают на специальных языках (VHDL, Verilog, ещё что-то), а не делают на схемном уровне, как это было во времена создания 8259. Другое дело, что при переносе из чипсета в чипсет никто это переделывать не будет.
Цитата:
Им даже полярность было проще поменять чем расширение для PIC делать.
Так что ссылаться на старые источники можно. Я бы сказал нужность. Да коэффициент доверия со временем падает.
Можно, но осторожно. А полного доверия у меня ни к каким источникам нет, поскольку регулярно попадаются если не прямые ошибки, то, по крайней мере, неточности.