Анализ архитектур параллельных вычислительных систем




Скачать 1.11 Mb.
Название Анализ архитектур параллельных вычислительных систем
страница 4/18
Дата публикации 21.05.2014
Размер 1.11 Mb.
Тип Литература
literature-edu.ru > Информатика > Литература
1   2   3   4   5   6   7   8   9   ...   18

1.4.Параллелизм на уровне команд


Анализ работы конвейера выявил, что самым критическим с точки зрения временных затрат является этап выполнения заданного в команде действия (сложения, умножения и т. д.). Остальные блоки конвейера зачастую вынуждены простаивать в ожидании его завершения. Для устранения простоев конвейера в это «узкое» место включили несколько исполнительных блоков (арифметико-логических устройств, сопроцессоров и т. д.), которые могут одновременно выполнять закодированные в машинных командах действия. Такая концепция получила название – SIMD (single instruction, multiple data – одиночный поток команд, множественный поток данных).

SIMD-компьютеры состоят из одного командного процессора (управляющего модуля), называемого контроллером, и нескольких модулей обработки данных, называемых процессорными элементами. Управляющий модуль принимает, анализирует и выполняет команды. Если в команде встречаются данные, контроллер рассылает на все процессорные элементы команду, и эта команда выполняется на нескольких или на всех процессорных элементах. Каждый процессорный элемент имеет свою собственную память для хранения данных. Одним из преимуществ данной архитектуры считается то, что в этом случае более эффективно реализована логика вычислений. До половины логических инструкций обычного процессора связано с управлением выполнением машинных команд, а остальная их часть относится к работе с внутренней памятью процессора и выполнению арифметических операций. В SIMD компьютере управление выполняется контроллером, а «арифметика» отдана процессорным элементам.

1.4.1.Векторный процессор


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

  1. дополнительный блок к универсальной ВС.

  2. основа самостоятельной ВС.

Возможные подходы к архитектуре средств векторной обработки. Наиболее распространенные из них сводятся к трем группам:

  • конвейерное АЛУ;

  • массив АЛУ;

  • массив процессорных элементов.

Последний вариант – один из случаев многопроцессорной системы, известной как матричная ВС. Понятие векторного процессора имеет отношение к двум первым группам, причем, как правило, к первой (рис. 1.5).



Рис. 1.5. Векторные процессоры первого и второго типов

В варианте с конвейерным АЛУ (рис. 1.5, слева) обработка элементов векторов производится конвейерным АЛУ для чисел с плавающей запятой (ПЗ). Операции с числами в форме с ПЗ достаточно сложны, но поддаются разбиению на отдельные шаги. Так, сложение двух чисел может быть сведено к четырем этапам (рис. 1.6):

  1. Сравнение порядков

  2. Сдвигу мантиссы меньшего из чисел

  3. Сложение мантисс

  4. Нормализация результата

Каждый этап может быть реализован с помощью отдельной ступени конвейерного АЛУ. Очередной элемент вектора подается на вход конвейера, как только освобождается первая ступень. Ясно, что такой вариант вполне годится для обработки векторов.

Одновременные операции над элементами векторов можно проводить и с помощью нескольких параллельно используемых АЛУ, каждое из которых отвечает за одну пару элементов.



Рис. 1.6. Структура арифметического конвейера для чисел с плавающей запятой

Если параллельно используются конвейерные АЛУ, то возможен еще один уровень конвейеризации. Вычислительные системы, где реализована эта идея, называют векторно-конвейерными.

1.4.2.Структура векторного процессора


Обобщенная структура векторного процессора приведена на рис. 1.7. На схеме показаны основные узлы процессора, без детализации некоторых связей между ними.

Особенности векторного процессора

  • Обработка всех n компонентов векторов-операндов задается одной векторной командой.

  • Элементы векторов представляются числами в форме с плавающей запятой (ПЗ).

  • АЛУ векторного процессора может быть реализовано в виде:

    • единого конвейерного устройства, способного выполнять все предусмотренные операции над числами с ПЗ

    • АЛУ состоит из отдельных блоков сложения и умножения, а иногда и блока для вычисления обратной величины, когда операция деления реализуется в виде . Каждый из таких блоков также конвейеризирован.

Состав векторной системы:

  • Cкалярный процессор, что позволяет параллельно выполнять векторные и скалярные команды.

  • Векторные регистры для хранения векторов-операндов, которые представляют собой совокупность скалярных регистров, объединенных в очередь типа FIFO, способную хранить 50-100 чисел с плавающей запятой.



