
ВС для ГОС (ПИ) / Орлов, Цилькер - Организация ЭВМ (2004)
.pdf
Вычислительные системы с систолической структурой 5 7 5
В одноразрядных матрицах ПЭ в каждый момент времени выполняет операцию над одним двоичным разрядом; а в многоразрядных — над словами фиксированной длины.
По характерулокально-пространственных связей систолические структуры бывают:
-одномерные;
-двухмерные;
-трехмерные.
Выбор структуры зависит от вида обрабатываемой информации. Одномерные схемы применяются при обработке векторов, двухмерные — матриц, трехмерные — множеств иного типа.
Топология систолических структур
В настоящее время разработаны систолические матрицы с различной геометрией связей: линейные, квадратные, гексагональные, Трехмерные и др. Перечисленные конфигурации систолических матриц приведены на рис. 13.17.
Рис. 13.17. Конфигурация систолических матриц: а — линейная; б— прямоугольная; в — гексагональная; г — трехмерная
Каждая конфигурация матрицы наиболее приспособлена для выполнения определенных функций, например линейная матрица оптимальна для реализации фильтров в реальном масштабе времени; гексагональная — для выполнения операций обращения матриц, а также действий над матрицами специального вида (Теплица-Генкеля); трехмерная — для нахождения значений нелинейных дифференциальных уравнений в частных производных или для обработки сигналов антенной решетки. Наиболее универсальными и наиболее распространенными, тем не менее, можно считать матрицы с линейной структурой.
Для решения сложных задач конфигурация систолической структуры может представлять собой набор отдельных матриц, сложную сеть взаимосвязанных мат-

5 7 6 Глава 13. Вычислительные системы класса SIMD
рицлибообрабатывающуюповерхность. Подобрабатывающей поверхностьюпонимается бесконечная прямоугольная сетка ПЭ, где каждый ПЭ соединяется со своими четырьмя соседями (или большим числом ПЭ). Одним из наиболее подходящих элементов для реализации обрабатывающей поверхности является матрица простых ПЭ или транспьютеров.
Учитывая то, что матрицы ПЭ обычно реализуются на основе сверхбольших интегральных схем, возникающие при этом ограничения привели к тому, что наиболее распространены матрицы с одним, двумя и тремя трактами данных и с одинаковым либо противоположным направлением передачи, обозначаемые как ULA, BLA и TLA соответственно.
ULA(Unidirectional Linear Array) — это однонаправленный линейный процессорный массив, где потоки данных перемещаются в одном направлении. ПЭ в массиве могут быть связаны одним, двумя или тремя трактами.
Рис. 13.18. Поток данных при векторном перемножении матрице ULA (n = 4)
При реализации алгоритма векторного произведения матриц один из потоков данных перемещается вправо, в то время как второй резидентно расположен в массиве (рис. 13.18). Используемый ПЭ представляетсобоймодифицированный IPSэлемент, поскольку имеется только один тракт данных, а элементы второго потока хранятся в ПЭ массива.
BLA (Bidirectional Linear Array) — это двунаправленный линейный процессорный массив, в котором два потока данных движутся навстречу друг другу. BLA, где один из потоков является выходным, называется регулярным.
Рис. 13.19. Поток данных при векторном перемножении матриц в BLA(n= 4)
Реализация рассмотренной ранее операции с применением BLA показана на рис. 13.19. В версии ULA процессоры используются более эффективно, поскольку в них элементы потока следуют в каждом такте, а не через такт, как в BLA.
TLA (Three-path communication Linear Array) — линейный процессорный массив с тремя коммуникационными трактами, в котором по разным направлениям перемещаются три потока данных. На рис. 13.20 показан пример фильтра ARMA, предложенного Кунгом и построенного по схеме TLA. Возможны несколько вариантов такого фильтра, в зависимости от числа выходных потоков данных и от зна-

Вычислительныесистемыссистолической структурой 5 7 7
чений, хранящихся в памяти (в примере фигурирует один выходной поток). Процессорные элементы выполняют две операции IPS и обычно называются сдвоен- ными1РS-элементами,Две версии таких ПЭ представлены на рис, 13.21. ПЭ могут использовать как хранимые в памяти значения (рис. 13.21, а, б), так и внешние данные (рис. 13.21, в, г).
в г
Рис.13.21.СдвоенныеIPS-элементы:a-б—схранимымивпамятидвумязначениями; в-г—свнешнимиданными
TLA часто называют сдвоенным конвейером, поскольку он может быть разделен на два линейных конвейера типа BLA. Соответственно, TLA можно получить объединением двух BLA с одним общим потоком данных.
Представленные реализации алгоритма векторного произведения матриц выполняют эту операцию за одно и то же время, но в случае ULA в вычислениях участвуют вдвое меньше процессорных элементов. С другой стороны, ULA использует хранимые в памяти данные, на чтение и запись которых нужно какое-то время. В свою очередь, в схеме BLA требуется дополнительное время на операции ввода/ вывода.
Структура процессорных элементов
Тип ПЭ выбирается в соответствии с назначением систолической матрицы и структурой пространственных связей. Наиболее распространены процессорные элементы, ориентированные на умножение с накоплением.
На рис. 13.22 показаны ПЭ для двух типов матриц: прямоугольной (см. рис, 13.22, а) и гексагональной (см. рис. 13.22,6).


