АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Опишем перечисленные этапы более детально

Читайте также:
  1. II. Основные цели и задачи Программы, срок и этапы ее реализации, целевые индикаторы и показатели
  2. II. Этапы подготовки курсовых и ВКР
  3. V1: Основные аспекты организации коммерческой деятельности и этапы ее развития
  4. Аэродинамический расчет воздуховодов. Этапы расчета.
  5. Б) повышение процентных ставок с тем, чтобы сделать кредиты более привлекательными для владельцев наличных денег,
  6. Более общее и более специальное в способностях
  7. Более подробно о том, как смягчить грех аборта или освободиться от него, Вы можете прочитать в Журнале «Благодарение с любовью» № 4.
  8. Более поздние исследования
  9. Более совершенные системы низкоуглеродистой энергии
  10. Более суровое наказание
  11. В зданиях высотой менее 10 этажей в коридорах без естественного освещения, предназначенных для эвакуации 50 и более человек, должно быть предусмотрено дымоудаление.
  12. В настоящее время наиболее существенное влияние на совокупный спрос в российской экономике оказывает такой неценовой фактор . как

1. Внешний запрос прерывания приходит асинхронно (без какой-либо привязки во времени) по отношению к выполняемому потоку команд. Произвести переход на обработчик в большинстве процессоров можно только в промежутке между выполнением соседних команд, поэтому обычно выполнение текущей команды заканчивается. В некоторых процессорах, если время выполнения текущей команды велико, ее выполнение прерывается, а после выхода из прерывания команда начинает выполняться сначала (это, например, типично для команд плавающей точки в процессорах, где они реализованы микропрограммно). В процессорах х86 прерываются команды строковых операций, но после выхода из прерывания они не начинаются сначала а продолжают работу с того места, где были прерваны. Некоторые комбинации команд используются совместно, и прерывание между ними может привести к фатальным результатам. Такова в х86 пара команд, переустанавливающих положение стека: для этого надо поменять содержимое регистра сегмента стека и затем содержимое указателя стека. Поскольку в х86 для сохранения контекста используется стек, то прерывание между указанными двумя командами вызовет сохранение контекста (якобы в стеке) в неверном месте памяти. Для исключения такой ситуации команда загрузки в регистр сегмента стека автоматически запрещает прерывание до окончания следующей команды, которая обязательно должна перезагружать указатель стека.

2. В некоторых ситуациях прерывание недопустимо (например, при выполнении участков программы, критичных ко времени выполнения), поэтому во всех процессорах имеется возможность запретить прерывания (по крайней мере некоторые). Возникшие в этот период запросы могут быть потеряны, либо могут ждать обслуживания, которое произойдет, когда прерывания будут разрешены - это зависит от устройства конкретного процессора и от свойств входов запроса прерываний. В некоторых процессорах можно программно управлять свойствами входа: запоминается или теряется запрос, который приходит в период, когда прерывания процессору запрещены. В системе команд обычно есть команды, запрещающие и разрешающие прерывание. Кроме того, внешние устройства-источники запросов позволяют программно разрешить/запретить прерывание от данного устройства (прерывания от других устройств при этом будут обрабатываться).

3. При нескольких источниках запроса возможна ситуация, когда в процессор поступают одновременно несколько запросов. Это вовсе не значит, что запросы одновременно возникают, это крайне маловероятно. Однако нередка ситуация, когда в течение некоторого времени прерывание запрещено, и в этот период (не одновременно) возникает несколько запросов. Когда выполнится команда "разрешить прерывание", запросы поступают в процессор равноправно. Надо каким-нибудь способом определить порядок, в котором запросы будут обрабатываться (их приоритеты). Используется несколько разных способов:
а) приоритеты фиксированы и не могут быть изменены;
б) приоритеты определяются электрической схемой и для их изменения надо произвести переключения в схеме;
в) приоритеты изменяются циклически: последнему обслуженному устройству присваивается самый низкий приоритет;
г) приоритеты могут быть программно заданы в произвольной комбинации;...
... и множество других и вариантов...