Рис. 1.7. Состав векторного процессора

Набор векторных регистров (Va, Vb, Vc,...) имеется в любом векторным процессоре. Система команд векторного процессора поддерживает работу с векторными регистрами и обязательно включает в себя команды:

  • загрузки векторного регистра содержимым последовательных ячеек памяти, указанных адресом первой ячейки этой последовательности;

  • выполнения операций над всеми элементами векторов, находящихся в векторных регистрах;

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

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

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

  • Регистр маски вектора служит для выполнения таких операций, в которых должны участвовать не все элементы векторов. В этом регистре каждому элементу вектора соответствует один бит. Установка бита в единицу разрешает запись соответствующего элемента вектора результата в выходной векторный регистр, а сброс в ноль – запрещает.

  • Регистр вектора индексов по структуре аналогичен регистру маски. Служит для выполнения операций упаковки/распаковки для получения вектора, содержащего ненулевые элементы и для обратной операции соответственно. В векторе индексов каждому элементу исходного вектора соответствует один бит. Нулевое значение бита свидетельствует, что соответствующий элемент исходного вектора равен нулю.

Достоинства векторного процессора:

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

  2. Векторная команда обеспечивает процессор упорядоченными данными. Когда инициируется векторная команда, ВС знает, что ей нужно извлечь n пар операндов, расположенных в памяти регулярным образом. Таким образом, процессор может указать памяти на необходимость начать извлечение таких пар. Если используется память с чередованием адресов, эти пары могут быть получены со скоростью одной пары за цикл процессора и направлены для обработки в конвейеризированный функциональный блок. При отсутствии чередования адресов или других средств извлечения операндов с высокой скоростью преимущества обработки векторов существенно снижаются.

1.4.3.Матричные процессоры


Матричные процессоры лучше всего приспособлены для решения задач, характеризующихся параллелизмом независимых объектов или данных. Организация систем подобного типа, на первый взгляд, достаточно проста. Они имеют общее управляющее устройство, генерирующее поток команд и большое число процессорных элементов, работающих параллельно и обрабатывающих каждая свой поток данных. Таким образом, производительность системы оказывается равной сумме производительностей всех процессорных элементов. Однако на практике чтобы обеспечить достаточную эффективность системы при решении широкого круга задач, необходимо организовать связи между процессорными элементами с тем, чтобы наиболее полно загрузить их работой. Именно характер связей между процессорными элементами и определяет разные свойства системы.

Одним из первых матричных процессоров был SОLОМОN (60-е годы, рис. 1.8).



Рис. 1.8. Структура матричной вычислительной системы SOLOMON

Система SOLOMON содержит 1024 процессорных элемента, которые соединены в виде матрицы: 32х32. Каждый процессорный элемент матрицы включает в себя процессор, обеспечивающий выполнение последовательных поразрядных арифметических и логических операций, а также оперативное ЗУ емкостью 16 Кбайт. Длина слова – переменная от 1 до 128 разрядов. Разрядность слов устанавливается программно. По каналам связи от устройства управления передаются команды и общие константы. В процессорном элементе используется так называемая многомодальная логика, которая позволяет каждому процессорному элементу выполнять или не выполнять общую операцию в зависимости от значений обрабатываемых данных. В каждый момент все активные процессорные элементы выполняют одну и ту же операцию над данными, хранящимися в собственной памяти и имеющими один и тот же адрес.

Идея многомодальности заключается в том, что в каждом процессорном элементе имеется специальный регистр на 4 состояния – регистр моды. Мода (модальность) заносится в этот регистр от устройства управления. При выполнении последовательности команд модальность передается в коде операции и сравнивается с содержимым регистра моды. Если есть совпадения, то операция выполняется. В других случаях процессорный элемент не выполняет операцию, но может, в зависимости от кода, пересылать свои операнды соседнему процессорному элементу. Такой механизм позволяет выделить строку или столбец процессорных элементов, что очень полезно при операциях над матрицами. Взаимодействуют процессорные элементы с периферийным оборудованием через внешний процессор.

Дальнейшим развитием матричных процессоров стала система ILLIАC-4, разработанная фирмой BURROUGHS. Первоначально система должна была включать в себя 256 процессорных элементов, разбитых на группы, каждый из которых должен управляться специальным процессором. Однако по различным причинам была создана система, содержащая одну группу процессорных элементов и управляющий процессор. Если в начале предполагалось достичь быстродействия 1 млрд. операций в секунду, то реальная система работала с быстродействием 200 млн. операций в секунду. Эта система в течение ряда лет считалась одной из самых высокопроизводительных в мире.

