Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

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



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

 

 
 


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), которые

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

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

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

БК К Д Общее кол-во тактов
нет 3*4 (2 на считывание, 1 на запись, 4 раза)
есть 3*4

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

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

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

ВС (выч. сист.) с ПЭ Ускорение без БК Ускорение с БК Вид выполнения
1 ПЭ без КК 1.23 Последовательное
1 ПЭ с КК 1.8 2.214 Последовательное
5 ПЭ без КК 1.8 2.214 Параллельное
5 ПЭ с КК 3.24 3.98 Параллельное

 

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.