Для варианта б), который в настоящее время уже почти не встречается, использовалась "цепочечная" схема, когда устройства по линии запроса прерывания соединяются последовательно (так называемая схема daisy chain)

Приоритеты устройств в цепочке уменьшаются (на рисунке) справа налево.

Если устройство не находится в состоянии «готов», оно пропускает входной сигнал запроса (от менее приоритетного устройства) на выход. Если же устройство «готово», оно формирует на выход собственный сигнал запроса, и одновременно блокирует прохождение запросов от менее приоритетного участка цепочки (на рисунке – слева).

 

 

4. Далее происходит обмен сигналами между источником запроса и процессором. Сначала процессор посылает сигнал подтверждения приема запроса. В случае daisy chain сигнал подтверждения распространяется также только до устройства, наиболее близкого к процессору из всех, выставивших запрос прерывания.

5. Используется несколько способов идентификации источника прерывания. В случае магистральной архитектуры устройство обычно передает по магистрали информацию о себе процессору. Эта информация обычно содержит условный код (номер) источника запроса, по которому процессор способен определить адрес памяти, содержащий информацию о местонахождении в памяти обработчика. В качестве условного кода может использоваться адрес вектора прерывания или стартовый адрес обработчика или даже полный код команды call перехода на обработчик (так было сделано в процессоре i8080). Термин вектор прерывания используют в двух разных значениях: а) контекст (вектор состояния) обработчика, автоматически загружаемый при выполнении прерывания, б) участок памяти, где хранится этот контекст. Обычно для хранения контекстов обработчиков разработчики процессора выделяют в адресном пространстве специальную область векторов прерывания. Для некоторых из прерываний разработчики процессора могут предопределить положение векторов и значения адресов перехода, в то время как другие программист может задавать по своему усмотрению программно.

6. Сохранение текущего контекста процессор чаще всего делает в стеке. В простейшем случае сохраняется содержимое счетчика команд и содержимое регистра состояния. Во многих процессорах в регистре состояния отдельные биты имеют отношение к управлению прерываниями, и автоматическое сохранение слова состояния предоставляет ряд дополнительных возможностей, а иногда является просто необходимым (см. например далее "пошаговую отладку" для процессоров х86).

7. Загрузка контекста обработчика (вектора прерывания). Результат этого действия - переход на первую команду обработчика. Используются различные способы указания того, в каком адресе памяти расположена эта первая команда. Чаще всего адрес обработчика содержится в соответствующем векторе прерывания. Существенным является вопрос о том, разрешено ли прерывание после перехода на обработчик. В большинстве процессоров при входе в прерывание повторное (вложенное) прерывание автоматически запрещается. Обработчик может разрешить прерывание соответствующей командой (например в процессорах х86 это команда sti). В этом случае возможно "вложенное" прерывание, в том числе и от этого же источника, но для этого обработчик прерывания должен быть реентерабельным, т.е. допускать рекурсивный вызов. Кроме того, это может привести к нарушению приоритетов – менее приоритетное событие будет обслужено раньше, чем более приоритетное.

8. Возврат из прерывания восстанавливает контекст прерванной программы. Существенно, что восстанавливается состояние "разрешено/запрещено прерывание" - после возврата из прерывания возможно следующее прерывание, если есть запрос.

 

Время реакции на запрос прерывания. Оно определяется двумя независимыми факторами.
1) Время входа в прерывание для одиночного запроса.
2) Интенсивность потока запросов ‑ при значительном количестве источников и при интенсивном потоке запросов часто оказывается, что очередной запрос приходит еще до того, как обслужен предыдущий. В этом случае среднее время реакции на запрос (время от момента возникновения запроса до начала выполнения первой команды обработчика) может оказаться значительным


1 | 2 | 3 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)