1.4.4.Архитектура VLIW


VLIW (Very long instruction word) – это набор команд, реализующий горизонтальный микрокод. Несколько (4-8) простых команд упаковываются компилятором в длинное слово. Такое слово соответствует набору функциональных устройств. VLIW-архитектуру можно рассматривать как статическую суперскалярную архитектуру, поскольку распараллеливание кода производится на этапе компиляции, а не динамически во время исполнения. То есть в машинном коде VLIW присутствует явный параллелизм.

Хотя идеи VLIW сформулированы уже давно, до настоящего времени они были известны в основном специалистам в области компьютерных архитектур. Имеющиеся реализации, например, VLIW Multiflow, не получили широкого распространения. Пожалуй, единственными популярными процессорами, архитектура которых близка к VLIW, была линия AP-120B/FPS-164/FPS-264 компании Floating Point Systems. Эти процессоры в 1980-е годы активно применялись при проведении научно-технических расчетов.

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

Выделение в архитектуре VLIW компонентов командного слова, управляющих отдельными блоками МП, вводит явный параллелизм на уровне команд. Задача обеспечения эффективного распараллеливания работы отдельных блоков возлагается при этом на компилятор, который должен сгенерировать машинные команды, содержащие явные указания на одновременное исполнение операций в разных блоках. Таким образом, достижение параллелизма, обеспечиваемое в современных суперскалярных RISC-процессоров их аппаратурой, в VLIW возлагается на компилятор. Очевидно, что это вызывает сложные проблемы разработки соответствующих компиляторов. При этом распараллеливание работы между ФУ в EPIC происходит статически при компиляции, в то время как современные суперскалярные RISC-процессоры осуществляют это динамически.

Архитектура IA-64

В IA-64 два нововведения по сравнению с RISC-процессорами:

  • Применение технологии явного параллелизма на уровне команд (EPIC – Explicitly Parallel Instruction Computing).

  • Применение предикатных вычислений. Предикаты – способ обработки ветвлений (условных переходов).

В сочетании с новым уровнем спекулятивных вычислений это значительно уменьшает количество условных переходов и, соответственно, ошибочных предсказаний направления переходов. В свою очередь, применение EPIC однозначно диктует появление в архитектуре большого числа ФУ и сверхбольших файлов регистров.

Особенности EPIC:

  • Большое количество регистров.

  • Масштабируемость архитектуры до большого количества функциональных устройств. Это свойство представители фирмы Intel и HP называют "наследственно масштабируемый набор команд".

  • Явный параллелизм в машинном коде. Поиск зависимостей между командами производит не процессор, а компилятор.

  • Предикация. Команды из разных ветвей условного ветвления снабжаются предикатными полями (полями условий) и запускаются параллельно.

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

Описание IA-64

  1. Регистры IA-64:

  • 128 64-разрядных регистров общего назначения;

  • 128 80-разрядных регистров вещественной арифметики;

  • 64 1-разрядных предикатных регистров.

  1. Формат команды IA-64:

  • идентификатор команды;

  • три 7-разрядных поля операндов – 1 приемник и 2 источника;

  • особые поля для вещественной и целой арифметики;

  • 6-разрядное предикатное поле .

  1. Предикация.

  2. Загрузка по предположению.

Архитектура Е2К

Подход, близкий к IA-64, уже был реализован в России – в произведенном в единственном экземпляре суперкомпьютере Эльбрус-3, выпущенном в 1991 году.

В E2K используются команды переменной длины. Общий формат команд E2K представлен на рис. 1.9.

Заголовок

Слог 1

...

Слог N

Рис. 1.9. Общий формат команд Е2К

Команда E2K состоит из слогов длиной 32 разряда каждый. Число этих слогов может меняться от 2 до 16, причем данную архитектуру можно еще расширить – до 32 слогов.

Любая команда всегда включает 1 слог заголовка и еще от 1 до 15 слогов, указывающих на операции, которые могут выполняться параллельно. Слог заголовка содержит информацию о структуре команды и ее длине, что облегчает дешифрацию команды переменной длины. Применение заголовка позволяет не проводить предварительного декодирования команд перед их помещением в кэш команд.

В архитектуре E2K представлен сверхбольшой файл регистров. Все регистры E2K являются универсальными и могут содержать как целочисленные данные, так и числа с плавающей запятой. Всего имеется 256 регистров длиной по 64 разряда каждый.

