Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Классификация Фишера для мелкозернистого паралеллизмаСодержание книги
Поиск на нашем сайте
Мелкозернистый параллелизм – это параллелизм в обработке смежных ко манд, операторов, небольших векторов данных. Чтобы реализовать этот вид параллелизма, компилятор и аппаратура должны выполнить следующие действия: определить зависимости между операциями; определить операции, которые не зависят ни от каких еще не завершенных операций; спланировать время и место выполнения операций. В соответствиис этим архитектуры с МЗП можно классифицировать сле- дующим образом: 1. Последовательностные архитектуры: архитектуры, в которых компиляторне помещает в программу в явном виде какую-либо информацию о параллелизме. Компилятор только перестраивает код для упрощения действий аппа- ратуры по планированию. Представителями этого класса являются супер- скалярные процессоры. 2. Архитектуры с указанием зависимостей: в программе компилятором явно представлены зависимости, которые существуют между операциями, неза- висимость между операциями определяет аппаратура. Этот класс представ- ляют процессоры потока данных. 3. Независимостные архитектуры: архитектуры, в которых компилятор помещает в программу всю информацию о независимости операций друг от друга. Это VLIW-архитектуры. Классы микропроцессоров по Фишеру
Суперскалярные процессоры. В таких архитектурах компилятор не производит выявление параллелизма, поэтому программы для последовательностных архитектур не содержат явно выраженной информации об имеющемся параллелизме, и зависимости между командами должны быть определены аппаратурой. В некоторых случаях компилятор может для облегчения работы аппаратуры производить упорядочивание команд. Если команда не зависит от всех других команд, она может быть запущена. Возможны два варианта последовательной архитектуры: суперконвейер и суперскалярная организация. В первом случае параллелизм на уровне команд нужен для того, чтобы исключить остановки конвейера. Здесь аппаратура должна определить зависимости между командами и принять решение, когда запускать очередную команду. Если конвейер способен вырабатывать один результат в каждом такте, такой конвейер называется суперконвейером. За счет уменьшения объема работы в одном такте возникает возможность повысить частоту тактирования процессора. При этом, чем длинее конвейер, тем выше частота. Современные конвейеры имеют длину до 30 этапов. Дальнейшая цель – построение процессора с несколькими конвейерами, что позволяет запускать несколько команд каждый такт. Такой процессор называется суперскалярным.
ЛЕКЦИЯ 8. Процессоры потока данных. Существует два типа управления выполнением программы: управление от потока команд (IF − Instruction Flow) и управление от потока данных (DF − Data Flow). Если в ЭВМ первого типа используется традиционное выполнение команд по ходу их расположения в программе, то применение ЭВМ второго типа предполагает активацию операторов по мере их текущей готовности. В случае DF все узлы информационного графа задачи представляются в виде отдельных операторов: КОП О1, О2, A3, БС где О1, О2 — поля для приема первого и второго операндов от других операторов; A3 − адрес (имя) оператора, куда посылается результат; БС − блок событий. В БС записывается число, равное количеству операндов, которое нужно принять, чтобы начать выполнение данного оператора. После приема очередного операнда из БС вычитается единица, когда в БС оказывается нуль, оператор начинает выполняться. Программа полностью повторяет ИГ, но ее операторы могут располагаться в памяти в произвольном порядке. Выполняться они будут независимо от начального расположения строго в соответствии с зависимостью по данным. Это и есть управление потоком данных. Считается, что такая форма представления ИГ обеспечивает наибольший потенциальный параллелизм. В случае зависимостной архитектуры компилятор или программист выяв- ляют параллелизм в программе и представляют его аппаратуре путем описания зависимостей между операциями в машинной программе. Аппаратура все же еще должна определить на этапе исполнения, когда каждая операция становит- ся независимой от всех других операций, и тогда выполнить планирование. Но прежде рассмотрим вопрос о влиянии количества регистров общего на- значения РОН на величину параллелизма. Существует несколько видов памяти с разным временем доступа и объемом хранимой информации:
Регистры – самая быстрая память. Обычно их немного. Рассмотрим сле- дующую ситуацию. Пусть требуется сложить четыре числа - . Рассмотрим эту операцию для двух случаев: в микропроцессоре имеется 2 или 4 РОН. В программе для двух РОН из-за недостатка регистров приходится промежуточные результаты записывать в память, поэтому программы удлиняется и в нейт нет параллелизма. Если предположить, что одно обращение к памяти занимает 3 такта, а сложение – 1 такт, то приведенная программа выполняется за 30 тактов. Программа mov r1, [a1] mov r2, [a2] r1=r1+r2
mov [b1], r1 mov r1, [a3] mov r2, [a4] r1=r1+r2
mov [b2], r1 mov r1, [b1] mov r2, [b2] r1=r1+r2 mov [c], r1
Увеличение числа регистров до 4 –ех устраняет использование промежу- точных переменных и позволяет параллельное выполнение операций: mov r1, [a1] mov r2, [a2] mov r3, [a3] mov r4, [a4] r1=r1+r2, r3=r3+r4 r1=r1+r2 mov [c], r1 Итого, 17 тактов, что значительно меньше, чем в предыдущем случае. При увеличении объема данных и числа РОН выигрыш будет намного больше. Микропроцессор Pentium Pro компании Intel (рис) построен по принципу управления от потока данных (DF), отсюда и получил название потокового. Главное в потоковом процессоре − выполнить команду сразу, как только станут доступны входные операнды и освободятся необходимые функциональные устройства Блок ВД (выборка и декодирование команд) по существу является микро- программной частью компилятора. Он обеспечивает: • Чтение команд из КЭШ и их преобразование из формата i86 в формат DF (управление от потока данных) • Запись команд в буфер команд в буфер команд БК. В БК команды пред- ставлены в трехадресном формате. Поскольку в системе команд i 86 мало РОН (всего 8), то для устранения ложных зависимостей по данным в МП Pentium Pro введено 40 дополнительных регистров, которые недоступны программисту. Они используются аппаратурой для временного хранения результатов. Обозначим эти регистры временного хранения через V. Тогда
на рисунке V1, V2 и VР обозначают соответственно номера регистров для хранения первого, второго операндов и результата. Блок ПВ (планирование и выполнение) является центральным блоком МП Pentium Pro. Именно он выполняет команды в порядке их готовности. ПВ содержит несколько АЛУ и устройств обращения к памяти. За один такт ПВ выполняет следующие действия: • Выделяет в БК команды, готовые к исполнению. • Планирует и назначает на исполнение до пяти команд, поскольку в ПВ имеется пять исполнительных устройств. • Выполняет эти команды. • Передает результаты в блок БК, вычитает единицу из БС и в случае воз можности устанавливает в командах признак готовности. Чтобы блок ПВ мог выполнять за один такт до 3...5 команд, необходимо, чтобы в БК находилось до 20...30 команд. По статистике среди такого объема команд в среднем имеется имеется 4...5 команд условных переходов. Следова- тельно, в БК находится некоторая трасса выполнения команд. Выбор таких наиболее вероятных трасс является новой функцией МП с непоследовательным выполнением команд. Эта функция выполняется в блоке ВД на основе расши- ренного до 512 входов буфера истории переходов. Поскольку реально вычисленный в ПВ адрес перехода не всегда совпадает с предсказанным в блоке ВД, то вычисление в ПВ выполняется условно, т. е. результат записывается в регистр временного хранения. Только после того, как установлено, что переход выполнен правильно, блок удаления команд УК вы- водит из БК все выполненные команды, расположенные за командой условного перехода, преобразует их в формат системы i 86 и производит запись результа- тов по адресам, указанным в исходной программе.
|
||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-04-08; просмотров: 314; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.73.117 (0.008 с.) |