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

Конвейеры команд и данных

Конвейер команд – устройство, предназначенное для ускоренной обработки команд в ЦП. Он позволяет сразу обрабатывать несколько команд.

1 ступень – дешифрация кода операции

2 ступень – дешифрация 1го операнда

3 ступень – дешифрация 2го операнда

4 ступень – выполнение операции

5 ступень – запись результата в память

Внутренний конвейер – команды

последовательно поступают на ступени

конвейера.

Данные и команды хранятся в общей оперативной памяти универсального МП. Цифровые сигнальные процессоры (ЦСП) имеют 2 или 3 изолированных ОЗУ со своими шинами для возможности одновременной передачи по ним команд и данных.

Это пример параллельной системы

Рис. Параллельная обработка команд и данных

В разных процессорах фирмы-производители применяют разное количество ступеней (от 3 до 30). У некоторых процессоров Intel (например, Itanium) есть 3 конвейера команд.

Пусть нам необходимо реализовать действие: e = a*b + c. Понадобятся три команды:

K1 : d = a * b

K2: e = c + d

K3: запись e из регистра в память

Без КК (конвейера команд) действие будет реализовано за 15 тактов, с КК – за 8. Таким образом,

, то есть КК может существенно ускорить обработку команд.

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

В ЦП с тремя конвейерами команды группируются в связки определённым образом (|| - команды выполняются параллельно):

  1. k1||k2, k3

  2. k1, k2||k3

  3. k1||k2||k3

  4. k1, k2, k3

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

Найдём ускорение внешнего конвейера (данных) с использованием ПЭ внутреннего конвейера:

Поскольку с использованием КК каждый из процессоров КД будет работать в 1.8 раз быстрее, ускорение также увеличится в 1.8 раз:

Буфер команд

БК (буфер команд) позволяет извлекать команды из памяти за меньшее количество циклов обработки команд и памяти по сравнению с традиционным методом.

Формат всех команд укладывается в 1 байт

16-разрядные процессоры с БК – 2 команды за обращение

32-разрядные процессоры с БК – 4 команды за обращение

Рассмотрим 32-разрядный процессор. Без БК он получает 4 команды за 4 такта, с БК – за 1. Потенциальное возможное ускорение потому есть 4/1 = 4.

Сравним более детально работу 2 ПЭ с БК и без него. Будем считать, что работа с командами и данными различна (команды считываются во внутренние регистры ЦП и далее используются, данные можно ещё изменить и записать в память). Допустим, программа обрабатывает равное количество команд и данных (по 4), которые

а) извлекаются из памяти последовательно в соответствующие регистры ЦП

б) извлекаются с использованием БК для команд

Получим следующую таблицу обращений к памяти:

БК

К

Д

Общее кол-во тактов

нет

4

3*4 (2 на считывание, 1 на запись, 4 раза)

16

есть

1

3*4

13

В таком случае

Таково оценочное значение U при использовании БК при равном количестве команд и данных. При других соотношениях U будет другим.

Сводная таблица ускорений для задачи умножения матрицы 4х4 на вектор 4х1

ВС (выч. сист.) с ПЭ

Ускорение без БК

Ускорение с БК

Вид выполнения

1 ПЭ без КК

1

1.23

Последовательное

1 ПЭ с КК

1.8

2.214

Последовательное

5 ПЭ без КК

1.8

2.214

Параллельное

5 ПЭ с КК

3.24

3.98

Параллельное