Вычислительныесистемыссистолической структурой 5 7 9
Элементы вектора произведения Y = {у1 , у2,..., уп) могут быть получены периодически повторяющимися операциями
где k - номер шага вычислений.
Пусть имеется матрица А размером пхп с шириной полосы ненулевых элементов р + q - 1 = 4. Схема умножения вектора на матрицу в этом случае представленанарис. 13.24.
Рис. 13.24. Схемаумножениявектора на матрицу
Определенная выше последовательность операций для вычисления компонентов вектора Y может быть получена за счет конвейерного прохождения хi и уi через р + q - 1 последовательно соединенных ПЭ (рис. 13.25)
Рис. 13.25. Организация вычислений в линейной систолической структуре
Компоненты yi (i - 1,...,n) вектора Y; имеющие в начальный момент нулевое значение, поступают на вход массива и продвигаются через ПЭ справа налево, в то время как компоненты вектораXдвижутсяслеванаправо. Элементы матрицыА = {aij} в порядке, указанном на рисунке, вводятся в ПЭ сверху вниз. Промежуточные результаты уi(k) накапливаются по мере продвижения от одного ПЭ к другому.

5 8 0 Глава 13. Вычислительные системы класса SIMD
В табл. 13.1 показаны первые 6 шаГов алгоритма умножения для рассматриваемой структуры.
Таблица 13.1. Последовательность умножения матрицы на вектор в систолической ВС
Заметим, что при такой организации вычислительного процесса для каждого ПЭ такты выполнения операции чередуются с тактами простоя. Таким образом,
в каждый момент времени активны только(p+q-1)/2процессорных элементов, следовательно, каждый выходной результат формируется за два такта. Для вычисления всех и элементов выходного вектора Y необходимо 2n + р + q - 1 тактов.
Вычислительные системы с командными словами сверхбольшой длины (VLIW)
Архитектураскоманднымисловамисверхбольшойдлиныилисосверхдлинными командами (VLIW, Very Long Instruction Word) известна с начала 80-х из ряда университетских проектов, но только сейчас, с развитием технологии производства микросхем она нашласвое достойное воплощение. VLIW — это набор команд, организованных наподобие горизонтальной микрокоманды в микропрограммном устройстве управления.
Идея VLIW базируется на том, что задача эффективного планирования параллельного выполнения нескольких команд возлагается на «разумный» компилятор. Такой компилятор вначале исследует исходную программу с целью обнаружить все команды, которые могут быть выполнены одновременно, причем так,

Вычислительные системы скомандными словами сверхбольшойдлины (VLIW) 5 8 1
чтобы это не приводило к возникновению конфликтов. В процессе анализа компилятор можетдаже частично имитировать выполнение рассматриваемой программы. Наследующем этапе компилятор пытается объединитьтакие команды в пакеты, каждый из которых рассматривается так одна сверхдлинная команда. Объединение нескольких простых команд в одну сверхдлинную производится по следующим правилам:
-количество простых команд, объединяемых в одну команду сверхбольшой длины, равно числу имеющихся в процессоре функциональных (исполнительных) блоков (ФБ);
-в сверхдлинную команду входят только такие простые команды, которые исполняются разными ФБ, то есть обеспечивается одновременное исполнение всех составляющих сверхдлинной команды.
Длина сверхдлинной команды обычно составляет от 256 до 1024 бит. Такая метакоманда содержит несколько полей (по числу образующих ее простых команд), каждое из которых описывает операциюдля конкретного функционального блока. Сказанное иллюстрирует рис, 13,26, где показан возможный формат сверхдлинной команды и взаимосвязь между ее полями и ФБ, реализующими отдельныеоперации.
Рис. 13.26. формат сверхдлинной команды и взаимосвязь полей команды с составляющими блока исполнения
Как видно из рисунка, каждое поле сверхдлинной команды отображается на свой функциональный блок, что позволяет получить максимальную отдачу от аппаратуры блока исполнения команд.
VLIW-архитектуру можно рассматривать как статическую суперскалярную архитектуру. Имеется в виду, что распараллеливание кода производится на этапе компиляции,анединамическивовремяисполнения.То,чтоввыполняемойсверх-


