Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура ЭВМ - лекции.doc
Скачиваний:
14
Добавлен:
22.07.2019
Размер:
318.98 Кб
Скачать

Системы с конвейерной обработкой данных.

Термин “совмещение операций” означает, что аппаратура компьютера в каждый момент времени выполняет больше одной базовой операции. Добиться этого можно двумя способами: параллелизмом или конвейеризацией.

Параллелизм.

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

Конвейеризация.

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

Выполнение типичной команды при конвейерной обработке данных происходит в несколько пунктов:

IF – выборка команды по адресу из счётчика команд.

ID – декодирование команды, выборка операндов.

EX – выполнение операций вычисления эффективного (настоящего) адреса памяти.

MEM – обращение к памяти.

WB – запоминание результата.

Таблица задействования блоков при конвейеризации:

Команда

Номера тактов

КОМА

1

2

3

4

5

6

7

8

9

I

IF

ID

EX

MEM

WB

i+1

IF

ID

EX

MEM

WB

i+2

IF

ID

EX

MEM

WB

i+3

IF

ID

EX

MEM

WB

i+4

IF

ID

EX

MEM

WB

КОМА – это номер блока.

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

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

Например, не сумел блок i обратиться к памяти в четвёртом такте, и работа продолжилась только в пятом такте, к которому уже обращается блок i+1. Происходит конфликт.

Существует три класса конфликтов:

  1. Структурные конфликты: аппаратные средства не могут поддерживать все возможные комбинации команд в режиме одновременного выполнения совмещением.

  1. Конфликт по данным, когда результат выполнения одной команды зависит от результата выполнения другой команды.

  1. Конфликты по управлению, возникающие при использовании команд переходов и некоторых других команд, изменяющих IP.

Принципы векторной обработки:

  • перед каждой скалярной операцией нужно вызвать и декодировать скалярную команду.

  • для каждой команды нужно вычислить адреса данных.

  • данные берутся из памяти, результат помещается в память.

Примеры использования конвейеризации: матричные вычислительные системы, ассоциативные вычислительные системы (оба этих примера относится SIMD-классу).