Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Организация ЭВМ лекция.docx
Скачиваний:
6
Добавлен:
30.08.2019
Размер:
1.76 Mб
Скачать

20032012 Лекция 7

Виды конвейеров операций.

Синхронный конвейер работает в принудительном режиме и для выполнения любого этапа выделено одинаковое время. Длительность такта выбирается по максимальному времени при выполнении все возможных команд.

В асинхронном конвейере отсутствует единый такт работы. Следующий этап начинает работать, когда предыдущий закончит. Эффективное использование асинхронного конвейера будет в том случае, когда велика зависимость продолжительности выполнения отдельных этапов от типов и форматов команд.

Кроме конвейера операций, существует ещё арифметический конвейер, который тоже может быть синхронным и асинхронным, универсальным и специализированным. Суть его такая же, то есть выполнение функции разбирается на выполнение последовательности подфункций. Примером может служить сложение чисел (ТА) с фиксированной и плавающей запятыми. Тут же возможен простой конвейера при отсутствии некоторых операций.

В современных процессорах применяется как конвейер операций, так и арифметический конвейер. Кроме увеличения производительности, разбиение на блоки упрощает разработку и анализ.

27032012 Лекция 8 Обработка асинхронных событий процессоров. Система прерываний процессоров

Во время работы процессора возникает события, которые требуют реакции со стороны процессора. Процессор должен прерывать текущую программу, обрабатывать событие, а затем вернуться к прежней задаче.

Прерывание – это обработка асинхронного по отношению к процессору события, которое не может быть заранее определенно.

Поскольку событие является не запланированным, нужно иметь специальный сигнал, сообщающий о неминуемом событии – сигнал прерывания.

Примеры прерываний:

1.По источнику формирования запроса: внутренние (вырабатывает сам процессор, деление на нуль например), внешние (по входам от всех внешних устройств NMI и INTR), программные (вызываются из программ, например, CALL_параметры, RST_параметры)

2.По маскируемости: немаскируемые (INTR) (не может быть не обработан, запрос имеет наивысший приоритет, отсутстсвие обработки этого запроса чревато серьёзными последствиями), маскируемые (NMI) (программа может либо разрешить, либо запретить, то есть наложить маску, к таким входам подключены все внешние устройства, отсутствие обработки не приведет к фатальным последствиям)

3.По типу входов запросов прерываний: статические входы (по уровням), динамические (по фронту).

Для того чтобы обрабатывать запросы прерываний, процессору необходимо иметь систему обработки прерываний, которая представляет собой совокупность аппаратных и программных средств. Основными функциями системы являются:

1.Запоминание состояния прерываемой программы;

2.Переход к подпрограмме обработки прерывания;

3.Восставноление состояния прерванной программы; 4.Расстановка приоритетных соотношений при наличии нескольких запросов прерывания;

5.Разрешение или запрет обработки прерывания.

Характеристики системы прерывания:

  1. Общее количество запросов прерывания;

  2. Число запросов от внешних источников;

  3. Время реакции системы – это время между появлением запроса прерывания и началом обработки этого запроса;

Поскольку время реакции в общем случае зависит от приоритета запроса, то оно определяется для запроса с самым высоким приоритетом. Время реакции может включать в себя tзапоминания при аппаратной реализации запоминания прерванной программы.

Так как прерывание в большинстве случаев возможно между выполнением команд, то на время реакции сильно влияет время выполнения команд. Есть такие системы, в которых прерывание возможно между отдельными микрокомандами, но используются они достаточно редко, так как резко увеличивают количество запоминаемой информации.

Чтобы уменьшить время реакции системы, используются ортогональные состояния процессора.

  1. Затраты времени на переключение программ – время издержек и включает в себя время запоминания и время восстановления.

  2. Глубина прерывания – это максимальное число программ, которые могут прервать друг друга. Если после перехода к подпрограмме обработки прерывания и до её окончания обработка других прерываний невозможна, то глубина будет равна 1. Чем больше глубина прерывания, тем больше вероятность обработки запроса с наивысшим приоритетом.

  3. Число уровней прерываний. Все запросы делятся на классы или уровни и каждый уровень обрабатывается одной подпрограммой обработки прерываний.

Организация обработки прерываний

Если прерывание похоже на подпрограмму, то и вызов подпрограммы обработки прерывания похож на вызов обычной подпрограммы.

Чтобы перейти к программе обработки прерываний нужно иметь информацию о её местоположении. Такая информация содержится в векторе прерывания. То есть вектор прерывания – это адрес первой команды подпрограммы обработки прерывания. Вектора объединяются в специальной таблице «Таблица векторов прерываний», она располагается в оперативной памяти. Вектор прерывания ставится в соответствии каждому уровню прерывания. Сформировать вектор прерывания можно различными способами.

Если иметь дело со специализированным процессором, в котором есть всего один вход запроса прерывания, то в самый процессор вводится дополнительный регистр – регистр адреса подпрограммы обработки прерывания.

Если имеется множество запросов прерываний и множество программ их обслуживания, то нужно иметь средство хранения нескольких адресов подпрограмм и функцию определения устройства, с которого приходит запрос. Два варианта:

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

2.Контроллер прерываний берет на себя функцию определения. Позволяет подключить гораздо большое количество источников (снимается ограничение), но любой контроллер связан с его программированием (теряется скорость обработки). В этом случае у МП всего один вход INT, а INTA – это подтверждение запроса.

Способы передачи адреса подпрограммной обработки прерываний

  1. Передача команды целиком, например: CALL_addr и RST_n. +адрес подпрограммы может быть любой –длинная команда (минимум 3 байта).

  2. Передача номера вектора прерывания. +быстродействие выше; -низкая помехозащищенность (возможно ложное срабатывание запросов).

Приоритеты прерываний

Бывают абсолютные и относительные приоритеты. Абсолютные приоритеты прерываний - текущую программу, а относительные – кандидаты на обслуживание (можно и не обслуживать).

Очень часто приоритет определяется порядком соединений линий запросов прерываний обходом запросов. Вход с наименьшим номером будет иметь наивысший приоритет.

Управлением приоритетом можно программно и аппаратном, можно смешанным.