Вычислительные системы с явным параллелизмом команд (EPIC) 5 8 3
и шаблон, в котором указываются зависимости между командами (можно ли с командой I0 запустить параллельно I1 или же I1 должна выполниться только после Iо),а также между другими связками (можно ли с командой I2 из связки So запустить параллельно команду I3 из связки S1).
Перечислим все варианты составления связки из трех команд:
-I0 || I1 || 12 — все команды исполняются параллельно;
-Iо & I1 || Iг — сначала I0, затем исполняются параллельно I1 и I2;
-I0 || I1 & I2 — параллельно обрабатываются I0 и I1 после них — I2;
-I0& I1 & I2 — команды исполняются в последовательности I0,I1, I2.
Одна связка, состоящая из трех команд, соответствует набору из трех функциональных блоков процессора. Процессоры IA-64 могут содержать разное количество таких блоков, оставаясь при этом совместимыми по коду. Благодаря тому что в шаблоне указана зависимость и между связками, процессору с N одинаковыми блоками из трех ФБ будет соответствовать сверхдлинная команда из N х 3 команд (Nсвязок).Тем самым обеспечивается масштабируемость IA-64.
Поле каждой из трех команд в связке, в свою очередь, состоит из пяти полей:
-13-разрядного поля кода операции;
-6-разрядного поля предикатов, хранящего номер одного из 64 регистров предиката;
-7-разрядного поля первого операнда (первого источника), где указывается номер регистра общего назначения или регистра с плавающей запятой, в котором содержится первый операнд;
-7-разрядного поля второго операнда (второго источника), где указывается номер регистра общего назначения или регистра с плавающей запятой, в котором содержится второй операнд;
-7-разрядного поля результата (приемника), где указывается номер регистра общего назначения или регистра с плавающей запятой, куда должен быть занесен результат выполнения команды.
Следует пояснить роль подполя предикатов. Предикация — это способ обработки условных ветвлений. Суть в том, что еще компилятор указывает, что обе ветви выполняются на процессоре параллельно, ведь EPIC-процессоры должны иметь много функциональных блоков.
Если в исходной программе встречается условное ветвление (по статистике — через каждые шесть команд), то команды из разных ветвей помечаются разными регистрами предиката (команды имеют для этого соответствующие поля), далее они выполняются совместно, но их результаты не записываются, пока значения регистров предиката (РП) не определены. Когда, наконец, вычисляется условие ветвления, РП, соответствующий «правильной» ветви, устанавливается в 1, а другой — в 0. Перед записью результатов процессор проверяет поле предиката и записывает результаты только тех команд, поле предиката которых указывает на РП с единичнымзначением.
Предикаты формируются как результатсравнения значений, хранящихся вдвух регистрах. Результат сравнения («Истина» или «Ложь») заносится в один из РП,

5 8 4 Глава 13. Вычислительные системы класса SIMD
но одновременно с этим во второй РП записывается инверсное значение полученного результата. Такой механизм позволяет процессору более эффективно выпол- нятьконструкциитипаIF-THEN-ELSE.
Логика выдачи команд на исполнение сложнее, чем в традиционных процессорах типа VLIW, но намного проще, чем у суперскалярных процессоров с неупорядоченной выдачей. По мнению специалистов Intel и HP, концепция EPIC, сохраняя все достоинства архитектурной организации VLIW, свободна от большинства ее недостатков. Особенностями архитектуры EPIC являются:
-большое количество регистров;
-масштабируемость архитектуры до большого количества функциональных блоков. Это свойство представители компаний Intel и HP называют наследственно масштабируемойсистемойкоманд(InherentlyScaleableInstructionSet);
-явный параллелизм в машинном коде. Поиск зависимостей между командами осуществляет не процессор, а компилятор;
-предикация — команды из разных ветвей условного предложения снабжаются полями предикатов (полями условий) и запускаются параллельно;
-предварительная загрузка — данные из медленной основной памяти загружаются заранее.
Общий итог обзора технологии VLIW можно сформулировать следующим образом.
Преимущества. Использование компилятора позволяет устранить зависимости между командами до того, как они будут реально выполняться, в отличие от суперскалярных процессоров, где такие зависимости приходится обнаруживать и устранять "на лету". Отсутствие зависимостей между командами в коде, сформированном компилятором, ведет к упрощению аппаратных средств процессора и за счет этого к существенному подъему его быстродействия. Наличие множества функциональных блоков дает возможность выполнять несколько команд параллельно.
Недостатки. Требуется новое поколение компиляторов, способных проанализировать программу, найти в ней независимые команды, связать такие команды в строки длиной от 256 до 1024 бит, обеспечить их параллельное выполнение. Компилятор должен учитывать конкретные детали аппаратных средств. При определенных ситуациях программа оказывается недостаточно гибкой.
Основные сферы применения. VLIW-процессоры пока еще распространены относительно мало. Основными сферами применения технологии VLIW-являются цифровые сигнальные процессоры и вычислительные системы, ориентированные на архитектуру IA-64. Наиболее известной была VLIW-система фирмы Multiflow Computer, Inc. (Уже не существующей.) В России VLIW-концепция была реализована в суперкомпьютере Эльбрус 3-1 и получиладальнейшее развитие в его последователе — Эльбрус-2000 (Е2к). К VLIW можно причислить семейство сигнальных процессоров TMS320C6x фирмы Texas Instruments. С 1986 года ведутся исследования VLIW-архитектуры в IBM. В начале 2000 года фирма Transmeta заявила процессор Crusoe, представляющий собой программно-аппаратный комплекс. В нем команды микропроцессоров серии х86 транслируются в слова VLIW длиной 64 или 128 бит. Оттранслированные команды хранятся в кэш-памяти, а трансляция при многократном их использовании производится только один раз. Ядро процессора исполняет элементы кода в строгой последовательности.