Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы к ГОСАМ ВМКСС 0704.docx
Скачиваний:
29
Добавлен:
27.04.2019
Размер:
2.8 Mб
Скачать
  1. Синхронный конвейер операций. Принцип совмещения операций

Пусть рабочий цикл имеет K этапов, то общее время выполнения команды: (1)

При этом, производительность определяется как: (2)

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

tТ = max{ti} i=1,...,r (3)

При этом условие разбиение выбирается исходя из примерно равной длительности выполнения этапов:

ti + ti+1 > tТ i=1,...,r (4)

Если условие не выполняется, то либо объединяют эти этапы, либо разбивают самый длинный этап.

После разгона конвейера параллельно во времени обрабатывается столько команд, сколько ступеней имеет конвейер (коэффициент совмещения).

Номинальная производительность конвейера после разгона:

Соотношение производительностей:

из (1) и (3): (5)

из (1) и (4): (6)

из (5) и (6): (7)

т.е. по формуле получаем выигрыш от половины до полного количества ступеней конвейера.

Реально выигрыш меньше: из-за простоя конвейера (очистка конвейера командами переходов - JMP), из-за отсутствия в цепи выполнения команд некоторых ступеней конвейера.

11. Асинхронный конвейер операций и его особенности.

Любая команда состоит из микрокоманд - это выполнение последовательности микроопераций. Время выполнения 1 микрооперации обычно занимает 1 такт. Одной из основных задач процессора является последовательное выполнение команд, и поэтому в работе процессора принято выделять основной цикл, который называют цикл выполнения команды.

Типовой цикл выполнения команд 1-2 группы состоит из 5 этапов:

  1. Выборка команды и анализ кода операции в команде

  2. Формирование адресов операндов

  3. Выборка операндов

  4. Выполнение операции в АЛУ, формирование признаков результатов

  5. Запись результата

Данному циклу соответствует периоды времени, связанные с важными функциональными действиями процессора (t1-t5) . Время выполнения одной команды – это сумма времен.

tпосл=t1+ t2+ t3+ t4+ t5

1956г - Был предложен способ совмещения во времени отдельных этапов рабочего цикла. Пусть для каждого этапа имеются свой аппаратный блок. Если соединить блоки в обрабатываемую линию, то получится конвейер.

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

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

Асинхронный конвеер:

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

12. Система прерываний программ. Функции и назначение.

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

Назначение: Любая особая ситуация, вызывающая прерывание, сопровождается сигналом, называемым запросом прерывания (ЗП). Запросы прерываний от внешних устройств поступают в процессор по специальным линиям, а запросы, возникающие в процессе выполнения программы, поступают непосредственно изнутри микропроцессора.

Аппаратные прерывания используются для организации взаимодействия с внешними устройствами:

  • маскируемые, которые могут быть замаскированы программными средствами компьютера;

  • немаскируемые, запрос от которых таким образом замаскирован быть не может.

Программные прерывания вызываются следующими ситуациями:

  • (переполнение, нарушение защиты памяти, отсутствие нужной страницы в оперативной памяти и т.п.);

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

Рисунок. Выполнение прерывания в компьютере: tр - время реакции процессора на запрос прерывания; tс - время сохранения состояния прерываемой программы и вызова обработчика прерывания; tв - время восстановления прерванной программы.

После появления сигнала запроса прерывания ЭВМ переходит к выполнению программы - обработчика прерывания. Обработчик выполняет те действия, которые необходимы в связи с возникшей особой ситуацией. Например, такой ситуацией может быть нажатие клавиши на клавиатуре компьютера. Тогда обработчик должен передать код нажатой клавиши из контроллера клавиатуры в процессор и, возможно, проанализировать этот код. По окончании работы обработчика управление передается прерванной программе.

Функции прерываний:

  1. определение наиболее приоритетного незамаскированного запроса на прерывание (если одновременно поступило несколько запросов);

  2. определение типа выбранного запроса;

  3. сохранение текущего состояния счетчика команд и регистра флагов;

  4. определение адреса обработчика прерывания по типу прерывания и передача управления первой команде этого обработчика;

  5. выполнение программы - обработчика прерывания;

  6. восстановление сохраненных значений счетчика команд и регистра флагов прерванной программы;

  7. продолжение выполнения прерванной программы.