В E2K есть два почти симметричных кластера, каждый из которых содержит по 256 регистров. Всего в этом процессоре имеется 30 регистровых портов: 20 портов чтения (по 10 портов на кластер) и 10 портов записи.

В Alpha 21264 применяется реализованное во многих суперскалярных процессорах динамическое переименование регистров. Этого механизма в E2K нет, так как в нем подобные задачи возлагаются на компилятор. Однако в циклах с постоянным шагом используется аналогичная схема циклической замены используемых регистров.

Еще одна особенность E2K – регистровое окно для процедуры. Это решение стало традиционным для машин серии "Эльбрус", однако особенно важным оно является для E2K, поскольку он содержит сверхбольшое количество регистров – 256.

Затраты на сохранение/восстановление регистров в данной ситуации становятся весьма значительными. Поэтому реализация в E2K аппаратного механизма переключения окон представляется актуальной. Окно регистров в E2K имеет переменную длину (до 192 регистров). Адресация регистров внутри контекста происходит относительно текущей базы, и при вызове другой процедуры достаточно сменить значение базы.

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

Кэш данных второго уровня в E2K имеет емкость 256 Кбайт при времени доступа в 8 тактов. Он является двухканальным частично-ассоциативным и имеет 4 банка, то есть обеспечивает 4-кратное расслоение кэш-памяти. В кэше данных второго уровня применяется алгоритм обратной записи. Он также является неблокирующим.

Кроме этого, в E2K представлен специализированный кэш предварительной выборки, который разработчики назвали буфером предварительной подкачки. Он является частью устройства доступа к массивам и задействуется только при работе с массивами в циклах. Его емкость составляет всего 4 Кбайт, и он состоит из 2 банков с 2 портами в каждом из них. За один такт в буфер можно считать, следовательно, до 4 слов длиной 8 байт. Буфер организован как очередь FIFO и имеет до 64 зон предварительной выборки.

В Е2К предусматриваются два варианта подключения третьего уровня кэш: непосредственно к процессору Е2К, что позволяет разгрузить "системную шину" – коммутатор, или через набор коммутаторных микросхем.

Функциональные устройства (ФУ) E2K разнесены по двум кластерам. Эти кластеры содержат по 3 одинаковых целочисленных конвейера – АЛУ (правда, один из кластеров имеет также ФУ деления – целочисленного и с плавающей запятой).

В каждом кластере представлены также адресные сумматоры, которые имеются для 2 из 3 путей ("каналов") данных. В результате каждый кластер может одновременно выполнять до 2 операций загрузки регистров или 1 операцию записи в оперативную память. Возможен и смешанный случай: 2 загрузки плюс одна запись.

Кроме того, имеется 4 канала для данных с плавающей запятой, по 2 на кластер. В каждом канале может выполняться команда типа MADD – "умножить-и-сложить", что дает темп 8 результатов с плавающей запятой за такт.

Сам набор команд E2K "богаче", чем у традиционных RISC-процессоров: в нем представлены четырехадресные команды, например, типа . Такого нет и в IA-64. Что касается команд с плавающей запятой, то кроме полной поддержки IEEE754 в E2K реализована работа с 80-разрядным представлением Intel x86. При этом операнды хранятся в парах 64-разрядных регистров E2K. Правда, сложение/умножение таких чисел не полностью конвейеризовано. Кроме того, для приближения системы команд E2K к x86 в E2K реализованы также команды расширения ММХ.

В E2K целочисленный конвейер имеет длину 8 тактов (собственно выполнение идет на седьмом такте, а обратная запись – на восьмом) против 7 тактов в Alpha 21264.

Е2К обеспечивает очень высокий уровень одновременно выполняемых операций: в команде их кодируется до 23 (сюда, кроме арифметико-логических операций, входят также доступ в оперативную память, приращение индекса массива и т.п.). Эффективные показатели параллельной работы ФУ у E2K выше, чем у всех суперскалярных процессоров.

В архитектуре E2K, как и в IA-64, делается все, чтобы по возможности исключить обычные операции перехода. Для этого в E2K имеется 32 одноразрядных регистра-предиката, причем команда способна сформировать до 7 предикатов: 4 в операциях сравнения в АЛУ и еще 3 – в операциях логики.

