Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 432; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.007 с.) |