Данный МП имеет более гибкую и разветвленную систему прерываний. Он способен реагировать на внешние прерывания (немаскируемый/маскируемый входы). В системе прерываний заложены программные прерывания, которые инициируются специальным кодом. Также имеются внутренние прерывания, возникающие при некорректной работе МП.
Указанный МП содержит векторную систему прерываний. Каждому типу прерываний соответствует свой вектор.
Часть векторов по умолчанию имеют строгое назначение, часть назначается программистом. Имеется 256 векторов прерываний.
Схема возможных источников прерываний представлена на рисунке 30.
Внешние прерывания
Внешние прерывания бывают маскированные и немаскированные. Если прерывание маскированное, то запрос может быть от контроллера прерываний или внешнего устройства.
Рис. 30
Запрос на немаскируемое прерывание обычно используется для прерывания МП в критических режимах. Сигналом запроса на прерывание является сигнал аварии. Прерыванию присваивается фиксированный код (тип 2). Он автоматически формируется внутри процессора. При обслуживании прерывания цикл шины подтверждения прерывания не формируется, чем ускоряется реакция МП на поступивший запрос.
Внешние прерывания могут поступить в любой момент времени.
Программные прерывания
Данные прерывания осуществляются по 2-байтной команде INTn или по однобайтной команде INT3. Для двухбайтной команды тип прерывания указывается во втором байте. Однобайтное прерывание INT3 определено как прерывание в контрольной точке (точке разрыва). Такой точкой может быть любое место в программе, где необходимо прервать выполнение программы и выполнить какие-то действия.
Внутренние прерывания
Внутренние прерывания характеризуются типом, который либо предопределен, либо содержится в коде команды.
Данные прерывания не могут быть запрещены, за исключением работы МП в пошаговом режиме. Эти прерывания имеют более высокий приоритет по отношению к внешним.
Если МП переведен в пошаговый режим, то он реагирует на внешние и внутренние прерывания.
Таким образом, на поступающий запрос на прерывание INTR МП реагирует выполнением последовательно двух машинных циклов:
1) в первом машинном цикле МП указывает контроллеру прерываний, что запрос был воспринят и требуется обслуживание;
2) во втором машинном цикле контроллер прерываний выдает на шину данных байт данных, который содержит тип прерывания (0÷255).
Если МП работает в максимальном режиме, то на его выходе LOCK формируется сигнал занятости магистрали для сопроцессоров.
Таким образом, всего 256 типов прерывания. Каждый вектор занимает четыре ячейки памяти: два младших адреса – для записи смещения в сегменте, два старших – для записи начального смещения (базовый адрес сегмента).
Табл. 5
003FF
003FС
Тип 255
Тип 1
Тип 0
2.4. Примеры конфигураций МПС на базе центрального процессора (ВМ86) и сопроцессора ввода/вывода (ВМ89)
Сопроцессор и процессор могут разделять общую шину и обращаться к памяти и устройствам ввода/вывода по этой шине. Возможно также раздельное использование шин с целью увеличения быстродействия.
Рис. 31
Рис. 31
МП может обращаться в системное пространство адресов емкостью 1 Мбайт, либо в пространство ввода/вывода емкостью 64 кбайта. Реально МП располагает только одной физической шиной данных, но удобно считать, что в системное пространство он обращается по системной шине данных, а в пространство ввода/вывода – по шине ввода/вывода.
Отличие между шинами в формируемых управляющих сигналах.
Часть устройств ввода/вывода могут иметь адреса, размещенные в системном пространстве, поэтому говорят, что эти устройства ввода/вывода отображены на память, т.е. данные устройства ввода/вывода реагируют на 20-битные адреса, закрепленные за ними, и управляются сигналами МRD, MWR.
Аналогично, часть памяти может быть размещена в пространстве ввода/вывода, т.е. память оказывается отображенной на пространство ввода/вывода, т.е. данные ячейки могут реагировать на 16-битные адреса и команды для устройства ввода/вывода.
Указанные шины функционируют по-разному, в зависимости от конфигурации системы, где есть и сопроцессоры.
Различают две конфигурации:
1) местная;
2) удаленная.
В местной конфигурации сопроцессор и центральный процессор совместно
Рис. 32
В местной конфигурации ЦП и СП совместно используют шины.
Арбитраж осуществляется по линии запроса, причем наиболее приоритетным является центральный процессор.
Если подключены два сопроцессора, то при одновременном запросе ВМ87 и ВМ89 предпочтение отдается ВМ89, но если в момент запроса шина используется ВМ87, то запрос не будет подтверждаться до окончания счета ВМ87.
Недостаток конфигурации – ограничение возможности параллельной работы ЦП и сопроцессора. Параллельная обработка возможна лишь тогда, когда ЦП не использует шину, выполняя команды из очереди.
При удаленной конфигурации общей является системная шина (СШ), но обращение к ней происходит под управлением арбитра шин. Шина ввода/вывода (ШВВ) является локальной. Ей безраздельно пользуется сопроцессор. Эта шина физически отделена от системной шины, поэтому в данной конфигурации сопроцессор может обращаться к устройствам ввода/вывода и памяти по локальной шине, не отвлекая от работы центральный процессор.
Наибольшая производительность системы достигается при размещении программ канала в локальной памяти, подключенной к локальной шине. Поэтому при извлечении команд программ канала сопроцессор не отвлекает от работы центральный процессор.