Хотя в IA-64 предикатных регистров формально в 2 раза больше, чем в E2K, реально их столько же, так как в IA-64 хранятся пары – предикат и его отрицание. В IA-64 поля предикатов всегда представлены в команде, а в E2K – могут отсутствовать. Предикаты могут использоваться в канале АЛУ или в канале доступа к массивам; для указания на это применяются условные слоги, содержащие маски предикатов и ФУ. Всего в этих слогах может кодироваться до 6 предикатов, указывающих на то, нужно ли выполнять соответствующие операции из "широкой" команды.

Компилятор E2K порождает коды для обеих ветвей программы, возникающих при условном переходе, и, пользуясь большим числом ФУ и регистров, заставляет процессоры выполнять обе ветви программы. Та же процедура применяется и в IA-64. До тех пор, пока условие перехода остается неизвестным, обе ветви выполняются спекулятивно. Когда, наконец, условие найдено, выбираются нужные результаты. Признак спекулятивного выполнения взводится при этом в специальном бите в коде операции в соответствующем слоге. При возникновении ситуации исключения (exception) результат снабжается тегом недействительного значения.

В файле предикатов E2K, как и в регистровом файле, используются окна.

Еще некоторые особенности архитектуры E2K:

  • тегирование данных, поддерживаемое во всей линейке процессоров ЭВМ "Эльбрус";

  • сегментно-страничная организация памяти;

  • поддержка мультипрограммирования в стиле x86. В сочетании с разработанными средствами двоичной компиляции и специальными аппаратными средствами ее поддержки, это позволяет выполнять x86-коды на E2K.

Поддерживается также двоичная компиляция для SPARC-архитектуры.

Преимущества и недостатки

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

В то же время, код для VLIW обладает невысокой плотностью. Из-за большого количества пустых инструкций для простаивающих устройств программы для VLIW-процессоров могут быть гораздо длиннее, чем аналогичные программы для традиционных архитектур.

Архитектура VLIW выглядит довольно экзотической и непривычной для программиста. Из-за сложных внутренних зависимостей кода, программирование на уровне машинных кодов для VLIW-архитектур человеком вручную является достаточно сложным. Приходится полагаться на оптимизацию компилятора.
1   2   3   4   5   6   7   8   9   ...   18

Похожие:

Анализ архитектур параллельных вычислительных систем icon Кафедра автоматизации систем вычислительных комплексов автоматическое...
Формулируются критерии, проводится сравнительный анализ и выбирается один метод для реализации в рамках метода обнаружения уязвимостей....
Анализ архитектур параллельных вычислительных систем icon «Организация эвм» Контрольно курсовая работа «Проектирование вычислительной системы»
Данная контрольно-курсовая работа выполняется с целью закрепления знаний по курсу «Организация ЭВМ и систем» и получения практических...
Анализ архитектур параллельных вычислительных систем icon Староюрьевский филиал тогбоу спо «Мичуринский аграрный техникум»
Оператор электронно-вычислительных и вычислительных машин (эвм) (шифр, наименование)
Анализ архитектур параллельных вычислительных систем icon Рабочая программа составлена в соответствии с государственными образовательными...
Для профиля "Программное обеспечение и администрирование информационно-вычислительных систем и сетей"
Анализ архитектур параллельных вычислительных систем icon Рабочая программа составлена в соответствии с государственными образовательными...
Для профиля "Программное обеспечение и администрирование информационно-вычислительных систем и сетей"
Анализ архитектур параллельных вычислительных систем icon Рабочая программа составлена в соответствии с государственными образовательными...
Для профиля "Программное обеспечение и администрирование информационно-вычислительных систем и сетей"
Анализ архитектур параллельных вычислительных систем icon Методические указания и задания к лабораторным работам по курсам “
Дискретные структуры“, “Теория алгоритмов и вычислительных процессов“ (для студентов специальностей 050102 “Программное обеспечение...
Анализ архитектур параллельных вычислительных систем icon План лекции: Задачи, решаемые вычислительными центрами Структура...
Создание вычислительных центров является способом повышения эффективности работы ЭВМ. Вычислительный центр объединяет технику различных...
Анализ архитектур параллельных вычислительных систем icon Лекция №1. Введение
Овладение методологией экспертных систем помогает принять решение в самых сложных и уникальных ситуациях. Чтобы уметь использовать...
Анализ архитектур параллельных вычислительных систем icon Программа преддипломной практики
Целью практики является: овладение методикой проектирования, внедрения и эксплуатации отдельных задач и подсистем экономических информационных...
Литература


При копировании материала укажите ссылку © 2015
контакты
literature-edu.ru
Поиск на сайте

Главная страница  Литература  Доклады  Рефераты  Курсовая работа  Лекции