Page 285 - 4503
P. 285
дозволеного джерела. На рисунку 9.2 представлена блок–
схема відгуку на запит переривання. Для прикладу, на схемі
покaзаний запит від зовнішньої події. Незалежно від того має
місце запит чи ні, мусить відбутися завершення поточної
команди основної програми, навіть коли вона займає не один,
а два машинних цикли (прямокутник 1 на рисунку 9.2 ).
2. Якщо такого запиту немає то мікроконтролер просто
переходить до виконання наступної команди і процес
повторюється.
3. Якщо запит є, тоді три наступні машинні цикли
витрачатимуться на передачу керування процедурі обробки
переривань, з них перший буде холостим (він також може
бути завершальним циклом 2–циклової команди), а ще два є
необхідні для процесу скидання конвеєра. Отже, з
урахуванням часу на довиконання поточної команди основної
програми, інтервал між надходженням запиту переривання і
початком виконання 1-ої команди процедури обробки
переривань становить 3-4 машинних цикли. Цей період
називають затримка обробки переривань (interrupt latency).
Якщо запит на переривання надійде ближче до кінця
виконання поточної команди, то ця затримка триватиме ледь
більше трьох машинних циклів. При надходженні зипиту на
початку виконання поточної команди затримка триватиме
майже 4 машинних цикли.
4. Під час цієї затримки мікроконтролери РІС виконують
наступні операції:
Оскільки затримка відбувається тільки після
надходження запиту від одного з джерел, то всі інші запити,
які можливо поступлять у слід за цим потрібно просто
«поставити у чергу» — тобто заблокувати їх вплив на час
виконання процедури обробки першого переривання. Для
цього передбачена заборона всієї системи переривань
(прямокутник 4 на рисунку 9.2). Вона здійснюється шляхом
285